Copy Highlighter-hljs code-theme-dark
| [jn@jn module]$ history|grep install |
| 2011 sudo apt-get install linux-headers-$(uname -r) |
| 2016 sudo apt install gcc-12 |
| 2017 sudo apt install g++-12 |
| 2077 history|grep install |
| [jn@jn module]$ cat print.c |
| |
| |
| |
| // Initialization function |
| static int __init print_init(void) |
| { |
| pr_info("my print module: Kernel module initialized\n"); |
| printk("output from print module\n"); |
| return 0; |
| } |
| |
| // Cleanup function |
| static void __exit print_exit(void) |
| { |
| pr_info("my print module: Kernel module exited\n"); |
| } |
| |
| // Register initialization and cleanup functions |
| module_init(print_init); |
| module_exit(print_exit); |
| |
| // Module information |
| MODULE_LICENSE("GPL"); |
| MODULE_AUTHOR("Your Name"); |
| MODULE_DESCRIPTION("A simple Linux kernel module example"); |
| |
| [jn@jn module]$ cat Makefile |
| obj-m += print.o |
| |
| all: |
| make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules |
| |
| clean: |
| make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean |
| |
| [jn@jn module]$ make |
| make -C /lib/modules/6.8.0-48-generic/build M=/home/jn/module modules |
| make[1]: Entering directory '/usr/src/linux-headers-6.8.0-48-generic' |
| warning: the compiler differs from the one used to build the kernel |
| The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0 |
| You are using: gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0 |
| make[1]: Leaving directory '/usr/src/linux-headers-6.8.0-48-generic' |
| [jn@jn module]$ sudo insmod print.ko |
| [jn@jn module]$ dmesg -T|tail -n 1 |
| dmesg: read kernel buffer failed: Operation not permitted |
| [jn@jn module]$ sudo dmesg -T|tail -n 1 |
| [Rab Jan 8 00:12:58 2025] my print module: Kernel module initialized |
| [jn@jn module]$ date |
| Rabu 08 Jan 2025 12:13:19 +08 |
| [jn@jn module]$ sudo rmmod print.ko |
| [jn@jn module]$ sudo dmesg -T|tail -n 1 |
| [Rab Jan 8 00:13:29 2025] my print module: Kernel module exited |
| [jn@jn module]$ |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)