sphinx和linux内核文档的背景就不在赘述了,简而言之就是linux内核源码会使用Sphinx来生成文档。这里放个链接,这部分文档有中文翻译,应该都能看懂。
来自kernel.org的Sphinx说明

话不多说,直接开始操作!

环境准备

  • 一个linux操作系统环境,我这里用的是ubuntu的虚拟机;
  • python3和python3-pip,如果没有要装一下,貌似越高版本在这里越好用;
  • 一份linux源码,可以从官方或者国内镜像源获取。也可以用sudo apt-get source linux获取源码,但是这个方法需要在/etc/apt/sources.list里面添加deb-src源。

操作步骤

下面是具体操作步骤。内核源码中提供了一个检查脚本来检查Sphinx的依赖项。

./scripts/sphinx-pre-install

你可能会得到下面这样的结果
脚本执行结果
然后照着这个脚本的提示来操作就行了,看看缺什么,就装什么。
值得一提的是,这个脚本还有两个参数:
--no-pdf:禁用PDF检查
--no-virtualenv:使用Sphinx的系统打包,而不是python虚拟环境
我因为python的问题,一直缺少ensurepip这个模块,所以不得不选择了--no-virtualenv模式。

在经过一大堆的apt安装后,重新执行这个脚本,我得到了下面的结果:
重新检查
这里提示我安装python-sphinx,但我安装时候apt又提示我这个东西已经被装过了,不知道检测脚本哪里出的问题,索性就没管它,继续下一步。
环境搭建完成,就可以用make htmldocd或者make pdfdocs生成文档啦。如果是python虚拟环境,操作会复杂些,按照检测脚本的提示做即可。我这里由于不是python虚拟环境的模式,所以直接在源码根目录下make。
make htmldocs
这个构建过程要持续相当的一段时间,期间出现了很多warning!当然,按照通用原则,只要编译还在进行,只要没有error,那就不用管~
编译完成,在Documentation下面多了一个output的目录,里面就是生成的html文档啦。
编译完成
虚拟机里不好操作,我把这些文档挪到了windows环境下。于是就得到了下述目录:
output目录
里面的html文件都可以用浏览器或者其他支持该格式的应用打开看。试着打开search.html,可以看到一个搜索&索引页面
索引界面
里面这些索引都是可以点击跳转浏览的。
考虑到编译过程中出现了许多warning提示找不到符号或找不到doctree,可能有些文档是不完整或无法跳转的。不过整体的内容应该没什么问题。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