IMX6ULL学习--TFTP加载内核和设备树,NFS挂载根文件系统

前提条件

  • 开发板和主机相互ping通,主机IP:192.168.0.175,开发板IP:192.168.0.111 。
  • 主机已经单间NFS网络文件系统,用于挂载根文件系统
  • 主机与用户端建立TFTP服务,用于加载内核和设备树

搭建网络环境

搭建NFS服务

已写

搭建TFTP服务

安装配置xinetd

  • 安装软件
$ sudo apt-get install xinetd
  • 查询/etc/下是否存在xinetd.conf文件,没有的话新建一个
$ ls /etc/xinetd.conf
  • 修改 xinetd.conf
$sudo vi /etc/xinetd.conf

xinetd.conf

# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
defaults
{
# Please note that you need a log_type line to be able to use log_on_success
# and log_on_failure. The default is the following :
# log_type = SYSLOG daemon info
}
includedir /etc/xinetd.d
  • 新建TFTP工作目录
$ mkdir /home/book/arm/imx6ull/TFTP
& sudo chmod 777  /home/book/arm/imx6ull/TFTP
  • 安装tftp-hpa和tftpd-hpa服务程序
$ sudo apt-get install tftp-hpa tftpd-hpa
  • 配置
$ sudo vi /etc/default/tftpd-hpa

tftpd-hpa

 1 # /etc/default/tftpd-hpa
  2
  3 TFTP_USERNAME="tftp"
  4 TFTP_DIRECTORY="/home/book/arm/imx6ull/TFTP"
  5 TFTP_ADDRESS=":69"
  6 TFTP_OPTIONS=" -l -c -s"
  • 配置/etc/xinetd.d/tftp文件
$ sudo vi /etc/xinetd.d/tftp
1 servicetftp
  2                 {
  3                         socket_type = dgram
  4                         wait = yes
  5                         disable = no
  6                         user = root
  7                         protocol = udp
  8                         server = /usr/sbin/in.tftpd
  9                         server_args = -s  /home/book/arm/imx6ull/TFTP -c
 10                         #log_on_success += PID HOST DURATION
 11                         #log_on_failure += HOST
 12                         per_source = 11
 13                         cps =100 2
 14                         flags =IPv4
 15                 }

  • 重启tftpd-hpa
$ sudo service tftpd-hpa restart
  • 重启xinetd服务
$ sudo service xinetd restart
  • 测试TFTP
    在TFTP文件夹新建文件test.c
    在开发板中新建文件夹TFTP,使用如下命令下载test.c文件
$  tftp -g -r test.c 192.168.0.175

下载完成查看文件内容无误,说明TFTP搭建成功。

网络加载内核和设备树

文件准备

  • 将编译生成的内核文件zImage和设备树文件imx6ull-14x14-evk-emmc-hdmi.dtb拷贝到TFTP文件夹下。

Uboot设置环境变量

  • 设置IP,联通网络。
=> setenv serverip 192.168.0.175
=> setenv ipaddr 192.168.0.111
=> setenv ethaddr 08:00:00:00:22:01
=> setenv gatewayip 192.168.0.1
=> setenv netmask 255.255.255.0

serverip :TFTP服务器IP,即主机(ubuntu)IP。
ipaddr :开发板IP
ethaddr :mac地址
gatewayip :网关
netmask :子网掩码
设置完成后,开发板ping主机,ping通就说明网络通了。

  • 设置mmcboot,从网络加载内核和设备树文件。
setenv mmcboot 'echo Booting from mmc ...; run mmcargs; tftp ${loadaddr} zImage;tftp ${fdt_addr} imx6ull-14x14-evk-emmc-hdmi.dtb; bootz ${loadaddr} - ${fdt_addr};'
  • 保存环境变量
saveenv
  • 文件系统固化到emmc中

重启开发板

重启后即可看到开发板从网络加载内核和设备树文件。

reading zImage
6992344 bytes read in 169 ms (39.5 MiB/s)
Booting from mmc ...
FEC1 Waiting for PHY auto negotiation to complete.... done
Using FEC1 device
TFTP from server 192.168.0.175; our IP address is 192.168.0.111
Filename 'zImage'.
Load address: 0x80800000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ######################
         309.6 KiB/s
done
Bytes transferred = 6992344 (6ab1d8 hex)
Using FEC1 device
TFTP from server 192.168.0.175; our IP address is 192.168.0.111
Filename 'imx6ull-14x14-evk-emmc-hdmi.dtb'.
Load address: 0x83000000
Loading: ###
         600.6 KiB/s
done
Bytes transferred = 40618 (9eaa hex)
Kernel image @ 0x80800000 [ 0x000000 - 0x6ab1d8 ]
## Flattened Device Tree blob at 83000000
   Booting using the fdt blob at 0x83000000
   Using Device Tree in place at 83000000, end 8300cea9

Starting kernel ...

网络挂载NFS根文件系统

暂未成功

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值