iTOP-i.MX6ULL开发板-Tftp烧写和Nfs启动

硬件平台:迅为iTOP-i.MX6ULL开发板

使用网络方式调试 Linux 非常方便,下面开始介绍用 tftp 下载 Linux 内核镜像,设备树,然后使用 NFS

网络挂载根文件系统,成功后可以在 PC 机上调试开发板。

文档中使用的开发环境:

Ubuntu16.04 LTS

迅为 i.MX6ULL 终结者开发板

开发板 uboot 使用迅为搭建好的支持网络的版本,Net FEC1,如图 79.1

 

79.1

根文件系统使用的是 \终结者 ULL 光盘资料\i.MX6ULL 终结者光盘资料\08_开发板系统镜像\03_文件系

统镜像\02_Buildroot 文件系统\rootfs.tar.bz2

此外,开发板和 Ubuntu 要在在同一网关,本文档 Ubuntu IP 地址为 192.168.1.12,开发板的 IP 地址

192.168.120,关于网络配置不再赘述,Ubuntu 设置如下:

 

 

79.1 配置开发板网络

网线连接口如图 79.1.1

 

79.1.1

进入命令行后,输入“?”或 “help”查看 uboot 命令,使用 printenv 查看环境变量;我们在终端输入:

setenv serverip 192.168.1.12

服务器的 IP 地址(Ubuntu)

setenv gatewayip 192.168.1.1

网关

setenv

ipaddr 192.168.1.120

开发板的 ip 地址

setenv

netmask 255.255.255.0

子网掩码

setenv ethaddr 42:03:07:3B:15:5F

saveenv

保存环境变量

reset

重启

完成后,输入“ printenv serverip ipaddr gatewayip netmask ”,显示如图 79.1.2

 

 

 

79.1.2

测试与服务器的网络是否畅通,输入“ ping 192.168.1.12 ”,显示如图 79.1.3

 

79.1.3

出现这样的结果表示网络已通,可以进行下一步了。

 

79.2 tftp 服务搭建

tftp 是一个简单的基于 udp 的文本文件传输协议,我们用它将内核镜像和设备树下载到开发板内存中,

并指定地址,只在 Ubuntu 上配置好 tftp 服务器即可。

1. 在家目录下创建文件夹:mkdir tftpboot ,

2. 修改文件夹权限:chmod 777 tftpboot

3. 下载:sudo apt-get install tftp-hpa tftpd-hpa

4. 修改配置文件:sudo vim /etc/default/tftpd-hpa ,如图 79.2.1

 

79.2.1

5. 启动:sudo service tftpd-hpa restart

6. Linux 内核镜像 zImage,设备树拷贝到 tftpboot 文件夹下,

79.2.2

7. 测试:在开发板输入“ tftp 0x80000000 zImage ”,显示如图 79.2.3

 

79.2.3

出现上图所示的结果说明 tftp 搭建成功。

79.3 nfs 服务搭建

我们将开发板的文件系统放在 PC 端(Ubuntu),开发板的文件系统类型设置为 nfs,就可以挂载文件

系统了。具体步骤(在 Ubuntu 上操作):

1. 安装 nfs 服务:sudo apt-get install nfs-kernel-server

2. 创建文件夹,存放开发板的根文件系统:mkdir nfs_rootfs chmod 777 nfs_rootfs

3. 更改配置文件:sudo vi /etc/exports ,文件末尾添加:

/home/ubuntu/nfs_rootfs *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)

前面路径修改为自己的路径,* 含义为所有的用户,*和后边的左括号"("之间不要出现空格。修改为图 79.3.1

所示:

 

79.3.1

rw :读写访问

sync :所有数据在请求时写入共享

async NFS 在写入数据前可以相应请求

secure NFS 通过 1024 以下的安全 TCP/IP 端口发送

insecure NFS 通过 1024 以上的端口发送

wdelay :如果多个用户要写入 NFS 目录,则归组写入(默认)

no_wdelay :如果多个用户要写入 NFS 目录,则立即写入,当使用 async 时,无需此设置。

no_hide 共享 NFS 目录的子目录

subtree_check 如果共享/usr/bin 之类的子目录时,强制 NFS 检查父目录的权限

no_subtree_check 和上面相对,不检查父目录权限

all_squash 共享文件的 UID GID 映射匿名用户 anonymous,适合公用目录。

no_all_squash 保留共享文件的 UID GID

root_squash root 用户的所有请求映射成如 anonymous 用户一样的权限 no_root_squas root 用户具有根目录

的完全管理访问权限

4. 重启 nfs 服务

sudo service nfs-kernel-server restart

sudo /etc/init.d/nfs-kernel-server restart ,如图 79.3.2

 

79.3.2

出现上图所示说明搭建成功。

5.

将文件系统压缩包解压后的文件放到该目录下。

 

79.3.3

79.4 设置自启动参数

bootcmd bootagrs 是两个很重要的环境变量,bootcmd 保存着 uboot 启动命令,bootargs 保存着一些

参数,这些参数会传递给 Linux 内核。

设置自启动模式命令(启动内核设备树),我们把 PC 端准备好的内核和设备树下载到开发板的内存,不用

再往 eMMC NAND 中烧写调试起来非常方便:

setenv bootcmd 'tftp 80800000 zImage; tftp 83800000 imx6ul_topeet_nand.dtb; bootz 80800000 -

83800000’

保存环境变量 saveenv

zImage 为内核镜像,下载到首地址为 0x80800000 的内存空间;

topeet_emmc_1024x600.dtb 为设备树,根据实际屏幕型号烧写设备树

bootz 根据内核镜像地址和设备树地址加载启动,注意“ - ”左右有空格

注意:目前完全支持 eMMC 版本,可正常开机自启动,NAND 开发板如果使用 tftp 传输内核和设备树

每次开机都要重新输入此命令。

设置网络启动参数(启动文件系统)

setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.1.12:/home/ubuntu/nfs_rootfs

ip=192.168.1.120:192.168.1.12:192.168.1.1:255.255.255.0::eth0:off’

nfsroot 后的参数为 PC 端的 nfs 文件夹路径,读者根据自己需要配置,格式为:

nfsroot=NFS 服务器 IP(Ubuntu IP):文件系统的绝对路径。

ip 后的参数为开发板网络信息,填写格式:

ip=开发板 IP:服务器 IP:网关,子网掩码::eth0off

注意空格,字母和标点符号都是英文。

 

 

79.4.1

保存:saveenv

输入“boot”启动,自动进入网络系统。

打印出下载内核设备树信息:

 

79.4.2

启动文件系统会显示出挂载 NFS 文件系统信息:

 

79.4.3

成功后输入用户名 root ,密码 topeet ,进入系统,在 Ubuntu 的 nfs_rootfs 创建文件 sss,开发板

上也会有相应的文件如图 79.4.4

 

 

 

79.4.4

 

79.4.5

可能出现的错误:

 

79.4.6

出现这种错就是文件系统没挂载成功,最大可能是 netargs 参数输错了,检查 bootargs 命令,检查 Ubuntu

配置文件,重启 NFS

如果开发板连得 PC 机可以在 windows 上找到虚拟机用的网卡,设置为为百兆全双工。

 

79.4.7

右击以太网图标,点击配置,找到 高级下的连接速度和双工模式,选择 100Mbps 全双工。

 

79.4.8

使用 prientenv 查看环境变量,如图 79.4.9

 

 

 

79.4.9

如果环境变量不知道哪错了可以重置环境变量,重置环境变量命令:

env default -a

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值