마이크로봇 푸시 사용 소감

‘마이크로봇 푸시’라는 물건을 펀샵[1]에서 사 봤다. 물리적으로 버튼을 눌러주는 소형 머신인데, 블루투스로 작동가능하므로 원격으로 제어가 가능하다.

사실 이런 건 휴대폰을 찾아서 앱을 켜기가 더 귀찮기 때문에-_- 그냥 누르고 말지, 전혀 편리해 보이지 않는다. ㅋㅋㅋ 다만, 여름에 극강의 더위 아래서 진짜 꼼~짝도 하기 귀찮은 순간이나, 감기 몸살에 너무 아파서 몸을 움직이기 힘들 때 좀 편리하더라-_- 블루투스로 전력을 통제하는 와트드림[2]을 써 보니 편리한 점은 타이머 내장을 활용할 때인 듯 하다.

뭐 여하간 이런 걸 기대하고 산게 아니라 목적은 따로 있다. 제조사 홈페이지의 설명[3]을 보니 이 제품은 IFTTT를 지원하는데, 이걸로 아마존 에코와 연동할 수 있다고 돼 있다. 그럼 혹시 말로 제어가 가능한게 아닌가?!?! 선풍기 켜!!! 하면 선풍기가 돌아간다면, 왠지 이거 좀 신세계 같다. ㅋㅋㅋㅋㅋ

여하간, 내 아마존 에코가 배송대행 덕분에 지금 통관중이라서 조금 구미가 당기길래, 마이크로봇 푸시를 5개 샀다. ㅎㅎㅎ 선풍기 제어를 시험해 봤다.

그냥 해도 충분히 잘 작동한다. 그러나 푸시의 수명을 늘리고 좀 더 쉽게 작동될까 싶어서, 선풍기 바닥부분을 분해해서 바람 강도 조절 버튼에 있는 스프링을 니퍼로 좀 잘라내서 스프링을 약하게 개조했다. (위 영상은 개조 전임) 이건 그냥 재미로 해봤음. ㅋㅋㅋ

휴대폰에 직접 블루투스로 링크하여 제어하려면, 폰이 저전력 블루투스(BLE)를 지원해야 하고, 이유는 모르겠지만 위치서비스가 켜져 있어야 한다. 와트드림[2]도 위치서비스가 켜져야 작동가능한 걸 보면 BLE의 어떤 특징이 아닌가 싶기도 하고, 잘 모르겠음.

머신의 위쪽에 터치 버튼이 있어서 버튼을 터치하면 그냥 작동된다. 누르는 깊이도 앱[4] 설정에서 제어 가능하다. 한 번 페어링을 한 후에, 다른 기기랑 페어링하고 싶으면 푸시 기기를 초기화 해야 한다. 초기화 하는 법 영상[5]을 참고하시라.

근데 에코와 연동하려면 ‘프로타’라는 중계기가 있어야 했다.[3] 프로타를 사려니, 다 매진이라 영 구하기 어려운 듯 해 보이던데, 다행히도 제조사에서 라즈베리 파이가 프로타 기능을 할 수 있는 라즈베리 파이용 프로타 OS를 배포[6]하고 있었다. 이게 웬 떡인가? ㅋㅋㅋ

무선 wifi와 블루투스 모듈이 없는 구형 파이는 동글을 달아야 하는데, 파이3부터는 내장 블루투스 모듈이 있으므로 그것도 필요없다. 파이3 Model B와 sd카드를 슥샥 구입해서 프로타 OS를 설치해 봤다. 설치법은 라즈비안과 같이 sd카드에 이미지를 밀어 넣으면 된다. 퀵 가이드[7]를 참고하시라. 고대로 따라하면 됨.

OS 제어를 어떻게 하는가 궁금했는데, 모니터에 연결할 필요도 없다. 모든 제어는 휴대폰에 설치된 프로타 제어 앱[8]으로 한다. 처음 부팅할 때 아무 반응도 없이 5~10분정도 좀 시간이 걸리는데, 화면도 안 나와서 고장난 줄 알고 좀 당황함 ㅋㅋㅋ 프로타와 푸시를 연결하면 휴대폰에는 블루투스가 필요없다. 휴대폰에서 명령을 보내면 프로타를 거쳐 푸시가 제어된다.

그리고 최초 이메일 등록이 한 번 필요하다. 뭐 홍보 목적이 아닐까 싶다. 앱에서도 푸시를 제어 가능하지만, 앱의 홈스크린 화면 우측 상단에 클립 모양을 누르면, 파이3을 제어할 수 있는 url을 등록된 이메일로 전송해준다. 이 url을 이용하여 웹 인터페이스로 프로타를 제어할 수 있다. 잘 만들었군. ㅎㅎ 컴퓨터 앞에서 선풍기 켜고 끌 때 편하겠구만. ㅋㅋ

프로타는 독자 OS라서 푸시를 제어하는 것 말고도 몇 가지 기능이 더 있는 것 같다. 파이 전용 카메라[9]를 꼽아서 웹캠 앱을 설치하니, 모션을 자동 감지해서 스냅샷을 남겨주는 기능도 달 수 있다. 근데 스냅샷을 지우는 방법을 모르겠네-_-

IFTTT를 이용해서 여러가지 트리거를 만들 수 있다고 한다. 누가 벨을 누르면 텔레그램으로 벨을 누른 사람의 사진을 보내고, open이라고 메세지를 전송하면 문이 열리는 식이다.[10]

여하간 과연 아마존 에코와 연동해서 말로 선풍기를 제어할 수 있을 것인가???? 제발 잘 돼야 될텐데-_-

 


[1] https://www.funshop.co.kr/goods/detail/50286
[2] 내 백과사전 와트드림을 구입하다 2015년 6월 26일
[3] 아마존 에코(Amazon Echo)와 연동 (support.thenaran.com)
[4] 마이크로봇 푸시 (google playstore)
[5] 마이크로봇 푸쉬 리셋 하기 (youtube 1분 39초)
[6] 프로타 Bernard 다운로드 (prota.info)
[7] http://docs.prota.info/101-prota-pi/
[8] Prota Space(베타) (google playstore)
[9] 라즈베리파이 카메라모듈 V2 8Megapixel (icbanq.com)
[10] 4000円でスマート・ドアベルを自作してみよう (qiita.com/NARAN/)

라즈베리 파이로 RAID 0 만들어서 토렌트 머신 만들기

방에 오래된 짜투리 sd 카드들이랑 짜투리 저장장치틀이 몇 개 있는데, 용량이 애매~~~해서 어디 가져다 쓰기가 뭣하다.ㅋㅋ 이거 전부 한데 업쳐서 단일 대용량 장치로 만들어서, 토렌트 머신을 돌리고 samba 서버를 설치하면, 밤에 잘 때 다 받아 놨다가 스트리밍으로 누워서 보면 좀 편하겠구나 싶어서-_- 시도해 봤다. 라즈베리 파이니까 전기 요금도 별로 안 들 것 같은데, 같은 생각을 하는 사람이 원체 많은 건지-_- 검색하면 엄청 나온다. 걍 기록차원에서 포스팅함.

