串口如果被作为默认终端,那马串口就会用于输出系统调试信息,而不能用于我们自己的串口通信。
在TQ2440的NOR中的U-BOOT,选择0 set the boot parameter。
##### Parameter Menu #####
[1] Set NFS boot parameter
[2] Set Yaffs boot parameter
[3] Set parameter
[4] View the parameters
[d] Delete parameter
[s] Save the parameters to Nand Flash
[q] Return main Menu
如果想使用本地文件系统,输入2即可,然后s。
如果想使用NFS系统,还要输入PC端IP,本开发板IP,子网掩码,NFS路径
Enter your selection: 1
Enter the PC IP address:(xxx.xxx.xxx.xxx)
192.168.1.5
Enter the SKY2440/TQ2440 IP address:(xxx.xxx.xxx.xxx)
192.168.1.6
Enter the Mask IP address:(xxx.xxx.xxx.xxx)
255.255.255.0
Enter NFS directory:(eg: /opt/EmbedSky/root_nfs)
/opt/EmbedSky/root_nfs
bootargs: console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.5:/opt/EmbedSky/root_nfs ip=192.168.1.6:192.168.1.5:192.168.1.6:255.255.255.0:SKY2440.embedsky.net:eth0:off
最后可以看到,输出了bootargs参数的值。然后s保存。
查看参数时,可以输入指定的参数名,也可以直接按回车,查看所有参数。
Enter your selection: 4
Name(enter to view all paramters):
bootcmd=boot_zImage
bootdelay=0
baudrate=115200
ethaddr=0a:1b:2c:3d:4e:5f
ipaddr=192.168.1.6
serverip=192.168.1.8
netmask=255.255.255.0
mtdids=nand0=nandflash0
mtdparts=mtdparts=nandflash0:256k@0(bios),128k(params),128k(toc),512k(eboot),1024k(logo),3m(kernel),-(root)
bootargs=console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.5:/opt/EmbedSky/root_nfs ip=192.168.1.6:192.168.1.5:192.168.1.6:255.255.255.0:SKY2440.embedsky.net:eth0:off
stdin=serial
stdout=serial
stderr=serial
partition=nand0,0
mtddevnum=0
mtddevname=bios
Environment size: 520/131068 bytes
这里面我们暂时只需要关注bootargs这个参数。这个参数比较长,注意是一行,可能由于排版原因,这里被显示成了两行。
Enter your selection: 4
Name(enter to view all paramters): bootargs
bootargs=console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.5:/opt/EmbedSky/root_nfs ip=192.168.1.6:192.168.1.5:192.168.1.6:255.255.255.0:SKY2440.embedsky.net:eth0:off
参 数中的第一个console=ttySAC0,就表示使用的是默认的那个串口,第三个nfsroot=192.168.1.5:/opt /EmbedSky/root_nfs表示PC端开放的NFS路径,后面的ip就是本地IP、PC端IP、网关、子网掩码等等,那个网址没有什么意义,随 便改,eth0是默认网口。
按3,输入参数名bootargs,要注意的是这些参数必须一次写入,而且只要有一处写错了一点,就会导致无法引导。
console=ttySAC1 root=/dev/nfs nfsroot=192.168.1.5:/opt/EmbedSky/root_nfs ip=192.168.1.6:192.168.1.5:192.168.1.6:255.255.255.0:www.aiai.edu.cn:eth0:off
这样,默认的终端串口就被设置为扩展串口中的一个,默认串口不会输出系统的调试信息了(但是linux内核的输出信息还是会有的)。这里给的例子只是nfs时的配置,具体情况具体分析。
打开linux-2.6.30.4/arch/arm/boot/compressed/misc.c文件,找到函数static putstr(const char * ptr),在声明char c;之后让函数直接返回,不执行putc(c);即可。
关 于NFS文件系统,要在PC端的root_nfs/etc/init.d/rcS文件中,屏蔽掉 net_set &这行,改为“#net_set &”即可,如果不屏蔽这一行,系统会重新设置IP,导致网络错误,无法连接到NFS。当调试完毕,准备制作镜像的时候,记得把这里再改回去。