ココの続き。
Samsung Galaxy Androidさんのubootでも動いては居ますが、EU版のGS2とau版のGS2では画面解像度が違うので表示されるログが読めません。どうも、EU版(というか、殆どのGS2)は800x480の解像度で、au版はHD解像度の1280x720になっているみたい。
というわけで、試しに解像度部分をau版に合うように修正します。解像度の初期化をやっているのは、ubootソースの”board/samsung/galaxys2/galaxys2.c”で、該当部分はこんな感じになっています。
335 void *video_hw_init(void) { 336 memset(I9100_FB, 0, 480 * 800 * 4); 337 gdev.frameAdrs = I9100_FB; 338 gdev.winSizeX = 480; 339 gdev.winSizeY = 800; 340 gdev.gdfBytesPP = 4;
単純に手を入れると、あからさまに解像度な部分を書きなおせばいいだけと思います。
335 void *video_hw_init(void) { 336 #if 0 /* mog */ 337 memset(I9100_FB, 0, 480 * 800 * 4); 338 gdev.frameAdrs = I9100_FB; 339 gdev.winSizeX = 480; 340 gdev.winSizeY = 800; 341 #else /* mog */ 342 memset(I9100_FB, 0, 720 * 1280 * 4); 343 gdev.frameAdrs = I9100_FB; 344 gdev.winSizeX = 720; 345 gdev.winSizeY = 1280; 346 #endif /* mog */
直したら保存して、makeし直します。
[SB2 slp2 sbs-armel_home_moguris_sbs] root@geozero i9100-proper-linux-i9100-uboot # make galaxys2
サンプル系のアプリビルドには失敗しますが、u-boot.binは無事ビルド出来るので余り気にしなくていいと思います。
make -C examples/standalone all make[2]: Entering directory `/home/moguris/Downloads/uboot/i9100-proper-linux-i9100-uboot/examples/standalone' make[2]: *** No rule to make target `.depend', needed by `all'. Stop. make[2]: Leaving directory `/home/moguris/Downloads/uboot/i9100-proper-linux-i9100-uboot/examples/standalone' make[1]: *** [examples/standalone] Error 2 make[1]: Leaving directory `/home/moguris/Downloads/uboot/i9100-proper-linux-i9100-uboot' make: *** [galaxys2] Error 2
取りあえず、このu-boot.binで焼き直して reboot。
文字は読めるようになった、、、kernelの起動には行ってるみたい。でも起動しない。
(この状態で放置すると酷く熱を持つので注意!)
mmcblk1p2辺りがbad partitionになっているみたい。
アドレスが違うのか?