驱动开发--内核添加新功能

Ubuntu下这个文件为开发板ls命令的结果

内核的内容:

mm:内存管理

fs:文件系统

net:网络协议栈

drivers:驱动设备

arch与init:跟启动相关

kernel与ipc:任务,进程相关

向内核增加新功能(静)--编译到uImage

1.新功能源码与Linux内核源码在同一目录结构下

在linux-3.14/driver/char/目录下编写myhello.c

2.给新功能代码配置Kconfig

3.给新功能代码改写Makefile

4.make menuconfig 界面里将新功能对应的那项选择成<*>

内核动态加载--在同一目录下

即新功能源码与内核其它源码不一起编译,而是独立编译成内核的插件(被称为内核模块)文件.ko

a、新功能源码与Linux内核源码在同一目录结构下时

  1. 给新功能代码配置Kconfig

  2. 给新功能代码改写Makefile

  3. make menuconfig 界面里将新功能对应的那项选择成<M>

  4. make uImage

  5. cp arch/arm/boot/uImage /tftpboot

  6. make modules

    make modules会在新功能源码的同级目录下生成相应的同名.ko文件(生成的ko文件只适用于开发板linux)

    注意此命令执行前,开发板的内核源码已被编译

、新功能源码与Linux内核源码--不在同一目录结构下

  1. cd ~/fs4412

  2. mkdir mydrivercode

  3. cd mydrivercode

  4. cp ../linux-3.14/drivers/char/myhello.c .

  5. vim Makefile

  6. make (生成的ko文件适用于主机ubuntu linux)

  7. make ARCH=arm (生成的ko文件适用于开发板linux,注意此命令执行前,开发板的内核源码已被编译)

相关推荐
FIT2CLOUD飞致云2 小时前
里程碑 | 1Panel开源面板GitHub Star数量突破30,000个!
运维·开源
FIT2CLOUD飞致云3 小时前
支持MySQL、PostgreSQL和Redis集群部署,1Panel开源面板v2.0.5版本发布
运维·开源
南玖yy3 小时前
Linux 桌面市场份额突破 5%:开源生态的里程碑与未来启示
linux·运维·服务器·汇编·科技·开源·gradle
泰勒疯狂展开4 小时前
Linux研学-MySQL安装
linux·mysql·adb
墨风如雪5 小时前
探索传家宝VPS:您的全球高性能VPS优选平台,不止于推荐!
服务器
Vesan,6 小时前
【Linux/Ubuntu】VIM指令大全
linux·ubuntu·vim
苹果醋36 小时前
iview中实现点击表格单元格完成编辑和查看(span和input切换)
运维·vue.js·spring boot·nginx·课程设计
丨千纸鹤丨6 小时前
高可用集群Keepalived
linux·服务器·网络
三口吃掉你6 小时前
Web服务器(Tomcat、项目部署)
服务器·前端·tomcat
☞下凡☜7 小时前
C语言(20250722)
linux·c语言·开发语言