2013年09月12日

RPi - Raspberry Pi で USB 接続型モニター(ディスプレイ)を利用する方法

Raspberry Pi には 映像(及び音声)出力用として HDMI インタフェースが用意されていますが、USB インタフェースでもモニターを使えたらきっと素敵ですよね。 今日は Linux カーネルをビルドして DisplayLink 社の USB グラフィック・アダブタ用ドライバーを有効化、 Raspberry Pi で USB ディスプレイを楽しむ方法をご紹介します。

lcd-8000u


DisplayLink USB Framebuffer support の有効化・カーネルの再構築


DisplayLink 社は USB グラフィック・アダブタの大手で、そのチップは多くの USB 型ディスプレイ製品に組み込まれています。

DisplayLink製USBグラフィックチップ、販売100万個を達成 - Engadget Japanese


勿論、今回僕が試すセンチュリー社の LCD-8000U もそのひとつ。

この DisplayLink のアダプタを利用するにはドライバを有効にする必要があるんですが、 Raspbian 標準カーネルは無効の状態でビルドされています。

という事で、まずは僕の Ubuntu PC 上にカーネルのクロス・コンパイル環境を用意。

$ sudo apt-get install git-core gcc-arm-linux-gnueabi
$ sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-4.* /usr/bin/arm-linux-gnueabi-gcc


準備が出来たら GitHub から Raspberry Pi Linux カーネルをダウンロード。

$ mkdir rpisrc
$ cd rpisrc/
$ git clone git://github.com/raspberrypi/linux.git


標準のコンフィグをコピー後、メニュー形式でビルド・オプションを編集します。

$ cd linux
$ cp arch/arm/configs/bcmrpi_cutdown_defconfig .config
$ make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- menuconfig


メニューが起動したら Device Drivers にカーソルを合わせてエンター。

make config device drivers


この中から Graphics Support を選択して、

make config graphics support


さらに Support for Framebuffer support を選びます。

make config support for frame buffer devices


この中にある Displaylink USB Framebuffer support という項目にカーソルを移動、スペースキーで有効化(M)しておきます。

png


ここまで出来たら Esc キーを連打、最後にコンフィグを保存して終了。

スクリーンショット - 2013年09月12日 - 13時42分01秒


さあ、コンパイルしましょう。 僕は Intel Core i7 を使っているのでコンパイル時のスレッド数オプションは5つ( -j5 )にしていますが、 PC の CPU コア数と相談して決めて下さいね。

$ make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k -j5


コンパイルが正常に終了すると arch/arm/boot/ の下に zImage というファイルが出来ます。 これがカーネルのイメージ。

$ ls arch/arm/boot/
Image  Makefile  bootp  compressed  dts  install.sh  zImage;


後もう少し。 次の手順でモジュールもビルドします。

$ mkdir ../modules
$ make modules_install ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- INSTALL_MOD_PATH=../modules/
$ ls ../modules/
lib


カーネルとモジュールを tar ボールにまとめて、

$ mkdir udlfb-3.6.11_cutdown
$ cp arch/arm/boot/zImage udlfb-3.6.11_cutdown/kernel.img
$ cp -pr ../modules udlfb-3.6.11_cutdown/
$ ls udlfb-3.6.11_cutdown/
modules  kernel.img
$ tar cvzf udlfb-3.6.11_cutdown.tgz udlfb-3.6.11_cutdown


Raspberry Pi (ここでは 192.168.1.10 )にコピー。

$ scp udlfb-3.6.11_cutdown.tgz pi@192.168.1.10:/home/pi


ここからは Raspberry Pi にログインしての作業。 まずは既存のカーネル・イメージをバックアップ。

pi@raspberrypi ~ $ sudo cp /boot/kernel.img /boot/kernel_org.img


先程運んだカーネルとモジュールを解凍してインストール。

pi@raspberrypi ~ $ tar xvzf udlfb-3.6.11_cutdown.tgz
pi@raspberrypi ~ $ sudo cp udlfb-3.6.11_cutdown/kernel.img /boot/kernel.img
pi@raspberrypi ~ $ sudo cp -pr udlfb-3.6.11_cutdown/modules/lib/modules/3.6.11-cutdown+ /lib/modules/


最後に Raspberry Pi を再起動しておしまい。

pi@raspberrypi ~ $ sudo reboot

もし、起動に失敗したら SD カードを直接 PC に接続して kernel.img を元にもどしましょうね。


Raspberry Pi に接続した USB モニターの確認と設定


無事 Raspberry Pi が起動したら、次のコマンドで DisplayLink 機器を認識しているか確認。

pi@raspberrypi ~ $ dmesg | grep DisplayLink
usb 1-1.2: Manufacturer: DisplayLink
udlfb: DisplayLink LCD-8000U - serial #403706
udlfb: DisplayLink USB device /dev/fb1 attached. 800x600 resolution. Using 1880K framebuffer memor

お、 LCD-8000U が見えてます。 ディスプレイもグリーン一色ですが発光。

LCD-8000U green screen


追加した USB ディスプレイのデバイスファイルは /dev/fb1 ( /dev/f0 は HDMI )。

このデバイスファイルを利用したディスプレイ( X11 )設定を作成しましょう。

pi@raspberrypi ~ $ sudo vi /etc/X11/xorg.conf


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


最後に startx してみると・・・

$ startx


き、キター!

Raspberry Pi after startx


貴重な USB ポートを1つ失うことになりますがキーボードとマウスを接続すれば可愛いミニ PC ができそうですね!

Raspberry Pi with LCD-8000U display


もっと詳しく知りたい!、と思ったらこちらのサイトをどうぞ。


僕も参考にさせて頂きましたよ。

それでは、より楽しい RPi ライフを。


センチュリー PLUS ONE 8インチUSB接続サブモニター ブラック LCD-8000U2
センチュリー (2013-04-01)
売り上げランキング: 2,161


Posted by netbuffalo at 22:30│Comments(0) Raspberry Pi | Linux


コメントする

名前
 
  絵文字