Ubuntu 12.04 „Precise Pangolin“
Ubuntu 11.10 „Oneiric Ocelot“
Ubuntu 10.04 „Lucid Lynx“
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
In diesem Artikel geht es speziell um Tasten zum Ein-/Ausschalten der WLAN-Karte. Anleitungen für Multimedia-Tastaturen sind in einem eigenen Übersichtsartikel zu finden.
Viele Notebooks besitzen zusätzliche Spezial-Tasten, mit denen man bestimmte Funktionen des Gerätes ein- bzw. ausschalten kann. So ist z.B. bei manchen Laptops die WLAN- und Bluetooth-Nutzung erst nach Aktivierung modellspezifischer Tasten möglich. Während bei anderen Betriebssystemen die Hersteller die dazu notwendige Software vorinstallieren, muss man sich unter Linux etwas mehr Mühe geben.
Der Acer-Hotkey-Treiber unterstützt neben älteren Notebooks der Fa. Acer auch einige von Medion, Fujitsu Siemens und HP Compaq. Eine Liste der unterstützten Modelle ist auf der Homepage und beim SourceForge-Projekt rfswitch
(hier gibt es auch Hinweise zu alternativen Methoden) zu finden.
Alternativ kann acer-wmi ausprobiert werden. Nutzer einer 64-Bit Installation (amd64
) müssen dagegen acer-wmi verwenden, da das Kernelmodul acerhk
nur für 32-Bit Systeme (i386) geeignet ist. Ab Ubuntu 10.04 kann bei neuerer Hardware zuerst das in der Standardinstallation enthaltene Programm rfkill ausprobiert werden, bevor man sich mit der Installation des Kernelmoduls (siehe unten) beschäftigt:
sudo rfkill unblock all
Das ehemals vorinstallierte Kernelmodul ist ab Ubuntu 9.10 nicht mehr Bestandteil einer Standardinstallation. Stattdessen muss das Kernelmodul selbst kompiliert werden. Weiterhin muss bei jedem Kernelupdate der Vorgang zur Installation und Kompilierung des Moduls wiederholt werden. Um diesen Schritt zu automatisieren, kann man DKMS verwenden. Details sind der Anleitung Acer Hotkeys/DKMS zu entnehmen.
Zur Installation von Paketen wird vorausgesetzt, dass man bereits (z.B. via LAN) mit dem Internet verbunden ist. Eine WLAN-Nutzung ist erst nach Erledigung diverser Vorarbeiten möglich, die im folgenden erläutert werden.
Ab Ubuntu 12.04 ist das benötigte Paket acerhk-source nicht mehr in den offiziellen Paketquellen enthalten (PPA nutzen)
Hier wird ein speziell angepasster Quelltext benötigt, der über ein PPA [1] erhältlich ist. Anschließend muss das Kernelmodul wie bei älteren Ubuntu-Versionen übersetzt werden, aber die weiter unten beschriebene Anpassung des Kernel-Makefile entfällt. Eine konkrete Anleitung dazu ist im Forum zu finden.
Unter Ubuntu 10.04 muss man das Kernelmodul selbst kompilieren. Ein entsprechendes HowTo gibt es auch im Forum. Es werden die folgende Pakete benötigt [2]:
build-essential
acerhk-source (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install build-essential acerhk-source
sudo aptitude install build-essential acerhk-source
Außerdem wird das Paket linux-headers passend zur eigenen Kernel-Version und -Architektur (-generic
, -386
, -generic-pae
usw.) benötigt. Dieses Paket lässt sich über den folgenden Befehl installieren:
sudo apt-get install linux-headers-$(uname -r)
Vor Beginn muss man noch das Makefile des Kernels anpassen. In der Datei /usr/src/linux-headers-2.6.32-xy-.../Makefile muss mit Root-Rechten [5] die Zeile 561
auskommentiert werden. Die Zeile nach der Änderung:
# KBUILD_CFLAGS += -pg
Dann muss die Datei acerhk.tar.bz2 im Verzeichnis /usr/src entpackt werden:
cd /usr/src sudo tar -xjf acerhk.tar.bz2
Nun kann man in den entstandenen Ordner wechseln und das Kernelmodul kompilieren:
cd /usr/src/modules/acerhk sudo su make exit
Anschließend mit Root-Rechten das neue Kernelmodul kopieren und die Liste der Kernelmodule aktualisieren:
sudo cp acerhk.ko /lib/modules/$(uname -r)/kernel/ubuntu/ sudo depmod -A
Jetzt kann das Kernelmodul geladen werden (siehe unten). Weitere Hinweise finden sich in diesem Forumsbeitrag.
Die WLAN-Karte ist ausgeschaltet ("Radio disabled by HW RF Kill switch"
) und muss erst aktiviert werden. Dies zeigt in einem Terminalfenster [3] der Befehl:
iwconfig
Beispielausgabe (gekürzt):
eth1 radio off ESSID:off/any
Nun muss das Kernelmodul mit dem Befehl
sudo modprobe acerhk
geladen werden. Bei manchen Notebooks muss man zusätzliche Parameter angeben, z.B.
sudo modprobe acerhk force_series=MODELL verbose=1
Falls man acerhk mit falschen Parametern geladen hat, kann man es ohne weiteres mit dem Befehl
sudo modprobe -r acerhk
wieder entfernen und noch einmal probieren.
Diese Optionen sind aufgrund einer automatischen Erkennung oft nicht notwendig, variieren dann aber je nach Hersteller oder auch Modell. Daher muss unter Umständen im Quellcode der Datei acerhk.c (ab Zeile 960) nachgeschaut werden, wie das Notebook bzw. Modell bezeichnet wird und ob es
dritek
benutzt oder nicht (siehe auch rfswitch Laptop Matrix ).
hardwareabhängige Optionen | |
Modell | Befehlszeile |
Acer Aspire 5630 | sudo modprobe acerhk force_series=2020 usedritek=1 |
Acer Extensa 2902LMi (nur WLAN, kein Bluetooth) | sudo modprobe acerhk force_series=290 usedritek=1 |
Acer Travelmate 291 LMi | sudo modprobe acerhk force_series=290 usedritek=1 |
Acer Travelmate 292 LCi | sudo modprobe acerhk force_series=290 usedritek=1 verbose=1 |
Acer Travelmate 4000 | sudo modprobe acerhk force_series=4000 usedritek=1 |
FSC Amilo 1650(G) | sudo modprobe acerhk force_series=5020 autowlan=1 |
Medion MD96500/MD97000/MD97600/MD98000 | sudo modprobe acerhk force_series=95400 autowlan=1 |
Nun kann die WLAN-Karte durch einmaliges Drücken des Schalters aktiviert bzw. deaktiviert werden. Eine aktivierte, aber noch nicht verbundene Karte zeigt wiederum der Befehl iwconfig:
eth1 unassociated ESSID:off/any
Nur wenn kein Schalter vorhanden ist, wird mit dem Konsolenbefehl:
echo 1 | sudo tee > /proc/driver/acerhk/wirelessled
die WLAN-Karte aktiviert und mit
echo 0 | sudo tee > /proc/driver/acerhk/wirelessled
wieder "ausgeschaltet". Der eigentliche Verbindungsaufbau erfolgt prinzipiell immer mit dem NetworkManager (siehe dort).
Beim Ausschalten werden die Einstellungen für das WLAN "vergessen" und man steht dann beim nächsten Start ohne WLAN und Wireless LED da. Um das zu beheben, muss man folgendes machen:
Die hier angegebenen Parameter beziehen sich auf ein Travelmate 291 LMi und müssen an das eigene Modell angepasst werden!
Man öffnet in einem Editor [4] mit Root-Rechten [5] die Datei /etc/modules und fügt die Zeile
acerhk force_series=<MODELL> usedritek=1 verbose=1
an.
Damit bei Modellen mit LED die Wireless-LED immer angeschaltet wird und auch auf den Schalter reagiert, trägt man zusätzlich mit einem Editor und Root-Rechten in der Datei /etc/rc.local vor "exit 0" folgende Zeile ein:
echo 1 > /proc/driver/acerhk/wirelessled
Damit ist gewährleistet, dass die LED bei jedem Booten angeschaltet wird und das WLAN funktioniert.
Somit muss man sich nicht mehr bei jedem Start selbst darum kümmern, ob das Kernelmodul acerhk geladen ist oder nicht. Das geschieht nun automatisch. Wenn man das WLAN aus- bzw. anschalten will, kann man es bequem mit dem Schalter am Laptop machen. Wenn kein Schalter vorhanden ist, kann man es wie oben beschrieben manuell machen.
Alternativ kann man bis Ubuntu 10.10 das grafische Programm AcerHK GUI
ausprobieren. Das Python-Programm stellt nicht nur eine grafische Oberfläche zum Aktivieren von WLAN und Bluetooth zur Verfügung, sondern prüft beim Start, ob
das Kernelmodul acerhk.ko
vorhanden ist
lädt bei Bedarf das Kernelmodul (nur 32-Bit!) automatisch herunter (dazu muss man bereits mit dem Internet verbunden sein!)
führt anschließend ein
sudo depmod -A
aus und
trägt das Kernelmodul in /etc/modules ein
Diese Schritte können auch manuell (siehe oben) durchgeführt werden. Nach der Installation einen Neustart nicht vergessen!
Man lädt das Fremdpaket acerhkgui_0.7.2_all.deb herunter und installiert es [6].
Fremdpakete können das System gefährden.
Das Programm sollte anschließend unter "Anwendungen -> Systemwerkzeuge" oder "System -> Systemverwaltung" zu finden sein.
Statt /lib/modules/2.6.xy-zz-generic/kernel/ubuntu/extra/ (wie oben angegeben) verwendet AcerHK GUI /lib/modules/2.6.xy-zz-generic/extra/ als Ordner für acerhk
. Prinzipiell funktioniert beides, solange man dem Kernel via
sudo depmod -A
mitteilt, wo er das Kernelmodul finden kann.
Der Ausdruck xy-zz steht für die jeweils vorhandene Kernel-Unterversion, beispielsweise 2.6.32-24.
PPA mit dem an Ubuntu angepassten Quelltext
Vollständiges How-To im Forum für Ubuntu 10.04, 10.10 und 11.04
Kernelmodul unter Ubuntu 10.04 kompilieren
AcerHK GUI - grafische Oberfläche (Frontend) auf Basis von Python (benötigt GTK)
Pin 13 abkleben - Hardwarelösung (WLAN-Taste wird deaktiviert)
Broken Wireless Hardware Switch Fix - weiteres Bild zum Thema