当前位置:网站首页 > 数据驱动管理 > 正文

st7735s驱动详解(st7735s驱动程序)



  • 命令:/usr/sbin/hwinfo
  • 名称
    hwinfo - 探测系统中的硬件
  • 用法
    hwinfo [选项]
  • 描述
    hwinfo 用于探测系统中存在的硬件。它可以用来生成系统概览日志,以便后续用于支持。
  • 选项
    注意,不带任何选项运行 hwinfo 大致相当于 ‘hwinfo --all --log=-’。
    • - -<硬件项目>
      此选项可以多次给出。用于探测特定的硬件项目。可用的硬件项目包括:
       
    • - -short
      仅显示摘要。将此选项与硬件探测选项结合使用。
    • - -listmd
      通常 hwinfo 不报告 RAID 设备。添加此选项以查看它们。
    • - -only DEVNAME
      此选项可以多次给出。如果添加此选项,则仅显示设备列表中与 DEVNAME 匹配的条目。请注意,您还必须指定 --<硬件项目> 以触发任何设备探测。
    • - -save-config SPEC
      将特定设备的配置存储在 /var/lib/hardware 下。SPEC 可以是设备名称、UDI 或 ‘all’。此选项必须与硬件探测选项一起给出。
    • - -show-config UDI
      显示特定设备的保存配置数据。
    • - -map
      如果磁盘名称已更改(例如,在内核更新之后),则打印磁盘名称映射列表。请注意,您必须在此之前已经使用了 --save-config,此功能才能工作。
    • - -debug N
      将调试级别设置为 N。调试信息仅显示在日志文件中。如果指定了日志文件,则调试级别将隐式设置为合理值(N 是各个标志的位掩码)。
    • - -verbose
      增加详细程度。仅与 --map 结合使用。
    • - -log FILE
      将日志信息写入 FILE。不要忘记还要指定 --<硬件项目> 以触发任何设备探测。
    • - -dump-db N
      转储硬件数据库。N 为 0 表示转储 /var/lib/hardware 中的外部数据库,1 表示转储内部数据库。
    • - -version
      打印 libhd 版本。
    • - -help
      打印用法。

  • 环境
    hwprobe 可以包含一个由 ‘+’ 或 ‘-’ 开头的探测标志的逗号分隔列表,以打开或关闭它们。要获取支持的标志的完整列表,请运行 ‘hwinfo -all’(注意:不是 ‘–all’)并查看输出的顶部。

hwinfo 还会查看 /proc/cmdline 以获取 hwprobe 选项。

  • 示例
    • 仅显示概览
      hwinfo --short --block
    • 显示特定磁盘
      hwinfo --disk --only /dev/sdb
    • 保存磁盘配置状态
      hwinfo --disk --save-config=all
    • 尝试 4 个图形卡端口以获取显示器数据(默认:3)
      hwprobe=bios.ddc.ports=4 hwinfo --monitor
    • 显示器检测运行视频 BIOS 以获取显示器数据;将完整的 BIOS 代码执行跟踪转储到日志
      hwprobe=bios.ddc.ports=1,x86emu=trace:dump:trace.only=0:dump.only=0 hwinfo --monitor --log=foo
    显示所有磁盘
    hwinfo --disk

1.1驱动类型

  • 内核模块:
    • 扩展Linux内核的功能
    • 允许内核提供对硬件的访问
    • 可以在运行时加载或卸载
  • 用户空间驱动程序:
    • 在用户空间中工作

  为了理解Linux如何处理硬件,首先必须了解“设备”和“接口”这两个术语之间的区别。用户、管理员甚至软件开发者经常会混淆这两个术语。本文采用以下定义:
● 设备:设备是指物理硬件,如PCI网卡、AGP图形适配器或USB打印机。
● 接口:接口是与设备相关联的软件组件。要使用物理硬件,需要通过软件接口进行访问。一个设备可以有多个接口。

  接口通常由驱动程序创建。在Linux中,驱动程序通常是可以加载到Linux内核中的软件模块。驱动程序可以被视为设备和其接口之间的“粘合剂”。设备驱动程序访问和使用设备。

  设备驱动程序有两种基本类型:
