3. Obtaining and installing Materhorn

Contents of this section

3.1 What is the latest version of Materhorn?

The latest version of kernel used for Materhorn at the time that this howto was written is 2.2.13.

3.2 May I legally run Materhorn?

The Materhorn may be used and distributed freely under GNU GPL but for details of any issues related please consult the many authors of the various components who should be considered more definative than this faq if any conflict arises. The main website for Materhorn's email address is: Matthew Grant

3.3 What about commercial use of Materhorn?

The Materhorn is freely distributed under GNU General Public License so please give credit where due to its authors, and almost certainly will remain to be so in future. Read 'COPYING' for a copy of GNU GPL.

3.4 Where can I obtain Materhorn?

The central site for the distribution of the Materhorn is: http://lrp.plain.co.nz/linux-router/dists/

Some other mirrors may be available please email the author of this document should you become aware of it to append to this list. :'))

3.5 How do I install the Materhorn?

First you need to determine what *.lrp packages that you are planning to use for the Materhorn. Note that in this case as in most cases of optimization less is more. This is also required since the number of packages that you can install on Materhorn is dependent on floppy space. I have taken the liberty of providing hyperlinks to the 'required' LRP files that you will need to build a base system from there you can always expand;-})
1- You need to create a new device in /dev/fd* directly related to the size of floppy you wish to make. This is a recommended size and i can't really comment when you will hit the wall if you go larger. There are limitations that you should be aware of however. Please see Booting Linux with higher density floppy disksThis document describes the why 4 how how very precisely. Anyways lets make a 1.722 Meg floppy device right now with the following command. It is important to mention that the b indicates block device. The 2 indicates the major number in common for all fd* devices in /dev . The 60 reflects a unique number to identify the device with the kernel.
#mknod -m660 /dev/fd0u1722 b 2 60
The above command makes a device called fd0u1722 with a major block number of 2 and a minor block number of 60.
2- We now need to use the superformat command that we obtained from the programs described as pre-install of Materhorn requirements. proceed at the command prompt with a:
#superformat -s /dev/fd0u1722
This will superformat the floppy disk to a size od 1.722 Meg for your use. You just completed the hardest part of the Materhorn install the rest comes much more quickly. 3- Now grab the lrp packages immediately below. Place them somewhere safe on your hard drive where ever that is;-)) My suggestions is use these as a template and remember.."MAKE COPIES".
3a- We need the linux operating system the brains of this operation. Get linux kernel here and place it in the safe place i mentioned on your hard drive. *REMEMBER: When downloading these files with Netscape you need to hold the key while clicking the hyperlinks to properly download the packages without corruption. With Internet Exploder i can't comment as i never use anything that i can't remove if i want to..
3b- Next we grab the 'root.lrp' this is a essential package. We grab the root.lrp here .
3c- Followed by the 'modules.lrp' which contains the modules we want and need to run some services and in order to have support for some of the network cards. We grab the modules.lrp here . I feel that is important to mention that i use exclusively 3c509s and 3c905s so i can't comment on other cards. so YMMV
3d- Now grab the 'etc.lrp' package this contains your file structure for the /etc as you would normally expect in linux or other *Nix based systems. You will not actually edit these files manually but will use the "Linux Router Project -- configuration menu""
3e- It is a nice feature to be able to produce logs and troubleshoot problems with help from the system. This is done with 'log.lrp' so lets grab log.lrp here At this time we have all the lrp packages we need for a base lrp using all static ip addresses. With the exception of the syslinux.cfg and syslinux.dpy which are supplied below..
3f- If we are going to need to deal with dynamic ip address assignments from our provider we need 'dhclient.lrp' so lets grab dhclient.lrp here as we need this package to deal with this issue.
3g- Now we need to edit 'syslinux.cfg' but first we need to grab syslinux.cfg here as well as syslinux.dpy for our bootup display. The one we need to alter is syslinux.cfg file so we will do this in vi.
3h- Proceed as follows with vi:
$cd my-materhorn-file-directory
$vi syslinux.cfg
# <- the pound sign is how i will indicate my comments while you are in vi
# move your cursor to line four which starts with 'append=' goto "ramdisk_size=" and change the numbers to.. # "ramdisk_size=6184" This is done by moving your cursor to the number immediately after the equal sign in # "ramdisk_size=" and enter 'dw' on your keyboard. This removed the number there. Then enter 'i' on your # keyboard and insert the numbers '6184' this is what is required there. Then using arrow key move over to # where the words "LRP=" are and change the string after the "LRP=" to "LRP=etc,log,modules" for a static # Materhorn or "LRP=etc,log,modules,dhclient" for a dynamically assigned based Materhorn. Remember in order # to remove words use a 'dw'. To insert words use a 'i' and to remove characters one at a time use a 'x' # changes are written to file using a key and then the letters 'w!' whereas to quit the vi editor you # need to do a 'q!' which is enough to get you through the day.
3i- Now lets mount the floppy drive so we can pour the packages over to it. do a:
$su -l root #mount -tmsdos /dev/fd0u1722 /mnt/floppy
#cp $my-materhorn-file-directory/* /mnt/floppy
#umount /mnt/floppy
3j- Your now ready to bootup your Materhorn! celebrate watch reruns of 'Matrix' and enjoy a cool one;-))
3k- boot your LRP floppy and watch the screen as the diagnostic messages swirl by..When you get the 'login:' prompt you need to enter 'root' as your username. Then hit the enter key for your password. Note: Always change this password immediately especially if on a network else you might be in for some surprises. 3l- Before you is a pleasing sight the "Linux Router Project -- configuration menu" you need to enter '1' for 'Network settings' and then '1' again for Network Configuration. This is the key area you should learn to love. Scroll down to the area called 'General Settings' this is where we begin the custom configuration stuff for you. Note that unlike 'vi' this script is edited much like a standard editor the only commands you need know is to write changes and in order to quit this file. Now i will show you how the variables that you need to change by example otherwise you should be able to leave everything else alone. Below is from a working Materhorn so it should work for you as well.

