diff options
author | John Fieber <jfieber@FreeBSD.org> | 1996-09-24 17:46:04 +0000 |
---|---|---|
committer | John Fieber <jfieber@FreeBSD.org> | 1996-09-24 17:46:04 +0000 |
commit | f285ed5bf873ce95f3601fe48451e440c0666ce6 (patch) | |
tree | ce0b63e894154819b94525980c5ab212f700aafd /en/tutorials/disklessx | |
parent | 173d5ff9c84ca65b43ac8f80ec2e7935afc85193 (diff) |
Notes
Diffstat (limited to 'en/tutorials/disklessx')
-rw-r--r-- | en/tutorials/disklessx/Makefile | 3 | ||||
-rw-r--r-- | en/tutorials/disklessx/disklessx.sgml | 264 |
2 files changed, 267 insertions, 0 deletions
diff --git a/en/tutorials/disklessx/Makefile b/en/tutorials/disklessx/Makefile new file mode 100644 index 0000000000..d1f593b516 --- /dev/null +++ b/en/tutorials/disklessx/Makefile @@ -0,0 +1,3 @@ +DOCS= disklessx.sgml + +.include "../../web.mk" diff --git a/en/tutorials/disklessx/disklessx.sgml b/en/tutorials/disklessx/disklessx.sgml new file mode 100644 index 0000000000..94a8b62c87 --- /dev/null +++ b/en/tutorials/disklessx/disklessx.sgml @@ -0,0 +1,264 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN" [ +<!ENTITY base CDATA "../.."> +<!ENTITY date "$Date: 1996-09-24 17:46:00 $"> +<!ENTITY title "Diskless X Server: a how to guide"> +<!ENTITY copyright " "> +<!ENTITY % includes SYSTEM "../../includes.sgml"> %includes; +]> +<html> +&header; + +<H3>By Jerry Kendall</H3> +<H3>(<a href="mailto:jerry@kcis.com">jerry@kcis.com</a>)</H3> + +<p>With the help of some 'friends' on the FreeBSD-hackers list, I have +been able to create a diskless X terminal... The creation of the X terminal +required first creating a diskless system with minimal utilities mounted +via NFS. These same steps were used to create 2 seperate diskless systems. +The first is 'altair.kcis.com'. A diskless X terminal that I run on my +old 386DX-40. It has a 340Meg hard disk but, I did not want to change it. +So, it boots from 'antares.kcis.com' across a ethernet. The second system +is a 486DX2-66. I setup a diskless FreeBSD (complete) that uses no local +disk. The server in that case is a Sun 670MP running +SunOS 4.1.3. The same setup configuration was needed for both.</p> + +<hr> +NOTE: I am sure that there is stuff that needs to be added to this. Please send me any comments.... +<hr> + +<h2>Creating the boot floppy (On the diskless system)</h2> + +<p>Since the network boot loaders will not work with some of +the TSR's and such that MS-DOS uses, it is best to create +a dedicated boot floppy OR, if you can, create an MS-DOS menu +that will (via the config.sys/autoexec.bat files) ask what +configuration to load when the system starts. The later is the +method that I use and it works great. My MS-DOS (6.x) menu is below.</p> +<pre> + ---- config.sys ---- + [menu] + menuitem=normal, normal + menuitem=unix, unix + [normal] + .... + normal config.sys stuff + ... + [unix] + ---- + + ---- autoexec.bat ---- + @ECHO OFF + goto %config% + + :normal + ... + normal autoexec.bat stuff + ... + goto end + + :unix + cd \netboot + nb8390.com + + :end + ----</pre> + +<h2>Getting the network boot programs (On the server)</h2> + +<p>Compile the 'net-boot' programs that are located in +/usr/src/sys/i386/boot/netboot. You should read the comments +at the top of the makefile. Adjust as required. !!!! make a +backup of the original in case it gets fobar'd !!! When the build +is done, there should be 2 MS-DOS executables, 'nb8390.com' and +'nb3c509.com'. One of these two programs will be what you need +to run on the diskless server. It will load the kernel from the +boot server. At this point, put both programs on the MS-DOS +boot floppy created earlier. + +<h2>Determine which program to run (On the diskless system)</h2> + +<p>If you know the chipset that your ethernet adapter uses, this is +easy. If you have the NS8390 chipset, or a NS8390 based chipset, +use NB8390.COM. If you have a 3Com 509 based chipset, use the +NB3C509.COM boot program. If you are not sure which you have, +try using one, if it says 'No adapter found', try the other. +Beyond that, you are pretty much on your own. + +<h2>Booting across the network</h2> + +<p>Boot the diskless system with out any config.sys/autoexec.bat +files. try running the boot program for your ethernet adapter.</p> +<pre> + My ethernet adapter is running in WD8013 16bit mode so + I run NB8390.COM + + C:> cd \netboot + C:> nb8390 + + Boot from Network (Y/N) ? Y + + BOOTP/TFTP/NFS bootstrap loader ESC for menu + + Searching for adapter.. + WD8013EBT base 0x0300, memory 0x000D8000, addr 00:40:01:43:26:66 + + Searching for server..</pre> + +<p>At this point, my diskless system is trying to find a machine to act +as a boot server. Make note of the addr line above, you will need this +number later. Reset the diskless system and modify your config.sys and +autoexec.bat files to do these steps automatically for you. Perhaps in +a menu. If you had to run 'nb3c509.com' instead of 'nb8390.com' the +output is the same as above. If you got 'No adapter found' at the +'Searching for adapter..' message, verify that you did indeed set the +compile time defines in the makefile correctly.</p> + +<h2>Allowing systems to boot across the network (On the + server)</h2> + +<p>Make sure the /etc/inetd.conf file has entries for tftp and bootps. +Mine are listed below:</p> +<pre> + ---- /etc/inetd.conf ---- + tftp dgram udp wait nobody /usr/libexec/tftpd tftpd + # + # Additions by who ever you are + bootps dgram udp wait root /usr/libexec/bootpd bootpd /etc/bootptab + ---- +</pre> +<p>If you have to change the /etc/inetd.conf file, send a HUP signal to +inetd. To do this, get the process ID of inetd with 'ps -ax | grep +inetd | grep -v grep'. Once you have it, send it a HUP signal. Do this +by 'kill -HUP <pid>'. This will force inetd to re-read its config file.</p> + +<p>Did you remember to note the 'addr' line from the output of the boot +loader on the diskless system???? Guess what, here is where you need it.</p> + +<p>Add an entry to /etc/bootptab (maybe creating the file). It should be +laid out identical to this:</p> + +<pre> + altair:\ + :ht=ether:\ + :ha=004001432666:\ + :sm=255.255.255.0:\ + :hn:\ + :ds=199.246.76.1:\ + :ip=199.246.76.2:\ + :gw=199.246.76.1:\ + :vm=rfc1048: + + The lines are as follows: + 'altair' the diskless systems name without the domain name. + 'ht=ether' the hardware type of 'ethernet'. + 'ha=004001432666' the hardware address (the number noted above). + 'sm=255.255.255.0' the subnet mask. + 'hn' tells server to send client's hostname to the client. + 'ds=199.246.76.1' tells the client who the domain server is. + 'ip=199.246.76.2' tells the client what it's IP address is. + 'gw=199.246.76.1' tells the client what the default gateway is. + 'vm=...' just leave it there... +</pre> +<p>NOTE: +****** Be sure to setup the IP addresses correctly, the addresses +above are my own......</p> + +<p>Create the directory '/tftpboot' on the server it will contain the +configuration files for the diskless systems that the server will +serve. These files will be named 'cfg.<ip>' where <ip> is the IP +address of the diskless system. The config file for 'altair' is +/tftpboot/cfg.199.246.76.2. The contents is:</p> + +<pre> + ---- /tftpboot/cfg.199.246.76.2 ---- + rootfs 199.246.76.1:/DiskLess/rootfs/altair + hostname altair.kcis.com + ---- +</pre> +<p>The line 'hostname altair.kcis.com' simply tells the diskless +system what its fully qualified domain name is.</p> + +<p>The line 'rootfs 199.246.76.1:/DiskLess/rootfs/altair' tells the +diskless system where its NFS mountable root filesystem is located.</p> + +<p>NOTE:!!!!! The NFS mounted root filesystem will be mounted READ ONLY.</p> + +<p>The hierarchy for the diskless system can be re-mounted allowing +read-write operations if required.</p> + +<p>I use my spare 386DX-40 as a dedicated X terminal...</p> + +<p>The hierarchy for 'altair' is:</p> + +<pre> + / + /bin + /etc + /tmp + /sbin + /dev + /dev/fd + /usr + /var + /var/run +</pre> + +<p>The actual list of files is:</p> + +<pre> + -r-xr-xr-x 1 root wheel 779984 Dec 11 23:44 ./kernel + -r-xr-xr-x 1 root bin 299008 Dec 12 00:22 ./bin/sh + -rw-r--r-- 1 root wheel 499 Dec 15 15:54 ./etc/rc + -rw-r--r-- 1 root wheel 1411 Dec 11 23:19 ./etc/ttys + -rw-r--r-- 1 root wheel 157 Dec 15 15:42 ./etc/hosts + -rw-r--r-- 1 root bin 1569 Dec 15 15:26 ./etc/XF86Config.altair + -r-x------ 1 bin bin 151552 Jun 10 1995 ./sbin/init + -r-xr-xr-x 1 bin bin 176128 Jun 10 1995 ./sbin/ifconfig + -r-xr-xr-x 1 bin bin 110592 Jun 10 1995 ./sbin/mount_nfs + -r-xr-xr-x 1 bin bin 135168 Jun 10 1995 ./sbin/reboot + -r-xr-xr-x 1 root bin 73728 Dec 13 22:38 ./sbin/mount + -r-xr-xr-x 1 root wheel 1992 Jun 10 1995 ./dev/MAKEDEV.local + -r-xr-xr-x 1 root wheel 24419 Jun 10 1995 ./dev/MAKEDEV +</pre> +<p>Don't forget to 'MAKEDEV all' in the 'dev' directory.</p> + +<p>My /etc/rc for 'altair' is:</p> + +<pre> + #!/bin/sh + # + PATH=/bin:/sbin + export PATH + # + # configure the localhost + /sbin/ifconfig lo0 127.0.0.1 + # + # configure the ethernet card + /sbin/ifconfig ed0 199.246.76.2 netmask 0xffffff00 + # + # mount the root filesystem via NFS + /sbin/mount antares:/DiskLess/rootfs/altair / + # + # mount the /usr filesystem via NFS + /sbin/mount antares:/DiskLess/usr /usr + # + /usr/X11R6/bin/XF86_SVGA -query antares -xf86config /etc/XF86Config.altair > /dev/null 2>&1 + # + # Reboot after X exits + /sbin/reboot + # + # We blew up.... + exit 1 +</pre> + +<hr> +<p>Any comments and ALL questions welcome....</p> + +<address> +Jerry Kendall<br> +<a href="mailto:jerry@kcis.com">jerry@kcis.com</a> +</address> + +&footer; +</body> +</html> |