#!/usr/bin/perl -- -*-CPerl-*- use strict; $::Prog = "ipw_led"; sub usage { die ("usage: $::Prog interface\n"); }; sub main { my ($interface); my ($pid, $if, @ifs, @lines); my ($driver_inode, $ipw_inode, $devdir, @devdirs); defined ($interface = shift (@::ARGV)) || usage(); ($> == 0) || die ("Must run $::Prog as root\n"); ## See if $interface is an ipw2200 device $driver_inode = (stat ("/sys/class/net/$interface/device/driver/."))[1]; $ipw_inode = (stat ("/sys/bus/pci/drivers/ipw2200/."))[1]; if (defined ($driver_inode) && defined ($ipw_inode) && ($driver_inode == $ipw_inode)) { ## This is an ipw2200, so look for the bus device directory @devdirs = ; if (scalar (@devdirs) == 1) { ## Found the bus device directory $devdir = $devdirs[0]; ## Set the LED open (::FH, ">$devdir/led") && (print ::FH ("1")) && close (::FH); }; }; }; main();