カーネルモジュールのテスト(hello.ko)

https://www.tldp.org/LDP/lkmpg/2.6/html/x121.html
hello.c

/*  
 *  hello-1.c - The simplest kernel module.
 */
#include <linux/module.h>	/* Needed by all modules */
#include <linux/kernel.h>	/* Needed for KERN_INFO */

int init_module(void)
{
	printk(KERN_INFO "Hello world 1.\n");

	/* 
	 * A non 0 return means init_module failed; module can't be loaded. 
	 */
	return 0;
}

void cleanup_module(void)
{
	printk(KERN_INFO "Goodbye world 1.\n");
}

Makefile

export ARCH:=arm
export CROSS_COMPILE:=arm-xilinx-linux-gnueabi-

CC=$(CROSS_COMPILE)gcc

obj-m += hello.o

KDIR  := /home/shohei/Downloads/linux-xlnx
PWD   := $(shell pwd)

default:
	${MAKE} -C ${KDIR} M=${PWD} modules

clean:
	${MAKE} -C ${KDIR} M=${PWD} clean

PYNQでテスト

$ sudo insmod hello.ko
$ sudo rmmod hello.ko
$ dmesg
[ 2929.823746] Hello world 1.
[ 2940.046315] Goodbye world 1.