Linux驱动分析——网卡驱动

本文主要分析Linux内核中的网卡驱动,通过朱有鹏老师的视频课程,探讨虚拟网卡和DM9000驱动的源码,理解网络设备驱动的框架和结构。在系统中定位到dwmac-stm32.c文件,但未明确DW的具体含义。

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

stm32mp157  盘古开发板  Linux内核版本4.19

目录

1、朱有鹏老师视频课程笔记和源码

2、找到我系统上面网卡驱动的位置

3、dwmac-stm32.c文件中DW是什么意思


1、朱有鹏老师视频课程笔记和源码

第一部分、章节目录
5.11.1.网络设备驱动概述
5.11.2.虚拟网卡驱动分析1
5.11.3.虚拟网卡驱动分析2
5.11.4.DM9000驱动源码分析1
5.11.5.DM9000驱动源码分析
第二部分、章节介绍
5.11.1.网络设备驱动概述
    本节对网络设备驱动做个概要描述,主要是讲了这种驱动模型和字符设备块设备的区别,最后讲了下本部分的学习方法。
5.11.2.虚拟网卡驱动分析1
    本节来分析一个简化编写的虚拟网卡的驱动源码,主要目的是对网络设备驱动的框架进行理解和分析。
5.11.3.虚拟网卡驱动分析2
    本节来分析一个简化编写的虚拟网卡的驱动源码,主要目的是对网络设备驱动的框架进行理解和分析。    
5.11.4.DM9000驱动源码分析1
    本节来分析DM9000这个真实硬件网卡的驱动源码,并没有详细分析硬件操作,主要是验证网络设备驱动框架,并且将之前课程中学到的一些技巧运用进来。
5.11.5.DM9000驱动源码分析2
    本节来分析DM9000这个真实硬件网卡的驱动源码,并没有详细分析硬件操作,主要是验证网络设备驱动框架,并且将之前课程中学到的一些技巧运用进来。

第三部分、随堂记录    
5.11.1.网络设备驱动概述
5.11.1.1、什么是网络设备
(1)网络设备
(2)物理网卡: 真正的硬件网卡设备
5.11.1.2、网络设备接口
(1)/dev下没有设备文件,也不通过/sys下的属性文件访问。直观看来,应用层都是通过一些特殊的命令(如ifconfig、ping等)来访问网卡硬件(调用驱动)的。本质上应用调用驱动的方法可以通过分析ping、ifconfig等命令的实现来得知。实际就是通过:socket、bind、listen、connect、send、recv等API来实现的。
(2)网络设备被抽象成一个能够发送和接收数据包的“网络接口”
(3)struct net_device来管理所有网络接口
5.11.1.3、学习方法
(1)注意网络设备的访问方法和前两种不同
(2)2个数据结构(net_device和sk_buff)
(3)一个虚拟网卡案例代码分析 + DM9000驱动源码分析
5.11.2.虚拟网卡驱动分析1
5.11.2.1、虚拟网卡安装、卸载、打开、关闭、设置IP地址等实践
5.11.2.2、代码分析
5.11.3.虚拟网卡驱动分析2
5.11.4.DM9000驱动源码分析1

5.11.5.DM9000驱动源码分析2

 虚拟网卡的内核驱动模块,意在演示网卡大的框架

#include <linux/module.h>
#include <linux/sched.h>
#include <linux/kernel.h> /* printk() */
#include <linux/slab.h> /* kmalloc() */
#include <linux/errno.h>  /* error codes */
#include <linux/types.h>  /* size_t */
#include <linux/interrupt.h> /* mark_bh */
#include <linux/in.h>
#include <linux/netdevice.h>   /* struct device, and other headers */
#include <linux/etherdevice.h> /* eth_type_trans */
#include <linux/ip.h>          /* struct iphdr */
#include <linux/tcp.h>         /* struct tcphdr */
#include <linux/skbuff.h>
#include <linux/
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值