在2.6.24及以后版本的Linux内核中使用netlink

如何在2.6.24及以后版本的Linux内核中使用netlink

最近做Netlink 2.6.24 移植,网上相关的教程也不少,有些写得还十分系统,不过我拿来一测试,居然没一个能编译。后来仔细一看才发现,还是内核版本的问题。经过一番折腾,终于弄好了,下面简要介绍一下经验。

我用的redhat 5 x64 自己升级的内核,内核更新至2.6.24,而从2.6.24开始,linux内部对netlink的实现机制和调用接口进行了很大的调整,特别是函数netlink_kernel_create(),最新的参数有6个之多。而网上大多数的教程和例子程序都是针对2.6.12以前版本的内核,甚至2.4版来说的,因此连最基本的函数都无法成功编译,更不用说后面的了。

事实上,新版的Netlink简化了使用逻辑。当然我这里说的主要是内核空间编程上,对用户空间程序,netlink仍然像经典的socket程序那样简单易用。我没有去仔细研究其他细节的函数,其实其他变化影响不大,这里仅对最核心的,变化最重要的create函数介绍一下,以下是函数原型:

extern struct sock *netlink_kernel_create(struct net *net,
                          int unit,unsigned int groups,
                          void (*input)(struct sk_buff *skb)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
编译Linux 2.6.24内核有以下几个步骤: 1. 下载内核源代码:首先,你需要下载Linux 2.6.24的内核源代码。你可以从Linux内核官方网站或者其他镜像网站上找到合适的源代码包。下载完成后,解压源代码到合适的目录。 2. 配置编译选项:进入源代码目录后,你需要进行内核的配置。可以使用make menuconfig或make xconfig等命令来进行交互式的配置。可以根据自己的需求选择合适的配置选项,例如硬件支持、文件系统等。 3. 运行编译命令:配置完成后,运行make命令进行编译。这个过程可能会需要一定时间,因为编译内核需要编译源代码大量的文件。你可以使用make -j <n>命令来指定同时编译的进程数量,其<n>为你机器上的CPU核心数。 4. 安装内核:编译完成后,你可以使用make install命令将编译好的内核安装到系统。这个过程会将内核映像文件复制到/boot目录下,并更新引导加载程序的配置文件。 5. 配置引导加载程序:安装完内核后,你需要配置引导加载程序以便系统能够启动新编译的内核。具体配置方式会因使用的引导加载程序而有所不同,例如GRUB、LILO等。 6. 重启系统:完成上述步骤后,现在你可以重启系统,选择新编译的内核进行启动。在系统启动时,可以通过/boot/grub/menu.lst或/boot/grub/grub.conf等文件来查看引导加载程序的配置。 希望以上信息对你有所帮助,在进行内核编译时请确保备份重要数据并仔细阅读相关文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值