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

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,注意此命令执行前,开发板的内核源码已被编译)

相关推荐
少妇的美梦1 小时前
logstash教程
运维
chen9451 小时前
k8s集群部署vector日志采集器
运维
chen9451 小时前
aws ec2部署harbor,使用s3存储
运维
轻松Ai享生活5 小时前
5 节课深入学习Linux Cgroups
linux
christine-rr6 小时前
linux常用命令(4)——压缩命令
linux·服务器·redis
三坛海会大神5556 小时前
LVS与Keepalived详解(二)LVS负载均衡实现实操
linux·负载均衡·lvs
東雪蓮☆6 小时前
深入理解 LVS-DR 模式与 Keepalived 高可用集群
linux·运维·服务器·lvs
qq_264220896 小时前
LVS负载均衡群集和LVS+Keepalived群集
运维·负载均衡·lvs
乌萨奇也要立志学C++7 小时前
【Linux】进程概念(二):进程查看与 fork 初探
linux·运维·服务器
雨落Liy7 小时前
Nginx 从入门到进阶:反向代理、负载均衡与高性能实战指南
运维·nginx·负载均衡