编程知识 cdmana.com

Linux驱动移植USB网卡r8156驱动(详细)总结

一、简介

本文主要在arm主板中移植usb网卡驱动,因为内核自带的r8152驱动有问题,因此移植了千兆网卡的usb驱动,在ubuntu下交叉编译内核模块然后在主板系统下安装,下面介绍本人移植的详细过程。
系统版本:Ubuntu 22.04 LTS
主板型号:armv8

二、驱动移植

总的过程总结
1、 驱动源码解压;
2、 驱动Kconfig和Makefile配置;
3、 .config配置
4、 模块编译及报错处理;
5、 模块安装及测试;

2.1 驱动源码解压

首先解压r8152.53.56-2.15.0.tar.bz2到内核drivers/net下
因为买的RTL 8156的网卡依然使用的是8152的驱动,因此为了区分内核自带的8152驱动,我对解开的tar包的目录重新命名为r8156-2.15.0

[email protected]:/LINUX/# tar -jxvf r8152.53.56-2.15.0.tar.bz2 –C drivers/net
[email protected]:/LINUX/# mv drivers/net/r8152-2.15.0 drivers/net/r8156-2.15.0

2.2 驱动Kconfig和Makefile配置

2.2.1 驱动上层目录识别驱动文件

在drivers/net/下的Kconfig和Makefile加入r8156-2.15.0的配置

[email protected]:/LINUX/#cd  drivers/net/
[email protected]:/LINUX/drivers/net/ #vim Makefile

在这里插入图片描述
在这里插入图片描述

2.2.2 驱动目录新建驱动Kconfig和Makefile

1、新建Kconfig

[email protected]:/LINUX/drivers/net/r8156-2.15.0# vim  Kconfig

在这里插入图片描述

博客链接:Kconfig内容总结附示例快速掌握

2、新建Makefile,因为自带的驱动Makefile中是本地编译内核模块的方式,代码如下,所以我们要全部注释掉
在这里插入图片描述
只加入内核模块编译的规则即可

在这里插入图片描述

博客链接:Makefile语法详细总结及示例解析

驱动目录文件:
在这里插入图片描述
50-usb-realtek-net.rules是直接放在linux系统/etc/udev/rules.d/下作为udev规则,方便usb网卡热拔插可以正常识别加载

2.3 .config配置

make ARCH=arm64 menuconfig

2.3.1 本驱动的config打开

1、按 / 进入搜索界面,查看8156的具体位置

在这里插入图片描述
在这里插入图片描述
2、进入改目录将该模块设置为m,即核外模块
在这里插入图片描述
在这里插入图片描述
3、usb网卡相关模块打开
因为本块板子是接到我们的usb HBA上的,所以usb相关的模块也一起打开,具体模块如下:
在这里插入图片描述

在这里插入图片描述

4、usb配置成host模式

在这里插入图片描述

在这里插入图片描述
5、保存.config

在这里插入图片描述

2.4模块编译及报错处理

1、直接交叉编译内核

make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- all

在这里插入图片描述

博客链接: 交叉编译linux内核实例总结

2、问题处理

[email protected]:/LINUX/#  vim include/uapi/linux/mdio.h

在这里插入图片描述
3、编译完成
在这里插入图片描述

2.5 模块安装及测试

将r8152.ko拷贝到板子上,若有相关依赖模块则一并拷入

[[email protected] /]# insmod  r8152.ko
[[email protected] /]# lsmod |grep r8152    
r8152                 204800  0

此时插上usb网卡,查看是不是可以正常识别到,注意要将50-usb-realtek-net.rules文件拷贝到/etc/udev/rules.d/

[[email protected] /]#ifconfig -a //查看所有的网卡设备

三、相关知识博客链接

博客链接:1、Makefile语法详细总结及示例解析

博客链接:2、Kconfig内容总结附示例快速掌握

博客链接: 3、交叉编译linux内核实例总结

版权声明
本文为[快乐的学习]所创,转载请带上原文链接,感谢
https://blog.csdn.net/Luckiers/article/details/126903241

Scroll to Top