FC2 Ethernet and Wireless settings

Kevin Wang rightsock at gmail.com
Wed Aug 11 19:24:18 UTC 2004


So my general modus operandi is to boot the laptop, suspend using the
/root/idle script, and resume.  Lid close is set to do nothing, so
there's really no other way to suspend.

Note that tihs script is highly customized for my environment, so it
may not fit yours.  But the ideas are all good, so feel free to pick
and choose the pieces you need/want.

IMPORTANT: I am running rh8 on this laptop, so the actual suspend
method will vary.  I currently cannot suspend, due to acpi not doing
the right thing in 2.4.

one last note before I paste in the script.  I also put in a "killall
-STOP mozilla-bin" into the acpi scripts, and triggered it off the lid
switch detection.  killall -CONT mozilla-bin afterwards.  mozilla
still has the insane bookmark code from netscape that writes out its
bookmark file EVERY MINUTE. keeping the disk spinning, plus eating up
of cpu from animated gif's, flash, etc.

   - Kevin

also available at http://rightsock.com/~kjw/Tech/idle.sh.txt to get
the tabs right.

#!/bin/sh

# usage: $0 [-f] [-n]
# -f = force. no network checks
# -n = not really. do everything but actual suspend

# presumption: eth0 is always the pcmcia.
# my config: builtin ethernet isn't insmod'ed by default, so the system
# just doesn't know it's there.
if ifconfig eth0 >/dev/null 2>&1 ; then

    # check if there is any pending network activity
    if [ " $1" = ' -f' ] ; then
        # -f is specified, skip the network checks
        echo 'Skipping network checks'
        shift 1
    else # no -f found; normal code path

        # check mailq
        MAILQ=`mailq -Ac`
        # rh6.2: while [ "$MAILQ" != 'Mail queue is empty' ] ; do
        # rh7.0: while [ "$MAILQ" != '/var/spool/mqueue is empty' ] ; do
        # rh8.0: while [ "$MAILQ" != '/var/spool/mqueue is empty
#       Total requests: 0' ] ; do
        # rh8.0 client mqueue: (yes, multiline. WHITESPACE IMPORTANT)
        while [ "$MAILQ" != '/var/spool/clientmqueue is empty
        Total requests: 0' ] ; do
            echo 'mail pending. press enter to retry, or -f to override'
            echo "$MAILQ"
            read LINE
            if [ "$LINE" = '-f' ] ; then break ; fi
            MAILQ=`mailq -Ac`
            done
        service sendmail stop

        # check for active tcp connections
        # ignore :25 connections, as the mailq test has that covered
        # ignore web, other 'pending close' states
        # ignore X11 connections. only thing I ever use is x2x
        NETSTAT="`netstat -n --inet 2>&1 | egrep -v '(:25
|TIME_WAIT|FIN_WAIT|CLOS|LAST_ACK|127.0.0.1:|:80 |:443 |:6000 )' `"
        while [ `echo "$NETSTAT" | wc -l` != 2 ] ; do
            echo 'network connections still active. press enter to
retry, or -f to override'
            # by default, only print out the filtered netstat
            echo "$NETSTAT"
            read LINE
            if [ "$LINE" = '-f' ] ; then break ; fi
            NETSTAT="`netstat -n --inet 2>&1 | egrep -v '(:25
|TIME_WAIT|FIN_WAIT|CLOS|LAST_ACK|127.0.0.1:|:80 |:443 |:6000 )' `"
            done
        fi # endif cmd line -f

    # shut down networking
    killall dhcpcd
    ifconfig eth0 down
    # sometimes the wired ethernet is there, but since it's not my
    # normal connection, it must've been temporary
    ifconfig eth1 >/dev/null 2>&1 && ifconfig eth1 down
    rmmod 3c59x
else
    echo 'No network; skipping checks'
    fi

# since I can't suspend with 2.4 acpi, additionally disable certain
# daemons because they eat cpu, and thus power
# lpd reads from disk every minute
service lpd stop
# fetchmail is how I get my mail. obviously useless if the network is down.
# PAUSE it only
killall -STOP fetchmail

# if I can suspend
if false ; then
    # eject card if possible
    #cardctl eject

    # report on battery condition
    apm

    # suspend
    if [ " $1" != ' -n' ] ; then
        sleep 2
        # -n not found; normal code path
        apm --suspend
    else # -n is specified, skip the actual suspend process
        echo 'Not really suspending...'
        fi

    # TODO: wait for eth0 to be up! else all below will fail

    fi

# if I can acpi low-power
if true ; then
    # enter low power state
    echo 4 >/proc/acpi/sleep

    echo "Press enter to revive"
    read

    echo "Getting new dhcp lease"

    # Work network is doubled, because sometimes the dhcp server
    # isn't responsive.
    # NOTE: you can press ctrl-c to skip over various networks
    # without interrupting this script
    for TRY in any Work Work any Work Work any Work Work
        do
        echo "Looking for $TRY network"
        /usr/local/etc/iwkey $TRY
        if dhcpcd -t 10 eth0 ; then break ; fi
        done

    fi

# communicate to the user that eth0 is up now
ifconfig eth0

# resume fetchmail
killall -CONT fetchmail

# kjw hack - I can't send mail directly from my laptop any more because
# of 1- dynamic addresses being blocked and 2- firewall at work, so
# sm-client starts the sendmail client, and an ssh-tunnel to my colo box,
# listening on 127.0.0.1:25.  This way I can locally queue messages for
# later delivery, yet still deliver through the colo, which is a trusted
# mail server.
#service sendmail start
service sm-client start

service lpd start

# immediately switch back into X
chvt 7

exit 0


On Wed, 11 Aug 2004 14:18:15 +1000, Peter Smith <pasmith at wbmpl.com.au> wrote:
> I would like to see Kevin's scripts too.  Is there anything on ifconfig,
> iwconfig and route for beginners?  Google helped me get this far, but I
> don't really know what I am doing :-).





More information about the fedora-list mailing list