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.

æ & yençæºå & frac34å



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