Lspci'siz Linux hakkında donanım bilgisi bulma


15

ArchLinux'u çalıştıran bir ARM cihazım var. Cihazda USB olmasına rağmen PCI veri yolu yok gibi görünüyor.

[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 ~]# 

Başka yonga setlerinin ne olduğunu bulmak istiyorum. Örneğin, HDMI özellikli bir ses kartı ve ekran kartı olduğunu biliyorum. Böyle bir çip bir USB hattına konulmazdı.

Şu anda /proc/config.gz adresinde aygıt üzerinde çalışan çekirdek yapılandırmasına baktım, bunu listeliyor:

#
# 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'nın ne olduğunu bilmiyorum. Google'ın kapsamlı bir araması, bu girişi çekirdek veritabanında döndürür, ancak ne yaptığınızı bilmiyorsanız kullanmamanız dışında, gerçek bir açıklaması yoktur.

Lshw kullanmak çok daha fazlasını göstermez:

[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 ~]# 

Bu çekirdekte yüklü modül yok:

[root@alarm ~]# lsmod
Module                  Size  Used by
[root@alarm ~]# 

Ayrıca, hwinfo mevcut görünmüyor:

[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 ~]# 

Doğru video sürücü modüllerinde derleyebilmem için bu sistemde hangi yongaların kullanıldığını bilmem gerekiyor, çalışma lspci'si olmayan bir sistemde ne olduğunu nasıl öğrenebilirim?


Birçok ARM SOC'nin aslında bir PCI veriyolu yoktur. Bu SOC'lerde dahili veri yolunun adının ne olduğundan veya standartlaştırıldığından emin değilim. lsmodMevcut modüllerinize bir göz atabilir ve göz atabilirsiniz. Ayrıca, bir configdosyada bilinen bir çalışma çekirdeğiniz varsa, bunu kullanarak başlamak ve aramak için kullanabilirsiniz, çünkü zaten doğru modüller seçili olacaktır. Guruplug için özel çekirdekler yapımında bana yardımcı oldu.
LawrenceC

Temelde hiçbir şey olmayan lsmod'un sonucunu ekledik. Bu genel bir ARM çekirdeğidir, bu nedenle belirli bir modül oluşturulmaz. Hangi modülleri inşa etmem gerektiğini bulmaya çalışıyorum Makineyi gereksiz modüller ile doldurmuyorum.
tu-Reinstate Monica-dor duh

cat /proc/cpuinfo
Michael Hampton

Bu bana sadece CPU bilgilerini verir , ses ve video yonga setleri gibi donanımın geri kalanını değil.
tu-Reinstate Monica-dor duh

Kullandığınız cihaz veya platform nedir?
LawrenceC

Yanıtlar:


10

İşte yorumlarımı yanıtladıktan sonra resmi cevabım. Bunlardan bazıları ve hoş geldiniz düzeltmeleri hakkında oldukça yanlış olabilirdim.

Intel'in CPU'larına PCIe'yi (PCI'nin yazılımla uyumlu bir uzantısı olan) dahil etmeye başladığında emin değilim. Bununla birlikte, x86'nın bulunduğu zamanın çoğunluğu için bu şekilde olmamıştır. PCI, standart ISA portları / I / O adresi / cihazlar için IRQ'lar ve bunun gibi şeyler gibi standart ve beklenen diğer şeyleri içeren tüm "PC platformunun" bir parçasıdır.

PCI etrafından biraz önce geri dönme - temel olarak, ISAPNP ile bir PnP standardını tanıtmaya yönelik kürtaj girişimi dışında, bazı cihazlar için gerçekten "soruşturma" yapmadınız. Genellikle bunların önceden var olduğunu varsaymanız gerekir. Tabii ki, sicilleri test edebilir ve işlerin beklendiği gibi yanıt verip vermediğini göremezsiniz, ancak farklı bir cihaz varsa, muhtemelen askıda kalma vb. İle sonuçlanırsa sorun yaşarsınız. ISA otobüsü. Ya da gerçekten PnP konseptlerini standart bir şekilde desteklemeyen diğer herhangi bir veri yolu.

ACPI'nin çözmesi gereken şeylerden biri, size hangi ISA cihazlarının yerleşik olduğunu söyleyen bazı bilgi tabloları sağlamaktı. ACPI'den önce bile sistemde kaç disket sürücü olduğuna karar vermek için BIOS'a danışılır. Bu nedenle eski sistemlerde, bağlı bir disketiniz olmasa bile, BIOS'un bir tane olduğunu söyleyecek şekilde ayarlanmışsanız, Windows'ta bir A: sürücüsü göreceksiniz.

Böylece, modern işletim sistemlerinin bir PCI yonga seti ile nasıl belirlediğini veya arayüz oluşturduğunu sorabilirsiniz. Çoğu zaman yonga seti PCI veriyolunun kendisinde bir cihaz olarak görünür. PCI arabirimi, PC platformunda bilinen standart konumlara "önceden var" değerini kaydeder. Burada PCI alanındaki tüm cihaz ve işlev yuvaları üzerinden programlı bir tarama yapmak mümkündür. ISA için böyle bir şey yok. Cihaz ISA ile veri yolundaysa, yüklendiğinde / depolandığında kayıtlar yanıt verir ve hepsi bu kadar. Gerçekten otobüsün kendisi ile konuşamazsınız.

