本文已参与「新人创作礼」活动,一起开启掘金创作之路。
写Linux驱动总是使用的大多是一些内核函数,在用man无法查找也是一件麻烦事。 实现让man支持内核函数查询,这里我也是通过网上查找的资料,然后把自己的操作步骤记录下。
一、下载Linux内核源码
上www.kernel.org下载Linux内核源码。 因为我开发板的内核版本是3.14.38,所以下了个相近的版本3.16.82。
二、安装及编译
1、安装manpages-dev
- 执行命令sudo apt-get install manpages-dev
这是安装man这个函数库手册,我Ubuntu16.04已经自带了,不用安装。
2、安装mandocs依赖包 xmlto软件包
- 执行命令sudo apt-get install xmlto
- 安装xmlto软件包需要蛮长时间的。
如果没有安装直接在kernel目录make mandocs的话会产生以下提示:
hrx@@@:~/linux-3.16.82$ make mandocs
HOSTCC scripts/docproc
DOCPROC Documentation/DocBook/z8530book.xml
*** You need to install xmlto ***
/home/hrx/linux-3.16.82/Documentation/DocBook/Makefile:165: recipe for target 'Documentation/DocBook/z8530book.9' failed
make[1]: *** [Documentation/DocBook/z8530book.9] Error 1
Makefile:1237: recipe for target 'mandocs' failed
make: *** [mandocs] Error 2
3、编译生成mandocs
- 进入到kernel目录。
- 执行命令make mandocs。
- 编译需要挺长一段时间。
- 生成的文件放在linux-3.16.82/Documentation/DocBook/man/ 目录下,文件格式都是 * .9.gz。
4、安装mandocs
- 执行命令sudo make installmandocs
hrx@@@:~/M6/linux-3.16.82$ sudo make installmandocs
[sudo] hrx 的密码:
GEN Documentation/DocBook//v4l2.xml
mkdir -p /usr/local/man/man9/
install Documentation/DocBook/man/*.9.gz /usr/local/man/man9/
三、测试
- 执行命令man printk