Treiber unter FreeBSD
Veröffentlicht am: 21.01.2021 19:00FreeBSD lädt standardmäßig nicht alle möglichen Treiber, es muss angewiesen werden, die für unsere Hardware spezifischen Treiber zu laden.
Für eine Liste von ungeladenen Treibern können wir beispielsweise den folgenden Befehl verwenden:
root#: dmesg | grep "no driver attached"
[root@laptop]~#dmesg | grep "no driver attached"
pci12: <network> at device 0.0 (no driver attached)
pci0: <multimedia, HDA> at device 27.0 (no driver attached)
pci0: <serial bus, SMBus> at device 31.3 (no driver attached)
pci9: <base peripheral, SD host controller> at device 0.1 (no driver attached)
pci9: <mass storage> at device 0.2 (no driver attached)
Hier fällt auf: ein Audio-Chip (Multimedia, HDA), eine Netzwerkkarte, das WLAN in meinem Fall (Netzwerk), ein SMBus-Chipsatz (serieller Bus, SMBus) und ein SD-Kartenleser.
Laden der Treiber des SD-Kartenlesers
root#: sysrc kld_list+="mmc mmcsd sdhci"
Audio
Die gebräuchlichsten Audiotreiber sind standardmäßig seit 9.0 aktiviert. Wenn dies nicht der Fall ist, laden wir einen „Meta“ -Treiber, der alle Audiotreiber lädt, und wir schauen uns dann den an, der akzeptiert wird:
[root@laptop]~#kldload snd_driver
[root@laptop]~#cat /dev/sndstat
FreeBSD Audio Driver (newpcm: 64bit 2007061600/amd64)
Installed devices:
pcm0: <Intel 82801H High Definition Audio Controller> at memory 0xf6dfc000 irq 21 kld snd_hda [20080420_0052] [MPSAFE] (1p:1v/1r:1v channels duplex default)
In diesem Fall stimmen die snd_hda-Treiber überein. Dieser Treiber ist bereits seit der Version 9.0 standardmäßig im generischen Kernel enthalten, aber für eine ältere Version muss das Laden mit der alten Methode deklariert werden:
root#: sysrc kld_list+="snd_hda"
Oder, seit der 9.0, Hinzufügen seines Namens in der Variablen kld_list der Datei /etc/rc.conf.
Bluetooth
Um die Lautsprecher / Bluetooth-Headsets zu verwenden, müssen diese über das Paket virtual_oss übergeben werden. Das ganze können wir mit dem folgenden Befehl installieren:
root#: pkg install virtual_oss virtual_oss_ctl
SMBus
Wir laden und überprüfen ob der Treiber korrekt geladen wurde:
[root@laptop]~#: kldload ichsmb
[root@laptop]~#: dmesg | grep smbus
smbus0: <System Management Bus> on ichsmb0
Wir fügen dieses Modul in die Liste der Module hinzu, die automatisch geladen werden sollen:
root#: sysrc kld_list+="smbus"
ACPI-spezifische Anleitung
Sehr nützlich auf Laptops, es gibt ACPI-Module, die herstellerspezifisch sind. Hier ist die Liste der unter FreeBSD 11 verfügbaren Module:
Modulname | Beschreibung |
---|---|
acpi_asus.ko | Asus Laptop Extras |
acpi_dock.ko | Laptop Docking Station device driver |
acpi_fujitsu.ko | Fujitsu Laptop Extras |
acpi_hp.ko | ACPI extras driver for HP laptops |
acpi_ibm.ko | ACPI extras driver for IBM laptops |
acpi_panasonic.ko | ACPI hotkey driver for Panasonic laptops |
acpi_sony.ko | ACPI notebook controller driver for Sony laptops |
acpi_toshiba.ko | Toshiba HCI interface |
acpi_video.ko | ACPI Video Extensions driver |
acpi_wmi.ko | ACPI to WMI mapping driver (bei Bedarf von anderen selbst geladen) |
Um die Variable kld_load basierend auf unserer Hardware hinzuzufügen. Zum Beispiel für meinen IBM Laptop habe ich: acpi_ibm und acpi_video.
Energiesparmodus
Das spart die Batterie:
root#: echo "hw.pci.do_power_nodriver=3" >> /etc/sysctl.conf
Hinterlasse einen Kommentar
Auf der eigenen Website geantwortet? Sende eine Webmention!