从网络启动 linux 系统的唯一目的就是为了调试!不管是为了调试 linux 系统还是 linux 下的驱动。每次修改 linux 系统文件或者 linux 下的某个驱动以后都要将其烧写到 emmc 中去测试,这样太麻烦了。我们可以设置 linux 从网络启动,也就是将 linux 镜像文件和根文件系统都放到 ubuntu 下某个指定的文件夹中,这样每次重新编译 linux 内核或者某个 linux 驱动以后只需要使用 cp 命令将其拷贝到这个指定的文件夹中即可,这样就不用需要频繁的烧写 emmc,这样就加快了开发速度。
| 配置网络
uboot是支持网络的,在移植uboot的时候一般都要调通网络功能,因为在移植linuxkernel的时候需要使用到uboot的网络功能做调试。uboot支持大量的网络相关命令,比如 dhcp、ping、nfs 和 tftpboot。
(启动时打印信息)
(网络相关的变量)
1、连接网线,网线一定要接在左边那个网口,uboot的fec1就是这个网口;
2、 配置uboot的网络,把下面命令全部输入uboot面板中;
setenv ipaddr 192.168.2.50 //开发板 ip 地址setenv ethaddr b8:ae:1d:01:00:00 //开发板网卡 mac 地址setenv gatewayip 192.168.2.1 //开发板默认网关setenv netmask 255.255.255.0 //开发板子网掩码setenv serverip 192.168.2.55 /服务器地址,也就是 ubuntu 地址saveenv //保存环境变量
上面的配置不一定适合所有,请根据实际网络进行配置:
windows电脑的cmd中的ipconfig指令来查看;
linux的电脑使用ifconfig指令来查看;
注意:虚拟机中的ubuntu要使用【桥接】,然后在【虚拟网络编辑器】中添加桥接的网络,不懂就百度一下,一定要保证物理机和虚拟机的网络在同一个网段,并且能ping通,若ping不通物理机,可以关闭【防火墙】再尝试;
3、测试是否ping通
| 搭建tftp服务
tftp 命令的作用和 nfs 命令一样,都是用于通过网络下载东西到 dram 中,只是 tftp 命令使用的 tftp 协议,ubuntu 主机作为 tftp 服务器。因此需要在 ubuntu 上搭建 tftp 服务器,需要安装 tftp-hpa 和 tftpd-hpa,命令如下:
sudo apt-get install tftp-hpa tftpd-hpasudo apt-get install xinetd
tftp也需要一个文件夹来存放文件,在用户目录下新建一个目录,示例命令如下:
// 创建文件夹mkdir /home/noah/linux/tftpboot// 赋予权限chmod 777 /home/noah/linux/tftpboot
最后配置 tftp,安装完成以后新建文件/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/noah/linux/tftpboot/ disable = no per_source = 11 cps = 100 2 flags = ipv4}
配置完后启动tftp服务,命令如下:
sudo service tftpd-hpa start
打开/etc/default/tftpd-hpa文件,将其修改为如下所示内容:
# /etc/default/tftpd-hpatftp_username=tftptftp_directory=/home/noah/linux/tftpboottftp_address=:69tftp_options=-l -c -s tftp_directory 就是上面创建的 tftp 文件夹目录,以后我们就将所有需要通过tftp 传输的文件都放到这个文件夹里面,并且要给予这些文件相应的权限。 最后输入如下命令, 重启 tftp 服务器: sudo service tftpd-hpa restart tftp 服务器已经搭建好了,接下来就是使用了。 | 测试验证 将 zimage 镜像文件拷贝到 tftpboot 文件夹中,并且给予 zimage 相应的权限,命令如下:chmod 777 zimage
uboot串口交互指令中的「tftp命令格式」如下:
tftpboot [loadaddress] [[hostipaddr:]bootfilename]
loadaddress:文件在dram中的存放地址;
[[hostipaddr:]bootfilename]:要从ubuntu中下载的文件;
注意:tftp传输文件,不需要输入文件在ubuntu中的完整路径,只需要输入文件名即可。
比如我们现在将 tftpboot 文件夹里面的 zimage 文件下载到开发板 dram 的 0x80800000 地址处,命令如下:
tftp 80800000 zimage
| 启动linux
1、设置环境变量,命令如下:
setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'setenv bootcmd 'tftp 80800000 zimage; tftp 83000000 imx6ull-14x14-evk-emmc.dtb; bootz 80800000 - 83000000'saveenv
2、通过tftp将zimage和设备树下载到板子的ram中,命令如下:
tftp 80800000 zimagetftp 83000000 imx6ull-14x14-evk-emmc.dtb
使用到的文件有「野火提供的yocto的zimage和dtb文件」,可以在野火公开文件包中找到;
3、启动内核,命令如下:
bootz 80800000 - 83000000
4、启动成功
至此,uboot的移植基本完成,可以启动linux内核。启动内核之后,uboot的使命就完成了。
CAN总线为什么能在1Mbps上传输超过50M?
量子测控一体机 用于计算机控制系统
配电网和输电网的区别
自动焊接机器人为企业节约成本
高压平台驱动电机绝缘高频、高电压耐久性如何评价
从网络启动linux系统如何做调试
工业机器人是智能制造也最具代表性的装备
SDN技术与5G网络切片结合将催生新的商业模式加速行业数字化转型步伐
世界各国第三代半导体材料发展情况
概述UPS电源在数据中心的应用
一种能够模拟BM-NSCLC复杂BTME的3D微流控装置
人工智能和机器人的进步最终将超越目前的局限
LCD触摸屏接口电路图
智能LED照明需要创新的管控和调光
简单的定时渐亮照明灯电路
人工智能的核心是什么?杉树科技有着自己的看法
华为美国子公司裁员600人 官方回应来了
什么是唤醒标志Wake flag?AUTOSAR架构下CanTrcv休眠唤醒问题再探
机械臂的制作教程
资阳携手安费诺,目标打造全国首个电气连接器产业基地