일단 라즈베리 파이는 설치는 다 됐다 치자. 어차피 서버니까 비디오 메모리 할당은 조금만 해 두면 좋다. 다음 작업들은 모두 관리자 권한(sudo)로 해야 한다.

일단 가지고 있는 저장장치는 라즈베리파이 os가 설치된 4G짜리 sd카드 외에, 16G, 64G, 128G용량의 sd카드 3개가 있고, 아주 구형 mp3플레이어에서 분리한 ZIF타입의 하드디스크 20G짜리 1개가 있다. 이걸 usb에 몽땅 달고
fdisk -l
이라 치면 연결된 디스크 목록이 나온다. 그 다음은 어느 친절한 사이트[1]를 통째로 따라함-_-
mdadm 설치 후 (apt-get install mdadm)

mdadm --create --verbose /dev/md0 --level=0 --raid-devices=4 /dev/sda1 /dev/sdc1 /dev/sde1 /dev/sdf1

라고 치니까 간단히 합쳐졌다. 초 쉽네-_-

참고로, RAID 0은 연결된 디스크들 중에 하나라도 고장나면 전체 데이터를 못 쓴다고 한다. 중요한 파일은 저장하지 말자.

포맷하고 (mkfs.ext4 /dev/md0) (시간 살짝 걸림)
마운팅 포인트 만들고 (mkdir /home/pi/raid)
권한 주고 (chmod 777 raid)
/etc/fstab에 다음 한 줄을 추가하고

/dev/md0     /home/pi/raid    ext4    defaults   1   2

마운팅 하면 (mount -a)

200기가 바이트의 디스크가 생겼다. ㅋㅋ 경로 같은 건 각자 수정하시라.

samba서버 설치하는 법은 다른 블로그[2]를 보고 따라했음. 그 다음 transmission 데몬을 설치하면 되는데, 이건 뭐 설명하는 사이트가 하도 많아서 생략. ㅋ

마지막으로
service transmission-daemon status
라고 치니까 무슨 UDP failed to set receive buffer 이런 에러 메세지가 뜨던데, 어느 사이트[3]에서 해결법이 나와 있었다.
/etc/sysctl.conf 파일을 열어서 맨 마지막에 다음 두 줄을 추가한다
net.core.rmem_max = 16777216
net.core.wmem_max = 4194304

예전에 라즈베리 파이로 삽질[4]한게 하도 많으니까 대충 봐도 다 이해 되는구만-_- 여하간 모든 장비를 구석탱이에 몰아 넣고 선 정리하면 완성! ㅎㅎㅎ 자유 소프트웨어가 좋긴 좋다. ㅋㅋㅋ 자유 소프트웨어 만세!!

 


2017.10.18
samba서비스는 디폴트로 쓰기 권한이 막혀 있다. 쓰기 권한을 얻으려면 /etc/samba/smb.conf 파일을 열어 [homes]항목 아래의 read only = yes 를 no로 바꿔주고 create mask = 0775, directory mask = 0775로 바꿔주고 서비스를 재시작 (service smbd restart) 하면 파일을 쓸 수 있다.
transmission의 web ui에 아이디와 비번으로 접속하기 번거로울 때는 /etc/transmission-daemon/settings.json 파일을 열어 “rpc-authentication-required”의 값을 false로 바꾸면 된다.

 


2017.10.22
아무 생각없이 라즈베리 파이를 확 껐다가 16G sd카드 하나가 맛이 가는 바람에 완전 생고생했다-_- 남은 다른 디스크들은 재마운트가 안 되는데 해결 방법은, 레이드 디바이스 정지 (mdadm –stop /dev/md0) 후 수퍼블럭을 제거 (mdadm –zero-superblock /dev/sda) 하면 됨.

 


[1] How to set up software RAID for Raspberry Pi in Funnyvale
[2] 라즈베리파이(Raspberry Pi) 삼바(Samba) 서버 만들기 (라즈비안 파일서버 설치방법) by 빌노트
[3] TRANSMISSION UTP AND UDP BUFFER OPTIMIZATIONS in Falks Blog
[4] 내 백과사전 Raspberry Pi 2를 구입하다 2015년 3월 14일

오렌지 파이 제로 wifi 연결하기

라즈베리 파이 제로를 꽤 구하기 힘들던데, 아이씨뱅큐에서 마침 오렌지 파이 제로를 팔길래[1] 하나 슥샥 사 봤다. 와~ 컴퓨터 진짜 작다. 신용카드 크기의 절반 정도? 원래 가격은 7달러라서 아이씨뱅큐의 가격이 조금 비싼듯 하지만, 배송비랑 배송기간을 생각하니 기냥 몇 천원 더 주고 사는 게 나을 듯-_-

참고로 발열이 심하다. 발열 때문인지 몰라도 가끔 다운 되는 경우가 있던데, 방열판을 달면 괜찮아진다. 방열판은 필수라고 본다.

비디오 출력이 없어서 제어를 하려면 랜선을 꽂아서 ssh로 접속해야 한다. ㅋㅋ 집에 공유기가 없는 사람은 시리얼포트로 접속해야 한다는데, 과정[2]이 약간 까다로운 듯 하다. 근데 요새 집에 공유기 없는 사람도 있나-_-

기존에 파이2[3]를 개인적 용도의 웹서버 겸 ftp서버로 쓰고 있었는데, 이걸 오렌지 파이 제로로 교체하기로 했다. 제로용 Armbian Debian Jessie[4]를 설치했는데, 이미지 용량이 꽤 작다. 집에서 안 쓰는 2G 용량의 마이크로 sd 카드를 활용하기로 했다. usb 포트도 하나 있기 때문에, 안 쓰는 8G 용량의 usb 메모리 스틱을 하나 꼽아서 쓰기로 했다. 그래서 아파치 서버도 깔고 ftp서버도 깔고 여기까지는 문제 없다.

근데 이놈이 아무리 용을 써도 wifi 연결이 안 되는 것이었다. 와 이것 때문에 삽질에 삽질을 거듭 했는데, 어느 동영상[5]에 나오는 걸 따라하니 한 방에 된다-_-

동영상[5] 보기 귀찮은 사람을 위해 요약하자면 다음과 같다.

  1. /etc/network/interfaces
    파일의 내용을 다 삭제하고
    auto lo
    iface lo inet loopback

    auto eth0
    allow-hotplug eth0
    iface eth0 inet dhcp

    allow-hotplug wlan0
    iface wlan0 inet manual
    wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
    iface default inet dhcp

    라고 넣는다.

  2. /etc/wpa_supplicant/wpa_supplicant.conf
    파일 (없으면 만든다)을 열어서
    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1

    network={
    ssid=”와이파이 이름”
    psk=”패스워드”
    }
    라고 넣는다.

  3. 재부팅

