Treiber kompilieren: Unterschied zwischen den Versionen
Schard (Diskussion | Beiträge) |
Dirk (Diskussion | Beiträge) K kat, info, veraltet |
||
(8 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{veraltet}} | |||
{{hinweis|Das hier aufgeführte konkrete Beispiel zum Kompilieren des Wlan Treibers für den ''Intel Compute Stick'' kann als überholt angesehen werden. Der Treiber wurde zwischenzeitlich im AUR aufgenommen und schließlich ab Version 4.12 in den Kernel integriert. | |||
Für sehr aktuelle Hardware kann dieses Beispiel aber als eine nützliche Blaupause dienen.}} | |||
Bei dem ''Intel Compute Stick'' handelt es sich um eine Serie von Miniaturcomputern der Firma Intel. | |||
Um auf Geräten der ersten Generation den WLAN-Adapter in Betrieb nehmen zu können, | Um auf Geräten der ersten Generation den WLAN-Adapter in Betrieb nehmen zu können, musste der zugehörige Treiber selbst kompiliert werden. | ||
Bei dem Treiber handelt es sich um den [https://github.com/hadess/rtl8723bs rtl8723bs], welcher von GitHub bezogen werden kann. | Bei dem Treiber handelt es sich um den [https://github.com/hadess/rtl8723bs rtl8723bs], welcher von GitHub bezogen werden kann. | ||
=== Treiber bauen === | === Treiber bauen === | ||
Als Voraussetzung muss das Header-Paket für den aktuell laufenden Kernel installiert sein. | Als Voraussetzung für den Bau muss das Header-Paket für den aktuell laufenden Kernel installiert sein. Dies ist [https://www.archlinux.de/?page=PackageDetails;repo=core;arch=x86_64;pkgname=linux-headers linux-headers] für den <code>linux</code> Kernel oder [https://www.archlinux.de/?page=PackageDetails;repo=core;arch=x86_64;pkgname=linux-lts-headers linux-lts-headers] für den <code>linux-lts</code> Kernel. | ||
Ferner werden [https://www.archlinux.de/?page=PackageDetails;repo=extra;arch=x86_64;pkgname=git git], [https://www.archlinux.de/?page=PackageDetails;repo=core;arch=x86_64;pkgname=make make] und [https://www.archlinux.de/?page=PackageDetails;repo=core;arch=x86_64;pkgname=gcc gcc] benötigt. | |||
<pre> | <pre> | ||
cd /usr/src | cd /usr/src | ||
Zeile 21: | Zeile 23: | ||
Um den Treiber für den aktuellen Kernel nach jedem Upgrade neu bauen zu lassen, empfiehlt es sich, [https://www.archlinux.org/pacman/alpm-hooks.5.html ALPM Hooks] zu verwenden. | Um den Treiber für den aktuellen Kernel nach jedem Upgrade neu bauen zu lassen, empfiehlt es sich, [https://www.archlinux.org/pacman/alpm-hooks.5.html ALPM Hooks] zu verwenden. | ||
Im | Im Folgenden wird davon ausgegangen, dass sich ein geklontes Source-Code Repository unter <code>/usr/src/rtl8723bs</code> befindet. | ||
==== Build Skript anlegen ==== | ==== Build Skript anlegen ==== | ||
Zeile 35: | Zeile 37: | ||
PKGSUFFIX="${KSUFFIX}" | PKGSUFFIX="${KSUFFIX}" | ||
fi | fi | ||
KERNEL_INFO=($(pacman -Q linux${PKGSUFFIX})) | |||
KERNEL_VERSION=${KERNEL_INFO[1]}${KSUFFIX} | |||
cd /usr/src/rtl8723bs || exit 1 | cd /usr/src/rtl8723bs || exit 1 | ||
#git pull | #git pull | ||
make KVER= | make KVER=${KERNEL_VERSION} || exit 2 | ||
make install || exit 3 | make KVER=${KERNEL_VERSION} install || exit 3 | ||
</pre> | </pre> | ||
und machen es danach ausführbar | und machen es danach ausführbar | ||
Zeile 74: | Zeile 79: | ||
</pre> | </pre> | ||
Bei der Installation oder dem Upgrade der entsprechenden Kernel sollte das Modul nun automatisch gebaut werden. | |||
[[Kategorie:Hardware]] |
Aktuelle Version vom 10. Mai 2019, 10:18 Uhr
Dieser Artikel wurde als veraltet markiert, und sollte kontrolliert, und gegebenfalls korrigiert bzw. aktualisiert werden.
Hinweis: Das hier aufgeführte konkrete Beispiel zum Kompilieren des Wlan Treibers für den Intel Compute Stick kann als überholt angesehen werden. Der Treiber wurde zwischenzeitlich im AUR aufgenommen und schließlich ab Version 4.12 in den Kernel integriert. Für sehr aktuelle Hardware kann dieses Beispiel aber als eine nützliche Blaupause dienen.
Bei dem Intel Compute Stick handelt es sich um eine Serie von Miniaturcomputern der Firma Intel. Um auf Geräten der ersten Generation den WLAN-Adapter in Betrieb nehmen zu können, musste der zugehörige Treiber selbst kompiliert werden.
Bei dem Treiber handelt es sich um den rtl8723bs, welcher von GitHub bezogen werden kann.
Treiber bauen
Als Voraussetzung für den Bau muss das Header-Paket für den aktuell laufenden Kernel installiert sein. Dies ist linux-headers für den linux
Kernel oder linux-lts-headers für den linux-lts
Kernel.
Ferner werden git, make und gcc benötigt.
cd /usr/src git clone https://github.com/hadess/rtl8723bs cd rtl8723bs make make install
Treiber automatisch bauen lassen
Um den Treiber für den aktuellen Kernel nach jedem Upgrade neu bauen zu lassen, empfiehlt es sich, ALPM Hooks zu verwenden.
Im Folgenden wird davon ausgegangen, dass sich ein geklontes Source-Code Repository unter /usr/src/rtl8723bs
befindet.
Build Skript anlegen
Um den Kompilierungsprozess für den ALPM Hook zu automatisieren, legen wir das Shell-Skript /usr/local/bin/mkrtl8723bs.sh
an:
#! /bin/bash if [ -z "${1}" ]; then KSUFFIX="-ARCH" PKGSUFFIX="" else KSUFFIX="-${1}" PKGSUFFIX="${KSUFFIX}" fi KERNEL_INFO=($(pacman -Q linux${PKGSUFFIX})) KERNEL_VERSION=${KERNEL_INFO[1]}${KSUFFIX} cd /usr/src/rtl8723bs || exit 1 #git pull make KVER=${KERNEL_VERSION} || exit 2 make KVER=${KERNEL_VERSION} install || exit 3
und machen es danach ausführbar
chmod +x /usr/local/bin/mkrtl8723bs.sh
Falls das Git-Repository vor der Kompilierung automatisch aktualisiert werden soll, kann die Zeile #git pull
einfach einkommentiert werden.
ALPM Hook anlegen
Nun legen wir den entsprechenden ALPM Hook in der Datei /usr/share/libalpm/hooks/rtl8723bs.hook
an.
[Trigger] Type = Package Operation = Install Operation = Upgrade Target = linux [Action] Description = Updating rtl8723bs WIFI driver When = PostTransaction Exec = /usr/local/bin/mkrtl8723bs.sh
Beziehungsweise für den LTS Kernel in der Datei /usr/share/libalpm/hooks/rtl8723bs-lts.hook
an.
[Trigger] Type = Package Operation = Install Operation = Upgrade Target = linux-lts [Action] Description = Updating rtl8723bs WIFI driver When = PostTransaction Exec = /usr/local/bin/mkrtl8723bs.sh lts
Bei der Installation oder dem Upgrade der entsprechenden Kernel sollte das Modul nun automatisch gebaut werden.