uboot 来源:"08、系统镜像\02、教程系统镜像\02、阿尔法V2.4版本及以后和miniV2.2及以后的底板\01、u-boot镜像\emmc\u-boot.bin",烧写到 TF 卡
kernel 来源:"\01、例程源码\03、正点原子Uboot和Linux出厂源码",使用配置文件"imx_alientek_emmc_defconfig",使用设备树文件"imx6ull-alientek-emmc.dts",使用 tftp 从网络获取
rootfs 来源:使用 busybox1.37.0 生成的基础根文件系统:rootfs_busybox1.37.0_basic.tar.xz,使用 nfs 从网络获取
开发板使用串口波特率 115200
用的网口是靠近串口的,不是靠近 3 个USB 的。
1、uboot 烧录到 TF 卡
直接使用正点原子出厂的 uboot 镜像,然后使用 imxdownload 工具烧写到 TF 卡。
1、看一下磁盘
ls /dev/sd*
输出:
hltj@vmpc:~/桌面$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda22、插入读卡器
读卡器如果连接在了 Windows上,点击虚拟机右下角的 Super Top Mass Storage Device,点击“连接(断开与 主机 的连接)(C)”
再看一下磁盘:
hltj@vmpc:~/桌面$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1说明这个U盘设备是/dev/sdb,分区为/dev/sdb1
sudo chmod 777 imxdownload
sudo ./imxdownload u-boot.bin /dev/sdb注意:不能烧写到/dev/sda* 设备里面,那是系统磁盘!!!
烧录输出:
I.MX6ULL bin download software
Edit by:zuozhongkai
Date:2019/6/10
Version:V1.1
log:V1.0 initial version,just support 512MB DDR3
V1.1 and support 256MB DDR3
file u-boot.bin size = 358732Bytes
Board DDR SIZE: 512MB
Delete Old load.imx
Create New load.imx
Download load.imx to /dev/sdc ......
706+1 records in
706+1 records out
361804 bytes (362 kB, 353 KiB) copied, 2.11101 s, 171 kB/s
如果这个烧写速度KB/s级别,并且耗时是秒单位,那基本上就成功了。
如果速度MB/s级别,那就是烧写失败了,可能设备输入错了。
2、配置 NFS
安装 NFS:
(1)查看是已否安装 nfs 服务器
dpkg -s nfs-kernel-server如果显示 not installed 则表示没有安装
(2)安装 NFS
sudo apt-get install -y nfs-kernel-server(3)修改配置文件
sudo vim /etc/exports在配置文件未尾添加:
/Dev-Tools/nfs_root *(rw,sync,no_subtree_check,no_root_squash)前面是工作目录
(4)创建工作目录并设置为最高的权限
sudo mkdir -p /opt/nfsboot
sudo chmod -R 777 /opt(5)开启 nfs 服务
sudo service nfs-kernel-server restart
systemctl status nfs-kernel-server
sudo systemctl enable nfs-kernel-server
systemctl is-enabled nfs-server3、配置 TFTP
(1)查看是否已安装 tftp 服务器,显示 package 'tftpd-hpa' is not installed and no information is available 就是没安装。
dpkg -s tftpd-hpa(2)安装 tftp
sudo apt-get install -y tftpd-hpa tftp-hpa(3)修改 tftp 服务器的配置文件
sudo vim /etc/default/tftpd-hpa内容如下
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/opt/Linux_Workspace/i.MX6ULL/zImage_dtb_tftp_workspace"
TFTP_ADDRESS="192.168.5.5:69"
TFTP_OPTIONS="-c -s -l"TFTP_DIRECTORY:工作目录,要传输的文件都放在这里
TFTP_ADDRESS:端口号,保持默认就好
这个IP地址很重要
(4)创建工作目录并设置为最高的权限
sudo mkdir /tftpboot
sudo chmod 777 /tftpboot(5)开启 tftp 服务
sudo systemctl enable tftpd-hpa
systemctl is-enabled tftpd-hpa
sudo systemctl restart tftpd-hpa
systemctl status tftpd-hpa(6)测试服务是否正常
# 使用 tftp 命令登录本机,前面提示 tftp> 说明服务正常
hltj@ubuntu:/Dev-Tools$ tftp localhost
tftp> q
# 退出客户端
q + <Enter>
# 使用 get 命令获取tftp目录下的文件,进一步测试
get test.txt4、虚拟机网络设置
123
轻薄本
单网卡是不可能的,轻薄本只有wifi网卡,要连接开发板,只能外接,那就是两个了。
平常使用 ubuntu,直接桥接模式,IPv4 自动就行了。
开发环境下,windows 连接 wifi,。需手动设置 IPv4
此时虚拟机上不了网。

