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

19 篇文章 13 订阅

一、简介

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

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

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

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

1、新建Kconfig

root@test:/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、问题处理

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

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

2.5 模块安装及测试

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

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

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

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

三、相关知识博客链接

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

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

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

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值