Der wlan kill switch ist beim acer one nur eine Taste auf dem Keyboard und erzeugt keinen ACPI oder UDEV event und auch sonst nichts, womit man leicht Dinge triggern kann. Man muss also ein wenig Aufwand betreiben um den Schalter zu verwenden. Hier ist ein kleines Programm, das das Keyboard event device verwendet um ifup bzw. ifdown auf den schalter zu legen. Bei mir ist /dev/keyboard ein symlink zum event device (so etwas kann man zum beispiel mit der udev regel SUBSYSTEMS=="input", ATTRS{name}=="AT Translated Set 2 keyboard", SYMLINK+="keyboard" bewerkstelligen.). // kleines wlan-an-aus programm // http://felix.salfelder.org/misc/acer1wlan.c // abgeschrieben von // http://www.derkeiler.com/Mailing-Lists/securityfocus/focus-linux/2005-08/0055.html // 2009, GPL und so. #include #include #include #include #include #include #include #define EVDEV "/dev/keyboard" #define KEY_WLAN_OFF 214 #define KEY_WLAN_ON 213 #define IFUP "/sbin/ifup" #define IFDN "/sbin/ifdown" #define IFACE "wlan0" void handler (int sig) { printf ("\nexiting...(%d)\n", sig); exit (0); } int main( ) { struct input_event ev[64]; int fd; if ( fd = open( EVDEV, O_RDONLY ) == -1 ) { fprintf( stderr, "error opening keyboard\n" ); exit(4); } int c; char name[256] = "Unknown"; ioctl( fd, EVIOCGNAME (sizeof (name)), name); fprintf( stderr, "Reading From : /dev/keyboard (%s)\n", name); int i=11; while (i--) signal (i, &handler); int rd; int size = sizeof (struct input_event); while( 1 ) { if( ( rd = read( fd, ev, size * 64) ) < size ) { fprintf( stderr, "error reading event\n", rd, size ); exit( 1 ); } if ( ev[1].value != 1 || ev[1].type != 1) continue; switch( ev[0].value ){ case KEY_WLAN_ON: if( fork() == 0 ) { execl( IFUP, IFUP, IFACE, (const char *) NULL); } break; case KEY_WLAN_OFF: if( fork() == 0 ) { execl( IFDN, IFDN, IFACE, (const char *) NULL); } break; default: // fprintf( stderr, "jemand hat die taste %i gedrueckt\n", c); break; } } exit(1); } Dies nehme man und starte es via rcS oder rc.local (kompilieren geht mit cc). Hat man wie gewohnt in /etc/network/interfaces sein wlan0 geraet konfiguriert, dann sollte jetzt alles wie erwartet funktionieren. Es gibt auch X clients, die auf tastendruck warten und ggf befehle ausfuehren. Diese loesen aber das problem nicht, da sie meistens als user laufen und natuerlich auf X angewiesen sind... **Hinweis:** Unter Fedora 14 sollte der Killswitch out of the box funktionieren.