HDL-GXR 対応 linux カーネルパッチの使い方 †先日の日記でカーネルパッチを晒したので,使い方をもう少し詳しく説明してみる. 用意するもの †
mkimage プログラム †u-boot 形式のバイナリを作るプログラムです. u-boot のソースの中にあります. ARM コンパイル環境上でビルドしてパスの通った場所に置いておきましょう. カーネルのコンパイル †
linux-2.6.28-rc6/arch/arm/boot/uImage が目的のブツです. rootfs の作成 †SATA HDD にパーティションを切って sda2.tar.gz を展開します. このページと同じ要領でいいでしょう. カーネルのコピー †先ほど作成した uImage を 1 番めのパーティションにコピーします. 名前は何でもいいのですが,説明のためここでは uImage-2.6.28-rc6.gxr としときます. HDD を LANDISK に装着 †T/O シリアルの接続 †UART0 というシルク(基板上の文字)があるところにシリアルケーブルを接続します. 文字のあるほうが 1 番ピンです. 向きを間違えないように. シリアルの通信パラメータは
です. 電源投入 †========================================= HDL-GXR series Initial boot loader Copyright (C) 2006 I-O DATA DEVICE,INC. ========================================= ** LOADER ** ** MARVELL BOARD: DB_MV88F5182_HDL_GT LE U-Boot 1.1.1 (Oct 5 2006 - 13:58:33) MV : 1.7.3 (I-O DATA 0.9(GX)) DRAM CS[0] base 0x00000000 size 128MB DRAM Total size 128MB MX AM29LV400B (4 Mbit, bottom boot sect) Size: 512 kB,Bus Width: 2, device Width: 2. Flash base: 0xfff80000,Number of Sectors: 11 Type: BOTTOM. [512kB@fff80000] Flash: 512 kB Addresses 20M - 0M are saved for the U-Boot usage. Mem malloc Initialization (20M - 16M): Done Soc: MV88F5182 Rev 2 CPU: ARM926 (Rev 0) running @ 400Mhz SysClock = 200Mhz , TClock = 166Mhz USB 0: host mode USB 1: host mode PCI 0: PCI Express Root Complex Interface Net: egiga0 [PRIME] Hit any key to stop autoboot: 0 HDL-GXR>> 電源を入れるとシリアル端末上にベロベロっとメッセージが出てきます. このままだと自動ブートシーケンスに入ってしまうので,何かキーを押してシーケンスを中止させます. HDL-GXR>> というプロンプトが出てきます. そこで,以下のように入力します. ide reset ← SATA ドライブのリセット ext2load ide 0:1 0x02000000 /uImage-2.6.28-rc6.gxr ← カーネルのロード setenv bootargs console=ttyS0,115200 root=/dev/sda2 ro mem=128M ← カーネルコマンドラインの指定 bootm ← 起動 linux が起動しましたね. tips †自動起動するようにする †下記のようにすればできるはずですが,未確認です.
tftp でのカーネルのロード †u-boot 上で以下のようにすれば tftp 経由でカーネルをロードできます. set ipaddr 192.168.0.200 ← LANDISK の IP アドレス set serverip 192.168.0.1 ← tftp サーバの IP アドレス tftpboot 0x02000000 どこか/uImage-2.6.28-rc6.gxr ← tftp でのカーネルのロード setenv bootargs console=...(略) ← カーネルコマンドライン bootm ← linux の起動 |