• 树莓派交叉编译USB转网卡驱动_incomplete


    背景:之前我用我的树莓派来组网测试,但是一个以太网口不够用,无线不能接入测试网,所以萌生了用空闲usb口来当网口的想法,JD一搜,买了个绿联的USB百兆网卡给我的树莓派用。
    但是店家说内核版本超5.3的可能不能用,我的都到15了

    pi@link:~ $ uname -a
    Linux link 5.15.32-v8+ #1538 SMP PREEMPT Thu Mar 31 19:40:39 BST 2022 aarch64 GNU/Linux
    
    • 1
    • 2

    本来打算自己编的,结果买来还是直接免驱,asix驱动早就有了。
    但我可能还是决定编译一下,就当学习了。

    先放个资料,还有这个
    店家给的驱动在这,包含了源码和makefile,readme等。芯片官方网站在这,也给出了驱动,版本对比如下:

    -rwxr-xr-x  1 sss sss 37580 Jun 29 22:54 AX88772C_772B_772A_760_772_178_LINUX_DRIVER_v4.20.0_Source.tar.gz
    -rwxr-xr-x  1 sss sss 39329 Jun 29 22:54 AX88772C_772B_772A_Linux_Driver_v5.0.0_Source.tar.bz2
    
    • 1
    • 2

    readme里都写明了编译驱动需要linux内核源码,树莓派内核下载在这,树莓派交叉编译工具下载在这,但是readme里说这些工具可能已经过时了,推荐使用apt安装,我是arm64的可以用这个:

    sudo apt-get install gcc-aarch64-linux-gnu

    使用交叉编绎的原因是,看别人的文档,好像要编挺长时间,所以就交叉编译提高下速度。
    顺便提一句,编译驱动有两种办法,一种是编译进镜像里,一种是编译出.ko然后用命令安装。我准备用第二种,这里开个坑,后续编进镜像里。对了,这里还有一个限制:

    Note: Please make sure the kernel is built with one of the “Support
    for Host-side, EHCI, OHCI, or UHCI” option support.

    树莓派必定启用了这个选项,因为他支持usb。
    官网给出的源码除了给出驱动的编译教程外,还多了个命令行工具ioctl的编译,用于改写eeprom的内容,比如mac地址。这次应该用不到这个。
    好了,前期准备差不多了,各种资料准备好后,就该决定怎么编了。需要的东西概括下包括:
    linux内核源码,交叉编译工具链,驱动源码。内核源码是同一套,但是另外两个是额外的两套,考虑到我的内核版本,我还是选个冒险的方案吧,apt安装最新的工具链,驱动源码也用官网的:

    Linux kernel 5.x/4.x/3.x/2.6.x DriverVersionRelease DateFile Size
    For all Android systems, Linux kernel 2.6.14 and later5.0.02022-02-2138.4 KB

    先看树莓派官方文档,交叉编译内核章节配置内核章节
    还有linux官方的Kernel Build System教程。

  • 相关阅读:
    自然语言处理学习笔记-lecture5-语言模型02
    CTF-php特性绕过
    外汇天眼:活久见!假冒平台见多了,假冒监管机构你见过吗?
    App常用接口
    SpringBoot开发之SpringJDBC
    【 Vue 路由 跳转 路由守卫 】
    VUE写后台管理(2)
    Python--随机出拳(random)--if判断--综合案例练习:石头剪刀布
    【go-zero】 Goland中的terminal与电脑terminal goctl版本 始终不一致问题
    Carbon教程之 基本语法入门大全 (教程)
  • 原文地址:https://blog.csdn.net/m0_37565736/article/details/125530619