Skip to content

Latest commit

 

History

History
68 lines (51 loc) · 1.32 KB

File metadata and controls

68 lines (51 loc) · 1.32 KB

Examples Quick Reference

Available Examples

01-hello/

Basic module - Hello world

cd 01-hello && make && sudo insmod hello.ko
dmesg | tail
sudo rmmod hello

02-chardev/

Character device - Read/write device

cd 02-chardev && make && sudo insmod simple_char.ko
echo "test" > /dev/simple_char
cat /dev/simple_char
sudo rmmod simple_char

Common Makefile Targets

All examples support:

  • make - Build module
  • make clean - Remove build files
  • sudo insmod module.ko - Load module
  • sudo rmmod module - Unload module
  • dmesg | tail - View kernel log

Development Workflow

  1. Edit code
  2. Build: make
  3. Load: sudo insmod module.ko
  4. Test: Run tests
  5. Check logs: dmesg | tail
  6. Unload: sudo rmmod module
  7. Repeat

Debugging Tips

# Watch kernel log in real-time
dmesg -w

# Check module is loaded
lsmod | grep module_name

# Verbose module info
modinfo module.ko

# Check for errors
dmesg | grep -i error

# Enable dynamic debug
echo 'file simple_char.c +p' > /sys/kernel/debug/dynamic_debug/control

File Organization

Each example contains:

  • *.c - Source code with detailed comments
  • Makefile - Build configuration
  • README.md - Specific usage instructions

All examples are self-contained and can be built independently.