setroubleshoot로 SELinux 권한 문제 해결하기

최근 워드프레스를 업데이트 하면서, 분명히 apache에 파일 쓰기 권한을 루트 디렉터리에 주었음에도 불구하고(775 Permission) 계속 업데이트를 할 수 없다는 메시지가 떠서 열심히 구글링을 하던 도중, setroubleshoot이라는 어-썸한 툴을 발견했다.
사용법도 엄청 간단한데, CentOS 7 기준 yum install setroubleshoot으로 설치하여 사용하면 된다.
이후에 SELinux 권한 관련 문제가 발생하게 되면,

1
sealert /var/log/audit/audit.log
cs

위 명령어를 통해 어떤 권한을 수정하면 되는지 확인하면 된다.

한국에서 유독 SELinux 관련 문제가 발생하면 SELinux를 비활성화하거나 Permissive 모드로 사용하란 의견이 많은데 난 정말 반대다.
물론, 쉽고 빠른 방법이긴 하지만 부수적인 문제가 너무 많이 발생하는 해결 방법이기 때문이다. SELinux라는 것을 애초에 왜 만들었겠는가?

ESP8266 모듈을 사용한 IoT 보드 제작기 – 1

예전부터 IoT 스위치를 하나쯤 만들까 하는 생각은 계속 하고 있었지만, 실제로 행동에 옮긴 것은 이번이 처음이다.

해외에서 유명한 Wemo나, 국내 통신사들이 판매하고 있는 스위치들의 경우, 스위치 본체만 필요한 것이 아니라 대부분 Base Station을 필요로 한다. 쉽게 이야기해서 중간에 메세지를 처리해 줄 Message Broker를 사용자의 환경에 설치해야 한다는 단점을 가진다는 것이다.

거기에 더해 Broker와 Client 사이의 통신을 E2EE(End-to-end encryption)로 처리하지 않아 평문으로 정보를 보내는 경우도 왕왕 있었다. 물론 개인 사설망에서 폐쇄된 네트워크를 사용한다면 문제가 없겠지만, 내 정보가 남에게 유출될 수 있는 MITM(Man-in-the-middle) 공격의 기능성이 0%라고 할 수는 없다.

위와 같은 두 가지 문제점 때문에 나는 Google IoT Core를 사용했다. Google IoT Core는 트래픽양을 기준으로 250MB 미만은 요금을 부과하지 않아 위와 같은 목적으로 개인 사용자가 간단한 프로젝트에 이용하기에 적합하다.

또한 IoT Core의 Message Broker와 Client 사이에 E2EE 연결을 설정하기에도 간편하고, 무엇보다도 가정에 설치하는 Base Station보다 훨씬 신뢰성이 높다.
사용자가 스위치를 조작함에 있어 기존 상용 제품들은 스마트폰 어플리케이션을 이용하는 방식을 활용하였는데, 이는 귀찮기도 하고(…) 무엇보다 앱의 UI/UX가 너무 구린 것이 많아서 Amazon Dash Button과 유사한 버튼 스위치를 하나 만들었다.
Github Repo

70 x 30mm (WxH)에 모든 부품을 구겨넣느라 패턴이 많이 더러워진 감이 없잖아 있지만, 일단 완성했다는 데에 의의를 두자.
버튼 스위치 보드에는 ESP8266과 보안 스토리지 IC인 ATECC508A, DS1337 RTC, AT42QT1010 Touch Sensor IC를 사용하였다.
NCV8161의 경우 3.3V LDO Regulator로, Quiescent Current가 약 18uA(Standby시는 0.1uA) 수준이라 저전력 회로에 적합하다. 버튼 스위치 보드의 경우 560mAh Li-Po 배터리를 사용하므로 IC들의 대기전류 소모량을 통해 계산해본 결과 약 100uA이므로, 배터리의 자가방전전류까지 포함한다면 약 서너 달은 너끈히 충전 없이도 사용 가능할 것이다.
RTC가 들어간 덕에 ESP8266을 주기적으로 킬 필요가 없어졌다(내장 RTC를 사용할 경우 정밀도도 떨어지고, 무엇보다도 deepsleep 기능을 이용하면 오버플로우로 인해 약 35분 간격으로 깨어나게 된다).

