下文所使用到的一些工具下载,提取码:rdw7
将电脑和开发板通过网线连接到路由器上,如下图所示,要确保三者处于同一个局域网。
VMWare选择桥接模式,方法如下:
在桥接模式中选择有线网卡(最好直接禁用windows的wifi网卡,不易混淆),如下图操作:
Windows的有线网卡IP、ubuntu的IP、开发板的IP,三个IP必须处于同一网段。
Windows的IP一般都是由路由器DHCP自动分配的,在命令行执行:ipconfig
,查看它的IP。
为了防止IP频繁更改,我们将IP设置为固定IP,设置方法如下:
Ubuntu的IP一般都是自动分配的,在命令行执行:ifconfig
,查看它的IP。
同windows一样,为了防止IP频繁更改,我们将IP设置为固定IP,设置方法如下:
然后保存,关闭再打开网络连接即可。【需要提醒的一点,关闭再打开之后会看到子网掩码变成24,这是正常的】
注意:设置开发板的IP之前,需要下载好U-boot并进入到开发板。【见1.1.4】
setenv ipaddr 192.168.10.103
setenv ethaddr 00:04:9f:04:d2:35
setenv gatewayip 192.168.10.1
setenv netmask 255.255.255.0
setenv serverip 192.168.10.102
saveenv
一般windows有防火墙,Ubuntu或者开发板(运行Linux系统)PING Windows是PING不通的,这个不要紧,只要windows能PING通对方即可。注意,处于运行Uboot的开发板,不回应PING数据,所以外界是PING不通UBOOT的,只能在UBOOT去PING别的电脑。由上述分析,我们只需测试两个即可:Windows PING Ubuntu测试 和 u-boot PING Ubuntu测试。
上面两个都可以PING通,才能说明三者IP设置没问题。
将SD卡通过读卡器插入到PC【注:SD卡一定要是FAT32格式】,并接入到Ubuntu下。
SD卡分区确定,只需在SD卡插入前后分别在Ubuntu终端输入ls /dev/sd*
,对比新出现的分区,即是SD卡对应的分区。
eg:我的SD卡插入Ubuntu后出现了/dev/sdb 和 /dev/sdb1,那么我的SD卡对应的烧写分区就是
/dev/sdb
chmod 777 imxdownload
./imxdownload u-boot.bin /dev/sdb
在 Ubuntu 中执行以下命令安装 TFTP 服务:
sudo apt-get install tftp-hpa tftpd-hpa
然后,创建 TFTP 服务器工作目录(注意要赋予全部权限),并打开 TFTP 服务配置文件,如下:
mkdir -p /home/clay/tftpboot
sudo chmod 777 /home/clay/tftpboot
sudo vim /etc/default/tftpd-hpa
在配置文件/etc/default/tftpd-hpa
中,修改TFTP_DIRECTORY
和TFTP_OPTIONS
字段,示例如下:
最后重启tftp服务器:
sudo service tftpd-hpa restart
将编译好的zImage文件放入到ubuntu的/home/clay/tftpboot
目录,并赋予zImage文件777
权限。
进入开发板的u-boot,输入tftp 80800000 zImage
下载zImage文件。若如下图所示,则表示zImage下载成功,tftp服务器搭建成功。
将zImage文件和imx6ull-alientek-emmc.dtb文件放置到/home/clay/tftpboot
目录,如下图所示:
注:需要将dtb文件也赋予
777
权限
将开发板上的拨码开关设置为SD卡启动,插入SD卡到开发板,进入u-boot。然后设置以下环境变量:
setenv bootcmd 'tftp 80800000 zImage;tftp 83000000 imx6ull-alientek-emmc.dtb;bootz 80800000 - 83000000'
saveenv
首先,执行以下命令安装 NFS 服务:
sudo apt-get install nfs-kernel-server
然后编辑/etc/exports 文件,添加 NFS 服务导出的工作目录:
sudo vim /etc/exports
添加 NFS 目录:下面以/home/clay/为例,将其添加到/etc/exports 文件中, 如下:
/home/clay/nfs *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
最后,重启 NFS 服务:
sudo service nfs-kernel-server restart
如果一切正常,可以在 Ubuntu 中测试 NFS 服务:
sudo mount -t nfs 127.0.0.1:/home/clay/nfs /mnt
这样访问/mnt
目录和访问/home/clay/nfs
目录就是一样的了
没有问题后,取消挂载
sudo umount /mnt
将rootfs.tar.bz2
文件放置到/home/clay/nfs/rootfs
目录,然后输入以下命令进行解压:
tar -jxvf rootfs.tar.bz2
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.10.102:/home/clay/nfs/rootfs ip=192.168.10.103:192.168.10.102:192.168.10.1:255.255.255.0::eth0:off'
saveenv
如果当前在u-boot中,直接输入boot
即可启动Linux系统,否则按下开发板的复位键即可。
开发板启动后如下图所示: