Ubuntu TVやってみる(5) スクエアディスプレイに表示できるようにしてみる

SDまっさらにして再スタート。

kinneko@BuildSV:~/linaro-panda$ sudo linaro-media-create --mmc /dev/sdc --dev panda --hwpack hwpack_linaro-lt-panda-x11-base_20111219-1_armel_supported.tar.gz --binary linaro-o-ubuntu-desktop-tar-20111219-0.tar.gz 


linaro版は、どうやら、ワイドディスプレイに表示されるようになっているようで、手元の昔のスクエア液晶には表示ができない。
それだと作業が滞るので、まずこれを解決する。


DSS2というAngstrome由来のドライバが使われていて、オプションはこのへんにある。
http://omappedia.org/wiki/Bootargs_for_enabling_display#DSS_specific_bootargs

omapfb.mode=x[M][R][-][@][i][m] or [-][@]
- Default video mode for specified displays. For example - "dvi:800x400MR-24@60".
, , and are decimal numbers and is a string.
is resolution in x-axis.
is resolution in y-axis.
is bit per pixel.
[M] will allow to compute the timings using VESA(tm) Coordinated Video Timings (CVT).
[R] will allow to compute with reduced blanking (for flatpanels).
[i] will allow to compute interlaced mode.
[m] will add margins equal to 1.8% of xres rounded down to 8 pixels, and 1.8% of yres.

デフォルトはここに書かれているのとは違うようだ。


kernelの起動パラメータは、kernelを起動するubootが渡している。
ubootが参照しているのは、起動パーティションにあるboot.scrの中身になる。
boot.scrは、ubootがロードできるようにmkimageでヘッダが追加されたファイル。
同じ内容がboot.txtに書かれている。

kinneko@BuildSV:~/linaro-panda$ mkdir mnt
kinneko@BuildSV:~/linaro-panda$ sudo mount /dev/sdc1 mnt/
kinneko@BuildSV:~/linaro-panda$ sudo mv mnt/boot.scr mnt/boot.scr.org
kinneko@BuildSV:~/linaro-panda$ sudo mv mnt/boot.txt mnt/boot.txt.org
kinneko@BuildSV:~/linaro-panda$ sudo cp mnt/boot.txt.org mnt/boot.txt     
kinneko@BuildSV:~/linaro-panda$ sudo vi mnt/boot.txt

通常のLinaro版の設定は以下のようになっている。

setenv initrd_high "0xffffffff"
setenv fdt_high "0xffffffff"
setenv bootcmd "fatload mmc 0:1 0x80200000 uImage; fatload mmc 0:1 0x81600000 uInitrd; fatload mmc 0:1 0x815f0000 board.dtb; bootm 0x80200000 0x81600000 0x815f0000"
setenv bootargs "console=tty0 console=ttyO2,115200n8  root=UUID=e2d067cc-a340-4ee5-b5eb-7a330833a6a8 rootwait ro earlyprintk fixrtc nocompcache vram=48M omapfb.vram=0:24M mem=456M@0x80000000 mem=512M@0xA0000000"

無難なところで、"omapfb.mode=dvi:1024x768MR-24@60"を追記する。

kinneko@BuildSV:~/linaro-panda$ cat mnt/boot.txt
setenv initrd_high "0xffffffff"
setenv fdt_high "0xffffffff"
setenv bootcmd "fatload mmc 0:1 0x80200000 uImage; fatload mmc 0:1 0x81600000 uInitrd; fatload mmc 0:1 0x815f0000 board.dtb; bootm 0x80200000 0x81600000 0x815f0000"
setenv bootargs "console=tty0 console=ttyO2,115200n8  root=UUID=8a1267b1-a432-4f86-836f-ef0e75cb2a97 rootwait ro earlyprintk fixrtc nocompcache omapfb.mode=dvi:1024x768MR-24@60 vram=48M omapfb.vram=0:24M mem=456M@0x80000000 mem=512M@0xA0000000"
boot

mkimageでboot.scrを作る。

kinneko@BuildSV:~/linaro-panda$ sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Ubuntu" -d mnt/boot.txt mnt/boot.scr
Image Name:   Ubuntu
Created:      Tue Jan 24 22:23:32 2012
Image Type:   ARM Linux Script (uncompressed)
Data Size:    484 Bytes = 0.47 kB = 0.00 MB
Load Address: 00000000
Entry Point:  00000000
Contents:
   Image 0: 476 Bytes = 0.46 kB = 0.00 MB

できたのは、少しサイズが大きい。

kinneko@BuildSV:~/linaro-panda$ ls -l mnt/boot.scr*
-rwxr-xr-x 1 root root 548 Jan 24 21:23 mnt/boot.scr
-rwxr-xr-x 1 root root 514 Jan 24 22:50 mnt/boot.scr.org
kinneko@BuildSV:~/linaro-panda$ sudo umount mnt

出来たものをPandaに挿入して再起動。
HDMIケーブルは、NIC側のDVI端子に入れる。
電源を入れて起動する。
ACの突入で起動すると、調子がわるいことがあるようなので、入れたらリセットボタンを押しておく。


表示、きたきた。
ペンギン2匹とコンソールのあと、しばらくブラックアウトする。
そのうち、センタにマウスカーソルが見えてくる。
Xだけの時は、マウスカーソルも快調に動く。


あとは長い。待つだけ。
ほんと長い...


やっぱ、SDからだとUnity表示終わるまですら時間がかかりすぎだわ。
Unity動くと、カーソルの残像が出る。
クリックしても、カーソルが残る。
リフレッシュがおいついていないようだ。


あれ?これ、1024x768じゃないな...
VRAM足りないかな?
800x600くらい?
こんなもんだっけ?


アップデートマネージャーが、106個のパッケージをアップデートせよと言っているけど、とりあえず無視。


Terminalを起動して、dropbearをインストールし、sshを開通。
てーか、このイメージのユーザー名がわからぬな。
ユーザー名はlinaroになっている。
shadowファイルにはパスワードのハッシュが埋まっているので、linaroにはパスワードが設定されているらしい。
クリアする。
エコーがおかしいのか、terminal画面で、passwdコマンドのインターフェイスが出ない。
めくら打ちで変更OK。
以下sshごしに作業できる。