ページ

2012年9月21日金曜日

NetBSD/KOBO

Kobo touch

巷で大人気なKOBOにNetBSD載せました。
Koboちゃん解析 にいろいろ詳しい事書いてあります。

NetWalkerでi.MX51に対応してあったので意外と簡単に動いたかなという感じです。
とりあえず2012/09/21現在のcurrentでのKOBO対応を公開しようと思います。
パッチは google drive に置いておきます。
kobo.diff

Boot

Boot方法ですが、残念ながらノーマルな状態から簡単にできる方法はありません。
まずはu-bootをコンパイルすることから初めましょう。

u-bootのソースコードは kobolabs / Kobo-Reader にあります。
構築方法はgithubの、
Kobo-Reader/hw/imx508/ntx/u-boot-2009.08.tar.gz
を展開するとご丁寧に build.sh がありますのでそれを実行するだけです。
"build.sh"なんて開発者はきっとNetBSDユーザーに違いない。

とまあ解説しましたが、面倒だよという人にはバイナリを用意しておきました。
KOBO u-boot
使ってやってください。

u-boot.bin を 内蔵SD の先頭に放り込んでやればブートするはずです、はい。
"dd" でも使って適当なSDに書き込んでやってください。
元から入っていた SD は念の為取っておいた方がよいかと思います。
まあ電子書籍として使う気が無いならどうでも良いですが。

肝心のNetBSDバイナリは外付けのSDカードスロットの方に入れておきます。
普通にFATでフォーマットしたSDのルートディレクトリに置けばOK。
(この辺は u-boot から boot できればなんでもいいので適宜読み替えてください。)

u-bootがブートしたら以下のコマンドをすばやく入力してください。
(一定時間放っておくとハングアップします。多分WDTなのですが原因はよくわかっておりません。)
  • mmcinfo 1
  • fatload mmc 1 0x70800000 netbsd.bin
  • go 0x70800000
ってやってやればブートするはずです。
(u-bootでこれを自動実行する方法ってどうやるんでしょう?)

デバイスドライバ

今のところ
  1. UART
  2. GPIO
  3. SD
  4. USB HOST
  5. I2C (温度センサ)
あたりが動いております。

ちなみに、USB Host は Vbus を供給する事ができないので Vbus は他から入れてやるか、Vbus関係ねぇなHubを見つけてきてください。
私は これ を使って Vbus を供給してあげました。

うーん、なかなか説明が難しいです。
わからない事あれば御気軽にご相談ください。

まとめ

  1. シリアルを奪う
  2. 内蔵SDのu-bootを入れ変える
  3. 外付けのSDカードにNetBSDバイナリを格納
  4. u-bootのコンソールからブート 

0 件のコメント:

コメントを投稿