Chinaunix

标题: printk问题 [打印本页]

作者: 古红亮    时间: 2010-11-25 15:58
标题: printk问题
小弟是linux新手,因为想了解验证内核的处理机制。
在内核的tcp模块中添加了一些测试日志,调用的是printk接口
但是make modules,make modules_install,再reboot之后,调用测试程序发现
日志内容并没有输出到/var/log/messages中,
在 /var/log/目录中grep也没有发现我希望输出的日志内容,急切其他高手的解答。
注: 机器上klogd以及syslogd都在运行。
#cat /proc/sys/kernel/printk 输出是 4417
作者: liying_gg    时间: 2010-11-25 16:11
你确定系统用了你编的module么?
作者: Godbach    时间: 2010-11-25 16:12
修改一下 printk 的级别
$ cat /proc/sys/kernel/printk
6       4       1       7

作者: 古红亮    时间: 2010-11-25 17:21
我非常肯定以及确定我修改且编译了modules 并且通过make modules_install 重新安装了所有的模块!
我试试楼上的方法看看
作者: 古红亮    时间: 2010-11-25 17:23
太笨了 楼上麻烦告诉一下如果修改这个文件,我vi这个文件在保存,不让我修改
我用的是root账户
作者: 古红亮    时间: 2010-11-25 17:25
不好意思我网上查了一下 不用了,不过还是谢谢
我先去试一下,好用回来再谢
作者: 古红亮    时间: 2010-11-25 17:28
你确定系统用了你编的module么?
liying_gg 发表于 2010-11-25 16:11



    才看清你说的
不敢确认,也不知道怎么去确认。
我是直接make modules,编译所有的模块
然后make modules_install 重新安装了所有的模块
然后reboot
不知道这样是否可以
作者: 古红亮    时间: 2010-11-26 11:03
啊啊啊啊,我要疯了
不好用啊
我改成6       4       1       7
不管用,高手帮帮忙啊
我不知道是不是系统没有调用我修改后的tcp内核模块
有高手知道如何更新内核源码中的某一个模块么?
printk就是没有输出我想要的字符
悲哀,急切等待高手的回复
作者: yohji    时间: 2010-11-26 23:23
你调用的printk后面是level是多少?也就是说,后面是带的哪个KERN_*?
你试试:

echo 7 > /proc/sys/kernel/printk
作者: EZWORD    时间: 2010-11-27 10:38
module没有被使用
作者: Godbach    时间: 2010-11-27 18:32
tcp 中哪些位置添加了日志,确保系统处理能够走到你添加的代码中
作者: Godbach    时间: 2010-11-27 18:33
你自己做了什么修改,说明确一下,可以列一些代码出来,别让大家瞎猜了
作者: 古红亮    时间: 2010-11-28 09:50
楼上那如何让module被使用呢
作者: hritian    时间: 2010-11-28 12:27
本帖最后由 hritian 于 2010-11-28 12:33 编辑

估计是你的模块没有被调用
modprobe ****
或者 insmod ****.ko

你是自己新添加的内核模块,还是在以前的内核模块的基础上改的?
是tcp拥塞控制模块吧?如果不是新加模块,你确认你改的是tcp_bic.c这个文件吗?(如果没有改配置文件的话,内核默认用的是tcp_bic这个模块)
作者: 古红亮    时间: 2010-11-28 15:10
你调用的printk后面是level是多少?也就是说,后面是带的哪个KERN_*?
你试试:

echo 7 > /proc/sys/ker ...
yohji 发表于 2010-11-26 23:23



   我用的是info,alert
这两种都没有输出日志内容
作者: 古红亮    时间: 2010-11-28 20:00
谢谢各位的帮助,内核的代码没办法贴。
问题已经搞定。
作者: 古红亮    时间: 2010-11-28 20:03
估计是你的模块没有被调用
modprobe ****
或者 insmod ****.ko

你是自己新添加的内核模块,还是在以前 ...
hritian 发表于 2010-11-28 12:27


你说的这个命令我不知道对内核的module是否管用。能否说的在具体点。
然后就是tcp_ipv4 走的文件是socket.c tcpipv4.c tcp.c 这三个文件。
现在日志已经打印出来了。
我是把全部内核源码 整个的重现编译,然后在整个内核模块重新安装搞定。
不过这样效率太低了,
最后就是不知道怎么结束这个帖子
作者: hritian    时间: 2010-11-28 20:59
这不是内核模块,所以你必须make




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2