Linux驱动入门:编译内核

1.环境搭建

        环境搭建内容比较繁琐,建议查看韦东山老师的环境搭建教程。

        百问网嵌入式专家-韦东山嵌入式专注于嵌入式课程及硬件研发 (100ask.net)

2.编译内核目的

        为什么编译驱动程序之前要先编译内核?
⚫ 驱动程序要用到内核文件:比如驱动程序中这样包含头文件: #include <asm/io.h>,其中的 asm 是一个链接文件,指向 asm-arm 或 asm-mips,这需要先配置、编译内核才会生成asm 这个链接文件。
⚫ 编译驱动时用的内核、开发板上运行到内核,要一致:开发板上运行到内核是出厂时烧录的,你编译驱动时用的内核是你自己编译的,这两个内核不一致时会导致一些问题。所以我们编译驱动程序前,要把自己编译出来到内核放到板子上去,替代原来的内核。
⚫ 更换板子上的内核后,板子上的其他驱动也要更换:板子使用新编译出来的内核时,板子上原来的其他驱动也要更换为新编译出来的。所以在编译我们自己的第 1 个驱动程序之前,要先编译内核、 模块,并且放到板子上去。

3.在ubuntu中编译内核的步骤(其中/home/book/..是自己的内核路径,源码git下载在韦东山老师的资料中心

cd /home/book/100ask_imx6ull-sdk/Linux-4.9.88

make mrproper
make 100ask_imx6ull_defconfig
make zImage -j4
make dtbs

 3.2 将编译好的内核文件放入虚拟文件系统(给开发板使用)

cp arch/arm/boot/zImage /home/book/nfs_rootfs
cp arch/arm/boot/dts/100ask_imx6ull-14x14.dtb /home/book/nfs_rootfs

3.3.编译安装内核模块

cd ~/100ask_imx6ull-sdk/Linux-4.9.88/

make modules

3.4安装内核模块到nfs文件目录

make ARCH=arm INSTALL_MOD_PATH=/home/book/nfs_rootfs modules_install

4.安装内核和模块到开发板

#挂载网络文件系统
mount -t nfs -o nolock,vers=3 192.168.5.11:/home/book/nfs_rootfs /mnt
#拷贝文件到boot目录
cp /mnt/zImage /boot
cp /mnt/100ask_imx6ull-14x14.dtb /boot
cp /mnt/lib/modules /lib -rfd
sync
#重启开发板
reboot


 

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《郑强Linux驱动开发入门与实战》是一本关于Linux驱动开发的指导书籍。书中通过介绍Linux驱动的相关原理、方法和实践案例,帮助读者入门并深入理解Linux驱动开发。 该书首先介绍了Linux内核驱动开发的基本概念和原理,包括驱动的类型、驱动模型、设备和模块以及Linux内核的基本架构等。接着,书中详细介绍了Linux设备驱动编写流程和常用的开发工具,例如使用GCC编译器、Makefile工程管理和调试工具等。同时,书中还详细讲解了驱动程序的加载、卸载和操作流程等内容。 除了理论知识,书中还通过实践案例帮助读者掌握驱动开发的技巧和方法。在实践环节中,读者将学习如何编写字符设备驱动、块设备驱动和网络设备驱动等,并通过具体的案例了解驱动程序编写过程和调试技巧。 总体而言,《郑强Linux驱动开发入门与实战》适合初学者入门和有一定基础的开发人员进一步提高。通过阅读该书,读者可以了解Linux驱动开发的基本原理和流程,掌握驱动程序编写和调试技巧,并能够实际运用所学知识进行Linux驱动开发和维护工作。该书内容丰富,逻辑清晰,是一本很好的Linux驱动开发指南。 ### 回答2: 《郑强linux驱动开发入门与实战 pdf》是一本很好的资源,适合想要学习Linux驱动开发的人使用。这本书以实战为导向,涵盖了Linux驱动的基础知识和实际应用技巧。 首先,这本书介绍了Linux驱动的基本概念和原理,包括设备文件、文件操作、字符设备驱动、块设备驱动等内容。读者可以通过学习这些基础知识,了解Linux驱动的工作原理和实现方式。 其次,这本书还介绍了Linux驱动开发工具和环境,包括使用C语言编写驱动程序、使用Makefile进行编译和链接、使用调试工具进行调试等。读者可以通过实践和示例代码,掌握Linux驱动开发流程和技巧。 此外,这本书还涵盖了一些实际的驱动开发案例,包括字符设备驱动的实现、中断处理程序的编写、设备驱动的注册和注销等。通过学习这些案例,读者可以更好地理解驱动开发的实际应用场景和解决方案。 总体而言,《郑强linux驱动开发入门与实战 pdf》是一本很好的Linux驱动开发学习资料。无论是初学者还是有一定经验的开发者,都可以通过这本书系统地学习和掌握Linux驱动开发的相关知识和技术,提升自己在嵌入式系统开发领域的能力。 ### 回答3: 《郑强Linux驱动开发入门与实战》是一本很有价值的Linux驱动开发教材。本书通过理论与实践相结合的方式,向读者介绍了Linux驱动的基本概念和开发流程,并通过实际案例进行讲解,使读者能够更深入地理解和掌握Linux驱动开发的技术。 首先,本书详细介绍了Linux驱动的基本概念,如字符设备驱动、块设备驱动和网络设备驱动等,帮助读者了解驱动开发的相关知识和原理。其次,书中详细介绍了Linux驱动开发的流程和工具,如编译环境搭建、内核模块的编译和加载等,使读者能够快速上手Linux驱动开发。 此外,本书通过实际案例进行讲解,如键盘驱动、LED驱动和字符设备驱动等,通过分析代码和调试的方式,帮助读者更好地理解驱动开发的细节和技巧。同时,书中还介绍了常用的调试工具和技术,如kprobe、tracepoint和ftrace等,使读者能够更好地进行驱动调试和性能优化。 总的来说,郑强的《Linux驱动开发入门与实战》是一本很有实用价值的Linux驱动开发教材。无论是对于初学者还是有一定经验的开发者,都能够从这本书中获得很多有益的指导和实践经验。读者通过学习这本书,可以扎实地掌握Linux驱动开发的技术,提升自己在嵌入式领域的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值