Package: ifupdown
Version: 0.7~alpha5+really0.6.15
Severity: wishlist
Tags: patch

Hi,

This is a proposal for automatic ifupdown on changing rfkill status.

For this a simple udev rules is used, which calls a wrapper script
getting the network interface name for a specific rfkill device. Then
the wrapper script calls ifupdown with --allow=rfkill for all found
network interfaces.

Adding a "allow-rfkill wlan0" to the interfaces file will result in
fully automatic wlan connect by switching the hardware toggle available
in most modern notebooks.

-- Sebastian

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (500, 'testing'), (100, 'unstable'), (50, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.1.0-rc7-amd64 (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages ifupdown depends on:
ii  libc6      2.13-21  
ii  lsb-base   3.2-28   
ii  net-tools  1.60-24.1

ifupdown recommends no packages.

Versions of packages ifupdown suggests:
ii  iproute          20110629-1 
ii  isc-dhcp-client  4.1.1-P1-17
ii  ppp              2.4.5-5    

-- no debconf information
# run ifupdown for each wlan rfkill change
ACTION=="change", ENV{RFKILL_TYPE}=="wlan", SUBSYSTEM=="rfkill", \
RUN+="/usr/local/sbin/ifupdown-rfkill %S %p $env{RFKILL_STATE}"
#!/bin/sh
CHANGE=$3
SYSFS=$1
DEVICE=$SYSFS$2

if [ -e $DEVICE ] ; then
	while [ $DEVICE != $SYSFS ] ; do
		DEVICE=`dirname $DEVICE`

		if [ -d $DEVICE/net ] ; then
			for INTERFACE in $DEVICE/net/* ; do
				INTERFACE=`basename $INTERFACE`
				
				case $CHANGE in
					"1")     /sbin/ifup   --allow=rfkill $INTERFACE ;;
					"0"|"2") /sbin/ifdown --allow=rfkill $INTERFACE ;;
				esac
			done
		fi
	done
fi

Reply via email to