LTIB详解(六)部署文件

让内核/根文件系统 运行在目标板上

怎样让内核和根文件系统运行在目标板上呢,最常见的方法是使用tftp下载内核到目标板上,然后通过适当的参数引导内核来挂载根文件系统(通过主机使用NFS)。

5.2.1使用NFS从主机导出根文件系统

我们介绍一些需要执行的典型的步骤(需要root 权限):

1.                   选择一个在您的网络上未被使用的IP地址分配给您的目标。同时您需要确保您在配置ltib时,根文件系统可以使用该IP地址。目标甚至可以启用DHCP来得到IP。但是如果您在ltib配置时选择了DHCPNFS部署,它实际上将绕过eth设备的设置,而且依赖于当前设置的内核启动参数。

2.                   记住您主机的IP地址。例如,我们假设以下的参数:

目标IP地址: 192.168.0.254

主机地址:192.168.0.204

根文件系统位置:~/ltib(根据下载的BSP包可能不同,但是大多是以它为前缀)/rootfs

3.                   创建一个链接,从/tftpboot目录到根文件系统:

               #  ln –s  ~/ltib/rootfs  /tftpboot/192.168.0.254

4.                   确保您已经在您的系统上安装了NFS服务器和端口映射(若未安装可参考安装一节)。

5.           导出目录,通过编辑‘/etc/exports’,增加条目:

/home//ltib/rootfs  *(rw,no_root_squash)

注意:这个例子将关闭该目录下所有的安全性!任何主机都可以访问此导出的目录。可以通过 ”man exports” 查看更多的信息。

6.                   重启NFS(该目录仍在rootfs目录下):

# sh  /etc/rc.d/init.d/nfs  restart

5.2.2 确保您有一个tftp守护进程运行在您的主机

大多数的bootloader 加载内核的网络连接使用tftp协议。所以您的目标的bootloader 可以处理已经编译的内核,您必须确保在主机上有一个tftp的守护进程。这里您可以做一些检查,如下:
1、检查tftp服务器程序出现在您的系统中。使用下面的命令检查,如果它没有出现,您可能需要安装tftp-server 包。

# ls  /usr/sbin/in.tftpd

/usr/sbin/in.tftpd

 

2、检查inetd 是否设置运行tftp服务,可以通过运行如下命令检查。您的输出可能类似这样:

# netstat –a | grep tftp

udp   0   0 *:tftp       *:*

 

如果这儿没有输出,可以在下面文件中进行修改,使它使能:

/etc/xinetd.d/tftp

In my copy I note the following line:

disable = no

3、如果您的主机有防火墙,请确保它不会阻塞来自于目标的包的传入。所以,建议关闭防火墙。

 

5.2.3拷贝您的内核镜像到tftp可以检索到的一个位置

一般tftp服务器配置为“chroot”到这个目录。

/tftpserver

这意味着您需要拷贝您的内核到这个目录或者其下的子目录。在我们的示例中,我们做如下操作:

# cp rootfs/boot/uImage /tftpboot

上句命令包含这些信息:/tftpboot是我们前面设置好的tftp服务器目录,该目录可在/etc/xinetd.d/tftp 文件中修改;rootfs/boot/uImage LTIB生成的可引导的内核文件;命令的目的是将内核文件拷贝到tftp的服务器目录,方便后面进行tftp下载内核镜像。

5.2.4 使用导出RFS为您的内核设置bootloader参数

这个例子显示的是一个系统(参数为前一节中的设置)使用uboot / ppcboot

设置网络参数。在ppcboot的提示:

= >setenv ipaddr  192.168.0.254

= > setenv serverip 192.168.0.204

= > setenv bootargs  root = /dev/nfs  nfsaddrs = 192.168.0.254:192.168.0.204

 

5.2.5 下载您的内核到目标板上并启动目标

=> tftp 100000 vmlinux.gz.uboot

.........

=> bootm 100000

你可能感兴趣的:(linux,防火墙,网络,服务器)