网卡驱动7-netpoll和ethtool,以及ethtool移植和驱动简单实现

本文介绍了Linux内核中的netpoll机制,用于在网络和I/O子系统不可用时仍能收发数据包,主要用于网络控制台和远程内核调试。同时,探讨了ethtool工具的用途,它提供了对网络接口的高级控制,如速度、介质类型和硬件校验等。文章还简述了ethtool在ARM板上的移植步骤,并提及了ethtool_ops在驱动中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

netpoll的目的是让内核在网络和I/O子系统尚不能完整可用时,依然能发送和接收数据包。主要用于网络控制台(net console)和远程内核调试(KGDBoE)中。实现netpoll功能,主要是要实现kernel中的poll_controller函数,该函数定义:void (*poll_controller)(structnet_device *dev)。该函数的作用是在缺少设备中断的情况下,还能对控制器做出响应。几乎所有的poll_controller函数都定义成如下形式:
void my_poll_controller(structnet_device *dev) {
disable_device_interrupt();//
my_interrupt_handler();
enable_device_interrupt();
}


所以,poll_controller只是模拟了来自指定设备的中断。其实只是给netpoll机制提供调用中断函数处理的机会,实际的中断触发当然还是硬件。

下面的链接分析了netpoll

http://blog.youkuaiyun.com/lucien_cc/article/details/11731501

 

netconsole在内核/drivers/net下

netconsole.c文件,这个console主要是向远程端发送printk(用户层不行)打印信息。

在arm板上,你的内核要配置选上netpoll,也要加载netconsole.ko

下面看netconsole.ko装载:

http://linux.chinaunix.net/techdoc/system/2005/04/06/921980.shtml

 

在pc机上要配置syslogd可以用接收来自远程主机的消息

下面的链接给了设置方法:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值