红联Linux门户
Linux帮助

APPRO DM368x IPNC 2.0配置设备从NFS启动

发布时间:2014-09-14 10:22:50来源:linux网站作者:zxwangyun

以下操作均在Ubuntu 10.04 操作系统上进行。

1.NFS服务器安装配置

1.1配置portmap
sudodpkg-reconfigure portmap , 对Shouldportmap be bound to the loopback address? 选N

sudo gedit/etc/default/portmap 末行 OPTIONS="-i127.0.0.1"改为OPTIONS=,即删除"-i127.0.0.1"

1.2配置hosts.deny为阻止所有链接
sudo gedit/etc/hosts.deny

文本末添加

### NFSDAEMONS

portmap:ALL

lockd:ALL

mountd:ALL

rquotad:ALL

statd:ALL

1.3配置hosts.allow添加允许链接的ip地址
sudo gedit/etc/hosts.allow

文本末加入

### NFSDAEMONS

portmap:192.168.0.

lockd:192.168.0.

rquotad:192.168.0.

mountd:192.168.0.

statd:192.168.0.

1.4重启portmapdaemon
sudo/etc/init.d/portmap restart

1.5配置NFS路径
安装nfs服务器

sudoapt-get install nfs-kernel-server

配置

sudo gedit/etc/exports

添加nfs路径:

/ipnc_dev/DM36x_IPNC_DEV/2.0/Lab/ipnc/target/filesys192.168.0.1/24(rw,no_root_squash,no_all_squash,sync)

使用命令sudoshowmount -e查看nfs导出目录

显示 clnt-create : RPC :Program not registered

sudoexportfs -va 使exports文件生效

sudoexportfs -r更新

sudoshowmount 192.168.0.46 -e

显示

Export list for 192.168.0.46:

/nfsboot/filesys 192.168.0.*

1.6重启NFS服务器
sudo/etc/init.d/portmap restart

sudo/etc/init.d/nfs-kernel-server restart

1.7防火墙开放所有端口
请用如下命令暂时开放所有端口

sudoiptables -P INPUT ACCEPT

sudoiptables -P OUTPUT ACCEPT

或使用下列命令关闭防火墙

sudoiptables -F

1.8 NFS测试
使用命令

sudomount -t nfs 127.0.0.1:【解压路径】Release/Source/ipnc_rdk/target/filesys

在本地挂载nfs目录,如果没有错误,表示NFS已OK.


2.编译配置内核支持从NFS启动
切换到内核源码目录

cd/ipnc_dev/DM36x_IPNC_DEV/2.0/Lab/ipnc/ti-davinci

2.1清除原来内核配置
makeARCH=arm CROSS_COMPILE=arm_v5t_le- mrproper

makeARCH=arm CROSS_COMPILE=arm_v5t_le- distclean

makeARCH=arm CROSS_COMPILE=arm_v5t_le- clean

2.2使用默认配置
makeARCH=arm CROSS_COMPILE=arm_v5t_le- davinci_dm368_ipnc_defconfig

makeARCH=arm CROSS_COMPILE=arm_v5t_le- checksetconfig

2.3配置内核
使用命令

makeARCH=arm CROSS_COMPILE=arm_v5t_le- menuconfig

进入内核配置:

修改

DeviceDrivers --->Network device support ---> Ethernet (10 or100Mbit) --->

按空格,修改为

<*> Generic Media Independent Interface device support <*>TI DaVinci EMAC Support

修改

Filesystems ---> Network File Systems --->

按空格,修改为:

[*] Provide NFSv3 client support

[*]Root file system on NFS

保存配置,退出。

2.4编译内核
方式1:

切换到ipnc目录:

cd/ipnc_dev/DM36x_IPNC_DEV/2.0/Lab/ipnc或cd..

使用下面命令进行内核编译

makelspbuild MAKE_TARGET=uImage

编译完成后,会自动将内核映像文件复制到tftp目录下。

方式2:

在linux内核源码目录下使用命令

makeARCH=arm CROSS_COMPILE=arm_v5t_le- uImage

编译完成后,内核映像文件uImage在arch/arm/boot目录下,需手动复制到tftp目录下。


3.NFS根文件系统配置
切换到nfs目录的父母录

