AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 775688
Accepted
jII
jII
Asked: 2024-05-02 21:58:16 +0800 CST2024-05-02 21:58:16 +0800 CST 2024-05-02 21:58:16 +0800 CST

lshw 的驱动程序名称和内核模块名称有什么区别?

  • 772

使用lshw查询我的 WiFi USB 适配器显示以下内容:

$ lshw -C network
  *-network                 
       description: Wireless interface
       physical id: 12
       bus info: usb@3:7
       logical name: ...
       serial: ...
       capabilities: ethernet physical wireless
       configuration: broadcast=yes driver=rtw_8822bu driverversion=6.5.0-28-generic firmware=N/A ip=... link=yes multicast=yes wireless=IEEE 802.11

适配器工作正常。然而,我很困惑driver=rtw_8822bu。据我所知,我的系统上没有调用内核模型rtw_8822bu.ko,相反,我有rtw88_8822bu.ko,

/usr/lib/modules/6.5.0-28-generic/kernel/drivers/net/wireless/realtek/rtw88/rtw88_8822bu.ko

它还显示使用lsmod:

$ lsmod | grep rtw
rtw88_8822bu           12288  0
rtw88_usb              24576  1 rtw88_8822bu
rtw88_8822b           229376  1 rtw88_8822bu
rtw88_core            356352  2 rtw88_usb,rtw88_8822b
mac80211             1720320  3 rtw88_core,rtw88_usb,rtl8xxxu
cfg80211             1323008  3 rtw88_core,mac80211,rtl8xxxu

问:为什么系统中的内核模块命名时会lshw显示。以前的名字是从哪里来的?driver=rtw_8822burtw88_8822bu

kernel
  • 1 1 个回答
  • 48 Views

1 个回答

  • Voted
  1. Best Answer
    Marcus Müller
    2024-05-02T22:16:24+08:002024-05-02T22:16:24+08:00

    模块是包含可以加载到内核中的函数的库。

    在编写模块时,您可以定义一个C数据struct包,它定义了驱动程序的名称,以及要调用的函数来检查是否有驱动程序可以处理的设备,当设备拔出时调用哪个函数,除其他事项外。

    然后,您在其中放置一个宏,将该数据结构注册为“驱动程序”的表示。因此,“驱动程序”实际上只是一个想法,包含一个名称和几个在特定情况下调用的函数(例如当您想要设置或拆除设备的功能时)。

    所以,这是你的驱动程序的数据结构:

    static struct usb_driver rtw_8822bu_driver = {
        .name = "rtw_8822bu",
        .id_table = rtw_8822bu_id_table,
        .probe = rtw8822bu_probe,
        .disconnect = rtw_usb_disconnect,
    };
    

    看到里面的“.name =”了吗?这 就是定义驱动程序名称的地方。

    以下是它在模块中注册为驱动程序的方式:

    module_usb_driver(rtw_8822bu_driver);
    

    您可以根据需要在单个模块中包含任意多个驱动程序,前提是每个驱动程序都有不同的名称。并且模块的名称没有必要与驱动程序的名称相同。您可以调用一个模块,drivers_for_webcams.ko并且它可以包含realtek_ssd_controller_driver1through realtek_ssd_controller_driver98,并且不会有任何问题;驱动程序名称 == 模块名称的假设是完全错误的。

    • 4

相关问题

  • /proc/net/wireless 如何是 /proc/net/dev 的“克隆”?

  • Linux Mint 内核损坏

  • Linux 内核开发人员如何处理数百万行代码的工作?他们是一种方法吗?[关闭]

  • 通过标签将根文件系统传递给linux内核

  • 以 root 用户身份访问文件系统

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve