Do you use your laptop in different network environments? At home? In the office? At a customers site?
If yes, the small package "netenv" might be useful for you. When booting your laptop it provides you with a simple interface from which you can choose the current network environment. The first time in a new environment, you can enter the basic data and save it for later reuse.
Netenv sets up a file containing variable assignments which describe the current environment. This can be used by the PCMCIA setup scheme, e.g. like the one that comes with Debian/GNU Linux and perhaps others.
The netenv data can be used for things like:
Netenv is available as Debian/GNU Linux package as well as tarball. It depends on dialog(1)
for the menu system. It is developed by Gerd Bavendiek
bav@rw.sni.de you may get it at
http://www.uni-bielefeld.de/~portgym/net/netenv.html .
divine is an utility for people who use their machines in different networks all the time. "The idea is this:
divine
starts a thread that injects fake arp requests into the network. The thread will try again up to three times, pausing 1 second between retries. If the last try times out again, the thread will print an error message, leave the interface in the original state and exit cleanly.
divine
will symlink one of them to /etc/resolv.conf for you.
zsh
):
export http_proxy="http://`</etc/proxy`/"
The point about divine
in contrast to other solutions is that other solutions normally use ping
or something like that. divine
can check a large number of networks instantaneously, assuming that the machines you ping answer within one second (.4 seconds are normal on Ethernets). And pinging an unknown address will do an arp request anyway, so why not do an arp request in the first place?"
Mobile IP allows a portable computer access to the Internet from different networks without changing its IP address.
HUT Mobile IP is a dynamical, hierarchical Mobile IP system for Linux operating system. The implementation enables a hierarchical model for IP mobility, thus decreasing the location update times as a mobile host moves. Dynamics system has been deisgnet Wireless LAN technology in mind, and the system has optimized functionality for mobility in WLAN.
Sources: Kenneth E. Harker and Dag Brattli
DHCP and BootP are also useful for working in different environments. Please see the DHCP-HOWTO and BootP-HOWTO.
The pppd
command can be configured via several different files: pppd file /etc/ppp/<your_options>
.
You may even choose to do your configuration by editing the /etc/init.d files manually.
How can I have separate PCMCIA device setups for home and work? This is fairly easy using PCMCIA scheme support. Use two configuration schemes, called home
and work
. For details please read the according chapter in the PCMCIA-HOWTO by David Hinds.
From
http://www.mjedev.demon.co.uk/index.html <Martin J. Evans martin@mjedev.demon.co.uk> I have taken this recommendation: The first point to note is that init
will take any arguments of the form name=value
as environment variable assignments if they are not recognized as something else. This means you can set environment variables from the LILO boot prompt before your rc scripts run. I set the LOCATION
environment variable depending on where I am when I boot Linux. e.g.
LILO: linux LOCATION=home
LILO: linux LOCATION=work
LILO: linux
LOCATION
means the same as LOCATION=home
(i.e. my default). Instead of typing LOCATION=place
each time you boot you can add an entry to your /etc/lilo.conf file and use the append instruction. e.g.
# Linux bootable partition for booting Linux at home # image = /vmlinuz root = /dev/hda3 label = linux read-only # Linux bootable partition config ends # # Linux bootable partition for booting Linux at work # image = /vmlinuz root = /dev/hda3 label = work read-only append="LOCATION=work" # Linux bootable partition config ends
Armed with the facility above, you can now edit the relevant rc scripts to test ENVIRONMENT before running ifconfig
, setting up route
etc.
There are several other bootloaders which are often overlooked. Besides LILO, have a look at loadlin, CHooseOS (CHOS) (not GPL), GRand Unified Bootloader (GRUB), System Commander and take a look at ftp://metalab.unc.edu/pub/Linux/system/boot/loaders/. The NT boot loader or OS/2 boot loader may even be used.
From Steve <steve@cygnet.co.uk> I got a configuration for X windows with an external monitor: Note that I have introduced a neat trick! For my nice 17" monitor I start X with no options and get the default 16-bit 1152x864 display - but when using the LCD screen I specify a 15-bit display (startx -- -bpp 15
) and get the correct 800x600 resolution automatically. This saves having to have two XConfig files.
A short introduction about how to setup email on a laptop used at home (dial-up) and work (ethernet) by Peter Englmaier <ppe@pa.uky.edu>:
As a laptop user, I have special demands for my email setup. The setup described below, enables me to:
elm
or the simple mail
command.The configuration is based on sendmail
, fetchmail
, and a remote pop account for email.
This is the most complicated part. Having installed the sendmail-cf
package, I created a file named /usr/lib/sendmail-cf/laptop.mc:
divert(-1) include(`../m4/cf.m4') define(`confDEF_USER_ID',''8:12'') define(`confBIND_OPTS',`-DNSRCH -DEFNAMES') define(`confDOMAIN_NAME',''pa.uky.edu'') <---- here you define your domain OSTYPE(`linux') undefine(`UUCP_RELAY') undefine(`BITNET_RELAY') define(`SMART_HOST',`server1.pa.uky.edu') <---- there we send outgoing email define(`LUSER_RELAY',`server1.pa.uky.edu') <---- there we send mail to users my laptop does not know MASQUERADE_AS(pa.uky.edu) <---- again the domain, we want to be seen as FEATURE(allmasquerade) FEATURE(nouucp) FEATURE(nodns) FEATURE(nocanonify) FEATURE(redirect) FEATURE(always_add_domain) FEATURE(use_cw_file) FEATURE(local_procmail) MAILER(procmail) MAILER(smtp) HACK(check_mail3,`hash -a@JUNK /etc/mail/deny') HACK(use_ip,`/etc/mail/ip_allow') HACK(use_names,`/etc/mail/name_allow') HACK(use_relayto,`/etc/mail/relay_allow') HACK(check_rcpt4) HACK(check_relay3)
This looks more complicated as it is. All it does is, that it redirectes outbound mail to server1 (SMART_HOST) and also mail for local users which are not known (LUSER_RELAY). That way, I can write email to my colleques without using their full email address. More important: the From line in my email points back to my MASQUARADE_AS domain and not directly to my laptop. If this where not the case, email returned with the reply button might not reach me. You must restart sendmail
for changes to take effect. Note: this configuration is for Redhat 5.2 systems. You may have to change some details.
Now, all what is needed is to generate the /etc/sendmail.cf file m4 laptop.mc >/etc/sendmail.cf
and to add all possible domain names my laptop should respond to in /etc/sendmail.cw:
# sendmail.cw - include all aliases for your machine here. laptop laptop.pa.uky.edu 128.17.18.30 guest1 guest1.somewhere.org
It is important to have all aliases in this file, otherwise sendmail
will not accept the mail (and will reply we don't relay to the sender). Finally, you must now test the setup by sending email, replying to mail for all possible configurations. Any missconfiguration can result in loss of email.
One method to get the email into your machine is through fetchmail
. Fetchmail periodically checks for new email at one or more remote mail servers. I use the following fetchmail configuration file (in my user home directory):
fetchmailrc
set postmaster "myusername" set daemon 900 poll pop.uky.edu with proto POP3 user "mypopusername" there with password "mypoppassword" is mylaptopusername here
Fetchmail will just get the the email and send it to sendmail
which will it deliver into your /var/spool/mail/$USER file.
On my work station I have the following .forward file:
me@pop.acount.edu,me@server1
Here server1 is the machine where I keep my mailbox. All email is send to the pop account to be picked up later by my laptop (using fetchmail
). However, when my laptop is connected via ethernet, I want my email to go directly to the laptop, instead of pop:
me@laptop,me@server1
In both cases, a backup of my email is send to server1 (where I also can read it, in case I cannot get my laptop). I keep/store all email on the laptop.
Switching is done by three script files and a crontab file (on the workstation):
forward_pop
#!/bin/sh echo "me@pop.acount.edu,me@server1" > ${HOME}/.forward
forward_laptop
#!/bin/sh echo "ppe@laptop,ppe@server1" > ${HOME}/.forward crontab ${HOME}/mycrontab ${HOME}/utl/check_laptop
check_laptop
#!/bin/sh if /usr/sbin/ping -c 1 laptop >/dev/null 2>&1 ; then : else # redirect mail to pop ${HOME}/utl/forward_pop sleep 10 if /usr/sbin/ping -c 1 laptop >/dev/null 2>&1 ; then # back to normal ${HOME}/utl/forward_laptop else # deactivate crontab check /bin/crontab -l | grep -v check_laptop >${HOME}/tmp/mycrontab.tmp /bin/crontab ${HOME}/tmp/mycrontab.tmp rm -f ${HOME}/tmp/mycrontab.tmp fi fi
mycrontab
# mycrontab 0,10,20,30,40,50 * * * * ${HOME}/utl/check_laptop
Each time I connect the laptop to the ethernet, I have to run forward_laptop
, and each time I disconnect I run forward_pop. In case I forget to run forward_pop
, the crontab job runs it for me less then 10 minutes later. To do all that automatically, I change the network script files on my laptop as follows:
/sbin/ifdown (this script runs, whenever a network device is stopped, new stuff between BEGIN and END)
... fi # BEGIN new stuff # turn off forwarding email mail ppe <<EOF turning off forwarding email device = ${DEVICE} hostname = `hostname` EOF if [ "${DEVICE}" = "eth0" -a "`hostname`" = "laptop" ]; then su -lc "ssh -l myusername server1 utl/forward_pop" myusername >& /dev/null fi # END new stuff ifconfig ${DEVICE} down exec /etc/sysconfig/network-scripts/ifdown-post $CONFIG
Note, that the script checks for the value of hostname. In case, I am connected to a foreign ethernet, my hostname and ip-address will be something else, e.g. guest1.
/etc/sysconfig/network-scripts/ifup-post (this script is run, whenever a network device is started)
# Notify programs that have requested notification do_netreport # BEGIN new stuff # check for email -- I'm using fetchmail for this if [ "${DEVICE}" = "eth0" -o "${DEVICE}" = "ppp0" ]; then su -lc fetchmail myusername >& /dev/null & fi # set clock if connected to ethernet, redirect email if [ "${DEVICE}" = "eth0" -a dquot;`hostname`" = "zaphod" ]; then ( rdate -s server1 ; hwclock --systohc --utc ) >& /dev/null & # forward email su -lc "ssh -l myusername gradj utl/forward_laptop" myusername >& /dev/null & fi # END new stuff exit 0
This step is completely optional. The above described sendmail configuration calls procmail
for each received email, but you could have called procmail
using the .forward
file (see the procmail man page). Procmail is a handy tool to block spam and to sort incomming email.
You need to setup a .procmailrc
file to use procmail
. See the man page for procmail, procmailrc, and procmailex (examples). My setup demonstrates, how to ignore certain email messages and split email-collections (digest) into pieces:
# -- mail filtering -- procmail is called by sendmail -- PATH=/bin:/usr/bin MAILDIR=$HOME/Mail LOGFILE=$MAILDIR/from # keep in mind: # use ":0:" when writing to a file # use ":0" when writing to a device, e.g. /dev/null, or send email # - make first a backup of *all* incomming email (but ignore mail tagged below) - :0 c: *! ^Sissa-Repro backup # - keep only last 50 messages :0 ic | cd backup && rm -f dummy `ls -t msg.* | sed -e 1,50d` # - delete email comming through the 'postdocs' email list, when # it is not of any interest :0 * ^From.*postdocs * ^From.*Ernst Richter /dev/null :0 * ^From.*postdocs * ^Subject.*card charge /dev/null # Split mailing list from the sissa preprint server into individual emails # - this is quite complicated :( I can flip through the list much # faster and ignore preprints which have uninteresting titles. Instead of # having to browse through the whole list, my mailer will just present a # list of papers. # 1. split it in individual messages :0 * ^From no-reply@xxx.lanl.gov | formail +1 -de -A "Sissa-Repro: true" -s procmail # 2. reformat messages a bit # 2.1. extract 'Title:' from email-Body and add to email-header as 'Subject:' :0 b * ^Sissa-Repro *! ^Subject TITLE=| formail -xTitle: :0 a |formail -A "Subject: $TITLE " -s procmail # 2.2. store in my incomming sissa-email folder. Here, we could # also reject (and thereafter delete) uninteresting 'Subjects' # we could also mark more interesting subjects as urgend or send a copy # to regular mail box. :0: * ^Sissa-Repro * ^Subject *! ^replaced with sissa
BTW, there is a tk
GUI tool to configure procmail
(I think it is called dotfiles
).
Using a Laptop in Different Environments by Gerd Bavendiek . This article appeared in the August, 1997 issue of the Linux Gazette. This is an excellent, short technical article describing an easy way to setup your Linux notebook to boot into different network and printing configurations, especially useful for those who use their machines at home as well as other locations such as in the office, at school, or at a customer site.
I don't have experience with this topic yet. So just a survey about some means of data transport and maintaining data consistency between different machines.
Wade Hampton wrote: "You may use MS-DOS formatted ZIP and floppy discs for data transfer. You may be able to also use LS120. If you have SCSI, you could use JAZ, MO or possibly DVD-RAM (any SCSI disc that you could write to). I have the internal ZIP for my Toshiba 700CT. It works great (I use automount
to mount it). I use VFAT on the ZIP disks so I can move them to Windows boxes, Linux boxes, NT, give them to coworkers, etc. One problem, I must SHUTDOWN to swap the internal CD with the ZIP."
Currently I had no time to check a SCCS system, such as RCS or CVS for this purpose.
The Coda File System is a descendant of the Andrew File System. Like AFS, Coda offers location-transparent access to a shared Unix file name-space that is mapped on to a collection of dedicated file servers. But Coda represents a substantial improvement over AFS because it offers considerably higher availability in the face of server and network failures. The improvement in availability is achieved using the complementary techniques of server replication and disconnected operation. Disconnected operation proven especially valuable in supporting portable computers http://www.coda.cs.cmu.edu/ .
This is a program written in Perl that will update your web pages by ftp from your local pages. This was originally written for updating Demon home-pages, but will work with other providers which provide direct FTP access to your web pages. I didn't check this for laptop purposes yet. You may get the program at http://www.alfie.demon.co.uk/wwwsync/ .
rsync
is a program that allows files to be copied to and from remote machines in much the same way as rcp
. It has many more options than rcp
, and uses the rsync remote-update protocol to greatly speedup file transfers when the destination file already exists. The rsync remote-update protocol allows rsync
to transfer just the differences between two sets of files across the network link.
I am not a computer security expert. Please read the Security-HOWTO for more information. I just collected some information below. Note, these means are just small steps to additional security, though I recommend that you use them.
LASG Please read Linux Administrator's Security Guide (LASG) - FAQ by Kurt Seifried.
antivir
RPM somewhere. Check the BIOS for an option to disable writing at the boot sector.
A cron-like program that doesn't go by time: anacron
(like "anac(h)ronistic") is a periodic command scheduler. It executes commands at intervals specified in days. Unlike cron
, it does not assume that the system is running continuously. It can therefore be used to control the execution of daily, weekly and monthly jobs (or anything with a period of n days), on systems that don't run 24 hours a day. When installed and configured properly, anacron
will make sure that the commands are run at the specified intervals as closely as machine-uptime permits.
hc-cron
This program is a modified version of Paul Vixie's <paul@vixie.com> widely used cron
daemon. Like the original program it runs specified jobs at periodic intervals. However, the original crond
relies on the computer running continuously, otherwise jobs will be missed. This problem is addressed by hc-cron
, that is indended for use on home-computers that are typically turned off several times a day; hc-cron
will remember the time when it was shut down and catch up jobs that have occurred during down time when it is started again. Felix Braun <fbraun@atdot.org> is the author of the programm, it is available at
http://metalab.unc.edu /pub/Linux/system/daemons/cron .
Due to the proliferation of cellular phones and walkmans it's not quite common in our days to take care of a quiet environment. Anyway I want to give some recommendations for the polite ones.
You may configure vi
with the flash
option, so it will use a flash in case of an error, instead of a bell.
When starting your laptop with PCMCIA-CS configured correctly, this will be shown by two high beeps. If you want to avoid this put CARDMGR_OPTS="-q"
into the PCMCIA configuration file, e.g. /etc/pcmcia.conf for Debian/GNU Linux.
For at least one laptop series, the Toshiba models, there seems to be a Linux package available to control the fan and other features.