У меня есть устройство ARM под управлением ArchLinux. Устройство не имеет шины 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 ~]#
Я хочу найти другие чипсеты. Например, я знаю, что есть звуковая карта и видеокарта с поддержкой 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
Я не знаю, что такое 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 ~]#
В этом ядре нет загруженных модулей:
[root@alarm ~]# lsmod
Module Size Used by
[root@alarm ~]#
Кроме того, кажется, что 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 ~]#
Мне нужно знать, какие чипы используются в этой системе, чтобы я мог скомпилировать в нужные модули видеодрайвера, как мне узнать, что это такое в системе без работающего lspci?
lsmod
и взглянуть на свои существующие модули. Также, если у вас есть известное работающее ядро сconfig
файлом, вы можете использовать его для начала - и поиска, потому что в нем уже выбраны правильные модули. Был полезен для меня в создании пользовательских ядер для Guruplug.cat /proc/cpuinfo
Ответы:
Вот мой официальный ответ после того, как вы ответили на мои комментарии. Я могу быть совершенно не прав насчет некоторых из них и приветствую исправления.
Я не уверен, когда Intel начала включать PCIe (который является программно-совместимым расширением PCI) в свои процессоры. Тем не менее, такого не было в большинстве случаев x86. PCI на самом деле является частью всей «платформы ПК», которая включает в себя ряд других вещей, которые являются стандартными и ожидаемыми, например, стандартные порты ISA / адреса ввода / вывода / IRQ для устройств и тому подобное.
Откат немного до появления PCI - в основном, за исключением неудачной попытки ввести стандарт PnP с ISAPNP, вы не «прощупывали» некоторые устройства. Как правило, вы должны предположить, что они существовали заранее. Вы можете, конечно, проверить регистры и что не увидеть, если все пойдет так, как ожидалось, но тогда у вас возникнут проблемы, если будет другое устройство, что может привести к зависаниям и т. Д. На самом деле не было способа «сканировать» автобус ISA. Или действительно любую другую шину, которая не поддерживает концепции PnP стандартизированным способом.
Одна из вещей, которую должен был решить ACPI, - предоставить некоторые таблицы с информацией о встроенных ISA-устройствах. Даже до ACPI будет проведен опрос BIOS, чтобы решить, сколько дисководов в системе. Вот почему в старых системах, даже если у вас нет подключенной дискеты, вы увидите диск A: в Windows, если у вас в BIOS установлено, что он есть.
Поэтому вы можете спросить, как современные ОС определяют или взаимодействуют с набором микросхем PCI. Чаще всего чипсет выглядит как устройство на самой шине PCI. Интерфейс PCI регистрируется как «предварительно существующий» в известных стандартных местах на платформе ПК. Здесь возможно программное сканирование всех устройств и слотов функций в пространстве PCI. Ничего подобного не существует для ISA. Если устройство подключено к шине ISA, оно отвечает на запросы регистров при загрузке / сохранении, и все. Вы не можете говорить с самим автобусом.
Кстати, набор микросхем PCI может даже иметь возможность управлять мостом «PCI-ISA» и передавать некоторые функции PnP на шину ISA (или теперь LPC). Сам по себе ISA говорит, что ты сам по себе.
Нет такой стандартной платформы для ARM. Во всяком случае, пока. Есть много уникальных платформ, на которых работают процессоры ARM. Шины PCI, I2C и SDIO (и, возможно, больше, о чем я не знаю) являются общим для некоторых из них, но, опять же, есть платформы ARM, которые не имеют ни одного из них. ACPI не реализован в ARM AFAIK, за исключением Microsoft Surface RT. Без работы со стандартизированной шиной, которая поддерживает некоторое представление о PnP, на самом деле невозможно «исследовать» что-либо. Вы должны иметь предвидение за пределами системы оборудования, которое должно быть там. U-Boot - это широко используемый загрузчик ARM, для которого требуется поддержка и сборка для конкретной платформы, на которой он предназначен. Это что-то вроде стандарта, но даже тогда
Краткий обзор Google показывает, что это устройство имеет видео чипсет "Mali 400". Дальнейший поиск приводит к исходному коду драйвера Mali GPU . Я немного заржавел на своем С, но я посмотрел на него. Похоже, что вы должны делать, когда вы собираете драйвер, сообщаете ему адреса, по которым он должен нажать, чтобы общаться с GPU. Я действительно не погружался в источник слишком глубоко, но меня не удивило бы, если бы он не говорил с шиной, а просто загружал / сохранял данные из подключенного к памяти ввода-вывода напрямую.
Так что я не думаю, что, к сожалению, есть общий ответ для всех платформ ARM.
источник
Вы можете попробовать
hwinfo
. Это в репо Арки.источник
Dmesg может предоставить некоторую информацию
и
lshw стоит попытаться восстановить
источник