On Fri, 2009-07-17 at 14:58 -0600, Tim Gardner wrote: > Johannes, > > Because the rfkill sysfs info moved around, I've been working on a > program for the Debian acpi-support package that can be used to perform > 2 operations; 1) discover if there are any wireless devices powered on, > and 2) toggle the states of all wireless devices (at the same time). > > git://kernel.ubuntu.com/rtg/rfkill Oh, I'm sorry, we already had http://git.sipsolutions.net/rfkill.git/, I really should have publicised that more (and wasn't around when you asked the question yesterday). > I'm a bit confused about what idx is in the event structure. Other then > ascending (though not monotonically), idx appears to have no real value > to user space. I see in the rfkill driver where its being assigned, and > it appears to be an rfkill instance number that describes a relationship > to a device. For example: Well, the index is just a unique identifier for each rfkill instance, like the network interface index for instance. Yes, it doesn't really have any value, but if you hot-plug rfkill instances (e.g. with a USB wireless device) then you may want to know it's now a new instance. > Here is the output before toggling and right after a boot: > > rtg@xps1330:~$ ./rfkill > bluetooth 0 UNBLOCKED soft:0 hard:0 > wlan 1 UNBLOCKED soft:0 hard:0 > bluetooth 2 UNBLOCKED soft:0 hard:0 > wlan 3 UNBLOCKED soft:0 hard:0 > UNBLOCKED > > After toggling to BLOCKED: > > rtg@xps1330:~$ sudo ./rfkill 1 > [sudo] password for rtg: > rtg@xps1330:~$ ./rfkill > wlan 1 SOFT_BLOCKED soft:1 hard:0 > bluetooth 2 SOFT_BLOCKED soft:1 hard:0 > wlan 3 HARD_BLOCKED soft:1 hard:1 > BLOCKED > > After toggling to UNBLOCKED: > > rtg@xps1330:~$ sudo ./rfkill 0 > rtg@xps1330:~$ ./rfkill > wlan 1 HARD_BLOCKED soft:0 hard:1 > bluetooth 2 HARD_BLOCKED soft:0 hard:1 > wlan 3 UNBLOCKED soft:0 hard:0 > bluetooth 4 UNBLOCKED soft:0 hard:0 > UNBLOCKED > > This laptop only has one wlan and one bluetooth device. Why the extra > index values? You mean, why the extra wlan? Well, if you poke sysfs (which our tool does) you'll notice that you have different instances, in my case (no laptop wireless button): # ./rfkill list 11: hci0: Bluetooth Soft blocked: no Hard blocked: no 12: phy3: Wireless LAN Soft blocked: no Hard blocked: no So I have 'hci0' and 'phy3', which is a cfg80211 device. You will, additionally, have something like 'acer-wireless' or 'hp-wireless' or whatever, which is the platform's rfkill. That's also why you see 'hard blocked' in your case, because your platform's soft-block is wired up to your wireless card's hard block. johannes
Attachment:
signature.asc
Description: This is a digitally signed message part