<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.freebsdwiki.net/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.freebsdwiki.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Map7</id>
		<title>FreeBSDwiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://www.freebsdwiki.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Map7"/>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Special:Contributions/Map7"/>
		<updated>2026-05-03T09:21:34Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.18.0</generator>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Etc/fstab</id>
		<title>Etc/fstab</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Etc/fstab"/>
				<updated>2007-10-15T01:37:46Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''/etc/fstab''' is the system config file used to control how filesystem devices are automatically mounted and/or fscked.&lt;br /&gt;
&lt;br /&gt;
 ph34r# cat /etc/fstab&lt;br /&gt;
 # Device                Mountpoint      FStype  Options         Dump    Pass#&lt;br /&gt;
 /dev/ad4s1b             none            swap    sw              0       0&lt;br /&gt;
 /dev/ad4s1a             /               ufs     rw              1       1&lt;br /&gt;
 /dev/ad4s1e             /tmp            ufs     rw              2       2&lt;br /&gt;
 /dev/ad4s1f             /usr            ufs     rw              2       2&lt;br /&gt;
 /dev/ad4s1d             /var            ufs     rw              2       2&lt;br /&gt;
 /dev/ad6s1e             /data           ufs     rw              2       2&lt;br /&gt;
 /dev/acd0               /cdrom          cd9660  ro,noauto       0       0&lt;br /&gt;
 /dev/da4s1              /mnt/usbdrive   msdos   rw,noauto       0       0&lt;br /&gt;
&lt;br /&gt;
In the '''fstab''' file shown above, we can see entries for all the standard system partitions, as well as /cdrom and /mnt/usbdrive.  The first column in each entry denotes the actual device location, the second shows the filesystem directory the device will be mounted to, the third shows the type of filesystem used on the device, the fourth shows options to be followed, and the last two devices discuss [[dump]]ing and [[fsck]]ing of the device in question.&lt;br /&gt;
&lt;br /&gt;
Since the /cdrom and /mnt/usbdrive devices are set to &amp;quot;noauto&amp;quot; in options, they will not be automatically mounted at boot time.  Also note that they have &amp;quot;dump&amp;quot; and &amp;quot;pass&amp;quot; set to 0 and 0, so they will not be automatically backed up by the system &amp;quot;dump&amp;quot; command, nor will they be automatically [[fsck]]'ed at boot.&lt;br /&gt;
&lt;br /&gt;
Also note that while the normal partitions are marked &amp;quot;rw&amp;quot;, for ReadWrite, the CD-ROM is marked &amp;quot;ro&amp;quot; since it's a ReadOnly device, and the swap partition is marked &amp;quot;sw&amp;quot; since it's a swap partition, not a normal filesystem.&lt;br /&gt;
&lt;br /&gt;
For the devices listed in /etc/fstab, [[mount]] and [[umount]] can be used with no argument other than the name of the mountpoint - for instance on the system whose '''fstab''' is displayed above, '''mount /mnt/usbdrive''' and '''mount -t msdos /dev/da4s1 /mnt/usbdrive''' would both do the exact same thing.&lt;br /&gt;
&lt;br /&gt;
==Enabling Soft-Updates==&lt;br /&gt;
By enabling soft updates you can make your system faster and more reliable if there is a crash/power failure.&lt;br /&gt;
&lt;br /&gt;
 # tunefs -n enable /filesystem&lt;br /&gt;
&lt;br /&gt;
==Faster read performance==&lt;br /&gt;
You can get faster read performance by not writing to the files access time every time you read.  &lt;br /&gt;
Warning: Some people don't think that this is the right way to do things, run at own risk.&lt;br /&gt;
&lt;br /&gt;
In the options part of fstab for each disk add 'noatime'.&lt;br /&gt;
&lt;br /&gt;
See also: [[Partitioning Tips and Tricks]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Important Config Files|Fstab]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/CUPS</id>
		<title>CUPS</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/CUPS"/>
				<updated>2007-10-11T06:32:40Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CUPS (Common Unix Printing System)&lt;br /&gt;
This makes it easy to add printers to your system and programs such as firefox will pick up the printer list automatically.&lt;br /&gt;
&lt;br /&gt;
==Installing CUPS==&lt;br /&gt;
 # pkg_add -r cups&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
 # cd /usr/ports/print/cups&lt;br /&gt;
 # make install clean&lt;br /&gt;
&lt;br /&gt;
==Install a Parallel Printer==&lt;br /&gt;
&lt;br /&gt;
If you use an old parallel printer then you need to do the following before you add the printer through cups:&lt;br /&gt;
&lt;br /&gt;
 # chown root:cups /dev/lpt0&lt;br /&gt;
 # chmod 0660 /dev/lpt0&lt;br /&gt;
&lt;br /&gt;
Now add these lines to /etc/devfs.conf so that the permissions are set during boot time&lt;br /&gt;
&lt;br /&gt;
 own    /dev/lpt0    root:cups&lt;br /&gt;
 perm   /dev/lpt0    0660&lt;br /&gt;
&lt;br /&gt;
Now go back into the cups setup http://localhost:631 and add your printer, you will notice that there is now a Parallel device present.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing a PCL printer==&lt;br /&gt;
&lt;br /&gt;
If you have a printer which handles PCL but not PS then you need to install the 'hpijs' port&lt;br /&gt;
&lt;br /&gt;
 # portinstall -P hpijs&lt;br /&gt;
&lt;br /&gt;
Now you will have a huge list of HP printers to select from, if you have a basic B&amp;amp;W laser printer which accepts PCL then use the 'HP LaserJet 5L Foomatic/hpijs' driver and you shouldn't have a problem.&lt;br /&gt;
&lt;br /&gt;
==Printing from Windows XP to a FreeBSD CUPs server==&lt;br /&gt;
You don't require samba to print from an XP client through a FreeBSD CUPs server to your printer.  It's easier to do this without samba actually.  It doesn't matter if you have samba installed though.&lt;br /&gt;
&lt;br /&gt;
Simply get your printers working under CUPs and on the local server and test these.  Then on the windows box add a new network printer and point that printer to your server by using the URL section of the wizard.&lt;br /&gt;
&lt;br /&gt;
For example &lt;br /&gt;
 http://&amp;lt;server&amp;gt;:631/printers/&amp;lt;printer name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you will be able to have full rights of that printer on each windows box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==KDE Setup==&lt;br /&gt;
You can setup any non KDE applications such as Openoffice to use the KDE printer dialogue by setting up the default printer of that applications as:&lt;br /&gt;
&lt;br /&gt;
 kprinter -stdin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Openoffice===&lt;br /&gt;
Change the default printer in openoffice spadmin program&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===xpdf===&lt;br /&gt;
&lt;br /&gt;
Add the following to /usr/X11R6/etc/xpdfrc config file.&lt;br /&gt;
 psFile                  &amp;quot;|kprinter -stdin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==CUPS to PDF==&lt;br /&gt;
CUPS can also be used to print directly from any program to a PDF file.&lt;br /&gt;
&lt;br /&gt;
 # pkg_add -r cups-pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CUPS mimics lpr==&lt;br /&gt;
If you have old programs which use lpr to print then you should install CUPS-lpr&lt;br /&gt;
 &lt;br /&gt;
 # pkg_add -r cups-lpr&lt;br /&gt;
&lt;br /&gt;
==CUPS Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===CUPS with proxy===&lt;br /&gt;
Make sure if you run a proxy to set localhost in the exceptions of your browser.&lt;br /&gt;
Should now be able to connect to http://localhost:631&lt;br /&gt;
&lt;br /&gt;
===CUPS and KDE Error===&lt;br /&gt;
If you get an error in KDE print manager such as:&lt;br /&gt;
cups host not found.&lt;br /&gt;
&lt;br /&gt;
Then change the host from&lt;br /&gt;
host: /var/run/cups.sock&lt;br /&gt;
to&lt;br /&gt;
host: localhost&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CUPS and Gnome Warning===&lt;br /&gt;
I've installed CUPS on a few machines and found everytime I do I cannot print though any gnome based application.  If you like to use gnome applications to print your work, don't install CUPS just use LPD.&lt;br /&gt;
&lt;br /&gt;
programs which crashed right out when printing were:&lt;br /&gt;
gedit, abiword, gnumeric, inkscape.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Error you will get&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(gdb) run&lt;br /&gt;
Starting program: /usr/X11R6/bin/gnumeric&lt;br /&gt;
&lt;br /&gt;
Program received signal SIGBUS, Bus error.&lt;br /&gt;
[Switching to Thread 3 (LWP 100326)]&lt;br /&gt;
0x29dfd450 in ippWriteIO (dst=0x8542000, cb=0x29dfa3bc &amp;lt;httpWrite&amp;gt;,&lt;br /&gt;
    blocking=1, parent=0x0, ipp=0x8517880) at ipp.c:1418&lt;br /&gt;
1418    ipp.c: No such file or directory.&lt;br /&gt;
        in ipp.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==links==&lt;br /&gt;
http://forums.bsdnexus.com/viewtopic.php?id=36&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Ports and Packages]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/CUPS</id>
		<title>CUPS</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/CUPS"/>
				<updated>2007-10-11T00:04:59Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CUPS (Common Unix Printing System)&lt;br /&gt;
This makes it easy to add printers to your system and programs such as firefox will pick up the printer list automatically.&lt;br /&gt;
&lt;br /&gt;
==Installing CUPS==&lt;br /&gt;
 # pkg_add -r cups&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
 # cd /usr/ports/print/cups&lt;br /&gt;
 # make install clean&lt;br /&gt;
&lt;br /&gt;
==Install a Parallel Printer==&lt;br /&gt;
&lt;br /&gt;
If you use an old parallel printer then you need to do the following before you add the printer through cups:&lt;br /&gt;
&lt;br /&gt;
 # chown root:cups /dev/lpt0&lt;br /&gt;
 # chmod 0660 /dev/lpt0&lt;br /&gt;
&lt;br /&gt;
Now add these lines to /etc/devfs.conf so that the permissions are set during boot time&lt;br /&gt;
&lt;br /&gt;
 own    /dev/lpt0    root:cups&lt;br /&gt;
 perm   /dev/lpt0    0660&lt;br /&gt;
&lt;br /&gt;
Now go back into the cups setup http://localhost:631 and add your printer, you will notice that there is now a Parallel device present.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing a PCL printer==&lt;br /&gt;
&lt;br /&gt;
If you have a printer which handles PCL but not PS then you need to install the 'hpijs' port&lt;br /&gt;
&lt;br /&gt;
 # portinstall -P hpijs&lt;br /&gt;
&lt;br /&gt;
Now you will have a huge list of HP printers to select from, if you have a basic B&amp;amp;W laser printer which accepts PCL then use the 'HP LaserJet 5L Foomatic/hpijs' driver and you shouldn't have a problem.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==KDE Setup==&lt;br /&gt;
You can setup any non KDE applications such as Openoffice to use the KDE printer dialogue by setting up the default printer of that applications as:&lt;br /&gt;
&lt;br /&gt;
 kprinter -stdin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Openoffice===&lt;br /&gt;
Change the default printer in openoffice spadmin program&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===xpdf===&lt;br /&gt;
&lt;br /&gt;
Add the following to /usr/X11R6/etc/xpdfrc config file.&lt;br /&gt;
 psFile                  &amp;quot;|kprinter -stdin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==CUPS to PDF==&lt;br /&gt;
CUPS can also be used to print directly from any program to a PDF file.&lt;br /&gt;
&lt;br /&gt;
 # pkg_add -r cups-pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CUPS mimics lpr==&lt;br /&gt;
If you have old programs which use lpr to print then you should install CUPS-lpr&lt;br /&gt;
 &lt;br /&gt;
 # pkg_add -r cups-lpr&lt;br /&gt;
&lt;br /&gt;
==CUPS Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===CUPS with proxy===&lt;br /&gt;
Make sure if you run a proxy to set localhost in the exceptions of your browser.&lt;br /&gt;
Should now be able to connect to http://localhost:631&lt;br /&gt;
&lt;br /&gt;
===CUPS and KDE Error===&lt;br /&gt;
If you get an error in KDE print manager such as:&lt;br /&gt;
cups host not found.&lt;br /&gt;
&lt;br /&gt;
Then change the host from&lt;br /&gt;
host: /var/run/cups.sock&lt;br /&gt;
to&lt;br /&gt;
host: localhost&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CUPS and Gnome Warning===&lt;br /&gt;
I've installed CUPS on a few machines and found everytime I do I cannot print though any gnome based application.  If you like to use gnome applications to print your work, don't install CUPS just use LPD.&lt;br /&gt;
&lt;br /&gt;
programs which crashed right out when printing were:&lt;br /&gt;
gedit, abiword, gnumeric, inkscape.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Error you will get&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(gdb) run&lt;br /&gt;
Starting program: /usr/X11R6/bin/gnumeric&lt;br /&gt;
&lt;br /&gt;
Program received signal SIGBUS, Bus error.&lt;br /&gt;
[Switching to Thread 3 (LWP 100326)]&lt;br /&gt;
0x29dfd450 in ippWriteIO (dst=0x8542000, cb=0x29dfa3bc &amp;lt;httpWrite&amp;gt;,&lt;br /&gt;
    blocking=1, parent=0x0, ipp=0x8517880) at ipp.c:1418&lt;br /&gt;
1418    ipp.c: No such file or directory.&lt;br /&gt;
        in ipp.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==links==&lt;br /&gt;
http://forums.bsdnexus.com/viewtopic.php?id=36&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Ports and Packages]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/CUPS</id>
		<title>CUPS</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/CUPS"/>
				<updated>2007-10-10T23:49:09Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CUPS (Common Unix Printing System)&lt;br /&gt;
This makes it easy to add printers to your system and programs such as firefox will pick up the printer list automatically.&lt;br /&gt;
&lt;br /&gt;
==Installing CUPS==&lt;br /&gt;
 # pkg_add -r cups&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
 # cd /usr/ports/print/cups&lt;br /&gt;
 # make install clean&lt;br /&gt;
&lt;br /&gt;
==Install a Parallel Printer==&lt;br /&gt;
&lt;br /&gt;
If you use an old parallel printer then you need to do the following before you add the printer through cups:&lt;br /&gt;
&lt;br /&gt;
 # chown root:cups /dev/lpt0&lt;br /&gt;
 # chmod 0660 /dev/lpt0&lt;br /&gt;
&lt;br /&gt;
Now add these lines to /etc/devfs.conf so that the permissions are set during boot time&lt;br /&gt;
&lt;br /&gt;
 own    /dev/lpt0    root:cups&lt;br /&gt;
 perm   /dev/lpt0    0660&lt;br /&gt;
&lt;br /&gt;
Now go back into the cups setup http://localhost:631 and add your printer, you will notice that there is now a Parallel device present.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==KDE Setup==&lt;br /&gt;
You can setup any non KDE applications such as Openoffice to use the KDE printer dialogue by setting up the default printer of that applications as:&lt;br /&gt;
&lt;br /&gt;
 kprinter -stdin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Openoffice===&lt;br /&gt;
Change the default printer in openoffice spadmin program&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===xpdf===&lt;br /&gt;
&lt;br /&gt;
Add the following to /usr/X11R6/etc/xpdfrc config file.&lt;br /&gt;
 psFile                  &amp;quot;|kprinter -stdin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==CUPS to PDF==&lt;br /&gt;
CUPS can also be used to print directly from any program to a PDF file.&lt;br /&gt;
&lt;br /&gt;
 # pkg_add -r cups-pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CUPS mimics lpr==&lt;br /&gt;
If you have old programs which use lpr to print then you should install CUPS-lpr&lt;br /&gt;
 &lt;br /&gt;
 # pkg_add -r cups-lpr&lt;br /&gt;
&lt;br /&gt;
==CUPS Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===CUPS with proxy===&lt;br /&gt;
Make sure if you run a proxy to set localhost in the exceptions of your browser.&lt;br /&gt;
Should now be able to connect to http://localhost:631&lt;br /&gt;
&lt;br /&gt;
===CUPS and KDE Error===&lt;br /&gt;
If you get an error in KDE print manager such as:&lt;br /&gt;
cups host not found.&lt;br /&gt;
&lt;br /&gt;
Then change the host from&lt;br /&gt;
host: /var/run/cups.sock&lt;br /&gt;
to&lt;br /&gt;
host: localhost&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CUPS and Gnome Warning===&lt;br /&gt;
I've installed CUPS on a few machines and found everytime I do I cannot print though any gnome based application.  If you like to use gnome applications to print your work, don't install CUPS just use LPD.&lt;br /&gt;
&lt;br /&gt;
programs which crashed right out when printing were:&lt;br /&gt;
gedit, abiword, gnumeric, inkscape.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Error you will get&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(gdb) run&lt;br /&gt;
Starting program: /usr/X11R6/bin/gnumeric&lt;br /&gt;
&lt;br /&gt;
Program received signal SIGBUS, Bus error.&lt;br /&gt;
[Switching to Thread 3 (LWP 100326)]&lt;br /&gt;
0x29dfd450 in ippWriteIO (dst=0x8542000, cb=0x29dfa3bc &amp;lt;httpWrite&amp;gt;,&lt;br /&gt;
    blocking=1, parent=0x0, ipp=0x8517880) at ipp.c:1418&lt;br /&gt;
1418    ipp.c: No such file or directory.&lt;br /&gt;
        in ipp.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==links==&lt;br /&gt;
http://forums.bsdnexus.com/viewtopic.php?id=36&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Ports and Packages]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Firefox</id>
		<title>Firefox</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Firefox"/>
				<updated>2007-09-10T03:34:55Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Firefox is a great browser and this documentation relates to version 2.01&lt;br /&gt;
&lt;br /&gt;
==Installing video plugin==&lt;br /&gt;
Install the mplayer-plugin for mozilla&lt;br /&gt;
&lt;br /&gt;
 # cd /usr/ports/www/mplayer-plugin&lt;br /&gt;
 # make install&lt;br /&gt;
&lt;br /&gt;
mplayer plugin will support:&lt;br /&gt;
&lt;br /&gt;
Window Media  wmv, avi, asf, wav and asx&lt;br /&gt;
  QuickTime  mov and smil&lt;br /&gt;
  MPEG Video and Audio  mpeg and mp3&lt;br /&gt;
  Ogg Vorbis  ogg&lt;br /&gt;
  AutoDesk FLI  fli and flc&lt;br /&gt;
  Vivo  vivo&lt;br /&gt;
  Real Player  ram and rm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing Java VM plugin==&lt;br /&gt;
Install the Java Runtime Environment via ports ({PORTSDIR}/java/diablo-jre15) or the Java Development Kit ({PORTSDIR}/java/diablo-jre15)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Then to add the plugin go to the directory:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /usr/X11R6/lib/browser_plugins&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
and if you installed the JRE type the following:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ln -s /usr/local/diablo-jre1.5.0/jre/plugin/i386/ns7/libjavaplugin_oji.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or if you installed the JDK type the following:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ln -s /usr/local/diablo-jdk1.5.0/jre/plugin/i386/ns7/libjavaplugin_oji.so&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Now you should have java VM working.  To test go to this site and wait a while for the Java VM to load:&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.java.com/en/download/help/testvm.xml&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing flash on native firefox==&lt;br /&gt;
http://www.freebsdwiki.net/index.php/Flash#Native_Firefox&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
http://www.math.colostate.edu/~reinholz/freebsd/firefox_plugins.html&lt;br /&gt;
&lt;br /&gt;
[[Category:Ports_and_Packages]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Thunderbird,_link_handling_preferences</id>
		<title>Thunderbird, link handling preferences</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Thunderbird,_link_handling_preferences"/>
				<updated>2007-05-03T07:27:55Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Open links in firefox==&lt;br /&gt;
&lt;br /&gt;
Edit your pref.js file in .thunderbird/*default*/pref.js and add the following&lt;br /&gt;
&lt;br /&gt;
 user_pref(&amp;quot;network.protocol-handler.app.ftp&amp;quot;, &amp;quot;/usr/local/bin/firefox&amp;quot;);&lt;br /&gt;
 user_pref(&amp;quot;network.protocol-handler.app.http&amp;quot;, &amp;quot;/usr/local/bin/firefox&amp;quot;);&lt;br /&gt;
 user_pref(&amp;quot;network.protocol-handler.app.https&amp;quot;, &amp;quot;/usr/local/bin/firefox&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
==Open links in konqueror==&lt;br /&gt;
&lt;br /&gt;
 user_pref(&amp;quot;network.protocol-handler.app.ftp&amp;quot;, &amp;quot;/usr/local/bin/konqueror&amp;quot;);&lt;br /&gt;
 user_pref(&amp;quot;network.protocol-handler.app.http&amp;quot;, &amp;quot;/usr/local/bin/konqueror&amp;quot;);&lt;br /&gt;
 user_pref(&amp;quot;network.protocol-handler.app.https&amp;quot;, &amp;quot;/usr/local/bin/konqueror&amp;quot;);&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/PHP,_Installing</id>
		<title>PHP, Installing</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/PHP,_Installing"/>
				<updated>2007-05-02T00:00:11Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: /* PHP 5 Installing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Installing PHP with all the proper extensions can be a little tricky.  The easiest way to do it (assuming you've already got your preferred version of Apache up and running) is as follows... first, head to /usr/ports/www/mod_php4 and '''make install clean'''.  There isn't too much to be aware of here, except to make sure you either do or don't check &amp;quot;use Apache2&amp;quot; depending on whether your version of Apache is 1.x or 2.x.&lt;br /&gt;
&lt;br /&gt;
Next, head to /usr/ports/lang/php4-extensions and '''make install''' - this time, though, you might want to leave the &amp;quot;clean&amp;quot; off.  This one's lots more fun - this is where you get to pick and choose capabilities for everything from MySQL (or other SQL server variants) support, PDF library support, image manipulation... you name it.  Pick everything you need, but try not to pick anything you DON'T need - remember, &amp;quot;just what you need and no more&amp;quot; is always better (and more secure) than &amp;quot;everything but the kitchen sink&amp;quot;.  You can always come back later and add more extensions if you need to - all you have to do to change which extensions you're building is type '''make config''' (a trick that works in any of the ports that have ncurses-style text menus to configure them).&lt;br /&gt;
&lt;br /&gt;
Depending on how many extensions you selected, this one can take a LONG time to compile.  You may also run into problems where it bombs out due to old versions of some of the dependencies for some of the extensions being installed - for example, when I just now rebuilt the extensions on this webserver, I encountered the following problem:&lt;br /&gt;
&lt;br /&gt;
 ===&amp;gt;  Installing for pdflib-6.0.0p1&lt;br /&gt;
 ===&amp;gt;   Generating temporary packing list&lt;br /&gt;
 ===&amp;gt;  Checking if print/pdflib already installed&lt;br /&gt;
 ===&amp;gt;   an older version of print/pdflib is already installed&lt;br /&gt;
       You may wish to ``make deinstall'' and install this port again&lt;br /&gt;
       by ``make reinstall'' to upgrade it properly.&lt;br /&gt;
       If you really wish to overwrite the old port of print/pdflib&lt;br /&gt;
       without deleting it first, set the variable &amp;quot;FORCE_PKG_REGISTER&amp;quot;&lt;br /&gt;
       in your environment or the &amp;quot;make install&amp;quot; command line.&lt;br /&gt;
 *** Error code 1 &lt;br /&gt;
 &lt;br /&gt;
 Stop in /usr/ports/print/pdflib.&lt;br /&gt;
  *** Error code 1&lt;br /&gt;
 &lt;br /&gt;
 Stop in /usr/ports/lang/php4-extensions.&lt;br /&gt;
&lt;br /&gt;
This was the fix:&lt;br /&gt;
&lt;br /&gt;
 freebsdwiki# '''cd /usr/ports/print/pdflib'''&lt;br /&gt;
 freebsdwiki# '''make deinstall'''&lt;br /&gt;
 freebsdwiki# '''cd /usr/ports/lang/php4-extensions'''&lt;br /&gt;
 freebsdwiki# '''make install'''&lt;br /&gt;
&lt;br /&gt;
... and off it happily trundled again, finishing my aborted installation from whence it had left off.  Situations like this are why, for complex ports like this one, it's well-advised NOT to issue a '''make install clean''' all in one fell swoop, but instead to '''make install''' first, and wait to '''make clean''' until everything is satisfactorily built and installed to specification.  (If you're really feeling paranoid and/or are working on a really critical high-traffic server, it's better yet to start with '''make''', then don't '''make install''' until you've already done the compilation and everything looks good, and THEN '''make clean''' to reclaim the space taken up by the work directories!)&lt;br /&gt;
&lt;br /&gt;
In this case, if I had issued '''make install clean''' all in one step, I would have lost close to an hour's worth of compilation time when the process bombed out due to the older version of pdflib being in place, and would have had to begin recompiling all the extensions all over again when I returned to the php4-extensions port after removing the old pdflib.&lt;br /&gt;
&lt;br /&gt;
You may even, if you've got the hard drive space to spare, wish to NOT issue a '''make clean''' at all on this port - it'll save you a lot of time if you ever need to install new extensions, since the work will already be done on any of the extensions that haven't been updated since the last time.&lt;br /&gt;
&lt;br /&gt;
==PHP 5 Installing==&lt;br /&gt;
Install from ports&lt;br /&gt;
&lt;br /&gt;
/usr/ports/lang/php5&lt;br /&gt;
&lt;br /&gt;
Select Apache when configuring&lt;br /&gt;
 # make config&lt;br /&gt;
&lt;br /&gt;
Then install the port&lt;br /&gt;
 # make install clean&lt;br /&gt;
&lt;br /&gt;
 # cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini&lt;br /&gt;
&lt;br /&gt;
Add the following lines to /usr/local/etc/apache2/httpd.conf&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
 AddType application/x-httpd-php-source .phps&lt;br /&gt;
		&lt;br /&gt;
Change the following line in httpd.conf from&lt;br /&gt;
 DirectoryIndex index.html &lt;br /&gt;
To:&lt;br /&gt;
 DirectoryIndex index.html index.php&lt;br /&gt;
&lt;br /&gt;
Test with &amp;lt;? phpinfo(); ?&amp;gt; &lt;br /&gt;
 # echo &amp;quot;&amp;lt;? phpinfo(); ?&amp;gt;&amp;quot; &amp;gt;&amp;gt; /usr/local/www/data/test.php&lt;br /&gt;
		&lt;br /&gt;
Restart apache.	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Common Tasks]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/PHP,_Installing</id>
		<title>PHP, Installing</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/PHP,_Installing"/>
				<updated>2007-05-01T23:59:41Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Installing PHP with all the proper extensions can be a little tricky.  The easiest way to do it (assuming you've already got your preferred version of Apache up and running) is as follows... first, head to /usr/ports/www/mod_php4 and '''make install clean'''.  There isn't too much to be aware of here, except to make sure you either do or don't check &amp;quot;use Apache2&amp;quot; depending on whether your version of Apache is 1.x or 2.x.&lt;br /&gt;
&lt;br /&gt;
Next, head to /usr/ports/lang/php4-extensions and '''make install''' - this time, though, you might want to leave the &amp;quot;clean&amp;quot; off.  This one's lots more fun - this is where you get to pick and choose capabilities for everything from MySQL (or other SQL server variants) support, PDF library support, image manipulation... you name it.  Pick everything you need, but try not to pick anything you DON'T need - remember, &amp;quot;just what you need and no more&amp;quot; is always better (and more secure) than &amp;quot;everything but the kitchen sink&amp;quot;.  You can always come back later and add more extensions if you need to - all you have to do to change which extensions you're building is type '''make config''' (a trick that works in any of the ports that have ncurses-style text menus to configure them).&lt;br /&gt;
&lt;br /&gt;
Depending on how many extensions you selected, this one can take a LONG time to compile.  You may also run into problems where it bombs out due to old versions of some of the dependencies for some of the extensions being installed - for example, when I just now rebuilt the extensions on this webserver, I encountered the following problem:&lt;br /&gt;
&lt;br /&gt;
 ===&amp;gt;  Installing for pdflib-6.0.0p1&lt;br /&gt;
 ===&amp;gt;   Generating temporary packing list&lt;br /&gt;
 ===&amp;gt;  Checking if print/pdflib already installed&lt;br /&gt;
 ===&amp;gt;   an older version of print/pdflib is already installed&lt;br /&gt;
       You may wish to ``make deinstall'' and install this port again&lt;br /&gt;
       by ``make reinstall'' to upgrade it properly.&lt;br /&gt;
       If you really wish to overwrite the old port of print/pdflib&lt;br /&gt;
       without deleting it first, set the variable &amp;quot;FORCE_PKG_REGISTER&amp;quot;&lt;br /&gt;
       in your environment or the &amp;quot;make install&amp;quot; command line.&lt;br /&gt;
 *** Error code 1 &lt;br /&gt;
 &lt;br /&gt;
 Stop in /usr/ports/print/pdflib.&lt;br /&gt;
  *** Error code 1&lt;br /&gt;
 &lt;br /&gt;
 Stop in /usr/ports/lang/php4-extensions.&lt;br /&gt;
&lt;br /&gt;
This was the fix:&lt;br /&gt;
&lt;br /&gt;
 freebsdwiki# '''cd /usr/ports/print/pdflib'''&lt;br /&gt;
 freebsdwiki# '''make deinstall'''&lt;br /&gt;
 freebsdwiki# '''cd /usr/ports/lang/php4-extensions'''&lt;br /&gt;
 freebsdwiki# '''make install'''&lt;br /&gt;
&lt;br /&gt;
... and off it happily trundled again, finishing my aborted installation from whence it had left off.  Situations like this are why, for complex ports like this one, it's well-advised NOT to issue a '''make install clean''' all in one fell swoop, but instead to '''make install''' first, and wait to '''make clean''' until everything is satisfactorily built and installed to specification.  (If you're really feeling paranoid and/or are working on a really critical high-traffic server, it's better yet to start with '''make''', then don't '''make install''' until you've already done the compilation and everything looks good, and THEN '''make clean''' to reclaim the space taken up by the work directories!)&lt;br /&gt;
&lt;br /&gt;
In this case, if I had issued '''make install clean''' all in one step, I would have lost close to an hour's worth of compilation time when the process bombed out due to the older version of pdflib being in place, and would have had to begin recompiling all the extensions all over again when I returned to the php4-extensions port after removing the old pdflib.&lt;br /&gt;
&lt;br /&gt;
You may even, if you've got the hard drive space to spare, wish to NOT issue a '''make clean''' at all on this port - it'll save you a lot of time if you ever need to install new extensions, since the work will already be done on any of the extensions that haven't been updated since the last time.&lt;br /&gt;
&lt;br /&gt;
==PHP 5 Installing==&lt;br /&gt;
Install from ports&lt;br /&gt;
&lt;br /&gt;
/usr/ports/lang/php5&lt;br /&gt;
&lt;br /&gt;
Select Apache when configuring&lt;br /&gt;
 # make config&lt;br /&gt;
&lt;br /&gt;
Then install the port&lt;br /&gt;
 # make install clean&lt;br /&gt;
&lt;br /&gt;
 # cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini&lt;br /&gt;
&lt;br /&gt;
Add the following lines to /usr/local/etc/apache2/httpd.conf&lt;br /&gt;
	AddType application/x-httpd-php .php&lt;br /&gt;
	AddType application/x-httpd-php-source .phps&lt;br /&gt;
		&lt;br /&gt;
Change the following line in httpd.conf from&lt;br /&gt;
	DirectoryIndex index.html &lt;br /&gt;
To:&lt;br /&gt;
	DirectoryIndex index.html index.php&lt;br /&gt;
&lt;br /&gt;
Test with &amp;lt;? phpinfo(); ?&amp;gt; &lt;br /&gt;
 # echo &amp;quot;&amp;lt;? phpinfo(); ?&amp;gt;&amp;quot; &amp;gt;&amp;gt; /usr/local/www/data/test.php&lt;br /&gt;
		&lt;br /&gt;
Restart apache.	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Common Tasks]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/PuTTY</id>
		<title>PuTTY</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/PuTTY"/>
				<updated>2007-05-01T00:03:28Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;a free [[ssh]]/telnet client for Windows and Linux, available at http://www.chiark.greenend.org.uk/~sgtatham/putty/&lt;br /&gt;
&lt;br /&gt;
There are several utilities that you can obtain from that page, which are: &lt;br /&gt;
# '''PuTTY''': the Telnet and SSH client itself&lt;br /&gt;
# '''PSCP''': command-line secure file copy&lt;br /&gt;
# '''PSFTP''': an SFTP client for secure file transfer&lt;br /&gt;
# '''PuTTYtel''': a Telnet-only client&lt;br /&gt;
# '''Plink''': a command-line interface to the PuTTY back ends&lt;br /&gt;
# '''Pageant''': an SSH authentication agent for PuTTY, PSCP and Plink&lt;br /&gt;
# '''PuTTYgen''': an RSA and DSA key generation utility&lt;br /&gt;
[[Category:Windows Equivalents]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Updating_the_system</id>
		<title>Updating the system</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Updating_the_system"/>
				<updated>2007-04-30T23:59:16Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Note''': If you only want to install security updates, it's enough to subscribe to [http://lists.freebsd.org/mailman/listinfo/freebsd-security-notifications FreeBSD security notifications] and follow the instructions in each advisory. Otherwise, read on.&lt;br /&gt;
&lt;br /&gt;
In FreeBSD, the base system and ports can be updated independently if desired. Here's how to do it.&lt;br /&gt;
&lt;br /&gt;
== Basic Security updates ==&lt;br /&gt;
From FreeBSD 6.X you can simply keep up to date using freebsd-update&lt;br /&gt;
&lt;br /&gt;
First time use:&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
&lt;br /&gt;
You can rollback in-case of problems&lt;br /&gt;
 # freebsd-update rollback&lt;br /&gt;