Bu arada, PCI yonga seti bir "PCI-ISA" köprüsünü kontrol etme ve bazı PnP işlevlerini ISA (veya şimdi LPC) veriyoluna getirme yeteneğine sahip olabilir. Yine de, ISA kendi başınıza olduğunu söylüyor.

ARM için böyle bir standart platform yoktur. Yine de değil. ARM CPU'ların üzerinde çalıştığı birçok benzersiz platform var. PCI, I2C ve SDIO otobüsleri (ve muhtemelen daha fazla bilmiyorum), bazıları arasında bir ortak özelliktir, ancak yine, bunlardan hiçbirine sahip olmayan ARM platformları vardır. ACPI, Microsoft Surface RT dışında ARM AFAIK üzerinde uygulanmaz. Bazı PnP nosyonunu destekleyen standartlaştırılmış bir veriyolu ile çalışmadan, gerçekten hiçbir şey için "araştırmanın" bir yolu yoktur. Orada olması gereken donanım sisteminin dışında bilgi sahibi olmanız gerekir. U-Boot, üzerinde çalışılması planlanan platform için destek ve bu platform için geliştirilmesini gerektiren yaygın olarak kullanılan bir ARM önyükleyicisidir. Standart gibi bir şey, ama o zaman bile, '

Bazı kısa Google çalışanları, bu cihazın "Mali 400" video yonga setine sahip olduğunu ortaya koyuyor. Daha fazla araştırma Mali GPU sürücüsü kaynak kodu sitesini getirir . C üzerinde biraz paslıyım ama baktım. Görünüşe göre, sürücüyü oluşturduğunuzda, GPU ile konuşmak için vurması gereken adresleri söyleyin. Kendimi kaynağa çok fazla daldırmadım, ancak bir otobüste konuşmuyorsa, sadece doğrudan bellek eşlemeli G / Ç'den yükleme / depolama yapmak beni şaşırtmayacaktı.

Bu yüzden maalesef tüm ARM platformları için genel bir cevap olduğunu düşünmüyorum.


Bu çok derin bir cevap. AMBA'nın ne olduğunu biliyor musunuz? Çekirdek kaynağının dışında herhangi bir referans bulamadım. Otobüslerin altında, tho, yani bir tür otobüs olmalı.
tu-Reinstate Monica-dor duh


Tüm mimarilerde bir eşdeğer olmasını umuyordum, özellikle de yanlış olanları belirlerseniz cihaza zarar verebildiğiniz için! Belirli bir soruyu cevapladığı için şimdilik bunu kabul ediyorum, ancak bence bu şeylerin çekirdekler ve yazılımlarla çalışmasını sağlamak için nasıl bilgi bulacağınızla ilgili yeni bir soru olduğunu düşünüyorum.
tu-Reinstate Monica-dor duh

1

Deneyebilirsiniz hwinfo. Arch depolarında.

$ hwinfo --gfxcard
08: PCI 02.0: 0300 VGA compatible controller (VGA)              
[Created at pci.318]
Unique ID: _Znp.jjHn_gm8Jz5
SysFS ID: /devices/pci0000:00/0000:00:02.0
SysFS BusID: 0000:00:02.0
Hardware Class: graphics card
Model: "Intel VGA compatible controller"
Vendor: pci 0x8086 "Intel Corporation"
Device: pci 0x0162 
SubVendor: pci 0x1849 "ASRock Incorporation"
SubDevice: pci 0x0162 
Revision: 0x09
Driver: "i915"
Driver Modules: "drm"
Memory Range: 0xf7800000-0xf7bfffff (rw,non-prefetchable)
Memory Range: 0xe0000000-0xefffffff (ro,non-prefetchable)
I/O Ports: 0xf000-0xf03f (rw)
IRQ: 57 (6 events)
Module Alias: "pci:v00008086d00000162sv00001849sd00000162bc03sc00i00"
Driver Info #0:
Driver Status: i915 is active
Driver Activation Cmd: "modprobe i915"
Config Status: cfg=new, avail=yes, need=no, active=unknown

Primary display adapter: #8

1
Bu kadar basit olmasını isterdim. Soruyu güncellediniz. Görünüşe göre, depoyla ilgili bir sorunum yoksa, en azından benim için hwinfo kullanılamıyor. Ayrıca, archlinux.org/packages , ARM'yi değil, yalnızca i686 ve x86_64'ü listeler.
tu-Reinstate Monica-dor duh

Ahududu pi / raspian üzerinde denenmiş hwinfo ve lshw - ikisi de video adaptörünü göstermediği için görememeniz için iyi bir şans var.
Journeyman Geek

0

dmesg bazı bilgiler sağlayabilir

ve

cat /proc/devices
find /proc

lshw yeniden oluşturulmaya çalışmalı

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.