lkmpg/README.md

67 lines
2.4 KiB
Markdown
Raw Normal View History

2021-07-22 06:34:19 +08:00
# The Linux Kernel Module Programming Guide
2021-07-22 08:31:47 +08:00
This project keeps the Linux Kernel Module Programming Guide reasonably up to date, with [working examples](examples/) for recent 5.x kernel versions.
2021-07-22 06:34:19 +08:00
The guide has been around since 2001 and most copies of it on the web only describe old 2.6.x kernels.
The book can be freely accessed via https://sysprog21.github.io/lkmpg/ or [latest PDF file](https://github.com/sysprog21/lkmpg/releases).
2021-08-02 15:15:49 +08:00
The original guide may be found at [Linux Documentation Project](http://www.tldp.org/LDP/lkmpg/).
2021-07-22 06:34:19 +08:00
## Getting Started
### Compile on Local Machine
To prepare for build this book on your local machine, we're going to have make, TeXLive (MacTeX), dvipng and latexmk installed. On various Unix/Linux operating systems, this can be done simply by:
```bash
# Debian / Ubuntu
$ sudo apt install make texlive-full latexmk dvipng
# Arch / Manjaro
$ sudo pacman -S make texlive-most texlive-bin dvipng
# macOS
$ brew install --cask mactex
$ sudo tlmgr update --self && sudo tlmgr install dvipng latexmk
```
Now we could build document with following commands:
```bash
# download project
$ git clone https://github.com/sysprog21/lkmpg.git && cd lkmpg
# run commands
2021-08-09 23:46:37 +08:00
$ make all # Generate PDFdocument
$ make html # Convert TeX to HTML
$ make clean # Delete generated files
```
### Compile with Docker
2021-08-09 23:46:37 +08:00
The compilation could be completed flawlessly using Docker. **Using Docker is recommended, as it guarantees the same dependencies with our GitHub Actions wokrflow.
After [install docker engine](https://docs.docker.com/engine/install/) on your machine, pulling the docker image [twtug/lkmpg](https://hub.docker.com/r/twtug/lkmpg) and compile with it.
Execute followings
```bash
# download project
$ git clone https://github.com/sysprog21/lkmpg.git && cd lkmpg
# pull docker image and run it as container
$ docker pull twtug/lkmpg
$ docker run --rm -it -v $(pwd):/workdir twtug/lkmpg
# run commands
2021-08-09 23:46:37 +08:00
$ make all # Generate PDF document
$ make html # Convert TeX to HTML
$ make clean # Delete generated files
```
2021-07-22 06:34:19 +08:00
## License
The Linux Kernel Module Programming Guide is a free book; you may reproduce and/or modify it under the terms of the [Open Software License](https://opensource.org/licenses/OSL-3.0).
2021-07-22 06:39:22 +08:00
Use of this work is governed by a copyleft license that can be found in the `LICENSE` file.
2021-07-22 06:34:19 +08:00
The complementary sample code is licensed under GNU GPL version 2, as same as Linux kernel.