linux内核版本 2.6.39,linux – 为什么这个内核模块在2.6.39上被标记为永久
加载此模块时:
#include
#include
#include
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void) {
printk("<1> Hello world!\n");
return 0;
}
static void hello_exit(void) {
printk("<1> Bye,cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);
该模块在lsmod中被标记为[永久],不能卸载,在2.6.39-02063904-generic(从Ubuntu PPA).但它在默认的2.6.38内核上工作正常. (在Ubuntu 11.04 x86上).
2.6.39发生了什么变化?我的代码需要改变什么?
当我遇到这个问题时,我试图分离一个更复杂的问题.
编辑:
根据答案的建议,我编辑了添加__init和__exit(hello3.c)的代码:
#include
#include
#include
MODULE_LICENSE("Dual BSD/GPL");
static int __init hello_init(void) {
printk("<1> Hello world!\n");
return 0;
}
static void __exit hello_exit(void) {
printk("<1> Bye,cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);
构建输出:
make -C /lib/modules/2.6.39-02063904-generic/build M=/home/douglas/kernelmod modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.39-02063904-generic'
Building with KERNELRELEASE = 2.6.39-02063904-generic
CC [M] /home/douglas/kernelmod/hello3.o
Building modules,stage 2.
Building with KERNELRELEASE = 2.6.39-02063904-generic
MODPOST 8 modules
CC /home/douglas/kernelmod/hello3.mod.o
LD [M] /home/douglas/kernelmod/hello3.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.39-02063904-generic'
EDIT2:
hello3.mod.c:
#include
#include
#include
MODULE_INFO(vermagic,VERMAGIC_STRING);
struct module __this_module
__attribute__((section(".gnu.linkonce.this_module"))) = {
.name = KBUILD_MODNAME,.init = init_module,#ifdef CONFIG_MODULE_UNLOAD
.exit = cleanup_module,#endif
.arch = MODULE_ARCH_INIT,};
static const struct modversion_info ____versions[]
__used
__attribute__((section("__versions"))) = {
{ 0xbe4b3e92,"module_layout" },{ 0xb4390f9a,"mcount" },{ 0x5e3b3ab4,"printk" },};
static const char __module_depends[]
__used
__attribute__((section(".modinfo"))) =
"depends=";
MODULE_INFO(srcversion,"D2A869459874C22AB265981");
也
# grep CONFIG_MODULE_UNLOAD /boot/config-2.6.39-02063904-generic
CONFIG_MODULE_UNLOAD=y
EDIT3:
更有趣的是,我自己编译的香草内核不会发生这种情况
加载和卸载模块正常.
EDIT4:
我在虚拟机上安装了Oneiric beta 2内核,而3.0.0-11内核也没有任何问题.所以它似乎局限于Ubuntu香草PPA内核.这不是很有趣的解决.
linux内核版本 2.6.39,linux – 为什么这个内核模块在2.6.39上被标记为永久相关推荐
- linux内核版本指什么意思,Linux的内核版本是怎么回事
Linux的内核版本编号有点像如下的样子: < 2.6.32-642.el6.x86_64 主版本.次版本.发布版本-修改版本 > 虽然编号就是如上的方式来编写,不过依据Linux内核的发 ...
- openwrt使用linux内核版本,openwrt更换原有Linux内核版本
openwrt更换原有Linux内核版本 1:将openwrt14.07 中的内核版本从3.10.49 更换成 3.10.102 a:更改文件include/kernel-version.mk b:修 ...
- openwrt使用linux内核版本,降低OpenWRT的Linux内核版本
不久前, 为了移植某驱动程序,笔者可谓绞尽脑汁,在4.1内核版本上,尝试了很多次都没能成功,后来仔细分析,才知道是内核版本过高导致的,本文给出降低内核版本的方法,具体编译环境的搭建,还请自行查阅其他文 ...
- 查看版本linux内核版本是多少,查看linux版本,内核及多少位
1. 查看内核版本命令: 1) [root@q1test01 ~]# cat /proc/version Linux version 2.6.9-22.ELsmp (bhcompile@crowe.d ...
- linux查看tcl版本_查看Linux内核版本的方法有几个?你也是这样操作吗?
请关注本头条号,每天坚持更新原创干货技术文章.如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. 前言 内核是操作系统的核心组件. 它管理系统的资源,是计算机硬 ...
- 如何查看docker的内核版本_查看Linux内核版本的方法有几个?你也是这样操作吗?...
请关注本头条号,每天坚持更新原创干货技术文章.如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. 前言 内核是操作系统的核心组件. 它管理系统的资源,是计算机硬 ...
- 手机linux内核版本了解,Linux内核版本介绍与查询
Linux内核版本命名在不同时期有着不同的规范,在涉及到Linux版本问题时经常容易混淆,主线版本/稳定版/长期支持版本经常搞不清楚,本文主要记录下内核版本命名的规则以及如何查看Linux系统版本信息 ...
- 【Linux】在命令行中查看Linux内核版本的几种方法
如何知道自己的系统使用哪个Linux内核版本?以下是在Linux终端中检查内核版本的几种方法. 如何找到Linux内核版本 1.使用uname命令查找Linux内核 uname是用于获取系统信息的Li ...
- Linux 内核版本命名
Linux 内核版本命名 标签: LinuxKernel 2013-11-13 09:25 12248人阅读 评论(0) 收藏 举报 分类: Linux内核(6) Linux(6) 版权声明:本文为博 ...
- linux3.14.57内核版本,CentOS和RedHat Linux内核版本的对应关系
由于RedHat和CentOS的发行版本现在众多,所以我们应该知道CentOS和Redhat及Linux内核之间版本的对应关系对维护系统还是很有帮助的.对应的列表如下: Redhat 9.0----- ...
最新文章
- Java解决递归栈溢出_方法递归调用中java栈溢出的问题 及 解答 | 学步园
- matlab处理txt文件数据
- Jbuilder9 + WebLogic8.1的基本配置
- JAVA命令运行cmd命令得到的结果乱码Runtime.getRuntime().exec();
- 蓝桥杯java第四届决赛第四题--九宫重排
- 盘点:2019年最赚钱的10种编程语言
- java.lang.OutOfMemoryError: PermGen space 问题解决
- Gartner 组织世界BI大会,PowerBI 与 Tableau 同台竞技
- 精读《setState 做了什么》
- knn算法python代码_在python中使用KNN算法处理缺失的数据
- ROS通过串口,读写STM32和HC-SR04超声波测距信息
- 利用POI导出excel
- fgo服务器维护补偿什么时候才有,FGO11月02日临时维护公告 补偿奖励一览
- 重点分析!转型中的好莱坞发生了哪些变局?
- Netty+WebSocket服务器完成Web聊天室(纯文字)
- range-coder使用
- 树莓派安装共享打印机HP LaserJet CP1025(foo2zjs)
- 2022-VS2015-ACE+TAO(7.0.5)+CIAO+OpenDDS 3.16 编译
- ALSA中PCM的使用
- BW项目随手记:SAP 采购单位和基本计量单位转换关系
热门文章
- 翻译器DIY它———算在英文文本中的单词数,字符和行数
- 剑指OFFER之从二叉搜索树的后序遍历序列(九度OJ1367)
- Jquery性能优化(转自蓝色理想)
- Hibernate 多对多映射实列
- 2019CCF自主可控计算机大会召开 中科院院士吁自力更生
- 利用74LS138实现4-16译码器,并在QuartusⅡ上进行仿真
- 里bl2和bl3为什么分开_施工现场乙炔瓶为什么必须直立?乙炔为什么不能用尽?........
- Spring AOP通知顺序
- java 二维数组的定义
- 2021贵州毕节高考成绩查询,2021贵州毕节选调生考试排名查询入口-时间(已开通)...