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 正点原子
相关推荐
云栖梦泽1 小时前
网络设备驱动(3)
linux·运维·服务器·网络·嵌入式硬件
ShineWinsu2 小时前
对于MySQL:索引的解析
linux·数据库·mysql·面试·笔试·索引·海量数据
wuminyu2 小时前
Kafka配置TLS/SSL加密传输时零拷贝失效分析
java·linux·c语言·jvm·c++
keyipatience2 小时前
5种IO模型与阻塞IO,select,poll,epoll,LT和ET模式
linux·服务器·网络·数据结构·c++·算法
Dream Cosmos3 小时前
C++ 中 static 关键字的作用与使用规则
linux·c++
一技安身11 小时前
【Docker】 镜像导出 & 导入,实验环境aarch64(arm64)Linux操作系统
linux·docker·容器
代码村新手12 小时前
Linux调试器-gdb的使用
linux
新时代牛马12 小时前
PCI与PCIe 硬件原理、配置空间/BAR 与 Linux 驱动完整篇:从 LTSSM、TLP 到 ECAM 与probe
java·linux·服务器
两点王爷14 小时前
解决 Linux 中 version `CXXABI_1.3.8‘ not found 报错
linux·运维·服务器