![嵌入式Linux设备驱动程序开发指南(原书第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/453/40381453/b_40381453.jpg)
上QQ阅读APP看书,第一时间看更新
4.6 将模块添加到内核构建
到目前为止,你的驱动都被构建为可加载的内核模块。这种模块在运行时加载。现在,将驱动作为内核代码树的一部分构建进内核的二进制镜像。在这种方式下,当新内核启动时驱动就已经被加载了。
在内核根目录中,你会发现所有的字符设备驱动都存放在drivers/char/
目录下。首先,将你的字符设备驱动拷贝到该目录:
![084-02](https://epubservercos.yuewen.com/D1DB85/20966230701867406/epubprivate/OEBPS/Images/084-02.jpg?sign=1738884704-ikPAs3RW69WdmT2Xd0dF00DhAxrULzno-0-968bbdce15d5966acff1e85beb121a3b)
使用文本编辑器打开位于~/my-linux-imx/drivers/char/
目录下的Kconfig
文件:
![084-03](https://epubservercos.yuewen.com/D1DB85/20966230701867406/epubprivate/OEBPS/Images/084-03.jpg?sign=1738884704-kxXIcxpv9RreAvKpPzMQBB8BnSAfDlib-0-8526d9586532e98458bc28a502e6b41c)
把下面这些代码添加到文件的后面,位于endmenu
之前:
![084-04](https://epubservercos.yuewen.com/D1DB85/20966230701867406/epubprivate/OEBPS/Images/084-04.jpg?sign=1738884704-0xtUr6sNKuFlqRGeVnHNdYmLkdV2zAXt-0-f4d971db8c606a7e69e9430fc73eb210)
打开Makefile
文件:
![084-05](https://epubservercos.yuewen.com/D1DB85/20966230701867406/epubprivate/OEBPS/Images/084-05.jpg?sign=1738884704-ne5htEb9DHvwxr95EZDEhfslBvSAEGMD-0-32f9f785622f78dd6d611cdc8ca6cfdd)
把下面的代码添加到Makefile
末尾:
![085-01](https://epubservercos.yuewen.com/D1DB85/20966230701867406/epubprivate/OEBPS/Images/085-01.jpg?sign=1738884704-kFFda2tTKeHwjjuJJRkAILC9wWDdFGj3-0-536beab0b0e570d5961ceb48f3182d5b)
修改了Kconfig
和Makefile
之后,hello_imx_char_driver
将成为内核的一部分而不是一个可加载模块。接下来构建新的内核镜像。
打开menuconfig窗口,依次选择main menu -> Device Drivers -> Character devices-> My simple helloworld driver。按下空格键就可以看到一个*号出现在新的配置选项上。选择Exit直到你退出menuconfig的GUI。记得保存新的配置。
![085-02](https://epubservercos.yuewen.com/D1DB85/20966230701867406/epubprivate/OEBPS/Images/085-02.jpg?sign=1738884704-pcdBLTvDwsuLeYuwuY4cEzP1oBufSnDi-0-19d1c4012674637c0e63e1cbf7547e94)
打开内核根目录的.config
文件后将看到CONFIG_HELLOWORLD符号已经被添加进去了。
编译新的镜像并拷贝到tftp目录:
![085-03](https://epubservercos.yuewen.com/D1DB85/20966230701867406/epubprivate/OEBPS/Images/085-03.jpg?sign=1738884704-0iwyKqf2iAm5km6iwWa80gPpKkxbTApt-0-c36d74bcce2edd8b8c630a540edb0415)
启动你的i.MX7D目标处理器:
![085-04](https://epubservercos.yuewen.com/D1DB85/20966230701867406/epubprivate/OEBPS/Images/085-04.jpg?sign=1738884704-jotFYdqwOghsWHXDZdmpJYX7jK772Fdd-0-256b5fbf55e4fa860fcce36e79d1c60c)