こんにちは、天野勝です。
前回は、DiplayLinkのドライバを有効にするべく、カーネルの再構築をしました。
今回は、ディスプレイを接続し、Xが表示されるようにします。
参考にさせていただいたページ
Atelier Orchard: DisplayLink
回回 PPE : Petit Panda Extreme 回回 – LCD-USB10XB-TをUbuntuで使う
RPi – Raspberry Pi で USB 接続型モニター(ディスプレイ)を利用する方法
LCD-USB10XB-Tをディスプレイとして認識させる
LCD-USB10XB-TをRPi2に接続すると、ストレージデバイスとして認識されます。そして、そのストレージにはWindows用のデバイスドライバのインストーラが入っています。これは、Windowsを使う場合には、便利な機能なのですが、LinuxなどのOSを使う場合は、ちょっとやっかいです。
OSにディスプレイとして認識させるための設定をしていきます。
usb_modeswitchのインストール
手動でUSBデバイスを認識させるには、「usb_modeswitch」というコマンドを使います。
RPi2でソースコードからコンパイルする事にします。前回のカーネルのコンパイルはCPUパワーが必要なので、開発機で行ないましたが、この後はRPi2上で作業をしていきます。
sshを使って、RPi2に接続します。
$ ssh pi@RPi2のIPアドレス
USB関連のライブラリをインストールします。これがないと、usb_modeswitchがコンパイルできません。
$ sudo apt-get install libusb-1.0
usb_modeswitchのソースファイルをダウンロードし、展開、コンパイルします。
$ wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-2.2.1.tar.bz2
$ tar xf usb-modeswitch-2.2.1.tar.bz2
$ cd usb-modeswitch-2.2.1/
$ make
インストールします。
$ sudo make install
LCD-USB10XB-Tをディスプレイとして認識させる
実際に、LCD-USB10XB-Tを接続し、ディスプレイとして認識させます。
接続すると電力不足で、本体の挙動がおかしくなるかもしれません。その場合は、セルフパワータイプのUSBハブを使ってください。私の場合は、ELECOMのU2HS-T201SBKを使用しています。
$ sudo usb_modeswitch -v 17e9 -p 0156 -u 1
画面が緑色になり、無事にディスプレイとして認識されたことが確認できました。
デバイスファイルの状態を確認します。
$ ls /dev/fb*
/dev/fb0 /dev/fb1
fb1が増えていることが確認できました。
Xを起動する
追加された/dev/fb1にXの画面が出るように設定していきます。
この部分は、全面的に「DisplayLinkモニタでRaspberry Piデスクトップを使用する」を参考にさせて頂きました。ありがとうございます。
xorg.confを作成
xorg.confファイルを作成し、設定を書き込みます。
$ sudo vi /etc/X11/xorg.conf
Section "Device"
Identifier "uga"
driver "fbdev"
Option "fbdev" "/dev/fb1"
Option "ShadowFB" "off"
EndSection
Section "Monitor"
Identifier "monitor"
EndSection
Section "Screen"
Identifier "screen"
Device "uga"
Monitor "monitor"
EndSection
Section "ServerLayout"
Identifier "default"
Screen 0 "screen" 0 0
EndSection
Xを起動
Xを起動します。
$ startx
これで、Xが起動しディスプレイにデスクトップが表示されます。
LCD-USB10XB-Tをディスプレイとして自動認識させる
毎回、手動でusb_modeswitchコマンドを打つのは手間です。そこで、ディスプレイが接続されていたら、自動でディスプレイとして認識させるように、udevのルールを設定します。
$ sudo vi /etc/udev/rules.d/00-displaylink.rules
ATTRS{idVendor}=="17e9", ATTRS{idProduct}=="0156", ATTRS{bConfigurationValue}=="2", RUN+="/usr/local/sbin/usb_modeswitch -v 17e9 -p 0156 -u 1"
1行です。改行はしません。もし、改行する場合は、行末に「\」をつけてください。
これで、USBに接続するとディスプレイとして自動で認識されるようになります。
【タッチパネルを使えるようにする編】