aboutsummaryrefslogtreecommitdiff
path: root/en/tutorials/disklessx
diff options
context:
space:
mode:
authorJohn Fieber <jfieber@FreeBSD.org>1996-09-24 17:46:04 +0000
committerJohn Fieber <jfieber@FreeBSD.org>1996-09-24 17:46:04 +0000
commitf285ed5bf873ce95f3601fe48451e440c0666ce6 (patch)
treece0b63e894154819b94525980c5ab212f700aafd /en/tutorials/disklessx
parent173d5ff9c84ca65b43ac8f80ec2e7935afc85193 (diff)
Notes
Diffstat (limited to 'en/tutorials/disklessx')
-rw-r--r--en/tutorials/disklessx/Makefile3
-rw-r--r--en/tutorials/disklessx/disklessx.sgml264
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 &lt;pid&gt;'. 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.&lt;ip&gt;' where &lt;ip&gt; 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>