펌웨어로는 Mongoose OS를 사용했는데, 영 Documentation이 잘 기술되어 있지 않아 고생을 좀 많이 했다.
OS에서 제공하는 라이브러리를 사용하게 되면 PWM Max Frequency가 10kHz로 고정된다거나 하는 문제가 있어 Espressif에서 제공하는 RTOS SDK의 라이브러리를 사용하였다.

아직 PCB가 도착하기 전이므로, 도착 후 제작 이후에 내용을 추가할 예정이다.

아사히카와 -> 비에이 렌트카 여행기.

아사히카와에서 비에이까지는 렌트카를 이용했다.
오릭스 렌터카가 가장 싸서, 혼다 피트를 이용했는데 나름 컴팩트 차 치고는 커서 짐도 충분히 실을 수 있었던 것 같다.
어딜 가든 마찬가지지만 처음에 서류 작성과 스크래치 체크를 하고, 몇가지 주의사항을 안내받은 뒤 차량을 인도받는다.
10시부터 19시까지 약 9시간 요금은 주유비를 포함한다면 약 7500엔.

차를 렌트한 곳인 오릭스 렌터카. 쟈란넷을 통해 예약을 했다.

대물보상이 되는 보험인 RAP는 추가요금이 얼마 들지 않으니 들어두는 편이 좋다.
차량에 기본적으로 네비게이션이 있긴 하지만 메뉴 이외의 화면이 전부 일본어로 내오기 때문에, 휴대전화의 구글 맵 어플리케이션을 통한 네비게이션을 사용하는 편이 일본어를 잘 모른다면 좋은 선택일 것이다.
차를 인도해줄 때, 혹시 차 내에서 음악을 들을 것인지 물어보니 만약 음악을 들으면서 가고싶다면 그렇다고 답을 하자. AUX단자에 꼽을 수 있는 3.5mm 케이블을 준다.
참고로 일본어를 잘 못한다면 번역기를 이용하자. 직원들이 기본적으로 짧게 영어는 가능하지만 유창한 것이 아니기 때문에 의사소통이 어려울 수 있다.
몇 가지 더 추가하자면 한국과 반대인 것이 운행 차선, 운전석 위치, 방향지시등 스틱, 와이퍼 작동 스틱이다. 한국에서는 오른쪽에 있는 것이 왼쪽에 위치하니 여유롭게 조금 익숙해진 다음 차를 모는 것이 좋다.
한 가지 좋은 점은 외국인이 차량을 렌트할 때에는 차 뒤쪽에 외국인이 운전한다는 마크를 붙여준다. 운전에 조금 자신이 없다면 추가로 와카바 마크(초보자 마크)를 붙여달라고 하자.

아사히카와에서 비에이까지는 약 30km로 차량을 통해서는 40분 정도가 걸린다.
비에이 중심가에서 사계채의 언덕이나, 크리스마스 나무를 간다면 추가적으로 8~10km를 더 가야 한다.
비에이 중심에서부터는 약 10분 정도.
주변에는 편의점과 같은 시설이 아무 것도 없으니, 비에이 역 근처에서 먹을 것 등을 사가는 것을 추천한다.

비에이 시내. 어딜 가든 눈길이다.

처음은 크리스마스 나무를 보러 갔는데, 뭐가 있는거지 싶을 찰나에 흰 설원 가운데 솟아있는 소나무 한 그루가 보였다. 사람들도 차를 세우고 그 주변에서 사진을 찍고 있는 경우가 많아 쉽게 찾을 수 있을 것이다. 차를 세울 때에는 길 가장자리에 파여 있는 곳을 이용하는 편이 좋다.
크리스마스의 나무 주변으로는 사유지임을 알리는 표지판이 있었고, 비닐로 된 펜스가 그걸 둘러싸고 있다. 외딴 곳인데도 한국을 포함한 외국 관광객들이 꽤 많아 놀랐던 곳 중에 하나이다. 그런데 한국에서 온 사진 동호회 회원으로 보이는 사람들이 그걸 꾸역꾸역 넘어가 촬영을 하는 것을 보았다. 화가 나기도 하고 부끄럽기도 한데 좋게 이야기가 흘러갈 것 같지 않아 그냥 지나친 것이 조금 마음에 남는다.

