这里使用的开发板是正点原子IMX6ULL的mini板使用的LCD是4.3寸800x480的。移植是为了后续的驱动开发这里就不分析代码了直接用正点原子给的代码移植即可。目录1、移植uboot1.1 修改LCD参数1.2 修改网络驱动1.3 编译烧录1.4 设置bootargs 和 bootcmd2、移植linux内核2.1 设置tftp服务2.2 使用tftp下载zImage和设备树文件3、移植根文件系统3.1 设置nfs服务3.2 busybox根文件系统1、移植uboot1.1 修改LCD参数修改uboot中mx6ull_alientek_emmc.c中的structdisplay_info_tconstdisplays[]这里需要修改LCD的参数改成对应你使用的LCD参数。原代码用的是7寸显示屏如下图。将其修改为4.3寸800x480如下图。1.2 修改网络驱动给的代码里在mx6ull_alientek_emmc.c中的static void setup_iomux_fec(int fec_id)函数结尾少了延时需要加上。修改成如下图1.3 编译烧录修改完直接编译烧录尽可如果有使用和我一样型号的板子以及LCD的小伙伴也可以用下面的u-boot.bin通过网盘分享的文件u-boot.bin链接: https://pan.baidu.com/s/1ktoFp59AEZCOhD9nVNcURg 提取码: 20261.4 设置bootargs和bootcmd进入u-boot的命令行界面设置bootargs和bootcmd如下为方便后续驱动开发设置为从网络启动linux系统。setenv bootargs consolettymxc0,115200 root/dev/mmcblk1p2 rootwait rw setenv bootcmd tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000 saveenv2、移植linux内核2.1 设置tftp服务#1. 停止 TFTP 服务 sudo systemctl stop tftpd-hpa #2. 编辑配置文件 sudo nano /etc/default/tftpd-hpa #找到以下内容将路径修改为自己的tftp目录 TFTP_USERNAMEtftp TFTP_DIRECTORY/new/tftp/dir # 修改为你的新目录 TFTP_ADDRESS:69 TFTP_OPTIONS--secure --create #3、重启服务 sudo systemctl start tftpd-hpa # 设置开机自启 sudo systemctl enable tftpd-hpa2.2 使用tftp下载zImage和设备树文件通过网盘分享的文件zImage链接: https://pan.baidu.com/s/1cY0WYlX4AsYjUQSfc07WrQ 提取码: 2026通过网盘分享的文件imx6ull-alientek-emmc.dtb链接: https://pan.baidu.com/s/1ZBsbg3mP7Xxc-OKhk3hSAg 提取码: 2026直接使用编译好的文件即可。将zImage和设备树文件放在tftp目录下启动开发板进入uboot命令行输入以下命令:tftp 80800000 zImage tftp 83000000 imx6ull-14x14-evk.dtb bootz 80800000 - 830000003、移植根文件系统3.1 设置nfs服务将nfs目录修改为需要挂载的根文件系统目录下#修改nfs挂载目录 sudo vi /etc/exports #改为自己的nfs路径 /home/pengmouren/linux/nfs *(rw,sync,no_root_squash)进入uboot命令行设置bootargs环境变量setenv ipaddr 192.168.1.251 #开发板 IP 地址 setenv ethaddr b8:ae:1d:01:00:00 #开发板网卡 MAC 地址 setenv gatewayip 192.168.1.1 #开发板默认网关 setenv netmask 255.255.255.0 #开发板子网掩码 setenv serverip 192.168.1.250 #服务器地址也就是 Ubuntu 地址 setenv bootargs consolettymxc0,115200 root/dev/nfs nfsroot192.168.1.250: /home/pengmouren/linux/nfs/rootfs,prototcp rw ip192.168.1.251:192.168.1.250:192.168.1.1: 255.255.255.0::eth0:off #设置 bootargs上面的192.168.1.250是服务器电脑的ip192.168.1.251是客服端开发板的ip。192.168.1.1是网关ip都修改为自己的ip即可。 saveenv #保存环境变量3.2 busybox根文件系统将下面压缩包解压到nfs目录下即可。通过网盘分享的文件rootfs.tar.bz2链接: https://pan.baidu.com/s/10FCtptGVYHCF_O0xCEzp2g 提取码: 2026
Linux驱动开发学习---移植uboot、内核及根文件系统
发布时间:2026/5/20 19:20:11
这里使用的开发板是正点原子IMX6ULL的mini板使用的LCD是4.3寸800x480的。移植是为了后续的驱动开发这里就不分析代码了直接用正点原子给的代码移植即可。目录1、移植uboot1.1 修改LCD参数1.2 修改网络驱动1.3 编译烧录1.4 设置bootargs 和 bootcmd2、移植linux内核2.1 设置tftp服务2.2 使用tftp下载zImage和设备树文件3、移植根文件系统3.1 设置nfs服务3.2 busybox根文件系统1、移植uboot1.1 修改LCD参数修改uboot中mx6ull_alientek_emmc.c中的structdisplay_info_tconstdisplays[]这里需要修改LCD的参数改成对应你使用的LCD参数。原代码用的是7寸显示屏如下图。将其修改为4.3寸800x480如下图。1.2 修改网络驱动给的代码里在mx6ull_alientek_emmc.c中的static void setup_iomux_fec(int fec_id)函数结尾少了延时需要加上。修改成如下图1.3 编译烧录修改完直接编译烧录尽可如果有使用和我一样型号的板子以及LCD的小伙伴也可以用下面的u-boot.bin通过网盘分享的文件u-boot.bin链接: https://pan.baidu.com/s/1ktoFp59AEZCOhD9nVNcURg 提取码: 20261.4 设置bootargs和bootcmd进入u-boot的命令行界面设置bootargs和bootcmd如下为方便后续驱动开发设置为从网络启动linux系统。setenv bootargs consolettymxc0,115200 root/dev/mmcblk1p2 rootwait rw setenv bootcmd tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000 saveenv2、移植linux内核2.1 设置tftp服务#1. 停止 TFTP 服务 sudo systemctl stop tftpd-hpa #2. 编辑配置文件 sudo nano /etc/default/tftpd-hpa #找到以下内容将路径修改为自己的tftp目录 TFTP_USERNAMEtftp TFTP_DIRECTORY/new/tftp/dir # 修改为你的新目录 TFTP_ADDRESS:69 TFTP_OPTIONS--secure --create #3、重启服务 sudo systemctl start tftpd-hpa # 设置开机自启 sudo systemctl enable tftpd-hpa2.2 使用tftp下载zImage和设备树文件通过网盘分享的文件zImage链接: https://pan.baidu.com/s/1cY0WYlX4AsYjUQSfc07WrQ 提取码: 2026通过网盘分享的文件imx6ull-alientek-emmc.dtb链接: https://pan.baidu.com/s/1ZBsbg3mP7Xxc-OKhk3hSAg 提取码: 2026直接使用编译好的文件即可。将zImage和设备树文件放在tftp目录下启动开发板进入uboot命令行输入以下命令:tftp 80800000 zImage tftp 83000000 imx6ull-14x14-evk.dtb bootz 80800000 - 830000003、移植根文件系统3.1 设置nfs服务将nfs目录修改为需要挂载的根文件系统目录下#修改nfs挂载目录 sudo vi /etc/exports #改为自己的nfs路径 /home/pengmouren/linux/nfs *(rw,sync,no_root_squash)进入uboot命令行设置bootargs环境变量setenv ipaddr 192.168.1.251 #开发板 IP 地址 setenv ethaddr b8:ae:1d:01:00:00 #开发板网卡 MAC 地址 setenv gatewayip 192.168.1.1 #开发板默认网关 setenv netmask 255.255.255.0 #开发板子网掩码 setenv serverip 192.168.1.250 #服务器地址也就是 Ubuntu 地址 setenv bootargs consolettymxc0,115200 root/dev/nfs nfsroot192.168.1.250: /home/pengmouren/linux/nfs/rootfs,prototcp rw ip192.168.1.251:192.168.1.250:192.168.1.1: 255.255.255.0::eth0:off #设置 bootargs上面的192.168.1.250是服务器电脑的ip192.168.1.251是客服端开发板的ip。192.168.1.1是网关ip都修改为自己的ip即可。 saveenv #保存环境变量3.2 busybox根文件系统将下面压缩包解压到nfs目录下即可。通过网盘分享的文件rootfs.tar.bz2链接: https://pan.baidu.com/s/10FCtptGVYHCF_O0xCEzp2g 提取码: 2026