This repository provides a minimal Linux character device driver, along with a Docker-based build and test environment that works safely on any Linux host.
.
├── Dockerfile # Docker image for kernel module development
├── .gitignore # Ignore build artifacts
└── dev/
└── simple_char_driver/
├── Makefile # Kernel module build rules
└── simple_char_driver.c # The char device driver sourcedocker build -t char_dev_env .
# If you get permission denied, use
sudo docker build -t char_dev_env .docker run --rm -it \
--privileged \
--name char_dev \
-v /lib/modules:/lib/modules \
-v /usr/src:/usr/src \
-v $(pwd)/dev:/home/dev/dev \
char_dev_envcd ~/dev/simple_char_driver
makesudo insmod simple_char_driver.ko
dmesg | tailYou’ll see something like: Simple char driver loaded: major=509
Now create the device node (replace 509 with your actual major):
sudo mknod /dev/simple_char c 509 0
sudo chmod 666 /dev/simple_charecho "Hello Driver" > /dev/simple_char
cat /dev/simple_charExpected output: Hello Driver
sudo rmmod simple_char_driver