三、make menuconfig图形配置界面
1、进入到内核源码路径下,然后输入make menuconfig即可打开此界面。
2、make menuconfig图形化界面的操作
1)搜索功能
输入“/”即可弹出搜索界面,然后输入需要搜索的内容即可。
2)配置驱动的状态
(1)把驱动编译成模块,用M表示。
(2)把驱动编译到内核中,用*表示。
(3)不编译
3、退出
退出分为保存退出和不保存退出
4、make menuconfig有关的文件
Makefile
里面是编译规则。菜的做法。
Kconfig
内核配置的选项,相当于饭店吃饭服务员给的菜单
.config
配置完成内核之后生成的配置选项。相当于点完的菜。
5、make menuconfig会读取哪个目录下的Kconfig文件arch/$ARCH/目录下的Kconfig
/arch/arm/configs#下面有好多配置文件,相当于饭点的特色菜。
6、为什么要复制成.config而不复制成其他文件呢?
肯定不行,因为内核默认读取的Linux内核根目录下的.config作为默认配置选项的。
7、复制的.config不完全符合要求怎么办?
需要使用make menuconfig点菜,调出菜单。配置完成之后自己更新到.config中
8、怎么和Makefile文件建立关系?
当make menuconfig保存退出之后,Linux会将所以的配置选项以宏定义的形式保存在include/generated下面的autoconf.h中。
四、Linux三大设备驱动
字符设备:IO的传输过程是以字符为单位的,没有缓冲。比如IIC,SPI都是字符设备。
块设备:IO的传输过程都是以块为单位的。跟存储相关的都是属于块设备,比如,tf卡
网络设备:与前面两个不一样,是以socket套接字来访问的。
1、杂项设备驱动
杂项设备驱动是字符设备的一种,可以自动生成设备结点。
系统中有许多杂项设备。
cat /proc/misc命令来查看。
2、杂项设备除了比字符设备代码简单,还有什么区别吗?
杂项设备的主设备号是相同的,均为10,次设备号是不同的,主设备号相同就可以节省内核的资源。
3、主设备号和次设备号是什么?
主设备号包含次设备号,主设备号在linux中是唯一的,次设备号不一定唯一。
设备号是计算机识别设备的一种方式,主设备相同的就被视为同一类设备。
主设备号可以必做成电话号码的区号,比如安徽是0551。
次设备号可以比作电话号码。
主设备号可以通过命令cat /proc/devices来查看。
4、杂项设备驱动描述
定义在内核源码路径: vi include/linux/miscdevice.h
struct miscdevice {
int minor;//次设备号
const char \*name;//设备节点的名字
const struct file\_operations \*fops;//文件操作集
struct list\_head list;
struct device \*parent;
struct device \*