I can't create a driver in Ubuntu (iron beaver).
Makefile
# Makefile – makefile of our first driver # if KERNELRELEASE is defined, we've been invoked from the # kernel build system and can use its language. ifneq (${KERNELRELEASE},) obj-m := ofd.o # Otherwise we were called directly from the command line. # Invoke the kernel build system. else KERNEL_SOURCE := /lib/modules/4.15.0-47-generic/ PWD := $(shell pwd) default: ${MAKE} -C ${KERNEL_SOURCE} SUBDIRS=${PWD} modules clean: ${MAKE} -C ${KERNEL_SOURCE} SUBDIRS=${PWD} clean endif
ofd.c / * ofd.c - Code of our first driver * / #include #include #include
static int __init ofd_init(void) /* Конструктор */ { printk(KERN_INFO "dimon ^_^ : ofd registered"); return 0; } static void __exit ofd_exit(void) /* Деструктор*/ { printk(KERN_INFO "pumba ;_; : ofd unregistered"); } module_init(ofd_init); module_exit(ofd_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("kaban <kaban@bk.ru>"); MODULE_DESCRIPTION("Moi perwii draiwer (Our First Driver)");
I did everything under the article to write a pro-driver. I do not know why I did not: P
Corrected and added TABY.
# Makefile – makefile of our first driver # if KERNELRELEASE is defined, we've been invoked from the # kernel build system and can use its language. ifneq (${KERNELRELEASE},) obj-m := ofd.o # Otherwise we were called directly from the command line. # Invoke the kernel build system. else KERNEL_SOURCE := /lib/modules/4.15.0-47-generic/ PWD := $(shell pwd) default: ${MAKE} -C ${KERNEL_SOURCE} SUBDIRS=${PWD} modules clean: ${MAKE} -C ${KERNEL_SOURCE} SUBDIRS=${PWD} clean endif
Here is the conclusion that the computer gave me
comp@comp0:~$ make make -C /lib/modules/4.15.0-47-generic/ SUBDIRS=/home/comp modules make[1]: вход в каталог «/lib/modules/4.15.0-47-generic» make[1]: *** Нет правила для сборки цели «modules». Останов. make[1]: выход из каталога «/lib/modules/4.15.0-47-generic» Makefile:13: recipe for target 'default' failed make: *** [default] Error 2
Strange, it gives an error, although I have specified the correct kernel.
comp@comp0:~$ uname -r 4.15.0-47-generic