크리스마스 나무(クリスマスの木)

두 번째로는 사계채의 언덕을 갔다.
주차장에 도착하면 딱히 보이는 것이 많지 않지만, 상점과 이어진 통로로 들어가면 스노모빌과 썰매 체험장이 있다. 우리는 스노모빌을 타기로 했는데, 코스는 1km짜리와 조금 더 긴 코스가 있었다. 1km 코스는 약 5분 정도의 길이로 이용 요금은 1000엔이다. 긴 코스는 5100엔인데, 가격에 비해 이용 시간이 길지 않아 고려 대상에서 제외했다.
이곳 역시 외국 관광객들이 꽤 오는지, 응대부터 코스 요금표까지 영어로 준비된 것이 있었다. 일본어를 할 줄 몰라도 간단한 영어로 스노모빌 운전 설명을 해 주니 걱정은 하지 않아도 된다.
자동차와는 다르게 스노모빌은 만 16세 이상부터 운전 가능하다.

세 번째로는 청의호수(青い池)를 갔는데, 조금 주의해야 할 것이 있다.
구글 맵을 사용하여 갈 경우에는 청의호수가 실제 위치보다 먼 곳으로 찍혀서, 주차할 장소를 찾기 어려울 수 있다. 비에이 중심가에서 청의호수를 갈 경우에는 차도 옆에 있는 표지판을 유심히 보다 보면 청의호수 주차장이라는 표지판이 있기 때문에, 그것을 따라가면 된다.
겨울철 청의호수는 호수가 얼고 그 위에 눈이 많이 쌓여 있어서 ‘이게 호수 맞나?’싶을 정도로 알아보기 힘들다. 이 날 오전 중 해가 비칠 때 가서 그랬는지는 몰라도, ‘내가 이걸 보기 위해서 왔나?’ 싶은 생각이 많이 들었다. 밤에는 파랗게 라이트업이 되어 훨씬 예쁜 풍경을 자랑하기 때문에, 이 곳을 방문하려면 아침보다는 밤에 오는 것이 좋을 것 같다.

청의호수(青い池). 겨울철에는 호수가 얼어 눈이 쌓여있다.

마지막으로 패치워크 공원을 가기 전에 비에이 역을 잠시 들렀다. 구글 맵 후기 중에 이쪽은 일몰 시간대에 가장 예쁘다는 리뷰가 있어서 그때까지 역 근처의 카페에서 시간을 보내기로 했다.
비에이는 역을 중심으로 주택가가 형성되어 있고, 주택가 곳곳에 상점들이 들어서 있어서 카페를 찾기가 여간 쉽지 않았다.
도착한 곳은 카페 키타코보(カフェ北工房).

카페 키타코보(北工房).

구글 맵에서 나름 평점이 괜찮아서 가게 되었는데, 주인 부부 내외는 2층에서 생활하고 1층을 카페로 사용하는 것 같았다. 주차 역시 가능하니 차를 가져간다면 참고하길.
일반적인 카페와는 다르게 들어가는 입구에서 신발을 벗고 카운터에 앉게 되어 있다. 일본어 밑에 영어로 메뉴가 적혀 있긴 하지만 한국어 메뉴 역시 있으니 요청하면 된다.
매장에서 직접 원두를 로스팅하고 분쇄하여 내린 데다가 홋카이도산 스팀밀크가 더해지니 설탕이나 시럽을 넣지 않아도 맛있을 만큼 부드러운 카푸치노를 먹을 수 있었다. 친구는 아이스 밀크티를 주문했는데, 우리가 생각하는 데자와 같은 당분이 들어간 것이 아니니 단 것을 좋아한다면 같이 주는 시럽을 넣어 마시면 된다.

주문한 카푸치노. 설탕을 넣지 않아도 맛있었다.

