免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: xiaozhe2000

何把内核中的信息打印到文件 [复制链接]

论坛徽章:
0
发表于 2006-04-30 00:53 |显示全部楼层
原帖由 albcamus 于 2006-4-25 15:42 发表
>>如果没有串口初始化呢?
/dev/console初始化之前,可以用early_printk打印信息。

to huyongzs:
>>gcc -g -o kprinter kernelprinter.c
2.4和2.6编译过程不一样。 如果是前者, 去掉-g试试;  ...


在没有初始化串口时,在寄存器中,置入字符及输入,需要一些基本的转换
输入的全为字符,需将其转换为相对应的数据类型.
因此,在所有的Bootloader中,都几乎要做这一步.

不管在任何时候,需要操作串口接口,可以自己写一个操作函数.不管在任何时候
都可以输出.好像设置相关寄存器只有几句话.看三星和Moto的都这样.

-g 是包括调试信息之意.

如使用/dev/console,也就是/dev/tty(Sxx)等,都是在串口驱动启动以后;
之前,有一小段初始化串口代码,就是几句置数寄存器操作.而直接操作物理
接口,不受任何限制.以前我们都这样做的.包括下载Bootloader及调试.这时
没有任何输出,不可能用逻辑分析仪吧.不累死了.

但一般来讲,在内核空间是可以用文件操作的,因为VFS是Built-in内核的,大多数
情况是必须的.

论坛徽章:
0
发表于 2006-05-07 10:50 |显示全部楼层
请教为什么上面的例子程序我都编译不过去啊
我用的是gcc  -g -c -O -Wall  XXX.c

论坛徽章:
0
发表于 2007-09-24 17:24 |显示全部楼层
用/proc就可以免去file_open的问题吧?

论坛徽章:
0
发表于 2007-12-03 14:01 |显示全部楼层
原帖由 思一克 于 2006-4-20 15:40 发表
PRINTK的每行前加一个标志MYLOG,

然后grep到一个文件中不就可以了吗


用处多多,谢谢:)

论坛徽章:
0
发表于 2008-05-22 16:09 |显示全部楼层
原帖由 albcamus 于 2006-4-20 14:47 发表
netfilter的hook点是在softirq的上下文中, 不可以睡眠(亦即:阻塞当前进程), 读写磁盘文件恰恰是可能导致睡眠的。

记得wheelz斑竹的建议是: 如果你一定要在softirq上下文中读写文件, 那么, 生成一个内 ...



想请斑竹解释一下"netfilter的hook是在softirq的上下文中,不可以睡眠"是什么意思?因为我也遇到类似的问题.谢谢.

论坛徽章:
0
发表于 2008-10-14 21:32 |显示全部楼层
早怎么没发现这个帖子呢。

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
发表于 2008-10-16 13:35 |显示全部楼层
很受启发,这贴经典!

论坛徽章:
0
发表于 2008-10-16 20:46 |显示全部楼层
file = filp_open(MY_FILE, O_RDWR | O_APPEND | O_CREAT, 0644);
这里的0644是什么意思?

论坛徽章:
0
发表于 2008-10-16 21:07 |显示全部楼层

一个很奇怪的问题

按照alb。。给出的模块读写例子读写文件应该很普通。
特别是在模块的init里面打开文件。
可是我在netfilter里加了个模块,它的初始化里就打不开文件,PTR_ERR返回0xFFFFFFFE,why?

论坛徽章:
0
发表于 2008-10-31 15:52 |显示全部楼层
搭车请教一个问题,alb版主在给出的例子中,为什么需要get_fs和set_fs呢?
不太明白,忘指点,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP