Sterownik urządzenia Linux - scull
Linux Device Driver Scull
Procedury zawarte w książce „sterownik urządzenia linux” mogą być uruchamiane w środowisku linux hosta PC, bez konieczności pobierania ich do środowiska linux / android platformy ARM.
Wyświetl wersję systemu
root@xxxxx:~/linux_driver/hello$ uname -r 4.2.0-27-generic root@xxxxx:~/linux_driver/hello$ cat /etc/issue Ubuntu 14.04.5 LTS
l
root@xxxxx:~/linux_driver/hello$ vim hello.c 1 /* hello.c */ 2 #include 3 #include 4 MODULE_LICENSE('leo BSD/GPL') 5 static int hello_init(void) 6 { 7 printk(KERN_ALERT 'Hello, world
') 8 return 0 9 } 10 static void hello_exit(void) 11 { 12 printk(KERN_ALERT 'Goodbye, Hello world
') 13 } 14 module_init(hello_init) 15 module_exit(hello_exit) ~ ~
Makefile
root@xxxxx:~/linux_driver/hello$ vim Makefile 1 obj-m += hello.o 2 CURRENT_PATH:=$(shell pwd) 3 LINUX_KERNEL_PATH:=/lib/modules/$(shell uname -r)/build 4 all: 5 $(MAKE) -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules 6 clean: 7 rm -rf .*.cmd *.o *.mod.c *.ko .tmp_versions 8
Zależy od katalogu systemowego jądra źródłowego /usr/src/linux-headers-4.2.0-27
Skompiluj i wygeneruj hello.ko za pomocą / home / sunhz / linux_driver / hello za pomocą polecenia make
Załaduj bibliotekę dynamiczną ko
root@xxxxx:~/linux_driver/hello$ sudo insmod hello.ko root@xxxxx:~/linux_driver/hello$
Wyświetl wydruk dziennika
root@xxxxx:~/linux_driver/hello$ sudo cat /var/log/syslog | grep Hello Mar 15 14:11:30 R720xd kernel: [337056.403621] Hello, world root@xxxxx:~/linux_driver/hello$
Odinstaluj bibliotekę dynamiczną ko
root@xxxxx:~/linux_driver/hello$ sudo rmmod hello.ko root@xxxxx:~/linux_driver/hello$ sudo cat /var/log/syslog | grep Hello Mar 15 14:11:30 R720xd kernel: [337056.403621] Hello, world Mar 15 14:13:17 R720xd kernel: [337163.514790] Goodbye, Hello world
Może przeglądać kod źródłowy
printk (KERN_ALERT 'Witaj, świecie n')
printk (KERN_ALERT 'Do widzenia, witaj świecie n')
Udane drukowanie