한 30분쯤 있다가 카페를 나와 마지막 장소로 향했다.
4시가 다 되어가는 시각에 눈도 많이 내리고 벌써 어두워지기 시작해 조금 겁을 먹은 상태였다.
아쉽게도 도착한 곳 역시 눈이 많이 내려 가시거리가 400m정도밖에 되지 않아 풍경을 감상하기엔 무리가 있었다. 아쉬운 대로 인증사진만 찍고 더 어두워지기 전에 얼른 아사히카와로 향하기로 했다.
시속 50km 제한이라고 붙어있어도 7~80km 가까이 속도를 내는 차들 때문에도 조금 무섭긴 했지만 무엇보다도 스노우 타이어조차 미끄러지는 노면과 짧은 가시거리 때문에 운전을 하기 시작한지 얼마 되지 않는 나에게는 힘든 시간이었다.
구글 맵을 내비게이션으로 써서 실시간으로 차량 통행량을 반영해 빠른 길로 안내를 해 준것은 좋지만 밤길에 초행인데다 바닥도 미끄러워서 시골길 왕복 2차선 도로를 타고 아사히카와로 돌아가는 길이 더욱 길어보였는지도 모르겠다.

비에이로 가는 길. 차선이 보이지 않아 저렇게 화살표로 표시하여 준다.

40km를 달려 시내로 들어오자 신호등때문에 이번엔 한 번 곤욕을 치렀다.
한국과 다르게 일본은 빨간불일 때 모든 방향으로의 진행이 불가능한 대신 초록불일 때 특별히 파란색 표지판으로 정해진 진행방향이 없다면 모든 방향의 진행이 가능하다. 아사히카와의 경우 노면이 눈과 얼음으로 뒤덮여 있어 지금 차의 진행차선이 좌/우회전이 가능한 차선인지 확인이 어렵기 때문에 전적으로 신호등과 표지판에 의존해야 한다. 그런데 네비게이션에는 우회전을 하라고 말을 해도 표지판에는 직진과 좌회전만 가능하다고 되어 있거나 비보호 우회전 탓에 뒤에 오는 차량 눈치가 보여 막상 길을 제대로 가기가 힘든 때가 많았다. 이 때문에 시내에서만 약 40분을 소요했다.

한편 일본에서 렌트카를 반납할 때에는 차에 기름을 가득 채워 반납하지 않으면 패널티 요금이 부과된다. 이것 때문에 처음에 차를 인도받을 때 안내받은 주유소에서 기름을 채우려고 구글 맵에 검색해 봤지만 나오질 않아서 오릭스 렌터카에 한 번 들러 가장 가까운 주유소(일본에선 가솔린 스탠드라고 한다)를 물어보았다. 비용에 크게 민감하지 않았기 때문에(렌트한 차량이 하이브리드여서 주유한 양이 10L도 되지 않았다) 추천받은 코스모 정유로 향했다. 일반적으로 일본 주유소들은 높은 인건비 탓에 무인 주유소가 많은데, 이곳은 한국처럼 점원이 모든 것을 처리해준다. 대신에 가격이 좀 비싼 것이 흠이다.
가솔린을 가득 채운 차는 다시 렌터카 업체에 돌려주고 오면 끝.

저속이긴 했지만 두 번 차가 미끄러지고, 역주행도 한 번 할 뻔 하고, 반대 차선에서 오던 차가 직진하던 내 차를 보지 않고 횡단을 하는 바람에 추돌사고도 한 번 날 뻔 했지만 그걸 제외하면 한적한 길이 많아서 크게 위험하진 않았다.

저녁을 먹은 징기스칸 구이집.

저녁은 숙소 근처의 징기즈칸 구이를 파는 곳으로 정했다.
타베로그 평가도 나쁘지 않고, 가격도 크게 비싸지 않아서 조금 기대를 하고 갔다.
가게 안이 좁은 편이라 움직이기 힘든 감이 조금 있다.
여느 징기즈칸 구이집처럼 화로에 고기를 구워 주는 것은 처음만이고, 두 번째 고기를 올리는 것부터는 손님이 직접 해야 한다. 서울의 고깃집들이 대부분 직원들이 고기를 구워주는 것과 다른 점이다.
메뉴를 주문하기 전에 마실 음료를 먼저 이야기해야 하는 것이 조금 특이했다.
고기는 1인분에 약 700엔인데, 2인 기준으로 약 5인분을 시키고 추가로 밥을 시켜야 적당히 먹을 수 있다.
높은 타베로그 점수에 비해 내 평가는 그저 그렇다.
첫째로 화로의 온도가 너무 높아 처음에 비계로 무쇠판에 기름칠을 하면 불꽃이 솟아오르는 것이 예사이다.
둘째로 고기의 질이 그렇게 좋은 편은 아니다. 양을 생각하면 가성비가 별로 좋지 못하다고 평가할 수 있겠다.
마지막으로는 채소 리필이 양배추나 파만 따로 가능하지 않다. 처음에 채소를 담아준 것을 다 먹었을 때만 처음에 나온 것처럼 리필이 가능하다. 하지만 리필 자체는 무료로 가능하니 이건 장점이라 할 수 있겠다.
둘이 술 두 잔과 고기 5인분, 밥 한 공기를 먹고도 한 사람당 2000엔 미만으로 돈을 냈으니 그렇게 비싼 것은 아니다.
한편 타베로그나 다른 사이트에서 좋은 평가를 받아서 그런지 외국인 손님도 꽤나 많았다. 물론 8할은 내국인이었지만.

