2013年7月5号
6. 内核打补丁、建source insight工程、编译、烧写
首先通过cuteftp把linux-2.6.22.6_jz2440.patch拷贝到/work/system目录下
book@book-desktop:/work/system$ tar xjf linux-2.6.22.6.tar.bz2
book@book-desktop:/work/system$ cd linux-2.6.22.6/
book@book-desktop:/work/system/linux-2.6.22.6$ patch -p1 < ../linux-2.6.22.6_jz2440.patch
book@book-desktop:/work/system/linux-2.6.22.6$ cp config_ok .config
book@book-desktop:/work/system/linux-2.6.22.6$ make uImage
book@book-desktop:/work/system/linux-2.6.22.6$ make clean
book@book-desktop:/work/system/linux-2.6.22.6$ cd ..
book@book-desktop:/work/system$ tar cjf linux-2.6.22.6_jz2440.tar.bz2 linux-2.6.22.6
book@book-desktop:/work/system$ cd linux-2.6.22.6/
book@book-desktop:/work/system/linux-2.6.22.6$ cp config_ok .config
book@book-desktop:/work/system/linux-2.6.22.6$ make uImage
/work/system/linux-2.6.22.6/arch/boot里面的uImage就可以用UBOOT烧写到开发板了
总结一下:.config是隐藏文件,可以用ls -al 看到
上面的整个流程是,解压内核文件,然后用补丁文件打补丁,然后用把打好补丁的内核文件打包通过cuteftp发送到主机
下面是编译内核
2013年7月6号
今天遇到一个奇怪的问题,当正在连接搜索网络ip的时候,本地ip没有,这时虚拟机和主机不在同一个网段,始终ping不通.
如果没有插网线,ipconfig提示本地ip为Media state就会出现上面的情况。解决办法,先设置自动获取IP,重新插好网线,更改IP就行了
ipconfig /release
ipconfig /renew
参考:http://blog.csdn.net/lushuaiyin/article/details/7480047
7. 制作、烧写根文件系统,使用NFS,编译使用驱动程序
7.1 仅用flash上的根文件系统启动后,手工MOUNT NFS
mount -t nfs -o nolock,vers=2 192.168.1.19:/work/nfs_root /mnt
7.2 使用NFS作为根文件系统来启动
set bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.19:/work/nfs_root/tmp/fs_mini_mdev ip=192.168.1.17:192.168.1.19:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0
nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>
自己总结过程:
book@book-desktop:/work/nfs_root$ mkdir tmp
book@book-desktop:/work/nfs_root$ cp fs_mini_mdev.tar.bz2 tmp/
book@book-desktop:/work/nfs_root$ cd tmp/
//这里解压不成功
book@book-desktop:/work/nfs_root/tmp$ tar xjf fs_mini_mdev.tar.bz2
book@book-desktop:/work/nfs_root/tmp$ rm -rf fs_mini_mdev
book@book-desktop:/work/nfs_root/tmp$ sudo tar xjf fs_mini_mdev.tar.bz2
book@book-desktop:/work/tools$ sudo cp mkyaffs2image /bin/
book@book-desktop:/work/tools$ sudo chmod +x /bin/mkyaffs2image
book@book-desktop:/work/tools$ cd /work/nfs_root/tmp/
book@book-desktop:/work/nfs_root/tmp$ mkyaffs2image fs_mini_mdev fs.yaffs2
book@book-desktop:/work/nfs_root/tmp$ ls
fs_mini_mdev fs_mini_mdev.tar.bz2 fs.yaffs2
先设uboot里的
set ipaddr 192.168.1.17
set serverip 192.168.1.4
OpenJTAG> nfs 30000000 192.168.1.51:/work/nfs_root/tmp/fs.yaffs2
dm9000 i/o: 0x20000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:00:3e:26:0a:5b
could not establish link
File transfer via NFS from server 192.168.1.51; our IP address is 192.168.1.17
Filename '/work/nfs_root/tmp/fs.yaffs2'.
Load address: 0x30000000
Loading: ####################
OpenJTAG> nand erase root
OpenJTAG> nand write.yaffs 30000000 260000 $(filesize)
使用flash上的根文件系统启动后,手工MOUNT NFS
# mount -t nfs -o nolock,vers=2 192.168.1.51:work/nfs_root /mnt
mount: 192.168.1.51:work/nfs_root failed, reason given by server: Permission denied
这里我改了set serverip 192.168.1.51就好了,然后我重启了下,好像不需要更改的
使用NFS作为根文件系统来启动
首先重启系统,进入UBOOT里面,搜索\linux-2.6.22.6_jz2440\linux-2.6.22.6\Documentation里面的nfs.txt里面会教你怎么做
set bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.51:/work/nfs_root/tmp/fs_mini_mdev ip=192.168.1.17:192.168.1.51:192.168.1.1:255.255.255.0::eth3:off init=/linuxrc console=ttySAC0
nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>
set bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0