1 | 综合篇 | 点我 |
---|---|---|
2 | uboot移植 | 点我 |
3 | uboot lcd驱动 | 点我 |
4 | kernel移植 | 点我 |
5 | kernel lcd驱动 | 点我 |
6 | 摄像头驱动 | 点我 |
7 | ubuntu base移植 | 点我 |
8 | 挂载网络文件系统 | 点我 |
9 | qt移植 | 点我 |
10 | 搭建qt交叉编译 | 点我 |
11 | wifi移植 | 点我 |
本文使用的是win11 + Workstation 16 Pro ubuntu20.04 + I.M6ULL开发板通过网线连接到同一个路由下
1 网络配置
1.1 打开win11网络配置查看以太网属性
查看属性获取win11的ip地址、网关、子网掩码等信息
1.2 设置Workstation 16 Pro ubuntu 20.04网络配置
打开Workstation 16 Pro ->编辑 ->虚拟网络编辑器
选择还原默认配置 -> 将WMneet0配置为桥接模式并桥接至主机的有线网卡
设置ubuntu 20.04的IP地址
选择设置
选择IPV4将ip地址设置到和路由器同个网段
1.3 设置I.MX6ULL开发板的ip地址
开机进入uboot,依次输入一下命令
//设置服务器的IP地址(ubuntu20.04)
setenv serverip 192.168.4.105
//设置网关
setenv gatewayip 192.168.4.1
//设置开发板的IP地址
setenv ipaddr 192.168.1.108
//设置子网掩码
setenv netmask 255.255.255.0
//保存设置
saveenv
测试和ubuntu能不能正常通信
ping 192.168.4.105
出现如图结果为可以正常通信
2 搭建nfs服务
在ubuntu20.04执行下面的命令安装nfs
sudo apt-get install nfs-kernel-server
创建nfs服务器共享目录
mkdir /home/work/imx6ull/rootfs
并在这个文件夹下面创建zImage和ubuntu-base-armhf用来存放zImage、设备树文件和文件系统
mkdir /home/work/imx6ull/rootfs/zImage
mkdir /home/work/imx6ull/rootfs/ubuntu-base-armhf
将前面做好的zImage、设备树和文件系统拷贝到共享目录中
cp /home/work/imx6ull/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga/arch/arm/boot/zImage /home/work/imx6ull/rootfs/zImage/
cp /home/work/imx6ull/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga/arch/arm/boot/dts/imx6ull-user-emmc.dtb /home/work/imx6ull/rootfs/zImage/
sudo cp /home/work/imx6ull/rootfs/ubuntu-base-16.04.5-base-armhf/* -rf /home/work/imx6ull/rootfs/ubuntu-base-armhf
修改配置文件设置共享目录
sudo gedit /etc/exports
在文件尾添加
/home/work/imx6ull/rootfs/ *(rw, sync, no_subtree_check, no_root_squash)
sudo gedit /etc/hosts
添加开发板的ip和nfs共享目录
因为uboot的nfs协议默认的协议V2,所以需要修改nfs服务器的配置兼容nfs V2
打开nfs服务的配置文件
sudo gedit /etc/default/nfs-kernel-server
修改为如下配置
# Number of servers to start up
#RPCNFSDCOUNT=8
RPCNFSDCOUNT="-V 2 8"
# Runtime priority of server (see nice(1))
RPCNFSDPRIORITY=0
# Options for rpc.mountd.
# If you have a port-based firewall, you might want to set up
# a fixed port here using the --port option. For more information,
# see rpc.mountd(8) or http://wiki.debian.org/SecuringNFS
# To disable NFSv4 on the server, specify '--no-nfs-version 4' here
#RPCMOUNTDOPTS="--manage-gids"
RPCMOUNTDOPTS="-V 2 --manage-gids"
# Do you want to start the svcgssd daemon? It is only required for Kerberos
# exports. Valid alternatives are "yes" and "no"; the default is "no".
NEED_SVCGSSD=""
# Options for rpc.svcgssd.
#RPCSVCGSSDOPTS=""
RPCSVCGSSDOPTS="--nfs-version 2,3,4 --debug --syslog"
重启nfs服务
sudo service nfs-kernel-server restart
3 挂载文件系统
开发进入uboot修改bootcmd 和 bootargs 参数
setenv bootcmd "nfs 80800000 192.168.4.105:/home/work/imx6ull/rootfs/zImage/zImage; nfs 83000000 192.168.4.105:/home/work/imx6ull/rootfs/zImage/imx6ull-user-emmc.dtb; bootz 80800000 - 83000000"
setenv bootargs "root=/dev/nfs rw nfsroot=192.168.4.105:/home/work/imx6ull/rootfs/ubuntu-base-armhf,proto=tcp, ip=192.168.4.108:192.168.4.105:192.168.4.1:255.255.255.0::eth0:off init=/sbin/init console=ttymxc0,115200"
保存参数并重启开发板
saveenv
reset
重启后开发开始从nfs服务器下载zImage和设备树文件并挂载文件系统
开始下载zImage
开始下载设备树文件,下载完之后开始启动kernel
挂载根文件系统成功,登陆root进入系统