- 博客(10)
- 资源 (4)
- 收藏
- 关注
原创 网卡驱动10-做一个与外界交互的虚拟网卡6(突发奇想!搞个网络鼠标!)
昨天晚上突然想到这个东西,今天花了一上午实现了!不过具体速度怎么样就不清楚了!首先是目的!一个系统上的鼠标去控制另一个系统。通过网线连接。方案!在一个系统上获取鼠标信息网传到另一个系统,接受信息的系统通过input机制上报。对于网传的接受,你可以在用户层去做,我是在内核层去做的,参考我之前搞的vnic代码。我就不废话了,直接代码:/* */#include #inclu
2014-02-26 14:26:36 2232 1
原创 网卡驱动9-linux内核3.0.8的mdio_bus\phy_device\phy_driver
上次说了MII还有RMII GMII RGMII、SGMII等,GMII:与MII接口相比,GMII的数据宽度由4位变为8位, 发送参考时钟GTX_CLK和接收参考时钟RX_CLK的频率均为125MHz(1000Mbps/8=125MHz)。支持MII模式。这个GMII可用于1000M网。RGMII:由于GMII线太多,RGMII把数据位宽变为4位,在时钟的上升沿和下降沿都采样
2014-02-24 11:09:06 7683 3
原创 网卡驱动8-MII接口以及linux内核对MII的支持
首先,向大家推荐一些文章。http://blog.chinaunix.net/uid-24148050-id-131084.htmlhttp://hi.baidu.com/lds102/item/eae3262c77b897de0f37f966http://blog.csdn.net/zyboy2000/article/details/4525726 这上面说了MII、RMII
2014-02-18 16:17:12 6183
原创 网卡驱动7-netpoll和ethtool,以及ethtool移植和驱动简单实现
netpoll的目的是让内核在网络和I/O子系统尚不能完整可用时,依然能发送和接收数据包。主要用于网络控制台(net console)和远程内核调试(KGDBoE)中。实现netpoll功能,主要是要实现kernel中的poll_controller函数,该函数定义:void (*poll_controller)(structnet_device *dev)。该函数的作用是在缺少设备中断的
2014-02-13 16:03:20 3263
原创 网卡驱动6-做一个与外界交互的虚拟网卡5(代码及调试)
驱动有三个文件:vnic.h vnic_core.c vnic_dev.c应用层:rcv.c send.c(发送程序是pc和arm板共用的)代码有注释,我就不详细解释了。如有疑问,欢迎讨论!vnic.h#ifndef __VNIC_H__#define __VNIC_H__#include #define VNIC_HLEN 4 /* The addi
2014-02-13 09:43:12 2603
原创 网卡驱动5-做一个与外界交互的虚拟网卡4(netif_receive_skb和非napi分析)
看了网上的一些对此函数的解析,有些比较旧了。我在这分析一下linux-3.0.8的代码。netif_receive_skb()中有RPS,我们不看了,直接看__netif_receive_skb()。static int __netif_receive_skb(struct sk_buff *skb){ struct packet_type *ptype, *pt
2014-02-12 11:38:34 2464
原创 网卡驱动4-做一个与外界交互的虚拟网卡3(调用真实网卡接收数据以及napi使用)
//vnic_rcv是接受vnic包的处理函数static int vnic_rcv(struct sk_buff *skb, structnet_device *dev, struct packet_type *ptype, struct net_device *orig_dev){ struct net_device *vnic_dev; struct vnic_p
2014-02-10 16:49:25 2658
原创 网卡驱动3-做一个与外界交互的虚拟网卡2(调用真实网卡发送数据)
之前说我我加入一个自己的协议,现在说一下我的协议的意思是每个数据包前加一个32位的数据,前16位是协议号,即ETH_IP_VNIC;后16位的高八位是’w’(我的姓的第一字母),低八位是虚拟网卡号。所以VNIC_HLEN是4。可以看一下结构体struct vnic_ethhdr/** * struct vnic_ethhdr - vnic ethernet header (ethhdr
2014-02-08 11:45:06 3276
原创 网卡驱动2-做一个与外界交互的虚拟网卡1(引用真实的网卡、自定义协议号注册)
之前的snull只能自娱自乐,我们来实现一个可以和外部通讯的虚拟网卡。这个虚拟网卡参考了vlan协议实现。重点我们说四个东西,引用真实的网卡、自定义协议号注册、发送和接受。Linux-3.0.8引用真实的网卡:单从程序上看就这一句:real_netdev = dev_get_by_name(&init_net, "eth0");dev_get_by_name()
2014-02-07 16:06:38 2287
原创 网卡驱动1-移植snull到linux-3.0.8
ldd3的代码版本太低了,我在此把它移植到linux-3.0.8并提供调试方法,希望对一些人有帮助可以与ldd3提供的源码比较这看。timeout那块有点问题,就不演示了。snull.h/* * snull.h -- definitions for the network module * * Copyright (C) 2001 Alessandro Rubini and
2014-02-07 11:45:00 2863 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人