第四步:设置TFTP SERVER
有两种方法可以实现,一个在Redhat Linux 5里设置 TFTP SERVER,在根目录/下产生tftpboot目录,使用chmod -R 777 /tftpboot/改变权限属性,然后配置linux 里的TFTP server。另一个是直接使用windows下的TFTP SERVER软件,把在LINUX下生成的文件,比如U-BOOT,KERNEL,ROOTFS 通过samba机制COPY到windows下的TFTP SERVER的目录。我们这里只介绍第1中方法。
使用tftp server 之前,首先确保你的linux 主机安装有xinetd,然后使用以下命令,查看你linux主机是否安装TFTP SERVER:
host $ rpm -q tftp-server
如果出现: tftp-server-0.xx-x.x字样,表明安装成功。没有的话,你需要从REDHAT LINUX5的镜像光盘CD里SERVER目录下,使用命令(rpm -ivh tftp-server-0.42-3.1.i386.rpm)安装,或者直接把tftp-server-0.42-3.1.i386.rpm解压出来放到临时文件夹里同样使用rpm -ivh tftp-server-0.42-3.1.i386.rpm安装。
进入根目录/下,使用命令
host $ mkdir /tftpboot
host $ chmod -R777 /tftpboot
host $ /sbin/chkconfig tftp on
host $ /sbin/chkconfig --list
这时linux主机会显示
..............
xinetd based services:
chargen-dgram: off
chargen-stream: off
cvs: off
daytime-dgram: off
daytime-stream: off
discard-dgram: off
discard-stream: off
echo-dgram: off
echo-stream: off
eklogin: off
ekrb5-telnet: off
gssftp: off
klogin: off
krb5-telnet: off
kshell: off
rsync: off
tcpmux-server: off
tftp: on
time-dgram: off
time-stream: off
on表示TFTP SERVER已经运行。这时你可以把ubl.bin uboot.bin kernel.bin之类的bin文件COPY到/tftpboot目录下,在板子上跑的UBOOT可以做很多update的工作了。
第五步:设置NFS
开发嵌入式LINUX一定少不了NFS,目的是提高应用软件的开发效率。笨办法就是频繁烧写rootfs到板子上,那是不可取的。
1) 以普通用户<useracct>进入linux host,如果你在ROOT下,使用exit,然后换成普通用户进入。
2)使用命令进入 /home/<useracct>下,
host $ cd /home/<useracct>
host $ mkdir -p dm6446/nfs_rootfs
host $ cd dm6446/nfs_rootfs
3)切换到root
host $ su root
host $ cp -a /opt/mv_pro_5.0.0/montavista/pro/devkit/arm/v5t_le/target/* .
host $ chown -R <useracct> opt
cp -a 命令很耗时间,因为东西很多,就是把之前安装的mvl_5_0_0801921_demo_sys_setuplinux.bin里的根文件系统target目录下的东西全部COPY到当前目录下(注意那个"."),其实这个target就是TI EVM的根文件系统,超级大!不过使用nfs不用管它的大小,等制作rootfs烧到板子上的时候,再裁减不迟。
4)编辑linux host /etc/exports文件,
host $ vi /etc/exports
内容:/home/<useracct>/dm6446/nfs_rootfs *(rw,no_root_squash,no_all_squash,sync)输入,注意"*"和"("之间不能有空格,它们是连在一起写的。使用wq保存exports文件退出。
5)还是在root账号下,使用以下命令激活nfs,
host $ /usr/sbin/exportfs -av
host $ /sbin/service nfs restart
6)检验并关闭linux host的防火墙:
host $ /etc/init.d/iptables status
host $ /etc/init.d/iptables stop
到这里linux host的nfs已经搞定,我们以后可以使用下面的方法测试nfs。
使用以下命令得到linux host的IP,gatewayip,netmask等信息。
host $ /sbin/ifconfig
然后在板子上的U-BOOT命令下,输入以下信息:
myboard # setenv ipaddr 192.168.1.188(本人板子u-boot ip)
myboard # setenv serverip 192.168.1.251(本人linux host ip)
myboard # setenv netmask 255.255.255.0
myboard # setenv gatewayip 192.168.1.1
myboard # setenv nfshost 192.168.1.251
myboard # setenv rootpath /home/<useracct>/dm6446/nfs_rootfs
myboard # setenv bootargs console=ttyS0,115200n8 noinitrd rw ip=192.168.1.188:192.168.1.251:192.168.1.1:255.255.255.0:::off root=/dev/nfs nfsroot=192.168.1.251:/home/<useracct>//dm6446/nfs_rootfs,nolock mem=120M
myboard # saveenv(保存)
myboard # printenv
(检查刚才的输入是否正确,否则NFS挂不上根文件系统) |