자동차를 타고 여행한 것은 처음이라 위험한 순간도 있었고 긴장도 많이 했지만 경치가 너무 아름다워서 기억에 남는 것이 많다. 처음과 끝을 눈으로 마무리하는 타국에서의 여행은 앞으로도 오래 기억에 남을 것 같다.

Raspberry Pi Zero W의 Wi-Fi 설정

최근 Argon40를 통해 Raspberry Pi Zero W를 구입했습니다.
Raspberry Pi 3과 같은 Wireless LAN 칩을 사용한 Zero 시리즈로 단돈 15$면 배송비 포함으로 라즈베리 파이로 할 수 있는 것들을 대부분 할 수 있죠.
물론 Orange Pi Zero보다는 가격 대비 성능이 떨어지지만,
그래도 Raspberry Pi라는 플랫폼의 특성 상 지원이 빵빵하다는 점에서 사용하기 편한 점이 많습니다.

처음 Zero W를 받고 설정을 해 보았는데, Wi-Fi 연결이 되지 않았습니다. Debian에서는 AP 연결 설정을 /etc/wpa_supplicant/wpa_supplicant.conf를 통해 하게 되어 있는데, 이 중에서 Country 설정을 KR로 바꾸게 되면 wpa_supplicant 프로세스가 맛이 가버리는 문제가 있습니다.

따라서 이 문제를 해결하기 위해서는 Country 설정을 다른 나라로 바꾸고,
Airport 계열의 라우터를 사용하시는 경우 국가 설정을 대한민국 이외의 국가로 설정해 주셔야 접속이 가능합니다.
이는 wpa_supplicant를 -dd 옵션으로 실행하여 보면 확인할 수 있습니다.

이렇게 Wi-Fi 연결 설정을 마친 뒤에는 아마 raspi-config나 GUI 상에서 Wi-Fi를 설정하는 것이 불가능해질 것입니다.
그러나 wpa_supplicant.conf 파일의 Wi-Fi 설정을 비운 후 iwlist를 통해 스캔을 해 보면 잘 되므로,
너무 걱정하지 않으셔도 됩니다.
Stretch뿐만 아니라 Jessie에서도 같은 문제가 일어나는 걸로 봐서는 Broadcom 칩셋의 드라이버 문제로 보입니다.

WordPress에서의 업그레이드 오류 대처법

필자는 Centos 7을 SELinux Enforced 모드가 활성화된 채로 운용하고 있다.
이게 당연히 맞는 이야기이고, 몇 가지 문제점이 생긴다고 해서 SELinux 자체를 비활성화 시킨다는 것은 내 정보는 공공재입니다~ 하는 것과 마찬가지라 생각해 문제가 조금씩 있더라도 자료를 찾아가며 해결하려 하는 편이다.

최근에 APM(Apache + PHP + MySQL)에서 Nginx + PHP-fpm + MariaDB 구성으로 넘어오면서 데이터 이전을 했는데, 워드프레스 코어 업데이트가 되지 않는 문제가 발생했다.
구글신의 힘을 빌어 chcon -t httpd_sys_script_rw_t (path_to_wp-content)를 먹이면 된다는 말에 혹해 해봤지만 실패.
혹시나 chowning이 문제인가 싶어서 nobody:nobody를 해봤는데도 실패.
나는 nginx를 사용하고 있었기에, 당연히 nginx daemon이 파일 쓰기 권한이 없어서 그런가보다 싶어서 chown nginx:nginx를 해봤지만 이것도 실패.

