Unix

세번째 모니터... ㅎㄷㄷ... 아치리눅스에서.

알 수 없는 사용자 2011. 12. 22. 11:20
윈도그가 이런건 쉬워서 좋은 듯.
USB -> HDMI 장비를 샀다. 모니터를 하나 더 달아서 트리플 하려고 ㅋㅋ
하지만 꽂자마자 되는게 아니었다는게 문제!

lsusb 해보면 나오는게 뭐나면
Newnham Research
이런게 나오는데 아마 이놈인 것 같다.

http://plugable.com/category/platform/linux/

으음..
linux newnham research
이렇게 구글질.
DisplayLink 라고 하는 것과 관련 있나보네...

http://libdlo.freedesktop.org/wiki/DisplayLink
 

yaourt -Ss displaylink
를 하면 연관패키지가 몇개 나온다.
udlfb 이건 설치해야 할 듯. Kernelmodule이니까.
xf86-video-displaylink 이런것도 설치해야 할 거 같은데 현재로서는 out of date. 

패키지 쓰지 말고 소스에서 컴파일할까...
http://libdlo.freedesktop.org/wiki/MultiSeatTerminal 

http://mulchman.org/blog/?p=34
갈수록 모르겠다 헤엨

일단 윈도우에서 되게 하는 것이 포인트.
HDMI output만 있는 USB장비여서 HDMI -> DVI -> DSUB 삼중을 거쳤더니 아무것도 안 됐다. 윈도우에서도 안 되는 것이 이상해서 보니 DSUB를 거치면 안 됨! 그래서 DSUB말고 DVI도 지원하는 더 좋은 모니터쪽을 USB쪽에 달았다 ㅠㅠ;; 어차피 보조모니터니깐 뭐... ㅠㅠ

다시 리눅스로 컴백. 민트로 부팅해서 일단 리눅스에서도 된다는건 확인했는데...
dlfb 라고 dmesg에 나오면서 모니터 제어가 되길래 udlfb 성공 사례로 검색했다.
http://mulchman.org/blog/?tag=udlfb
udlfb관련 커널 모듈과 xf86 모듈을 다 컴파일로 설치했다. xf86-video-displaylink 이건 더 최신이긴 하지만 버리기로 함. -ㅠ-;; 현재로서는 되게 하는 것도 벅차고 되는 것을 벤치마킹하는게 중요.

민트말고, 아치로 일단 부팅했다. 세번째 모니터가 안 되길래... 혹시나 해서 그냥
sudo modprobe udlfb
를 하니까 모니터에 녹색화면이 뜨기 시작했다. 다른 글에도 보니 녹색 화면이 뜨면 일단 뭔가 되기 시작하는 좋은 징조라고 하네 ㅋㅋ

그러면 xorg.conf 를 건들 차례인데 알다시피 xorg.conf 는 통짜 파일이 아니고 이제 부분부분 쪼개져서 필요한 부분들 파일로 만들어 넣는 것임...

필자의 장비는 /dev/fb0 로 인식되었다. frame buffer device라는 것임.
lsusb하면
Bus 002 Device 004: ID 17e9:019d Newnham Research 
이렇게 나오니까 bus id는 2, device 는 4인가보다? xorg.conf 만들때 필요하니 알아둘 것... 아니, 필요 없구나.

결국 성공시키긴 했다.
아래처럼 DisplayLink를 screen 0, screen0을 1로 해주어서 성공했는데 구리다.
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 270.41.06  (buildmeister@swio-display-x86-rhel47-08.nvidia.com)  Mon Apr 18 15:13:48 PDT 2011

Section "ServerLayout"
    Identifier     "Layout0"
    #Screen      0  "DisplayLinkScreen" RightOf "Screen0"
    Screen      1  "Screen0" 0 0
    #Screen         "Screen0" 0 0
    #Screen         "DisplayLinkScreen" RightOf "Screen0"
    Option         "Xinerama" "0"
    #Option         "clone" "0"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "TGL A176"
    HorizSync       31.0 - 80.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 9600 GT"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "1"
    Option         "TwinViewXineramaInfoOrder" "DFP-0"
    Option         "metamodes" "CRT: nvidia-auto-select +0+56, DFP: nvidia-auto-select +1280+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

###
### USB stuff
###
Section "Device"
        Identifier      "DisplayLinkDevice"
        driver          "displaylink"
        Option  "fbdev" "/dev/fb0"
EndSection
Section "Monitor"
        Identifier      "DisplayLinkMonitor"
EndSection
Section "Screen"
        Identifier      "DisplayLinkScreen"
Device          "DisplayLinkDevice"
        Monitor         "DisplayLinkMonitor"
        SubSection "Display"
                Depth   16
Modes   "1280x1024"
        EndSubSection
EndSection
왜 구리냐. 시너지를 쓰는 것 같은 괴상한 느낌이다. 창을 디스플레이 간에 끄는 것은 안 되고 시너지처럼 마우스가 있는 쪽에 키보드 입력이 먹힌다. 그러면 거기서 프로그램을 실행시키면 된다 (-_-) 매우 좋지 않군. 윈도우가 이런건 부럽다. Xinerama 로 이으면 좋겠는데 안 이어짐. X서버가 튕긴다. 제대로 쓸려면 SLI로 이어버리든지 해야지 -_-;; 반쪽짜리 해서 뭐하나. 윈도우가 이럴땐 좀 부러움.