双网卡
常见方案:
轻薄本有线上网:外接 USB 网卡1 + 外接 USB 网卡2
轻薄本wifi上网:内置 Wi-Fi 网卡 + 外接 USB 网卡
游戏本有线上网:内置以太网卡 + 外接 USB 网卡(我现在的场景)
游戏本wifi上网:内置 Wi-Fi 网卡 + 内置以太网卡
台式机(一般都是有线上网):内置以太网卡 +PCIE 接口网卡(如果没卡槽了那只能使用外接 USB 网卡)
这么多网卡,其实配置是一样的,看你使用哪些网卡,配置它就行了。
虚拟机VMware配置双网卡_vmware 双网卡-CSDN博客
vmware 双网卡方案:
NAT 网卡: ubuntu 通过 windows 上网。
桥接网卡: ubuntu 与 Linux 开发板连接。
ubuntu 上网不使用桥接是因为,如果 ubuntu 的 ip 频繁变化的话,uboot 还得经常设置。
由于笔记本只有一个网口,也就是一个物理网卡,所以 windows 无法通过网线上网,除非增加一个 RJ45 转 USB 的设备。
方案一: Windows 使用网线上网。
ubuntu 上网(NAT):路由器 <==> 笔记本网口 <==> vmware 虚拟网卡 NAT <==> ubuntu
ubuntu 连接开发板(桥接):ubuntu <==> RJ45转USB <==> vmware 虚拟网卡桥接 <==> Linux 开发板
方案二:Windows 使用 Wi-Fi 上网。
ubuntu 上网(NAT):路由器 <==> 笔记本wifi <==>vmware 虚拟网卡 NAT <==> ubuntu
ubuntu 连接开发板(桥接):ubuntu <==> 笔记本网口 <==> Linux 开发板
路由器、交换机的,正确设置好后,三者应该都能 ping 通。
使用方案一:
1、ubuntu 关机,编辑虚拟机设置
2、添加一个网络适配器


3、ubuntu 上网配置
1)修改网络适配器


2)


3)

4、ubuntu 连接开发板配置
1)修改网络适配器


弹出来这个不用管,选择是:

2)

3)

按照上面的所有设置,开发板 ping 不通 192.168.100 和 192.168.2 是正确的。
5、uboot 设置
192.168.5.10 是自定义的 IP 地址,不要和 USB 网卡的 IP 一样就行了。
setenv ethaddr b8:ae:1d:01:00:00
setenv ipaddr 192.168.5.10
setenv serverip 192.168.5.5
setenv gatewayip 192.168.5.1
setenv netmask 255.255.255.0
saveenvsetenv bootcmd tftp 0x80800000 zImage\;tftp 0x83000000 imx6ull.dtb\;bootz 0x80800000 - 0x83000000
setenv bootargs 'console=ttymxc0,115200 init=/linuxrc root=/dev/nfs nfsroot=192.168.5.5:/opt/Linux_Workspace/i.MX6ULL/rootfs_nfs_workspace,v3,tcp rw ip=192.168.5.10:192.168.5.5:192.168.5.1:255.255.255.0::eth0:off'
saveenvnfsroot=ubuntu地址:NFS工作目录,v3,tcp rw ip=开发板地址:ubuntu地址:开发板网关:255.255.255.0::eth0:off'
注意这种方案下 tftp 的配置应该为192.168.5.5,而不是 192.168.100.5,否则连接不上。
TFTP_ADDRESS="192.168.5.5:69"单网卡+交换机/路由器
1、ubuntu 上网配置,桥接 windows 的网卡


用的是路由器的网关,和 windows 一样:

2、开发板设置
192.168.2.10 是自定义的 IP 地址,不要和 路由器其他设备 IP 一样就行了。
setenv ethaddr b8:ae:1d:01:00:00
setenv ipaddr 192.168.2.10
setenv serverip 192.168.2.90
setenv gatewayip 192.168.2.1
setenv netmask 255.255.255.0
saveenvsetenv bootcmd tftp 0x80800000 zImage\;tftp 0x83000000 imx6ull.dtb\;bootz 0x80800000 - 0x83000000
setenv bootargs 'console=ttymxc0,115200 init=/linuxrc root=/dev/nfs nfsroot=192.168.2.90:/opt/Linux_Workspace/i.MX6ULL/rootfs_nfs_workspace,v3,tcp rw ip=192.168.2.10:192.168.2.90:192.168.2.1:255.255.255.0::eth0:off'
saveenvnfsroot=ubuntu地址:NFS工作目录,v3,tcp rw ip=开发板地址:ubuntu地址:开发板网关:255.255.255.0::eth0:off'
注意 tftp 的配置需要修改为 192.168.2.90。
TFTP_ADDRESS="192.168.2.90:69"此时这三个设备都能互 ping