免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2879 | 回复: 11
打印 上一主题 下一主题

[内核入门] 本人小白,刚学内核入门,一个小问题,希望大家看看 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-08-16 11:52 |只看该作者 |倒序浏览
很简单就是仿照网上的写个hollow的模块
aaa.c
#define MODULE
#include <linux/module.h>
int init_module(void)
{
        printk("<1>aaaaaaa!\n");
        return 0;
}
void cleanup_module(void)
{
        printk("<1>88888888\n");
}

Makefile:
ifneq ($(KERNELRELEASE),)
obj-m:=aaa.o
else
KERNELDIR:=/lib/modules/$(shell uname -r)/build
PWD:=$(shell pwd)
default:;$(MAKE) -C $(KERNELDIR)  M=$(PWD) modules
clean:;rm -rf *.o *.mod.c *.mod.o *.ko
endif

make后
[oracle@localhost ~]$ insmod aaa.o
insmod: ERROR: could not load module aaa.o: No such file or directory
不知道那里错了,
怎么内核模块的编写,不如在ide里写c方便,至少ide编译的时候就能告诉我那里写错了,而insmod给出的信息好是生硬

论坛徽章:
0
2 [报告]
发表于 2014-08-16 15:39 |只看该作者
终端信息贴错了,应该是:
[oracle@localhost my_kernel_iptables]$ insmod aaa.o
insmod: ERROR: could not insert module aaa.o: Operation not permitted

论坛徽章:
20
CU大牛徽章
日期:2013-04-17 11:48:26羊年新春福章
日期:2015-03-10 22:39:202015年中国系统架构师大会
日期:2015-06-29 16:11:282015亚冠之平阳省
日期:2015-07-31 09:19:042015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-09-30 06:20:002015亚冠之柏太阳神
日期:2015-10-19 20:29:5915-16赛季CBA联赛之天津
日期:2016-11-29 14:03:4315-16赛季CBA联赛之北控
日期:2016-12-24 20:51:492015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-12 20:58:532014年中国系统架构师大会
日期:2014-10-14 15:59:00
3 [报告]
发表于 2014-08-16 15:48 |只看该作者
用root用户登录,insmod aaa.ko

论坛徽章:
0
4 [报告]
发表于 2014-08-16 16:21 |只看该作者
回复 3# beyondfly
感谢大神,成功了,但是没有输出,下面是新代码的过程:
[oracle@localhost ~]$ su -
密码:
上一次登录:六 8月 16 16:13:07 CST 2014pts/0 上
[root@localhost ~]# cd /home/oracle/my_kernel_iptables/
[root@localhost my_kernel_iptables]# cat aaa.c
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>

static int  hello_init(void)
{
    printk("<1>aaaaa!\n");
    return 0;
}

static void  hello_exit(void)
{
    printk("<1>hello\n");
}

module_init(hello_init);
module_exit(hello_exit);
[root@localhost my_kernel_iptables]# cat Makefile
ifneq ($(KERNELRELEASE),)
obj-m:=aaa.o
else
KERNELDIR:=/lib/modules/$(shell uname -r)/build
PWD:=$(shell pwd)
default:;$(MAKE) -C $(KERNELDIR)  M=$(PWD) modules
clean:;rm -rf *.o *.mod.c *.mod.o *.ko
endif
[root@localhost my_kernel_iptables]# make
make -C /lib/modules/3.15.8-200.fc20.x86_64/build  M=/home/oracle/my_kernel_iptables modules
make[1]: 进入目录“/usr/src/kernels/3.15.8-200.fc20.x86_64”
  Building modules, stage 2.
  MODPOST 1 modules
make[1]: 离开目录“/usr/src/kernels/3.15.8-200.fc20.x86_64”
[root@localhost my_kernel_iptables]# insmod aaa.ko
[root@localhost my_kernel_iptables]# lsmod |grep aaa
aaa                    12496  0
[root@localhost my_kernel_iptables]# rmmod aaa
[root@localhost my_kernel_iptables]#

但是insmod rmmod为什么都没有输出那?
   

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
5 [报告]
发表于 2014-08-16 17:24 |只看该作者
看你的 dmesg 里面,应该有输出

论坛徽章:
20
CU大牛徽章
日期:2013-04-17 11:48:26羊年新春福章
日期:2015-03-10 22:39:202015年中国系统架构师大会
日期:2015-06-29 16:11:282015亚冠之平阳省
日期:2015-07-31 09:19:042015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-09-30 06:20:002015亚冠之柏太阳神
日期:2015-10-19 20:29:5915-16赛季CBA联赛之天津
日期:2016-11-29 14:03:4315-16赛季CBA联赛之北控
日期:2016-12-24 20:51:492015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-12 20:58:532014年中国系统架构师大会
日期:2014-10-14 15:59:00
6 [报告]
发表于 2014-08-16 17:28 |只看该作者
回复 4# wantaugust


   看看/var/log/message 或是dmesg,应该是有输出的

论坛徽章:
0
7 [报告]
发表于 2014-08-16 18:01 |只看该作者
回复 5# openspace


    没有

论坛徽章:
0
8 [报告]
发表于 2014-08-16 18:02 |只看该作者
回复 6# beyondfly


    messages和dmesg都没有,不知道怎么才能把hellow输出到终端

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
9 [报告]
发表于 2014-08-16 18:58 |只看该作者
printk 前面可以用 KERN_INFO 之类的来修饰要打印的字符串
可以看看 ldd3 ,里面有章节介绍 printk 和 console 字符串的打印级别

论坛徽章:
9
辰龙
日期:2014-08-18 20:38:42未羊
日期:2014-09-04 08:50:45丑牛
日期:2014-09-06 00:12:55寅虎
日期:2014-12-22 20:50:56摩羯座
日期:2015-01-14 22:28:15巳蛇
日期:2015-01-23 20:39:272015年辞旧岁徽章
日期:2015-03-03 16:54:1515-16赛季CBA联赛之青岛
日期:2016-03-13 23:37:1915-16赛季CBA联赛之深圳
日期:2016-03-29 18:52:38
10 [报告]
发表于 2014-08-16 21:09 |只看该作者
回复 8# wantaugust

你把dmesg的内容拷上来。


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP