By creating network profiles, you can easily select different network configurations at boot or at run time from the console.
Setting up the profiles
As root: Duplicate the sample profile at /etc/network-profiles/, and save it as a describing name:
cd /etc/network-profiles cp ./template home
Now edit this new profile (e.g. home) in your favorite editor (i.e. emacs) to fit your needs. Below is a very simple profile example to connect to a wireless network. Using the profile below is equal to using:
iwconfig eth1 essid home_wlan key F4DE214AA8 dhcpcd -s 192.168.1.105 eth1
And here the profile script:
DESCRIPTION="Wireless profile at home" # Network Settings INTERFACE=eth1 HOSTNAME=myhost # Interface Settings (use IFOPTS="dhcp" for DHCP) IFOPTS="dhcp" # Wireless Settings (optional) ESSID=home_wlan KEY=F4DE214AA8 IWOPTS="essid $ESSID key $KEY" DHCPCD_ARGS="-s 192.168.1.105"
Create as many different profiles as you need.
Last, be sure to comment out any entry in your rc.conf related to network interfaces other than "lo": the lines with eth0="", gateway="" and ROUTES=() should be commented, while:
Select profile at boot time using GRUB
Selecting a certain profile at boot time is handy, and is easily accomplished using GRUB. Edit the /boot/grub/menu.lst, duplicate your standard boot section and add NET=<profile name> to the kernel line e.g:
# (0) Arch Linux title Arch Linux (Standard) [/boot/vmlinuz26] root (hd0,0) kernel /vmlinuz26 root=/dev/sda3 ro vga=794 initrd /kernel26.img # (1) Arch Linux title Arch Linux (Wireless at home) [/boot/vmlinuz26] root (hd0,0) kernel /vmlinuz26 root=/dev/sda3 ro vga=794 NET=home initrd /kernel26.img
Select profile at boot time using dialog
You can select network profile using the dialog package. Simply edit /etc/rc.conf file and comment out the line:
Remind that there is a 5 secs timeout for the dialog menu, after which the first profile in alphabetical order is enabled.
Change profile at run time
If you want to change the profile after boot, simply type