근데 통신 속도가 초 느리네-_- 부하가 걸릴만한 작업은 별로 안 해서 상관 없는데, 어지간하면 좀 써보고 정 느리면 파이2로 돌아가야지 ㅋㅋ

 


[1] https://www.icbanq.com/P007558033/
[2] 오렌지파이 제로 보드 간단 사용기 by 살레시오
[3] 내 백과사전 Raspberry Pi 2를 구입하다 2015년 3월 14일
[4] https://www.armbian.com/orange-pi-zero/
[5] https://www.youtube.com/watch?v=8zGRAPguaSQ

음성인식 스마트 거울 만들기

일전에 본인이 스마트거울을 만든 적[1]이 있는데, 재주 많은 사람들이 이 기능을 넘어서 음성인식이 되는 스마트 거울을 만든 걸 몇 개[2,3] 봤다. 헐! 이걸 보니 나도 한 번 만들어 보고 싶어 좀이 좀 쑤셨다-_- 근데 정말 짧은 지식으로 이걸 구현하려니 알아야 할 게 너무 많고, 시행착오도 무지하게 많이 했다. ㅋㅋㅋ

[2]에 설치과정에 대한 매우 친절한 설명이 있으나 결국 실패했다. 설명을 쭉 봤는데, 중간에 구글 개발자 등록을 해서 음성 api를 개설해야 하는 과정이 있어서 좀 걸렸다. 그리고 따라하다보니 뭔가 컴파일 에러인지 생기는데, 이걸 해결할 재주가 본인에게는 없어 포기…-_-

여하간 본인이 구현한 음성인식 스마트 거울은 크게 세 부분으로 구성되는데,

  1. 사람이 발화하면 이것을 텍스트로 변환 (speech to text; stt)
  2. 각 텍스트에 맞는 처리 (javascript와 perl 사용)
  3. 처리 결과를 음성으로 출력 (text to speech; tts)

그래서 ‘거울아~’ 하고 부르면 ‘네 주인님’ 하고 대답을 하는 거울을 만들고 싶어졌다. ㅋㅋ 참고로 Snow White에서 Evil Queen이 Magic Mirror를 부르는 대사가 뭘까 검색해 봤는데, ‘Mirror, mirror, on the wall’ 인 듯… ㅋ

원래 본인의 계획으로, tts 부분은 안면이 있는 여고생-_-한테 부탁해서 지정된 대사를 녹음한 뒤, mp3파일을 출력하는 방식을 검토하고 있었다. (엄밀히 말하면 tts는 아니지만…) ㅋㅋㅋ 그런데 responsive voice라는 사이트[4]에서 자바스크립트로 tts를 구현할 수 있도록 제공하는 라이브러리를 제공하는데, 음성합성 성능이 대단하다! 비상업적인 개인 사용에 한해 무료이고 자바스크립트만으로 전부 다루는게 가능하므로 사용이 매우 간단하다. 그래서 tts는 쉽게 해결할 수 있었다.

문제는 stt부분인데, 웬만하면 한국어로 구현하고 싶었기 때문에 이게 매우 간단치 않은 문제였다. jasper, voice command 등등 여러 방법이 있다고 하는데, 이 모두 본인의 지식 부족으로 전혀 다룰 수가 없었다-_- 다행히 개중에 annyang[5]이라는 자바스크립트 라이브러리가 자바스크립트 만으로만 작동하고, 한국어 인식 부분에서 꽤 괜찮은 성능을 가지고 있어서 이를 중심으로 여러가지로 고려해 봤다. 헌데 마이크 입력을 웹브라우저가 직접받아야 했는데, 이게 크롬/크로미움 브라우저만 가능했다. 그건 그렇다 치더라도 라즈베리 파이에서 크롬을 작동시킬 수 없기 때문에, 필연적으로 크로미움을 사용해야 했는데, 크로미움에서는 https 사이트가 아니면 마이크 퍼미션을 정상적으로 얻지 못하는 문제가 있었다. 이 부분을 해결하지 못하여 결국 라즈베리 파이로 구현하는 것을 포기하고 말았다.

검색해보니 어떤 일본사람이 raspberry pi + ubuntu mate + electron + annyang 으로 일본어 음성인식을 구현하는 것[6]을 봤는데, 이걸 따라 해 보고 싶었다. 참고로 electron[7]은 웹 언어만으로 크로스 플랫폼 데스크탑 앱을 구현하는 툴이라고 한다. 근데 electron을 어떻게 다루는지 매뉴얼을 봐도 도저히 이해가 안 돼서 이 방법도 포기…-_-

결국 좀 어이없게도 최후의 방법으로 예전에 사놓고 안 쓰고 있던 8인치 크기의 윈도우8 태블릿(도시바 encore)에 micro hdmi 케이블을 물려서 디스플레이를 구현하고, 여기에 구글 크롬 브라우저를 풀스크린 모드로 실행하는 방법을 썼다-_- 대신, 웹사이트는 내부 네트워크 안에서 raspberry pi 2에 아파치2 서버로 구동시키고, 옥션에서 파는 만원짜리 스마트폰용 마이크를 태블릿에 달아서 음성인식률을 좋게 만들었다.

그 결과….

유튜브에 여러 음성인식 시연 영상이 있는데, 하나같이 그다지 실용적으로 보이지 않았다. 아무 음성이나 반응하지 않고 지정된 시기에 음성인식을 시작할 수 있도록 모션인식이나 hot word를 지정하는 것이 보통이다. (ok google이나 alexa같은…) 처음에는 ‘거울아’로 지정하고 만들었는데, 이런거 실제로 쓰려면 꽤 귀찮다. 실제로 만들어보니 기기가 소리에 그닥 민감하지 않은 듯 하여, 본인은 hot word를 아예 없앴다-_- 걍 아무때나 일하다가 거울쪽으로 ‘뉴스’라고 외치면 뉴스를 읽어주는 편이 본인에게는 더 실용적이었다.

어떤 메뉴가 실용적일지 궁리를 많이 했는데, 가끔 계산기 누르기 귀찮아서 곱셈과 덧셈을 외치면 (예를 들어 ‘십이 곱하기 십삼’) 계산해 주는게 실용적일 듯 하다. 근데 숫자 인식 성공률이 은근 낮아서…-_-

 


2016.11.6
드디어 아무 상장된 회사 이름을 외치면 그 회사의 주가와 전일 등락을 말해주는 기능을 만들었다. ㅋㅋㅋㅋ 코드 짜느라 무지 힘들었다. ㅋㅋㅋ 회사 이름 인식률이 생각 이상으로 상당히 정확하다. 거의 틀리지 않는다. annyang 이거 대단하구만!

 


2016.11.9
크롬 브라우저를 매번 실행할 때마다 f11키를 누르기가 번거로운데, 상당히 유용한 팁이 있다.

크롬경로/chrome.exe --kiosk url주소

