参考文件:
7重新烧写JZ2440的整个系统frank.docx
设置开发板环境,启动开发板进入uboot:
OpenJTAG> setenv serverip 192.168.1.106
OpenJTAG> setenv ipaddr 192.168.1.200
OpenJTAG> ping 192.168.1.106
ERROR: resetting DM9000 -> not responding
dm9000 i/o: 0x20000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:00:3e:26:0a:5b
could not establish link
host 192.168.1.106 is alive
保存环境变量:saveenv
使用mtdpart查看开发板的分区(韦东山的uboot已做nand分区)
device nand0
#: name size offset mask_flags
0: bootloader 0x00040000 0x00000000 0
1: params 0x00020000 0x00040000 0
2: kernel 0x00200000 0x00060000 0
3: rootfs 0x0fda0000 0x00260000 0
active partition: nand0,0 - (bootloader) 0x00040000 @ 0x00000000
defaults:
mtdids : nand0=nandflash0
mtdparts: mtdparts=nandflash0:256k@0(bootloader),128k(params),2m(kernel),-(root)
——————————————————————————————————————————————————
打开tftp工具,放入要烧录的文件
烧写uboot
tftp 30000000 u-boot-2012.04.01.bin
nand erase bootloader
nand write 30000000 bootloader
烧录内核
OpenJTAG>tftp 30000000 uImage_4.3
OpenJTAG>nand erase kernel
OpenJTAG>nand write.jffs2 30000000 kernel (说明:增加jffs2写入,为避免nand flash有坏块出现某一bit有异常,需要将校验码写进去)
**
烧录文件系统
tftp 30000000 fs_qtopia.yaffs2
nand erase rootfs
nand write.yaffs 30000000 rootfs $(filesize)
或
tftp 30000000 fs_qtopia.jffs2
nand erase rootfs
nand write.jffs2 30000000 0x260000 $(filesize) // 新版uboot可以去掉括号$filesize
注意烧录不同的文件系统需要设置不同格式,否则无法挂载
< set bootargs noinitrd root=/dev/mtdblock3 rootfstype=jffs2 init=/linuxrc console=ttySAC0,115200 >
烧录设备树
nfs 32000000 192.168.3.24:/work/jz2440.dtb
nand erase device_tree
nand write.jffs2 32000000 device_tree
编译uboot-2012.04.01
neethan@ubuntu64:~/work/jz2440/uboot/u-boot-2012.04.01$ make smdk2440_config
Configuring for smdk2440 board…
neethan@ubuntu64:~/work/jz2440/uboot/u-boot-2012.04.01$ make
制作u-boot补丁
删除编译文件和反汇编文件
~/work/jz2440/uboot/u-boot-2012.04.01$ make distclean
~/work/jz2440/uboot/u-boot-2012.04.01$ rm u-boot.dis
重命名当前修改的文件夹,将原来的u-boot文件压缩包再重新解压一份
生成补丁
这2个编译器有什么区别?
arm-linux-gcc-4.3.2.tar.bz2 用于编译u-boot2012.04.01和linux3.4.2
arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2用于编译u-boot1.16和linux2.6.22.6
格式化nand flash
nand scrub
将uboot的环境变量重新保存到nand flash中
saveenv
测试当前nand flash中坏块
nand bad
设置参数
setenv bootargs ‘noinitrd root=/dev/mtdblock3 rw rootfstype=yaffs2 init=/linuxrc console=ttyS0,115200’
bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0
bootargs=noinitrd root=/dev/mtdblock3 rw rootfstype=yaffs2 init=/linuxrc console=ttySAC0,115200
===>
setenv bootargs ‘noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0’
saveenv
============================================================================
开发板挂载 nfs
(
ifconifg eth0 192.168.1.17
mount -t nfs -o nolock,vers=2 192.168.1.103:/home/neethan/work/nfs_jz2440 /mnt
设置JZ2440v3挂载NFS网络文件系统
1、开机启动ifconfig 192.168.1.17 eth0
在/etc/init.d/rcS中加入ifconfig 192.168.1.17 eth0,开机自动启动网络服务
2、主机安装配置NFS
sudo apt-get install nfs-kernel-server portmap
vi /etc/exports
增加以下内容
/work/nfs_zjx *(rw,sync,no_root_squash)
重启NFS
sudo /etc/init.d/nfs-kernel-server restart
3、开发板中配置NFS启动
mount -t nfs -o nolock 192.168.1.120:/work/nfs_zjx /mnt
开机进入到设备手动创建xxx设备节点,前提是知道主设备号(252)
mknod /dev/xyz c 252 0