0x00 Kernal與rst
Linux kernal的文檔使用rst
結(jié)構(gòu)化文本編寫府蛇,閱讀kernal\msm-4.1.4\README
文檔可知,可以通過
make htmldocs
生成可讀的html
那就試一試,果然報錯了
HOSTCC scripts/basic/fixdep
Documentation/Makefile:24: The 'sphinx-build' command was not found. Make sure you have Sphinx installed and in PATH, or set the SPHINXBUILD make variable to point to the full path of the 'sphinx-build' executable.
Detected OS: Ubuntu 14.04.5 LTS.
Warning: better to also install "convert".
Warning: better to also install "dot".
Warning: better to also install "dvipng".
Warning: better to also install "rsvg-convert".
ERROR: please install "virtualenv", otherwise, build won't work.
Warning: better to also install "xelatex".
You should run:
sudo apt-get install imagemagick graphviz dvipng librsvg2-bin virtualenv texlive-xetex
virtualenv sphinx_1.4
. sphinx_1.4/bin/activate
pip install -r Documentation/sphinx/requirements.txt
google一下,關(guān)鍵在于sphinx,這是一個python寫的生成格式化文檔的工具非凌。提示很清晰举农,那就一個個安裝吧荆针。因為是離線環(huán)境下的生產(chǎn)環(huán)境,所以步驟稍微麻煩颁糟。
0x01 步驟
virtualenv
根據(jù)錯誤描述航背,virtualenv是必須的,先安裝其他的棱貌,沒有問題:
sudo apt-get install imagemagick graphviz dvipng librsvg2-bin texlive-xetex
但安裝 virtualenv 時出現(xiàn):
現(xiàn)在沒有可用的軟件包 virtualenv玖媚,但是它被其它的軟件包引用了。
這可能意味著這個缺失的軟件包可能已被廢棄婚脱,
或者只能在其他發(fā)布源中找到
可是下列軟件包取代了它:
python-pip-whl
到Pypi上找一下:
https://pypi.org/project/virtualenv/
下載whl包 virtualenv-16.2.0-py2.py3-none-any.whl 安裝即可
python3 -m pip install virtualenv-16.2.0-py2.py3-none-any.whl
sphinx
按照上面的方式設(shè)置虛擬環(huán)境的命令就可用了今魔,接下來需要安裝sphinx,提示使用的命令是:pip install -r Documentation/sphinx/requirements.txt 但這是在在線環(huán)境下自動下載的障贸。
因此參考這篇里 http://www.reibang.com/p/fc6e75a2858b 離線安裝pip的步驟错森,這里只列出步驟,不作解釋篮洁。
- 在線機上:requirements.txt文件就是kernel目錄下的Documentation/sphinx/requirements.txt
python -m pip download -r requirements.txt -d e:\sphinx_require
- 下載 Linux 版本的MakeupSafe涩维,因為其區(qū)分操作系統(tǒng)
https://pypi.org/project/MarkupSafe/#files
MarkupSafe-1.1.0-cp37-cp37m-manylinux1_x86_64.whl
- 指定離線包的安裝sphinx
python3 -m pip install -r Documentation/sphinx/requirements.txt --no-index --find-links=~/sphinx_require
生成文檔
這時再次運行
make htmldocs
就能在kernel/msm-4.14/Documentation/output
下查看生成的html文檔了
0x02 結(jié)語
在 https://www.kernel.org/doc/html/latest/index.html 也能查看到官方生成的文檔,現(xiàn)在你也可以學(xué)著定制自己的kernel文檔了