[Displaylink] [Android] BeagleboardでUSB-LCDなAndroid
Android-Embedded-Japanのメーリングリストでmagoroku15氏が
BeagleBoard用のAndroidなDisplaylinkドライバを公開してくれていたので
USB-LCDを注文して試してみた。
っていうか慌てすぎて、後の返信に
SANSUNG SyncMaster U-70
のがいいって言ってたのに
GREEN-HOUSE GH-USD7K
っての買ってもうた。
ちゃんと最後まで読んどきゃよかったー!
両者の違いは
Green-Houseのは最初にUSBストレージとして認識されるんで
LCDに認識させ直すのにconfigurationをいじってやらないといけなくて
サムソンのはそれがいらないってだけです。
(いや、ここかなりめんどくさいんだけどね実際)
他のことして遊んでたから時間があいてちょっとうろ覚えな部分があるけど
手順なんかを簡単に
- DisplayLinkドライバのソースをゲット
- Androidカーネルソースのゲットとパッチ当て
- AndroidカーネルにDisplaylinkドライバを組み込む
- make menuconfig && make uImage
- SDへコピー
- ブート!
付録A.GREEN-HOUSEを買ってしまったあわてんぼうさんへ(僕)
1.DisplayLinkドライバのソースをゲット
magoroku15氏のDisplayLinkドライバ。
適当なディレクトリでゲットしておく。
$ git clone git://github.com/magoroku15/DisplayLink-driver-for-android.git
2.Androidカーネルソースのゲットとパッチ当て
Androidカーネルのビルド方法をsola氏が
http://code.google.com/p/android-development-environment/w/list
で非常にわかりやすい解説をしてくれているのでここを参考にすすめた。
当時Android1.6が最新だったので僕は
http://code.google.com/p/android-development-environment/wiki/Android1_6r1onBeagleBoard
を参考に。
今は2.0の情報も公開してくれてる。すばらしい。
とりあえ1.6の解説で言うところの
「4. kernel をビルドする」
の手前まで進める。
3.AndroidカーネルにDisplaylinkドライバを組み込む
パッチまだ出てないときだったから手で書き換えた
(magoroku15氏のパッチを当てたほうがはやいかも
http://github.com/magoroku15/USB_display-touchscreen-mouse-patch)
repoでゲットしたカーネルソースディレクトリの
にgitでゲットしたdisplaylinkディレクトリをコピー
$ cp -r displaylink
/kernel/drivers/video/.
Kconfigを編集
$ vi
/kernel/drivers/video/Kconfig 〜略〜
source "drivers/video/backlight/Kconfig"
source "drivers/video/display/Kconfig"source "drivers/video/displaylink/Kconfig" << ここ追加
if VT
source "drivers/video/console/Kconfig"
endif
〜略〜
Makefileを編集
$ vi
/kernel/drivers/video/Kconfig 〜略〜
obj-$(CONFIG_XEN_FBDEV_FRONTEND) += xen-fbfront.o
obj-$(CONFIG_FB_CARMINE) += carminefb.o
obj-$(CONFIG_FB_MB862XX) += mb862xx/
obj-$(CONFIG_FB_DISPLAYLINK) += displaylink/ << ここ追加# Platform or fallback drivers go here
obj-$(CONFIG_FB_UVESA) += uvesafb.o
obj-$(CONFIG_FB_VESA) += vesafb.o
〜略〜
4.make menuconfig && make uImage
ここまできたら
またsola氏のページを参考にしながら
「4. kernel をビルドする」
以降をすすめる。
ただしmake uImageする前にCONFIG_FB_OMAP2を無効、CONFIG_FB_DISPLAYLINKを有効にしてやる必要があるので
sola氏の解説で
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- sola_omap3_beagle_android_defconfig
まで行ったら
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- menuconfig
して表示されるコンフィグ画面で CONFIG_FB_OMAP2* を無効にしてCONFIG_FB_DISPLAYLINKを有効にする。
(CONFIG_FB_OMAP2が有効だとAndroidの/dev/graphics/fb0がomapfbになってしまう。
なのでfb0をDisplaylinkに割り当てたいがための設定)
Device Drivers > Graphics support > Displaylink frame buffer support
を有効に
Device Drivers > Graphics support > OMAP2/3 Display Subsystem support > OMAP2/3 frame buffer support
を無効に
したらばまたsola氏の解説どおり
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- uImage
以降を進める。
※makeでjava1.5に切り替えろ!って怒られたら
$ update-java-alternatives -l
java-1.5.0-sun 53 /usr/lib/jvm/java-1.5.0-sun
java-6-sun 63 /usr/lib/jvm/java-6-sun
java-gcj 1042 /usr/lib/jvm/java-gcj
で自分の環境をチェック。
1.5入ってなかったらapt-get
入ってるなら
$ sudo update-java-alternatives -s java-1.5.0-sun
$ export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
しとく。
6.SDへコピー
uImageとファイルシステムをSDへコピー
7.ブート!
うまくいけば最初に緑の画面が表示されるはず。
その後デスクトップが表示されればOK!
# でもなんか画面がチラつく!どうすればいいの?教えて偉い人!
magoroku15氏が修正してくれました!感謝!
-
-
-
-
- -
-
-
-
付録A.GREEN-HOUSEを買ってしまったあわてんぼうさんへ(僕)
ここからはUSB-DisplayがUSBストレージとして認識されてしまう場合の手順
まずAndroidにbusyboxをインストールしてfindコマンドを使えるようにする。
(busyboxは公式からDLしてきてmake CROSS_COMPILE=arm-none-eabi-でOKだったと思う
参考:http://d.hatena.ne.jp/kinneko/20080904/p12)
bConfigurationValuseを探すためにfindする。
# busybox find /sys -name bConfig*
/sys/devices/platform/musb_hdrc/usb2/bConfigurationValue
/sys/devices/platform/ehci-omap.0/usb1/bConfigurationValue
/sys/devices/platform/ehci-omap.0/usb1/1-2/bConfigurationValue
/sys/devices/platform/ehci-omap.0/usb1/1-2/1-2.1/bConfigurationValue
見つかったbConfigurationValueの中から値が2になってるやつを探す
# cat /sys/devices/platform/ehci-omap.0/usb1/1-2/1-2.1/bConfigurationValue
2
bConfigurationValuseを1にする
# echo 1 > /sys/devices/platform/ehci-omap.0/usb1/1-2/1-2.1/bConfigurationValue
DisplayLink device attached (GH-USD7)
found DisplayLink Chip alex
sent encryption null key: 16
displaylink monitor info: W(800) H(480) clock(3300)
colormap allocated
Console: switching to colour frame buffer device 100x30
# MMAP: 1536000 1536000
init: sys_prop: mis-match msg size recieved: -1 expected: 128
うまくいけば最初に緑の画面がでて、そのあとデスクトップが表示される。
あ、あとTwitterはじめました。
http://twitter.com/ksksue
同じ趣味の方いらっさいましたらフォローしあいましょう。