Linux驱动程序开发环境的快速搭建

进行Linux驱动开发,首先要搭建开发环境,比如虚拟机的安装,ubuntu的安装配置,各种软件开发环境如vscode的安装等。基本的开发环境完成了,还需要学习并移值uboot,Linux内核,设备树,根文件系统。

本文跳过了uboot,Linux内核,设备树,根文件系统的学习和移植。利用正点原子的提供的教程系统镜像来快速搭建驱动程序开发环境。

1、uboot烧写到SD卡

未插入SD,在ubuntu里输入命令:

ls -l /dev/sd*

然后插入SD卡,仍输入上面的命令,找到新出现的sd*,笔者找到是sdb这个新设备。

然后copy教程镜像里的u-boot.bin(注意有V2.4硬件版本前后的区别)到ubuntu系统(用FileZilla),目标目录~/linux/uboot/alientek_uboot 。

继续执行下面的命令将u-boot.bin写入到SD卡:

chmod 777 imxdownload

./imxdownload u-boot.bin /dev/sdb

完成烧写后退出SD卡。将SD卡插入到开发板,将启动拨码开关设置为从SD卡启动,上电后就可进入uboot启动界面了。

2、linux内核镜像及设备树

在ubuntu上建立tftpboot文件夹:/home/bobluo/linux/tftpboot, 把imx6ull-alientek-emmc.dtb和zImage用FTP传过来(我用的文件是阿尔法V2.4版本及以后和miniV2.2及以后的底板\02、kernel镜像)。

开发板上电后在倒计时前按任意键停止启动,修改环境变量bootcmd如下:

setenv bootcmd 'tftp 80800000 zImage;tftp 83000000 imx6ull-alientek-emmc.dtb;bootz 80800000 - 83000000'

saveenv

上面的setenv一定要注意空格,特别是bootz 80800000 - 83000000 ,空格一定要敲够,否则启动后就会停在Starting kernel ...

另外注意I.MX6U开发板是可以ping通ubuntu的,而反向不可以,因为uboot对ping没有做回应。

ping 192.168.10.222

Using FEC1 device

host 192.168.10.222 is alive

3、根文件系统

根文件系统放到nfs,所以在ubuntu建目录/home/bobluo/linux/nfs/rootfs,把文件系统\02、busybox-1.29.0根文件系统用FTP传过来。

修改uboot的环境变量如下:

setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.10.222:/home/bobluo/linux/nfs/rootfs,proto=tcp rw ip=192.168.10.50:192.168.10.222:192.168.10.1:255.255.255.0::eth0:off'

saveenv

4、开发板重启验证

直接上图

参考资料:

  1. I.MX6U 嵌入式 Linux 驱动开发指南 V2.0.1 正点原子
相关推荐
qeen871 小时前
【Linux】Linux环境下的进程终止与进程等待问题
linux·运维·服务器
LRL_3 小时前
【实战指南】Node.js 跨平台依赖下载:如何在 Windows/Linux 环境下互跨下载目标系统的 npm/pnpm 包
linux·windows·node.js
高山有多高3 小时前
【Linux笔记】网络命令
linux
一条破秋裤4 小时前
Linux 线程同步:读写锁
java·linux·jvm
工作10年+,存储芯片行业4 小时前
Linux NVMe 中断排查与性能优化:IRQ 优化(原理+排查)
linux·运维·性能优化·ssd·nvme·pcie·中断
宵时待雨4 小时前
linux笔记归纳25:多路转接epoll
linux·服务器·网络·c++
geats人山人海5 小时前
linux 1.目录结构
linux·运维·服务器
wuminyu5 小时前
JEP491中synchronized关键字引发的平台线程钉住解决方法简介
java·linux·c语言·jvm·c++
应用市场5 小时前
嵌入式Linux从裸板到产品(一):全景地图与交叉编译环境,从四个上板翻车现场说
linux·运维·服务器
皓月盈江5 小时前
Linux系统PC与Linux系统服务器通过scp上传与下载文件
linux·运维·服务器·scp·文件上传·文件下载