Linux-enhedsdriver - scull

Linux Device Driver Scull



Rutinerne i bogen 'Linux-enhedsdriver' kan køres i pc-værtens linuxmiljø uden at skulle downloade til arm / platformens linux / android-miljø.

æ & yençæºå & frac34å



Se systemversion



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

Afhænger af systemkildekataloget /usr/src/linux-headers-4.2.0-27

Kompilér og generer hello.ko med / home / sunhz / linux_driver / hello ved hjælp af kommandoen make

Indlæs ko dynamisk bibliotek

root@xxxxx:~/linux_driver/hello$ sudo insmod hello.ko root@xxxxx:~/linux_driver/hello$

Se log udskrivning

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$

Afinstaller ko dynamisk bibliotek

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

Kan se kildekoden

printk (KERN_ALERT 'Hej, verden n')

printk (KERN_ALERT 'Farvel, Hej verden n')

Vellykket udskrivning