[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Resolvconf -- a package to manage /etc/resolv.conf

On Sep 28, Manoj Srivastava (srivasta@debian.org) wrote:
 > On Fri, 26 Sep 2003 21:37:21 +0200, Thomas Hood <jdthood@yahoo.co.uk> said: 
 > > On Fri, 2003-09-26 at 20:25, Manoj Srivastava wrote:
 > >> I have a laptop that sometimes is on fixed ip wireless
 > >> networks. Since dhcp is not involved, there is nothing that updates
 > >> resolvconf, which could be pointing to an inaccurate set of
 > >> servers.
 > > If you bring the interface up with ifup then the solution is to put
 > > the nameserver address on a "dns-nameservers" line in the interface
 > > definition stanza.  E.g.,
 > 	I use that for my non-pcmcia interface.
 > > You must be referring to /etc/pcmcia/network.opts here.  Hmm, yes.
 > > If you are using the /etc/pcmcia/ stuff to configure PCMCIA network
 > > interfaces then this is a sensible thing to do.
 > 	Well, I've been using pcmcia way before there was hotplug, but
 >  I'm willing to learn.
 > > My own preference is to disable everything in
 > > /etc/pcmcia/network.opts and set things up so that hotplug does ifup
 > > and ifup configures the interface in the standard way.  Then I can
 > > use dns-nameservers lines for PCMCIA network interfaces too.
 > 	I would be interested in knowing how you set it up  equivalent
 >  to cardctl scheme allows me to set up pcmcia networks. Please mail e
 >  offlist if you wish.

I switched from using cardctl to hotplug earlier this year.  I didn't care to
use any of the packages that do automatic detection of the network, so I set
up a system just like cardctl scheme that allows me to choose which scheme to
use manually.  I no longer have pcmcia-cs installed at all.  I just execute
"hpscheme default" or "hpscheme bs9" and then plug the card in.  It works from
there (don't expect any beeps, though).

I put this in /etc/network/interfaces:

mapping hotplug
        script /usr/local/bin/map-scheme

iface default inet static
        address ppp.ppp.ppp.ppp
        gateway qqq.qqq.qqq.qqq

iface bs9 inet static
        address nnn.nnn.nnn.nnn
        gateway mmm.mmm.mmm.mmm

iface dhcp inet dhcp

The "mapping" stanza is what figures out which interface to associate with
eth0, i.e., default, bs9, or dhcp.  Here is the script


# Used with /etc/network/interfaces mapping function, which passes the
# interface name as the first argument.

/usr/local/bin/hpscheme get

Here is the script /usr/local/bin/hpscheme:

#!/bin/bash -e

# Set or display a scheme, used by my hotplug setup to choose network settings
# for PCMCIA card.  Similar to what 'cardctl scheme' did in old pcmcia-cs pkg.

[ -d ${DIR} ] || mkdir -p ${DIR}
[ -f ${FL} ] || echo default>${FL}

USAGE="USAGE: $(basename $0) {get|put <scheme>}"

if [ $# -lt 1 ]; then
    echo "$USAGE"
    exit 1
elif [ "$1" = "get" ]; then
    cat ${FL}
elif [ "$1" = "put" ]; then
    echo "Current scheme is '$(cat ${FL})'; setting to '$2'" && echo $2>${FL}
    echo "$USAGE"
    exit 1

You can also add dns-search and dns-nameservers lines to the stanzas in
/etc/network/interfaces if you are using resolvconf, or add scripts to
if-up.d/ and if-down.d/ to muck about with resolv.conf, or whatever you like.
I've done both, though I just switched to resolvconf (thanks, Thomas!).

In addition, of course, you need to set up hotplug, i.e., compile your kernel
with the appropriate options and drivers, etc.

Neil Roeth

Reply to: