免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3427 | 回复: 7

[网络子系统] 3.10 以上内核创建proc文件的问题 [复制链接]

论坛徽章:
0
发表于 2014-07-29 15:31 |显示全部楼层
我的内核版本是3.11.0-15-generic

我现在想在/proc/sys/net/netfilter里面创建一个文件。我用proc_create函数的时候,proc_dir_entry 参数该怎么设置呢?

论坛徽章:
0
发表于 2014-08-16 11:37 |显示全部楼层
楼主解决这个问题了吗 我也碰到这个问题了

论坛徽章:
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
发表于 2014-08-16 20:59 |显示全部楼层
回复 1# archangle

你们不能什么不会就直接上来问,Linux不是Windows,不会什么都有教程,都要写得清清楚楚。
这种没法用一两句话说清楚,但又不是什么很难的问题,是很少有人理会的!!!
要学Linux,就要学会自己看代码,自己去学习,要说Linux最大的学习方法,就是RTFSC(Read the fucking source code)!
内核里头有大量的参考代码,要先学会查找、仿照。

你搜搜关键字,就会发现/proc/sys/net/netfilter不是由create_proc创建的!!!! 用的是sysctl!!!! 然后自己去百度一下就会有很多的教程!
至于在现成的目录低下去建文件,方法就是多仿照,多试验。因为网上的例子都是建一个全新的目录的。
我仿照的就是cdrom.c文件,至于试验,至少我没有写个测试案例以前,我也不确定走得通。

下面的代码在 Linux 3.1.0-7.fc16.i686.PAE下测试通过。
  1. #include <linux/init.h>
  2. #include <linux/module.h>
  3. #include <linux/sysctl.h>
  4. #include <linux/stat.h>
  5. MODULE_LICENSE("GPL");

  6. static int MyNewEntry = 0;
  7. static struct ctl_table_header *root_header;

  8. static struct ctl_table my_table[] = {
  9.         {
  10.                 .procname = "MyNewEntry",
  11.                 .mode = 0644,
  12.                 .data = & MyNewEntry,
  13.                 .maxlen = sizeof(int),
  14.                 .proc_handler = &proc_dointvec
  15.         },
  16.         {.procname = 0}
  17. };

  18. static struct ctl_table net_table[] = {
  19.         {
  20.                 .procname = "netfilter",
  21.                 .mode = 0555,
  22.                 .child = my_table,
  23.         },
  24.         {.procname = 0}
  25. };
  26. static struct ctl_table root_table[] = {
  27.         {
  28.                 .procname = "net",
  29.                 .mode = 0555,
  30.                 .child = net_table,
  31.         },
  32.         {.procname = 0}
  33. };

  34. struct proc_dir_entry *myproc = NULL;
  35. static int procfile_init(void)
  36. {
  37.         printk("procfile enter\n");
  38.         root_header = register_sysctl_table(root_table);
  39.         return 0;
  40. }

  41. static void procfile_exit(void)
  42. {
  43.         printk("procfile exit\n");
  44.         if(root_header)
  45.                 unregister_sysctl_table(root_header);
  46. }

  47. module_init(procfile_init);
  48. module_exit(procfile_exit);
复制代码

论坛徽章:
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
发表于 2014-08-16 21:02 |显示全部楼层
回复 2# haohaoxuexillk

参考上一贴吧。自己掌握学习Linux的方法。什么都问不是办法,总有别人也不关心的问题。


   

论坛徽章:
0
发表于 2014-08-18 18:05 |显示全部楼层
回复 4# Tinnal


    谢谢大神,要是有Read the fucking source code的视频入门就好了,
最近也是和大家一样,自己像个没头的苍蝇乱撞,就是因为入门的资源没有个统一的公布地点,
没有个针对的教程(或者不知道),更没有个好的中文的教程(我说的是中文入门,入门后就不在乎什么E文了),
所以大家一遇到问题就不知道哪里找答案,所以才什么都问。当入门后大家就知道到哪里找答案,怎么分析问题,
怎么解决问题了
我觉得坛子里的个位大神应该联合出个制顶的帖子完善上面的要求,

要是把我关注的netfilter_queue(千万别给官方的,就一篇代码没什么用)和内核的墙过滤也贴上我就万分感谢了

论坛徽章:
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
发表于 2014-08-18 20:35 |显示全部楼层
wantaugust 发表于 2014-08-18 18:05
回复 4# Tinnal


楼主都没发话,你来谢我干干什么,呵呵,没有糖发。

论坛徽章:
0
发表于 2014-08-19 08:16 |显示全部楼层
回复 6# Tinnal


    找了一夜都没有内核的入门视频
没办法,硬着头皮看文字那
郁闷中。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

求职 : 系统工程师等
论坛徽章:
5
技术图书徽章
日期:2014-04-19 22:01:05天蝎座
日期:2014-05-09 13:49:28双子座
日期:2014-06-16 15:08:042015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:28
发表于 2014-08-19 09:25 |显示全部楼层
你们不能什么不会就直接上来问,Linux不是Windows,不会什么都有教程,都要写得清清楚楚。

顶这句!!


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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP