라스베리파이에 USB 전원 모니터(AOC 15.6인치) 연결 실패 후 절반 성공 디지탈을 즐기자

* 출처

Raspberry PI보드를 연결하려면 HDMI포트로 연결할 수 있어야 하는데, 17인치나 24인치 모니터를 책상 위에 놓아야 하는 번거로움이 있었습니다. 
  • 그래서, http://www.ponnuki.net/2012/09/kindleberry-pi/  이 글을 보고 킨들3를 모니터(실제로는 터미널 수준이겠지요)로 써볼까(?) 했지만, 작업에는 한계가 있을 거 같아서 pass. 
  • 간단히 "respberry pi displaylink"로 구글링을 했는데, 아마 아래 예제가 잘 된다고 하는데 구 버전의 제품인 거 같습니다. 저의 AOC 모니터는 제대로 동작이 안되었습니다. 
[USB모니터 지원을 위한 라즈베리용 커널 컴파일]

라즈베리 파이용 커널을 만들어야 하는데, 마침 다른 일 때문에 설치해 두었던 VMWare Player 5.0(비상업용은 무료)와 우분투 12.04LTS에서 작업을 했습니다. (상기 출처를 보고 그대로 따라한 것)
  1. 크로스컴파일러 설치 sudo apt-get install git-core gcc-4.6-arm-linux-gnueabi
  2. 설치한 컴파일러를 연결(심볼릭 링크) sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-4.6 /usr/bin/arm-linux-gnueabi-gcc
  3. 다운로드를 위하여 https://github.com에 먼저 무료 사용자 계정을 만들고 나서, git clone https://github.com/raspberrypi/tools.gitgit clone https://github.com/raspberrypi/linux.git를 실행 - Git는 분산 버전 컨트롤 시스템으로 기존 Subversion등보다 사용이 편리하다고 합니다. 서브버전을 쓰다보면 가끔 머리를 쥐어 뜯을 때가 있지요^^  
  4. 3의 다운로드가 오래 걸리지만 끝나면, cd linux
  5. make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- bcmrpi_cutdown_defconfig
  6. 다음 과정에 필요한 ncurses 설치는 다음 글이 도움이 되었습니다. http://tasia.tistory.com/78
  7. USB모니터 설정을 해야 하므로 make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- menuconfig
  8. 이후 뜨는 커널 설정 화면에서 Device Drivers -> Graphics Support -> Support for Frame buffer devices 를 따라 들어가보면, Displaylink USB Framebuffer support가 나옵니다. M을 누르거나 Y를 눌러서 *로 표시하라는데 확실하게 커널에 넣기 위해 Y를 누릅니다. 여기서 BCM2708을 N를 눌러서 *를 없애면 HDMI로 화면이 나오지 않는다고 하네요. 
  9. make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k -j5
  10. mkdir ../modules
  11. make modules_install ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- INSTALL_MOD_PATH=../modules/
  12. cd ../tools/mkimage/
  13. ./imagetool-uncompressed.py ../../linux/arch/arm/boot/Image
  14. 이제 kernel.img가 생성되었습니다.
  15. VMWare Player로 돌리고 있는 우분투에 sudo apt-get install openssh-server 를 설치하여 kernel.img와 modules폴더의 파일들을 복사해 옵니다.(다른 방법이 있다면... 알려주시구요^^)
[라즈베리파이용 SD카드의 커널과 모듈을 교체하기]
  1. 저는 라즈베리파이 SD가 XBMC를 설치해둔 상태였기 때문에, http://www.raspberrypi.org/downloads에서 wheezy raspbian을 받아서, Win32DiskImager를 이용해서 변경을 했습니다. 
  2. 우선 잘 부팅되는 지 HDMI모니터에 연결하여 확인합니다. 
  3. SD카드를 빼서 컴퓨터의 USB SD리더 혹은 노트북 SD슬롯에 꼽은 후, 방금 만들어 둔 kernel.img는 SD카드의 루트 디렉터리에 덮어 씁니다.
  4. modules/lib에 있는 내용을 SD의 /lib에 복사합니다. 이 부분이 중요한데, SD카드에 그냥 복사하면 실제 라즈베리파이가 부팅한 후의 SD카드 내에 있는 /lib 폴더에 제대로 복사가 안되어 있음을 확인할 수 있습니다. 그러므로, WinSCP등을 이용하여 SSH를 이용한 복사를 하든지 하는게 좋겠습니다.
  5. (옵션)다시 한번 HDMI모니터에 연결하여 잘 부팅되는 지 확인합니다. 
  6. http://karuppuswamy.com/wordpress/2011/04/11/lilliput-displaylink-usb-monitor-um-70-17e902a9-with-qnap-ts-110-on-debian-linux-armel/ 의 3번부터 참고해서 X11을 해봤는데, 결론은 안됩니다... X가 로딩되어, 화면 우측 하단에 CPU사용량 그래프가 손톱만한게 움직이다 말고 라즈베리가 리부팅을 해버립니다. (9/17추가 내용에서 해결됨)
화면이 수평으로 금이 많이 가고 수직으로 2분할 되며 제대로 표시가 되지 않습니다. DPI설정은 96으로 하는게 맞지만 #으로 코맨트 처리해도 됩니다. 

더 확실하게 하기 위해 아까 BCM2708을 끄고, /dev/fb0에 DisplayLink가 연결되도록 해보았는데, 부팅할 때 역시 화면이 제대로 나오지 않습니다. (아래 9월17일 추가 내용 참고)

