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内核源码在同一目录结构下时
-
给新功能代码配置Kconfig
-
给新功能代码改写Makefile
-
make menuconfig 界面里将新功能对应的那项选择成<M>
-
make uImage
-
cp arch/arm/boot/uImage /tftpboot
-
make modules
make modules会在新功能源码的同级目录下生成相应的同名.ko文件(生成的ko文件只适用于开发板linux)
注意此命令执行前,开发板的内核源码已被编译
、新功能源码与Linux内核源码--不在同一目录结构下
-
cd ~/fs4412
-
mkdir mydrivercode
-
cd mydrivercode
-
cp ../linux-3.14/drivers/char/myhello.c .
-
vim Makefile
-
make (生成的ko文件适用于主机ubuntu linux)
-
make ARCH=arm (生成的ko文件适用于开发板linux,注意此命令执行前,开发板的内核源码已被编译)