自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

linux v4l2 spec ch

linux video for linux 2驱动的用户层和内核驱动开发。不错的中文翻译,对英文不好的朋友有很大帮助

2014-03-21

ethtool源代码

linux系统用的ethtool源代码,如果在一些嵌入式平台没有此工具,可以下载下来进行编译移植

2014-02-13

linux总线实例

linux总线实例,基于linux-3.2.36,用的vs编辑,里面有^M符号,不要管它。

2013-07-11

自制linux驱动学习软件

自制linux驱动学习软件,适合初学者,有什么建议请回复我,谢谢!!!

2013-07-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除