tu-*_*duh 16 linux graphics-card drivers arm bus
我有一个运行 ArchLinux 的 ARM 设备。该设备似乎没有任何 PCI 总线,即使它有 USB。
[root@alarm ~]# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
[root@alarm ~]# lspci
pcilib: Cannot open /proc/bus/pci
lspci: Cannot find any working access method.
[root@alarm ~]#
Run Code Online (Sandbox Code Playgroud)
我想找到还有哪些其他芯片组。例如,我知道有支持 HDMI 的声卡和视频卡。这样的芯片不会放在 USB 线上。
我在 /proc/config.gz 上查看了当前在设备上运行的内核配置,它列出了以下内容:
#
# Bus support
#
CONFIG_ARM_AMBA=y
# CONFIG_PCI_SYSCALL is not set
# CONFIG_ARCH_SUPPORTS_MSI is not set
# CONFIG_PCCARD is not set
Run Code Online (Sandbox Code Playgroud)
我不知道AMBA是什么。彻底搜索 google 会在内核数据库中返回此条目,但没有实际解释,除非您不知道自己在做什么,否则不要使用它。
使用 lshw 也没有显示更多:
[root@alarm ~]# lshw
alarm
description: Computer
width: 32 bits
*-core
description: Motherboard
physical id: 0
*-memory
description: System memory
physical id: 0
size: 307MiB
*-cpu
physical id: 1
bus info: cpu@0
size: 1008MHz
capacity: 1008MHz
capabilities: cpufreq
*-network
description: Ethernet interface
physical id: 1
logical name: eth0
serial: 00:01:02:03:04:05
size: 10Mbit/s
capacity: 100Mbit/s
capabilities: ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
configuration: autonegotiation=off broadcast=yes driver=wemac driverversion=1.01 duplex=half ip=192.168.1.1 link=yes multicast=yes port=MII speed=10Mbit/s
[root@alarm ~]#
Run Code Online (Sandbox Code Playgroud)
这个内核中似乎没有加载模块:
[root@alarm ~]# lsmod
Module Size Used by
[root@alarm ~]#
Run Code Online (Sandbox Code Playgroud)
此外, hwinfo 似乎不可用:
[root@alarm ~]# pacman -Syu
:: Synchronizing package databases...
core is up to date
extra is up to date
community is up to date
alarm is up to date
aur is up to date
:: Starting full system upgrade...
there is nothing to do
[root@alarm ~]# pacman -S hwinfo
error: target not found: hwinfo
[root@alarm ~]# hwinfo
-bash: hwinfo: command not found
[root@alarm ~]#
Run Code Online (Sandbox Code Playgroud)
我需要知道这个系统上使用了什么芯片,以便我可以在正确的视频驱动程序模块中进行编译,我如何在没有工作 lspci 的系统上找出什么?
Law*_*ceC 12
这是您回答我的评论后的正式答复。我可能对其中的一些内容完全错误,欢迎更正。
我不确定英特尔何时开始将 PCIe(它是 PCI 的软件兼容扩展)合并到他们的 CPU 中。然而,在 x86 出现的大部分时间里,情况并非如此。PCI 实际上是整个“PC 平台”的一部分,其中包括许多其他标准和预期的东西,例如设备的标准 ISA 端口/I/O 地址/IRQ 等等。
回滚到 PCI 出现之前 - 基本上,除了尝试使用 ISAPNP 引入 PnP 标准的失败尝试之外,您并没有真正“探测”某些设备。您通常需要假设它们事先存在。当然,您可以测试寄存器以及什么不看看事情是否按预期响应,但是如果存在不同的设备,您就会遇到麻烦,可能导致挂起等。 确实没有“扫描”的方法ISA 总线。或者实际上任何其他不以标准化方式支持 PnP 概念的总线。
ACPI 应该解决的问题之一是提供一些信息表,告诉您内置了哪些 ISA 设备。甚至在 ACPI 之前,也会咨询 BIOS 来决定系统中有多少个软盘驱动器。这就是为什么在较旧的系统上,即使您没有连接软盘,如果您将 BIOS 设置为有一个驱动器,您也会在 Windows 中看到 A: 驱动器。
因此,您可能会问现代操作系统如何确定或与 PCI 芯片组连接。大多数情况下,芯片组作为 PCI 总线本身的一个设备出现。PCI 接口寄存器在 PC 平台中的已知标准位置“预先存在”。此处可以对 PCI 空间中的所有设备和功能插槽进行编程扫描。ISA 不存在这样的情况。如果设备与 ISA 位于总线上,则它的寄存器在加载/存储时响应,仅此而已。你不能真正与公共汽车本身交谈。
顺便说一下,PCI 芯片组甚至可能有能力控制“PCI-ISA”桥接器并将一些 PnP 功能带到 ISA(或现在,LPC)总线。不过,ISA 说你是靠自己的。
ARM 没有这样的标准平台。 反正还没有。ARM CPU 运行在许多独特的平台上。PCI、I2C 和 SDIO 总线(可能还有更多我不知道的)是其中一些总线之间的共性,但同样,有些 ARM 平台没有这些。ACPI 未在 ARM AFAIK 上实现,但在 Microsoft Surface RT 上除外。 如果不使用支持某些 PnP 概念的标准化总线,就真的没有办法“探查”任何东西。您需要在应该存在的硬件系统之外有先见之明。U-Boot 是一种常用的 ARM 引导加载程序,它需要支持并针对它要运行的特定平台而构建。这有点像一个标准,但即便如此,它”
一些简短的谷歌搜索显示该设备具有“Mali 400”视频芯片组。进一步搜索带来了Mali GPU 驱动程序源代码站点。我的 C 有点生疏,但我看着它。看起来你应该做的是,当你构建驱动程序时,告诉它它需要点击的地址以便与 GPU 对话。我真的没有太深入地沉浸在源代码中,但是如果它不是与总线对话,而只是直接从内存映射 I/O 加载/存储,我也不会感到惊讶。
不幸的是,我不认为所有 ARM 平台都有通用的答案。
归档时间: |
|
查看次数: |
36144 次 |
最近记录: |