make
sudo insmod ./read_sysreg.ko
sudo dmesg | tail -n 10
Install kernel headers first when missing:
sudo apt install --reinstall linux-headers-$(uname -r)
make
sudo insmod ./read_sysreg.ko
sudo dmesg | tail -n 10
Install kernel headers first when missing:
sudo apt install --reinstall linux-headers-$(uname -r)
| obj-m := read_sysreg.o | |
| KDIR := /lib/modules/$(shell uname -r)/build | |
| PWD := $(shell pwd) | |
| all: | |
| $(MAKE) -C $(KDIR) M=$(PWD) modules | |
| clean: | |
| $(MAKE) -C $(KDIR) M=$(PWD) clean |
| #include <linux/module.h> | |
| #include <linux/kernel.h> | |
| #include <asm/sysreg.h> | |
| static int __init read_sysreg_init(void) | |
| { | |
| u64 pfr0 = read_sysreg(ID_AA64PFR0_EL1); | |
| printk(KERN_INFO "ID_AA64PFR0_EL1: 0x%llx\n", pfr0); | |
| return 0; | |
| } | |
| static void __exit read_sysreg_exit(void) | |
| { | |
| printk(KERN_INFO "Module unloaded.\n"); | |
| } | |
| module_init(read_sysreg_init); | |
| module_exit(read_sysreg_exit); | |
| MODULE_LICENSE("GPL"); | |
| MODULE_AUTHOR(""); | |
| MODULE_DESCRIPTION(""); |