# Under General Settings heading

VERBOSE=YES
MAX_LOOP=10
IPFWDING_KERNEL=FILTER_ON
IPALWAYSDEFRAG_KERNEL=YES
CONFIG_HOSTNAME=YES
CONFIG_HOSTSFILE=YES
CONFIG_DNS=YES

# Under Interfaces heading - Pay attention here..

IF_AUTO="eth0 eth1"
IF_LIST="$IF_AUTO"
ALLIF_ACCEPT_REDIRECTS=NO
DEF_IP_SPOOF=YES
DEF_IP_KRNL_LOGMARTIANS=YES
BRG_SWITCH=NO
BRG_EXEMPT_PROTOS=""
#eth0_IPADDR=aaa.bbb.ccc.ddd
#eth0_MASKLEN=24
#eth0_BROADCAST=aaa.bbb.ccc.255
# Note that the last 3 lines if using static need to contain a valid ip address with the pound sign removed
#eth0_DEFAULT_GW=aaa.bbb.ccc.ddd
# Note the above line is the default gateway that you isp has assigned please check with them..or if dynamically assigned comment out as shown.
eth0_IP_SPOOF=YES
eth0_IP_KRNL_LOGMARTIANS=YES
eth0_IP_SHARED_MEDIA=NO
eth0_BRIDGE=NO
eth0_PROXY_ARP=NO
eth0_FAIRQ=NO
eth1_IPADDR=aaa.bbb.ccc.ddd
eth1_MASKLEN=24
eth1_BROADCAST=aaa.bbb.ccc.255
eth1_IP_SPOOF=YES
eth1_IP_KRNL_LOGMARTIANS=YES
eth1_IP_SHARED_MEDIA=NO
eth1_PROXY_ARP=NO
eth1_FAIRQ=NO

# under IP Filter setup heading

IPFILTER_SWITCH=firewall
SNMP_BLOCK=YES
SNMP_MANAGER_IPS="aaa.bbb.ccc.ddd"
EXTERN_IF="eth0"
# Note Under start of changes by Charles Steinkuehler for DHCP
# if you are using static your 'nearly' done if not use settings below..
EXTERN_DHCP=YES
IF_DHCP=$EXTERN_IF
EXTERN_DYNADDR=NO
# Under This is easy...use if you have a static IP
EXTERN_IP=0.0.0.0
# above line would for static have a real ip address

EXTERN_TCP_PORTS="0/0_ssh"
# Under Internal interface

INTERN_IF="eth1"
INTERN_NET=aaa.bbb.ccc.0/24
INTERN_IP=aaa.bbb.ccc.ddd
MASQ_SWITCH=YES

# Under Hostname

HOSTNAME=myhostname

# Under Hosts file

HOSTS0="$eth1_IPADDR $HOSTNAME.private.network $HOSTNAME mr rtr"

# Under Domain Search Order ...

DOMAINS="private.network"
DNS0="your-1st-dns-ip-addr"
DNS1="your-2nd-dns-ip-addr"

# REMEMBER YMMV

3m- now you need to 'save' your settings so do a to write your custom settings to file saying 'y' to writing changes to the file Then do a to quit from editing /etc/network.conf file.
3n-Type a 'q' to quit this screen. You will arrive back at a screen that under the 'b)' you see what is called 'Back-up ramdisk' "do that now!" saving changes to the floppy disk. answer all the prompts and when completed you will have your changes saved.
3o- now reboot your system however you prefer.. with a 'init 6' or a 'reboot' or whatever you decide.
3p- When you have successfully rebooted the Materhorn obtain the '#' prompt and do a 'ip addr show' this command will display exactly what interfaces have been recognized. You should see all your interfaces with the exact ip addresses that are mapped to the actual physical network device. To test that they are up and listening ready to work for you do a 'ping aaa.bbb.ccc.ddd' where the aaa.bbb.ccc.ddd is the actual ip address that you have assigned. This should do it! If you can ping your interfaces then first ping the gateway you provided in the /etc/network.conf and if that works as well try a real address by name out on the Big I. If you get a reply you are ready for action so surf to your hearts content from then on!
3q- REMEMBER TO CHANGE AND SAVE THE CHANGES TO YOUR PASSWORD TO THE FLOPPY AS THE DEFAULT IS BLANK.. you do this with a 'passwd' then follow the prompts.

3.6 Where do I get help?

First of all, read the READMEs included and not included but available at the download sites which should answer any questions you have regarding the building of the Materhorn. Then and only then either contact the author of this document (which is probably not the best idea due to this author is receiving 300 - 500 emails daily) or you might try they most likely have heard of the animal ;-) or the author of the Materhorn. It is suggested that if you request assistance please have details of the specific problem. Note exhaust as many possibilities as possible before asking for help and consult the search engines/archives to see if the answer is blowing in the cyberwind... :-)

3.8 Are there any versions for other operating systems than Linux?

AFAIK other than linux the only other confirmed version that Materhorn has been ported to is linux :-)) There is really no need now for any others ;-))


Next Chapter, Previous Chapter

Table of contents of this chapter, General table of contents

Top of the document, Beginning of this Chapter