当前位置: 首页 > news >正文

Linux驱动开发学习---移植uboot、内核及根文件系统

这里使用的开发板是正点原子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
http://www.gsyq.cn/news/1331427.html

相关文章:

  • 使用curl命令直接测试taotoken api的连通性与基础功能
  • 测试TVS:SP0503BAHTG
  • OP-TEE OS多平台适配指南:STM32MP、i.MX、Rockchip实战
  • Prompts-for-edu实战手册:快速掌握15种教育场景的AI应用
  • RV1126B嵌入式OCR实战:CTPN+CRNN模型部署与优化全解析
  • YOLO-ONNX-Java 模型评估指标完全指南:从理论到实践
  • 部署实战:vq-vae-2-pytorch模型在生产环境中的最佳实践
  • React Google Maps组件库架构解析:深入理解核心实现原理和设计模式
  • 别再截图了!用AD21把PCB 3D模型直接塞进PDF,客户评审一目了然
  • LINQKit测试驱动开发完全指南:如何编写高质量单元测试的10个最佳实践
  • 为Hermes Agent配置自定义Provider并接入Taotoken服务
  • Taotoken模型广场功能辅助快速进行模型选型实践
  • 深圳市火灵鸟技术有限公司深度解析:从国产芯到全景可视化,一家执法装备企业的成长路径 - 品牌优选官
  • 从KITTI到真实世界:手把手教你用VINS-Fusion搭建自己的视觉惯性GPS融合定位系统
  • 告别黑屏!Vue3 + @liveqing/liveplayer 播放器完整接入与RTSP流延迟优化思路
  • Windows风扇控制实战:3种场景下的智能散热解决方案
  • 深入理解ops-tensor架构:模块化算子库的设计哲学与实现
  • CANN/.gitcode缺陷报告模板深度解析:如何高效提交昇腾AI问题反馈
  • CANN/catlass精度分析基础
  • 嵌入式系统硬件设计10大核心技巧:从电源到调试的工程实践
  • 3步完成BepInEx安装:游戏模组框架快速入门终极指南
  • Linux转发完全教程:ip_forward开启、iptables端口映射、双网卡NAT实战
  • WorkBuddy帮我优化服务器JVM,GC频率提升了1000倍,程序员离失业还有多远
  • CANN/HCCL Scatter算子
  • 一键获取网易云QQ音乐歌词:智能工具解决本地音乐无歌词难题
  • Layerdivider终极指南:5步实现AI智能图像分层,免费生成专业PSD文件
  • 不只是安装:用Matlab NSCT_toolbox 处理图像信号的完整工作流实战
  • taotoken如何解决claude代码用户面临的额度与封号焦虑
  • Kilim Actor模型实践:构建高并发消息传递系统的终极指南 [特殊字符]
  • CANN/hccl主机通信端口范围配置