라고 써 주면 실행즉시 풀스크린이 된다.
참고로 자바스크립트 만으로는 보안 문제 때문에 브라우저 실행 즉시 풀스크린이 안 된다는 사실.

또 웹페이지 css 안에
html { cursor: none; color: #2299aa; background-color: #000000; }
라고 써 주면, 배경은 검게되고 자동으로 커서가 보이지 않아 마우스를 굳이 조작할 필요가 없다.

 


2016.11.18
‘중국어’라고 외치면 동아일보에서 제공하는 일일 중국어[8]를 보여주는 기능을 만들었음. ㅋㅋㅋ

참고로 css 안에
img { -webkit-filter: invert(1); filter: invert(1); }
라고 쓰면 이미지 색상이 반전되어 나오므로 외부 이미지를 거울에 맞춰 변형할 필요가 없게 된다. 물론 기존의 이미지들을 전부 반전시켜 놔야 한다. ㅋ

 


2017.4.9
오늘 테스트해보니 크로미움에서 annyang이 정상작동하지 않는 현상이 수정된 것 같다. 이제 라즈베리 파이에서 작동되는 스마트 거울을 만들 수 있을 듯. ㅎㅎㅎ

 


[1] 내 백과사전 스마트 거울 만들기 2016년 1월 30일
[2] https://docs.smart-mirror.io
[3] http://jeongchul.tistory.com/423
[4] http://responsivevoice.org/
[5] https://www.talater.com/annyang/
[6] Raspberry Pi と Electron で自立型の音声アシスタント by ポンダッド
[7] http://electron.atom.io/
[8] http://news.donga.com/DailyLanguage?g=3

스마트 거울 만드는 법

일전에 스마트 거울 만들기 이야기를 한 적이 있는데, 어떻게 만드는지 문의하는 사람이 있어서 별도의 포스트를 작성한다. 사실 원 글에 만드는 과정이 거의 다 설명이 돼 있는데, 일기처럼 써 놓아서 아무도 읽지 않는 듯 하다.ㅋ 사실 본인의 시행착오 과정을 따라할 필요가 없으니, 요약해서 설명하는 글을 하나 작성해 보았다.

caveat : 순서대로 끝까지 읽어보고 한 부분이라도 무슨 말인지 이해가 안 되면 포기하시오. 이 포스트 만드는 데도 시간 꽤 걸렸는데, 더 자세한 설명은 안할 거임. ㅋ

  1. 설치하려는 장소는 wifi 신호가 닿는 장소이어야 한다.

    사실 유선으로도 설치가 가능하긴 한데, 거울에 연결된 선이 많으면 미관상 별로니까 이 글에서는 무선으로 인터넷을 연결할 것이라고 가정한다. 집에서 무선 공유기를 안 쓰는 사람은 걍 포기하시오 ㅋ

  2. hdmi 입력이 가능하고, 벽에 걸 수 있을 만한 무게의 모니터를 준비한다.

    뭐 벽에 걸지 않고 쓰려는 사람은 더 큰 것을 준비해도 된다. 근데 모니터가 너무 두껍거나 무거우면 벽에 걸기 좀 힘들어 질 듯 하다. 본인은 가능한 가장 얇고 가벼운 것을 선호했으므로 on-lap 2501c를 이용하였다. 근데 이거 좀 비싸다-_-

    만약 모니터의 hdmi 또는 dvi 연결부위가 모니터 뒤쪽으로 돌출된 형태라면 케이블을 연결한 후 벽에 붙이기 난감한 상황이 된다. 꺾어지는 젠더를 알아서 구입하시라.

  3. 반사율 60%~70% 정도의 모니터보다 넓은 크기의 반투명 거울을 준비한다.

    A3 사이즈면 적당할 듯. 본인은 http://www.atostore.com/ 에서 구매하였다. 자기가 쓰고 싶은 사이즈로 잘라서 보내달라고 하면 보내줄 것 같다.

  4. 라즈베리 파이를 준비한다.

    기종은 아무거나 괜찮음. 어차피 x윈도우 띄우면 걍 계속 켜놓기만 할 거라서, 성능은 중요하지 않다.

    1. 라즈베리 파이3가 아닌 사람은 usb 타입의 무선 랜카드를 구매한다.

      왜냐하면 파이3는 내장된 무선 랜카드가 있어서 필요없는데, 옛날 기종은 없으므로 인터넷에 연결하려면 필요하다.

    2. 파이에 부팅할 때 쓸 sd 카드를 준비한다.

      제일 오래된 기종인 파이A 또는 파이B는 그냥 sd 카드를 이용하고, 파이2와 파이3는 마이크로 sd 카드가 필요하다. 용량은 4기가 바이트 이상이 필요하다. 근데 4기가도 살짝 빡빡하니까 8기가 이상을 구입하는 것을 권함.

    3. usb 타입의 키보드와 마우스를 준비한다.

      이거 없는 사람은 없겠지-_-

  5. 검은 종이를 구입한다.

    반투명 거울이 모니터보다 크면 나머지 부분을 가려야 거울처럼 보인다. 모니터 사이즈랑 거울 사이즈랑 똑같으면 안 사도 됨.

  6. 거울 크기의 액자를 구입한다.

    daum 지도로 자기 동네 주변의 표구사를 검색한다. 그리고 모니터와 거울을 들고 가서 이걸 둘러 싸는 프레임 액자를 하나 짜 달라고 주문하면 된다. 본인은 3만원 줬음-_- ㅋ

준비물은 여기까지고, 인제 리눅스에 대한 지식이 약간 필요하다. ㅋ 뭐 본인도 리눅스에 대해 잘 알아서 한게 아니고 다 검색해서 알아낸 것이므로 막히면 검색을 잘 활용하자.

  1. sd 카드에 raspbian jessie를 설치한다.

    라이트 버전을 설치하면 안된다. x윈도우가 들어있지 않으므로 웹브라우저 (콘솔용 텍스트 웹브라우저 같은 걸로 딴지 걸지 맙시다 ㅋ)를 띄울 수가 없다. 좌측의 풀버전을 설치하시라. 설치 방법은 Win32 Disk Imager 같은 걸로 디스크 이미지를 통째로 쑤셔 넣기만 하면 되는데, 자세한 방법은 검색하면 무지하게 나온다. 디폴트 계정은 pi, 패스워드는 raspberry 이다.

  2. 화면 회전법

    가로로 써도 상관없긴 한데 ㅋㅋㅋ 가로로 긴 거울을 쓰는 사람은 별로 없으니 화면을 회전시켜야 한다.
    /boot/config.txt
    를 열어 맨 마지막 줄에 display_rotate=1를 추가하고 재부팅한다. 참고로 2는 180도 회전, 3은 270도 회전이다. 필요하면 3을 써도 된다.

  3. 미도리 설치

    웹브라우저를 전체화면으로 만드는 단축키는 F11인데, 이건 거의 모든 브라우저에서 통한다. 기본으로 내장된 에피파니 브라우저는 풀스크린으로 만들면 화면 테두리에 흰 라인이 추가되어 보기가 좋지 않다. 그래서 미도리 브라우저를 설치한다. 설치방법은 콘솔창을 띄워서 다음을 입력한다.
    sudo apt-get install midori
    뭐 선호하는 브라우저가 있으면 그걸 써도 무방하다.

    그리고 매번 부팅할 때마다 미도리를 실행하기가 귀찮을 수 있으므로 /home/pi/.config/autostart 에다가 단축아이콘을 넣어둔다.

  4. 아파치2 설치

    라즈베리 파이를 웹서버로 만들면 된다. 개인적으로 쓰는 웹서버가 있으면 그걸 걍 써도 되는데, 인터넷 접속이 원활하지 못하면 가끔 404 에러가 나서 불편하다. 웬만하면 아파치를 설치하는 게 좋다. 설치법은 콘솔창에 다음을 입력
    sudo apt-get install apache2

  5. 아파치2 루트 디렉토리 수정과 cgi 허용

    먼저 웹서버의 루트 디렉토리와 cgi 디렉토리를 만들어 둔다.
    /etc/apache2/sites-available/000-default.conf 파일을 열면 루트 디렉토리 값이 보인다.
    DocumentRoot /var/www/html
    를 다른 경로로 변경하고 그 아래쪽에 다음을 추가한다.

    <Directory 변경된 경로>
    Order allow,deny
    Allow from all
    Require all granted
    </Directory>

    ScriptAlias /cgi-bin/ 변경된cgi경로
    <Directory “변경된cgi경로”>
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
    </Directory>

    그냥 ctrl-c로 카피하면 따옴표가 이상한 캐릭터로 바꾸니까 카피해서 수정 필요함.

    그리고 ls /etc/apache2/mods-enabled/ | grep cgi
    라고 해서 cgid.load가 걸리지 않으면
    ln -s /etc/apache2/mods-available/cgid.load /etc/apache2/mods-enabled/
    ln -s /etc/apache2/mods-available/cgid.conf /etc/apache2/mods-enabled/
    라고 입력한다.

  6. 모니터 절전모드 해제

    스마트 거울이 절전모드로 꺼지는 경우를 방지한다.
    /etc/kbd/config 를 열어
    BLANK_TIME=0 (디폴트 30)
    POWERDOWN_TIME=0 (디폴트 15)
    으로 수정 후
    sudo service kbd restart
    하면 된다.

  7. LWP::Simple 설치

    콘솔창을 열어
    perl -MCPAN -e’install “LWP::Simple”‘
    라고 입력하고 한참 기다리면 된다-_- 설치 초 오래 걸리니까 유선랜을 연결해서 하는 것을 추천함.

  8. 한글 폰트 설치

    스마트 거울에 한글이 나올 필요가 없는 사람은 이 과정을 패스해도 된다. 콘솔 창에 다음을 입력
    sudo apt-get install ttf-unfonts-core ibus ibus-hangul

  9. 마우스 포인터 사라지게 하기

    라즈비안을 최초 부팅하면 마우스 포인터가 중앙에 위치한다. 뭐 마우스를 움직여서 구석으로 몰면 되긴 하지만, 부팅할 때마다 마우스 조작을 하는게 은근 귀찮다. unclutter를 설치하면 일정시간 이상 움직임이 없는 마우스 포인터는 안 보이게 되므로 편리하다.
    sudo apt-get install unclutter
    으로 설치한 다음
    /etc/rc.local
    파일을 열어 맨 마지막 행에 unclutter 라고 추가하면 부팅할 때마다 실행된다.

  10. 날씨 아이콘 준비

    검색해보면 날씨 아이콘들은 많은데, 대부분 배경이 흰색임을 가정하고 있기 때문에 스마트 거울에 맞지 않다. 본인이 대충 편집해서 쓰고 있는 아이콘들을 업로드해 둔다.

  11. clouded half_snow little_cloud rainy snow sunny thick_cloud

  12. perl 코드 입력

    cgi 경로에 파일을 하나 만들어서 다음 perl 코드를 입력한다.

#!/usr/bin/perl

use LWP::Simple;
use Encode;

print <<HTMLA;
Content-type: text/html


<html><head>
<title>smart mirror</title>
<meta charset="utf-8">
</head>
<script type="text/javascript">
<!--
setTimeout("history.go(0);", 300000); //300초마다 리프레시

setInterval("dpTime()",1000);

function dpTime(){
  var now = new Date();

  years = now.getYear();
  years = years + 1900;
  months = now.getMonth();
  months = months + 1;
  dates = now.getDate();
  days = now.getDay();
  hours = now.getHours();
  minutes = now.getMinutes();
  seconds = now.getSeconds();

  var names = ["일", "월", "화", "수", "목", "금", "토"];
  if (hours > 12){
    hours -= 12;
    ampm = "오후";
  }else{
    ampm = "오전";
  }
  if (hours < 10){
    hours = "0" + hours;
  }
  if (minutes < 10){
    minutes = "0" + minutes;
  }
  if (seconds < 10){
    seconds = "0" + seconds;
  }
  document.getElementById("dpTime0").innerHTML = years + "년 " + months + "월 " + dates + "일 " + names[days] + "요일";
  document.getElementById("dpTime1").innerHTML = ampm;
  document.getElementById("dpTime2").innerHTML = hours + ":" + minutes + ":" + seconds;
}
//-->
</script>
<body bgcolor="#000000" text="#2299aa" marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
<table border=0 cellspacing=5 cellpadding=5 width="100%" height="100%"><tr><td valign="top">
<font size=+2>

HTMLA

##################### 네이버 증권
$html = get( "http://finance.naver.com/sise/sise_index.nhn?code=KOSPI" );
unless ( $html ) {
print "404 not found";
}

@all=split("\n", $html);
$num=@all;

print <<END;
<span id="dpTime0" style="font-size:30px"></span>
<br><span id="dpTime1" style="font-size:30px"></span>
<span id="dpTime2" style="font-size:50px"></span>
<br>코스피 현재 :<span style="font-size:50px">
END

for($i=0;$i<$num;$i++) {
 if($all[$i] =~ m/<em id=\"now_value\">/) {
  $all[$i] =~ s/<em id=\"now_value\">//;
  print "$all[$i]</span>";
 }
 if($all[$i] =~ m/id=\"change_value_and_rate/) {
  $all[$i] =~ s/<span class=\"blind\">(.*)<\/span>//;
  print $all[$i];
 }
}

print "</span><br>--------------------\n<br>";

#####################  날씨

$html = get( "http://www.kma.go.kr/mobile/for_02_view.jsp?s1=11&s2=11170&s3=1117052000" );
# 자기가 사는 동네로 수정

unless ( $html ) {
print "404 not found";
}

$html = encode("UTF-8", $html ); #한글 검색을 위해 필요

@all=split("\n", $html);
$num=@all;
$temp=0;
$temp2=0;

for($i=3;$i<$num;$i++) {
 if($all[$i] =~ m/시각 /) {
  $temp++;
 }
 if($all[$i] =~ m/\[오늘\]/) {
  $temp2++;
 }

 if(($temp > 0  && $temp <4) && $temp2 <2) {    #항상 날씨 세 개만 출력
  $all[$i] =~ s/구름 많음/<img src="http:\/\/localhost\/image\/thick_cloud.png">/;
  $all[$i] =~ s/구름 조금/<img src="http:\/\/localhost\/image\/little_cloud.png">/;
  $all[$i] =~ s/맑음/<img src="http:\/\/localhost\/image\/sunny.png">/;
  $all[$i] =~ s/흐림/<img src="http:\/\/localhost\/image\/clouded.png">/;
  $all[$i] =~ s/비/<img src="http:\/\/localhost\/image\/rainy.png">/;
  print "$all[$i]\n";
 }
}

print <<END;
</p>
</td></tr>
<tr><td align="right" valign="bottom" style="padding:0 20 50 0">
<span style="font-size:50px">You Look Nice!</span>
</td></tr></table></table>
</html>
END

귀찮아서 114번째 줄 부터 날씨 아이콘 부분의 코드가 덜 완성되었는데, 텍스트를 이미지로 바꾸는 것 뿐이므로 알아서 수정하면 된다.

자세한 내용은 다음 두 글을 참고하삼.
http://michaelteeuw.nl/post/ … e-end-result-of-the-magic
http://blog.dylanjpierce.com/raspberrypi/ … gic-mirror.html

Raspberry Pi 3를 구입하다

구파이[1]는 스마트 거울[2]에 쓰고 있고, 파이2[3]는 개인적인 용도의 웹서버로 쓰고 있으므로 굳이 살 필요는 없었는데, 왠지 귀납적으로 사고 싶어서 이번 버전도 사 봤다. 사실 pi zero를 사고 싶었는데, 물건을 도저히 구할 수가 없었다. 인기가 무지 좋은 듯. ㅋ

지금 이 글도 라즈비안을 설치한 pi 3의 윈도우 환경에서 한글 폰트와 ibus를 설치한 후 에피파니 브라우저를 띄워 쓰는 중이다. 체감 성능은 pi 2와 크게 다르지 않은 듯 하다. 좀 느린 데스크탑을 쓰는 느낌?

pi 2와는 다르게 wifi와 bluetooth가 내장되어 있다고 하는데, 내장 wifi가 다른 공유기는 검색가능한데, 우리집 공유기만 찾지를 못한다. 당췌 이유를 모르겠네-_-

때마침 해커뉴스[4]에 오드로이드 c2[5]와 pi 3의 성능 벤치 점수 비교가 올라와 있는데, 여러모로 오드로이드 c2가 훨씬 성능이 뛰어나다. 뭐 일단 표시된 하드웨어 사양이 더 좋으니 당연하다면 당연한 결과다. c2 쪽은 ram이 2G이고 eMMC도 사용가능하니 sd 카드를 쓰는 pi 3와 비교가 안 될 듯 하다. 높은 성능으로 실사용을 원하는 사람은 이쪽을 알아보는 편이 좋을 듯 하다.

NAS서버로 어떨까 싶었는데 웬만큼 큰 용량이 필요한 사람이 아니라면, 안 쓰는 안드로이드 기기에 zeta torrent pro[6] 앱 하나만 깔면 웬만한 NAS 부럽지 않은 기능이 나온다. 이 앱이 꽤 잘 만들어져 있어서 신통방통한 기능이 많다. 본인도 지하철에 떨어뜨려 먹통이 된 LG g3 cat6[7]을 이 앱을 활용하여 토렌트 머신으로 쓰고 있다. ㅋㅋ

음 … 그럼 pi 3 이거 어디에 쓰지-_- 뭐 언젠가 쓸모가 생기겠지 ㅋ

 


[1] 내 백과사전 Raspberry Pi Model B를 구입하다 2012년 12월 27일
[2] 내 백과사전 스마트 거울 만들기 2016년 1월 30일
[3] 내 백과사전 Raspberry Pi 2를 구입하다 2015년 3월 14일
[4] https://news.ycombinator.com/item?id=11352158
[5] http://www.hardkernel.com/main/products/prdt_info.php
[6] https://play.google.com/store/apps/details?id=com.teeonsoft.ztorrentpro
[7] 내 백과사전 스마트폰 액정 파손 후 백업 방법 2015년 7월 10일

스마트 거울 만들기

웹서핑을 하다 보니 거울 뒤쪽에 오늘의 날씨나 시간이 나오는 신박한 거울을 만든 사람들 이야기를 봤다. 이를테면 이런 글들[1,2]이다.

완전 신기방기 하다. 위 두 블로그에서 만드는 방법을 상당히 상세히 설명하고 있어서, 나도 만들고 싶어서 좀이 쑤시기 시작했다. ㅋㅋㅋㅋ

원리는 간단한데, 컴퓨터 모니터 위에 반투명 거울을 붙이면 된다. 반투명 거울이 신박한 물건인데 ㅋㅋ 취조실 같은데서 한쪽으로는 거울로 보이고 반대편에서는 투명한 유리 처럼 보이는 것이다.

일단 네이버 중고나라에서 대충 싼 가격에 중고 모니터를 하나 구했다. 크기는 18.5인치 짜리 싸구려 모니터이다. 그런데 반투명 거울을 어디서 구할지 막막했는데, 이리저리 검색해보니 ATO스토어 라는 웹사이트[3]에서 반투명 거울을 팔고 있었다. 인터넷으로 주문하면 된다.

주문하기 전에 전화로 물어보니 사이즈를 미리 알려주면 거기에 맞는 견적을 내서 잘라서 배송해 준다고 한다. 모니터를 분해해서 안쪽 LCD 패널의 치수를 정확히 잰 후에, 주문하니 진짜 딱 맞춰서 잘라 배송해 줬다. 본인이 주문한 크기는 A3 사이즈와 비슷해서 A3 가격을 내고 샀다.

반투명 거울 이거 완전 신기방기 하다. 환한데서 보면 걍 유리판 같은데, 건너편이 어두우면 딱 거울 같다. ㅋㅋㅋㅋ

위 사이트에서는 반사율 60%를 팔고 있었는데, 판매하시는 분의 말을 빌면 실제로는 61%~65% 정도라고 한다. 검색해보니 60%보다 반사율 70%가 더 낫다고 얘기하는 사람도 있다. 근데 본인이 위 사이트에서 구입한 것을 써보니 완전 거울처럼 보여서 그럭저럭 괜찮은 듯 하다. 모니터 밝기를 일단 최대로 올려봤는데, 조금 낮추거나 적절히 보정하면 괜찮을 듯.

모니터에 띄울 컨텐츠가 문제인데, 본인이 가진 라즈베리 파이 B[4]를 활용하기로 했다. 라즈베리 파이 이거 은근히 활용도가 높은 듯 ㅋㅋㅋ 근데 라즈베리 파이의 sd카드에 배드섹터가 있는 건지 부팅 실패가 너무 잦다. 젠장 완전 사람 삽질하게 만든네…

여하간 본인이 할 줄 아는게 perl 뿐이라, 일전에 산 파이2[5]를 개인 웹서버로 돌리고 있는데, 거기다가 이리저리 컨텐츠를 띄우는 페이지를 만들어서 파이B에 x window를 실행해서 영상에 송출하는 방식을 고려하고 있다. 아직 안 만들었는데, 좀 삽질해야 할 듯-_- 나도 스마트 거울 하나 가지고 싶다!!!

 


2016.2.2
스마트 거울 만들었는데, 정작 벽에 걸 수 없어서 세워 두고 있다-_- 라즈비안에 기본 내장된 에피파니 브라우저로 풀스크린을 만들면 테두리에 흰 색 라인이 생겨서 야간에 보기 좋지 않다. 미도리를 설치하면 그런 현상이 없어진다.
sudo apt-get install midori

 


2016.2.29
기존에 쓰던 모니터는 너무 무거워서 좀 가벼운 모니터가 없을까 검색해보니 위메프에서 휴대용 모니터 on-lap 2501c를 5%할인해서 팔길래 잽싸게 주문했다. 크기는 15인치인데, 거울보다 작기 때문에 구석에 몰아서 붙이고 뒤쪽에 검은 색 종이를 사서 나머지 부분을 메웠다.

동네 표구사에 가서 거울 사이즈에 딱 맞는 액자를 주문했는데, 뒤쪽에 라즈베리 파이가 들어가야 되기 때문에 공간을 만들어야만 했다. 라즈베리 파이를 가게 아주머니에게 설명할 필요가 없었기 때문에, 전자부품이 들어간다고 말했는데, 갑자기 그런 복잡한 것은 안 만들겠다고 거부하는게 아닌가!? 그냥 공간만 있으면 된다고 해도 한사코 손사래를 치는 걸 겨우 설득해서 주문했다-_-

그래서 완성!
IMG_20160229_192802
아래쪽에 보이는 것은 물론 Tick2[6]다. ㅋㅋㅋㅋ

 


2016.3.13
모니터의 발열이 은근 심한 듯 하여 일전에 산 와트드림[7]을 이용하여 내가 깨어 있는 시간 동안만 모니터가 켜 지도록 해 놓았다. 와트드림 두 개 사길 잘했군 ㅋ

 


2016.3.27
웹페이지 자체에 리프레시 코드를 넣어두면, 가끔 인터넷 접속이 원활하지 않을 때 404 에러가 난 이후로는 수작업으로 재접속을 해야하는 불편함이 있다. 미도리 자체에 리프레시를 하는 기능을 쓰면 이런 불편함이 없다. 커맨드 라인에 다음을 입력한다.
midori -i 리프레시시간(초) -e Fullscreen -a 웹사이트주소
다만 위쪽 네비게이션 바를 없애고 싶은데 방법이 없는 듯.

 


2016.4.8
가끔씩 접속이 원활하지 않아 404 에러가 나는데, 이걸 처리할 방법이 없나 싶어서 검색[8]을 좀 해봤다.
ssh로 로그인해서
export DISPLAY=:0;
라고 치면 ssh로 로긴한 계정에서 원격으로 xwindows 프로그램이 실행된다.
여기서 midori 라고 치면 웹브라우저가 실행되는데, 로그아웃하면 웹브라우저가 종료되어버린다. 그러므로 tmux를 설치한다.
sudo apt-get install tmux
tmux를 실행하여 그 안에서 midori를 실행시킨 후에 ctrl-z를 눌러 백그라운드 프로세스로 만든 후 tmux를 빠져 나온다. 나오는 방법은 ctrl-b를 누르고 d를 누르면 된다. 이후에 로그아웃하면 미도리가 여전히 실행된다.

세션을 다시 불러오려면
tmux attach-session -t 세션번호

근데 이 방법을 쓰니 브라우저의 자바스크립트가 정상적으로 작동하지 않아서, 시계가 움직이지 않는다-_- 젠장….

 


2016.4.21
404 문제는 결국 localhost에 아파치 서버를 깔아서 해결했다-_-

날씨를 표현하는 방법이 그냥 텍스트라서 멀리서 보면 분간이 안 되는 문제가 있다. 인터넷에 떠도는 날씨 아이콘을 스마트 미러에 맞게 편집(단색화 및 invert color)해서 표현하니 훨 낫군 ㅋ

 


2017.9.14
웹사이트에 iframe 태그를 만든 후에 이 프레임을 5분 간격으로 리프레시 하면, localhost에 아파치 서버를 깔지 않고도 404 에러를 해결할 수 있다.

 


2018.5.1
원격으로 제어를 해보고 싶어서 검색 좀 해봤다. ㅋㅋ
ssh로 로그인해서
DISPLAY=:0 midori -e Fullscreen -e (url 주소)
라고 치면 원격으로 풀 스크린으로 미도리가 실행된다. 이 상황에서 stackoverflow의 설명[9]에 의하면 ctrl-z를 눌러 백그라운드 프로세스를 만들고
disown -h %1
후에
bg 1
을 입력하면 백그라운드 1번 작업은 로그아웃되어도 프로그램이 정지되지 않는다.

 


[1] Xonay Labs | Michael Teeuw (michaelteeuw.nl)
[2] Building MirrorMirror (blog.dylanjpierce.com)
[3] http://www.atostore.com
[4] 내 백과사전 Raspberry Pi Model B를 구입하다 2012년 12월 27일
[5] 내 백과사전 Raspberry Pi 2를 구입하다 2015년 3월 14일
[6] 내 백과사전 Tick2(박수소리 스위치)를 구입하다 2015년 11월 9일
[7] 내 백과사전 와트드림을 구입하다 2015년 6월 26일
[8] Linux: Prevent a background process from being stopped after closing SSH client (StackOverflow)
[9] How to make a programme continue to run after log out from ssh? [duplicate] (StackOverflow)

Raspberry Pi 2를 구입하다

아이씨뱅큐[1]에서 Pi2를 팔길래 잽싸게 구매했다. 사은품으로 방열판까지 준다는데 웬 떡이냐 싶어서 사봤다. ㅋㅋ 현재 라즈베리파이2에 라즈비안을 설치하여 엑스윈도우에서 포스팅하고 있다. ㅋ

이전 버전[2]은 엑스윈도우 환경이 너무 느려서 실질적으로 사용이 거의 불가능했지만, 이번 파이2는 엑스윈도우에서 대~단히 쾌적해졌다. 진짜 손바닥만한 (그리고 그럭저럭 쓸만한) 컴퓨터가 됐다. 와 이렇게 좋을 줄이야.

스토리지는 마이크로sd로 바뀌었다. ㅎㅎ 살 때 같이 주문하면 편할 것이다.

과거에 했던 삽질들 덕분에 이번에는 대단히 쉽고 간단하게 설정할 수 있었다. 과거에 사 놓았던 usb 타입의 무선 랜카드도 유용하게 써먹고 있다. 선을 줄일 수 있으니 편하다.

일전에 이야기했지만, 라즈비안에 매쓰메티카가 기본으로 깔려[3]있어 퀵론치 버튼에 들어있다.

구파이는 개인용 웹서버로 매우매우매우 유용하게 쓰고 있는데, 신파이는 어디에 쓸지 좀 생각해봐야겠다. ㅎㅎㅎ

사는 김에 파이 카메라도 같이 샀다. OpenCV 같은 걸 이용해서 얼굴을 인식 시킬 수 있다고 들었는데, 어떤 사람은 현관에 설치해 놓고 피자 배달부가 오면 알람이 울리는-_- 그런 시스템을 구축해 놓았다는 사이트도 본 적이 있다. 본인은 컴맹이라 뭐 그런건 잘 모르지만 괜히 한번 도전해보고 싶구만. ㅋㅋ

 


2015.11.7
한글 입력하는 법
sudo apt-get install ttf-unfonts-core ibus ibus-hangul
그리고 sudo raspi-config에서 로케일에 ko_KR.UTF-8 UTF-8 추가하고, xwindow에서 ibus 환경설정에 한글추가하면 된다.
라즈베리 파이의 에피파니 브라우저로 포스팅하고 있음. ㅋㅋ

 


2016.1.7
아래 설명은 모두 라즈비안에서 적용됨.

usb 메모리 꽂은 후 ext4로 포맷하는 법
fdisk -l
해서 위치 찾고
mke2fs -t ext4 /dev/sda1 한다.

ssh 포트변경법
/etc/ssh/sshd_config 를 열어 변경

vsftpd v3.0.2 설치후 퍼미션 거부로 업로드 안 될 때
/etc/vsftpd.conf 를 열어 write_enable=YES를 uncomment한다.

vsftpd v3.0.2 포트변경법
/etc/vsftpd.conf 를 열어
pasv_enable=YES
connect_from_port_20=YES
listen_port=
ftp_data_port=
pasv_min_port=
pasv_max_port=
를 변경 후 sudo service vsftpd restart

아파치2 v2.4.10 설치후 포트 변경법
/etc/apache2/ports.conf 를 열어 Listen 80 을 수정하고
/etc/apache2/sites-available/000-default.conf를 열어 <VirtualHost *:80> 를 수정한다.

아파치2 v2.4.10 루트 디렉토리 수정법
/etc/apache2/sites-available/000-default.conf 를 열어 DocumentRoot를 수정하고 아래에

<Directory /home/pi/www>
Order allow,deny
Allow from all
Require all granted
</Directory>

라고 쓴다. Require all granted를 몰라서 완전 개삽질함-_-

아파치2 v2.4.10 에서 cgi 허용법
/etc/apache2/sites-available/000-default.conf 를 열어

ScriptAlias /cgi-bin/ /home/pi/www/cgi-bin/
<Directory “/home/pi/www/cgi-bin/”>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

라고 쓴다. 만약
ls /etc/apache2/mods-enabled/ | grep cgi
라고 해서 cgid.load가 걸리지 않으면
ln -s /etc/apache2/mods-available/cgid.load /etc/apache2/mods-enabled/
ln -s /etc/apache2/mods-available/cgid.conf /etc/apache2/mods-enabled/
라고 입력해 둔다.

모니터 90도 회전하는 법
/boot/config.txt
를 열어 display_rotate=1를 추가한다.

모니터 절전모드 해제
/etc/kbd/config 를 열어
BLANK_TIME=0 (디폴트 30)
POWERDOWN_TIME=0 (디폴트 15)
으로 수정 후
sudo service kbd restart

무선 wifi 연결 하는 법
sudo iwlist wlan0 scan
로 와이파이 검색
/etc/wpa_supplicant/wpa_supplicant.conf
를 열어
network={
ssid=”이름”
psk=”패스워드”
}
라고 추가하면 된다.

perl에서 LWP::Simple 설치법
perl -MCPAN -e’install “LWP::Simple”‘
라고 친다.

윈도우에서 라즈비안 설치된 sd카드 파티션 제거법
도스창에서 diskpart 입력
list disk 입력
select disk (숫자) 입력
(숫자는 해당 sd카드임. 용량 잘보고 선택해야 함)
clean 입력
이제 윈도우에서 파티션 잡고 포맷하면 끝.

 


2016.12.19
라즈베리파이와 20년 전의 워크스테이션 성능비교
Raspberry Pi vs SPARCstation 20: Fight! in Eschatology

 


[1] http://www.icbanq.com/
[2] 내 백과사전 Raspberry Pi Model B를 구입하다 2012년 12월 27일
[3] 내 백과사전 raspberry pi에 mathematica를 설치하기 2013년 11월 30일

raspberry pi 2에 windows 10이 올라갈 예정

일전에 라즈베리 파이의 데비안 기반 os인 라즈비안에 매스매티카를 배포한다는 이야기[1]를 했었는데, 오늘 해커뉴스[2]를 보니, 새로 발매되는 신형 라즈베리 파이 2에서 작동되는 windows 10이 배포될 예정[3]인 듯. 이야 라즈베리 덕분에 비싼 소프트웨어들이 애들 사용성을 선점하려는 노력이 보인다.

헐… 저번에 닷넷도 오픈소스화하고 비트코인 결제도 도입[4]하더니만, 근래 나델라씨가 CEO되면서 뭔가 마이크로소프트의 과감한 행보가 눈에 띈다. 지금 구형 라즈베리 파이를 개인 웹서버로 매우 잘 쓰고 있긴 하지만, 라즈베리 파이 2를 하나 사봐야겠다는 생각이 든다. ㅋㅋ

 


2015.2.4
지디넷 라즈베리파이2, 윈도10서도 잘 돌아간다 2015.02.03 / AM 09:12

 


2015.8.17
얼마전에 MS에서 라즈베리 파이용 windows core IoT를 공개했다. 나는 설치를 안 해 봤는데, 설치한 사람들의 글을 보니 위지윅 인터페이스가 아니고 콘솔 인터페이스만 제공되는 듯. 익숙한 윈도우즈 인터페이스가 아닌 것 같다. 헐…

 


[1] 내 백과사전 raspberry pi에 mathematica를 설치하기 2013년 11월 30일
[2] Windows 10 for Raspberry Pi 2 (hacker news)
[3] http://dev.windows.com/en-us/featured/raspberrypi2support
[4] 내 백과사전 마이크로소프트가 비트코인 결제를 도입하다 2014년 12월 12일