(bootload)Uboot网络操作命令

        我们在移植Linux之前需要先移植一个能配置操作linux内核的bootloader,bootloader就相当于Window的BIOS,这边移植的是U-boot。而U-boot是支持网络的,可利用U-boot的网络功能调试linux kernel,U-boot的基本网络操作命令主要有:dhcp、ping、nfs、tftpboot。

一、配置开发板的网络

        要使用网络,首先需要调通网络。使电脑PC与开发板实现通信,从而后续可以直接通过电脑PC对开发板进行调试。

        首次使用开发板,需要配置开发板的网络,使用路由器连接电脑PC和开发板,使其处于同一个局域网,通过串口连接上开发板,使用SecureCRT进入到开发板的调试命令模式,使用以下命令手动配置U-boot的网络环境变量:

环境变量设置成功后效果如图所示。

        (1)dhcp命令

        除了手动配置开发板的网络外,还可以通过dhcp命令从路由器自动获取IP,使用路由器连接电脑PC和开发板,使其处于同一个局域网,从SecureCRT进入到开发板的调试命令模式,输入“dhcp”命令:dhcp命令不仅可以使开发板从路由器获取到IP,其还会通过TFTP来启动 linux 内核,输入“? dhcp”即可查看 dhcp 命令详细的信息。

        此处获取到的IP地址为192.168.31.62,此处tftp启动linux内核配置未完成,所以暂无法正确启动。

设置完毕后,我们可以从路由器查询到我们连接设备的IP。

        (2)ping命令

        配置完开发板的网络后,可以通过ping命令验证开发板的网络是否可用,是否可以和服务器(Ubuntu主机)进行通信,ping命令则是直接ping服务器主机的IP便可(eg:ping 192.168.31.183)

        只能在uboot中ping其他的机器,其他机器不能ping uboot,因为uboot没有对ping命令做处理,如果用其他的机器ping uboot的话会失败!

二、nfs命令和tftp命令

(1)nfs命令

        nfs(nfsetwork File System)网络文件系统:通过 nfs 可以在计算机之间通过网络来分享资源(eg:通过nfs把ubuntu里面的linux镜像和设备树文件下载到开发板的DRAM),Ubuntu 的 NFS 服务开启步骤如下:

        1、安装 NFS 服务:sudo apt-get install nfs-kernel-server rpcbind

        2、在/home/lixiaobai/linux路径下,新建一个名为“nfs”的文件夹

        3、配置 nfs:sudo vi /etc/exports,打开/etc/exports 以后在后面添加如下所示内容:/home/lixiaobai/linux/nfs *(rw,sync,no_root_squash)

        4、重启 NFS 服务,使用命令如下: sudo /etc/init.d/nfs-kernel-server restart

        5、nfs服务开启后,把需要下载的文件放入到nfs文件夹,电脑PC端与开发板连接到同一个局域网(PC电脑与开发板连接到同一个路由器),通过secureCRT连接上开发板,进入到U-boot的命令操作模式,输入以下命令:nfs 80800000 192.168.31.183:/home/lixiaobai/linux/nfs/zImage(效果如图所示)

        6、最后可以使用md.d命令查看写入到DRAM里面的数据,并使用软件winhex软件对比zImage的数据是否一致,看是否下载成功。

(2)tftp命令

        tftp 命令的作用和 nfs 命令一样,都是用于通过网络下载东西到 DRAM 中,只是 tftp 命令使用的 TFTP 协议

        1、在 Ubuntu 上搭建 TFTP 服务器:
        sudo apt-get install tftp-hpa tftpd-hpa

        sudo apt-get install xinetd

        2、在用户目录下新建一个目录存放文件(给予权限):

        mkdir /lixiaobai/linux/tftpboot

        chmod 777 /home/lixiaobai/linux/tftpboot

        3、配置tftp服务器

        (1)新建文件/etc/xinetd.d/tftp,如果没有/etc/xinetd.d 目录的话就创建

一个,输入以下内容:

server tftp

{

         socket_type = dgram

         protocol = udp

         wait = yes

         user = root

         server = /usr/sbin/in.tftpd

         server_args = -s /home/lixiaobai/linux/tftpboot/

         disable = no

         per_source = 11

         cps = 100 2

         flags = IPv4

}

完了以后启动 tftp 服务:sudo service tftpd-hpa start

        (2)打开/etc/default/tftpd-hpa 文件,将其修改为如下所示内容:

        # /etc/default/tftpd-hpa

        TFTP_USERNAME="tftp"

        TFTP_DIRECTORY="/home/lixiaobai/linux/tftpboot"(为上面我们创建的文件夹)

        TFTP_ADDRESS=":69"

        TFTP_OPTIONS="-l -c -s"

最后输入以下命令重启 tftp 服务器:sudo service tftpd-hpa restart

        4、把需要下载的文件放入到tftpboot文件夹,电脑PC端与开发板连接到同一个局域网(PC电脑与开发板连接到同一个路由器),通过secureCRT连接上开发板,进入到U-boot的命令操作模式,输入以下命令:tftp 80800000 zImage 

        配置好后,若出现无法下载的情况,可先复位下开发板,若还是无法正常使用,可从头排查修改的内容是否有误。

Logo

更多推荐