WNR 200はOpenWRTを正常に使用できます.


この記事のソースhttp://blog.csdn.net/gt945/article/details/12165569
一ヶ月以上前からWNR 200にOpenWRT移植を始めましたが、その時はWNR 200はまだOpenWRTの公式サポートを受けていませんでした.WNR 200の構成はAR 7241+AR 9287で、16 M ROM、64 M RAM、OpenWRTを走るのはとてもさわやかなはずです.しかし、公式のサポートがないので、多くのものは自分で修正する必要があります.その中で一番重要なのは、arch/mips/ath 79/mach-wnr 2200.
移植は簡単で、すぐにWNR 200のカーネルが完成しました.WNR 200のubootはイメージの使用に違いがありますので、ubootに対応するために、uImageイメージのパッケージには公式のmkimageプログラムが必要です.このプログラムはオフィシャルファームウェアをコンパイルする時に生成できます.
mkimage  -A mips -O linux -T kernel -a 80060000 -e 80060000 -C lzma -d openwrt-ar71xx-generic-vmlinux.lzma uImage
は起動パラメータを設定します.
console=ttyS0,115200 board=WNR2200 root=31:3 rootfstype=squashfs
このミラーはtftpbootを通じてWNR 200にダウンロードして走ることができます.ルートのファイルシステムがまだ終わっていないので、ファイルシステムに移動してマウントするしかないです.
tftpboot 80800000 uImage
bootm 80800000
カーネルに問題がないなら、ファイルシステムを処理しなければなりません.ルートファイルシステムの処理は主にパーティションが正しいです.私のパーティション方式は以下の通りです.
{
		.name		= "u-boot",
		.offset		= 0,
		.size		= 0x040000,
		.mask_flags	= MTD_WRITEABLE,
	}, {
		.name		= "u-boot-env",
		.offset		= 0x040000,
		.size		= 0x010000,
	}, {
		.name		= "kernel",
		.offset		= 0x050000,
		.size		= 0x180000,
	}, {
		.name		= "rootfs",
		.offset		= 0x1d0000,
		.size		= 0xcf0000,
	}, {
		.name		= "config",
		.offset		= 0xec0000,
		.size		= 0x010000,
	}, {
		.name		= "language_table",
		.offset		= 0xed0000,
		.size		= 0x100000,
	}, {
		.name		= "pot",
		.offset		= 0xfd0000,
		.size		= 0x010000,
	}, {
		.name		= "traffic_meter",
		.offset		= 0xfe0000,
		.size		= 0x010000,
	},{
		.name		= "ART",
		.offset		= 0xff0000,
		.size		= 0x010000,
		.mask_flags	= MTD_WRITEABLE,
	}
私は二つのところを修正しました.公式ファームウェアのグリーンロードパーティションを削除して、大体14 Mの空間を使って、ケネルとrootfsに空間を分けます.ケネルはuImageを置くために使われます.rootfsはルートファイルシステムです.
ブラシでシステムを書くために、私はopenwrtをコンパイルする時initramfsに参加します.このようにルートのファイルシステムがなくても、ほとんどの機能を使うことができます.
mkimage  -A mips -O linux -T kernel -a 80060000 -e 80060000 -C lzma -d openwrt-ar71xx-generic-vmlinux-initramfs.lzma uImage-initramfs
tftpboot 80800000 uImage-initramfs
bootm 80800000
入ってからなんとかしてopenwrt-ar 71 x-genersic-root.squasfsをrootfsパーティションに書いてください.tftpもhttpもいいです.
rootfsを入れたら、これまでinitramfsを持たなかったカーネルが正常に起動します.
今まで、私たちがルーティングを開始する方法はubootのtftpbootしか使えません.
ルータが自動的にOpenWRTを起動するためには、uImageをケネルパーティションにブラシする必要があります.多日の努力を経て、やっと達成しました.そしてブラシの流れを添付します.
ファームウェアをダウンロード
パソコンは固定IP 192.168.1.27を設定して、tftp serverを開いて、そして3つのファイルをtftpサーバのルートディレクトリのシリアル接続WNR 200に置いて、起動して、バックはUbootのコマンドラインに入ってbootを設置します.
tftpboot 80800000 uImage-initramfs
bootm 80800000
linuxシステムに入ったら
cd /tmp
tftp -g -l image.img -r image.img 192.168.1.27
tftp -g -l root.fs -r root.fs 192.168.1.27
mtd write image.img kernel   
mtd -r write root.fs rootfs
今回のファームウェアは基本ファームウェアで、webグラフィックスインターフェースがないため、どのように追加するかはまだ検討されていません.