일단 되지는 않는다는 것을 확인했고, 나중에 여유가 나면 더 해보아야겠습니다. 사실 굳이 모니터 연결을 안해도 우분투나 Cygwin/X로  ssh -X pi@xxx.xxx.xxx.xxx로 접속해서 X11도 쓸 수 있되니까 말이죠^^

(9월17일 추가)

* 추가로 http://plugable.com/2009/11/16/setting-up-usb-multiseat-with-displaylink-on-linux-gdm-up-to-2-20/ 의 2번 항목의 다음 명령을 라즈베리 상에서 수행하여, 성공했습니다. 

sudo apt-get install pkg-config xorg-dev
git clone http://git.plugable.com/webdav/xf-video-udlfb/
cd xf-video-udlfb
./configure
make
sudo make install

(2014년3월16일 추가)

https://github.com/notro/fbtft/wiki/Framebuffer-use#console 를 보면, "con2fbmap 1 1" 를 써서 AOC모니터로 콘솔을 표시할 수 있음을 알 수 있었습니다. 다만, 아래의 제거된 10-monitor.conf대신, https://github.com/notro/fbtft/wiki/Framebuffer-use#x-server 를 참고하여, 

Section "Device"  
  Identifier "myfb"
  Driver "fbdev"
  Option "fbdev" "/dev/fb1"
EndSection

를 /usr/share/X11/xorg.conf.d/99-fbdev.conf의 내용으로 만든 다음에, startx를 하면 깔끔하게 성공합니다.  

또한, "con2fbmap 1 1"를 /etc/profile의 제일 끝에 추가한다면 부팅이 끝난 후에 콘솔 화면에 로그인 프롬프트를 띄울 수 있습니다. 다만, 화면이 좀 깨지는데,,, Desktop모드(X-WIndow)로 실행되게 해두면 이 모든 문제가 해결이 되며, X-Server(Desktop모드)를 끝내게 되면 Console도 아무 이상없이 동작이 되었습니다. 

* udlfb를 커널 만들 때 menuconfig에서  'M'으로 하면 /dev/fb1으로 인식이 잘 안되는 경향이 있어서, 아예 Y를 눌러서 기본 포함했습니다. 또한, BCM2708을 N를 눌러서 *를 없앴습니다. HDMI가 안나오는 상태인데, 이렇게 까지 할 필요는 없을 듯... 

* 라즈베리 내의 /usr/share/X11/xorg.conf.d/10-monitor.conf 의 내용은 다음과 같이 했습니다. 

#################################################

Section "ServerLayout"
Identifier      "Server Layout"
Screen         "DisplayLinkScreen"
EndSection

#################################################

Section "Files"
ModulePath      "/usr/lib/xorg/modules"
ModulePath      "/usr/lib/xorg/modules/drivers"
ModulePath      "/usr/local/lib/xorg/modules"
ModulePath      "/usr/local/lib/xorg/modules/drivers"
ModulePath      "/usr/local/lib"
EndSection

############### DisplayLink Stuff ###############

Section "Device"
Identifier      "DisplayLinkDevice"
Driver          "displaylink"
Option  "fbdev" "/dev/fb0"
#Option  "DPI"   "96x96"
EndSection

Section "Monitor"
Identifier      "DisplayLinkMonitor"
Option  "Enable"        "true"
#       DisplaySize     152 92
EndSection

Section "Screen"
Identifier      "DisplayLinkScreen"
Device          "DisplayLinkDevice"
Monitor         "DisplayLinkMonitor"
DefaultDepth    16
SubSection "Display"
Depth   16
Modes   "1366x768"
EndSubSection
SubSection "Display"
Depth   24
Modes   "1366x768"
EndSubSection
EndSection
#################################################

* AOC USB 모니터에 뜬 라즈베리 파이 X 화면

* 아쉽지만 아직 부팅 console은 제대로 동작이 안됩니다. 
  • USB모니터 미연결 상태로 켠 후, PC에서 ssh로 접속을 한 후(미리 IP주소 메모가 필요 - HDMI로 확인해야), USB모니터를 연결하고 startx를 해주어야 합니다. 
  • 그러러면 설치한 후 sudo raspi-config에서 데스크탑으로 바로 실행되는 옵션을 꺼주어야 합니다. 
  • 그리고, USB모니터는 반드시 부팅이 끝난 후에 연결해야 합니다.


* 또한 주의할 점은, 라즈베리파이의 USB 전류 출력이 약하므로, 전원용 USB커넥터를 별도로 다른 전원에 연결해야 합니다. 
  • 그런데, 저의 벨킨 USB 허브(외부전원연결)는 이 전원용 USB커넥터를 꼽아도 전기를 내주지 않습니다.
  • 또한 벨킨 USB허브에 USB모니터를 연결해도 인식이 안됩니다. 라즈베리 파이에 직접 연결이 필요한 듯... 

핑백

  • 무재칠시(無財七施) : 라즈베리파이와 USB 모니터 2012-09-21 17:07:42 #

    ... 온 것은 사실이지만, 리눅스를 처음 접하는 사람들에겐 아직 큰 장벽이 있는 듯... 물론, 기본 패키지만 이용한다면 별 어려움은 없지만. * 관련글 - http://imky.egloos.com/2963983 ... more

  • 파즈베리파이 커널 빌드 | Home Linux 2012-09-28 06:11:16 #

    ... ATH 와 CROSS_COMPILER 설정을 해준다. 그리고 압축을 푼 후 # make bcmrpi_defconfig # make 빌드방법 참조 : http://imky.egloos.com/2963983 Send to Twitter :라즈베리 파이, 빌드, 커널 No comments for this entry yet... Leave a Reply Name ... more

덧글

댓글 입력 영역