결과적으로 chown apache:apache가 답이었다.
워드프레스 루트 폴더의 php 파일들은 chcon -t http_sys_script_exec_t *.php로 권한을 주어야 하고, 워드프레스 루트 폴더는 chown -R apache:apache (path-to-wp-root) 으로 소유자 설정을 한 후, wp-content 내의 폴더들은 chcon -R -t httpd_sys_script_rw_t *를 주어야 정상적으로 작동한다.

위 내용을 적용해도 안 될때는, setenforce 0로 SELinux Enforcing 모드를 Permissive로 바꾼 뒤에 하려던 작업(워드프레스에서의)을 실행해보고, /var/log/audit/audit.log를 참고해 어느 권한이 문제가 되는지 확인해 보자.

-추가-
이렇게 적용을 해도 무슨 문제인지 PNG파일은 업로드가 되지 않고, JPG/JPEG 파일만 업로드가 정상적으로 된다. 이건 워드프레스 자체의 문제로 보이는데… 더 알아봐야겠다.

ODROID C2 사용기.

_DSC1215_DSC1216_DSC1218_DSC1219_DSC1223 _DSC1231

폼팩터는 RPi3과 동일하다.
스토리지로 eMMC를 사용할 수 있다는 것과, Bluetooth 및 WLAN 탑재가 되어 있지 않다는 것이 주요한 차이점.
물론 arm64 환경이라는 것도.

microSD를 사용한다면 Sandisk社의 제품을 사용하는 것이 좋다.
현재 필자가 사용하고 있는 제품은 Sandisk microSD Extreme 32GB UHS-I U3.
하드커널에서 공식적으로 부팅 시에 지연 현상을 방지하려면 Sandisk社의 제품을 사용할 것을 명시하고 있다.

한 가지 이해가 안 가는 점이 있다면 다들 공감하는 microSD의 삽입 위치.
참 애매한 위치다.

_DSC1234_DSC1238 _DSC1237

케이스를 씌운 모습.
측면에는 microUSB OTG 포트와, HDMI 풀사이즈 포트, DC 전원 포트가 있다.
DC 전원 포트를 사용하는 대신 microUSB로 전원 공급 역시 가능하다.

VNC 서버 설치기. (ODROID C2)

라즈베리 파이의 성공을 필두로, 많은 종류의 임베디드 보드가 생겨났다.
SATA를 지원하는 큐비보드나, 아주 작은 사이즈의 C.H.I.P. 등 기능도 모양도 다양하다.

이 중에서 나는 ESP8266을 제어하기 위한 서버가 필요했기 때문에, 커뮤니티 지원이 가장 활발한 라즈베리 파이 3과 조금 더 나은 하드웨어 스펙을 자랑하는 ODROID C2 중에서 고민하다 결국 후자를 택했다.

RPi3과 C2의 하드웨어 스펙 중 가장 큰 차이가 나는 부분은 CPU 클럭과 메모리, 그리고 OS 아키텍쳐이다.
RPi3과 C2 모두 ARM의 Cortex-A53 쿼드코어를 사용하지만 RPi3은 1.2GHz이고, C2는 2GHz로 조금 더 높다.
메모리의 경우는 DDR2 1GB(RPi3) vs DDR3 2GB(C2).
사용하는 OS 아키텍쳐는 RPi3이 32bit, C2가 64bit이다.
자세한 비교는 다음 링크를 참고하면 될 것이다. (링크)

사실 ARM64라는 플랫폼에서의 Linux 지원은 현재 아직 미흡한 단계지만, 성능이 조금 더 낫지 않겠나 하는 생각에 산 것이다.

참고로 C2의 경우 기본 지원 OS는 안드로이드이다.
제조사인 하드커널社는 임베디드 개발 보드로 유명한 한국 회사.
리눅스도 배포하고 있지만 어디까지나 심심풀이로 하는 것에 지나지 않는다고.

본론으로 들어가서, ODROID C2에 VNC 서버를 사용하려고 하면 애로사항이 조금 있다.
VNC 서버 중 tightvncserver나 vnc4server를 사용할 경우, 화면이 정상적으로 표시되지 않고 회색으로만 나타나는 현상이 발생한다.

