56 lines
794 B
Markdown
56 lines
794 B
Markdown
|
# build my own linux kernel module
|
||
|
|
||
|
run a linux container
|
||
|
|
||
|
```shell
|
||
|
docker run --name linux --privileged -v /lib/modules:/lib/modules -v ./:/root/data -v /usr/src:/usr/src -it -d debian
|
||
|
```
|
||
|
|
||
|
setup into container the required dependencies
|
||
|
|
||
|
```shell
|
||
|
docker exec -it linux bash
|
||
|
apt update && apt install -y gcc make kmod procps git
|
||
|
```
|
||
|
|
||
|
cleaning
|
||
|
|
||
|
```shell
|
||
|
docker rm -f linux
|
||
|
```
|
||
|
|
||
|
show module information
|
||
|
|
||
|
```shell
|
||
|
modinfo hello.ko
|
||
|
```
|
||
|
|
||
|
search if module is loaded
|
||
|
|
||
|
```shell
|
||
|
lsmod | grep hello
|
||
|
```
|
||
|
|
||
|
(un)/load module
|
||
|
|
||
|
```shell
|
||
|
insmod hello.ko [myint=4]
|
||
|
rmmod hello.ko
|
||
|
```
|
||
|
|
||
|
load module and load is dependencies module
|
||
|
|
||
|
```shell
|
||
|
ln -s $(pwd)/hello.ko /lib/modules/$(uname -r)
|
||
|
depmod -a
|
||
|
modprobe hello
|
||
|
modprobe -r hello
|
||
|
rm /lib/modules/$(uname -r)/hello.ko
|
||
|
```
|
||
|
|
||
|
show kernel logs
|
||
|
|
||
|
```shell
|
||
|
dmesg -w
|
||
|
```
|