● 内核模块:可以通过添加内核模块来扩展Linux内核的功能。它们允许内核在运行时提供对硬件的访问,并且可以在运行时加载或卸载。
● 用户空间驱动程序:有些硬件需要额外的在用户空间中工作的驱动程序。这类硬件的例子包括打印机或扫描仪。
在这里插入图片描述


1.2内核设备驱动

  • 内核模块:
    /lib/modules/<kernel-version>/*/
  • 硬件驱动内核模块:
    /lib/modules/<kernel-version>/kernel/drivers/

   安装在/boot/目录中的内核支持广泛的硬件。除非你想测试实验性功能或驱动程序,否则通常不需要编译自定义内核。

  Linux内核的驱动程序和功能既可以编译进内核中,也可以作为内核模块加载。这些模块可以在系统运行期间稍后加载,而无需重新启动计算机。

  这对于系统启动时不必需的内核模块尤其如此。通过在系统启动后将其作为组件加载,可以保持内核相对较小。

  内核模块作为文件存储在/lib/modules/<内核版本>/目录的子目录中。

  硬件模块存储在/lib/modules/<内核版本>/kernel/drivers/目录中。

  模块通常仅与它们为之构建的内核版本一起工作,因此每安装一次内核更新,都会创建一个新目录。

  模块存储在具有.ko(内核对象)文件扩展名的多个子目录中。使用modprobe加载模块时,可以省略扩展名,而仅使用模块名称。

1.3设备驱动如何加载

  • initrd
  • systemd
  • udev
  • X Server
  • Manually

  用于自动加载内核模块的几种方法,特别是针对SUSE Linux Enterprise Server中设备驱动程序的加载方式:

● initrd:initrd是一个特殊的文件,由引导加载程序加载到内存中。从initrd中加载对访问根分区至关重要的重要设备驱动程序,例如SCSI主机控制器和文件系统驱动程序。

● systemd:某些systemd服务文件用于加载和设置硬件设备。例如,ALSA声音脚本用于加载声卡驱动程序。

● udev:用于加载内核模块。

● X服务器:虽然显卡驱动程序不是内核模块,但X服务器会加载特殊驱动程序以启用硬件3D支持。

● 手动加载:您可以使用modprobe命令从命令行或在脚本中手动加载内核模块。

1.4维护内核模块

  要从命令行管理模块,您可以使用以下命令:

  • lsmod:列出内核中当前已加载的模块,例如:
    在这里插入图片描述
    列表中包含模块名称、模块大小、模块使用次数以及哪些其他模块正在使用它的信息。

  • insmod <模块>:将指定的模块加载到内核中。模块必须位于/lib/modules/<版本号>/目录中。
    但是,我们建议您使用modprobe而不是insmod来加载模块。
  • rmmod <模块>:从内核中移除指定的模块。只有当没有进程正在访问与该模块连接的硬件或相应服务时,才能移除模块。但是,我们建议您使用modprobe -r而不是rmmod来移除模块。
  • modprobe <模块>:将指定的模块加载到内核中或将其移除(如果使用-r选项)。使用modprobe时,会考虑其他模块的依赖关系。modprobe还会读取/etc/modprobe.conf文件,并使用您可能已添加的任何自定义配置设置。
      如果/lib/modules/version/modules.dep文件(由depmod命令创建)存在,则可以使用此命令。该文件用于确定模块的依赖关系。
      modprobe的附加配置文件位于/etc/modprobe.d/目录中。modprobe会自动评估此目录中的所有文件。
      自内核版本2.2.x以来,kmod软件包确保使用modprobe自动加载运行操作中所需的模块,例如在访问CD-ROM驱动器时。


  • depmod:创建/lib/modules/version/modules.dep文件。该文件包含各个模块的依赖关系。当使用modprobe加载模块时,modules.dep文件确保加载它所依赖的所有模块。
      在SUSE Linux Enterprise Server上,depmod还会创建modules.aliases文件,modprobe使用该文件来确定需要为哪个设备加载哪个驱动程序。
  • modinfo <选项> <模块>:显示有关指定模块的信息(如许可证、作者和描述)。例如:
    在这里插入图片描述
  • modprobe的配置
      modprobe的配置主要涉及对内核模块的加载、卸载以及参数设置等操作,这些操作可以通过modprobe命令及其配置文件来实现。以下是对modprobe配置的详细解释:
    • modprobe命令
      modprobe命令用于智能地添加或移除Linux内核中的模块。它会自动处理模块的依赖关系,并根据需要加载或卸载相关模块。modprobe命令的基本语法如下:
      modprobe [选项] 模块名 [模块参数…]
      其中,常用的选项包括:
      -r:移除指定的模块。
      -l:列出所有可用的模块,或使用通配符匹配特定条件的模块。
      -v:显示详细的信息,包括模块加载或卸载的过程。
      -C:指定配置文件的路径,以覆盖默认的配置文件。






    • 配置文件
      modprobe的配置文件主要包括etc/modprobe.d/目录下的文件。这些文件用于指定模块的加载选项、别名、黑名单等。
      /etc/modprobe.d/:这个目录包含了多个配置文件,modprobe在加载模块时,会依次读取这些文件,并根据其中的配置来加载模块。

    • 配置指令
      modprobe的配置文件中可以包含多种指令,这些指令用于指定模块的加载方式、参数等。以下是一些常用的配置指令:
      • alias:为模块指定别名。这可以用于简化模块名称,或解决模块名称冲突的问题。
      • options:为模块指定参数。这些参数将在模块加载时传递给内核。
      • install 和 remove:这两个指令用于指定加载或卸载模块时执行的自定义命令。这可以用于执行一些额外的操作,如加载额外的依赖模块、设置设备参数等。
      • blacklist:将指定的模块列入黑名单,防止其被modprobe加载。这通常用于禁用与当前系统不兼容或存在问题的模块。

    • 示例
      以下是一些modprobe配置的示例:
      • 为模块指定别名:
        alias my-mod really_long_modulename
        这表示可以使用modprobe my-mod来加载名为really_long_modulename的模块。

      • 为模块指定参数:
        options module_name param1=value1 param2=value2
        这表示在加载名为module_name的模块时,将param1和param2参数分别设置为value1和value2。

      • 将模块列入黑名单:
        blacklist nouveau
        这表示将名为nouveau的模块列入黑名单,防止其被modprobe加载。


    • 注意事项
      在修改modprobe的配置文件之前,建议备份原始文件,以防止配置错误导致系统无法启动或硬件无法正常工作。
      modprobe的配置文件通常不需要手动编辑,因为大多数现代Linux发行版都使用systemd或其他服务管理器来管理内核模块的加载。但是,在某些情况下,手动编辑这些文件可能是必要的,例如禁用不兼容的模块或调整模块参数等。
      总之,modprobe的配置涉及多个方面,包括命令的使用、配置文件的编辑以及配置指令的设置等。通过合理配置modprobe,可以确保内核模块的正确加载和卸载,从而提高系统的稳定性和性能。



到此这篇st7735s驱动详解(st7735s驱动程序)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 虚拟机上安装打印机(虚拟机安装打印机驱动失败)2025-06-08 20:18:10
  • 打印控件如何安装(打印控件如何安装驱动)2025-06-08 20:18:10
  • 0bda:1a2b linux驱动(linux i2s 驱动)2025-06-08 20:18:10
  • linux ds18b20驱动(linux i2s 驱动)2025-06-08 20:18:10
  • 扬声器驱动程序(扬声器驱动程序有哪些)2025-06-08 20:18:10
  • 扬声器更新驱动程序(扬声器更新驱动程序怎么设置)2025-06-08 20:18:10
  • vga驱动怎么安装(vga驱动怎么安装到电视上)2025-06-08 20:18:10
  • 扬声器驱动器英文缩写(扬声器的驱动电路)2025-06-08 20:18:10
  • 扬声器驱动是哪个部件(扬声器驱动是哪个部件的)2025-06-08 20:18:10
  • ubuntu20安装qt(ubuntu20安装nvidia显卡驱动)2025-06-08 20:18:10
  • 全屏图片