이를 해결하기 위해선 ~/.vnc/xstartup을 수정해 주면 된다.

마지막 줄의 /etc/X11/Xsession을 주석 처리해 주고, 밑에 다음과 같이 두 줄을 추가한다.

1
2
3
# /etc/X11/Xsession
unset DBUS_SESSION_BUS_ADDRESS
exec /usr/bin/matesession &
cs

Python 3.5.2 설치하기. (CentOS 7)

CentOS 7에는 기본적으로 Python 2.7이 설치되어 있다.

하지만 Python 3.5 버전 이상이 필요한 경우 yum으로는 최신 버전이 3.4이고, 설치할 때 Python 3용 pip가 함께 설치되지 않는다.

이런 귀찮음이 있어서 그냥 curl로 make install을 하는 편이 편하다.

방법은 다음과 같다.

[rita@rita /]# cd /usr/src
[rita@rita src]# curl -O https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
[rita@rita src]# tar xf Python-3.5.2.tgz
[rita@rita src]# cd Python-3.5.2
[rita@rita Python-3.5.2]# ./configure
[rita@rita Python-3.5.2]# make
[rita@rita Python-3.5.2]# make install

curl로 파일을 받을 폴더로 지정한 /usr/src는 사용자 취향대로 수정은 하면 되고…
/usr/local/bin에 들어가 보면 설치한 Python 3.5.2는 python3 또는 python3.5로 실행할 수 있다.
pip 역시 pip3.5 또는 pip3 모두 가능.

make install 후 python3 명령어 실행이 되지 않는다면 reboot를 하자.

SKY IM-100 구입기.

지금까지 써오던 iPhone 5s가 조금씩 느려지고 있기도 했고, 안드로이드로 갈아타야지 하는 생각이 겹쳐 Xperia X Performance와 SKY IM-100 중 고민을 하다 IM-100으로 생각이 기울었다.

첫 번째로 저렴한 가격, 그리고 두 번째로 깔끔하고 각진 디자인이 그 이유였다.
필자의 경우 휴대전화의 주 사용 목적이 SNS와 유튜브 정도라서, 굳이 플래그십 스마트폰 정도의 성능이 필요하지 않은 점도 한 몫을 했다.

구입한 가격은 10만 원 대.
기기 출고가가 40만원 대로, 공시지원금을 다 받는다면 할부원금이 약 10만 원 대로 나온다.

_DSC1158

박스의 전면부.
요즘은 애플 제품의 패키징 디자인을 많이 따라 심플한 것이 특징.

_DSC1171

박스를 열어 보면 IM-100이 반겨준다.
_DSC1185_상당히 각진 디자인.
예전 Xperia Z 시리즈나, Vega Iron을 보는 느낌이다.

_DSC1179

스피커와 microUSB 포트.

_DSC1180

제품의 상징인 금색 휠과 전원 버튼, 그리고 USIM/microSD 슬롯.

_DSC1197

요즘은 일체형 디자인이 많아 이런 식으로 microSD를 삽입할 수 있도록 하는 경우가 많다.
간혹 microSD 또는 USIM을 추가로 하나 더 삽입하도록 해서 Dual SIM을 구현하는 경우도 있고.

_DSC1181

상단의 3.5mm 잭과 소음 감소용 마이크.

_DSC1188

번들 충전기와 충전 케이블.
IM-100은 스톤으로 무선 충전도 가능하고, microUSB를 통해 유선 충전도 가능하다.

_DSC1189

DC 5V/1.6A 출력.
스마트폰이 보급될 때 쯤의 충전기 출력은 약 1A.
이후 스마트폰의 스펙이 상향평준화 되면서 조금씩 늘어나더니 요즘은 1.5A 이상이 많다.
아쉽게도 퀵차지는 지원하지 않는다.

_DSC1195

번들 무선 충전기 겸 스피커인 스톤.
첫 느낌은 턴테이블을 닮았다는 것.
LED를 달은 턴테이블이랄까.

_DSC1190 _DSC1191 _DSC1193

스피커의 출력은 3W+3W+우퍼.
2600mAh 배터리가 내장되어 있어 휴대용 스피커로도 사용할 수 있다.
무선 충전기로 사용할 때 출력은 5V/1A.

