当前位置:   article > 正文

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

linux usb网卡

一、简介

本文主要在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

root@test:/LINUX/# tar -jxvf r8152.53.56-2.15.0.tar.bz2 –C drivers/net
root@test:/LINUX/# mv drivers/net/r8152-2.15.0 drivers/net/r8156-2.15.0
  • 1
  • 2

2.2 驱动Kconfig和Makefile配置

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

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

root@test:/LINUX/#cd  drivers/net/
root@test:/LINUX/drivers/net/ #vim Makefile
  • 1
  • 2

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

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

1、新建Kconfig

root@test:/LINUX/drivers/net/r8156-2.15.0# vim  Kconfig
  • 1

在这里插入图片描述

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

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

在这里插入图片描述

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

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

2.3 .config配置

make ARCH=arm64 menuconfig
  • 1
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
  • 1

在这里插入图片描述

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

2、问题处理

root@test:/LINUX/#  vim include/uapi/linux/mdio.h
  • 1

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

2.5 模块安装及测试

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

[root@test /]# insmod  r8152.ko
[root@test /]# lsmod |grep r8152    
r8152                 204800  0
  • 1
  • 2
  • 3

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

[root@test /]#ifconfig -a //查看所有的网卡设备
  • 1

三、相关知识博客链接

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/991645
推荐阅读
相关标签
  

闽ICP备14008679号