&lt;br /&gt;
Use the following line in your /etc/crontab to keep your machine up to date:&lt;br /&gt;
30  3   *   *   *   root /usr/sbin/freebsd-update cron -t &amp;lt;email address&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will email you when updates are available and to install them type&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
&lt;br /&gt;
== Updating the base system ==&lt;br /&gt;
&lt;br /&gt;
To upgrade to a RELEASE version of FreeBSD, you can do one of three things:&lt;br /&gt;
#Do a binary Upgrade to a release version&lt;br /&gt;
#Do a binary Upgrade using the method described [http://www.daemonology.net/freebsd-upgrade-5.4-to-6.0/ here]&lt;br /&gt;
#Do a source upgrade as described [[upgrading the base system | here]]&lt;br /&gt;
&lt;br /&gt;
A binary upgrade to a release version can be done by running '''sysinstall''' from the installation medium (e.g. CDROM). See the [http://www.freebsd.org/releases/ release notes] of the release for details. Note that this will wipe out a lot of customizations.&lt;br /&gt;
&lt;br /&gt;
== Updating applications ==&lt;br /&gt;
&lt;br /&gt;
Many open-source apps are under active development, so this is something you'll probably want to do quite regularly to ensure that you have the latest versions of everything.&lt;br /&gt;
&lt;br /&gt;
First update the ports tree (/usr/ports/). This can be done via [[cvsup]], [[ctm]] or [[portsnap]]. The ports can then be automatically updated using [[portupgrade]] or [[portmanager]], which are capable of dealing with dependencies.&lt;br /&gt;
&lt;br /&gt;
== How do I download updates? ==&lt;br /&gt;
&lt;br /&gt;
The most common method used is [[cvsup]] (see [[updating the ports tree]]). However, you might not be able to use it if you're behind a restrictive firewall (blocking tcp port 5999) or on a weak connection. In that case you can use [[ctm]] to obtain differential updates by email or ftp.&lt;br /&gt;
&lt;br /&gt;
For updating the ports tree, a third option is available. [[Portsnap]] is an automated tool which offers many advantages over both the other methods:&lt;br /&gt;
&lt;br /&gt;
* secure (uses cryptographic signing)&lt;br /&gt;
* very efficient in terms of bandwidth consumption and server load&lt;br /&gt;
* uses http only&lt;br /&gt;
* easy to use&lt;br /&gt;
&lt;br /&gt;
[[Category:Common Tasks]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Sound_card</id>
		<title>Sound card</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Sound_card"/>
				<updated>2007-04-30T23:51:40Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: Remove crap&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to get sound out of your FreeBSD box, you'll need to either load your sound driver module or compile sound support in your kernel -- it's not installed by default. For this you need to use [[kldload]] to load your sound driver. If you don't know which sound card you have -- and therefore don't know which driver to use -- you can load the generic [[snd_driver]] module (in 5.x systems -- in 4.x you need to load the [[snd]] module), which works for most cards, like so:&lt;br /&gt;
 samizdata# kldload snd_driver &lt;br /&gt;
&lt;br /&gt;
If that works, you'll probably want it to load automatically at boot time.  To do so, you'll want to append a line about snd_driver to your loader.conf:&lt;br /&gt;
&lt;br /&gt;
 samizdata# echo snd_driver_load=&amp;quot;YES&amp;quot; &amp;gt;&amp;gt; /boot/loader.conf&lt;br /&gt;
&lt;br /&gt;
And presto, when booting, your system will always try to load snd_driver.&lt;br /&gt;
&lt;br /&gt;
If you don't know your sound card type the following:&lt;br /&gt;
 # man sound&lt;br /&gt;
Now look at the SEE ALSO section and start loading each of these until your sound works.&lt;br /&gt;
&lt;br /&gt;
For instance for an ASUS A8V board it's a running a VIA sound card so I would run:&lt;br /&gt;
 # kldload snd_via8233&lt;br /&gt;
&lt;br /&gt;
If this works I put this line into my /boot/loader.conf&lt;br /&gt;
 snd_via8233_load=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
That way it's loaded at boot time without having to recompile the kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== FreeBSD5.4 and above Sound ==&lt;br /&gt;
&lt;br /&gt;
Since 27/07/04 the sound system has changed a lot and now to install sound under FreeBSD you have to do the following:&lt;br /&gt;
  freebsd# kldload sound&lt;br /&gt;
&lt;br /&gt;
Then find out your sound card.  I'm using an ASUS A7N8X motherboard with Nvidia onboard sound so I typed  &lt;br /&gt;
  freebsd# kldload snd_ich&lt;br /&gt;
&lt;br /&gt;
To find out what driver will work with your sound board/chip have a look at the NOTES file in&lt;br /&gt;
/usr/src/sys/conf/NOTES - search for 'snd' and you will find descriptions of all the different sound drivers.  (The impatient may want to try running [[Sound_card:_checking_drivers|this shell script]] instead, which will automatically check each sound driver installed on the system to see if it works, and let you know what it found out.)&lt;br /&gt;
&lt;br /&gt;
Then when I had tested this and it worked I entered the following into my kernel:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 # Base sound driver - required for all cards&lt;br /&gt;
 device sound&lt;br /&gt;
 &lt;br /&gt;
 # Device-specific driver - may be different on other systems besides mine!&lt;br /&gt;
 device snd_ich&lt;br /&gt;
&lt;br /&gt;
and recompiled.  However, recompiling the kernel is absolutely NOT necessary for sound support, as you can just dynamically load the modules for sound support at boot time, by adding lines to /boot/loader.conf:&lt;br /&gt;
&lt;br /&gt;
 sound_load=&amp;quot;YES&amp;quot;&lt;br /&gt;
 snd_ich_load=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Of course remember to replace snd_ich_load with whatever your individual device is.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
[http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/sound-setup.html FreeBSD Handbook]&lt;br /&gt;
&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Upgrading_the_base_system</id>
		<title>Upgrading the base system</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Upgrading_the_base_system"/>
				<updated>2007-04-30T04:08:13Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: Removing crap&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Upgrading a FreeBSD system is relatively painless if the proper steps are followed.  The standard way to upgrade a FreeBSD system is to update the source code to the new version then recompile the source and install.  There are automatic commands for much of the process. &lt;br /&gt;
&lt;br /&gt;
In overview the steps are:&lt;br /&gt;
*Backup important files&lt;br /&gt;
*Update the system source code ([[cvsup]] over the internet or install source from a new CD)&lt;br /&gt;
*Read [[UPDATING|/usr/src/UPDATING]] to look for any gotcha's or recent changes&lt;br /&gt;
*Compile the source for the system except for the kernel (make buildworld)&lt;br /&gt;
*Compile the source for the [[kernel]] ([[make buildkernel]])&lt;br /&gt;
*Install any critical config files that have been updated (mergemaster -p)&lt;br /&gt;
*Install the new kernel if it has built successfully (make installkernel)&lt;br /&gt;
*Reboot to run the new kernel&lt;br /&gt;
*Drop to [[single user mode]] (see [[init]])&lt;br /&gt;
*Install the rest of the system (make installworld)&lt;br /&gt;
*Update the config files ([[mergemaster]])&lt;br /&gt;
&lt;br /&gt;
For information about the different FreeBSD release branches, look at [[FreeBSD Release Branches]].&lt;br /&gt;
For a specialized HOWTO regarding updating from FreeBSD 5.4 to FreeBSD 6.0, see [[Updating to FreeBSD 6.0]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Common Tasks]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/PHP</id>
		<title>PHP</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/PHP"/>
				<updated>2007-04-30T01:10:03Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: /* PHP for dynamic websites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PHP is a recursive acronym for ''PHP Hypertext Preprocessor''. It is an interpreted script language commonly used for dynamic pages generation on webservers. It is generally installed side by side with the [[Apache]] web server, and [[MySQL]] or [[PostgreSQL]] as database management system.&lt;br /&gt;
&lt;br /&gt;
==Installing PHP==&lt;br /&gt;
&lt;br /&gt;
PHP is available from the port-tree ...&lt;br /&gt;
 # cd /usr/ports/lang/php5&lt;br /&gt;
... and the packages ...&lt;br /&gt;
 # pkg_add -r php5&lt;br /&gt;
&lt;br /&gt;
==Using PHP==&lt;br /&gt;
There are two ways to use PHP :&lt;br /&gt;
* With apache: configure apache to use php to process .php files requested by the user.&lt;br /&gt;
* As a command interpreter: php can process scripts, or instructions typed at the commandline.&lt;br /&gt;
&lt;br /&gt;
===PHP for dynamic websites===&lt;br /&gt;
&lt;br /&gt;
All the steps of Apache configuration are explained after PHP installation. You have to add these two lines in httpd.conf:&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
 AddType application/x-httpd-php-source .phps&lt;br /&gt;
&lt;br /&gt;
You will probably also want to add ''index.php'' as a possible directory index:&lt;br /&gt;
 DirectoryIndex index.html index.php&lt;br /&gt;
&lt;br /&gt;
You have to restart Apache to have your changes effective. For example, if you use Apache 2:&lt;br /&gt;
 /usr/local/etc/rc.d/apache2.sh restart&lt;br /&gt;
&lt;br /&gt;
Now, you can try your installation by creating a file test.php in the /usr/local/www/data directory:&lt;br /&gt;
 &amp;lt;?&lt;br /&gt;
    phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Request test.php using your web browser, and if all is well it will show you your PHP configuration.&lt;br /&gt;
&lt;br /&gt;
===Scripts in PHP===&lt;br /&gt;
&lt;br /&gt;
If you have compiled PHP with the commandline interface, you can write scripts in PHP that can be used from the [[shell]]. This is very useful for ''quick and dirty'' hacks; especially if you want your output to be HTML. Put the PHP code in a file like this :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 #!/usr/local/bin/php&lt;br /&gt;
 # phpscript&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt; &amp;amp;lt;title&amp;amp;gt;Defined Constants&amp;amp;lt;/title&amp;amp;gt; &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;h1&amp;amp;gt;&amp;amp;lt;? echo &amp;quot;Hello from PHP &amp;quot; .phpversion() ?&amp;amp;gt;&amp;amp;lt;/h1&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;pre&amp;amp;gt;&amp;amp;lt;? print_r(get_defined_constants()) ?&amp;amp;gt;&amp;amp;lt;/pre&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the file executable:&lt;br /&gt;
 '''%''' chmod +x phpscript&lt;br /&gt;
&lt;br /&gt;
Then, you can run it from the command line.&lt;br /&gt;
&lt;br /&gt;
 '''%''' ./phpscript | lynx -stdin&lt;br /&gt;
In this case, we've piped to &amp;lt;code&amp;gt;lynx&amp;lt;/code&amp;gt;, so that we can browse the nicely formatted result.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                              Defined Constants (p1 of 154)&lt;br /&gt;
&lt;br /&gt;
                             Hello from PHP 5.1.4&lt;br /&gt;
&lt;br /&gt;
 Array&lt;br /&gt;
 (&lt;br /&gt;
    [E_ERROR] =&amp;gt; 1&lt;br /&gt;
    [E_WARNING] =&amp;gt; 2&lt;br /&gt;
    [E_PARSE] =&amp;gt; 4&lt;br /&gt;
    [E_NOTICE] =&amp;gt; 8&lt;br /&gt;
 -- press space for more, use arrow keys to move, '?' for help, 'q' to quit.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or, we could have executed the command directly from the command line:&lt;br /&gt;
 '''%''' php -r 'echo &amp;quot;Hello from PHP &amp;quot;. phpversion() . &amp;quot;\n&amp;quot;; print_r(get_defined_constants());'&lt;br /&gt;
 Hello from PHP 5.1.4 &lt;br /&gt;
 Array&lt;br /&gt;
 (&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
==PHP Website==&lt;br /&gt;
[http://www.php.net http://www.php.net]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Ports and Packages]]&lt;br /&gt;
[[Category: Configuring FreeBSD]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/PHP</id>
		<title>PHP</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/PHP"/>
				<updated>2007-04-30T01:08:58Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: /* PHP for dynamic websites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PHP is a recursive acronym for ''PHP Hypertext Preprocessor''. It is an interpreted script language commonly used for dynamic pages generation on webservers. It is generally installed side by side with the [[Apache]] web server, and [[MySQL]] or [[PostgreSQL]] as database management system.&lt;br /&gt;
&lt;br /&gt;
==Installing PHP==&lt;br /&gt;
&lt;br /&gt;
PHP is available from the port-tree ...&lt;br /&gt;
 # cd /usr/ports/lang/php5&lt;br /&gt;
... and the packages ...&lt;br /&gt;
 # pkg_add -r php5&lt;br /&gt;
&lt;br /&gt;
==Using PHP==&lt;br /&gt;
There are two ways to use PHP :&lt;br /&gt;
* With apache: configure apache to use php to process .php files requested by the user.&lt;br /&gt;
* As a command interpreter: php can process scripts, or instructions typed at the commandline.&lt;br /&gt;
&lt;br /&gt;
===PHP for dynamic websites===&lt;br /&gt;
&lt;br /&gt;
All the steps of Apache configuration are explained after PHP installation. You have to add these two lines in httpd.conf:&lt;br /&gt;
 AddType application/x-httpd-php .php&lt;br /&gt;
 AddType application/x-httpd-php-source .phps&lt;br /&gt;
&lt;br /&gt;
You will probably also want to add ''index.php'' as a possible directory index:&lt;br /&gt;
 DirectoryIndex index.html index.php&lt;br /&gt;
&lt;br /&gt;
You have to restart Apache to have your changes effective. For example, if you use Apache 2:&lt;br /&gt;
 /usr/local/etc/rc.d/apache2.sh restart&lt;br /&gt;
&lt;br /&gt;
Now, you can try your installation by creating a file test.php:&lt;br /&gt;
 &amp;lt;?&lt;br /&gt;
    phpinfo();&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Request test.php using your web browser, and if all is well it will show you your PHP configuration.&lt;br /&gt;
&lt;br /&gt;
===Scripts in PHP===&lt;br /&gt;
&lt;br /&gt;
If you have compiled PHP with the commandline interface, you can write scripts in PHP that can be used from the [[shell]]. This is very useful for ''quick and dirty'' hacks; especially if you want your output to be HTML. Put the PHP code in a file like this :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 #!/usr/local/bin/php&lt;br /&gt;
 # phpscript&lt;br /&gt;
 &amp;amp;lt;html&amp;amp;gt; &amp;amp;lt;title&amp;amp;gt;Defined Constants&amp;amp;lt;/title&amp;amp;gt; &amp;amp;lt;body&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;h1&amp;amp;gt;&amp;amp;lt;? echo &amp;quot;Hello from PHP &amp;quot; .phpversion() ?&amp;amp;gt;&amp;amp;lt;/h1&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;pre&amp;amp;gt;&amp;amp;lt;? print_r(get_defined_constants()) ?&amp;amp;gt;&amp;amp;lt;/pre&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;/body&amp;amp;gt;&amp;amp;lt;/html&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the file executable:&lt;br /&gt;
 '''%''' chmod +x phpscript&lt;br /&gt;
&lt;br /&gt;
Then, you can run it from the command line.&lt;br /&gt;
&lt;br /&gt;
 '''%''' ./phpscript | lynx -stdin&lt;br /&gt;
In this case, we've piped to &amp;lt;code&amp;gt;lynx&amp;lt;/code&amp;gt;, so that we can browse the nicely formatted result.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                                              Defined Constants (p1 of 154)&lt;br /&gt;
&lt;br /&gt;
                             Hello from PHP 5.1.4&lt;br /&gt;
&lt;br /&gt;
 Array&lt;br /&gt;
 (&lt;br /&gt;
    [E_ERROR] =&amp;gt; 1&lt;br /&gt;
    [E_WARNING] =&amp;gt; 2&lt;br /&gt;
    [E_PARSE] =&amp;gt; 4&lt;br /&gt;
    [E_NOTICE] =&amp;gt; 8&lt;br /&gt;
 -- press space for more, use arrow keys to move, '?' for help, 'q' to quit.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or, we could have executed the command directly from the command line:&lt;br /&gt;
 '''%''' php -r 'echo &amp;quot;Hello from PHP &amp;quot;. phpversion() . &amp;quot;\n&amp;quot;; print_r(get_defined_constants());'&lt;br /&gt;
 Hello from PHP 5.1.4 &lt;br /&gt;
 Array&lt;br /&gt;
 (&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
==PHP Website==&lt;br /&gt;
[http://www.php.net http://www.php.net]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Ports and Packages]]&lt;br /&gt;
[[Category: Configuring FreeBSD]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Samba,_Installation</id>
		<title>Samba, Installation</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Samba,_Installation"/>
				<updated>2007-03-07T07:16:36Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Installing Samba under FreeBSD is simple and painless. The easiest method is to install from ports, which also guarantees you'll get the latest released version. Be sure to use [[CVSUP]] to update your ports tree before installing any software.&lt;br /&gt;
&lt;br /&gt;
See also: [[Samba]] - [[Samba_Configuration]]&lt;br /&gt;
&lt;br /&gt;
All operations listed in this article must be performed by the [[superuser]], so [[su]] to root.&lt;br /&gt;
&lt;br /&gt;
This install procedure will walk you through a basic, simple Samba install. No printers, no complicated options, just samba with some extended logging options which you don't even have to ever look at to run or use samba.&lt;br /&gt;
&lt;br /&gt;
First, find the port:&lt;br /&gt;
&amp;lt;pre&amp;gt;oyabun# cd /usr/ports/net&lt;br /&gt;
oyabun# ls | grep samba&lt;br /&gt;
gnosamba&lt;br /&gt;
py-samba&lt;br /&gt;
samba&lt;br /&gt;
samba-devel&lt;br /&gt;
samba-libsmbclient&lt;br /&gt;
samba3&lt;br /&gt;
sambasentinel&lt;br /&gt;
oyabun#&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This lists all samba-related ports in the net category. We want the '''samba''' port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;oyabun# cd samba&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Common Tasks]]&lt;br /&gt;
&lt;br /&gt;
Now, we need to install it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;oyabun# make install clean&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will start the installation process, downloading and compiling the necessary files. It will '''install''' it (after it asks some questions) and then it will '''clean''' all the work files after it's done.&lt;br /&gt;
&lt;br /&gt;
Shortly, you'll see a menu, which you should configure thusly:&lt;br /&gt;
&lt;br /&gt;
[[Image:Samba_Installation_installmenu.png]]&lt;br /&gt;
&lt;br /&gt;
'''With syslog''' will enable some logging to the syslog, as well as Samba's internal logs. '''Without CUPS''' means you don't want to configure print services right now, you just want Samba to share your files.&lt;br /&gt;
&lt;br /&gt;
Make sure both of those options are selected (by moving the arrows keys and selecting them with space) then hit enter. Samba will now be installed, and barring accidents or problems, you will eventually be dumped back to a shell# prompt.&lt;br /&gt;
&lt;br /&gt;
Make sure you have the following line in your /etc/rc.conf so that samba will startup on boot.&lt;br /&gt;
 samba_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
That's it. You just installed Samba. Now you need to configure it ( [[Samba_Configuration]] ), but you're done with step one.&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Samba,_Installation</id>
		<title>Samba, Installation</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Samba,_Installation"/>
				<updated>2007-03-07T07:16:19Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Installing Samba under FreeBSD is simple and painless. The easiest method is to install from ports, which also guarantees you'll get the latest released version. Be sure to use [[CVSUP]] to update your ports tree before installing any software.&lt;br /&gt;
&lt;br /&gt;
See also: [[Samba]] - [[Samba_Configuration]]&lt;br /&gt;
&lt;br /&gt;
All operations listed in this article must be performed by the [[superuser]], so [[su]] to root.&lt;br /&gt;
&lt;br /&gt;
This install procedure will walk you through a basic, simple Samba install. No printers, no complicated options, just samba with some extended logging options which you don't even have to ever look at to run or use samba.&lt;br /&gt;
&lt;br /&gt;
First, find the port:&lt;br /&gt;
&amp;lt;pre&amp;gt;oyabun# cd /usr/ports/net&lt;br /&gt;
oyabun# ls | grep samba&lt;br /&gt;
gnosamba&lt;br /&gt;
py-samba&lt;br /&gt;
samba&lt;br /&gt;
samba-devel&lt;br /&gt;
samba-libsmbclient&lt;br /&gt;
samba3&lt;br /&gt;
sambasentinel&lt;br /&gt;
oyabun#&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This lists all samba-related ports in the net category. We want the '''samba''' port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;oyabun# cd samba&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Common Tasks]]&lt;br /&gt;
&lt;br /&gt;
Now, we need to install it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;oyabun# make install clean&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will start the installation process, downloading and compiling the necessary files. It will '''install''' it (after it asks some questions) and then it will '''clean''' all the work files after it's done.&lt;br /&gt;
&lt;br /&gt;
Shortly, you'll see a menu, which you should configure thusly:&lt;br /&gt;
&lt;br /&gt;
[[Image:Samba_Installation_installmenu.png]]&lt;br /&gt;
&lt;br /&gt;
'''With syslog''' will enable some logging to the syslog, as well as Samba's internal logs. '''Without CUPS''' means you don't want to configure print services right now, you just want Samba to share your files.&lt;br /&gt;
&lt;br /&gt;
Make sure both of those options are selected (by moving the arrows keys and selecting them with space) then hit enter. Samba will now be installed, and barring accidents or problems, you will eventually be dumped back to a shell# prompt.&lt;br /&gt;
&lt;br /&gt;
Make sure you have the following line in your /etc/rc.conf so that samba will startup on boot.&lt;br /&gt;
samba_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
That's it. You just installed Samba. Now you need to configure it ( [[Samba_Configuration]] ), but you're done with step one.&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Packages,_Installing</id>
		<title>Packages, Installing</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Packages,_Installing"/>
				<updated>2006-11-29T23:47:31Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Installing from a pre-built package is faster than [[Ports, Installing|installing ports]] but the trade-off is that you don't get to configure the package the way that you would like to: you must take the package as the person who made the package compiled it. &lt;br /&gt;
&lt;br /&gt;
It's a fairly straightfoward affair, you just need to use the [[pkg_add]] command, and if you don't have the .tbz package already on your system (which you likely won't,) use the -r switch to get the package remotely:&lt;br /&gt;
&lt;br /&gt;
 %pwd&lt;br /&gt;
 /usr/home/dave&lt;br /&gt;
 %su -m&lt;br /&gt;
 Password:&lt;br /&gt;
 %pwd&lt;br /&gt;
 /usr/home/dave&lt;br /&gt;
 %pkg_add -r xmotd&lt;br /&gt;
 Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.3-release/Latest/xmotd.tbz... Done.&lt;br /&gt;
 %&lt;br /&gt;
&lt;br /&gt;
You can create a [[script to install common packages]] so that you get them all in one go, if you like.&lt;br /&gt;
&lt;br /&gt;
==Other Package FTP sties==&lt;br /&gt;
The following list can be used if you cannot find the package using 'pkg_add -r &amp;lt;package name&amp;gt;'.&lt;br /&gt;
&lt;br /&gt;
ftp://ftp.riken.go.jp/pub/FreeBSD/ports/i386/packages-6.2-release&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To install a package using this site simple type the following:&lt;br /&gt;
 # pkg_add -K ftp://ftp.riken.go.jp/pub/FreeBSD/ports/i386/packages-6.2-release/editors/openoffice.org-2.0.4.tbz&lt;br /&gt;
&lt;br /&gt;
The -K is optional, it tells pkg_add to keep the files which maybe useful if you have more than one machine as you could just copy all the tbz files to the next machine and do it locally with command:&lt;br /&gt;
&lt;br /&gt;
 # pkg_add openoffice.org-2.0.4.tbz&lt;br /&gt;
&lt;br /&gt;
Don't bother downloading the package and doing it locally as you will spend most of your life manually downloading the dependancies.&lt;br /&gt;
&lt;br /&gt;
[[Category:Common Tasks]]&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Flash</id>
		<title>Flash</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Flash"/>
				<updated>2006-11-26T04:46:55Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: /* Linux Opera */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How to install flash==&lt;br /&gt;
&lt;br /&gt;
First install linuxpluginwrapper&lt;br /&gt;
 # pkg_add -r linuxpluginwrapper&lt;br /&gt;
Or with options:&lt;br /&gt;
 # cd /usr/ports/*/linuxpluginwrapper;make install&lt;br /&gt;
&lt;br /&gt;
Next install flashplugin7&lt;br /&gt;
 # cd /usr/ports/*/linux-flashplugin7;make install&lt;br /&gt;
&lt;br /&gt;
If it cannot fetch the file download it from here:&lt;br /&gt;
http://freshmeat.net/projects/flashplugin/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===libmap.conf===&lt;br /&gt;
&lt;br /&gt;
Add the following to /etc/libmap.conf&lt;br /&gt;
 # Flash7 for Firefox&lt;br /&gt;
 [/usr/local/lib/npapi/linux-flashplugin/libflashplayer.so]&lt;br /&gt;
 libpthread.so.0                 pluginwrapper/flash7.so&lt;br /&gt;
 libdl.so.2                      pluginwrapper/flash7.so&lt;br /&gt;
 libz.so.1                       libz.so.3&lt;br /&gt;
 libstdc++-libc6.2-2.so.3        libstdc++.so.4&lt;br /&gt;
 libm.so.6                       libm.so.4&lt;br /&gt;
 libc.so.6                       pluginwrapper/flash7.so&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Flash6 for Konqueror&lt;br /&gt;
 [/usr/X11R6/lib/linux-flashplugin6/libflashplayer.so]&lt;br /&gt;
 libpthread.so.0                 pluginwrapper/flash6.so&lt;br /&gt;
 libdl.so.2                      pluginwrapper/flash6.so&lt;br /&gt;
 libz.so.1                       libz.so.3&lt;br /&gt;
 libstdc++-libc6.2-2.so.3        libstdc++.so.5&lt;br /&gt;
 libm.so.6                       libm.so.4&lt;br /&gt;
 libc.so.6                       pluginwrapper/flash6.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Konqueror===&lt;br /&gt;
&lt;br /&gt;
Go to Settings -&amp;gt; Configure Konqueror -&amp;gt; plugins&lt;br /&gt;
&lt;br /&gt;
Create the directory and link files&lt;br /&gt;
 # mkdir /usr/X11R6/lib/linux-flashplugin6&lt;br /&gt;
 # cd /usr/X11R6/lib/linux-flashplugin6&lt;br /&gt;
 # ln -s /usr/local/lib/npapi/linux-flashplugin/flashplayer.xpt&lt;br /&gt;
 # ln -s /usr/local/lib/npapi/linux-flashplugin/libflashplayer.so&lt;br /&gt;
&lt;br /&gt;
Now hit 'Scan for new plugins'&lt;br /&gt;
&lt;br /&gt;
Now go and test it out.&lt;br /&gt;
&lt;br /&gt;
===Native Firefox===&lt;br /&gt;
&lt;br /&gt;
You will need to patch a file and compile it's all explained on this site:&lt;br /&gt;
&lt;br /&gt;
http://www.jail.se/freebsd.html&lt;br /&gt;
&lt;br /&gt;
===Linux Opera===&lt;br /&gt;
&lt;br /&gt;
I've noticed that some things work better under linux-opera than any other browser on FreeBSD.  For instance the Asterisk Flash Operator Panel will only work properlly under this port and YouTube works with sound and video under opera!&lt;br /&gt;
&lt;br /&gt;
All you should have to do is install it.  Opera will automatically use the libmap.conf file to find the flash libraries and load them.&lt;br /&gt;
 # pkg_add -r linux-opera&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
http://freebsd.kde.org/howtos/konqueror-flash.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category : FreeBSD Multimedia]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Vim</id>
		<title>Vim</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Vim"/>
				<updated>2006-11-01T11:46:45Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Vim'' is a very powerful text editor. It is an extended version of [[Vi]] and means ''VI iMproved''. It supports many features such as syntax highlighting or folding, can keep backups of files, and many others ...&lt;br /&gt;
&lt;br /&gt;
Note that vim is not part of FreeBSD, you will have to install it before running it. Once installed, you are advised to copy the file &amp;quot;/usr/local/share/vim/vim63/vimrc_example.vim&amp;quot; into your home directory and rename it &amp;quot;.vimrc&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
See also [[vi]], [[ee]] (commonly aliased under FreeBSD as &amp;quot;[[edit]]&amp;quot;), [[joe]], [[nano]], [[pico]], [[vim]] or [[emacs]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===VIMRC Extras===&lt;br /&gt;
The example has most options but here are some more that you can insert on the end of your ~/.vimrc file&lt;br /&gt;
&lt;br /&gt;
 set tabstop=4       &amp;quot; numbers of spaces of tab character&lt;br /&gt;
 set shiftwidth=4    &amp;quot; numbers of spaces to (auto)indent&lt;br /&gt;
 set number          &amp;quot; show line numbers&lt;br /&gt;
&lt;br /&gt;
===VIMRC Colors===&lt;br /&gt;
If you use a dark terminal window use&lt;br /&gt;
 set background=dark&lt;br /&gt;
&lt;br /&gt;
[[Category:Ports and Packages]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Vim</id>
		<title>Vim</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Vim"/>
				<updated>2006-11-01T03:53:56Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: /* VIMRC Extras */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Vim'' is a very powerful text editor. It is an extended version of [[Vi]] and means ''VI iMproved''. It supports many features such as syntax highlighting or folding, can keep backups of files, and many others ...&lt;br /&gt;
&lt;br /&gt;
Note that vim is not part of FreeBSD, you will have to install it before running it. Once installed, you are advised to copy the file &amp;quot;/usr/local/share/vim/vim63/vimrc_example.vim&amp;quot; into your home directory and rename it &amp;quot;.vimrc&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
See also [[vi]], [[ee]] (commonly aliased under FreeBSD as &amp;quot;[[edit]]&amp;quot;), [[joe]], [[nano]], [[pico]], [[vim]] or [[emacs]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===VIMRC Extras===&lt;br /&gt;
The example has most options but here are some more that you can insert on the end of your ~/.vimrc file&lt;br /&gt;
&lt;br /&gt;
 set tabstop=4       &amp;quot; numbers of spaces of tab character&lt;br /&gt;
 set shiftwidth=4    &amp;quot; numbers of spaces to (auto)indent&lt;br /&gt;
 set number          &amp;quot; show line numbers&lt;br /&gt;
&lt;br /&gt;
[[Category:Ports and Packages]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Vim</id>
		<title>Vim</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Vim"/>
				<updated>2006-11-01T03:53:33Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Vim'' is a very powerful text editor. It is an extended version of [[Vi]] and means ''VI iMproved''. It supports many features such as syntax highlighting or folding, can keep backups of files, and many others ...&lt;br /&gt;
&lt;br /&gt;
Note that vim is not part of FreeBSD, you will have to install it before running it. Once installed, you are advised to copy the file &amp;quot;/usr/local/share/vim/vim63/vimrc_example.vim&amp;quot; into your home directory and rename it &amp;quot;.vimrc&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
See also [[vi]], [[ee]] (commonly aliased under FreeBSD as &amp;quot;[[edit]]&amp;quot;), [[joe]], [[nano]], [[pico]], [[vim]] or [[emacs]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===VIMRC Extras===&lt;br /&gt;
The example has most options but here are some more that you can insert on the end of your ~/.vimrc file&lt;br /&gt;
&lt;br /&gt;
set tabstop=4       &amp;quot; numbers of spaces of tab character&lt;br /&gt;
set shiftwidth=4    &amp;quot; numbers of spaces to (auto)indent&lt;br /&gt;
set number          &amp;quot; show line numbers&lt;br /&gt;
&lt;br /&gt;
[[Category:Ports and Packages]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Flash</id>
		<title>Flash</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Flash"/>
				<updated>2006-10-31T03:05:14Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How to install flash==&lt;br /&gt;
&lt;br /&gt;
First install linuxpluginwrapper&lt;br /&gt;
 # pkg_add -r linuxpluginwrapper&lt;br /&gt;
Or with options:&lt;br /&gt;
 # cd /usr/ports/*/linuxpluginwrapper;make install&lt;br /&gt;
&lt;br /&gt;
Next install flashplugin7&lt;br /&gt;
 # cd /usr/ports/*/linux-flashplugin7;make install&lt;br /&gt;
&lt;br /&gt;
If it cannot fetch the file download it from here:&lt;br /&gt;
http://freshmeat.net/projects/flashplugin/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===libmap.conf===&lt;br /&gt;
&lt;br /&gt;
Add the following to /etc/libmap.conf&lt;br /&gt;
 # Flash7 for Firefox&lt;br /&gt;
 [/usr/local/lib/npapi/linux-flashplugin/libflashplayer.so]&lt;br /&gt;
 libpthread.so.0                 pluginwrapper/flash7.so&lt;br /&gt;
 libdl.so.2                      pluginwrapper/flash7.so&lt;br /&gt;
 libz.so.1                       libz.so.3&lt;br /&gt;
 libstdc++-libc6.2-2.so.3        libstdc++.so.4&lt;br /&gt;
 libm.so.6                       libm.so.4&lt;br /&gt;
 libc.so.6                       pluginwrapper/flash7.so&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Flash6 for Konqueror&lt;br /&gt;
 [/usr/X11R6/lib/linux-flashplugin6/libflashplayer.so]&lt;br /&gt;
 libpthread.so.0                 pluginwrapper/flash6.so&lt;br /&gt;
 libdl.so.2                      pluginwrapper/flash6.so&lt;br /&gt;
 libz.so.1                       libz.so.3&lt;br /&gt;
 libstdc++-libc6.2-2.so.3        libstdc++.so.5&lt;br /&gt;
 libm.so.6                       libm.so.4&lt;br /&gt;
 libc.so.6                       pluginwrapper/flash6.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Konqueror===&lt;br /&gt;
&lt;br /&gt;
Go to Settings -&amp;gt; Configure Konqueror -&amp;gt; plugins&lt;br /&gt;
&lt;br /&gt;
Create the directory and link files&lt;br /&gt;
 # mkdir /usr/X11R6/lib/linux-flashplugin6&lt;br /&gt;
 # cd /usr/X11R6/lib/linux-flashplugin6&lt;br /&gt;
 # ln -s /usr/local/lib/npapi/linux-flashplugin/flashplayer.xpt&lt;br /&gt;
 # ln -s /usr/local/lib/npapi/linux-flashplugin/libflashplayer.so&lt;br /&gt;
&lt;br /&gt;
Now hit 'Scan for new plugins'&lt;br /&gt;
&lt;br /&gt;
Now go and test it out.&lt;br /&gt;
&lt;br /&gt;
===Native Firefox===&lt;br /&gt;
&lt;br /&gt;
You will need to patch a file and compile it's all explained on this site:&lt;br /&gt;
&lt;br /&gt;
http://www.jail.se/freebsd.html&lt;br /&gt;
&lt;br /&gt;
===Linux Opera===&lt;br /&gt;
&lt;br /&gt;
I've noticed that some things work better under linux-opera than any other browser on FreeBSD.  For instance the Asterisk Flash Operator Panel will only work properlly under this port.&lt;br /&gt;
&lt;br /&gt;
All you should have to do is install it.  Opera will automatically use the libmap.conf file to find the flash libraries and load them.&lt;br /&gt;
 # pkg_add -r linux-opera&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
http://freebsd.kde.org/howtos/konqueror-flash.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category : FreeBSD Multimedia]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Sound_card</id>
		<title>Sound card</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Sound_card"/>
				<updated>2006-10-31T02:22:18Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In order to get sound out of your FreeBSD box, you'll need to either load your sound driver module or compile sound support in your kernel -- it's not installed by default. For this you need to use [[kldload]] to load your sound driver. If you don't know which sound card you have -- and therefore don't know which driver to use -- you can load the generic [[snd_driver]] module (in 5.x systems -- in 4.x you need to load the [[snd]] module), which works for most cards, like so:&lt;br /&gt;
 samizdata# kldload snd_driver &lt;br /&gt;
&lt;br /&gt;
If that works, you'll probably want it to load automatically at boot time.  To do so, you'll want to append a line about snd_driver to your loader.conf:&lt;br /&gt;
&lt;br /&gt;
 samizdata# echo snd_driver_load=&amp;quot;YES&amp;quot; &amp;gt;&amp;gt; /boot/loader.conf&lt;br /&gt;
&lt;br /&gt;
And presto, when booting, your system will always try to load snd_driver.&lt;br /&gt;
&lt;br /&gt;
If you don't know your sound card type the following:&lt;br /&gt;
 # man sound&lt;br /&gt;
Now look at the SEE ALSO section and start loading each of these until your sound works.&lt;br /&gt;
&lt;br /&gt;
For instance for an ASUS A8V board it's a running a VIA sound card so I would run:&lt;br /&gt;
 # kldload snd_via8233&lt;br /&gt;
&lt;br /&gt;
If this works I put this line into my /boot/loader.conf&lt;br /&gt;
 snd_via8233_load=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
That way it's loaded at boot time without having to recompile the kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== FreeBSD5.4 and above Sound ==&lt;br /&gt;
&lt;br /&gt;
Since 27/07/04 the sound system has changed a lot and now to install sound under FreeBSD you have to do the following:&lt;br /&gt;
  freebsd# kldload sound&lt;br /&gt;
&lt;br /&gt;
Then find out your sound card.  I'm using an ASUS A7N8X motherboard with Nvidia onboard sound so I typed  &lt;br /&gt;
  freebsd# kldload snd_ich&lt;br /&gt;
&lt;br /&gt;
To find out what driver will work with your sound board/chip have a look at the NOTES file in&lt;br /&gt;
/usr/src/sys/conf/NOTES - search for 'snd' and you will find descriptions of all the different sound drivers.  (The impatient may want to try running [[Sound_card:_checking_drivers|this shell script]] instead, which will automatically check each sound driver installed on the system to see if it works, and let you know what it found out.)&lt;br /&gt;
&lt;br /&gt;
Then when I had tested this and it worked I entered the following into my kernel:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 # Base sound driver - required for all cards&lt;br /&gt;
 device sound&lt;br /&gt;
 &lt;br /&gt;
 # Device-specific driver - may be different on other systems besides mine!&lt;br /&gt;
 device snd_ich&lt;br /&gt;
&lt;br /&gt;
and recompiled.  However, recompiling the kernel is absolutely NOT necessary for sound support, as you can just dynamically load the modules for sound support at boot time, by adding lines to /boot/loader.conf:&lt;br /&gt;
&lt;br /&gt;
 sound_load=&amp;quot;YES&amp;quot;&lt;br /&gt;
 snd_ich_load=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Of course remember to replace snd_ich_load with whatever your individual device is.&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
[http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/sound-setup.html FreeBSD Handbook]&lt;br /&gt;
&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/K3b</id>
		<title>K3b</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/K3b"/>
				<updated>2006-10-31T01:07:23Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;K3b is a burning program which will burn just about anything to CD/DVD.&lt;br /&gt;
&lt;br /&gt;
Here is a quick config guide to getting k3b working under FreeBSD6.X&lt;br /&gt;
&lt;br /&gt;
==Setup IDE CDROM Drive==&lt;br /&gt;
Load your atapicam driver to see your IDE drive as part of the SCSI system.&lt;br /&gt;
&lt;br /&gt;
Add this line to /boot/loader.conf&lt;br /&gt;
 atapicam_load=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Type the following&lt;br /&gt;
 # kldload atapicam&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Change /etc/fstab CDROM lines&lt;br /&gt;
From:&lt;br /&gt;
 /dev/acd0                /cdrom          cd9660  ro,noauto       0       0&lt;br /&gt;
&lt;br /&gt;
To:&lt;br /&gt;
 /dev/cd0                /cdrom          cd9660  ro,noauto       0       0&lt;br /&gt;
&lt;br /&gt;
Check that your devices are showing up:&lt;br /&gt;
 # camcontrol devlist&lt;br /&gt;
 &amp;lt;HL-DT-ST DVDRAM GMA-4020B A106&amp;gt;   at scbus0 target 1 lun 0 (pass1,cd1)&lt;br /&gt;
&lt;br /&gt;
==Setup for users==&lt;br /&gt;
&lt;br /&gt;
Change some file permissions&lt;br /&gt;
 # chown root /usr/local/bin/cdrecord&lt;br /&gt;
 # chmod 4711 /usr/local/bin/cdrecord&lt;br /&gt;
&lt;br /&gt;
For the user who you want to be able to burn, add a mount point to their home directory for the cdrom:&lt;br /&gt;
 $ mkdir ~/cd0&lt;br /&gt;
&lt;br /&gt;
Add it to fstab&lt;br /&gt;
 /dev/cd0c  /usr/home/XXX/cd0  cd9660  ro,noauto,nodev,nosuid  0  0&lt;br /&gt;
&lt;br /&gt;
===Allow user mounts===&lt;br /&gt;
&lt;br /&gt;
add the following to /etc/sysctl.conf &lt;br /&gt;
 vfs.usermount=1 &lt;br /&gt;
&lt;br /&gt;
Change it manually&lt;br /&gt;
 # sysctl -w vfs.usermount=1&lt;br /&gt;
&lt;br /&gt;
Edit /etc/devfs.conf and add the following:&lt;br /&gt;
 own       /dev/cd0    root:operator&lt;br /&gt;
 perm      /dev/cd0    0666&lt;br /&gt;
 own       /dev/pass0  root:operator&lt;br /&gt;
 perm      /dev/pass0  0666&lt;br /&gt;
 own       /dev/xpt0   root:operator&lt;br /&gt;
 perm      /dev/xpt0   0666&lt;br /&gt;
&lt;br /&gt;
Change it manually&lt;br /&gt;
 # chmod 666 /dev/cd0&lt;br /&gt;
 # chmod 666 /dev/pass0&lt;br /&gt;
 # chmod 666 /dev/xpt0&lt;br /&gt;
&lt;br /&gt;
add to /etc/rc.conf&lt;br /&gt;
 devd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Create a temp area for CD images&lt;br /&gt;
 # mkdir /usr/cdtemp&lt;br /&gt;
 # chmod 777 /usr/cdtemp&lt;br /&gt;
&lt;br /&gt;
===More Info===&lt;br /&gt;
For more information refer to the documentation from the k3b installation&lt;br /&gt;
 # pkg_info -Dx k3b&lt;br /&gt;
&lt;br /&gt;
==Extras==&lt;br /&gt;
Here I will explain how to burn to either extra mediums or different types of data ie: Audio.&lt;br /&gt;
&lt;br /&gt;
===DVD burning===&lt;br /&gt;
Install dvd+rw-tools&lt;br /&gt;
 # pkg_add -r dvd+rw-tools&lt;br /&gt;
&lt;br /&gt;
[[Category : Ports and Packages]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/K3b</id>
		<title>K3b</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/K3b"/>
				<updated>2006-10-31T01:04:52Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;K3b is a burning program which will burn just about anything to CD/DVD.&lt;br /&gt;
&lt;br /&gt;
Here is a quick config guide to getting k3b working under FreeBSD6.X&lt;br /&gt;
&lt;br /&gt;
==Setup IDE CDROM Drive==&lt;br /&gt;
Load your atapicam driver to see your IDE drive as part of the SCSI system.&lt;br /&gt;
&lt;br /&gt;
Add this line to /boot/loader.conf&lt;br /&gt;
 atapicam_load=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Type the following&lt;br /&gt;
 # kldload atapicam&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Change /etc/fstab CDROM lines&lt;br /&gt;
From:&lt;br /&gt;
 /dev/acd0                /cdrom          cd9660  ro,noauto       0       0&lt;br /&gt;
&lt;br /&gt;
To:&lt;br /&gt;
 /dev/cd0                /cdrom          cd9660  ro,noauto       0       0&lt;br /&gt;
&lt;br /&gt;
Check that your devices are showing up:&lt;br /&gt;
 # camcontrol devlist&lt;br /&gt;
 &amp;lt;HL-DT-ST DVDRAM GMA-4020B A106&amp;gt;   at scbus0 target 1 lun 0 (pass1,cd1)&lt;br /&gt;
&lt;br /&gt;
==Setup for users==&lt;br /&gt;
&lt;br /&gt;
Change some file permissions&lt;br /&gt;
 # chown root /usr/local/bin/cdrecord&lt;br /&gt;
 # chmod 4711 /usr/local/bin/cdrecord&lt;br /&gt;
&lt;br /&gt;
For the user who you want to be able to burn, add a mount point to their home directory for the cdrom:&lt;br /&gt;
 $ mkdir ~/cd0&lt;br /&gt;
&lt;br /&gt;
Add it to fstab&lt;br /&gt;
 /dev/cd0c  /usr/home/XXX/cd0  cd9660  ro,noauto,nodev,nosuid  0  0&lt;br /&gt;
&lt;br /&gt;
===Allow user mounts===&lt;br /&gt;
&lt;br /&gt;
add the following to /etc/sysctl.conf &lt;br /&gt;
 vfs.usermount=1 &lt;br /&gt;
&lt;br /&gt;
Change it manually&lt;br /&gt;
 # sysctl -w vfs.usermount=1&lt;br /&gt;
&lt;br /&gt;
Edit /etc/devfs.conf and add the following:&lt;br /&gt;
 own       /dev/cd0    root:operator&lt;br /&gt;
 perm      /dev/cd0    0666&lt;br /&gt;
 own       /dev/pass0  root:operator&lt;br /&gt;
 perm      /dev/pass0  0666&lt;br /&gt;
 own       /dev/xpt0   root:operator&lt;br /&gt;
 perm      /dev/xpt0   0666&lt;br /&gt;
&lt;br /&gt;
Change it manually&lt;br /&gt;
 # chmod 666 /dev/cd0&lt;br /&gt;
 # chmod 666 /dev/pass0&lt;br /&gt;
 # chmod 666 /dev/xpt0&lt;br /&gt;
&lt;br /&gt;
add to /etc/rc.conf&lt;br /&gt;
 devd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Create a temp area for CD images&lt;br /&gt;
 # mkdir /usr/cdtemp&lt;br /&gt;
 # chmod 777 /usr/cdtemp&lt;br /&gt;
&lt;br /&gt;
===More Info===&lt;br /&gt;
For more information refer to the documentation from the k3b installation&lt;br /&gt;
 # pkg_info -Dx k3b&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category : Ports and Packages]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Samba</id>
		<title>Samba</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Samba"/>
				<updated>2006-10-30T22:14:02Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Samba ([http://www.samba.org samba.org]) is an open-source program that, in a nutshell, makes FreeBSD (or any flavor of Unix it has been ported to) look and act like a Windows machine from the perspective of REAL windows machines. &lt;br /&gt;
&lt;br /&gt;
This means Samba can be used to set up network shares (file and printer) that Win.x machines on the same network can access, just as if the FreeBSD machine was an actual Windows server.&lt;br /&gt;
&lt;br /&gt;
This main page will be updated as articles are added, and will act as a portal to the rest of the Samba-related content on this wiki.&lt;br /&gt;
&lt;br /&gt;
These articles will cover installing Samba under FreeBSD, configuring it, and configuring the client windows machines.&lt;br /&gt;
&lt;br /&gt;
[[Samba_Installation]] - &lt;br /&gt;
[[Samba_Configuration]]&lt;br /&gt;
[[Category:Ports and Packages]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Samba</id>
		<title>Samba</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Samba"/>
				<updated>2006-10-30T22:13:00Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Samba ([http://www.samba.org samba.org]) is an open-source program that, in a nutshell, makes FreeBSD (or any flavor of Unix it has been ported to) look and act like a Windows machine from the perspective of REAL windows machines. &lt;br /&gt;
&lt;br /&gt;
This means Samba can be used to set up network shares (file and printer) that Win.x machines on the same network can access, just as if the FreeBSD machine was an actual Windows server.&lt;br /&gt;
&lt;br /&gt;
This main page will be updated as articles are added, and will act as a portal to the rest of the Samba-related content on this wiki.&lt;br /&gt;
&lt;br /&gt;
These articles will cover installing Samba under FreeBSD, configuring it, and configuring the client windows machines.&lt;br /&gt;
&lt;br /&gt;
[[Samba_Installation]] - &lt;br /&gt;
[[Samba_Configuration]] -&lt;br /&gt;
[[SWAT_-_Samba_Web_Interface‎]]&lt;br /&gt;
[[Category:Ports and Packages]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Samba</id>
		<title>Samba</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Samba"/>
				<updated>2006-10-30T22:12:22Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Samba ([http://www.samba.org samba.org]) is an open-source program that, in a nutshell, makes FreeBSD (or any flavor of Unix it has been ported to) look and act like a Windows machine from the perspective of REAL windows machines. &lt;br /&gt;
&lt;br /&gt;
This means Samba can be used to set up network shares (file and printer) that Win.x machines on the same network can access, just as if the FreeBSD machine was an actual Windows server.&lt;br /&gt;
&lt;br /&gt;
This main page will be updated as articles are added, and will act as a portal to the rest of the Samba-related content on this wiki.&lt;br /&gt;
&lt;br /&gt;
These articles will cover installing Samba under FreeBSD, configuring it, and configuring the client windows machines.&lt;br /&gt;
&lt;br /&gt;
[[Samba_Installation]] - &lt;br /&gt;
[[Samba_Configuration]] -&lt;br /&gt;
[[SWAT - Samba Web Interface‎]]&lt;br /&gt;
[[Category:Ports and Packages]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Samba,_SWAT_(Samba_Web_Interface)</id>
		<title>Samba, SWAT (Samba Web Interface)</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Samba,_SWAT_(Samba_Web_Interface)"/>
				<updated>2006-10-30T22:11:05Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Web Interface (SWAT)==&lt;br /&gt;
If you would like to use a Web interface to make this configuration much easier then you need to configure SWAT&lt;br /&gt;
&lt;br /&gt;
uncomment the following line in your /etc/inetd.conf&lt;br /&gt;
 swat    stream  tcp     nowait/400      root    /usr/local/sbin/swat    swat&lt;br /&gt;
&lt;br /&gt;
Restart inetd&lt;br /&gt;
 # killall -HUP inetd&lt;br /&gt;
&lt;br /&gt;
Now you should be able to go to the address&lt;br /&gt;
 http://localhost:901&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE&amp;lt;/b&amp;gt;&lt;br /&gt;
SWAT has been known to have security flaws, use at own risk.&lt;br /&gt;
&lt;br /&gt;
[[Category:Common Tasks]] [[Category:Configuring FreeBSD]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Burncd</id>
		<title>Burncd</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Burncd"/>
				<updated>2006-10-30T02:37:52Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When using burncd your data must be put into a CD Image (iso file) before hand.&lt;br /&gt;
&lt;br /&gt;
Install mkisofs&lt;br /&gt;
 # pkg_add -r cdrtools&lt;br /&gt;
&lt;br /&gt;
Make sure /dev/acd* have 666 permissions so users can write cd's&lt;br /&gt;
 # chmod 666 /dev/acd*&lt;br /&gt;
&lt;br /&gt;
Make the iso&lt;br /&gt;
 # mkisofs -o file.iso -r &amp;lt;files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Burn the CD&lt;br /&gt;
 # burncd -f /dev/acd0 data file.iso fixate&lt;br /&gt;
Or do both commands in one:&lt;br /&gt;
 # mkisofs -r mystuff | burncd -f /dev/acd0 -s max data – fixate&lt;br /&gt;
&lt;br /&gt;
Shortcut (if you are burning to acd0 you don't have to use -f as acd0 is default)&lt;br /&gt;
 # mkisofs -r mystuff | burncd data – fixate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Burncd</id>
		<title>Burncd</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Burncd"/>
				<updated>2006-10-30T02:31:40Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When using burncd your data must be put into a CD Image (iso file) before hand.&lt;br /&gt;
&lt;br /&gt;
Install mkisofs&lt;br /&gt;
 # pkg_add -r cdrtools&lt;br /&gt;
&lt;br /&gt;
Make sure /dev/acd* have 666 permissions so users can write cd's&lt;br /&gt;
 # chmod 666 /dev/acd*&lt;br /&gt;
&lt;br /&gt;
Make the iso&lt;br /&gt;
 # mkisofs -o file.iso -r &amp;lt;files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Burn the CD&lt;br /&gt;
 # burncd -f /dev/acd0 data file.iso fixate&lt;br /&gt;
Or do both commands in one:&lt;br /&gt;
 # mkisofs -r mystuff | burncd -f /dev/acd0 -s max data – fixate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Burncd</id>
		<title>Burncd</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Burncd"/>
				<updated>2006-10-30T01:46:10Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When using burncd your data must be put into a CD Image (iso file) before hand.&lt;br /&gt;
&lt;br /&gt;
Install mkisofs&lt;br /&gt;
 # pkg_add -r cdrtools&lt;br /&gt;
&lt;br /&gt;
Make sure /dev/acd* have 666 permissions so users can write cd's&lt;br /&gt;
 # chmod 666 /dev/acd*&lt;br /&gt;
&lt;br /&gt;
Make the iso&lt;br /&gt;
 # mkisofs -o file.iso -r &amp;lt;files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Burn the CD&lt;br /&gt;
 # burncd -f /dev/acd1 data file.iso fixate&lt;br /&gt;
Or do both commands in one:&lt;br /&gt;
 # mkisofs -r mystuff | burncd -s max data – fixate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FreeBSD for Workstations]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Samba,_Configuration</id>
		<title>Samba, Configuration</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Samba,_Configuration"/>
				<updated>2006-10-29T23:21:44Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article will walk you through a quick setup of [[Samba]] - creating directories to be shared, telling Samba to share those directories, how to limit access to different shares, and finally, how to set up a windows machine to have unfettered access to appropriate shares based on the currently logged in user. This article assumes you have a fresh, unconfigured [[Samba Installation]] to work with.&lt;br /&gt;
&lt;br /&gt;
== Setting up your shares on the machine ==&lt;br /&gt;
&lt;br /&gt;
First we need to decide what we're going to share, or at the very least, where the shares will actually reside. The simplest way to do this is to simply create a new directory in an easy to remember place, say, '''/usr'''. You can either share that new folder directly, or create several new directories within it, and limit access to each directory based on criteria I will make clear later in this article. For now, let's assume you have two sets of documents, public and private, and that you want to limit users' access to those documents based on who they are - they can either access both, or just public. So:&lt;br /&gt;
&lt;br /&gt;
 Oyabun# '''mkdir /usr/smbroot'''&lt;br /&gt;
 Oyabun# '''mkdir /usr/smbroot/public'''&lt;br /&gt;
 Oyabun# '''mkdir /usr/smbroot/private'''&lt;br /&gt;
&lt;br /&gt;
The first command creates the '''/usr/smbroot/''' directory, which will hold all of your shares. The second command creates the public directory, which '''all''' users will be able to access, and the third command creates the private directory, which only '''select''' users will be able to access.&lt;br /&gt;
&lt;br /&gt;
Now we need to set [[permissions]] on these directories. The [[permissions]] article goes into great detail about permissions, but a quick run through here will be fine. We'll use [[chown]] to change ownership of these two directories now. We'll assume you have or will set up two groups for your users, one group named '''public''', and another named '''private'''.&lt;br /&gt;
&lt;br /&gt;
 Oyabun# '''chown :public /usr/smbroot/public'''&lt;br /&gt;
 Oyabun# '''chown :private /usr/smbroot/private'''&lt;br /&gt;
&lt;br /&gt;
The first command sets the owning group of /usr/smbroot/public to :public. The second command assigns ownership of /usr/smbroot/private to the group :private.&lt;br /&gt;
&lt;br /&gt;
Now we need to set the actual [[permissions]] with [[chmod]].&lt;br /&gt;
&lt;br /&gt;
 Oyabun# '''chmod 770 /usr/smbroot/public'''&lt;br /&gt;
 Oyabun# '''chmod 770 /usr/smbroot/private'''&lt;br /&gt;
&lt;br /&gt;
Same [[permissions]] for each directory, broken down thusly: The first '''7''' is the 'owner' flag, and 7 means read/write/execute. The owner can do all of those things. The second '''7''' is the group flag, meaning the owning :group can also r/w/x. The third character, '''0''', is in the 'rest of the world' position, meaning anyone who is NOT the owner, and NOT a member of the owning group. They can't read, they can't write, and they can't execute. Since we're not setting up anonymous access, we don't want users who aren't explicitly defined as having access to actually have any access, and this will accomplish that.&lt;br /&gt;
&lt;br /&gt;
== Configuring Samba to use your shares and interface with local Win.X machines ==&lt;br /&gt;
&lt;br /&gt;
Ok, now we have the shares set up appropriately, we just need to define them for Samba. In '''/usr/local/etc/''', there is a file named &amp;quot;'''smb.conf.default'''&amp;quot;. This is a seriously large and complex file with waaaay more options than the average user will ever need to get Samba up and running. I highly suggest you go through it, as it has several examples of methods used to share directories, and access restriction methods. For this article, we'll be writing an [[smb.conf]] from scratch.&lt;br /&gt;
&lt;br /&gt;
'''[global]'''&lt;br /&gt;
&lt;br /&gt;
The first section of your new [[smb.conf]] file should look like this:&lt;br /&gt;
&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = WORKGROUP&lt;br /&gt;
 server string = NameOfServer&lt;br /&gt;
 log file = /var/log/log.%m&lt;br /&gt;
 max log size = 50&lt;br /&gt;
 security = user&lt;br /&gt;
 encrypt passwords = yes&lt;br /&gt;
 socket options = TCP_NODELAY&lt;br /&gt;
 preferred master = yes&lt;br /&gt;
&lt;br /&gt;
'''[global]''' is a header in the file, telling Samba all entries after that, before the next [section] are to be globally applied.&lt;br /&gt;
&lt;br /&gt;
'''workgroup = WORKGROUP''' - Specifies which Windows Workgroup to make the server a member of.&lt;br /&gt;
&lt;br /&gt;
'''server string = NameOfServer''' - Names the server. This is the name you'll see in network neighborhood. For example, my smb.conf names my server 'Oyabun'. (cuz it's the boss!)&lt;br /&gt;
&lt;br /&gt;
'''log file = /var/log/log%m''' - Tells Samba to create log files for each machine that connects in the var/log/ directory. For example, if a machine with the name of ''johndesktop'' connected, a log file named '''log.johndesktop''' would be created in /var/log, and appropriate entries for that machine would be made there.&lt;br /&gt;
&lt;br /&gt;
'''max log size = 50''': limits the size of each log files to x kilobytes, in this case 50. This is so you don't find a gig of logs a year down the road.&lt;br /&gt;
&lt;br /&gt;
'''security = user''': This is '''important''', and integral to simple networking between your new Samba server and your Windows machines.&lt;br /&gt;
&lt;br /&gt;
'''encrypt passwords = yes''': This is also '''important''' - passwords must be encrypted for each machine to successfuly negotiate login credentials with your Samba server.&lt;br /&gt;
&lt;br /&gt;
'''socket options = TCP_NODELAY''': This is not required, but the Samba documentation within smb.conf.default suggests this may yield better performance, so I include it.&lt;br /&gt;
&lt;br /&gt;
'''preferred master = yes''': Windows machines &amp;quot;elect&amp;quot; master browsers, which is a machine which takes on the duties of describing to other machines what all the machine names and locations are. Since your Samba machine is likely to be the sanest machine on your network, it's a good idea to have it 'fudge' the election results and always be the master browser. This option causes Samba to force a browser election when it starts up, and cheats to give it a higher chance of 'winning'.&lt;br /&gt;
&lt;br /&gt;
And that's the global section. Now, on to actually setting up shares.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''[homes]'''&lt;br /&gt;
&lt;br /&gt;
If you want your users to be able to access the home directories of their FreeBSD user accounts, add a [homes] section. If you do NOT want individual users to have private storage areas, do not include this section.&lt;br /&gt;
&lt;br /&gt;
 [homes]&lt;br /&gt;
 comment = Home Directories&lt;br /&gt;
 browseable = no&lt;br /&gt;
 writeable = yes&lt;br /&gt;
&lt;br /&gt;
The mere existence of [homes] tells Samba to allow users to have access to their home directories via network sharing. If it's not there, they don't have it.&lt;br /&gt;
&lt;br /&gt;
'''comment = Home Directories''' is a description for the [section], and will show up in Windows Explorer under the 'comment' field.&lt;br /&gt;
&lt;br /&gt;
'''browseable = no''' means users other than the owner can't see or browse the share. (I can't see your home directory, you can't see mine, but we're both valid users.) Similar in purpose and execution to the 'My Documents' folder Windows users are familiar with. Each user has their own 'My Documents' folder.&lt;br /&gt;
&lt;br /&gt;
'''writeable = yes''' means users can save files in their home directories from across the network.&lt;br /&gt;
&lt;br /&gt;
That's it, setting up home directories is simple.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
'''[public]'''&lt;br /&gt;
&lt;br /&gt;
Now we'll set up the publicly accessible folder, located at '''/usr/smbroot/public/'''.&lt;br /&gt;
&lt;br /&gt;
 [public]&lt;br /&gt;
 comment = Public&lt;br /&gt;
 path = /usr/smbroot/public&lt;br /&gt;
 public = no&lt;br /&gt;
 writeable = yes&lt;br /&gt;
 write list = @public&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
&lt;br /&gt;
'''[public]''': Create a new share named 'Public', which will look like a folder named 'Public' in Network Neighborhood.&lt;br /&gt;
&lt;br /&gt;
'''comment = Public''': Same deal, this fills the 'comment' field in windows explorer / network neighborhood, when you're looking at the share.&lt;br /&gt;
&lt;br /&gt;
'''path = /usr/smbroot/public''': This tells samba exactly where on the local machine to store files for this share. This is pretty important.&lt;br /&gt;
&lt;br /&gt;
'''public = no''': This is sort of counter-intuitive, but you don't want this set to yes.&lt;br /&gt;
&lt;br /&gt;
'''writeable = yes''': This tells Samba to let authorized users write to the directory.&lt;br /&gt;
&lt;br /&gt;
'''write list = @public''': Lists the ''users'' and ''@groups'' allowed to write here. This is important! To define this further, or add more users or @groups, you'd write the line like this:&lt;br /&gt;
&amp;quot;valid users = joe bill @public @friends @dogs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''directory mask = 0750''': The directory mask setting controls the '''most permissive''' setting Windows clients are allowed to give a directory.  In this example, the mask is set to 750, so a client can set read, write, and execute permissions to anything it wants to for the directory's owner; but for the group the Windows client can only set read and execute permissions, and since the &amp;quot;world&amp;quot; bit is set to 0, the Windows client will be unable to set any allowable permissions at all for &amp;quot;world&amp;quot; (neither the owner nor the group) for that directory.  Note that the windows client is free to set ''less'' permissive settings on the directory - if it wanted to, it could still deny access to the owner or group; it just can't ''give'' access more permissive than that specified by the mass.&lt;br /&gt;
&lt;br /&gt;
'''create mask = 0750''': Same deal, only this applies to files.&lt;br /&gt;
&lt;br /&gt;
That's it - you've defined all the important parts of the share for Samba, so it knows where to find it, and how to limit users' access to it.&lt;br /&gt;
&lt;br /&gt;
Test your new config with [[testparm]], which is a Samba tool that lets you validate your smb.conf.&lt;br /&gt;
&lt;br /&gt;
 Oyabun# '''testparm''' &lt;br /&gt;
&lt;br /&gt;
I won't list the results here, but you should see a list of your shares. If there are any warnings or error messages, you'll want to analyze and correct the problem. Lastly, testparm will dump your smb.conf to the console.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
'''[private]'''&lt;br /&gt;
&lt;br /&gt;
Now we'll set up the private share. It will actually look just like the public share, with a few small changes.&lt;br /&gt;
&lt;br /&gt;
 [private]&lt;br /&gt;
 comment = Private&lt;br /&gt;
 path = /usr/smbroot/private&lt;br /&gt;
 public = no&lt;br /&gt;
 writeable = yes&lt;br /&gt;
 valid users = @private&lt;br /&gt;
 write list = @private&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
&lt;br /&gt;
Obviously we defined the basic stuff like [private] and where the directory is.&lt;br /&gt;
&lt;br /&gt;
'''valid users = @private''' - This prevents anyone who is not a member of @private from having access to this share. Because '''public = no''', people who are NOT members of @private won't even see this share when they browse the server.&lt;br /&gt;
&lt;br /&gt;
That's it, you now have two distinct shares set up, with two distinct sets of criteria to determine who gets access to those shares from a windows machine.&lt;br /&gt;
&lt;br /&gt;
== User accounts in BSD, Samba, and Windows ==&lt;br /&gt;
&lt;br /&gt;
There are two parts to this step, adding matching matching user accounts to the Samba server and the various windows machines, and adding matching Samba passwords to the Samba server for each user. '''Usernames and passwords must match exactly between the client Windows machines and the Samba server.'''&lt;br /&gt;
&lt;br /&gt;
Let's say ''Bob'' logs onto his windows machine with the username &amp;quot;''bob''&amp;quot; and the password &amp;quot;''syeruncle''&amp;quot;. He already has an existing windows account, obviously, so you don't need to set that up, but if he didn't, you would. Bob is going to be a member of the @public group, and Greg will be a member of @private.&lt;br /&gt;
&lt;br /&gt;
The quickest way to do this is to use '''/stand/[[sysinstall]]''' to add the user. You can also add users via the command line with [[adduser]] or [[pw]]. Make sure you are root before trying to add user accounts or Samba accounts, and remember to make each user a member of the appropriate group!&lt;br /&gt;
&lt;br /&gt;
 Oyabun# '''pw useradd bob -g public'''&lt;br /&gt;
 Oyabun# '''pw useradd greg -g private''' &lt;br /&gt;
&lt;br /&gt;
Now we need to use [[smbpasswd]] to validate these users in the eyes of Samba.&lt;br /&gt;
&lt;br /&gt;
 Oyabun# '''smbpasswd -a bob'''&lt;br /&gt;
 New SMB password:&lt;br /&gt;
 Retype new SMB password:&lt;br /&gt;
 Password changed for user bob.&lt;br /&gt;
&lt;br /&gt;
In this example, as root, I used the [[smbpasswd]] command to create a Samba account for ''bob''. It then asked me to enter a password for the new user, asked me to confirm it, and announced that the password was changed.&lt;br /&gt;
&lt;br /&gt;
Repeat this process for ''greg'', entering greg's password.&lt;br /&gt;
&lt;br /&gt;
If ''greg'' and ''bob'' are not really unix users at all, but only windows users that you want to be able to access Samba shares, you may wish to consider making sure they can't use the system accounts you created for them to actually log in to the box.  For example:&lt;br /&gt;
&lt;br /&gt;
 Oyabun# '''[[pw]] usermod bob -s /sbin/nologin'''&lt;br /&gt;
 Oyabun# '''su bob'''&lt;br /&gt;
 This account is currently not available.&lt;br /&gt;
 Oyabun#&lt;br /&gt;
&lt;br /&gt;
In this example, we set the ''bob'' account's default shell to /sbin/nologin, and then checked to make sure that account really couldn't shell into the box by using [[su]] to see what would happen if someone tried.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Finally, we're done. We have shares set up, user accounts are in place, and everything is ready to go - now we just have to start Samba. This is easy. A startup script was placed in &amp;quot;'''/usr/local/etc/rc.d/'''&amp;quot;, with a likely name of &amp;quot;''samba.sh.sample''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Let's rename it, and run it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Oyabun# cd /usr/local/etc/rc.d&lt;br /&gt;
Oyabun# mv samba.sh.sample samba.sh&lt;br /&gt;
Oyabun# /usr/local/etc/rc.d/samba start&lt;br /&gt;
SambaOyabun#&lt;br /&gt;
Oyabun#&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First, rename the file from samba.sh.sample to samba.sh. Then, execute it, using the full path (it will complain otherwise). If all  went well, after execting ''samba.sh start'', you'll see ''Samba'' inserted before the name of your server at the next shell prompt.  This means Samba is indeed running, and that you can now attempt to connect to this machine from your Windows machines. You should do so, testing the various accounts you have set up to make sure they can all connect.&lt;br /&gt;
&lt;br /&gt;
Congrats, you now have a Samba server.&lt;br /&gt;
&lt;br /&gt;
==Web Interface (SWAT)==&lt;br /&gt;
If you would like to use a Web interface to make this configuration much easier then you need to configure SWAT&lt;br /&gt;
&lt;br /&gt;
uncomment the following line in your /etc/inetd.conf&lt;br /&gt;
 swat    stream  tcp     nowait/400      root    /usr/local/sbin/swat    swat&lt;br /&gt;
&lt;br /&gt;
Restart inetd&lt;br /&gt;
 # killall -HUP inetd&lt;br /&gt;
&lt;br /&gt;
Now you should be able to go to the address&lt;br /&gt;
 http://localhost:901&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See also: [[Samba]] - [[Samba_Installation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Common Tasks]] [[Category:Configuring FreeBSD]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Flash</id>
		<title>Flash</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Flash"/>
				<updated>2006-10-27T02:46:27Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: /* How to install flash */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How to install flash==&lt;br /&gt;
&lt;br /&gt;
First install linuxpluginwrapper&lt;br /&gt;
 # pkg_add -r linuxpluginwrapper&lt;br /&gt;
Or with options:&lt;br /&gt;
 # cd /usr/ports/*/linuxpluginwrapper;make install&lt;br /&gt;
&lt;br /&gt;
Next install flashplugin7&lt;br /&gt;
 # cd /usr/ports/*/linux-flashplugin7;make install&lt;br /&gt;
&lt;br /&gt;
If it cannot fetch the file download it from here:&lt;br /&gt;
http://freshmeat.net/projects/flashplugin/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===libmap.conf===&lt;br /&gt;
&lt;br /&gt;
Add the following to /etc/libmap.conf&lt;br /&gt;
 # Flash7 for Firefox&lt;br /&gt;
 [/usr/local/lib/npapi/linux-flashplugin/libflashplayer.so]&lt;br /&gt;
 libpthread.so.0                 pluginwrapper/flash7.so&lt;br /&gt;
 libdl.so.2                      pluginwrapper/flash7.so&lt;br /&gt;
 libz.so.1                       libz.so.3&lt;br /&gt;
 libstdc++-libc6.2-2.so.3        libstdc++.so.4&lt;br /&gt;
 libm.so.6                       libm.so.4&lt;br /&gt;
 libc.so.6                       pluginwrapper/flash7.so&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Flash6 for Konqueror&lt;br /&gt;
 [/usr/X11R6/lib/linux-flashplugin6/libflashplayer.so]&lt;br /&gt;
 libpthread.so.0                 pluginwrapper/flash6.so&lt;br /&gt;
 libdl.so.2                      pluginwrapper/flash6.so&lt;br /&gt;
 libz.so.1                       libz.so.3&lt;br /&gt;
 libstdc++-libc6.2-2.so.3        libstdc++.so.5&lt;br /&gt;
 libm.so.6                       libm.so.4&lt;br /&gt;
 libc.so.6                       pluginwrapper/flash6.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Konqueror===&lt;br /&gt;
&lt;br /&gt;
Go to Settings -&amp;gt; Configure Konqueror -&amp;gt; plugins&lt;br /&gt;
&lt;br /&gt;
Create the directory and link files&lt;br /&gt;
 # mkdir /usr/X11R6/lib/linux-flashplugin6&lt;br /&gt;
 # cd /usr/X11R6/lib/linux-flashplugin6&lt;br /&gt;
 # ln -s /usr/local/lib/npapi/linux-flashplugin/flashplayer.xpt&lt;br /&gt;
 # ln -s /usr/local/lib/npapi/linux-flashplugin/libflashplayer.so&lt;br /&gt;
&lt;br /&gt;
Now hit 'Scan for new plugins'&lt;br /&gt;
&lt;br /&gt;
Now go and test it out.&lt;br /&gt;
&lt;br /&gt;
===Native Firefox===&lt;br /&gt;
&lt;br /&gt;
You will need to patch a file and compile it's all explained on this site:&lt;br /&gt;
&lt;br /&gt;
http://www.jail.se/freebsd.html&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
http://freebsd.kde.org/howtos/konqueror-flash.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category : FreeBSD Multimedia]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Flash</id>
		<title>Flash</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Flash"/>
				<updated>2006-10-27T02:45:25Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: /* How to install flash7 in Konqueror */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How to install flash==&lt;br /&gt;
&lt;br /&gt;
First install linuxpluginwrapper&lt;br /&gt;
 # pkg_add -r linuxpluginwrapper&lt;br /&gt;
Or with options:&lt;br /&gt;
 # cd /usr/ports/*/linuxpluginwrapper;make install&lt;br /&gt;
&lt;br /&gt;
Install linuxthreads&lt;br /&gt;
 # cd /usr/ports/*/linuxthreads;make install&lt;br /&gt;
&lt;br /&gt;
Next install flashplugin7&lt;br /&gt;
 # cd /usr/ports/*/linux-flashplugin7;make install&lt;br /&gt;
&lt;br /&gt;
If it cannot fetch the file download it from here:&lt;br /&gt;
http://freshmeat.net/projects/flashplugin/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===libmap.conf===&lt;br /&gt;
&lt;br /&gt;
Add the following to /etc/libmap.conf&lt;br /&gt;
 # Flash7 for Firefox&lt;br /&gt;
 [/usr/local/lib/npapi/linux-flashplugin/libflashplayer.so]&lt;br /&gt;
 libpthread.so.0                 pluginwrapper/flash7.so&lt;br /&gt;
 libdl.so.2                      pluginwrapper/flash7.so&lt;br /&gt;
 libz.so.1                       libz.so.3&lt;br /&gt;
 libstdc++-libc6.2-2.so.3        libstdc++.so.4&lt;br /&gt;
 libm.so.6                       libm.so.4&lt;br /&gt;
 libc.so.6                       pluginwrapper/flash7.so&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Flash6 for Konqueror&lt;br /&gt;
 [/usr/X11R6/lib/linux-flashplugin6/libflashplayer.so]&lt;br /&gt;
 libpthread.so.0                 pluginwrapper/flash6.so&lt;br /&gt;
 libdl.so.2                      pluginwrapper/flash6.so&lt;br /&gt;
 libz.so.1                       libz.so.3&lt;br /&gt;
 libstdc++-libc6.2-2.so.3        libstdc++.so.5&lt;br /&gt;
 libm.so.6                       libm.so.4&lt;br /&gt;
 libc.so.6                       pluginwrapper/flash6.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Konqueror===&lt;br /&gt;
&lt;br /&gt;
Go to Settings -&amp;gt; Configure Konqueror -&amp;gt; plugins&lt;br /&gt;
&lt;br /&gt;
Create the directory and link files&lt;br /&gt;
 # mkdir /usr/X11R6/lib/linux-flashplugin6&lt;br /&gt;
 # cd /usr/X11R6/lib/linux-flashplugin6&lt;br /&gt;
 # ln -s /usr/local/lib/npapi/linux-flashplugin/flashplayer.xpt&lt;br /&gt;
 # ln -s /usr/local/lib/npapi/linux-flashplugin/libflashplayer.so&lt;br /&gt;
&lt;br /&gt;
Now hit 'Scan for new plugins'&lt;br /&gt;
&lt;br /&gt;
Now go and test it out.&lt;br /&gt;
&lt;br /&gt;
===Native Firefox===&lt;br /&gt;
&lt;br /&gt;
You will need to patch a file and compile it's all explained on this site:&lt;br /&gt;
&lt;br /&gt;
http://www.jail.se/freebsd.html&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
http://freebsd.kde.org/howtos/konqueror-flash.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category : FreeBSD Multimedia]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Flash</id>
		<title>Flash</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Flash"/>
				<updated>2006-10-27T00:24:08Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How to install flash7 in Konqueror==&lt;br /&gt;
&lt;br /&gt;
First install linuxpluginwrapper&lt;br /&gt;
 # pkg_add -r linuxpluginwrapper&lt;br /&gt;
Or with options:&lt;br /&gt;
 # cd /usr/ports/*/linuxpluginwrapper;make install&lt;br /&gt;
&lt;br /&gt;
Next install flashplugin7&lt;br /&gt;
 # cd /usr/ports/*/linux-flashplugin7;make install&lt;br /&gt;
&lt;br /&gt;
If it cannot fetch the file download it from here:&lt;br /&gt;
http://freshmeat.net/projects/flashplugin/&lt;br /&gt;
&lt;br /&gt;
===libmap.conf===&lt;br /&gt;
&lt;br /&gt;
Add the following to /etc/libmap.conf&lt;br /&gt;
 # Flash7 for Firefox&lt;br /&gt;
 [/usr/local/lib/npapi/linux-flashplugin/libflashplayer.so]&lt;br /&gt;
 libpthread.so.0                 pluginwrapper/flash7.so&lt;br /&gt;
 libdl.so.2                      pluginwrapper/flash7.so&lt;br /&gt;
 libz.so.1                       libz.so.3&lt;br /&gt;
 libstdc++-libc6.2-2.so.3        libstdc++.so.4&lt;br /&gt;
 libm.so.6                       libm.so.4&lt;br /&gt;
 libc.so.6                       pluginwrapper/flash7.so&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Flash6 for Konqueror&lt;br /&gt;
 [/usr/X11R6/lib/linux-flashplugin6/libflashplayer.so]&lt;br /&gt;
 libpthread.so.0                 pluginwrapper/flash6.so&lt;br /&gt;
 libdl.so.2                      pluginwrapper/flash6.so&lt;br /&gt;
 libz.so.1                       libz.so.3&lt;br /&gt;
 libstdc++-libc6.2-2.so.3        libstdc++.so.5&lt;br /&gt;
 libm.so.6                       libm.so.4&lt;br /&gt;
 libc.so.6                       pluginwrapper/flash6.so&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Konqueror===&lt;br /&gt;
&lt;br /&gt;
Go to Settings -&amp;gt; Configure Konqueror -&amp;gt; plugins&lt;br /&gt;
&lt;br /&gt;
Create the directory and link files&lt;br /&gt;
 # mkdir /usr/X11R6/lib/linux-flashplugin6&lt;br /&gt;
 # cd /usr/X11R6/lib/linux-flashplugin6&lt;br /&gt;
 # ln -s /usr/local/lib/npapi/linux-flashplugin/flashplayer.xpt&lt;br /&gt;
 # ln -s /usr/local/lib/npapi/linux-flashplugin/libflashplayer.so&lt;br /&gt;
&lt;br /&gt;
Now hit 'Scan for new plugins'&lt;br /&gt;
&lt;br /&gt;
Now go and test it out.&lt;br /&gt;
&lt;br /&gt;
===Native Firefox===&lt;br /&gt;
&lt;br /&gt;
You will need to patch a file and compile it's all explained on this site:&lt;br /&gt;
&lt;br /&gt;
http://www.jail.se/freebsd.html&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
http://freebsd.kde.org/howtos/konqueror-flash.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category : FreeBSD Multimedia]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/CUPS</id>
		<title>CUPS</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/CUPS"/>
				<updated>2006-10-26T05:35:12Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: /* KDE Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CUPS (Common Unix Printing System)&lt;br /&gt;
This makes it easy to add printers to your system and programs such as firefox will pick up the printer list automatically.&lt;br /&gt;
&lt;br /&gt;
==Installing CUPS==&lt;br /&gt;
 # pkg_add -r cups&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
 # cd /usr/ports/print/cups&lt;br /&gt;
 # make install clean&lt;br /&gt;
&lt;br /&gt;
==KDE Setup==&lt;br /&gt;
You can setup any non KDE applications such as Openoffice to use the KDE printer dialogue by setting up the default printer of that applications as:&lt;br /&gt;
&lt;br /&gt;
 kprinter -stdin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Openoffice===&lt;br /&gt;
Change the default printer in openoffice spadmin program&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===xpdf===&lt;br /&gt;
&lt;br /&gt;
Add the following to /usr/X11R6/etc/xpdfrc config file.&lt;br /&gt;
 psFile                  &amp;quot;|kprinter -stdin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==CUPS to PDF==&lt;br /&gt;
CUPS can also be used to print directly from any program to a PDF file.&lt;br /&gt;
&lt;br /&gt;
 # pkg_add -r cups-pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CUPS mimics lpr==&lt;br /&gt;
If you have old programs which use lpr to print then you should install CUPS-lpr&lt;br /&gt;
 &lt;br /&gt;
 # pkg_add -r cups-lpr&lt;br /&gt;
&lt;br /&gt;
==CUPS Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===CUPS with proxy===&lt;br /&gt;
Make sure if you run a proxy to set localhost in the exceptions of your browser.&lt;br /&gt;
Should now be able to connect to http://localhost:631&lt;br /&gt;
&lt;br /&gt;
===CUPS and KDE Error===&lt;br /&gt;
If you get an error in KDE print manager such as:&lt;br /&gt;
cups host not found.&lt;br /&gt;
&lt;br /&gt;
Then change the host from&lt;br /&gt;
host: /var/run/cups.sock&lt;br /&gt;
to&lt;br /&gt;
host: localhost&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CUPS and Gnome Warning===&lt;br /&gt;
I've installed CUPS on a few machines and found everytime I do I cannot print though any gnome based application.  If you like to use gnome applications to print your work, don't install CUPS just use LPD.&lt;br /&gt;
&lt;br /&gt;
programs which crashed right out when printing were:&lt;br /&gt;
gedit, abiword, gnumeric, inkscape.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Error you will get&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(gdb) run&lt;br /&gt;
Starting program: /usr/X11R6/bin/gnumeric&lt;br /&gt;
&lt;br /&gt;
Program received signal SIGBUS, Bus error.&lt;br /&gt;
[Switching to Thread 3 (LWP 100326)]&lt;br /&gt;
0x29dfd450 in ippWriteIO (dst=0x8542000, cb=0x29dfa3bc &amp;lt;httpWrite&amp;gt;,&lt;br /&gt;
    blocking=1, parent=0x0, ipp=0x8517880) at ipp.c:1418&lt;br /&gt;
1418    ipp.c: No such file or directory.&lt;br /&gt;
        in ipp.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==links==&lt;br /&gt;
http://forums.bsdnexus.com/viewtopic.php?id=36&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Ports and Packages]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Flash</id>
		<title>Flash</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Flash"/>
				<updated>2006-10-26T05:27:56Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How to install flash7 in Konqueror==&lt;br /&gt;
&lt;br /&gt;
First install linuxpluginwrapper&lt;br /&gt;
 # pkg_add -r linuxpluginwrapper&lt;br /&gt;
Or with options:&lt;br /&gt;
 # cd /usr/ports/*/linuxpluginwrapper;make install&lt;br /&gt;
&lt;br /&gt;
Next install flashplugin7&lt;br /&gt;
 # cd /usr/ports/*/linux-flashplugin7;make install&lt;br /&gt;
&lt;br /&gt;
If it cannot fetch the file download it from here:&lt;br /&gt;
http://freshmeat.net/projects/flashplugin/&lt;br /&gt;
&lt;br /&gt;
===libmap.conf===&lt;br /&gt;
&lt;br /&gt;
Add the following to /etc/libmap.conf&lt;br /&gt;
&lt;br /&gt;
 # Flash7 with Konqueror&lt;br /&gt;
 [/usr/local/lib/npapi/linux-flashplugin/libflashplayer.so]&lt;br /&gt;
 libpthread.so.0                 pluginwrapper/flash7.so&lt;br /&gt;
 libdl.so.2                      pluginwrapper/flash7.so&lt;br /&gt;
 libz.so.1                       libz.so.3&lt;br /&gt;
 libstdc++-libc6.2-2.so.3        libstdc++.so.5&lt;br /&gt;
 libm.so.6                       libm.so.4&lt;br /&gt;
 libc.so.6                       pluginwrapper/flash7.so&lt;br /&gt;
&lt;br /&gt;
===Konqueror===&lt;br /&gt;
&lt;br /&gt;
Go to Settings -&amp;gt; Configure Konqueror -&amp;gt; plugins&lt;br /&gt;
&lt;br /&gt;
Add the following to the list to search:&lt;br /&gt;
 /usr/local/lib/npapi/linux-flashplugin&lt;br /&gt;
&lt;br /&gt;
Now hit 'Scan for new plugins'&lt;br /&gt;
&lt;br /&gt;
Now go and test it out.&lt;br /&gt;
&lt;br /&gt;
===Native Firefox===&lt;br /&gt;
&lt;br /&gt;
You will need to patch a file and compile it's all explained on this site:&lt;br /&gt;
&lt;br /&gt;
http://www.jail.se/freebsd.html&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
http://freebsd.kde.org/howtos/konqueror-flash.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category : FreeBSD Multimedia]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Flash</id>
		<title>Flash</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Flash"/>
				<updated>2006-10-26T01:19:36Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: /* How to install flash */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How to install flash7 in Konqueror==&lt;br /&gt;
&lt;br /&gt;
First install linuxpluginwrapper&lt;br /&gt;
 # pkg_add -r linuxpluginwrapper&lt;br /&gt;
Or with options:&lt;br /&gt;
 # cd /usr/ports/*/linuxpluginwrapper;make install&lt;br /&gt;
&lt;br /&gt;
Next install flashplugin7&lt;br /&gt;
 # cd /usr/ports/*/linux-flashplugin7;make install&lt;br /&gt;
&lt;br /&gt;
If it cannot fetch the file download it from here:&lt;br /&gt;
http://freshmeat.net/projects/flashplugin/&lt;br /&gt;
&lt;br /&gt;
===libmap.conf===&lt;br /&gt;
&lt;br /&gt;
Add the following to /etc/libmap.conf&lt;br /&gt;
&lt;br /&gt;
 # Flash7 with Konqueror&lt;br /&gt;
 [/usr/local/lib/npapi/linux-flashplugin/libflashplayer.so]&lt;br /&gt;
 libpthread.so.0                 pluginwrapper/flash6.so&lt;br /&gt;
 libdl.so.2                      pluginwrapper/flash6.so&lt;br /&gt;
 libz.so.1                       libz.so.3&lt;br /&gt;
 libstdc++-libc6.2-2.so.3        libstdc++.so.5&lt;br /&gt;
 libm.so.6                       libm.so.4&lt;br /&gt;
 libc.so.6                       pluginwrapper/flash6.so&lt;br /&gt;
&lt;br /&gt;
===Konqueror===&lt;br /&gt;
&lt;br /&gt;
Go to Settings -&amp;gt; Configure Konqueror -&amp;gt; plugins&lt;br /&gt;
&lt;br /&gt;
Add the following to the list to search:&lt;br /&gt;
 /usr/local/lib/npapi/linux-flashplugin&lt;br /&gt;
&lt;br /&gt;
Now hit 'Scan for new plugins'&lt;br /&gt;
&lt;br /&gt;
Now go and test it out.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
http://freebsd.kde.org/howtos/konqueror-flash.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category : FreeBSD Multimedia]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Flash</id>
		<title>Flash</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Flash"/>
				<updated>2006-10-26T01:19:15Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How to install flash==&lt;br /&gt;
&lt;br /&gt;
First install linuxpluginwrapper&lt;br /&gt;
 # pkg_add -r linuxpluginwrapper&lt;br /&gt;
Or with options:&lt;br /&gt;
 # cd /usr/ports/*/linuxpluginwrapper;make install&lt;br /&gt;
&lt;br /&gt;
Next install flashplugin7&lt;br /&gt;
 # cd /usr/ports/*/linux-flashplugin7;make install&lt;br /&gt;
&lt;br /&gt;
If it cannot fetch the file download it from here:&lt;br /&gt;
http://freshmeat.net/projects/flashplugin/&lt;br /&gt;
&lt;br /&gt;
===libmap.conf===&lt;br /&gt;
&lt;br /&gt;
Add the following to /etc/libmap.conf&lt;br /&gt;
&lt;br /&gt;
 # Flash7 with Konqueror&lt;br /&gt;
 [/usr/local/lib/npapi/linux-flashplugin/libflashplayer.so]&lt;br /&gt;
 libpthread.so.0                 pluginwrapper/flash6.so&lt;br /&gt;
 libdl.so.2                      pluginwrapper/flash6.so&lt;br /&gt;
 libz.so.1                       libz.so.3&lt;br /&gt;
 libstdc++-libc6.2-2.so.3        libstdc++.so.5&lt;br /&gt;
 libm.so.6                       libm.so.4&lt;br /&gt;
 libc.so.6                       pluginwrapper/flash6.so&lt;br /&gt;
&lt;br /&gt;
===Konqueror===&lt;br /&gt;
&lt;br /&gt;
Go to Settings -&amp;gt; Configure Konqueror -&amp;gt; plugins&lt;br /&gt;
&lt;br /&gt;
Add the following to the list to search:&lt;br /&gt;
 /usr/local/lib/npapi/linux-flashplugin&lt;br /&gt;
&lt;br /&gt;
Now hit 'Scan for new plugins'&lt;br /&gt;
&lt;br /&gt;
Now go and test it out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
http://freebsd.kde.org/howtos/konqueror-flash.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category : FreeBSD Multimedia]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/CUPS</id>
		<title>CUPS</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/CUPS"/>
				<updated>2006-10-26T00:28:41Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CUPS (Common Unix Printing System)&lt;br /&gt;
This makes it easy to add printers to your system and programs such as firefox will pick up the printer list automatically.&lt;br /&gt;
&lt;br /&gt;
==Installing CUPS==&lt;br /&gt;
 # pkg_add -r cups&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
 # cd /usr/ports/print/cups&lt;br /&gt;
 # make install clean&lt;br /&gt;
&lt;br /&gt;
==KDE Setup==&lt;br /&gt;
You can setup any non KDE applications such as Openoffice to use the KDE printer dialogue by setting up the default printer of that applications as:&lt;br /&gt;
&lt;br /&gt;
 kprinter -stdin&lt;br /&gt;
&lt;br /&gt;
==CUPS to PDF==&lt;br /&gt;
CUPS can also be used to print directly from any program to a PDF file.&lt;br /&gt;
&lt;br /&gt;
 # pkg_add -r cups-pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CUPS mimics lpr==&lt;br /&gt;
If you have old programs which use lpr to print then you should install CUPS-lpr&lt;br /&gt;
 &lt;br /&gt;
 # pkg_add -r cups-lpr&lt;br /&gt;
&lt;br /&gt;
==CUPS Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===CUPS with proxy===&lt;br /&gt;
Make sure if you run a proxy to set localhost in the exceptions of your browser.&lt;br /&gt;
Should now be able to connect to http://localhost:631&lt;br /&gt;
&lt;br /&gt;
===CUPS and KDE Error===&lt;br /&gt;
If you get an error in KDE print manager such as:&lt;br /&gt;
cups host not found.&lt;br /&gt;
&lt;br /&gt;
Then change the host from&lt;br /&gt;
host: /var/run/cups.sock&lt;br /&gt;
to&lt;br /&gt;
host: localhost&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CUPS and Gnome Warning===&lt;br /&gt;
I've installed CUPS on a few machines and found everytime I do I cannot print though any gnome based application.  If you like to use gnome applications to print your work, don't install CUPS just use LPD.&lt;br /&gt;
&lt;br /&gt;
programs which crashed right out when printing were:&lt;br /&gt;
gedit, abiword, gnumeric, inkscape.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Error you will get&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(gdb) run&lt;br /&gt;
Starting program: /usr/X11R6/bin/gnumeric&lt;br /&gt;
&lt;br /&gt;
Program received signal SIGBUS, Bus error.&lt;br /&gt;
[Switching to Thread 3 (LWP 100326)]&lt;br /&gt;
0x29dfd450 in ippWriteIO (dst=0x8542000, cb=0x29dfa3bc &amp;lt;httpWrite&amp;gt;,&lt;br /&gt;
    blocking=1, parent=0x0, ipp=0x8517880) at ipp.c:1418&lt;br /&gt;
1418    ipp.c: No such file or directory.&lt;br /&gt;
        in ipp.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==links==&lt;br /&gt;
http://forums.bsdnexus.com/viewtopic.php?id=36&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Ports and Packages]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/CUPS</id>
		<title>CUPS</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/CUPS"/>
				<updated>2006-10-26T00:21:08Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CUPS (Common Unix Printing System)&lt;br /&gt;
This makes it easy to add printers to your system and programs such as firefox will pick up the printer list automatically.&lt;br /&gt;
&lt;br /&gt;
==Installing CUPS==&lt;br /&gt;
 # pkg_add -r cups&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
 # cd /usr/ports/print/cups&lt;br /&gt;
 # make install clean&lt;br /&gt;
&lt;br /&gt;
==CUPS to PDF==&lt;br /&gt;
CUPS can also be used to print directly from any program to a PDF file.&lt;br /&gt;
&lt;br /&gt;
 # pkg_add -r cups-pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CUPS mimics lpr==&lt;br /&gt;
If you have old programs which use lpr to print then you should install CUPS-lpr&lt;br /&gt;
 &lt;br /&gt;
 # pkg_add -r cups-lpr&lt;br /&gt;
&lt;br /&gt;
==CUPS Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===CUPS with proxy===&lt;br /&gt;
Make sure if you run a proxy to set localhost in the exceptions of your browser.&lt;br /&gt;
Should now be able to connect to http://localhost:631&lt;br /&gt;
&lt;br /&gt;
===CUPS and KDE Error===&lt;br /&gt;
If you get an error in KDE print manager such as:&lt;br /&gt;
cups host not found.&lt;br /&gt;
&lt;br /&gt;
Then change the host from&lt;br /&gt;
host: /var/run/cups.sock&lt;br /&gt;
to&lt;br /&gt;
host: localhost&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CUPS and Gnome Warning===&lt;br /&gt;
I've installed CUPS on a few machines and found everytime I do I cannot print though any gnome based application.  If you like to use gnome applications to print your work, don't install CUPS just use LPD.&lt;br /&gt;
&lt;br /&gt;
programs which crashed right out when printing were:&lt;br /&gt;
gedit, abiword, gnumeric, inkscape.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Error you will get&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(gdb) run&lt;br /&gt;
Starting program: /usr/X11R6/bin/gnumeric&lt;br /&gt;
&lt;br /&gt;
Program received signal SIGBUS, Bus error.&lt;br /&gt;
[Switching to Thread 3 (LWP 100326)]&lt;br /&gt;
0x29dfd450 in ippWriteIO (dst=0x8542000, cb=0x29dfa3bc &amp;lt;httpWrite&amp;gt;,&lt;br /&gt;
    blocking=1, parent=0x0, ipp=0x8517880) at ipp.c:1418&lt;br /&gt;
1418    ipp.c: No such file or directory.&lt;br /&gt;
        in ipp.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==links==&lt;br /&gt;
http://forums.bsdnexus.com/viewtopic.php?id=36&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Ports and Packages]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Format_new_msdos_drive</id>
		<title>Format new msdos drive</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Format_new_msdos_drive"/>
				<updated>2006-10-24T05:01:22Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To create and format a new FAT32 drive do the following:&lt;br /&gt;
&lt;br /&gt;
Go into sysinstall&lt;br /&gt;
&lt;br /&gt;
select fdisk&lt;br /&gt;
&lt;br /&gt;
use type 11 (fat32)&lt;br /&gt;
&lt;br /&gt;
exit sysinstall&lt;br /&gt;
 &lt;br /&gt;
 # newfs_msdos /dev/da0&lt;br /&gt;
&lt;br /&gt;
Note when I went to do this on a IDE drive on ad1 I had to do&lt;br /&gt;
 # newfs_msdos /dev/ad1s1&lt;br /&gt;
&lt;br /&gt;
Now you should be able to mount it as msdos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Common Tasks]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Format_new_msdos_drive</id>
		<title>Format new msdos drive</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Format_new_msdos_drive"/>
				<updated>2006-10-24T05:00:21Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To create and format a new FAT32 drive do the following:&lt;br /&gt;
&lt;br /&gt;
Go into sysinstall&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Common Tasks]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Scanner,_installing</id>
		<title>Scanner, installing</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Scanner,_installing"/>
				<updated>2006-10-23T04:39:58Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To install a scanner make sure that the scanner you are using is supported by FreeBSD.&lt;br /&gt;
&lt;br /&gt;
I'm going to use a HP Scanjet 6200C because it's supported and that's what I have laying around.&lt;br /&gt;
&lt;br /&gt;
Connect your scanner to the USB and type the following commands.&lt;br /&gt;
&lt;br /&gt;
==Initial setup==&lt;br /&gt;
 # cd /dev&lt;br /&gt;
 # chmod 0660 uscanner0&lt;br /&gt;
 # chgrp operator uscanner0&lt;br /&gt;
 # pw groupmod operator -m &amp;lt;user&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==sane (text access to scanner)==&lt;br /&gt;
&lt;br /&gt;
Install through packages&lt;br /&gt;
 # pkg_add -r sane-frontends&lt;br /&gt;
 # pkg_add -r sane-backends&lt;br /&gt;
&lt;br /&gt;
Find your scanner, this doesn't mean that it will work though:&lt;br /&gt;
 # sane-find-scanner -q&lt;br /&gt;
 found USB scanner (vendor=0x03f0, product=0x0201) at /dev/uscanner0&lt;br /&gt;
&lt;br /&gt;
To scan a test page type the following (replacing hp with your scanner brand).&lt;br /&gt;
 # scanimage -d hp:/dev/uscanner0 &amp;gt; /tmp/image.pnm&lt;br /&gt;
&lt;br /&gt;
To allow for gray scale&lt;br /&gt;
 # scanimage --mode Gray -d hp:/dev/uscanner0 &amp;gt; /tmp/image.pnm&lt;br /&gt;
&lt;br /&gt;
If this all works then you want some automation so you don't have to tell scanimage the device.&lt;br /&gt;
 # scanimage -L&lt;br /&gt;
 device `hp:/dev/uscanner0' is a Hewlett-Packard ScanJet 62x0C flatbed scanner&lt;br /&gt;
&lt;br /&gt;
This should list your device, if it doesn't make sure you do the following commands:&lt;br /&gt;
 # cd /usr/local/etc/sane.d&lt;br /&gt;
 # cp -v dist/* .&lt;br /&gt;
&lt;br /&gt;
Now edit the file which relates to your scanner brand&lt;br /&gt;
 # vi hp.conf&lt;br /&gt;
&lt;br /&gt;
make sure that the device is set to /dev/uscanner0 at the end of the file with the line:&lt;br /&gt;
 /dev/uscanner0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Xsane==&lt;br /&gt;
&lt;br /&gt;
Install through package system if you are not going to use gimp integration&lt;br /&gt;
 # pkg_add -r xsane&lt;br /&gt;
&lt;br /&gt;
Otherwise install through ports system.&lt;br /&gt;
 # cd /usr/ports/*/xsane;make install clean&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Find your scanner with this tool&lt;br /&gt;
 # sane-find-scanner -q&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gimp==&lt;br /&gt;
Yet to be done.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
&lt;br /&gt;
For more information on how to configure/troubleshoot/user setup for scanners refer to the handbook:&lt;br /&gt;
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/scanners.html&lt;br /&gt;
&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/Scanner,_installing</id>
		<title>Scanner, installing</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/Scanner,_installing"/>
				<updated>2006-10-23T04:39:21Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To install a scanner make sure that the scanner you are using is supported by FreeBSD.&lt;br /&gt;
&lt;br /&gt;
I'm going to use a HP Scanjet 6200C because it's supported and that's what I have laying around.&lt;br /&gt;
&lt;br /&gt;
Connect your scanner to the USB and type the following commands.&lt;br /&gt;
&lt;br /&gt;
 # cd /dev&lt;br /&gt;
 # chmod 0660 uscanner0&lt;br /&gt;
 # chgrp operator uscanner0&lt;br /&gt;
 # pw groupmod operator -m &amp;lt;user&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==sane (text access to scanner)==&lt;br /&gt;
&lt;br /&gt;
Install through packages&lt;br /&gt;
 # pkg_add -r sane-frontends&lt;br /&gt;
 # pkg_add -r sane-backends&lt;br /&gt;
&lt;br /&gt;
Find your scanner, this doesn't mean that it will work though:&lt;br /&gt;
 # sane-find-scanner -q&lt;br /&gt;
 found USB scanner (vendor=0x03f0, product=0x0201) at /dev/uscanner0&lt;br /&gt;
&lt;br /&gt;
To scan a test page type the following (replacing hp with your scanner brand).&lt;br /&gt;
 # scanimage -d hp:/dev/uscanner0 &amp;gt; /tmp/image.pnm&lt;br /&gt;
&lt;br /&gt;
To allow for gray scale&lt;br /&gt;
 # scanimage --mode Gray -d hp:/dev/uscanner0 &amp;gt; /tmp/image.pnm&lt;br /&gt;
&lt;br /&gt;
If this all works then you want some automation so you don't have to tell scanimage the device.&lt;br /&gt;
 # scanimage -L&lt;br /&gt;
 device `hp:/dev/uscanner0' is a Hewlett-Packard ScanJet 62x0C flatbed scanner&lt;br /&gt;
&lt;br /&gt;
This should list your device, if it doesn't make sure you do the following commands:&lt;br /&gt;
 # cd /usr/local/etc/sane.d&lt;br /&gt;
 # cp -v dist/* .&lt;br /&gt;
&lt;br /&gt;
Now edit the file which relates to your scanner brand&lt;br /&gt;
 # vi hp.conf&lt;br /&gt;
&lt;br /&gt;
make sure that the device is set to /dev/uscanner0 at the end of the file with the line:&lt;br /&gt;
 /dev/uscanner0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Xsane==&lt;br /&gt;
&lt;br /&gt;
Install through package system if you are not going to use gimp integration&lt;br /&gt;
 # pkg_add -r xsane&lt;br /&gt;
&lt;br /&gt;
Otherwise install through ports system.&lt;br /&gt;
 # cd /usr/ports/*/xsane;make install clean&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Find your scanner with this tool&lt;br /&gt;
 # sane-find-scanner -q&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Gimp==&lt;br /&gt;
Yet to be done.&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
&lt;br /&gt;
For more information on how to configure/troubleshoot/user setup for scanners refer to the handbook:&lt;br /&gt;
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/scanners.html&lt;br /&gt;
&lt;br /&gt;
[[Category:Configuring FreeBSD]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/X_Windows_Terminal</id>
		<title>X Windows Terminal</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/X_Windows_Terminal"/>
				<updated>2006-10-15T11:07:31Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: /* todo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Advantages==&lt;br /&gt;
X Windows can be used in a Server-Client relationship.  By setting up your X Windows Server you allow the use of all the programs on that computer to all the client PC's.  &lt;br /&gt;
&lt;br /&gt;
There are many advantages of running client computers in this manner:&lt;br /&gt;
* They don't even need a hard drive.  &lt;br /&gt;
* It's silent as there are no moving parts&lt;br /&gt;
* The solution saves power as your computers are very thin.&lt;br /&gt;
* Everything can be backed up centrally.&lt;br /&gt;
* Boot times for client PC's are the fastest around.&lt;br /&gt;
* Clients don't need much CPU speed, memory, etc.  Because of this they would be very cheap.  You could get away with using a Pentium 100Mhz with 32MB ram, no hard drive, no CD-ROM, no Floppy and a fanless power supply.  You just need a ethernet card with a PXEBOOT ROM. (XDM mode)&lt;br /&gt;
* Central management of applications, users, config&lt;br /&gt;
&lt;br /&gt;
==From the Beginning==&lt;br /&gt;
I've based this document on FreeBSD 6.1.&lt;br /&gt;
&lt;br /&gt;
Install FreeBSD 6.1 as per usual.&lt;br /&gt;
I've setup my mount points as this:&lt;br /&gt;
  '''Part    Mount        Size'''&lt;br /&gt;
  ad0s1b  Swap         (equal to how much memory I have in my machine)&lt;br /&gt;
  ad0s1a  /            512MB&lt;br /&gt;
  ad0s1d  /var         1G&lt;br /&gt;
  ad0s1e  /tmp         512MB&lt;br /&gt;
  ad0s1f  /usr         2GB    min.&lt;br /&gt;
          /diskless_ro 512MB&lt;br /&gt;
          /diskless_rw 1GB    min.&lt;br /&gt;
&lt;br /&gt;
I selected 'A' for auto and then deleted /usr and created /usr as 2g.&lt;br /&gt;
&lt;br /&gt;
Select User-X install. Yes to Ports if you have the room.&lt;br /&gt;
&lt;br /&gt;
Select SSH Server and NFS Server in the installation process, for the rest of the options go with the default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: If you forget to add any of the labels above, you will have to reboot as you cannot add labels to your boot drive when you have booted off it. So boot of the installation CD and use the configure -&amp;gt; label option in the sysinstall screen to add these labels to your boot drive.  You may need to retype the mount points for /, /var, /tmp and /usr by hitting 'm' on each label.  Once you have created these labels in the 'Disklabel Editor' then you can hit 'w' to write them to the disk.  answer 'yes' to the next question, hit 'ok' to the warning message.  Now quit and reboot. Add them to fstab (/dev/ad0s1g   /diskless_ro) &amp;amp; (/dev/ad0s1h   /diskless_rw) and mount.&lt;br /&gt;
&lt;br /&gt;
I find the best way to get this working is to break it down in to small steps and get each step working independantly.  IE: Setup NFS and see if you can mount it from another FreeBSD machine, don't just assume it will work and boot your PXE-Boot machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Throughout my documentation&lt;br /&gt;
&lt;br /&gt;
192.168.1.1 = the Server&lt;br /&gt;
&lt;br /&gt;
192.168.1.2 = the client (may be a full freebsd system or pxeboot)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point I normally install fluxbox with the following line:&lt;br /&gt;
&lt;br /&gt;
 shell# pkg_add -r fluxbox-devel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
change your ~/.xinitrc file to the following:&lt;br /&gt;
&lt;br /&gt;
 startfluxbox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use the following command to update your fluxbox menus:&lt;br /&gt;
&lt;br /&gt;
 shell$ fluxbox-generate_menu&lt;br /&gt;
&lt;br /&gt;
==Running a single application==&lt;br /&gt;
&lt;br /&gt;
To get started I have my server setup running FreeBSD, with X-Windows and a few applications.  Nothing too special.  Then I have my client PC, which to start off I used the frenzy 1.0 boot CD to perform these initial tests.  You can get this from [http://frenzy.org.ua/eng/ frenzy website].  I entered into fluxbox, but you could equally use any X session.&lt;br /&gt;
You must allow incoming connections this is done with two commands&lt;br /&gt;
&lt;br /&gt;
 client$ startx -listen_tcp&lt;br /&gt;
 client$ xhost +&lt;br /&gt;
&lt;br /&gt;
This allows all computers to start applications on your client PC.  It's dangerous but good for testing everything is setup correctly.&lt;br /&gt;
&lt;br /&gt;
 client$ ssh &amp;lt;server user@server ip&amp;gt;&lt;br /&gt;
 eg: ssh mick@192.168.1.1&lt;br /&gt;
&lt;br /&gt;
 ssh$ export DISPLAY='192.168.1.2:0'&lt;br /&gt;
&lt;br /&gt;
Or if your running bash:&lt;br /&gt;
 ssh$ DISPLAY=&amp;lt;client ip&amp;gt;:&amp;lt;client display&amp;gt;; export DISPLAY&lt;br /&gt;
 eg: DISPLAY=192.168.1.2:0; export DISPLAY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ssh$ xcalc &amp;amp;&lt;br /&gt;
&lt;br /&gt;
This should display on your client&lt;br /&gt;
&lt;br /&gt;
==Running a whole X Windows Session (XDM)==&lt;br /&gt;
This sets up a server so that you can share your X session with any clients which want to connect.  (Simular to Terminal Services under windows)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===server===&lt;br /&gt;
edit:&lt;br /&gt;
 /usr/X11R6/lib/X11/xdm/xdm-config&lt;br /&gt;
&lt;br /&gt;
comment out with a '!' the request line&amp;lt;br&amp;gt;&lt;br /&gt;
 DisplayManager.requestPort: 0&lt;br /&gt;
&lt;br /&gt;
edit:&amp;lt;br&amp;gt;&lt;br /&gt;
 /usr/X11R6/lib/X11/xdm/Xaccess&lt;br /&gt;
&lt;br /&gt;
Enter a single asterisk any where in the file, so the contents should be one asterisk and the rest commented out.  There should be an asterisk on line 49 which you can uncomment.&lt;br /&gt;
&lt;br /&gt;
Whilst in the /usr/X11R6/lib/X11/xdm directory do these commands:&lt;br /&gt;
 shell# vi Xstartup&lt;br /&gt;
&lt;br /&gt;
Add into this file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Xstartup&lt;br /&gt;
#&lt;br /&gt;
# This program is run as root after the user is verified&lt;br /&gt;
#&lt;br /&gt;
if [ -f /etc/nologin ]; then&lt;br /&gt;
   xmessage -file /etc/nologin -timeout 30 -center&lt;br /&gt;
   exit 1&lt;br /&gt;
fi&lt;br /&gt;
sessreg -a -l $DISPLAY -x /usr/X11R6/lib/xdm/Xservers $LOGNAME&lt;br /&gt;
/usr/X11R6/lib/xdm/GiveConsole&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
shell# chmod +x Xstartup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Make sure your firewall has all traffic for you lan.  (Need to know which exact ports to allow).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Make sure you &amp;lt;/b&amp;gt;create ~/.xsession for each user which requires access and enter your start up for x &lt;br /&gt;
eg:&lt;br /&gt;
&lt;br /&gt;
 startfluxbox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;run xdm on server as root&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 shell# xdm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can put this xdm into the /etc/ttys so that it starts automatically on boot up.&lt;br /&gt;
&lt;br /&gt;
===client===&lt;br /&gt;
make sure your not in X&lt;br /&gt;
&lt;br /&gt;
type this command:&lt;br /&gt;
&lt;br /&gt;
 shell# X -broadcast&lt;br /&gt;
&lt;br /&gt;
This assumes that you are running only one server.&lt;br /&gt;
Otherwise use:&lt;br /&gt;
&lt;br /&gt;
 shell# X -query 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
==DHCP - Install and setup==&lt;br /&gt;
Server setup.&lt;br /&gt;
&lt;br /&gt;
install through package&lt;br /&gt;
 # pkg_add -r isc-dhcp3-server&lt;br /&gt;
&lt;br /&gt;
We do this so we can define the root path for the diskless system.&lt;br /&gt;
&lt;br /&gt;
copy /usr/local/etc/dhcpd.conf.sample to /usr/local/etc/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
edit /usr/local/etc/dhcpd.conf and make sure it has these lines in it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# dhcpd.conf&lt;br /&gt;
#&lt;br /&gt;
# Sample configuration file for ISC dhcpd&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# option definitions common to all supported networks...&lt;br /&gt;
#option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
#option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
&lt;br /&gt;
default-lease-time 3600;&lt;br /&gt;
max-lease-time 86400;&lt;br /&gt;
&lt;br /&gt;
# If this DHCP server is the official DHCP server for the local&lt;br /&gt;
# network, the authoritative directive should be uncommented.&lt;br /&gt;
authoritative;&lt;br /&gt;
&lt;br /&gt;
# ad-hoc DNS update scheme - set to &amp;quot;none&amp;quot; to disable dynamic DNS updates.&lt;br /&gt;
ddns-update-style none;&lt;br /&gt;
&lt;br /&gt;
option root-path &amp;quot;192.168.1.1:/diskless_ro&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# lines added for pxeboot client&lt;br /&gt;
use-host-decl-names on;&lt;br /&gt;
next-server 192.168.1.1;&lt;br /&gt;
filename &amp;quot;pxeboot&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Use this to send dhcp log messages to a different log file (you also&lt;br /&gt;
# have to hack syslog.conf to complete the redirection).&lt;br /&gt;
log-facility local7;&lt;br /&gt;
&lt;br /&gt;
# No service will be given on this subnet, but declaring it helps the&lt;br /&gt;
# DHCP server to understand the network topology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# This is a very basic subnet declaration.&lt;br /&gt;
&lt;br /&gt;
subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 192.168.1.10 192.168.1.20;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the leases file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# touch /var/db/dhcpd.leases&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Restart the daemon&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# killall dhcpd&lt;br /&gt;
# dhcpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add to /etc/rc.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dhcpd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using a seperate DHCP server===&lt;br /&gt;
If you already have a DHCP server and you want to use that instead then you have to do these steps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====On your DHCP Server====&lt;br /&gt;
1. edit /usr/local/etc/dhcpd.conf and add the following&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
authoritative;&lt;br /&gt;
ddns-update-style none;&lt;br /&gt;
&lt;br /&gt;
option root-path &amp;quot;&amp;lt;X Server IP&amp;gt;:/diskless_ro&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# lines added for pxeboot client&lt;br /&gt;
use-host-decl-names on;&lt;br /&gt;
next-server &amp;lt;X Server IP&amp;gt;;&lt;br /&gt;
filename &amp;quot;pxeboot&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. stop dhcpd&lt;br /&gt;
3. start dhcpd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Client====&lt;br /&gt;
Your client should boot now just remember that you may get a different IP now that you are talking to a different DHCP server so you have to change your exports file and copy accross a directory in /diskless_rw for the new IP.  All this is done on the X Server.&lt;br /&gt;
&lt;br /&gt;
==TFTP Setup==&lt;br /&gt;
TFTP helps us transport the kernel to the PXE-Boot machines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /tftpboot&lt;br /&gt;
# cp /boot/pxeboot /tftpboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uncomment the following line in /etc/inetd.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tftp    dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l -s /tftpboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart the inetd service&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# killall -HUP inetd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If inetd has not started automatically do the following:&lt;br /&gt;
&lt;br /&gt;
Add the following to /etc/rc.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
inetd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now start inetd manually.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# inetd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
To test that tftp has loaded type the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sockstat -4l | grep 69 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you should see this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root      inetd       13719 5   udp4    *:69                 *:*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NFS Setup==&lt;br /&gt;
Network File System.  Here we share all the directories from the server so that the diskless clients see these drives as if those directories were the diskless client's.&lt;br /&gt;
&lt;br /&gt;
===Server Setup===&lt;br /&gt;
If you forgot to select 'Yes' to NFS server setup in the FreeBSD installation then you have to setup the server manually like so:&lt;br /&gt;
&lt;br /&gt;
Enable NFS /etc/rc.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpcbind_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
nfs_server_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
A quick test to see if your NFS server is acting normal:&lt;br /&gt;
&lt;br /&gt;
Edit the /etc/exports and add the following&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr       -alldirs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This allows anyone to connect to your /usr mount.&lt;br /&gt;
&lt;br /&gt;
Now run these commands to restart and view your mounts&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# kill -HUP `cat /var/run/mountd.pid`&lt;br /&gt;
# showmount -e&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now try and mount it from a client running BSD&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mount -t nfs 192.168.1.1:/usr /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Server exports setup===&lt;br /&gt;
&lt;br /&gt;
Make directories for each IP for your clients&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /diskless_rw&lt;br /&gt;
# mkdir 192.168.1.2&lt;br /&gt;
# cd 192.168.1.2&lt;br /&gt;
# mkdir etc var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure /etc/exports&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# file systems accessible only for reading:&lt;br /&gt;
# Original way of linking up the /usr&lt;br /&gt;
#/usr -ro -maproot=0 -network 192.168.1.0 -mask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
/usr -network 192.168.1.0 -mask 255.255.255.0&lt;br /&gt;
/diskless_ro -ro -maproot=0 -network 192.168.1.0 -mask 255.255.255.0&lt;br /&gt;
/diskless_rw/192.168.1.2/etc /diskless_rw/192.168.1.2/var -maproot=root 192.168.1.2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restarting NFS&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# kill -HUP `cat /var/run/mountd.pid`&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If NFS is not started yet do the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data# rpcbind&lt;br /&gt;
data# nfsd -u -t -n 20 -h 192.168.1.1&lt;br /&gt;
data# mountd -r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Testing to see if the exports are correct&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data# showmount -e&lt;br /&gt;
Exports list on localhost:&lt;br /&gt;
/usr                              192.168.1.0&lt;br /&gt;
/diskless_rw/192.168.1.2/var      192.168.1.2&lt;br /&gt;
/diskless_rw/192.168.1.2/etc      192.168.1.2&lt;br /&gt;
/diskless_ro                      192.168.1.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Setup diskless_rw==&lt;br /&gt;
Create directories&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /diskless_rw/192.168.1.2/etc&lt;br /&gt;
# mkdir pam.d X11&lt;br /&gt;
&lt;br /&gt;
# cd /diskless_rw/192.168.1.2/var&lt;br /&gt;
# mkdir home log run tmp&lt;br /&gt;
# chmod 1777 tmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a swap file in the var directory for the client&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# dd if=/dev/zero of=/diskless_rw/192.168.1.2/var/swap bs=1k count=32000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in the /diskless_rw/&amp;lt;ip&amp;gt;/var/log directory I created the following log files so that syslogd would have files to write to:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /diskless_rw/192.168.1.2/var/log&lt;br /&gt;
# touch messages security auth.log maillog lpd-errs xferlog cron debug.log slip.log ppp.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Copy the following files from the systems /etc directory to /diskless_rw/&amp;lt;client ip&amp;gt;/etc&lt;br /&gt;
 # cp -Rv &amp;lt;files&amp;gt; /diskless_rw/&amp;lt;ip&amp;gt;/etc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth.conf&lt;br /&gt;
disktab&lt;br /&gt;
gettytab&lt;br /&gt;
group&lt;br /&gt;
hosts&lt;br /&gt;
login.access&lt;br /&gt;
login.conf&lt;br /&gt;
login.conf.db&lt;br /&gt;
master.passwd&lt;br /&gt;
netconfig&lt;br /&gt;
protocols&lt;br /&gt;
pam.d&lt;br /&gt;
pwd.db&lt;br /&gt;
services&lt;br /&gt;
spwd.db&lt;br /&gt;
syslog.conf&lt;br /&gt;
termcap -&amp;gt; /usr/share/misc/termcap&lt;br /&gt;
ttys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's very important that you copy all the files in pam.d across otherwise you will not have a password prompt on your login.&lt;br /&gt;
&lt;br /&gt;
Create a fstab in /diskless_rw/&amp;lt;ip&amp;gt;/etc&lt;br /&gt;
 # touch /diskless_rw/&amp;lt;ip&amp;gt;/etc/fstab&lt;br /&gt;
&lt;br /&gt;
==Setup diskless_ro==&lt;br /&gt;
This is the common root mount for all pxe-boot clients.&lt;br /&gt;
&lt;br /&gt;
Copy accross important directories and kernel from boot to diskless_ro&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp -rv /bin /lib /libexec /sbin /boot /diskless_ro&lt;br /&gt;
# mkdir /diskless_ro/usr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For some client machines you may have to disable the ACPI (Power management) in the /diskless_ro/boot/device.hints&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hint.acpi.0.disabled=&amp;quot;1&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make a dev so that clients can boot without freezing.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /diskless_ro/dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make a directory so that we can mount var from the /diskless_rw/&amp;lt;client ip&amp;gt;/var&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /diskless_ro/var&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
So we can use the systems /var/tmp and /usr/home directory make soft links to them&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /diskless_ro&lt;br /&gt;
# ln -s /var/tmp&lt;br /&gt;
# ln -s /usr/home&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We require a few files from the systems /etc directory to be copied into the /diskless_ro/etc for common use between the thin clients.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /diskless_ro/etc&lt;br /&gt;
# cd /etc&lt;br /&gt;
# cp /services /netconfig /login.conf /diskless_ro/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===rc file===&lt;br /&gt;
The /diskless_ro/etc/rc file is the first file which is ran after the kernel has loaded.  Here we mount a the labels from the server.&lt;br /&gt;
&lt;br /&gt;
Create the /diskless_ro/etc/rc&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin; export PATH&lt;br /&gt;
TMPDIR=~/tmp;export TMPDIR&lt;br /&gt;
TMP=~/tmp;export TMP&lt;br /&gt;
&lt;br /&gt;
mount -t nfs 192.168.1.1:/usr /usr&lt;br /&gt;
&lt;br /&gt;
boot_ip=`/sbin/ifconfig | /usr/bin/grep &amp;quot;inet &amp;quot; | /usr/bin/grep -v 127.0.0.1 |&lt;br /&gt;
/usr/bin/awk '{print $2}'`&lt;br /&gt;
mount_nfs -L 192.168.1.1:/diskless_rw/${boot_ip}/etc /etc&lt;br /&gt;
mount_nfs -L 192.168.1.1:/diskless_rw/${boot_ip}/var /var&lt;br /&gt;
&lt;br /&gt;
swapon /var/swap&lt;br /&gt;
&lt;br /&gt;
#rm -rf /var/tmp/*&lt;br /&gt;
#rm -rf /var/tmp/.*&lt;br /&gt;
&lt;br /&gt;
# Option if you choose XDM terminals&lt;br /&gt;
#X -query 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
. /etc/rc2&lt;br /&gt;
exit 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Remember to change 192.168.1.1 to your X server's IP&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The -L on the mount_nfs is there so we don't get flock errors.&lt;br /&gt;
&lt;br /&gt;
===rc2 file===&lt;br /&gt;
This sets up some links for libraries and the logging daemon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
mount -a&lt;br /&gt;
/sbin/ldconfig -elf /usr/lib/compat /usr/X11R6/lib /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
syslogd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now change permissions so rc can run.&lt;br /&gt;
 # chmod +x rc*&lt;br /&gt;
&lt;br /&gt;
Copy /diskless_ro/etc/rc and rc2 to /diskless_rw/&amp;lt;client ip&amp;gt;/etc&lt;br /&gt;
 # cp /diskless_ro/etc/rc* /diskless_rw/192.168.1.2/etc&lt;br /&gt;
&lt;br /&gt;
==GRUB Floppy boot (optional)==&lt;br /&gt;
&lt;br /&gt;
(would like to compile this ourselves later)&lt;br /&gt;
To get started we downloaded the image from www.hp.uab.edu/~ed/grub-net&lt;br /&gt;
&lt;br /&gt;
 shell# dd if=/data/grub-net.img of=/dev/fd0&lt;br /&gt;
&lt;br /&gt;
Then we mounted it as msdos&lt;br /&gt;
Remove/rename menu.1st from the grub directory as it was doing something funny with it.  We think that it was looking for a tftp server through our dhcp and we don't have a the dhcp setup correctly here, so we wanted to do it manually.&lt;br /&gt;
&lt;br /&gt;
Reboot off the floppy now..&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; ifconfig --address=192.168.1.2 --mask=255.255.255.0 --gateway=192.168.1.1&lt;br /&gt;
 --server=192.168.1.2&lt;br /&gt;
&lt;br /&gt;
OR you can use dhcp&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; dhcp&amp;lt;br&amp;gt; &lt;br /&gt;
 grub&amp;gt; tftpserver 192.168.1.2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Setup tftp on your server, we created a directory /tftpboot. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Starting diskless system through GRUB===&lt;br /&gt;
This is an alternative boot loader.  You can use this for testing, if you don't have a pxeboot chip, otherwise skip this section.&lt;br /&gt;
&lt;br /&gt;
These commands are half working...&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; root (nd)&amp;lt;br&amp;gt;&lt;br /&gt;
 grub&amp;gt; kernel /kernel root=ad0s1a&amp;lt;br&amp;gt;&lt;br /&gt;
 grub&amp;gt; pxeboot&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Completely Diskless System (PXEBOOT ROM) (optional)==&lt;br /&gt;
&lt;br /&gt;
Running completely diskless by booting from a Network ROM Chip.&lt;br /&gt;
&lt;br /&gt;
We have now got a Intel GD82559 Etherexpress pro/100 Card.&lt;br /&gt;
&lt;br /&gt;
When we boot up on the client machine with that card it displays:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Intel UNDI, PXE-2.0 (build 067)&amp;lt;br /&amp;gt;&lt;br /&gt;
Copyright (C) 1997-1998 Intel Corporation&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Which we cannot get working so we have read that you have to update this version to Build 82.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
copy /boot/pxeboot to /tftpboot directory we made before&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
- Downloaded proboot.exe from support.intel.com and unpacked into a windows box.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Copied ibautil.exe onto a windows 98 boot disk.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Rebooted the test box after disabling network boot on the nic (otherwise it'll kick in before the floppy).&amp;lt;br /&amp;gt;&lt;br /&gt;
- Ran ibautil -iv to see what embedded image versions were available:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Intel(R) Boot Agent XG v1.0.09&amp;lt;br /&amp;gt;&lt;br /&gt;
Intel(R) Boot Agent GE v1.2.36&amp;lt;br /&amp;gt;&lt;br /&gt;
Intel(R) Boot Agent FE v4.1.19&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
- Ran ibautil -up to perform the image upgrade.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
It's interesting to note that no version showed up for out intel nic when initially running ibautil. After the upgrade, however, the version corectly showed as 4.1.19.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I made sure that I had simular features to this in my dhcpd.conf file:&amp;lt;br /&amp;gt;&lt;br /&gt;
option broadcast-address 192.168.254.255;&amp;lt;br /&amp;gt;&lt;br /&gt;
option domain-name-servers 192.168.254.3;&amp;lt;br /&amp;gt;&lt;br /&gt;
option domain-name &amp;quot;simerson.net&amp;quot;;&amp;lt;br /&amp;gt;&lt;br /&gt;
option routers 192.168.254.1;&amp;lt;br /&amp;gt;&lt;br /&gt;
option subnet-mask 255.255.255.0;&amp;lt;br /&amp;gt;&lt;br /&gt;
server-name &amp;quot;pxe-gw&amp;quot;;&amp;lt;br /&amp;gt;&lt;br /&gt;
server-identifier 192.168.254.3;&amp;lt;br /&amp;gt;&lt;br /&gt;
next-server 192.168.254.3;&amp;lt;br /&amp;gt;&lt;br /&gt;
default-lease-time -1;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
subnet 192.168.254.0 netmask 255.255.255.0 {&amp;lt;br /&amp;gt;&lt;br /&gt;
range 192.168.254.32 192.168.254.99;&amp;lt;br /&amp;gt;&lt;br /&gt;
option root-path &amp;quot;/usr/local/export/pxe&amp;quot;;&amp;lt;br /&amp;gt;&lt;br /&gt;
filename &amp;quot;pxeboot&amp;quot;;&amp;lt;br /&amp;gt;&lt;br /&gt;
}&amp;lt;br /&amp;gt;&lt;br /&gt;
host cm.simerson.net {&amp;lt;br /&amp;gt;&lt;br /&gt;
hardware ethernet 00:e0:18:98:f0:cc;&amp;lt;br /&amp;gt;&lt;br /&gt;
fixed-address 192.168.254.126;&amp;lt;br /&amp;gt;&lt;br /&gt;
}&amp;lt;br /&amp;gt;&lt;br /&gt;
host c1.simerson.net {&amp;lt;br /&amp;gt;&lt;br /&gt;
hardware ethernet 00:60:97:0e:bb:a7;&amp;lt;br /&amp;gt;&lt;br /&gt;
fixed-address 192.168.254.131;&amp;lt;br /&amp;gt;&lt;br /&gt;
}&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==X config notes==&lt;br /&gt;
On the X server the /etc/X11/xorg.conf file is only used for the X server not the clients.&lt;br /&gt;
&lt;br /&gt;
To use this same configuration for your X Terminal Clients copy this file to /diskless_rw/&amp;lt;Client IP&amp;gt;/etc/X11 and it will use it.&lt;br /&gt;
&lt;br /&gt;
==Starting X on the client==&lt;br /&gt;
There are two ways of doing this and it depends on your hardware mainly.  &lt;br /&gt;
&lt;br /&gt;
1. run all programs on the server using the servers CPU and Memory this we will call the 'XDM Method'&lt;br /&gt;
2. run all programs from the NFS mounts using the clients CPU and Memory but the HD of the server, this we will call the 'NFS Method'&lt;br /&gt;
&lt;br /&gt;
Both methods will boot from PXE-Boot and can be diskless.&lt;br /&gt;
&lt;br /&gt;
===XDM Method===&lt;br /&gt;
Recommended for machines less than 1Ghz 256MB&lt;br /&gt;
&lt;br /&gt;
This is quite simple to setup.  Change your rc file in the /diskless_ro/etc directory to have this line at the end:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
X -query &amp;lt;server ip&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure on the server you setup xdm to start on system startup&lt;br /&gt;
 # vi /etc/ttys&lt;br /&gt;
&lt;br /&gt;
Search for this line:&lt;br /&gt;
 ttyv8   &amp;quot;/usr/X11R6/bin/xdm -nodaemon&amp;quot;  xterm   off secure&lt;br /&gt;
&lt;br /&gt;
and change it to:&lt;br /&gt;
 ttyv8   &amp;quot;/usr/X11R6/bin/xdm -nodaemon&amp;quot;  xterm   on secure&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also type this command at the command line on the client to test before hand.&lt;br /&gt;
&lt;br /&gt;
===NFS Method===&lt;br /&gt;
Recommended for machines over 1Ghz 256MB or if you want to utilise any of the clients devices such as local HD, USB, CD/DVD burners, etc.&lt;br /&gt;
&lt;br /&gt;
This is much trickier.&lt;br /&gt;
&lt;br /&gt;
Log in&lt;br /&gt;
Now type 'startx' at the command line.&lt;br /&gt;
&lt;br /&gt;
==Custom Kernels==&lt;br /&gt;
If you want to create custom kernels for your clients then do this:&lt;br /&gt;
&lt;br /&gt;
Create your custom kernel&lt;br /&gt;
 # cd /sys/i386/conf&lt;br /&gt;
 # cp GENERIC DISKLESS&lt;br /&gt;
 # vi DISKLESS&lt;br /&gt;
&lt;br /&gt;
Make changes and build and install&lt;br /&gt;
&lt;br /&gt;
 # cd /usr/src&lt;br /&gt;
 # make buildkernel KERNCONF=DISKLESS&lt;br /&gt;
 # make installkernel KERNCONF=DISKLESS DESTDIR=/diskless_ro&lt;br /&gt;
&lt;br /&gt;
==todo==&lt;br /&gt;
Here are some of the jobs left to do to make this secure or generally better:&lt;br /&gt;
&lt;br /&gt;
- There must be a simplier way to set this up if your going to use XDM in the end.  IE: do we need to do half of this tutorial if we are going to run XDM.&lt;br /&gt;
&lt;br /&gt;
- When the same user logs onto two seperate machines they cannot start firefox or thunderbird as it complains about being open somewhere else.  This assumes you have firefox and thunderbird already open on both machines that you logged onto.&lt;br /&gt;
&lt;br /&gt;
===Known Issues===&lt;br /&gt;
&lt;br /&gt;
- Doesn't work with HP-COMPAQ-T5525 thin client as it doesn't want to boot, it says it's missing libfreetype.so.9 which we do have it just cannot find it for some reason.  It's trying to use the VIA chipset for graphics which is different to all the other clients I've loaded successfully so far.&lt;br /&gt;
&lt;br /&gt;
- USB mice not working instead use PS/2.  If we got this working it may help get the HP T5525 working&lt;br /&gt;
&lt;br /&gt;
===Keyboard repeating on notebooks===&lt;br /&gt;
- typing on some keyboards (like my notebook) causes double characters to display if you type too fast. - This is the notebook, if you go and set the KDE Accessabiltiy options and set the keyboard rate to 50ms, this fixes the problem.&lt;br /&gt;
&lt;br /&gt;
===USB mouse===&lt;br /&gt;
&lt;br /&gt;
Editing /etc/devd.conf file and searched for ums&lt;br /&gt;
remarked out the action line.&lt;br /&gt;
 &lt;br /&gt;
rebooted.&lt;br /&gt;
 &lt;br /&gt;
Someone off IRC suggested that I build a GENERIC xorg.conf file which has vesa, usb mouse and ps/2 mouse configurations through it.&lt;br /&gt;
 &lt;br /&gt;
I reverted everything back to normal ps/2 mouse config, copying my usb config files to the following:&lt;br /&gt;
/etc/devd.conf_usb&lt;br /&gt;
/etc/rc.conf_usb&lt;br /&gt;
/etc/X11/xorg.conf_usb&lt;br /&gt;
 &lt;br /&gt;
I think we need a seperate configuration for the HP, it uses a weird display driver.&lt;br /&gt;
&lt;br /&gt;
==links==&lt;br /&gt;
&lt;br /&gt;
http://www.onlamp.com/pub/a/bsd/2004/09/09/diskless_server.html&lt;br /&gt;
&lt;br /&gt;
http://www.onlamp.com/pub/a/bsd/2004/09/30/diskless_clients.html&lt;br /&gt;
&lt;br /&gt;
http://people.freebsd.org/~alfred/pxe/en_US.ISO8859-1/articles/pxe/article.html&lt;br /&gt;
&lt;br /&gt;
http://www.the-labs.com/FreeBSD/Diskless/&lt;br /&gt;
&lt;br /&gt;
http://www.nber.org/sys-admin/FreeBSD-diskless.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://wikitest.freebsd.org/MarkusBoelter&lt;br /&gt;
&lt;br /&gt;
http://www.daemonsecurity.com/pub/pxeboot/&lt;br /&gt;
&lt;br /&gt;
http://www.kano.org.uk/projects/pxe/&lt;br /&gt;
&lt;br /&gt;
File Examples:&lt;br /&gt;
&lt;br /&gt;
http://www.watson.org/~robert/freebsd/pxe/&lt;br /&gt;
&lt;br /&gt;
PXE Information&lt;br /&gt;
http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;articleId=108551&lt;br /&gt;
&lt;br /&gt;
[[Category:FreeBSD_for_Workstations]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/X_Windows_Terminal</id>
		<title>X Windows Terminal</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/X_Windows_Terminal"/>
				<updated>2006-10-15T11:03:17Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Advantages==&lt;br /&gt;
X Windows can be used in a Server-Client relationship.  By setting up your X Windows Server you allow the use of all the programs on that computer to all the client PC's.  &lt;br /&gt;
&lt;br /&gt;
There are many advantages of running client computers in this manner:&lt;br /&gt;
* They don't even need a hard drive.  &lt;br /&gt;
* It's silent as there are no moving parts&lt;br /&gt;
* The solution saves power as your computers are very thin.&lt;br /&gt;
* Everything can be backed up centrally.&lt;br /&gt;
* Boot times for client PC's are the fastest around.&lt;br /&gt;
* Clients don't need much CPU speed, memory, etc.  Because of this they would be very cheap.  You could get away with using a Pentium 100Mhz with 32MB ram, no hard drive, no CD-ROM, no Floppy and a fanless power supply.  You just need a ethernet card with a PXEBOOT ROM. (XDM mode)&lt;br /&gt;
* Central management of applications, users, config&lt;br /&gt;
&lt;br /&gt;
==From the Beginning==&lt;br /&gt;
I've based this document on FreeBSD 6.1.&lt;br /&gt;
&lt;br /&gt;
Install FreeBSD 6.1 as per usual.&lt;br /&gt;
I've setup my mount points as this:&lt;br /&gt;
  '''Part    Mount        Size'''&lt;br /&gt;
  ad0s1b  Swap         (equal to how much memory I have in my machine)&lt;br /&gt;
  ad0s1a  /            512MB&lt;br /&gt;
  ad0s1d  /var         1G&lt;br /&gt;
  ad0s1e  /tmp         512MB&lt;br /&gt;
  ad0s1f  /usr         2GB    min.&lt;br /&gt;
          /diskless_ro 512MB&lt;br /&gt;
          /diskless_rw 1GB    min.&lt;br /&gt;
&lt;br /&gt;
I selected 'A' for auto and then deleted /usr and created /usr as 2g.&lt;br /&gt;
&lt;br /&gt;
Select User-X install. Yes to Ports if you have the room.&lt;br /&gt;
&lt;br /&gt;
Select SSH Server and NFS Server in the installation process, for the rest of the options go with the default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: If you forget to add any of the labels above, you will have to reboot as you cannot add labels to your boot drive when you have booted off it. So boot of the installation CD and use the configure -&amp;gt; label option in the sysinstall screen to add these labels to your boot drive.  You may need to retype the mount points for /, /var, /tmp and /usr by hitting 'm' on each label.  Once you have created these labels in the 'Disklabel Editor' then you can hit 'w' to write them to the disk.  answer 'yes' to the next question, hit 'ok' to the warning message.  Now quit and reboot. Add them to fstab (/dev/ad0s1g   /diskless_ro) &amp;amp; (/dev/ad0s1h   /diskless_rw) and mount.&lt;br /&gt;
&lt;br /&gt;
I find the best way to get this working is to break it down in to small steps and get each step working independantly.  IE: Setup NFS and see if you can mount it from another FreeBSD machine, don't just assume it will work and boot your PXE-Boot machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Throughout my documentation&lt;br /&gt;
&lt;br /&gt;
192.168.1.1 = the Server&lt;br /&gt;
&lt;br /&gt;
192.168.1.2 = the client (may be a full freebsd system or pxeboot)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point I normally install fluxbox with the following line:&lt;br /&gt;
&lt;br /&gt;
 shell# pkg_add -r fluxbox-devel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
change your ~/.xinitrc file to the following:&lt;br /&gt;
&lt;br /&gt;
 startfluxbox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use the following command to update your fluxbox menus:&lt;br /&gt;
&lt;br /&gt;
 shell$ fluxbox-generate_menu&lt;br /&gt;
&lt;br /&gt;
==Running a single application==&lt;br /&gt;
&lt;br /&gt;
To get started I have my server setup running FreeBSD, with X-Windows and a few applications.  Nothing too special.  Then I have my client PC, which to start off I used the frenzy 1.0 boot CD to perform these initial tests.  You can get this from [http://frenzy.org.ua/eng/ frenzy website].  I entered into fluxbox, but you could equally use any X session.&lt;br /&gt;
You must allow incoming connections this is done with two commands&lt;br /&gt;
&lt;br /&gt;
 client$ startx -listen_tcp&lt;br /&gt;
 client$ xhost +&lt;br /&gt;
&lt;br /&gt;
This allows all computers to start applications on your client PC.  It's dangerous but good for testing everything is setup correctly.&lt;br /&gt;
&lt;br /&gt;
 client$ ssh &amp;lt;server user@server ip&amp;gt;&lt;br /&gt;
 eg: ssh mick@192.168.1.1&lt;br /&gt;
&lt;br /&gt;
 ssh$ export DISPLAY='192.168.1.2:0'&lt;br /&gt;
&lt;br /&gt;
Or if your running bash:&lt;br /&gt;
 ssh$ DISPLAY=&amp;lt;client ip&amp;gt;:&amp;lt;client display&amp;gt;; export DISPLAY&lt;br /&gt;
 eg: DISPLAY=192.168.1.2:0; export DISPLAY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ssh$ xcalc &amp;amp;&lt;br /&gt;
&lt;br /&gt;
This should display on your client&lt;br /&gt;
&lt;br /&gt;
==Running a whole X Windows Session (XDM)==&lt;br /&gt;
This sets up a server so that you can share your X session with any clients which want to connect.  (Simular to Terminal Services under windows)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===server===&lt;br /&gt;
edit:&lt;br /&gt;
 /usr/X11R6/lib/X11/xdm/xdm-config&lt;br /&gt;
&lt;br /&gt;
comment out with a '!' the request line&amp;lt;br&amp;gt;&lt;br /&gt;
 DisplayManager.requestPort: 0&lt;br /&gt;
&lt;br /&gt;
edit:&amp;lt;br&amp;gt;&lt;br /&gt;
 /usr/X11R6/lib/X11/xdm/Xaccess&lt;br /&gt;
&lt;br /&gt;
Enter a single asterisk any where in the file, so the contents should be one asterisk and the rest commented out.  There should be an asterisk on line 49 which you can uncomment.&lt;br /&gt;
&lt;br /&gt;
Whilst in the /usr/X11R6/lib/X11/xdm directory do these commands:&lt;br /&gt;
 shell# vi Xstartup&lt;br /&gt;
&lt;br /&gt;
Add into this file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Xstartup&lt;br /&gt;
#&lt;br /&gt;
# This program is run as root after the user is verified&lt;br /&gt;
#&lt;br /&gt;
if [ -f /etc/nologin ]; then&lt;br /&gt;
   xmessage -file /etc/nologin -timeout 30 -center&lt;br /&gt;
   exit 1&lt;br /&gt;
fi&lt;br /&gt;
sessreg -a -l $DISPLAY -x /usr/X11R6/lib/xdm/Xservers $LOGNAME&lt;br /&gt;
/usr/X11R6/lib/xdm/GiveConsole&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
shell# chmod +x Xstartup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Make sure your firewall has all traffic for you lan.  (Need to know which exact ports to allow).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Make sure you &amp;lt;/b&amp;gt;create ~/.xsession for each user which requires access and enter your start up for x &lt;br /&gt;
eg:&lt;br /&gt;
&lt;br /&gt;
 startfluxbox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;run xdm on server as root&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 shell# xdm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can put this xdm into the /etc/ttys so that it starts automatically on boot up.&lt;br /&gt;
&lt;br /&gt;
===client===&lt;br /&gt;
make sure your not in X&lt;br /&gt;
&lt;br /&gt;
type this command:&lt;br /&gt;
&lt;br /&gt;
 shell# X -broadcast&lt;br /&gt;
&lt;br /&gt;
This assumes that you are running only one server.&lt;br /&gt;
Otherwise use:&lt;br /&gt;
&lt;br /&gt;
 shell# X -query 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
==DHCP - Install and setup==&lt;br /&gt;
Server setup.&lt;br /&gt;
&lt;br /&gt;
install through package&lt;br /&gt;
 # pkg_add -r isc-dhcp3-server&lt;br /&gt;
&lt;br /&gt;
We do this so we can define the root path for the diskless system.&lt;br /&gt;
&lt;br /&gt;
copy /usr/local/etc/dhcpd.conf.sample to /usr/local/etc/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
edit /usr/local/etc/dhcpd.conf and make sure it has these lines in it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# dhcpd.conf&lt;br /&gt;
#&lt;br /&gt;
# Sample configuration file for ISC dhcpd&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# option definitions common to all supported networks...&lt;br /&gt;
#option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
#option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
&lt;br /&gt;
default-lease-time 3600;&lt;br /&gt;
max-lease-time 86400;&lt;br /&gt;
&lt;br /&gt;
# If this DHCP server is the official DHCP server for the local&lt;br /&gt;
# network, the authoritative directive should be uncommented.&lt;br /&gt;
authoritative;&lt;br /&gt;
&lt;br /&gt;
# ad-hoc DNS update scheme - set to &amp;quot;none&amp;quot; to disable dynamic DNS updates.&lt;br /&gt;
ddns-update-style none;&lt;br /&gt;
&lt;br /&gt;
option root-path &amp;quot;192.168.1.1:/diskless_ro&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# lines added for pxeboot client&lt;br /&gt;
use-host-decl-names on;&lt;br /&gt;
next-server 192.168.1.1;&lt;br /&gt;
filename &amp;quot;pxeboot&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Use this to send dhcp log messages to a different log file (you also&lt;br /&gt;
# have to hack syslog.conf to complete the redirection).&lt;br /&gt;
log-facility local7;&lt;br /&gt;
&lt;br /&gt;
# No service will be given on this subnet, but declaring it helps the&lt;br /&gt;
# DHCP server to understand the network topology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# This is a very basic subnet declaration.&lt;br /&gt;
&lt;br /&gt;
subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 192.168.1.10 192.168.1.20;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the leases file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# touch /var/db/dhcpd.leases&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Restart the daemon&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# killall dhcpd&lt;br /&gt;
# dhcpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add to /etc/rc.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dhcpd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using a seperate DHCP server===&lt;br /&gt;
If you already have a DHCP server and you want to use that instead then you have to do these steps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====On your DHCP Server====&lt;br /&gt;
1. edit /usr/local/etc/dhcpd.conf and add the following&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
authoritative;&lt;br /&gt;
ddns-update-style none;&lt;br /&gt;
&lt;br /&gt;
option root-path &amp;quot;&amp;lt;X Server IP&amp;gt;:/diskless_ro&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# lines added for pxeboot client&lt;br /&gt;
use-host-decl-names on;&lt;br /&gt;
next-server &amp;lt;X Server IP&amp;gt;;&lt;br /&gt;
filename &amp;quot;pxeboot&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. stop dhcpd&lt;br /&gt;
3. start dhcpd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Client====&lt;br /&gt;
Your client should boot now just remember that you may get a different IP now that you are talking to a different DHCP server so you have to change your exports file and copy accross a directory in /diskless_rw for the new IP.  All this is done on the X Server.&lt;br /&gt;
&lt;br /&gt;
==TFTP Setup==&lt;br /&gt;
TFTP helps us transport the kernel to the PXE-Boot machines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /tftpboot&lt;br /&gt;
# cp /boot/pxeboot /tftpboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uncomment the following line in /etc/inetd.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tftp    dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l -s /tftpboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart the inetd service&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# killall -HUP inetd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If inetd has not started automatically do the following:&lt;br /&gt;
&lt;br /&gt;
Add the following to /etc/rc.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
inetd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now start inetd manually.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# inetd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
To test that tftp has loaded type the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sockstat -4l | grep 69 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you should see this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root      inetd       13719 5   udp4    *:69                 *:*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NFS Setup==&lt;br /&gt;
Network File System.  Here we share all the directories from the server so that the diskless clients see these drives as if those directories were the diskless client's.&lt;br /&gt;
&lt;br /&gt;
===Server Setup===&lt;br /&gt;
If you forgot to select 'Yes' to NFS server setup in the FreeBSD installation then you have to setup the server manually like so:&lt;br /&gt;
&lt;br /&gt;
Enable NFS /etc/rc.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpcbind_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
nfs_server_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
A quick test to see if your NFS server is acting normal:&lt;br /&gt;
&lt;br /&gt;
Edit the /etc/exports and add the following&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr       -alldirs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This allows anyone to connect to your /usr mount.&lt;br /&gt;
&lt;br /&gt;
Now run these commands to restart and view your mounts&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# kill -HUP `cat /var/run/mountd.pid`&lt;br /&gt;
# showmount -e&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now try and mount it from a client running BSD&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mount -t nfs 192.168.1.1:/usr /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Server exports setup===&lt;br /&gt;
&lt;br /&gt;
Make directories for each IP for your clients&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /diskless_rw&lt;br /&gt;
# mkdir 192.168.1.2&lt;br /&gt;
# cd 192.168.1.2&lt;br /&gt;
# mkdir etc var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure /etc/exports&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# file systems accessible only for reading:&lt;br /&gt;
# Original way of linking up the /usr&lt;br /&gt;
#/usr -ro -maproot=0 -network 192.168.1.0 -mask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
/usr -network 192.168.1.0 -mask 255.255.255.0&lt;br /&gt;
/diskless_ro -ro -maproot=0 -network 192.168.1.0 -mask 255.255.255.0&lt;br /&gt;
/diskless_rw/192.168.1.2/etc /diskless_rw/192.168.1.2/var -maproot=root 192.168.1.2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restarting NFS&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# kill -HUP `cat /var/run/mountd.pid`&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If NFS is not started yet do the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data# rpcbind&lt;br /&gt;
data# nfsd -u -t -n 20 -h 192.168.1.1&lt;br /&gt;
data# mountd -r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Testing to see if the exports are correct&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data# showmount -e&lt;br /&gt;
Exports list on localhost:&lt;br /&gt;
/usr                              192.168.1.0&lt;br /&gt;
/diskless_rw/192.168.1.2/var      192.168.1.2&lt;br /&gt;
/diskless_rw/192.168.1.2/etc      192.168.1.2&lt;br /&gt;
/diskless_ro                      192.168.1.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Setup diskless_rw==&lt;br /&gt;
Create directories&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /diskless_rw/192.168.1.2/etc&lt;br /&gt;
# mkdir pam.d X11&lt;br /&gt;
&lt;br /&gt;
# cd /diskless_rw/192.168.1.2/var&lt;br /&gt;
# mkdir home log run tmp&lt;br /&gt;
# chmod 1777 tmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a swap file in the var directory for the client&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# dd if=/dev/zero of=/diskless_rw/192.168.1.2/var/swap bs=1k count=32000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in the /diskless_rw/&amp;lt;ip&amp;gt;/var/log directory I created the following log files so that syslogd would have files to write to:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /diskless_rw/192.168.1.2/var/log&lt;br /&gt;
# touch messages security auth.log maillog lpd-errs xferlog cron debug.log slip.log ppp.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Copy the following files from the systems /etc directory to /diskless_rw/&amp;lt;client ip&amp;gt;/etc&lt;br /&gt;
 # cp -Rv &amp;lt;files&amp;gt; /diskless_rw/&amp;lt;ip&amp;gt;/etc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth.conf&lt;br /&gt;
disktab&lt;br /&gt;
gettytab&lt;br /&gt;
group&lt;br /&gt;
hosts&lt;br /&gt;
login.access&lt;br /&gt;
login.conf&lt;br /&gt;
login.conf.db&lt;br /&gt;
master.passwd&lt;br /&gt;
netconfig&lt;br /&gt;
protocols&lt;br /&gt;
pam.d&lt;br /&gt;
pwd.db&lt;br /&gt;
services&lt;br /&gt;
spwd.db&lt;br /&gt;
syslog.conf&lt;br /&gt;
termcap -&amp;gt; /usr/share/misc/termcap&lt;br /&gt;
ttys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's very important that you copy all the files in pam.d across otherwise you will not have a password prompt on your login.&lt;br /&gt;
&lt;br /&gt;
Create a fstab in /diskless_rw/&amp;lt;ip&amp;gt;/etc&lt;br /&gt;
 # touch /diskless_rw/&amp;lt;ip&amp;gt;/etc/fstab&lt;br /&gt;
&lt;br /&gt;
==Setup diskless_ro==&lt;br /&gt;
This is the common root mount for all pxe-boot clients.&lt;br /&gt;
&lt;br /&gt;
Copy accross important directories and kernel from boot to diskless_ro&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp -rv /bin /lib /libexec /sbin /boot /diskless_ro&lt;br /&gt;
# mkdir /diskless_ro/usr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For some client machines you may have to disable the ACPI (Power management) in the /diskless_ro/boot/device.hints&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hint.acpi.0.disabled=&amp;quot;1&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make a dev so that clients can boot without freezing.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /diskless_ro/dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make a directory so that we can mount var from the /diskless_rw/&amp;lt;client ip&amp;gt;/var&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /diskless_ro/var&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
So we can use the systems /var/tmp and /usr/home directory make soft links to them&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /diskless_ro&lt;br /&gt;
# ln -s /var/tmp&lt;br /&gt;
# ln -s /usr/home&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We require a few files from the systems /etc directory to be copied into the /diskless_ro/etc for common use between the thin clients.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /diskless_ro/etc&lt;br /&gt;
# cd /etc&lt;br /&gt;
# cp /services /netconfig /login.conf /diskless_ro/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===rc file===&lt;br /&gt;
The /diskless_ro/etc/rc file is the first file which is ran after the kernel has loaded.  Here we mount a the labels from the server.&lt;br /&gt;
&lt;br /&gt;
Create the /diskless_ro/etc/rc&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin; export PATH&lt;br /&gt;
TMPDIR=~/tmp;export TMPDIR&lt;br /&gt;
TMP=~/tmp;export TMP&lt;br /&gt;
&lt;br /&gt;
mount -t nfs 192.168.1.1:/usr /usr&lt;br /&gt;
&lt;br /&gt;
boot_ip=`/sbin/ifconfig | /usr/bin/grep &amp;quot;inet &amp;quot; | /usr/bin/grep -v 127.0.0.1 |&lt;br /&gt;
/usr/bin/awk '{print $2}'`&lt;br /&gt;
mount_nfs -L 192.168.1.1:/diskless_rw/${boot_ip}/etc /etc&lt;br /&gt;
mount_nfs -L 192.168.1.1:/diskless_rw/${boot_ip}/var /var&lt;br /&gt;
&lt;br /&gt;
swapon /var/swap&lt;br /&gt;
&lt;br /&gt;
#rm -rf /var/tmp/*&lt;br /&gt;
#rm -rf /var/tmp/.*&lt;br /&gt;
&lt;br /&gt;
# Option if you choose XDM terminals&lt;br /&gt;
#X -query 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
. /etc/rc2&lt;br /&gt;
exit 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Remember to change 192.168.1.1 to your X server's IP&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The -L on the mount_nfs is there so we don't get flock errors.&lt;br /&gt;
&lt;br /&gt;
===rc2 file===&lt;br /&gt;
This sets up some links for libraries and the logging daemon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
mount -a&lt;br /&gt;
/sbin/ldconfig -elf /usr/lib/compat /usr/X11R6/lib /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
syslogd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now change permissions so rc can run.&lt;br /&gt;
 # chmod +x rc*&lt;br /&gt;
&lt;br /&gt;
Copy /diskless_ro/etc/rc and rc2 to /diskless_rw/&amp;lt;client ip&amp;gt;/etc&lt;br /&gt;
 # cp /diskless_ro/etc/rc* /diskless_rw/192.168.1.2/etc&lt;br /&gt;
&lt;br /&gt;
==GRUB Floppy boot (optional)==&lt;br /&gt;
&lt;br /&gt;
(would like to compile this ourselves later)&lt;br /&gt;
To get started we downloaded the image from www.hp.uab.edu/~ed/grub-net&lt;br /&gt;
&lt;br /&gt;
 shell# dd if=/data/grub-net.img of=/dev/fd0&lt;br /&gt;
&lt;br /&gt;
Then we mounted it as msdos&lt;br /&gt;
Remove/rename menu.1st from the grub directory as it was doing something funny with it.  We think that it was looking for a tftp server through our dhcp and we don't have a the dhcp setup correctly here, so we wanted to do it manually.&lt;br /&gt;
&lt;br /&gt;
Reboot off the floppy now..&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; ifconfig --address=192.168.1.2 --mask=255.255.255.0 --gateway=192.168.1.1&lt;br /&gt;
 --server=192.168.1.2&lt;br /&gt;
&lt;br /&gt;
OR you can use dhcp&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; dhcp&amp;lt;br&amp;gt; &lt;br /&gt;
 grub&amp;gt; tftpserver 192.168.1.2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Setup tftp on your server, we created a directory /tftpboot. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Starting diskless system through GRUB===&lt;br /&gt;
This is an alternative boot loader.  You can use this for testing, if you don't have a pxeboot chip, otherwise skip this section.&lt;br /&gt;
&lt;br /&gt;
These commands are half working...&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; root (nd)&amp;lt;br&amp;gt;&lt;br /&gt;
 grub&amp;gt; kernel /kernel root=ad0s1a&amp;lt;br&amp;gt;&lt;br /&gt;
 grub&amp;gt; pxeboot&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Completely Diskless System (PXEBOOT ROM) (optional)==&lt;br /&gt;
&lt;br /&gt;
Running completely diskless by booting from a Network ROM Chip.&lt;br /&gt;
&lt;br /&gt;
We have now got a Intel GD82559 Etherexpress pro/100 Card.&lt;br /&gt;
&lt;br /&gt;
When we boot up on the client machine with that card it displays:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Intel UNDI, PXE-2.0 (build 067)&amp;lt;br /&amp;gt;&lt;br /&gt;
Copyright (C) 1997-1998 Intel Corporation&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Which we cannot get working so we have read that you have to update this version to Build 82.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
copy /boot/pxeboot to /tftpboot directory we made before&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
- Downloaded proboot.exe from support.intel.com and unpacked into a windows box.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Copied ibautil.exe onto a windows 98 boot disk.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Rebooted the test box after disabling network boot on the nic (otherwise it'll kick in before the floppy).&amp;lt;br /&amp;gt;&lt;br /&gt;
- Ran ibautil -iv to see what embedded image versions were available:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Intel(R) Boot Agent XG v1.0.09&amp;lt;br /&amp;gt;&lt;br /&gt;
Intel(R) Boot Agent GE v1.2.36&amp;lt;br /&amp;gt;&lt;br /&gt;
Intel(R) Boot Agent FE v4.1.19&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
- Ran ibautil -up to perform the image upgrade.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
It's interesting to note that no version showed up for out intel nic when initially running ibautil. After the upgrade, however, the version corectly showed as 4.1.19.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I made sure that I had simular features to this in my dhcpd.conf file:&amp;lt;br /&amp;gt;&lt;br /&gt;
option broadcast-address 192.168.254.255;&amp;lt;br /&amp;gt;&lt;br /&gt;
option domain-name-servers 192.168.254.3;&amp;lt;br /&amp;gt;&lt;br /&gt;
option domain-name &amp;quot;simerson.net&amp;quot;;&amp;lt;br /&amp;gt;&lt;br /&gt;
option routers 192.168.254.1;&amp;lt;br /&amp;gt;&lt;br /&gt;
option subnet-mask 255.255.255.0;&amp;lt;br /&amp;gt;&lt;br /&gt;
server-name &amp;quot;pxe-gw&amp;quot;;&amp;lt;br /&amp;gt;&lt;br /&gt;
server-identifier 192.168.254.3;&amp;lt;br /&amp;gt;&lt;br /&gt;
next-server 192.168.254.3;&amp;lt;br /&amp;gt;&lt;br /&gt;
default-lease-time -1;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
subnet 192.168.254.0 netmask 255.255.255.0 {&amp;lt;br /&amp;gt;&lt;br /&gt;
range 192.168.254.32 192.168.254.99;&amp;lt;br /&amp;gt;&lt;br /&gt;
option root-path &amp;quot;/usr/local/export/pxe&amp;quot;;&amp;lt;br /&amp;gt;&lt;br /&gt;
filename &amp;quot;pxeboot&amp;quot;;&amp;lt;br /&amp;gt;&lt;br /&gt;
}&amp;lt;br /&amp;gt;&lt;br /&gt;
host cm.simerson.net {&amp;lt;br /&amp;gt;&lt;br /&gt;
hardware ethernet 00:e0:18:98:f0:cc;&amp;lt;br /&amp;gt;&lt;br /&gt;
fixed-address 192.168.254.126;&amp;lt;br /&amp;gt;&lt;br /&gt;
}&amp;lt;br /&amp;gt;&lt;br /&gt;
host c1.simerson.net {&amp;lt;br /&amp;gt;&lt;br /&gt;
hardware ethernet 00:60:97:0e:bb:a7;&amp;lt;br /&amp;gt;&lt;br /&gt;
fixed-address 192.168.254.131;&amp;lt;br /&amp;gt;&lt;br /&gt;
}&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==X config notes==&lt;br /&gt;
On the X server the /etc/X11/xorg.conf file is only used for the X server not the clients.&lt;br /&gt;
&lt;br /&gt;
To use this same configuration for your X Terminal Clients copy this file to /diskless_rw/&amp;lt;Client IP&amp;gt;/etc/X11 and it will use it.&lt;br /&gt;
&lt;br /&gt;
==Starting X on the client==&lt;br /&gt;
There are two ways of doing this and it depends on your hardware mainly.  &lt;br /&gt;
&lt;br /&gt;
1. run all programs on the server using the servers CPU and Memory this we will call the 'XDM Method'&lt;br /&gt;
2. run all programs from the NFS mounts using the clients CPU and Memory but the HD of the server, this we will call the 'NFS Method'&lt;br /&gt;
&lt;br /&gt;
Both methods will boot from PXE-Boot and can be diskless.&lt;br /&gt;
&lt;br /&gt;
===XDM Method===&lt;br /&gt;
Recommended for machines less than 1Ghz 256MB&lt;br /&gt;
&lt;br /&gt;
This is quite simple to setup.  Change your rc file in the /diskless_ro/etc directory to have this line at the end:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
X -query &amp;lt;server ip&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure on the server you setup xdm to start on system startup&lt;br /&gt;
 # vi /etc/ttys&lt;br /&gt;
&lt;br /&gt;
Search for this line:&lt;br /&gt;
 ttyv8   &amp;quot;/usr/X11R6/bin/xdm -nodaemon&amp;quot;  xterm   off secure&lt;br /&gt;
&lt;br /&gt;
and change it to:&lt;br /&gt;
 ttyv8   &amp;quot;/usr/X11R6/bin/xdm -nodaemon&amp;quot;  xterm   on secure&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also type this command at the command line on the client to test before hand.&lt;br /&gt;
&lt;br /&gt;
===NFS Method===&lt;br /&gt;
Recommended for machines over 1Ghz 256MB or if you want to utilise any of the clients devices such as local HD, USB, CD/DVD burners, etc.&lt;br /&gt;
&lt;br /&gt;
This is much trickier.&lt;br /&gt;
&lt;br /&gt;
Log in&lt;br /&gt;
Now type 'startx' at the command line.&lt;br /&gt;
&lt;br /&gt;
==Custom Kernels==&lt;br /&gt;
If you want to create custom kernels for your clients then do this:&lt;br /&gt;
&lt;br /&gt;
Create your custom kernel&lt;br /&gt;
 # cd /sys/i386/conf&lt;br /&gt;
 # cp GENERIC DISKLESS&lt;br /&gt;
 # vi DISKLESS&lt;br /&gt;
&lt;br /&gt;
Make changes and build and install&lt;br /&gt;
&lt;br /&gt;
 # cd /usr/src&lt;br /&gt;
 # make buildkernel KERNCONF=DISKLESS&lt;br /&gt;
 # make installkernel KERNCONF=DISKLESS DESTDIR=/diskless_ro&lt;br /&gt;
&lt;br /&gt;
==todo==&lt;br /&gt;
Here are some of the jobs left to do to make this secure or generally better:&lt;br /&gt;
&lt;br /&gt;
- If you don't configure your clients to run xdm it will put you at the text login.  The problem here is people can login as root without a password for some reason.  If the user hits &amp;lt;Ctrl&amp;gt;&amp;lt;Alt&amp;gt;&amp;lt;Back space&amp;gt; then it will crash them out to a login screen which the user could then login as root with out a password, not good!&lt;br /&gt;
&lt;br /&gt;
- Optimise the boot up sequence&lt;br /&gt;
&lt;br /&gt;
- There must be a simplier way to set this up if your going to use XDM in the end.  IE: do we need to do half of this tutorial if we are going to run XDM.&lt;br /&gt;
&lt;br /&gt;
- When the same user logs onto two seperate machines they cannot start firefox or thunderbird as it complains about being open somewhere else.  This assumes you have firefox and thunderbird already open on both machines that you logged onto.&lt;br /&gt;
&lt;br /&gt;
===Known Issues===&lt;br /&gt;
&lt;br /&gt;
- Doesn't work with HP-COMPAQ-T5525 thin client as it doesn't want to boot, it says it's missing libfreetype.so.9 which we do have it just cannot find it for some reason.  It's trying to use the VIA chipset for graphics which is different to all the other clients I've loaded successfully so far.&lt;br /&gt;
&lt;br /&gt;
- USB mice not working instead use PS/2.  If we got this working it may help get the HP T5525 working&lt;br /&gt;
&lt;br /&gt;
===Keyboard repeating on notebooks===&lt;br /&gt;
- typing on some keyboards (like my notebook) causes double characters to display if you type too fast. - This is the notebook, if you go and set the KDE Accessabiltiy options and set the keyboard rate to 50ms, this fixes the problem.&lt;br /&gt;
&lt;br /&gt;
===USB mouse===&lt;br /&gt;
&lt;br /&gt;
Editing /etc/devd.conf file and searched for ums&lt;br /&gt;
remarked out the action line.&lt;br /&gt;
 &lt;br /&gt;
rebooted.&lt;br /&gt;
 &lt;br /&gt;
Someone off IRC suggested that I build a GENERIC xorg.conf file which has vesa, usb mouse and ps/2 mouse configurations through it.&lt;br /&gt;
 &lt;br /&gt;
I reverted everything back to normal ps/2 mouse config, copying my usb config files to the following:&lt;br /&gt;
/etc/devd.conf_usb&lt;br /&gt;
/etc/rc.conf_usb&lt;br /&gt;
/etc/X11/xorg.conf_usb&lt;br /&gt;
 &lt;br /&gt;
I think we need a seperate configuration for the HP, it uses a weird display driver.&lt;br /&gt;
&lt;br /&gt;
==links==&lt;br /&gt;
&lt;br /&gt;
http://www.onlamp.com/pub/a/bsd/2004/09/09/diskless_server.html&lt;br /&gt;
&lt;br /&gt;
http://www.onlamp.com/pub/a/bsd/2004/09/30/diskless_clients.html&lt;br /&gt;
&lt;br /&gt;
http://people.freebsd.org/~alfred/pxe/en_US.ISO8859-1/articles/pxe/article.html&lt;br /&gt;
&lt;br /&gt;
http://www.the-labs.com/FreeBSD/Diskless/&lt;br /&gt;
&lt;br /&gt;
http://www.nber.org/sys-admin/FreeBSD-diskless.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://wikitest.freebsd.org/MarkusBoelter&lt;br /&gt;
&lt;br /&gt;
http://www.daemonsecurity.com/pub/pxeboot/&lt;br /&gt;
&lt;br /&gt;
http://www.kano.org.uk/projects/pxe/&lt;br /&gt;
&lt;br /&gt;
File Examples:&lt;br /&gt;
&lt;br /&gt;
http://www.watson.org/~robert/freebsd/pxe/&lt;br /&gt;
&lt;br /&gt;
PXE Information&lt;br /&gt;
http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;articleId=108551&lt;br /&gt;
&lt;br /&gt;
[[Category:FreeBSD_for_Workstations]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/X_Windows_Terminal</id>
		<title>X Windows Terminal</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/X_Windows_Terminal"/>
				<updated>2006-10-15T09:01:06Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: /* Setup diskless_rw */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Advantages==&lt;br /&gt;
X Windows can be used in a Server-Client relationship.  By setting up your X Windows Server you allow the use of all the programs on that computer to all the client PC's.  &lt;br /&gt;
&lt;br /&gt;
There are many advantages of running client computers in this manner:&lt;br /&gt;
* They don't even need a hard drive.  &lt;br /&gt;
* It's silent as there are no moving parts&lt;br /&gt;
* The solution saves power as your computers are very thin.&lt;br /&gt;
* Everything can be backed up centrally.&lt;br /&gt;
* Boot times for client PC's are the fastest around.&lt;br /&gt;
* Clients don't need much CPU speed, memory, etc.  Because of this they would be very cheap.  You could get away with using a Pentium 100Mhz with 32MB ram, no hard drive, no CD-ROM, no Floppy and a fanless power supply.  You just need a ethernet card with a PXEBOOT ROM. (XDM mode)&lt;br /&gt;
* Central management of applications, users, config&lt;br /&gt;
&lt;br /&gt;
==From the Beginning==&lt;br /&gt;
I've based this document on FreeBSD 6.1.&lt;br /&gt;
&lt;br /&gt;
Install FreeBSD 6.1 as per usual.&lt;br /&gt;
I've setup my mount points as this:&lt;br /&gt;
  '''Part    Mount        Size'''&lt;br /&gt;
  ad0s1b  Swap         (equal to how much memory I have in my machine)&lt;br /&gt;
  ad0s1a  /            512MB&lt;br /&gt;
  ad0s1d  /var         1G&lt;br /&gt;
  ad0s1e  /tmp         512MB&lt;br /&gt;
  ad0s1f  /usr         2GB    min.&lt;br /&gt;
          /diskless_ro 512MB&lt;br /&gt;
          /diskless_rw 1GB    min.&lt;br /&gt;
&lt;br /&gt;
I selected 'A' for auto and then deleted /usr and created /usr as 2g.&lt;br /&gt;
&lt;br /&gt;
Select User-X install. Yes to Ports if you have the room.&lt;br /&gt;
&lt;br /&gt;
Select SSH Server and NFS Server in the installation process, for the rest of the options go with the default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: If you forget to add any of the labels above, you will have to reboot as you cannot add labels to your boot drive when you have booted off it. So boot of the installation CD and use the configure -&amp;gt; label option in the sysinstall screen to add these labels to your boot drive.  You may need to retype the mount points for /, /var, /tmp and /usr by hitting 'm' on each label.  Once you have created these labels in the 'Disklabel Editor' then you can hit 'w' to write them to the disk.  answer 'yes' to the next question, hit 'ok' to the warning message.  Now quit and reboot. Add them to fstab (/dev/ad0s1g   /diskless_ro) &amp;amp; (/dev/ad0s1h   /diskless_rw) and mount.&lt;br /&gt;
&lt;br /&gt;
I find the best way to get this working is to break it down in to small steps and get each step working independantly.  IE: Setup NFS and see if you can mount it from another FreeBSD machine, don't just assume it will work and boot your PXE-Boot machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Throughout my documentation&lt;br /&gt;
&lt;br /&gt;
192.168.1.1 = the Server&lt;br /&gt;
&lt;br /&gt;
192.168.1.2 = the client (may be a full freebsd system or pxeboot)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point I normally install fluxbox with the following line:&lt;br /&gt;
&lt;br /&gt;
 shell# pkg_add -r fluxbox-devel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
change your ~/.xinitrc file to the following:&lt;br /&gt;
&lt;br /&gt;
 startfluxbox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use the following command to update your fluxbox menus:&lt;br /&gt;
&lt;br /&gt;
 shell$ fluxbox-generate_menu&lt;br /&gt;
&lt;br /&gt;
==Running a single application==&lt;br /&gt;
&lt;br /&gt;
To get started I have my server setup running FreeBSD, with X-Windows and a few applications.  Nothing too special.  Then I have my client PC, which to start off I used the frenzy 1.0 boot CD to perform these initial tests.  You can get this from [http://frenzy.org.ua/eng/ frenzy website].  I entered into fluxbox, but you could equally use any X session.&lt;br /&gt;
You must allow incoming connections this is done with two commands&lt;br /&gt;
&lt;br /&gt;
 client$ startx -listen_tcp&lt;br /&gt;
 client$ xhost +&lt;br /&gt;
&lt;br /&gt;
This allows all computers to start applications on your client PC.  It's dangerous but good for testing everything is setup correctly.&lt;br /&gt;
&lt;br /&gt;
 client$ ssh &amp;lt;server user@server ip&amp;gt;&lt;br /&gt;
 eg: ssh mick@192.168.1.1&lt;br /&gt;
&lt;br /&gt;
 ssh$ export DISPLAY='192.168.1.2:0'&lt;br /&gt;
&lt;br /&gt;
Or if your running bash:&lt;br /&gt;
 ssh$ DISPLAY=&amp;lt;client ip&amp;gt;:&amp;lt;client display&amp;gt;; export DISPLAY&lt;br /&gt;
 eg: DISPLAY=192.168.1.2:0; export DISPLAY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ssh$ xcalc &amp;amp;&lt;br /&gt;
&lt;br /&gt;
This should display on your client&lt;br /&gt;
&lt;br /&gt;
==Running a whole X Windows Session (XDM)==&lt;br /&gt;
This sets up a server so that you can share your X session with any clients which want to connect.  (Simular to Terminal Services under windows)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===server===&lt;br /&gt;
edit:&lt;br /&gt;
 /usr/X11R6/lib/X11/xdm/xdm-config&lt;br /&gt;
&lt;br /&gt;
comment out with a '!' the request line&amp;lt;br&amp;gt;&lt;br /&gt;
 DisplayManager.requestPort: 0&lt;br /&gt;
&lt;br /&gt;
edit:&amp;lt;br&amp;gt;&lt;br /&gt;
 /usr/X11R6/lib/X11/xdm/Xaccess&lt;br /&gt;
&lt;br /&gt;
Enter a single asterisk any where in the file, so the contents should be one asterisk and the rest commented out.  There should be an asterisk on line 49 which you can uncomment.&lt;br /&gt;
&lt;br /&gt;
Whilst in the /usr/X11R6/lib/X11/xdm directory do these commands:&lt;br /&gt;
 shell# vi Xstartup&lt;br /&gt;
&lt;br /&gt;
Add into this file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Xstartup&lt;br /&gt;
#&lt;br /&gt;
# This program is run as root after the user is verified&lt;br /&gt;
#&lt;br /&gt;
if [ -f /etc/nologin ]; then&lt;br /&gt;
   xmessage -file /etc/nologin -timeout 30 -center&lt;br /&gt;
   exit 1&lt;br /&gt;
fi&lt;br /&gt;
sessreg -a -l $DISPLAY -x /usr/X11R6/lib/xdm/Xservers $LOGNAME&lt;br /&gt;
/usr/X11R6/lib/xdm/GiveConsole&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
shell# chmod +x Xstartup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Make sure your firewall has all traffic for you lan.  (Need to know which exact ports to allow).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Make sure you &amp;lt;/b&amp;gt;create ~/.xsession for each user which requires access and enter your start up for x &lt;br /&gt;
eg:&lt;br /&gt;
&lt;br /&gt;
 startfluxbox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;run xdm on server as root&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 shell# xdm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can put this xdm into the /etc/ttys so that it starts automatically on boot up.&lt;br /&gt;
&lt;br /&gt;
===client===&lt;br /&gt;
make sure your not in X&lt;br /&gt;
&lt;br /&gt;
type this command:&lt;br /&gt;
&lt;br /&gt;
 shell# X -broadcast&lt;br /&gt;
&lt;br /&gt;
This assumes that you are running only one server.&lt;br /&gt;
Otherwise use:&lt;br /&gt;
&lt;br /&gt;
 shell# X -query 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
==DHCP - Install and setup==&lt;br /&gt;
Server setup.&lt;br /&gt;
&lt;br /&gt;
install through package&lt;br /&gt;
 # pkg_add -r isc-dhcp3-server&lt;br /&gt;
&lt;br /&gt;
We do this so we can define the root path for the diskless system.&lt;br /&gt;
&lt;br /&gt;
copy /usr/local/etc/dhcpd.conf.sample to /usr/local/etc/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
edit /usr/local/etc/dhcpd.conf and make sure it has these lines in it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# dhcpd.conf&lt;br /&gt;
#&lt;br /&gt;
# Sample configuration file for ISC dhcpd&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# option definitions common to all supported networks...&lt;br /&gt;
#option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
#option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
&lt;br /&gt;
default-lease-time 3600;&lt;br /&gt;
max-lease-time 86400;&lt;br /&gt;
&lt;br /&gt;
# If this DHCP server is the official DHCP server for the local&lt;br /&gt;
# network, the authoritative directive should be uncommented.&lt;br /&gt;
authoritative;&lt;br /&gt;
&lt;br /&gt;
# ad-hoc DNS update scheme - set to &amp;quot;none&amp;quot; to disable dynamic DNS updates.&lt;br /&gt;
ddns-update-style none;&lt;br /&gt;
&lt;br /&gt;
option root-path &amp;quot;192.168.1.1:/diskless_ro&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# lines added for pxeboot client&lt;br /&gt;
use-host-decl-names on;&lt;br /&gt;
next-server 192.168.1.1;&lt;br /&gt;
filename &amp;quot;pxeboot&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Use this to send dhcp log messages to a different log file (you also&lt;br /&gt;
# have to hack syslog.conf to complete the redirection).&lt;br /&gt;
log-facility local7;&lt;br /&gt;
&lt;br /&gt;
# No service will be given on this subnet, but declaring it helps the&lt;br /&gt;
# DHCP server to understand the network topology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# This is a very basic subnet declaration.&lt;br /&gt;
&lt;br /&gt;
subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 192.168.1.10 192.168.1.20;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the leases file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# touch /var/db/dhcpd.leases&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Restart the daemon&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# killall dhcpd&lt;br /&gt;
# dhcpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add to /etc/rc.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dhcpd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using a seperate DHCP server===&lt;br /&gt;
If you already have a DHCP server and you want to use that instead then you have to do these steps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====On your DHCP Server====&lt;br /&gt;
1. edit /usr/local/etc/dhcpd.conf and add the following&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
authoritative;&lt;br /&gt;
ddns-update-style none;&lt;br /&gt;
&lt;br /&gt;
option root-path &amp;quot;&amp;lt;X Server IP&amp;gt;:/diskless_ro&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# lines added for pxeboot client&lt;br /&gt;
use-host-decl-names on;&lt;br /&gt;
next-server &amp;lt;X Server IP&amp;gt;;&lt;br /&gt;
filename &amp;quot;pxeboot&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. stop dhcpd&lt;br /&gt;
3. start dhcpd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Client====&lt;br /&gt;
Your client should boot now just remember that you may get a different IP now that you are talking to a different DHCP server so you have to change your exports file and copy accross a directory in /diskless_rw for the new IP.  All this is done on the X Server.&lt;br /&gt;
&lt;br /&gt;
==TFTP Setup==&lt;br /&gt;
TFTP helps us transport the kernel to the PXE-Boot machines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /tftpboot&lt;br /&gt;
# cp /boot/pxeboot /tftpboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uncomment the following line in /etc/inetd.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tftp    dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l -s /tftpboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart the inetd service&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# killall -HUP inetd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If inetd has not started automatically do the following:&lt;br /&gt;
&lt;br /&gt;
Add the following to /etc/rc.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
inetd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now start inetd manually.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# inetd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
To test that tftp has loaded type the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sockstat -4l | grep 69 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you should see this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root      inetd       13719 5   udp4    *:69                 *:*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NFS Setup==&lt;br /&gt;
Network File System.  Here we share all the directories from the server so that the diskless clients see these drives as if those directories were the diskless client's.&lt;br /&gt;
&lt;br /&gt;
===Server Setup===&lt;br /&gt;
If you forgot to select 'Yes' to NFS server setup in the FreeBSD installation then you have to setup the server manually like so:&lt;br /&gt;
&lt;br /&gt;
Enable NFS /etc/rc.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpcbind_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
nfs_server_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
A quick test to see if your NFS server is acting normal:&lt;br /&gt;
&lt;br /&gt;
Edit the /etc/exports and add the following&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr       -alldirs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This allows anyone to connect to your /usr mount.&lt;br /&gt;
&lt;br /&gt;
Now run these commands to restart and view your mounts&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# kill -HUP `cat /var/run/mountd.pid`&lt;br /&gt;
# showmount -e&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now try and mount it from a client running BSD&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mount -t nfs 192.168.1.1:/usr /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Server exports setup===&lt;br /&gt;
&lt;br /&gt;
Make directories for each IP for your clients&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /diskless_rw&lt;br /&gt;
# mkdir 192.168.1.2&lt;br /&gt;
# cd 192.168.1.2&lt;br /&gt;
# mkdir etc var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure /etc/exports&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# file systems accessible only for reading:&lt;br /&gt;
# Original way of linking up the /usr&lt;br /&gt;
#/usr -ro -maproot=0 -network 192.168.1.0 -mask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
/usr -network 192.168.1.0 -mask 255.255.255.0&lt;br /&gt;
/diskless_ro -ro -maproot=0 -network 192.168.1.0 -mask 255.255.255.0&lt;br /&gt;
/diskless_rw/192.168.1.2/etc /diskless_rw/192.168.1.2/var -maproot=root 192.168.1.2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restarting NFS&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# kill -HUP `cat /var/run/mountd.pid`&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If NFS is not started yet do the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data# rpcbind&lt;br /&gt;
data# nfsd -u -t -n 20 -h 192.168.1.1&lt;br /&gt;
data# mountd -r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Testing to see if the exports are correct&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data# showmount -e&lt;br /&gt;
Exports list on localhost:&lt;br /&gt;
/usr                              192.168.1.0&lt;br /&gt;
/diskless_rw/192.168.1.2/var      192.168.1.2&lt;br /&gt;
/diskless_rw/192.168.1.2/etc      192.168.1.2&lt;br /&gt;
/diskless_ro                      192.168.1.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Setup diskless_rw==&lt;br /&gt;
Create directories&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /diskless_rw/192.168.1.2/etc&lt;br /&gt;
# mkdir pam.d X11&lt;br /&gt;
&lt;br /&gt;
# cd /diskless_rw/192.168.1.2/var&lt;br /&gt;
# mkdir home log run tmp&lt;br /&gt;
# chmod 1777 tmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a swap file in the var directory for the client&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# dd if=/dev/zero of=/diskless_rw/192.168.1.2/var/swap bs=1k count=32000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in the /diskless_rw/&amp;lt;ip&amp;gt;/var/log directory I created the following log files so that syslogd would have files to write to:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /diskless_rw/192.168.1.2/var/log&lt;br /&gt;
# touch messages security auth.log maillog lpd-errs xferlog cron debug.log slip.log ppp.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Copy the following files from the systems /etc directory to /diskless_rw/&amp;lt;client ip&amp;gt;/etc&lt;br /&gt;
 # cp -Rv &amp;lt;files&amp;gt; /diskless_rw/&amp;lt;ip&amp;gt;/etc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth.conf&lt;br /&gt;
disktab&lt;br /&gt;
gettytab&lt;br /&gt;
group&lt;br /&gt;
hosts&lt;br /&gt;
login.access&lt;br /&gt;
login.conf&lt;br /&gt;
login.conf.db&lt;br /&gt;
master.passwd&lt;br /&gt;
netconfig&lt;br /&gt;
protocols&lt;br /&gt;
pam.d&lt;br /&gt;
pwd.db&lt;br /&gt;
services&lt;br /&gt;
spwd.db&lt;br /&gt;
syslog.conf&lt;br /&gt;
termcap -&amp;gt; /usr/share/misc/termcap&lt;br /&gt;
ttys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's very important that you copy all the files in pam.d across otherwise you will not have a password prompt on your login.&lt;br /&gt;
&lt;br /&gt;
Create a fstab in /diskless_rw/&amp;lt;ip&amp;gt;/etc&lt;br /&gt;
 # touch /diskless_rw/&amp;lt;ip&amp;gt;/etc/fstab&lt;br /&gt;
&lt;br /&gt;
==Setup diskless_ro==&lt;br /&gt;
This is the common root mount for all pxe-boot clients.&lt;br /&gt;
&lt;br /&gt;
Copy accross important directories and kernel from boot to diskless_ro&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp -rv /bin /lib /libexec /sbin /boot /diskless_ro&lt;br /&gt;
# mkdir /diskless_ro/usr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For some client machines you may have to disable the ACPI (Power management) in the /diskless_ro/boot/device.hints&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hint.acpi.0.disabled=&amp;quot;1&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make a dev so that clients can boot without freezing.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /diskless_ro/dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make a directory so that we can mount var from the /diskless_rw/&amp;lt;client ip&amp;gt;/var&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /diskless_ro/var&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
So we can use the systems /var/tmp and /usr/home directory make soft links to them&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /diskless_ro&lt;br /&gt;
# ln -s /var/tmp&lt;br /&gt;
# ln -s /usr/home&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We require a few files from the systems /etc directory to be copied into the /diskless_ro/etc for common use between the thin clients.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /diskless_ro/etc&lt;br /&gt;
# cd /etc&lt;br /&gt;
# cp /services /netconfig /login.conf /diskless_ro/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===rc file===&lt;br /&gt;
The /diskless_ro/etc/rc file is the first file which is ran after the kernel has loaded.  Here we mount a the labels from the server.&lt;br /&gt;
&lt;br /&gt;
Create the /diskless_ro/etc/rc&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin; export PATH&lt;br /&gt;
TMPDIR=~/tmp;export TMPDIR&lt;br /&gt;
TMP=~/tmp;export TMP&lt;br /&gt;
&lt;br /&gt;
mount -t nfs 192.168.1.1:/usr /usr&lt;br /&gt;
&lt;br /&gt;
boot_ip=`/sbin/ifconfig | /usr/bin/grep &amp;quot;inet &amp;quot; | /usr/bin/grep -v 127.0.0.1 |&lt;br /&gt;
/usr/bin/awk '{print $2}'`&lt;br /&gt;
mount_nfs -L 192.168.1.1:/diskless_rw/${boot_ip}/etc /etc&lt;br /&gt;
mount_nfs -L 192.168.1.1:/diskless_rw/${boot_ip}/var /var&lt;br /&gt;
&lt;br /&gt;
swapon /var/swap&lt;br /&gt;
&lt;br /&gt;
#rm -rf /var/tmp/*&lt;br /&gt;
#rm -rf /var/tmp/.*&lt;br /&gt;
&lt;br /&gt;
# Option if you choose XDM terminals&lt;br /&gt;
#X -query 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
. /etc/rc2&lt;br /&gt;
exit 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Remember to change 192.168.1.1 to your X server's IP&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The -L on the mount_nfs is there so we don't get flock errors.&lt;br /&gt;
&lt;br /&gt;
===rc2 file===&lt;br /&gt;
This sets up some links for libraries and the logging daemon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
mount -a&lt;br /&gt;
/sbin/ldconfig -elf /usr/lib/compat /usr/X11R6/lib /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
syslogd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now change permissions so rc can run.&lt;br /&gt;
 # chmod +x rc*&lt;br /&gt;
&lt;br /&gt;
Copy /diskless_ro/etc/rc and rc2 to /diskless_rw/&amp;lt;client ip&amp;gt;/etc&lt;br /&gt;
 # cp /diskless_ro/etc/rc* /diskless_rw/192.168.1.2/etc&lt;br /&gt;
&lt;br /&gt;
==GRUB Floppy boot (optional)==&lt;br /&gt;
&lt;br /&gt;
(would like to compile this ourselves later)&lt;br /&gt;
To get started we downloaded the image from www.hp.uab.edu/~ed/grub-net&lt;br /&gt;
&lt;br /&gt;
 shell# dd if=/data/grub-net.img of=/dev/fd0&lt;br /&gt;
&lt;br /&gt;
Then we mounted it as msdos&lt;br /&gt;
Remove/rename menu.1st from the grub directory as it was doing something funny with it.  We think that it was looking for a tftp server through our dhcp and we don't have a the dhcp setup correctly here, so we wanted to do it manually.&lt;br /&gt;
&lt;br /&gt;
Reboot off the floppy now..&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; ifconfig --address=192.168.1.2 --mask=255.255.255.0 --gateway=192.168.1.1&lt;br /&gt;
 --server=192.168.1.2&lt;br /&gt;
&lt;br /&gt;
OR you can use dhcp&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; dhcp&amp;lt;br&amp;gt; &lt;br /&gt;
 grub&amp;gt; tftpserver 192.168.1.2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Setup tftp on your server, we created a directory /tftpboot. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Starting diskless system through GRUB===&lt;br /&gt;
This is an alternative boot loader.  You can use this for testing, if you don't have a pxeboot chip, otherwise skip this section.&lt;br /&gt;
&lt;br /&gt;
These commands are half working...&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; root (nd)&amp;lt;br&amp;gt;&lt;br /&gt;
 grub&amp;gt; kernel /kernel root=ad0s1a&amp;lt;br&amp;gt;&lt;br /&gt;
 grub&amp;gt; pxeboot&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Completely Diskless System (PXEBOOT ROM) (optional)==&lt;br /&gt;
&lt;br /&gt;
Running completely diskless by booting from a Network ROM Chip.&lt;br /&gt;
&lt;br /&gt;
We have now got a Intel GD82559 Etherexpress pro/100 Card.&lt;br /&gt;
&lt;br /&gt;
When we boot up on the client machine with that card it displays:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Intel UNDI, PXE-2.0 (build 067)&amp;lt;br /&amp;gt;&lt;br /&gt;
Copyright (C) 1997-1998 Intel Corporation&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Which we cannot get working so we have read that you have to update this version to Build 82.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
copy /boot/pxeboot to /tftpboot directory we made before&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
- Downloaded proboot.exe from support.intel.com and unpacked into a windows box.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Copied ibautil.exe onto a windows 98 boot disk.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Rebooted the test box after disabling network boot on the nic (otherwise it'll kick in before the floppy).&amp;lt;br /&amp;gt;&lt;br /&gt;
- Ran ibautil -iv to see what embedded image versions were available:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Intel(R) Boot Agent XG v1.0.09&amp;lt;br /&amp;gt;&lt;br /&gt;
Intel(R) Boot Agent GE v1.2.36&amp;lt;br /&amp;gt;&lt;br /&gt;
Intel(R) Boot Agent FE v4.1.19&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
- Ran ibautil -up to perform the image upgrade.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
It's interesting to note that no version showed up for out intel nic when initially running ibautil. After the upgrade, however, the version corectly showed as 4.1.19.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I made sure that I had simular features to this in my dhcpd.conf file:&amp;lt;br /&amp;gt;&lt;br /&gt;
option broadcast-address 192.168.254.255;&amp;lt;br /&amp;gt;&lt;br /&gt;
option domain-name-servers 192.168.254.3;&amp;lt;br /&amp;gt;&lt;br /&gt;
option domain-name &amp;quot;simerson.net&amp;quot;;&amp;lt;br /&amp;gt;&lt;br /&gt;
option routers 192.168.254.1;&amp;lt;br /&amp;gt;&lt;br /&gt;
option subnet-mask 255.255.255.0;&amp;lt;br /&amp;gt;&lt;br /&gt;
server-name &amp;quot;pxe-gw&amp;quot;;&amp;lt;br /&amp;gt;&lt;br /&gt;
server-identifier 192.168.254.3;&amp;lt;br /&amp;gt;&lt;br /&gt;
next-server 192.168.254.3;&amp;lt;br /&amp;gt;&lt;br /&gt;
default-lease-time -1;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
subnet 192.168.254.0 netmask 255.255.255.0 {&amp;lt;br /&amp;gt;&lt;br /&gt;
range 192.168.254.32 192.168.254.99;&amp;lt;br /&amp;gt;&lt;br /&gt;
option root-path &amp;quot;/usr/local/export/pxe&amp;quot;;&amp;lt;br /&amp;gt;&lt;br /&gt;
filename &amp;quot;pxeboot&amp;quot;;&amp;lt;br /&amp;gt;&lt;br /&gt;
}&amp;lt;br /&amp;gt;&lt;br /&gt;
host cm.simerson.net {&amp;lt;br /&amp;gt;&lt;br /&gt;
hardware ethernet 00:e0:18:98:f0:cc;&amp;lt;br /&amp;gt;&lt;br /&gt;
fixed-address 192.168.254.126;&amp;lt;br /&amp;gt;&lt;br /&gt;
}&amp;lt;br /&amp;gt;&lt;br /&gt;
host c1.simerson.net {&amp;lt;br /&amp;gt;&lt;br /&gt;
hardware ethernet 00:60:97:0e:bb:a7;&amp;lt;br /&amp;gt;&lt;br /&gt;
fixed-address 192.168.254.131;&amp;lt;br /&amp;gt;&lt;br /&gt;
}&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==X config notes==&lt;br /&gt;
On the X server the /etc/X11/xorg.conf file is only used for the X server not the clients.&lt;br /&gt;
&lt;br /&gt;
To use this same configuration for your X Terminal Clients copy this file to /diskless_rw/&amp;lt;Client IP&amp;gt;/etc/X11 and it will use it.&lt;br /&gt;
&lt;br /&gt;
==Starting X on the client==&lt;br /&gt;
There are two ways of doing this and it depends on your hardware mainly.  &lt;br /&gt;
&lt;br /&gt;
1. run all programs on the server using the servers CPU and Memory this we will call the 'XDM Method'&lt;br /&gt;
2. run all programs from the NFS mounts using the clients CPU and Memory but the HD of the server, this we will call the 'NFS Method'&lt;br /&gt;
&lt;br /&gt;
Both methods will boot from PXE-Boot and can be diskless.&lt;br /&gt;
&lt;br /&gt;
===XDM Method===&lt;br /&gt;
Recommended for machines less than 1Ghz 256MB&lt;br /&gt;
&lt;br /&gt;
This is quite simple to setup.  Change your rc file in the /diskless_ro/etc directory to have this line at the end:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
X -query &amp;lt;server ip&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure on the server you setup xdm to start on system startup&lt;br /&gt;
 # vi /etc/ttys&lt;br /&gt;
&lt;br /&gt;
Search for this line:&lt;br /&gt;
 ttyv8   &amp;quot;/usr/X11R6/bin/xdm -nodaemon&amp;quot;  xterm   off secure&lt;br /&gt;
&lt;br /&gt;
and change it to:&lt;br /&gt;
 ttyv8   &amp;quot;/usr/X11R6/bin/xdm -nodaemon&amp;quot;  xterm   on secure&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also type this command at the command line on the client to test before hand.&lt;br /&gt;
&lt;br /&gt;
===NFS Method===&lt;br /&gt;
Recommended for machines over 1Ghz 256MB or if you want to utilise any of the clients devices such as local HD, USB, CD/DVD burners, etc.&lt;br /&gt;
&lt;br /&gt;
This is much trickier.&lt;br /&gt;
&lt;br /&gt;
Log in&lt;br /&gt;
Now type 'startx' at the command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==todo==&lt;br /&gt;
Here are some of the jobs left to do to make this secure or generally better:&lt;br /&gt;
&lt;br /&gt;
- If you don't configure your clients to run xdm it will put you at the text login.  The problem here is people can login as root without a password for some reason.  If the user hits &amp;lt;Ctrl&amp;gt;&amp;lt;Alt&amp;gt;&amp;lt;Back space&amp;gt; then it will crash them out to a login screen which the user could then login as root with out a password, not good!&lt;br /&gt;
&lt;br /&gt;
- Optimise the boot up sequence&lt;br /&gt;
&lt;br /&gt;
- There must be a simplier way to set this up if your going to use XDM in the end.  IE: do we need to do half of this tutorial if we are going to run XDM.&lt;br /&gt;
&lt;br /&gt;
- When the same user logs onto two seperate machines they cannot start firefox or thunderbird as it complains about being open somewhere else.  This assumes you have firefox and thunderbird already open on both machines that you logged onto.&lt;br /&gt;
&lt;br /&gt;
===Known Issues===&lt;br /&gt;
&lt;br /&gt;
- Doesn't work with HP-COMPAQ-T5525 thin client as it doesn't want to boot, it says it's missing libfreetype.so.9 which we do have it just cannot find it for some reason.  It's trying to use the VIA chipset for graphics which is different to all the other clients I've loaded successfully so far.&lt;br /&gt;
&lt;br /&gt;
- USB mice not working instead use PS/2.  If we got this working it may help get the HP T5525 working&lt;br /&gt;
&lt;br /&gt;
===Keyboard repeating on notebooks===&lt;br /&gt;
- typing on some keyboards (like my notebook) causes double characters to display if you type too fast. - This is the notebook, if you go and set the KDE Accessabiltiy options and set the keyboard rate to 50ms, this fixes the problem.&lt;br /&gt;
&lt;br /&gt;
===USB mouse===&lt;br /&gt;
&lt;br /&gt;
Editing /etc/devd.conf file and searched for ums&lt;br /&gt;
remarked out the action line.&lt;br /&gt;
 &lt;br /&gt;
rebooted.&lt;br /&gt;
 &lt;br /&gt;
Someone off IRC suggested that I build a GENERIC xorg.conf file which has vesa, usb mouse and ps/2 mouse configurations through it.&lt;br /&gt;
 &lt;br /&gt;
I reverted everything back to normal ps/2 mouse config, copying my usb config files to the following:&lt;br /&gt;
/etc/devd.conf_usb&lt;br /&gt;
/etc/rc.conf_usb&lt;br /&gt;
/etc/X11/xorg.conf_usb&lt;br /&gt;
 &lt;br /&gt;
I think we need a seperate configuration for the HP, it uses a weird display driver.&lt;br /&gt;
&lt;br /&gt;
==links==&lt;br /&gt;
&lt;br /&gt;
http://www.onlamp.com/pub/a/bsd/2004/09/09/diskless_server.html&lt;br /&gt;
&lt;br /&gt;
http://www.onlamp.com/pub/a/bsd/2004/09/30/diskless_clients.html&lt;br /&gt;
&lt;br /&gt;
http://people.freebsd.org/~alfred/pxe/en_US.ISO8859-1/articles/pxe/article.html&lt;br /&gt;
&lt;br /&gt;
http://www.the-labs.com/FreeBSD/Diskless/&lt;br /&gt;
&lt;br /&gt;
http://www.nber.org/sys-admin/FreeBSD-diskless.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://wikitest.freebsd.org/MarkusBoelter&lt;br /&gt;
&lt;br /&gt;
http://www.daemonsecurity.com/pub/pxeboot/&lt;br /&gt;
&lt;br /&gt;
http://www.kano.org.uk/projects/pxe/&lt;br /&gt;
&lt;br /&gt;
File Examples:&lt;br /&gt;
&lt;br /&gt;
http://www.watson.org/~robert/freebsd/pxe/&lt;br /&gt;
&lt;br /&gt;
PXE Information&lt;br /&gt;
http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;articleId=108551&lt;br /&gt;
&lt;br /&gt;
[[Category:FreeBSD_for_Workstations]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/X_Windows_Terminal</id>
		<title>X Windows Terminal</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/X_Windows_Terminal"/>
				<updated>2006-10-15T08:37:32Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: /* Setup diskless_ro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Advantages==&lt;br /&gt;
X Windows can be used in a Server-Client relationship.  By setting up your X Windows Server you allow the use of all the programs on that computer to all the client PC's.  &lt;br /&gt;
&lt;br /&gt;
There are many advantages of running client computers in this manner:&lt;br /&gt;
* They don't even need a hard drive.  &lt;br /&gt;
* It's silent as there are no moving parts&lt;br /&gt;
* The solution saves power as your computers are very thin.&lt;br /&gt;
* Everything can be backed up centrally.&lt;br /&gt;
* Boot times for client PC's are the fastest around.&lt;br /&gt;
* Clients don't need much CPU speed, memory, etc.  Because of this they would be very cheap.  You could get away with using a Pentium 100Mhz with 32MB ram, no hard drive, no CD-ROM, no Floppy and a fanless power supply.  You just need a ethernet card with a PXEBOOT ROM. (XDM mode)&lt;br /&gt;
* Central management of applications, users, config&lt;br /&gt;
&lt;br /&gt;
==From the Beginning==&lt;br /&gt;
I've based this document on FreeBSD 6.1.&lt;br /&gt;
&lt;br /&gt;
Install FreeBSD 6.1 as per usual.&lt;br /&gt;
I've setup my mount points as this:&lt;br /&gt;
  '''Part    Mount        Size'''&lt;br /&gt;
  ad0s1b  Swap         (equal to how much memory I have in my machine)&lt;br /&gt;
  ad0s1a  /            512MB&lt;br /&gt;
  ad0s1d  /var         1G&lt;br /&gt;
  ad0s1e  /tmp         512MB&lt;br /&gt;
  ad0s1f  /usr         2GB    min.&lt;br /&gt;
          /diskless_ro 512MB&lt;br /&gt;
          /diskless_rw 1GB    min.&lt;br /&gt;
&lt;br /&gt;
I selected 'A' for auto and then deleted /usr and created /usr as 2g.&lt;br /&gt;
&lt;br /&gt;
Select User-X install. Yes to Ports if you have the room.&lt;br /&gt;
&lt;br /&gt;
Select SSH Server and NFS Server in the installation process, for the rest of the options go with the default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: If you forget to add any of the labels above, you will have to reboot as you cannot add labels to your boot drive when you have booted off it. So boot of the installation CD and use the configure -&amp;gt; label option in the sysinstall screen to add these labels to your boot drive.  You may need to retype the mount points for /, /var, /tmp and /usr by hitting 'm' on each label.  Once you have created these labels in the 'Disklabel Editor' then you can hit 'w' to write them to the disk.  answer 'yes' to the next question, hit 'ok' to the warning message.  Now quit and reboot. Add them to fstab (/dev/ad0s1g   /diskless_ro) &amp;amp; (/dev/ad0s1h   /diskless_rw) and mount.&lt;br /&gt;
&lt;br /&gt;
I find the best way to get this working is to break it down in to small steps and get each step working independantly.  IE: Setup NFS and see if you can mount it from another FreeBSD machine, don't just assume it will work and boot your PXE-Boot machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Throughout my documentation&lt;br /&gt;
&lt;br /&gt;
192.168.1.1 = the Server&lt;br /&gt;
&lt;br /&gt;
192.168.1.2 = the client (may be a full freebsd system or pxeboot)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point I normally install fluxbox with the following line:&lt;br /&gt;
&lt;br /&gt;
 shell# pkg_add -r fluxbox-devel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
change your ~/.xinitrc file to the following:&lt;br /&gt;
&lt;br /&gt;
 startfluxbox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use the following command to update your fluxbox menus:&lt;br /&gt;
&lt;br /&gt;
 shell$ fluxbox-generate_menu&lt;br /&gt;
&lt;br /&gt;
==Running a single application==&lt;br /&gt;
&lt;br /&gt;
To get started I have my server setup running FreeBSD, with X-Windows and a few applications.  Nothing too special.  Then I have my client PC, which to start off I used the frenzy 1.0 boot CD to perform these initial tests.  You can get this from [http://frenzy.org.ua/eng/ frenzy website].  I entered into fluxbox, but you could equally use any X session.&lt;br /&gt;
You must allow incoming connections this is done with two commands&lt;br /&gt;
&lt;br /&gt;
 client$ startx -listen_tcp&lt;br /&gt;
 client$ xhost +&lt;br /&gt;
&lt;br /&gt;
This allows all computers to start applications on your client PC.  It's dangerous but good for testing everything is setup correctly.&lt;br /&gt;
&lt;br /&gt;
 client$ ssh &amp;lt;server user@server ip&amp;gt;&lt;br /&gt;
 eg: ssh mick@192.168.1.1&lt;br /&gt;
&lt;br /&gt;
 ssh$ export DISPLAY='192.168.1.2:0'&lt;br /&gt;
&lt;br /&gt;
Or if your running bash:&lt;br /&gt;
 ssh$ DISPLAY=&amp;lt;client ip&amp;gt;:&amp;lt;client display&amp;gt;; export DISPLAY&lt;br /&gt;
 eg: DISPLAY=192.168.1.2:0; export DISPLAY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ssh$ xcalc &amp;amp;&lt;br /&gt;
&lt;br /&gt;
This should display on your client&lt;br /&gt;
&lt;br /&gt;
==Running a whole X Windows Session (XDM)==&lt;br /&gt;
This sets up a server so that you can share your X session with any clients which want to connect.  (Simular to Terminal Services under windows)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===server===&lt;br /&gt;
edit:&lt;br /&gt;
 /usr/X11R6/lib/X11/xdm/xdm-config&lt;br /&gt;
&lt;br /&gt;
comment out with a '!' the request line&amp;lt;br&amp;gt;&lt;br /&gt;
 DisplayManager.requestPort: 0&lt;br /&gt;
&lt;br /&gt;
edit:&amp;lt;br&amp;gt;&lt;br /&gt;
 /usr/X11R6/lib/X11/xdm/Xaccess&lt;br /&gt;
&lt;br /&gt;
Enter a single asterisk any where in the file, so the contents should be one asterisk and the rest commented out.  There should be an asterisk on line 49 which you can uncomment.&lt;br /&gt;
&lt;br /&gt;
Whilst in the /usr/X11R6/lib/X11/xdm directory do these commands:&lt;br /&gt;
 shell# vi Xstartup&lt;br /&gt;
&lt;br /&gt;
Add into this file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Xstartup&lt;br /&gt;
#&lt;br /&gt;
# This program is run as root after the user is verified&lt;br /&gt;
#&lt;br /&gt;
if [ -f /etc/nologin ]; then&lt;br /&gt;
   xmessage -file /etc/nologin -timeout 30 -center&lt;br /&gt;
   exit 1&lt;br /&gt;
fi&lt;br /&gt;
sessreg -a -l $DISPLAY -x /usr/X11R6/lib/xdm/Xservers $LOGNAME&lt;br /&gt;
/usr/X11R6/lib/xdm/GiveConsole&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
shell# chmod +x Xstartup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Make sure your firewall has all traffic for you lan.  (Need to know which exact ports to allow).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Make sure you &amp;lt;/b&amp;gt;create ~/.xsession for each user which requires access and enter your start up for x &lt;br /&gt;
eg:&lt;br /&gt;
&lt;br /&gt;
 startfluxbox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;run xdm on server as root&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 shell# xdm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can put this xdm into the /etc/ttys so that it starts automatically on boot up.&lt;br /&gt;
&lt;br /&gt;
===client===&lt;br /&gt;
make sure your not in X&lt;br /&gt;
&lt;br /&gt;
type this command:&lt;br /&gt;
&lt;br /&gt;
 shell# X -broadcast&lt;br /&gt;
&lt;br /&gt;
This assumes that you are running only one server.&lt;br /&gt;
Otherwise use:&lt;br /&gt;
&lt;br /&gt;
 shell# X -query 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
==DHCP - Install and setup==&lt;br /&gt;
Server setup.&lt;br /&gt;
&lt;br /&gt;
install through package&lt;br /&gt;
 # pkg_add -r isc-dhcp3-server&lt;br /&gt;
&lt;br /&gt;
We do this so we can define the root path for the diskless system.&lt;br /&gt;
&lt;br /&gt;
copy /usr/local/etc/dhcpd.conf.sample to /usr/local/etc/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
edit /usr/local/etc/dhcpd.conf and make sure it has these lines in it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# dhcpd.conf&lt;br /&gt;
#&lt;br /&gt;
# Sample configuration file for ISC dhcpd&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# option definitions common to all supported networks...&lt;br /&gt;
#option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
#option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
&lt;br /&gt;
default-lease-time 3600;&lt;br /&gt;
max-lease-time 86400;&lt;br /&gt;
&lt;br /&gt;
# If this DHCP server is the official DHCP server for the local&lt;br /&gt;
# network, the authoritative directive should be uncommented.&lt;br /&gt;
authoritative;&lt;br /&gt;
&lt;br /&gt;
# ad-hoc DNS update scheme - set to &amp;quot;none&amp;quot; to disable dynamic DNS updates.&lt;br /&gt;
ddns-update-style none;&lt;br /&gt;
&lt;br /&gt;
option root-path &amp;quot;192.168.1.1:/diskless_ro&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# lines added for pxeboot client&lt;br /&gt;
use-host-decl-names on;&lt;br /&gt;
next-server 192.168.1.1;&lt;br /&gt;
filename &amp;quot;pxeboot&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Use this to send dhcp log messages to a different log file (you also&lt;br /&gt;
# have to hack syslog.conf to complete the redirection).&lt;br /&gt;
log-facility local7;&lt;br /&gt;
&lt;br /&gt;
# No service will be given on this subnet, but declaring it helps the&lt;br /&gt;
# DHCP server to understand the network topology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# This is a very basic subnet declaration.&lt;br /&gt;
&lt;br /&gt;
subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 192.168.1.10 192.168.1.20;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the leases file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# touch /var/db/dhcpd.leases&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Restart the daemon&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# killall dhcpd&lt;br /&gt;
# dhcpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add to /etc/rc.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dhcpd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using a seperate DHCP server===&lt;br /&gt;
If you already have a DHCP server and you want to use that instead then you have to do these steps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====On your DHCP Server====&lt;br /&gt;
1. edit /usr/local/etc/dhcpd.conf and add the following&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
authoritative;&lt;br /&gt;
ddns-update-style none;&lt;br /&gt;
&lt;br /&gt;
option root-path &amp;quot;&amp;lt;X Server IP&amp;gt;:/diskless_ro&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# lines added for pxeboot client&lt;br /&gt;
use-host-decl-names on;&lt;br /&gt;
next-server &amp;lt;X Server IP&amp;gt;;&lt;br /&gt;
filename &amp;quot;pxeboot&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. stop dhcpd&lt;br /&gt;
3. start dhcpd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Client====&lt;br /&gt;
Your client should boot now just remember that you may get a different IP now that you are talking to a different DHCP server so you have to change your exports file and copy accross a directory in /diskless_rw for the new IP.  All this is done on the X Server.&lt;br /&gt;
&lt;br /&gt;
==TFTP Setup==&lt;br /&gt;
TFTP helps us transport the kernel to the PXE-Boot machines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /tftpboot&lt;br /&gt;
# cp /boot/pxeboot /tftpboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uncomment the following line in /etc/inetd.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tftp    dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l -s /tftpboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart the inetd service&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# killall -HUP inetd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If inetd has not started automatically do the following:&lt;br /&gt;
&lt;br /&gt;
Add the following to /etc/rc.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
inetd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now start inetd manually.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# inetd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
To test that tftp has loaded type the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sockstat -4l | grep 69 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you should see this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root      inetd       13719 5   udp4    *:69                 *:*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NFS Setup==&lt;br /&gt;
Network File System.  Here we share all the directories from the server so that the diskless clients see these drives as if those directories were the diskless client's.&lt;br /&gt;
&lt;br /&gt;
===Server Setup===&lt;br /&gt;
If you forgot to select 'Yes' to NFS server setup in the FreeBSD installation then you have to setup the server manually like so:&lt;br /&gt;
&lt;br /&gt;
Enable NFS /etc/rc.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpcbind_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
nfs_server_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
A quick test to see if your NFS server is acting normal:&lt;br /&gt;
&lt;br /&gt;
Edit the /etc/exports and add the following&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr       -alldirs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This allows anyone to connect to your /usr mount.&lt;br /&gt;
&lt;br /&gt;
Now run these commands to restart and view your mounts&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# kill -HUP `cat /var/run/mountd.pid`&lt;br /&gt;
# showmount -e&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now try and mount it from a client running BSD&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mount -t nfs 192.168.1.1:/usr /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Server exports setup===&lt;br /&gt;
&lt;br /&gt;
Make directories for each IP for your clients&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /diskless_rw&lt;br /&gt;
# mkdir 192.168.1.2&lt;br /&gt;
# cd 192.168.1.2&lt;br /&gt;
# mkdir etc var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure /etc/exports&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# file systems accessible only for reading:&lt;br /&gt;
# Original way of linking up the /usr&lt;br /&gt;
#/usr -ro -maproot=0 -network 192.168.1.0 -mask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
/usr -network 192.168.1.0 -mask 255.255.255.0&lt;br /&gt;
/diskless_ro -ro -maproot=0 -network 192.168.1.0 -mask 255.255.255.0&lt;br /&gt;
/diskless_rw/192.168.1.2/etc /diskless_rw/192.168.1.2/var -maproot=root 192.168.1.2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restarting NFS&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# kill -HUP `cat /var/run/mountd.pid`&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If NFS is not started yet do the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data# rpcbind&lt;br /&gt;
data# nfsd -u -t -n 20 -h 192.168.1.1&lt;br /&gt;
data# mountd -r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Testing to see if the exports are correct&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data# showmount -e&lt;br /&gt;
Exports list on localhost:&lt;br /&gt;
/usr                              192.168.1.0&lt;br /&gt;
/diskless_rw/192.168.1.2/var      192.168.1.2&lt;br /&gt;
/diskless_rw/192.168.1.2/etc      192.168.1.2&lt;br /&gt;
/diskless_ro                      192.168.1.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Setup diskless_rw==&lt;br /&gt;
Create directories&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /diskless_rw/192.168.1.2/etc&lt;br /&gt;
# mkdir pam.d X11&lt;br /&gt;
&lt;br /&gt;
# cd /diskless_rw/192.168.1.2/var&lt;br /&gt;
# mkdir home log run tmp&lt;br /&gt;
# chmod 1777 tmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a swap file in the var directory for the client&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# dd if=/dev/zero of=/diskless_rw/192.168.1.2/var/swap bs=1k count=32000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in the /diskless_rw/&amp;lt;ip&amp;gt;/var/log directory I created the following log files so that syslogd would have files to write to:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /diskless_rw/192.168.1.2/var/log&lt;br /&gt;
# touch messages security auth.log maillog lpd-errs xferlog cron debug.log slip.log ppp.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Copy the following files from the systems /etc directory to /diskless_rw/&amp;lt;client ip&amp;gt;/etc&lt;br /&gt;
 # cp -Rv &amp;lt;files&amp;gt; /diskless_rw/&amp;lt;ip&amp;gt;/etc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth.conf&lt;br /&gt;
disktab&lt;br /&gt;
gettytab&lt;br /&gt;
group&lt;br /&gt;
hosts&lt;br /&gt;
login.access&lt;br /&gt;
login.conf&lt;br /&gt;
login.conf.db&lt;br /&gt;
master.passwd&lt;br /&gt;
netconfig&lt;br /&gt;
protocols&lt;br /&gt;
pam.d&lt;br /&gt;
pwd.db&lt;br /&gt;
services&lt;br /&gt;
spwd.db&lt;br /&gt;
syslog.conf&lt;br /&gt;
termcap -&amp;gt; /usr/share/misc/termcap&lt;br /&gt;
ttys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's very important that you copy all the files in pam.d across otherwise you will not have a password prompt on your login.&lt;br /&gt;
&lt;br /&gt;
==Setup diskless_ro==&lt;br /&gt;
This is the common root mount for all pxe-boot clients.&lt;br /&gt;
&lt;br /&gt;
Copy accross important directories and kernel from boot to diskless_ro&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp -rv /bin /lib /libexec /sbin /boot /diskless_ro&lt;br /&gt;
# mkdir /diskless_ro/usr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For some client machines you may have to disable the ACPI (Power management) in the /diskless_ro/boot/device.hints&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hint.acpi.0.disabled=&amp;quot;1&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make a dev so that clients can boot without freezing.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /diskless_ro/dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make a directory so that we can mount var from the /diskless_rw/&amp;lt;client ip&amp;gt;/var&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /diskless_ro/var&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
So we can use the systems /var/tmp and /usr/home directory make soft links to them&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /diskless_ro&lt;br /&gt;
# ln -s /var/tmp&lt;br /&gt;
# ln -s /usr/home&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We require a few files from the systems /etc directory to be copied into the /diskless_ro/etc for common use between the thin clients.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /diskless_ro/etc&lt;br /&gt;
# cd /etc&lt;br /&gt;
# cp /services /netconfig /login.conf /diskless_ro/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===rc file===&lt;br /&gt;
The /diskless_ro/etc/rc file is the first file which is ran after the kernel has loaded.  Here we mount a the labels from the server.&lt;br /&gt;
&lt;br /&gt;
Create the /diskless_ro/etc/rc&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin; export PATH&lt;br /&gt;
TMPDIR=~/tmp;export TMPDIR&lt;br /&gt;
TMP=~/tmp;export TMP&lt;br /&gt;
&lt;br /&gt;
mount -t nfs 192.168.1.1:/usr /usr&lt;br /&gt;
&lt;br /&gt;
boot_ip=`/sbin/ifconfig | /usr/bin/grep &amp;quot;inet &amp;quot; | /usr/bin/grep -v 127.0.0.1 |&lt;br /&gt;
/usr/bin/awk '{print $2}'`&lt;br /&gt;
mount_nfs -L 192.168.1.1:/diskless_rw/${boot_ip}/etc /etc&lt;br /&gt;
mount_nfs -L 192.168.1.1:/diskless_rw/${boot_ip}/var /var&lt;br /&gt;
&lt;br /&gt;
swapon /var/swap&lt;br /&gt;
&lt;br /&gt;
#rm -rf /var/tmp/*&lt;br /&gt;
#rm -rf /var/tmp/.*&lt;br /&gt;
&lt;br /&gt;
# Option if you choose XDM terminals&lt;br /&gt;
#X -query 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
. /etc/rc2&lt;br /&gt;
exit 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Remember to change 192.168.1.1 to your X server's IP&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The -L on the mount_nfs is there so we don't get flock errors.&lt;br /&gt;
&lt;br /&gt;
===rc2 file===&lt;br /&gt;
This sets up some links for libraries and the logging daemon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
mount -a&lt;br /&gt;
/sbin/ldconfig -elf /usr/lib/compat /usr/X11R6/lib /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
syslogd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now change permissions so rc can run.&lt;br /&gt;
 # chmod +x rc*&lt;br /&gt;
&lt;br /&gt;
Copy /diskless_ro/etc/rc and rc2 to /diskless_rw/&amp;lt;client ip&amp;gt;/etc&lt;br /&gt;
 # cp /diskless_ro/etc/rc* /diskless_rw/192.168.1.2/etc&lt;br /&gt;
&lt;br /&gt;
==GRUB Floppy boot (optional)==&lt;br /&gt;
&lt;br /&gt;
(would like to compile this ourselves later)&lt;br /&gt;
To get started we downloaded the image from www.hp.uab.edu/~ed/grub-net&lt;br /&gt;
&lt;br /&gt;
 shell# dd if=/data/grub-net.img of=/dev/fd0&lt;br /&gt;
&lt;br /&gt;
Then we mounted it as msdos&lt;br /&gt;
Remove/rename menu.1st from the grub directory as it was doing something funny with it.  We think that it was looking for a tftp server through our dhcp and we don't have a the dhcp setup correctly here, so we wanted to do it manually.&lt;br /&gt;
&lt;br /&gt;
Reboot off the floppy now..&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; ifconfig --address=192.168.1.2 --mask=255.255.255.0 --gateway=192.168.1.1&lt;br /&gt;
 --server=192.168.1.2&lt;br /&gt;
&lt;br /&gt;
OR you can use dhcp&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; dhcp&amp;lt;br&amp;gt; &lt;br /&gt;
 grub&amp;gt; tftpserver 192.168.1.2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Setup tftp on your server, we created a directory /tftpboot. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Starting diskless system through GRUB===&lt;br /&gt;
This is an alternative boot loader.  You can use this for testing, if you don't have a pxeboot chip, otherwise skip this section.&lt;br /&gt;
&lt;br /&gt;
These commands are half working...&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; root (nd)&amp;lt;br&amp;gt;&lt;br /&gt;
 grub&amp;gt; kernel /kernel root=ad0s1a&amp;lt;br&amp;gt;&lt;br /&gt;
 grub&amp;gt; pxeboot&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Completely Diskless System (PXEBOOT ROM) (optional)==&lt;br /&gt;
&lt;br /&gt;
Running completely diskless by booting from a Network ROM Chip.&lt;br /&gt;
&lt;br /&gt;
We have now got a Intel GD82559 Etherexpress pro/100 Card.&lt;br /&gt;
&lt;br /&gt;
When we boot up on the client machine with that card it displays:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Intel UNDI, PXE-2.0 (build 067)&amp;lt;br /&amp;gt;&lt;br /&gt;
Copyright (C) 1997-1998 Intel Corporation&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Which we cannot get working so we have read that you have to update this version to Build 82.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
copy /boot/pxeboot to /tftpboot directory we made before&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
- Downloaded proboot.exe from support.intel.com and unpacked into a windows box.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Copied ibautil.exe onto a windows 98 boot disk.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Rebooted the test box after disabling network boot on the nic (otherwise it'll kick in before the floppy).&amp;lt;br /&amp;gt;&lt;br /&gt;
- Ran ibautil -iv to see what embedded image versions were available:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Intel(R) Boot Agent XG v1.0.09&amp;lt;br /&amp;gt;&lt;br /&gt;
Intel(R) Boot Agent GE v1.2.36&amp;lt;br /&amp;gt;&lt;br /&gt;
Intel(R) Boot Agent FE v4.1.19&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
- Ran ibautil -up to perform the image upgrade.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
It's interesting to note that no version showed up for out intel nic when initially running ibautil. After the upgrade, however, the version corectly showed as 4.1.19.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I made sure that I had simular features to this in my dhcpd.conf file:&amp;lt;br /&amp;gt;&lt;br /&gt;
option broadcast-address 192.168.254.255;&amp;lt;br /&amp;gt;&lt;br /&gt;
option domain-name-servers 192.168.254.3;&amp;lt;br /&amp;gt;&lt;br /&gt;
option domain-name &amp;quot;simerson.net&amp;quot;;&amp;lt;br /&amp;gt;&lt;br /&gt;
option routers 192.168.254.1;&amp;lt;br /&amp;gt;&lt;br /&gt;
option subnet-mask 255.255.255.0;&amp;lt;br /&amp;gt;&lt;br /&gt;
server-name &amp;quot;pxe-gw&amp;quot;;&amp;lt;br /&amp;gt;&lt;br /&gt;
server-identifier 192.168.254.3;&amp;lt;br /&amp;gt;&lt;br /&gt;
next-server 192.168.254.3;&amp;lt;br /&amp;gt;&lt;br /&gt;
default-lease-time -1;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
subnet 192.168.254.0 netmask 255.255.255.0 {&amp;lt;br /&amp;gt;&lt;br /&gt;
range 192.168.254.32 192.168.254.99;&amp;lt;br /&amp;gt;&lt;br /&gt;
option root-path &amp;quot;/usr/local/export/pxe&amp;quot;;&amp;lt;br /&amp;gt;&lt;br /&gt;
filename &amp;quot;pxeboot&amp;quot;;&amp;lt;br /&amp;gt;&lt;br /&gt;
}&amp;lt;br /&amp;gt;&lt;br /&gt;
host cm.simerson.net {&amp;lt;br /&amp;gt;&lt;br /&gt;
hardware ethernet 00:e0:18:98:f0:cc;&amp;lt;br /&amp;gt;&lt;br /&gt;
fixed-address 192.168.254.126;&amp;lt;br /&amp;gt;&lt;br /&gt;
}&amp;lt;br /&amp;gt;&lt;br /&gt;
host c1.simerson.net {&amp;lt;br /&amp;gt;&lt;br /&gt;
hardware ethernet 00:60:97:0e:bb:a7;&amp;lt;br /&amp;gt;&lt;br /&gt;
fixed-address 192.168.254.131;&amp;lt;br /&amp;gt;&lt;br /&gt;
}&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==X config notes==&lt;br /&gt;
On the X server the /etc/X11/xorg.conf file is only used for the X server not the clients.&lt;br /&gt;
&lt;br /&gt;
To use this same configuration for your X Terminal Clients copy this file to /diskless_rw/&amp;lt;Client IP&amp;gt;/etc/X11 and it will use it.&lt;br /&gt;
&lt;br /&gt;
==Starting X on the client==&lt;br /&gt;
There are two ways of doing this and it depends on your hardware mainly.  &lt;br /&gt;
&lt;br /&gt;
1. run all programs on the server using the servers CPU and Memory this we will call the 'XDM Method'&lt;br /&gt;
2. run all programs from the NFS mounts using the clients CPU and Memory but the HD of the server, this we will call the 'NFS Method'&lt;br /&gt;
&lt;br /&gt;
Both methods will boot from PXE-Boot and can be diskless.&lt;br /&gt;
&lt;br /&gt;
===XDM Method===&lt;br /&gt;
Recommended for machines less than 1Ghz 256MB&lt;br /&gt;
&lt;br /&gt;
This is quite simple to setup.  Change your rc file in the /diskless_ro/etc directory to have this line at the end:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
X -query &amp;lt;server ip&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure on the server you setup xdm to start on system startup&lt;br /&gt;
 # vi /etc/ttys&lt;br /&gt;
&lt;br /&gt;
Search for this line:&lt;br /&gt;
 ttyv8   &amp;quot;/usr/X11R6/bin/xdm -nodaemon&amp;quot;  xterm   off secure&lt;br /&gt;
&lt;br /&gt;
and change it to:&lt;br /&gt;
 ttyv8   &amp;quot;/usr/X11R6/bin/xdm -nodaemon&amp;quot;  xterm   on secure&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also type this command at the command line on the client to test before hand.&lt;br /&gt;
&lt;br /&gt;
===NFS Method===&lt;br /&gt;
Recommended for machines over 1Ghz 256MB or if you want to utilise any of the clients devices such as local HD, USB, CD/DVD burners, etc.&lt;br /&gt;
&lt;br /&gt;
This is much trickier.&lt;br /&gt;
&lt;br /&gt;
Log in&lt;br /&gt;
Now type 'startx' at the command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==todo==&lt;br /&gt;
Here are some of the jobs left to do to make this secure or generally better:&lt;br /&gt;
&lt;br /&gt;
- If you don't configure your clients to run xdm it will put you at the text login.  The problem here is people can login as root without a password for some reason.  If the user hits &amp;lt;Ctrl&amp;gt;&amp;lt;Alt&amp;gt;&amp;lt;Back space&amp;gt; then it will crash them out to a login screen which the user could then login as root with out a password, not good!&lt;br /&gt;
&lt;br /&gt;
- Optimise the boot up sequence&lt;br /&gt;
&lt;br /&gt;
- There must be a simplier way to set this up if your going to use XDM in the end.  IE: do we need to do half of this tutorial if we are going to run XDM.&lt;br /&gt;
&lt;br /&gt;
- When the same user logs onto two seperate machines they cannot start firefox or thunderbird as it complains about being open somewhere else.  This assumes you have firefox and thunderbird already open on both machines that you logged onto.&lt;br /&gt;
&lt;br /&gt;
===Known Issues===&lt;br /&gt;
&lt;br /&gt;
- Doesn't work with HP-COMPAQ-T5525 thin client as it doesn't want to boot, it says it's missing libfreetype.so.9 which we do have it just cannot find it for some reason.  It's trying to use the VIA chipset for graphics which is different to all the other clients I've loaded successfully so far.&lt;br /&gt;
&lt;br /&gt;
- USB mice not working instead use PS/2.  If we got this working it may help get the HP T5525 working&lt;br /&gt;
&lt;br /&gt;
===Keyboard repeating on notebooks===&lt;br /&gt;
- typing on some keyboards (like my notebook) causes double characters to display if you type too fast. - This is the notebook, if you go and set the KDE Accessabiltiy options and set the keyboard rate to 50ms, this fixes the problem.&lt;br /&gt;
&lt;br /&gt;
===USB mouse===&lt;br /&gt;
&lt;br /&gt;
Editing /etc/devd.conf file and searched for ums&lt;br /&gt;
remarked out the action line.&lt;br /&gt;
 &lt;br /&gt;
rebooted.&lt;br /&gt;
 &lt;br /&gt;
Someone off IRC suggested that I build a GENERIC xorg.conf file which has vesa, usb mouse and ps/2 mouse configurations through it.&lt;br /&gt;
 &lt;br /&gt;
I reverted everything back to normal ps/2 mouse config, copying my usb config files to the following:&lt;br /&gt;
/etc/devd.conf_usb&lt;br /&gt;
/etc/rc.conf_usb&lt;br /&gt;
/etc/X11/xorg.conf_usb&lt;br /&gt;
 &lt;br /&gt;
I think we need a seperate configuration for the HP, it uses a weird display driver.&lt;br /&gt;
&lt;br /&gt;
==links==&lt;br /&gt;
&lt;br /&gt;
http://www.onlamp.com/pub/a/bsd/2004/09/09/diskless_server.html&lt;br /&gt;
&lt;br /&gt;
http://www.onlamp.com/pub/a/bsd/2004/09/30/diskless_clients.html&lt;br /&gt;
&lt;br /&gt;
http://people.freebsd.org/~alfred/pxe/en_US.ISO8859-1/articles/pxe/article.html&lt;br /&gt;
&lt;br /&gt;
http://www.the-labs.com/FreeBSD/Diskless/&lt;br /&gt;
&lt;br /&gt;
http://www.nber.org/sys-admin/FreeBSD-diskless.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://wikitest.freebsd.org/MarkusBoelter&lt;br /&gt;
&lt;br /&gt;
http://www.daemonsecurity.com/pub/pxeboot/&lt;br /&gt;
&lt;br /&gt;
http://www.kano.org.uk/projects/pxe/&lt;br /&gt;
&lt;br /&gt;
File Examples:&lt;br /&gt;
&lt;br /&gt;
http://www.watson.org/~robert/freebsd/pxe/&lt;br /&gt;
&lt;br /&gt;
PXE Information&lt;br /&gt;
http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;articleId=108551&lt;br /&gt;
&lt;br /&gt;
[[Category:FreeBSD_for_Workstations]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	<entry>
		<id>http://www.freebsdwiki.net/index.php/X_Windows_Terminal</id>
		<title>X Windows Terminal</title>
		<link rel="alternate" type="text/html" href="http://www.freebsdwiki.net/index.php/X_Windows_Terminal"/>
				<updated>2006-10-15T08:29:25Z</updated>
		
		<summary type="html">&lt;p&gt;Map7: /* Setup diskless_rw */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Advantages==&lt;br /&gt;
X Windows can be used in a Server-Client relationship.  By setting up your X Windows Server you allow the use of all the programs on that computer to all the client PC's.  &lt;br /&gt;
&lt;br /&gt;
There are many advantages of running client computers in this manner:&lt;br /&gt;
* They don't even need a hard drive.  &lt;br /&gt;
* It's silent as there are no moving parts&lt;br /&gt;
* The solution saves power as your computers are very thin.&lt;br /&gt;
* Everything can be backed up centrally.&lt;br /&gt;
* Boot times for client PC's are the fastest around.&lt;br /&gt;
* Clients don't need much CPU speed, memory, etc.  Because of this they would be very cheap.  You could get away with using a Pentium 100Mhz with 32MB ram, no hard drive, no CD-ROM, no Floppy and a fanless power supply.  You just need a ethernet card with a PXEBOOT ROM. (XDM mode)&lt;br /&gt;
* Central management of applications, users, config&lt;br /&gt;
&lt;br /&gt;
==From the Beginning==&lt;br /&gt;
I've based this document on FreeBSD 6.1.&lt;br /&gt;
&lt;br /&gt;
Install FreeBSD 6.1 as per usual.&lt;br /&gt;
I've setup my mount points as this:&lt;br /&gt;
  '''Part    Mount        Size'''&lt;br /&gt;
  ad0s1b  Swap         (equal to how much memory I have in my machine)&lt;br /&gt;
  ad0s1a  /            512MB&lt;br /&gt;
  ad0s1d  /var         1G&lt;br /&gt;
  ad0s1e  /tmp         512MB&lt;br /&gt;
  ad0s1f  /usr         2GB    min.&lt;br /&gt;
          /diskless_ro 512MB&lt;br /&gt;
          /diskless_rw 1GB    min.&lt;br /&gt;
&lt;br /&gt;
I selected 'A' for auto and then deleted /usr and created /usr as 2g.&lt;br /&gt;
&lt;br /&gt;
Select User-X install. Yes to Ports if you have the room.&lt;br /&gt;
&lt;br /&gt;
Select SSH Server and NFS Server in the installation process, for the rest of the options go with the default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: If you forget to add any of the labels above, you will have to reboot as you cannot add labels to your boot drive when you have booted off it. So boot of the installation CD and use the configure -&amp;gt; label option in the sysinstall screen to add these labels to your boot drive.  You may need to retype the mount points for /, /var, /tmp and /usr by hitting 'm' on each label.  Once you have created these labels in the 'Disklabel Editor' then you can hit 'w' to write them to the disk.  answer 'yes' to the next question, hit 'ok' to the warning message.  Now quit and reboot. Add them to fstab (/dev/ad0s1g   /diskless_ro) &amp;amp; (/dev/ad0s1h   /diskless_rw) and mount.&lt;br /&gt;
&lt;br /&gt;
I find the best way to get this working is to break it down in to small steps and get each step working independantly.  IE: Setup NFS and see if you can mount it from another FreeBSD machine, don't just assume it will work and boot your PXE-Boot machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Throughout my documentation&lt;br /&gt;
&lt;br /&gt;
192.168.1.1 = the Server&lt;br /&gt;
&lt;br /&gt;
192.168.1.2 = the client (may be a full freebsd system or pxeboot)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point I normally install fluxbox with the following line:&lt;br /&gt;
&lt;br /&gt;
 shell# pkg_add -r fluxbox-devel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
change your ~/.xinitrc file to the following:&lt;br /&gt;
&lt;br /&gt;
 startfluxbox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use the following command to update your fluxbox menus:&lt;br /&gt;
&lt;br /&gt;
 shell$ fluxbox-generate_menu&lt;br /&gt;
&lt;br /&gt;
==Running a single application==&lt;br /&gt;
&lt;br /&gt;
To get started I have my server setup running FreeBSD, with X-Windows and a few applications.  Nothing too special.  Then I have my client PC, which to start off I used the frenzy 1.0 boot CD to perform these initial tests.  You can get this from [http://frenzy.org.ua/eng/ frenzy website].  I entered into fluxbox, but you could equally use any X session.&lt;br /&gt;
You must allow incoming connections this is done with two commands&lt;br /&gt;
&lt;br /&gt;
 client$ startx -listen_tcp&lt;br /&gt;
 client$ xhost +&lt;br /&gt;
&lt;br /&gt;
This allows all computers to start applications on your client PC.  It's dangerous but good for testing everything is setup correctly.&lt;br /&gt;
&lt;br /&gt;
 client$ ssh &amp;lt;server user@server ip&amp;gt;&lt;br /&gt;
 eg: ssh mick@192.168.1.1&lt;br /&gt;
&lt;br /&gt;
 ssh$ export DISPLAY='192.168.1.2:0'&lt;br /&gt;
&lt;br /&gt;
Or if your running bash:&lt;br /&gt;
 ssh$ DISPLAY=&amp;lt;client ip&amp;gt;:&amp;lt;client display&amp;gt;; export DISPLAY&lt;br /&gt;
 eg: DISPLAY=192.168.1.2:0; export DISPLAY&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ssh$ xcalc &amp;amp;&lt;br /&gt;
&lt;br /&gt;
This should display on your client&lt;br /&gt;
&lt;br /&gt;
==Running a whole X Windows Session (XDM)==&lt;br /&gt;
This sets up a server so that you can share your X session with any clients which want to connect.  (Simular to Terminal Services under windows)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===server===&lt;br /&gt;
edit:&lt;br /&gt;
 /usr/X11R6/lib/X11/xdm/xdm-config&lt;br /&gt;
&lt;br /&gt;
comment out with a '!' the request line&amp;lt;br&amp;gt;&lt;br /&gt;
 DisplayManager.requestPort: 0&lt;br /&gt;
&lt;br /&gt;
edit:&amp;lt;br&amp;gt;&lt;br /&gt;
 /usr/X11R6/lib/X11/xdm/Xaccess&lt;br /&gt;
&lt;br /&gt;
Enter a single asterisk any where in the file, so the contents should be one asterisk and the rest commented out.  There should be an asterisk on line 49 which you can uncomment.&lt;br /&gt;
&lt;br /&gt;
Whilst in the /usr/X11R6/lib/X11/xdm directory do these commands:&lt;br /&gt;
 shell# vi Xstartup&lt;br /&gt;
&lt;br /&gt;
Add into this file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Xstartup&lt;br /&gt;
#&lt;br /&gt;
# This program is run as root after the user is verified&lt;br /&gt;
#&lt;br /&gt;
if [ -f /etc/nologin ]; then&lt;br /&gt;
   xmessage -file /etc/nologin -timeout 30 -center&lt;br /&gt;
   exit 1&lt;br /&gt;
fi&lt;br /&gt;
sessreg -a -l $DISPLAY -x /usr/X11R6/lib/xdm/Xservers $LOGNAME&lt;br /&gt;
/usr/X11R6/lib/xdm/GiveConsole&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
shell# chmod +x Xstartup&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Make sure your firewall has all traffic for you lan.  (Need to know which exact ports to allow).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Make sure you &amp;lt;/b&amp;gt;create ~/.xsession for each user which requires access and enter your start up for x &lt;br /&gt;
eg:&lt;br /&gt;
&lt;br /&gt;
 startfluxbox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;run xdm on server as root&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 shell# xdm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can put this xdm into the /etc/ttys so that it starts automatically on boot up.&lt;br /&gt;
&lt;br /&gt;
===client===&lt;br /&gt;
make sure your not in X&lt;br /&gt;
&lt;br /&gt;
type this command:&lt;br /&gt;
&lt;br /&gt;
 shell# X -broadcast&lt;br /&gt;
&lt;br /&gt;
This assumes that you are running only one server.&lt;br /&gt;
Otherwise use:&lt;br /&gt;
&lt;br /&gt;
 shell# X -query 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
==DHCP - Install and setup==&lt;br /&gt;
Server setup.&lt;br /&gt;
&lt;br /&gt;
install through package&lt;br /&gt;
 # pkg_add -r isc-dhcp3-server&lt;br /&gt;
&lt;br /&gt;
We do this so we can define the root path for the diskless system.&lt;br /&gt;
&lt;br /&gt;
copy /usr/local/etc/dhcpd.conf.sample to /usr/local/etc/dhcpd.conf&lt;br /&gt;
&lt;br /&gt;
edit /usr/local/etc/dhcpd.conf and make sure it has these lines in it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# dhcpd.conf&lt;br /&gt;
#&lt;br /&gt;
# Sample configuration file for ISC dhcpd&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# option definitions common to all supported networks...&lt;br /&gt;
#option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
#option domain-name-servers ns1.example.org, ns2.example.org;&lt;br /&gt;
&lt;br /&gt;
default-lease-time 3600;&lt;br /&gt;
max-lease-time 86400;&lt;br /&gt;
&lt;br /&gt;
# If this DHCP server is the official DHCP server for the local&lt;br /&gt;
# network, the authoritative directive should be uncommented.&lt;br /&gt;
authoritative;&lt;br /&gt;
&lt;br /&gt;
# ad-hoc DNS update scheme - set to &amp;quot;none&amp;quot; to disable dynamic DNS updates.&lt;br /&gt;
ddns-update-style none;&lt;br /&gt;
&lt;br /&gt;
option root-path &amp;quot;192.168.1.1:/diskless_ro&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# lines added for pxeboot client&lt;br /&gt;
use-host-decl-names on;&lt;br /&gt;
next-server 192.168.1.1;&lt;br /&gt;
filename &amp;quot;pxeboot&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Use this to send dhcp log messages to a different log file (you also&lt;br /&gt;
# have to hack syslog.conf to complete the redirection).&lt;br /&gt;
log-facility local7;&lt;br /&gt;
&lt;br /&gt;
# No service will be given on this subnet, but declaring it helps the&lt;br /&gt;
# DHCP server to understand the network topology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# This is a very basic subnet declaration.&lt;br /&gt;
&lt;br /&gt;
subnet 192.168.1.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 192.168.1.10 192.168.1.20;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the leases file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# touch /var/db/dhcpd.leases&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Restart the daemon&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# killall dhcpd&lt;br /&gt;
# dhcpd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add to /etc/rc.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dhcpd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using a seperate DHCP server===&lt;br /&gt;
If you already have a DHCP server and you want to use that instead then you have to do these steps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====On your DHCP Server====&lt;br /&gt;
1. edit /usr/local/etc/dhcpd.conf and add the following&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
authoritative;&lt;br /&gt;
ddns-update-style none;&lt;br /&gt;
&lt;br /&gt;
option root-path &amp;quot;&amp;lt;X Server IP&amp;gt;:/diskless_ro&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# lines added for pxeboot client&lt;br /&gt;
use-host-decl-names on;&lt;br /&gt;
next-server &amp;lt;X Server IP&amp;gt;;&lt;br /&gt;
filename &amp;quot;pxeboot&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. stop dhcpd&lt;br /&gt;
3. start dhcpd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Client====&lt;br /&gt;
Your client should boot now just remember that you may get a different IP now that you are talking to a different DHCP server so you have to change your exports file and copy accross a directory in /diskless_rw for the new IP.  All this is done on the X Server.&lt;br /&gt;
&lt;br /&gt;
==TFTP Setup==&lt;br /&gt;
TFTP helps us transport the kernel to the PXE-Boot machines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /tftpboot&lt;br /&gt;
# cp /boot/pxeboot /tftpboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uncomment the following line in /etc/inetd.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tftp    dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l -s /tftpboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart the inetd service&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# killall -HUP inetd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If inetd has not started automatically do the following:&lt;br /&gt;
&lt;br /&gt;
Add the following to /etc/rc.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
inetd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now start inetd manually.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# inetd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
To test that tftp has loaded type the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sockstat -4l | grep 69 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and you should see this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root      inetd       13719 5   udp4    *:69                 *:*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NFS Setup==&lt;br /&gt;
Network File System.  Here we share all the directories from the server so that the diskless clients see these drives as if those directories were the diskless client's.&lt;br /&gt;
&lt;br /&gt;
===Server Setup===&lt;br /&gt;
If you forgot to select 'Yes' to NFS server setup in the FreeBSD installation then you have to setup the server manually like so:&lt;br /&gt;
&lt;br /&gt;
Enable NFS /etc/rc.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpcbind_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
nfs_server_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
A quick test to see if your NFS server is acting normal:&lt;br /&gt;
&lt;br /&gt;
Edit the /etc/exports and add the following&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr       -alldirs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This allows anyone to connect to your /usr mount.&lt;br /&gt;
&lt;br /&gt;
Now run these commands to restart and view your mounts&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# kill -HUP `cat /var/run/mountd.pid`&lt;br /&gt;
# showmount -e&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now try and mount it from a client running BSD&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mount -t nfs 192.168.1.1:/usr /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Server exports setup===&lt;br /&gt;
&lt;br /&gt;
Make directories for each IP for your clients&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /diskless_rw&lt;br /&gt;
# mkdir 192.168.1.2&lt;br /&gt;
# cd 192.168.1.2&lt;br /&gt;
# mkdir etc var&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure /etc/exports&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# file systems accessible only for reading:&lt;br /&gt;
# Original way of linking up the /usr&lt;br /&gt;
#/usr -ro -maproot=0 -network 192.168.1.0 -mask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
/usr -network 192.168.1.0 -mask 255.255.255.0&lt;br /&gt;
/diskless_ro -ro -maproot=0 -network 192.168.1.0 -mask 255.255.255.0&lt;br /&gt;
/diskless_rw/192.168.1.2/etc /diskless_rw/192.168.1.2/var -maproot=root 192.168.1.2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restarting NFS&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# kill -HUP `cat /var/run/mountd.pid`&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If NFS is not started yet do the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data# rpcbind&lt;br /&gt;
data# nfsd -u -t -n 20 -h 192.168.1.1&lt;br /&gt;
data# mountd -r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Testing to see if the exports are correct&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data# showmount -e&lt;br /&gt;
Exports list on localhost:&lt;br /&gt;
/usr                              192.168.1.0&lt;br /&gt;
/diskless_rw/192.168.1.2/var      192.168.1.2&lt;br /&gt;
/diskless_rw/192.168.1.2/etc      192.168.1.2&lt;br /&gt;
/diskless_ro                      192.168.1.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Setup diskless_rw==&lt;br /&gt;
Create directories&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /diskless_rw/192.168.1.2/etc&lt;br /&gt;
# mkdir pam.d X11&lt;br /&gt;
&lt;br /&gt;
# cd /diskless_rw/192.168.1.2/var&lt;br /&gt;
# mkdir home log run tmp&lt;br /&gt;
# chmod 1777 tmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a swap file in the var directory for the client&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# dd if=/dev/zero of=/diskless_rw/192.168.1.2/var/swap bs=1k count=32000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in the /diskless_rw/&amp;lt;ip&amp;gt;/var/log directory I created the following log files so that syslogd would have files to write to:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /diskless_rw/192.168.1.2/var/log&lt;br /&gt;
# touch messages security auth.log maillog lpd-errs xferlog cron debug.log slip.log ppp.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Copy the following files from the systems /etc directory to /diskless_rw/&amp;lt;client ip&amp;gt;/etc&lt;br /&gt;
 # cp -Rv &amp;lt;files&amp;gt; /diskless_rw/&amp;lt;ip&amp;gt;/etc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth.conf&lt;br /&gt;
disktab&lt;br /&gt;
gettytab&lt;br /&gt;
group&lt;br /&gt;
hosts&lt;br /&gt;
login.access&lt;br /&gt;
login.conf&lt;br /&gt;
login.conf.db&lt;br /&gt;
master.passwd&lt;br /&gt;
netconfig&lt;br /&gt;
protocols&lt;br /&gt;
pam.d&lt;br /&gt;
pwd.db&lt;br /&gt;
services&lt;br /&gt;
spwd.db&lt;br /&gt;
syslog.conf&lt;br /&gt;
termcap -&amp;gt; /usr/share/misc/termcap&lt;br /&gt;
ttys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's very important that you copy all the files in pam.d across otherwise you will not have a password prompt on your login.&lt;br /&gt;
&lt;br /&gt;
==Setup diskless_ro==&lt;br /&gt;
This is the common root mount for all pxe-boot clients.&lt;br /&gt;
&lt;br /&gt;
Copy accross important directories and kernel from boot to diskless_ro&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp -rv /bin /lib /libexec /sbin /boot /diskless_ro&lt;br /&gt;
# mkdir /diskless_ro/usr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For some client machines you may have to disable the ACPI (Power management) in the /diskless_ro/boot/device.hints&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hint.acpi.0.disabled=&amp;quot;1&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make a dev so that clients can boot without freezing.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /diskless_ro/dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make a directory so that we can mount var from the /diskless_rw/&amp;lt;client ip&amp;gt;/var&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /diskless_ro/var&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
So we can use the systems /var/tmp and /usr/home directory make soft links to them&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /diskless_ro&lt;br /&gt;
# ln -s /var/tmp .&lt;br /&gt;
# ln -s /usr/home .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We require a few files from the systems /etc directory to be copied into the /diskless_ro/etc for common use between the thin clients.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /diskless_ro/etc&lt;br /&gt;
# cp /etc/services /etc/netconfig /etc/login.conf /diskless_ro/etc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===rc file===&lt;br /&gt;
The /diskless_ro/etc/rc file is the first file which is ran after the kernel has loaded.  Here we mount a the labels from the server.&lt;br /&gt;
&lt;br /&gt;
Create the /diskless_ro/etc/rc&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin; export PATH&lt;br /&gt;
TMPDIR=~/tmp;export TMPDIR&lt;br /&gt;
TMP=~/tmp;export TMP&lt;br /&gt;
&lt;br /&gt;
mount -t nfs 192.168.0.1:/usr /usr&lt;br /&gt;
&lt;br /&gt;
boot_ip=`/sbin/ifconfig | /usr/bin/grep &amp;quot;inet &amp;quot; | /usr/bin/grep -v 127.0.0.1 |&lt;br /&gt;
/usr/bin/awk '{print $2}'`&lt;br /&gt;
mount_nfs -L 192.168.0.1:/diskless_rw/${boot_ip}/etc /etc&lt;br /&gt;
mount_nfs -L 192.168.0.1:/diskless_rw/${boot_ip}/var /var&lt;br /&gt;
&lt;br /&gt;
swapon /var/swap&lt;br /&gt;
&lt;br /&gt;
#rm -rf /var/tmp/*&lt;br /&gt;
#rm -rf /var/tmp/.*&lt;br /&gt;
&lt;br /&gt;
# Option if you choose XDM terminals&lt;br /&gt;
#X -query 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
. /etc/rc2&lt;br /&gt;
exit 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Remember to change 192.168.0.1 to your X server's IP&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The -L on the mount_nfs is there so we don't get flock errors.&lt;br /&gt;
&lt;br /&gt;
===rc2 file===&lt;br /&gt;
This sets up some links for libraries and the logging daemon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
mount -a&lt;br /&gt;
/sbin/ldconfig -elf /usr/lib/compat /usr/X11R6/lib /usr/local/lib&lt;br /&gt;
&lt;br /&gt;
syslogd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now change permissions so rc can run.&lt;br /&gt;
 # chmod +x rc*&lt;br /&gt;
&lt;br /&gt;
Copy /diskless_ro/etc/rc and rc2 to /diskless_rw/&amp;lt;client ip&amp;gt;/etc&lt;br /&gt;
 # cp /diskless_ro/etc/rc* /diskless_rw/192.168.1.2/etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GRUB Floppy boot (optional)==&lt;br /&gt;
&lt;br /&gt;
(would like to compile this ourselves later)&lt;br /&gt;
To get started we downloaded the image from www.hp.uab.edu/~ed/grub-net&lt;br /&gt;
&lt;br /&gt;
 shell# dd if=/data/grub-net.img of=/dev/fd0&lt;br /&gt;
&lt;br /&gt;
Then we mounted it as msdos&lt;br /&gt;
Remove/rename menu.1st from the grub directory as it was doing something funny with it.  We think that it was looking for a tftp server through our dhcp and we don't have a the dhcp setup correctly here, so we wanted to do it manually.&lt;br /&gt;
&lt;br /&gt;
Reboot off the floppy now..&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; ifconfig --address=192.168.1.2 --mask=255.255.255.0 --gateway=192.168.1.1&lt;br /&gt;
 --server=192.168.1.2&lt;br /&gt;
&lt;br /&gt;
OR you can use dhcp&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; dhcp&amp;lt;br&amp;gt; &lt;br /&gt;
 grub&amp;gt; tftpserver 192.168.1.2&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Setup tftp on your server, we created a directory /tftpboot. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Starting diskless system through GRUB===&lt;br /&gt;
This is an alternative boot loader.  You can use this for testing, if you don't have a pxeboot chip, otherwise skip this section.&lt;br /&gt;
&lt;br /&gt;
These commands are half working...&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; root (nd)&amp;lt;br&amp;gt;&lt;br /&gt;
 grub&amp;gt; kernel /kernel root=ad0s1a&amp;lt;br&amp;gt;&lt;br /&gt;
 grub&amp;gt; pxeboot&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Completely Diskless System (PXEBOOT ROM) (optional)==&lt;br /&gt;
&lt;br /&gt;
Running completely diskless by booting from a Network ROM Chip.&lt;br /&gt;
&lt;br /&gt;
We have now got a Intel GD82559 Etherexpress pro/100 Card.&lt;br /&gt;
&lt;br /&gt;
When we boot up on the client machine with that card it displays:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Intel UNDI, PXE-2.0 (build 067)&amp;lt;br /&amp;gt;&lt;br /&gt;
Copyright (C) 1997-1998 Intel Corporation&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Which we cannot get working so we have read that you have to update this version to Build 82.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
copy /boot/pxeboot to /tftpboot directory we made before&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
- Downloaded proboot.exe from support.intel.com and unpacked into a windows box.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Copied ibautil.exe onto a windows 98 boot disk.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Rebooted the test box after disabling network boot on the nic (otherwise it'll kick in before the floppy).&amp;lt;br /&amp;gt;&lt;br /&gt;
- Ran ibautil -iv to see what embedded image versions were available:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Intel(R) Boot Agent XG v1.0.09&amp;lt;br /&amp;gt;&lt;br /&gt;
Intel(R) Boot Agent GE v1.2.36&amp;lt;br /&amp;gt;&lt;br /&gt;
Intel(R) Boot Agent FE v4.1.19&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
- Ran ibautil -up to perform the image upgrade.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
It's interesting to note that no version showed up for out intel nic when initially running ibautil. After the upgrade, however, the version corectly showed as 4.1.19.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I made sure that I had simular features to this in my dhcpd.conf file:&amp;lt;br /&amp;gt;&lt;br /&gt;
option broadcast-address 192.168.254.255;&amp;lt;br /&amp;gt;&lt;br /&gt;
option domain-name-servers 192.168.254.3;&amp;lt;br /&amp;gt;&lt;br /&gt;
option domain-name &amp;quot;simerson.net&amp;quot;;&amp;lt;br /&amp;gt;&lt;br /&gt;
option routers 192.168.254.1;&amp;lt;br /&amp;gt;&lt;br /&gt;
option subnet-mask 255.255.255.0;&amp;lt;br /&amp;gt;&lt;br /&gt;
server-name &amp;quot;pxe-gw&amp;quot;;&amp;lt;br /&amp;gt;&lt;br /&gt;
server-identifier 192.168.254.3;&amp;lt;br /&amp;gt;&lt;br /&gt;
next-server 192.168.254.3;&amp;lt;br /&amp;gt;&lt;br /&gt;
default-lease-time -1;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
subnet 192.168.254.0 netmask 255.255.255.0 {&amp;lt;br /&amp;gt;&lt;br /&gt;
range 192.168.254.32 192.168.254.99;&amp;lt;br /&amp;gt;&lt;br /&gt;
option root-path &amp;quot;/usr/local/export/pxe&amp;quot;;&amp;lt;br /&amp;gt;&lt;br /&gt;
filename &amp;quot;pxeboot&amp;quot;;&amp;lt;br /&amp;gt;&lt;br /&gt;
}&amp;lt;br /&amp;gt;&lt;br /&gt;
host cm.simerson.net {&amp;lt;br /&amp;gt;&lt;br /&gt;
hardware ethernet 00:e0:18:98:f0:cc;&amp;lt;br /&amp;gt;&lt;br /&gt;
fixed-address 192.168.254.126;&amp;lt;br /&amp;gt;&lt;br /&gt;
}&amp;lt;br /&amp;gt;&lt;br /&gt;
host c1.simerson.net {&amp;lt;br /&amp;gt;&lt;br /&gt;
hardware ethernet 00:60:97:0e:bb:a7;&amp;lt;br /&amp;gt;&lt;br /&gt;
fixed-address 192.168.254.131;&amp;lt;br /&amp;gt;&lt;br /&gt;
}&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==X config notes==&lt;br /&gt;
On the X server the /etc/X11/xorg.conf file is only used for the X server not the clients.&lt;br /&gt;
&lt;br /&gt;
To use this same configuration for your X Terminal Clients copy this file to /diskless_rw/&amp;lt;Client IP&amp;gt;/etc/X11 and it will use it.&lt;br /&gt;
&lt;br /&gt;
==Starting X on the client==&lt;br /&gt;
There are two ways of doing this and it depends on your hardware mainly.  &lt;br /&gt;
&lt;br /&gt;
1. run all programs on the server using the servers CPU and Memory this we will call the 'XDM Method'&lt;br /&gt;
2. run all programs from the NFS mounts using the clients CPU and Memory but the HD of the server, this we will call the 'NFS Method'&lt;br /&gt;
&lt;br /&gt;
Both methods will boot from PXE-Boot and can be diskless.&lt;br /&gt;
&lt;br /&gt;
===XDM Method===&lt;br /&gt;
Recommended for machines less than 1Ghz 256MB&lt;br /&gt;
&lt;br /&gt;
This is quite simple to setup.  Change your rc file in the /diskless_ro/etc directory to have this line at the end:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
X -query &amp;lt;server ip&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure on the server you setup xdm to start on system startup&lt;br /&gt;
 # vi /etc/ttys&lt;br /&gt;
&lt;br /&gt;
Search for this line:&lt;br /&gt;
 ttyv8   &amp;quot;/usr/X11R6/bin/xdm -nodaemon&amp;quot;  xterm   off secure&lt;br /&gt;
&lt;br /&gt;
and change it to:&lt;br /&gt;
 ttyv8   &amp;quot;/usr/X11R6/bin/xdm -nodaemon&amp;quot;  xterm   on secure&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also type this command at the command line on the client to test before hand.&lt;br /&gt;
&lt;br /&gt;
===NFS Method===&lt;br /&gt;
Recommended for machines over 1Ghz 256MB or if you want to utilise any of the clients devices such as local HD, USB, CD/DVD burners, etc.&lt;br /&gt;
&lt;br /&gt;
This is much trickier.&lt;br /&gt;
&lt;br /&gt;
Log in&lt;br /&gt;
Now type 'startx' at the command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==todo==&lt;br /&gt;
Here are some of the jobs left to do to make this secure or generally better:&lt;br /&gt;
&lt;br /&gt;
- If you don't configure your clients to run xdm it will put you at the text login.  The problem here is people can login as root without a password for some reason.  If the user hits &amp;lt;Ctrl&amp;gt;&amp;lt;Alt&amp;gt;&amp;lt;Back space&amp;gt; then it will crash them out to a login screen which the user could then login as root with out a password, not good!&lt;br /&gt;
&lt;br /&gt;
- Optimise the boot up sequence&lt;br /&gt;
&lt;br /&gt;
- There must be a simplier way to set this up if your going to use XDM in the end.  IE: do we need to do half of this tutorial if we are going to run XDM.&lt;br /&gt;
&lt;br /&gt;
- When the same user logs onto two seperate machines they cannot start firefox or thunderbird as it complains about being open somewhere else.  This assumes you have firefox and thunderbird already open on both machines that you logged onto.&lt;br /&gt;
&lt;br /&gt;
===Known Issues===&lt;br /&gt;
&lt;br /&gt;
- Doesn't work with HP-COMPAQ-T5525 thin client as it doesn't want to boot, it says it's missing libfreetype.so.9 which we do have it just cannot find it for some reason.  It's trying to use the VIA chipset for graphics which is different to all the other clients I've loaded successfully so far.&lt;br /&gt;
&lt;br /&gt;
- USB mice not working instead use PS/2.  If we got this working it may help get the HP T5525 working&lt;br /&gt;
&lt;br /&gt;
===Keyboard repeating on notebooks===&lt;br /&gt;
- typing on some keyboards (like my notebook) causes double characters to display if you type too fast. - This is the notebook, if you go and set the KDE Accessabiltiy options and set the keyboard rate to 50ms, this fixes the problem.&lt;br /&gt;
&lt;br /&gt;
===USB mouse===&lt;br /&gt;
&lt;br /&gt;
Editing /etc/devd.conf file and searched for ums&lt;br /&gt;
remarked out the action line.&lt;br /&gt;
 &lt;br /&gt;
rebooted.&lt;br /&gt;
 &lt;br /&gt;
Someone off IRC suggested that I build a GENERIC xorg.conf file which has vesa, usb mouse and ps/2 mouse configurations through it.&lt;br /&gt;
 &lt;br /&gt;
I reverted everything back to normal ps/2 mouse config, copying my usb config files to the following:&lt;br /&gt;
/etc/devd.conf_usb&lt;br /&gt;
/etc/rc.conf_usb&lt;br /&gt;
/etc/X11/xorg.conf_usb&lt;br /&gt;
 &lt;br /&gt;
I think we need a seperate configuration for the HP, it uses a weird display driver.&lt;br /&gt;
&lt;br /&gt;
==links==&lt;br /&gt;
&lt;br /&gt;
http://www.onlamp.com/pub/a/bsd/2004/09/09/diskless_server.html&lt;br /&gt;
&lt;br /&gt;
http://www.onlamp.com/pub/a/bsd/2004/09/30/diskless_clients.html&lt;br /&gt;
&lt;br /&gt;
http://people.freebsd.org/~alfred/pxe/en_US.ISO8859-1/articles/pxe/article.html&lt;br /&gt;
&lt;br /&gt;
http://www.the-labs.com/FreeBSD/Diskless/&lt;br /&gt;
&lt;br /&gt;
http://www.nber.org/sys-admin/FreeBSD-diskless.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://wikitest.freebsd.org/MarkusBoelter&lt;br /&gt;
&lt;br /&gt;
http://www.daemonsecurity.com/pub/pxeboot/&lt;br /&gt;
&lt;br /&gt;
http://www.kano.org.uk/projects/pxe/&lt;br /&gt;
&lt;br /&gt;
File Examples:&lt;br /&gt;
&lt;br /&gt;
http://www.watson.org/~robert/freebsd/pxe/&lt;br /&gt;
&lt;br /&gt;
PXE Information&lt;br /&gt;
http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;articleId=108551&lt;br /&gt;
&lt;br /&gt;
[[Category:FreeBSD_for_Workstations]]&lt;/div&gt;</summary>
		<author><name>Map7</name></author>	</entry>

	</feed>