한 차례의 구조조정을 겪고 탄생한 IM-100.
모바일 사업부의 존치를 고민하고 있는 LG, 소니와 달리 제대로 소비자의 마음을 간파한 것 같다.
앞으로도 계속 좋은 제품을 출시해 주길.

SAMSUNG 850 series EVO 250GB (MZ-75E250B/KR) 구입기.

원래 사후 지원이 잘 되는 삼성 제품을 예전부터 봐 오긴 했었다.
좋은 평가도 있었지만 그래도 SSD 하나가 뭐 그렇게 다르겠나 싶어서 리뷰안테크 제품을 구입했고,
일이 터졌다.

때는 지난 주 토요일 자정.

갑자기 컴퓨터가 부팅만 하면 OS를 로드하는 도중 크래시가 나는 증상이 생겼다.
불과 1시간 전까지만 해도 멀쩡하게 사용했던 컴퓨터가 대체 왜…?
불길한 기운이 들어 급하게 Windows 복구 디스크를 만들어 복구를 실행했다.

그리고 그 이후, SSD가 아예 인식이 되지 않는 상황에 빠져 버렸다.
“그래, SSD에는 중요한 자료가 없으니 괜찮아. 하드는 괜찮겠지” 하는 마음으로 다른 컴퓨터에 하드를 물려 보았다.

파티션 인식이 되질 않는다.

패닉이었다. 2시까지 약 2시간 동안 어떻게든 살려야 한다는 생각으로 온갖 방법을 다 동원해 봤지만 어쩔 수가 없었다.
눈물을 머금고 하드를 포맷한 뒤 건질 수 있는 자료들만 건지고(하드 용량 중 1테라를 따로 파티셔닝해놓은 덕에 그 자료들은 온전했다) Windows 10을 설치했다.

그렇게 해서 부랴부랴 새벽에 SSD를 퀵으로 주문하고 아침에 다시 일어나 봤더니 주말엔 배송을 안 한다고(…)

덕분에 오늘 바깥 바람도 쐴 겸 물건을 직접 수령해 왔다.

 _DSC1145_DSC1150

 인클로저는 경량의 얇은 금속 재질. 발열을 해결하기 위한 것으로 보인다.

_DSC1153 _DSC1155 _DSC1156 _DSC1157죽어버린 SSD를 분해해 봤다.
처음엔 흔한 접촉 불량인가 싶어 커넥터를 다시 납땜해 보기도 하고, 지우개로 단자 부분을 문질러도 봤지만 별 소용이 없었다.

이 제품의 컨트롤러는 SMI社의 SM2246EN으로, 주로 중저가형 SSD에 많이 사용된다.

여담이지만 이거, 나름 1600TBW까지 버틴다고 선전한 물건이다(…).
개인적으론 저장장치에 투자를 조금 더 해서, 필자와 같은 사태를 겪지 않았으면 한다.

이 일이 있기 전에도 가끔 SSD가 인식이 되지 않는 일이 있었다.
그 때마다 SATA 선만 뺐다 끼워주면 문제가 없길래, 접촉 불량 문제인가 했었다.
다시 말하지만, 저장 장치엔 투자를 조금 더 하자(…).
물론 CTRL+S는 기본 소양이고.

새로 산 850 series EVO는 나름 괜찮다.
TLC라 수명이 짧다고 꺼리는 사람도 있겠지만, 일반적인 사용자에게는 문제가 되지 않는 수준.
Data Migration 툴을 제공해 주어서 OS 설치를 다시 하지 않아도 된다는 점이 편했다.
가격도 10만원 이하이니 가성비로는 상위권이지 않을까.

SSD_INFO SSD_MARK

TLC답지 않게 높은 성능을 자랑한다.
보통 TLC의 경우 Access Time이 늦기 마련인데, 이것은 그런 현상이 없다.

작은 용량의 SSD를 구입하여 사용하는 경우, 용량의 제약이 많아 WIMBOOT를 사용하기도 한다.
그러나 별도로 PE버전의 Windows에서 작업한 이미지를 다시 설치해야 하기 때문에 복잡한 점이 많다.
사용하는 OS가 Windows 10인 경우, CompactOS를 활용하면 WIMBOOT만큼은 아니지만 공간 확보에 도움을 줄 수 있다.

cmd