Chinaunix首页 | 论坛 | 博客
  • 博客访问: 804572
  • 博文数量: 281
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2770
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-02 19:45
个人简介

邮箱:zhuimengcanyang@163.com 痴爱嵌入式技术的蜗牛

文章分类
文章存档

2020年(1)

2018年(1)

2017年(56)

2016年(72)

2015年(151)

分类: LINUX

2016-07-07 21:34:22

网卡驱动程序框架:

app:  socket
--------------------------------------------------
           ---------------
           --------------- 若干层网络协议--纯软件
           ---------------
           ---------------
hard_start_xmit||  /\
               \/  ||  netif_rx   sk_buff
           ---------------
          硬件相关的驱动程序(要提供hard_start_xmit, 有数据时要用netif_rx上报)           
--------------------------------------------------
               硬件           
           
怎么写网卡驱动程序?
1. 分配一个net_device结构体
2. 设置:
2.1 发包函数: hard_start_xmit
2.2 收到数据时(在中断处理函数里)用netif_rx上报数据
2.3 其他设置
3. 注册: register_netdevice


测试1th/2th:
1. insmod virt_net.ko
2. ifconfig vnet0 3.3.3.3
   ifconfig // 查看
3. ping 3.3.3.3  // 成功   
   ping 3.3.3.4  // 死机


测试DM9000C驱动程序:
1. 把dm9dev9000c.c放到内核的drivers/net目录下
2. 修改drivers/net/Makefile

obj-$(CONFIG_DM9000) += dm9000.o
改为
obj-$(CONFIG_DM9000) += dm9dev9000c.o
3. make uImage
   使用新内核启动
4.
使用NFS启动

ifconfig eth0 192.168.1.17
ping 192.168.1.1   

阅读(845) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~