Saya memiliki perangkat ARM yang menjalankan ArchLinux. Perangkat tampaknya tidak memiliki bus PCI, meskipun memiliki 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 ~]#
Saya ingin mencari chipset apa lagi yang ada. Misalnya, saya tahu ada kartu suara dan kartu video yang mampu HDMI. Chip seperti itu tidak akan diletakkan pada jalur USB.
Saya melihat konfigurasi kernel yang saat ini bekerja pada perangkat di /proc/config.gz, ia mencantumkan ini:
#
# Bus support
#
CONFIG_ARM_AMBA=y
# CONFIG_PCI_SYSCALL is not set
# CONFIG_ARCH_SUPPORTS_MSI is not set
# CONFIG_PCCARD is not set
Saya tidak tahu apa itu AMBA. Pencarian menyeluruh dari google akan mengembalikan entri ini dalam basis data kernel tetapi tanpa penjelasan yang sebenarnya, selain tidak menggunakannya jika Anda tidak tahu apa yang Anda lakukan.
Menggunakan lshw juga tidak menunjukkan lebih banyak:
[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 ~]#
Tampaknya tidak ada modul dalam kernel ini dimuat:
[root@alarm ~]# lsmod
Module Size Used by
[root@alarm ~]#
Terlebih lagi, hwinfo sepertinya tidak tersedia:
[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 ~]#
Saya perlu tahu chip apa yang digunakan pada sistem ini sehingga saya dapat mengkompilasi dalam modul driver video yang tepat, bagaimana cara mencari tahu apa yang ada pada sistem tanpa lspci yang berfungsi?
lsmod
dan melihat modul yang ada. Juga jika Anda memiliki kernel yang berfungsi dengan sebuahconfig
file, Anda dapat menggunakannya untuk mulai dengan - dan mencari-cari, karena modul yang benar sudah dipilih. Berguna bagi saya dalam membuat kernel khusus untuk Guruplug.cat /proc/cpuinfo
Jawaban:
Ini jawaban resmi saya setelah Anda menjawab komentar saya. Saya bisa saja salah tentang ini dan menerima koreksi.
Saya tidak yakin kapan Intel mulai memasukkan PCIe (yang merupakan ekstensi PCI yang kompatibel dengan perangkat lunak) ke dalam CPU mereka. Namun, belum seperti ini untuk sebagian besar waktu x86 telah ada. PCI benar-benar merupakan bagian dari keseluruhan "platform PC" yang mencakup sejumlah hal lain yang standar dan diharapkan, seperti port ISA standar / alamat I / O / IRQ untuk perangkat dan hal-hal seperti itu.
Kembalikan sedikit ke sebelum PCI ada - pada dasarnya, kecuali dengan upaya gagal untuk memperkenalkan standar PnP dengan ISAPNP, Anda tidak benar-benar "menyelidiki" untuk beberapa perangkat. Anda biasanya perlu mengasumsikan mereka ada sebelumnya. Anda bisa, tentu saja, mendaftar tes dan apa yang tidak untuk melihat apakah sesuatu merespons seperti yang diharapkan, tetapi Anda kemudian mendapat masalah jika ada perangkat yang berbeda, mungkin mengakibatkan hang, dll. Benar-benar tidak ada cara untuk "memindai" bus ISA. Atau benar-benar bus lain yang tidak mendukung konsep PnP dengan cara standar.
Salah satu hal yang seharusnya dipecahkan oleh ACPI adalah menyediakan beberapa tabel informasi yang memberi tahu Anda apa perangkat ISA yang terpasang. Bahkan sebelum ACPI, BIOS akan berkonsultasi untuk memutuskan berapa banyak floppy drive dalam sistem. Inilah sebabnya mengapa pada sistem yang lebih lama, bahkan jika Anda tidak memiliki floppy terhubung, Anda akan melihat drive A: di Windows jika Anda memiliki set BIOS untuk mengatakan ada satu.
Jadi, Anda mungkin bertanya bagaimana OS modern menentukan atau berinteraksi dengan chipset PCI. Sebagian besar waktu chipset muncul sebagai perangkat di bus PCI itu sendiri. Antarmuka PCI mendaftar "sudah ada" di lokasi standar yang diketahui di platform PC. Pemindaian terprogram melalui semua slot perangkat dan fungsi di ruang PCI dimungkinkan di sini. Tidak ada yang seperti itu untuk ISA. Jika perangkat berada di bus dengan ISA, itu akan merespons ketika dimuat / disimpan, dan hanya itu. Anda tidak dapat benar-benar berbicara dengan bus itu sendiri.
Kebetulan, chipset PCI bahkan mungkin memiliki kemampuan untuk mengontrol jembatan "PCI-ISA" dan membawa beberapa fungsi PnP ke bus ISA (atau sekarang, LPC). Pada sendiri, ISA mengatakan Anda sendiri, meskipun.
Tidak ada platform standar untuk ARM. Belum. Ada banyak platform unik yang dijalankan oleh CPU ARM. PCI, I2C, dan SDIO bus (dan mungkin lebih banyak yang saya tidak tahu) adalah kesamaan di antara mereka, tetapi sekali lagi, ada platform ARM yang tidak memilikinya. ACPI tidak diterapkan pada ARM AFAIK kecuali pada Microsoft Surface RT. Tanpa bekerja dengan bus standar yang mendukung beberapa gagasan PnP, tidak ada cara untuk "menyelidiki" apa pun. Anda harus memiliki pengetahuan di luar sistem perangkat keras yang seharusnya ada di sana. U-Boot adalah bootloader ARM yang umum digunakan yang membutuhkan dukungan untuk dan dibangun untuk platform spesifik yang seharusnya dijalankan. Itu sesuatu seperti standar, tetapi meskipun begitu, itu
Beberapa Googling singkat mengungkapkan bahwa perangkat ini memiliki chipset video "Mali 400". Pencarian lebih lanjut membawa situs kode sumber driver GPU Mali . Saya agak berkarat pada huruf C saya, tetapi saya melihatnya. Tampaknya apa yang seharusnya Anda lakukan adalah, ketika Anda membangun driver, katakan itu alamat yang perlu ditekan untuk berbicara dengan GPU. Saya benar-benar tidak membenamkan diri ke dalam sumber terlalu dalam, tetapi itu tidak akan mengejutkan saya jika tidak berbicara dengan bus, tetapi hanya memuat / menyimpan dari I / O yang dipetakan secara langsung.
Jadi saya tidak berpikir ada jawaban umum untuk semua platform ARM, sayangnya.
sumber
Anda bisa mencoba
hwinfo
. Ada di Arch repos.sumber
dmesg dapat menyediakan beberapa info
dan
lshw patut dicoba untuk dibangun kembali
sumber