Linux sistemindeki bağlı cihazları tanımlamak için kullanılan iki temel komut:
lspci
PCI veri yoluna bağlı olan tüm cihazları gösterir. PCI aygıtları anakarta direk bağlı olan disk kontrolcüleri, ekran kartları yada PCI slotlarına takılan bir expansion kartı olabilir.
lsusb
Sisteme bağlı olan USB listesini gösterir. Burada giriş aygıtlarını(klavye, mouse) yada usb bellekleri görebilirsiniz.
lspci ve lsusb komutlarının çıktısı işletim sistemi tarafından tanımlanan usb ve pci aygıtlarının bir listesini gösterir. Sistemin bu tanımları yapmasına rağmen henüz çalışır durumda olmayabilir. Çünkü ilgili cihazı kontrol edebilmek için bir yazılım bileşeni gerekir. Bu yazılım bileşenine “kernel module” denir. Bu resmi Linux çekirdeğinin bir parçası olabilir yada diğer kaynaklardan ayrı olarak eklenebilir.
Diğer işletim sistemlerinde olduğu gibi, donanım cihazlarıyla ilgili olan linux kernel modüllerine drivers denir. Linux driverları her zaman üreticiler tarafından sağlanmaz. Çoğu zaman bağımsız üreticiler tarafından yazılır. Geçmişte Windows üzerinden çalışan ürünlerin linux’de çalışmadığı görülmüştür. Ancak günümüzde Linux’un güçlü donanım desteği vardır.
Donanımla ilgili komutların çalışması için genellikle root yetkisine sahip kullanıcı gerekir. Bu yetkiye sahip olmayan kullanıcı için bu komutlar ya çalışmaz, yada sınırlı bilgili gösterir. Bu nedenle ya root ile oturum açmak yada sudo ile komutu çalıştırmak gerekir.
lspci komutunun çıktısındaki başlardaki hexadecimal sayılar PCI aygıtının unique adresidir. Bu komut -s ve -v seçenekleriyle çalıştırılırsa o aygıt ile ilgili ayrıntılı bilgilere ulaşılabilir.
root@DFX-RX:~# lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01)
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Device 1234:1111 (rev 02)
00:03.0 Unclassified device [00ff]: Red Hat, Inc Virtio memory balloon
00:05.0 SCSI storage controller: Red Hat, Inc Virtio SCSI
00:12.0 Ethernet controller: Red Hat, Inc Virtio network device
00:13.0 Ethernet controller: Red Hat, Inc Virtio network device
00:14.0 Ethernet controller: Red Hat, Inc Virtio network device
00:1e.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge
00:1f.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge
root@DFX-RX:~# lspci -s 00:01.2 -v
00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01) (prog-if 00 [UHCI])
Subsystem: Red Hat, Inc QEMU Virtual Machine
Flags: bus master, fast devsel, latency 0, IRQ 11
I/O ports at e080 [size=32]
Kernel driver in use: uhci_hcd
Kernel modules: uhci_hcd
root@DFX-RX:~#
benzer komutu lsusb komutu için -v ve -d seçenekleriyle yapabiliriz.
Bir linux sisteminde çok sayıda kernel modülleri bulunabilir. Bu modülleri görmek için aşağıdaki komut kullanılır:
lsmod
root@DFX-RX:~# lsmod
Module Size Used by
xt_nat 16384 2
xt_tcpudp 16384 8
veth 24576 0
xt_conntrack 16384 1
arc4 16384 0
md4 16384 0
sha512_ssse3 45056 0
sha512_generic 16384 1 sha512_ssse3
ipt_MASQUERADE 16384 3
cmac 16384 0
nls_utf8 16384 0
nf_conntrack_netlink 49152 0
cifs 958464 0
3. satır olan used by, ilgili modülün düzgün çalışması için gereken modüllerin sayısını gösterir. Çalışan bir işlem tarafından kullanılmadıkları sürece modülü veya ilgili modülleri kaldırmak için modprobe -r komutunu kullanabilirsiniz.