|
1、安装
从www.kernel.org上下载Linux2.6.16版的kernel,解压到 /usr/src/arm/linux-2.6.16
从http://maxim.org.za/AT91ARM9200/2.6/ 上下载针对rm9200的补丁(这个网站很难上,多试几次),文件名:2.6.16-at91.patch.gz,复制到 /usr/src/arm/linux-2.6.16,然后在命令行界面中执行 zcat 2.6.16-at91.patch.gz |patch -p1
下载GCC编译器,文件名:arm-linux-gcc-3.4.1.tar.bz2,解压到 /usr/local/arm/3.4.1
2、修改
打开内核原代码根目录下的Makefile,找到如下两行:
ARCH ?=$(SUBARCH)
CROSS_COMPILE ?=
修改为:
ARCH ?=arm
CROSS_COMPILE ?=/usr/local/arm/3.4.1/bin/arm-linux-
3、编译内核
执行如下命令:
make at91rm9200dk_defconfig
make menuconfig
make zImage
大约5分钟内核就会编译好,生成的内核文件在/usr/src/arm/linux-2.6.16/arch/arm/boot/zImage
4、配置选项
当执行make menuconfig后,进入配置菜单,有些选项必须改成如下的内容,否则生成的内核不能运行:
boot options->Compressed ROM boot loader base address=0x21000000
boot options->Compressed ROM boot loader BSS address= 0x21200000
boot options->Default kernel command string= "root=/dev/ram rw initrd=0x20410000,6000000 ramdisk_size=15360 console=ttyS0,115200 mem=32M
如果打算使用NFS,必须选中以下这一选项:
File systems->Network file systems->NFS file system support
5、烧录linux
Uboot启动后执行如下命令:
protect off all
tftp 21000000 zImage
erase 1:2-11
cp.b 21000000 10040000 140000
tftp 21000000 ramdisk
erase 1:12-60
cp.b 21000000 10180000 600000
setenv bootcmd cp.b 10040000 21000000 140000\;cp.b 10180000 20410000 600000\;go 21000000
saveenv
按以上设置,zImage不得大于1.25M,ramdisk不得大于6M
问题:按照上述方法使用ramdisk启动后mount 主机的nfs会显示RPC eror -101,但是nfs可以被mount上,但是想要以nsfroot的方式启动同样会显示RPC -101错误代码,然后就会出错“VFS找不到根文件系统”。我用的启动参数是:
root=/dev/nfs rw nfsroot=192.168.1.2:/rootfs ip=192.168.1.200 console=ttyS0,115200 mem=32M
请知道解决方法的朋友告诉我一声,谢谢 |
|