こんにちは、天野勝です。
GEEKSCHOOL をお手伝いすることになったこともあり、Raspberry Pi 2 Model Bを購入しました。
せっかくのハードウェアなので、GEEKSCHOOL以外でも何かに使えないかといろいろと考えてみました。が、あまり良い使い方思い浮かびません。とりあえず画面が表示された方が使い勝手がよいだろうと考え、家に転がっていたUSBディスプレイ(LCD-USB10XB-T)をつないでみることにしました。
Webを検索すると、先人たちの資料がありましたので、これらを参考に設定をしてみました。
参考にさせていただいたページ
回回 PPE : Petit Panda Extreme 回回 – LCD-USB10XB-TをUbuntuで使う
RPi – Raspberry Pi で USB 接続型モニター(ディスプレイ)を利用する方法
Raspberry Pi Documentation
環境
- ターゲット
ハード:Raspberry Pi 2 Model B(以下、RPi2)
OS:Rasbian - 開発機
ハード:自作PC(CPUはJ1900)
OS:Ubuntu14.04(64bit)
ターゲットと開発機は、sshで接続します。
カーネルの再コンパイル
LCD-USB10XB-Tを使うには、DiplayLinkのドライバを有効にする必要があります。
しかし、Rasbianでは、このオプションがオフになった状態になっていますので、オプションをオンにしてカーネルをコンパイルします。
開発環境の構築
開発機でカーネルをコンパイルします。そのための環境を整えます。
作業用のディレクトリを作成します。
$ mkdir RPi $ cd RPi
toolchainをインストールします。
$ git clone https://github.com/raspberrypi/tools.git
toolchainを使えるようにします。
私の場合は、.bashrcにパスを追加しました。
.bashrc
PATH=$PATH:/home/masaru/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian:/home/masaru/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin:/home/masaru/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
カーネルのビルド
カーネルのソースコードを取得します。
$ git clone --depth=1 https://github.com/raspberrypi/linux.git
コンフィグファイルをターゲットであるRPi2からコピーします。
$ cd linux $ scp pi@RPi2のIPアドレス:/proc/config.gz ./ $ zcat config.gz > .config
コンフィグファイルを修正し、ドライバを有効にします
.config
# CONFIG_FB_UDL is not set
→
CONFIG_FB_UDL=m
私の場合、2924行目でした。
カーネルをビルドします。
私の環境では、1時間半くらいで終わりました。
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
モジュールをビルドします。
$ make modules_install ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=../modules/
カーネルの置換
カーネルとモジュールをtarボールにまとめて、RPi2に転送します。
まずはtarボールを作成します。
$ mkdir udlfb_raspi $ cp arch/arm/boot/zImage udlfb_raspi/kernel7.img $ cp -pr ../modules udlfb_raspi/ $ tar cvzf udlfb_raspi.tgz udlfb_raspi
sshでRPi2にログインし、RPi2側のバックアップを作成します。
$ ssh pi@RPi2のIPアドレス $ sudo cp /boot/kernel7.img /boot/kernel7_org.img $ exit
RPi2に転送します。
$ scp udlfb_raspi.tgz pi@RPi2のIPアドレス:/home/pi
展開してインストールします。
$ ssh pi@RPi2のIPアドレス $ tar xvzf udlfb_raspi.tgz $ sudo cp udlfb_raspi/kernel7.img /boot/kernel7.img $ sudo cp -pr udlfb_raspi/modules/lib/modules/3.18.12-v7+ /lib/modules/
再起動します。
$ sudo reboot
カーネルのバージョンを確認します。
$ uname -a Linux raspberrypi 3.18.12-v7+ #1 SMP PREEMPT Thu Apr 30 01:21:34 JST 2015 armv7l GNU/Linux
“Raspberry Pi 2にLCD-USB10XB-Tつなぐ[1/3] – カーネル再構築編” への 1 件のフィードバック