Commits

Alexander Dahl committed 94256fe

added helloworld with modified Makefiles from book examples

Comments (0)

Files changed (3)

+SUBDIRS =  misc-modules
+
+all: subdirs
+
+subdirs:
+	for n in $(SUBDIRS); do $(MAKE) -C $$n || exit 1; done
+
+clean:
+	for n in $(SUBDIRS); do $(MAKE) -C $$n clean; done

misc-modules/Makefile

+# To build modules outside of the kernel tree, we run "make"
+# in the kernel source tree; the Makefile these then includes this
+# Makefile once again.
+# This conditional selects whether we are being included from the
+# kernel Makefile or not.
+ifeq ($(KERNELRELEASE),)
+
+    # Assume the source tree is where the running kernel was built
+    # You should set KERNELDIR in the environment if it's elsewhere
+    KERNELDIR ?= /lib/modules/$(shell uname -r)/build
+    # The current directory is passed to sub-makes as argument
+    PWD := $(shell pwd)
+
+modules:
+	$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
+
+modules_install:
+	$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
+
+clean:
+	rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
+
+.PHONY: modules modules_install clean
+
+else
+    # called from kernel build system: just declare what our modules are
+    obj-m := hello.o
+endif

misc-modules/hello.c

+#include <linux/init.h>
+#include <linux/module.h>
+//MODULE_LICENSE( "Dual BSD/GPL" );
+
+static int hello_init( void ) {
+    printk( KERN_ALERT "Hello world!\n" );
+    return 0;
+}
+
+static void hello_exit( void ) {
+    printk( KERN_ALERT "Goodbye world!\n" );
+}
+
+module_init( hello_init );
+module_exit( hello_exit );