cd/ipnc_dev/DM36x_IPNC_DEV/2.0/Lab/ipnc/target

如果该目录下已经存在filesys文件夹,将其删除。

将cramfsImage_ipnc_dm368_2.0.0复制到当前目录下。

3.1基于已有的压缩的文件系统制作根文件系统
第一步:

mkdirtmpdir

sudo mountcramfsImage_ipnc_dm368_2.0.0 tmpdir -o loop

cd tmpdir

tar -cvf../cramfsImage_ipnc_dm368.tar ./ 将tmpdir中的内容打包放在其父目录下

cd ..

sudo umounttmpdir

rm -Rftmpdir

tmpdir目录是不可改写的,因为只读。所以要把它里面的东西导出到新的目录下。

第二步:

mkdir filesys

tar -xvfcramfsImage_ipnc_dm368.tar -C filesys

修改filesys目录中的内容,以符合自己的需要。

3.2基于已有的根文件系统制作cramfs压缩文件系统
切换到nfs目录的父母录

cd/ipnc_dev/DM36x_IPNC_DEV/2.0/Lab/ipnc/target

mkcramfsfilesys cramfsImage_ipnc_dm368.cramfs

cramfsImage_ipnc_dm368.cramfs即为制作好的文件系统。


4.目标板uboot环境变量配置
配置如下

setenvserverip 192.168.0.46

setenvnetmask 255.255.255.0

setenvgatewayip 192.168.0.254

setenvipaddr 192.168.0.168

setenvethaddr 90:3D:5A:10:3D:52

setenvdnsip 222.172.200.68

setenvbootdelay 1

setenvnfshost 192.168.0.46

setenvrootpath /ipnc_dev/DM36x_IPNC_DEV/2.0/Lab/ipnc/target/filesys

使用静态ip启动内核

setenvbootargs 'console=ttyS1,115200n8 noinitrd rwip=192.168.0.168:192.168.0.46:192.168.0.254:255.255.255.0:DM368_IPNC:

eth0:offroot=/dev/nfsnfsroot=192.168.0.46:/ipnc_dev/DM36x_IPNC_DEV/2.0

/Lab/ipnc/target/filesys,nolockmem=46M'

使用dhcp启动内核

setenvbootargs 'console=ttyS1,115200n8 noinitrd rw ip=dhcp root=/dev/nfsnfsroot=192.168.0.46:

/ipnc_dev/DM36x_IPNC_DEV/2.0/Lab/ipnc/target/filesys,nolockmem=46M'

这里将参数nfsroot配置为$(nfshost):$(rootpath),nolock不能启动,原因未知。

ip参数的格式为

ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>

client-ip:你正在使用的这块板子,你要为它设置的ip

server-ip:提供nfs服务的服务器的ip地址。如不需要NFS服务于板子,则此项可以空置

gw-ip:网关的ip地址,如果nfs与目标板在同一个网段内,则此项可以空置

netmask:子网掩码,如此项为空,则子网掩码为默认值255.255.255.0

hostname:你希望给目标板设置的主机名,在linux的shell中的如bash,命令行最开始有一个形如blacksword@laptop2:~ $这样的一个提示符,blacksword指当前的用户,而laptop2就是一个hostname.此项可以留空

device:如果目标板上仅一个网卡,且只接了一个PHY,同时电路的设计没有将PHY拉出两个地址来,则此项为空。如果不指有一个网卡,则可以指定要设置的ip地址是作用于哪一个网卡的。如指定给第一块网卡,则该参数为eth0.第二块为eth1,依此类推。

autoconf:

自动配置未明确指定参数的方式,可以是dhcp,rarp, bootp。如果不希望使用自动配置则可以使用off值来关闭 autoconf参数可以独立作用于ip参数,如ip=dhcp即表示由dhcp服务器给内核的ip参数提供所有数据。ip=off则表示所有参数都不配置,留待系统启动进行配置。

从tftp下载内核映像启动

setenvbootcmd 'tftpboot 0x80700000 uImage_ipnc_DM368; bootm 0x80700000'

从flash复制内核启动

setenvbootcmd 'nand read 0x82000000 0x700000 0xD00000;

nboot 0x80700000 00x500000;bootm 0x80700000'

保存配置

saveenv

重启设备

reset