ターゲットボードにUSB経由でデータ転送するためには、ボードに組み込まれているブートローダ(U-Boot)を使用します。
まずは、ターゲットボードを起動し、U-Bootのコマンドプロンプトを表示させましょう。
次に、ターゲットボードとホストPCをUSB接続し、U-BootのUSBデータ転送用のコマンド「dnw」を実行します(注1)。
本コマンドを実行すると、ターゲットボード側は、ホストPC側からのデータ転送待ち状態になります。このときホストPC側では、USB接続の通知が行われます。
つまり、このタイミングで今回作成したUSBデバイスドライバのprobe処理が行われ、デバイスファイルが出来上がるという手はずです。それでは、確認してみましょう。
$stat /dev/androidbulk0
いかがですか。USBデバイスファイルが作られていますね。
これで、ターゲットボードの準備が整いました。ホストPC側から「dnw」コマンドを使って、カーネルイメージを転送してみましょう。
$sudo ./dnw zImage /dev/androidbulk0
すると、ターゲットボード上では、以下のようにダウンロード成功のメッセージが出力されます。
チェックサムも無事通りましたので、これでターゲットボードのメモリ領域に書き込まれたわけです。
後は、このカーネルイメージ(メモリの“c0008000”から始まる領域)を、以下のようにしてNAND Flashへコピーするだけです。
$nand write c0008000 900000 300000
最後にターゲットボードをリセットして、再起動させれば完了です。リセットすると、以下のようにkgdboe(KGDB over Ethernet)のログが出力されるはずです。これでカーネルの書き換えは成功です。
Copyright © ITmedia, Inc. All Rights Reserved.