<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blogging to Nowhere &#187; eeepc</title>
	<atom:link href="http://webworxshop.com/tag/eeepc/feed" rel="self" type="application/rss+xml" />
	<link>http://webworxshop.com</link>
	<description>cat /dev/brain &#62; /dev/null</description>
	<lastBuildDate>Sat, 05 May 2012 21:57:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
	<atom:link rel="hub" href="http://superfeedr.com/hubbub" />
			<item>
		<title>Even easier netboot installation…</title>
		<link>http://webworxshop.com/2009/06/24/even-easier-netboot-installation</link>
		<comments>http://webworxshop.com/2009/06/24/even-easier-netboot-installation#comments</comments>
		<pubDate>Wed, 24 Jun 2009 02:12:16 +0000</pubDate>
		<dc:creator>Rob Connolly</dc:creator>
				<category><![CDATA[Howtos]]></category>
		<category><![CDATA[awesome]]></category>
		<category><![CDATA[dhcp]]></category>
		<category><![CDATA[eeepc]]></category>
		<category><![CDATA[foss]]></category>
		<category><![CDATA[netboot]]></category>
		<category><![CDATA[pxe]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.webworxshop.com/?p=94</guid>
		<description><![CDATA[<p>A while ago I covered <a href="/2009/02/09/pxe-netinstalling-for-simpletons">netbooting/installation on ubuntu</a>, well I&#8217;ve now found an even easier way to do this! It&#8217;s probably the easiest way to go about this as it really only involves editing one config file. Some of the info here comes from the <a href="https://help.ubuntu.com/community/Installation/Netboot">official Ubuntu documentation</a> on this, though my approach [...]]]></description>
			<content:encoded><![CDATA[<p>A while ago I covered <a href="/2009/02/09/pxe-netinstalling-for-simpletons">netbooting/installation on ubuntu</a>, well I&#8217;ve now found an even easier way to do this! It&#8217;s probably the easiest way to go about this as it really only involves editing one config file. Some of the info here comes from the <a href="https://help.ubuntu.com/community/Installation/Netboot">official Ubuntu documentation</a> on this, though my approach is actually easier, since you don&#8217;t need a separate tftp server.</p>
<p>The main piece of software you will need is dnsmasq, which you can install with the command:</p>
<p><code>sudo apt-get install dnsmasq</code></p>
<p>I already had this installed as I&#8217;m using it as a DNS cache for my network (which is also pretty useful). It turns out that dnsmasq is a bit of a &#8216;swiss army knife&#8217;, it can do DHCP, DNS and TFTP all together and very easily. You should edit the config file:</p>
<p><code>sudo nano /etc/dnsmasq.conf</code><span id="more-94"></span></p>
<p>And add/uncomment/edit the following lines:</p>
<p><code>dhcp-range=192.168.1.3,192.168.1.50,12h # sets the ip address range and update frequency for the network<br />
dhcp-boot=pxelinux.0 # set up network booting to boot the pxelinux bootloader<br />
enable-tftp # enable built in tftp server<br />
tftp-root=/var/tftpd # set tftp directory</code></p>
<p>Basically this sets up dnsmasq to be both the DHCP server for the network and push the PXE boot options out over the network. It also enables the built in TFTP server in dnsmasq and sets the directory to serve files from.</p>
<p>The next step is to get some files to serve, I got the PXE/netboot image from the Ubuntu <a href="http://cdimage.ubuntu.com/netboot/">cdimages</a> site, and untarred the files to the correct directory:</p>
<p><code>wget http://archive.ubuntu.com/ubuntu/dists/jaunty/main/installer-i386/current/images/netboot/netboot.tar.gz<br />
sudo mkdir -p /var/tftp<br />
tar -xvzf netboot.tar.gz -C /var/tftp/<br />
chown -R nobody:nogroup /var/tftp</code></p>
<p>The tar file of course is basically just the minimal install CD, set up for netbooting, so when you install you will need to download all the packages, for a simple cli install this doesn&#8217;t take very long, and you can use a package cache or something to help with future installs.</p>
<p>OK, now restart dnsmasq:</p>
<p><code>sudo /etc/init.d/dnsmasq restart</code></p>
<p>&#8230;and you should be good to go (make sure that your machine is the only DHCP server on the network). For tips on booting clients see my <a href="/2009/02/09/pxe-netinstalling-for-simpletons">original article</a> &#8211; btw, since I used the new version of Ubuntu I can now boot my Eee PC 901 over the network!</p>
<p>If you have any questions or problems with this I&#8217;d be happy to answer them, just post them below.</p>
<p>Bye for now!</p>
 <p><a href="http://webworxshop.com/?flattrss_redirect&amp;id=94&amp;md5=74540b59a8288d7ec643f81c176f5656" title="Flattr" target="_blank"><img src="http://blog.webworxshop.com/wp-content/plugins/flattrss/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://webworxshop.com/2009/06/24/even-easier-netboot-installation/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=robconnolly&amp;popout=1&amp;url=http%3A%2F%2Fwebworxshop.com%2F2009%2F06%2F24%2Feven-easier-netboot-installation&amp;language=en_GB&amp;category=text&amp;title=Even+easier+netboot+installation%E2%80%A6&amp;description=A+while+ago+I+covered+netbooting%2Finstallation+on+ubuntu%2C+well+I%26%238217%3Bve+now+found+an+even+easier+way+to+do+this%21+It%26%238217%3Bs+probably+the+easiest+way+to+go+about+this+as+it...&amp;tags=awesome%2Cdhcp%2Ceeepc%2Cfoss%2Cnetboot%2Cpxe%2Cubuntu%2Cblog" type="text/html" />
	</item>
		<item>
		<title>A quick update</title>
		<link>http://webworxshop.com/2009/03/06/a-quick-update</link>
		<comments>http://webworxshop.com/2009/03/06/a-quick-update#comments</comments>
		<pubDate>Fri, 06 Mar 2009 02:35:11 +0000</pubDate>
		<dc:creator>Rob Connolly</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[awesome]]></category>
		<category><![CDATA[crap]]></category>
		<category><![CDATA[crunchbang]]></category>
		<category><![CDATA[eeepc]]></category>
		<category><![CDATA[foss]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[linux outlaws]]></category>

		<guid isPermaLink="false">http://blog.webworxshop.com/?p=64</guid>
		<description><![CDATA[<p>Hey,</p> <p>Haven&#8217;t been posting in a while, mainly because I&#8217;ve been busy doing other things:</p> <p>I&#8217;ve developed and successfully launched a new website for my <a href="http://www.autc.org.nz">Tramping Club</a>, using Drupal &#8211; which I&#8217;ve now found is really awesome for community type sites like that btw.</p> <p>I&#8217;ve switched to <a href="http://crunchbanglinux.org">Crunchbang</a> (Cruncheee) on my EeePC, which [...]]]></description>
			<content:encoded><![CDATA[<p>Hey,</p>
<p>Haven&#8217;t been posting in a while, mainly because I&#8217;ve been busy doing other things:</p>
<p>I&#8217;ve developed and successfully launched a new website for my <a href="http://www.autc.org.nz">Tramping Club</a>, using Drupal &#8211; which I&#8217;ve now found is really awesome for community type sites like that btw.</p>
<p>I&#8217;ve switched to <a href="http://crunchbanglinux.org">Crunchbang</a> (Cruncheee) on my EeePC, which I really like. I intend to review it at some point, but I&#8217;m not sure when I&#8217;ll get round to it.</p>
<p>Also, this week has been the first week of uni, so I&#8217;m going to be busier from now on. I&#8217;ll still try and post as much as I can, but I&#8217;m not sure I&#8217;ll be able to write any long articles.</p>
<p>That&#8217;s about it. I should probably mention a bit of site news too:</p>
<p>I was just listending to <a href="http://linuxoutlaws.com/podcast/80">Linux Outlaws 80</a> and they mentioned this whole <a href="http://idroppedie6.com/">drop IE6</a> thing, which I&#8217;m really in favour of! This site has now officially dropped IE6 thanks to the <a href="http://wordpress.org/extend/plugins/shockingly-big-ie6-warning/">Shockingly Big IE6 Warning</a> plugin for wordpress.</p>
<p>Also LO mentioned the email I sent them re <a href="http://search.wikia.com">Wikia search</a> (yay!!!). Thanks Dan and Fab (if you ever read this!).</p>
 <p><a href="http://webworxshop.com/?flattrss_redirect&amp;id=64&amp;md5=46369214cbdd6c1fd68967043fd2f09e" title="Flattr" target="_blank"><img src="http://blog.webworxshop.com/wp-content/plugins/flattrss/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://webworxshop.com/2009/03/06/a-quick-update/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=robconnolly&amp;popout=1&amp;url=http%3A%2F%2Fwebworxshop.com%2F2009%2F03%2F06%2Fa-quick-update&amp;language=en_GB&amp;category=text&amp;title=A+quick+update&amp;description=Hey%2C+Haven%26%238217%3Bt+been+posting+in+a+while%2C+mainly+because+I%26%238217%3Bve+been+busy+doing+other+things%3A+I%26%238217%3Bve+developed+and+successfully+launched+a+new+website+for+my+Tramping+Club%2C+using+Drupal+%26%238211%3B...&amp;tags=awesome%2Ccrap%2Ccrunchbang%2Ceeepc%2Cfoss%2Cie6%2Clinux+outlaws%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Screen switching on the EeePC</title>
		<link>http://webworxshop.com/2009/02/12/screen-switching-on-the-eeepc</link>
		<comments>http://webworxshop.com/2009/02/12/screen-switching-on-the-eeepc#comments</comments>
		<pubDate>Thu, 12 Feb 2009 05:54:41 +0000</pubDate>
		<dc:creator>Rob Connolly</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[eeepc]]></category>
		<category><![CDATA[foss]]></category>
		<category><![CDATA[screen resolution]]></category>
		<category><![CDATA[xrandr]]></category>

		<guid isPermaLink="false">http://blog.webworxshop.com/?p=45</guid>
		<description><![CDATA[<p>I spend a lot of time working on my EeePC 901 using it&#8217;s external monitor support, it&#8217;s great, I have this little netbook, but when I plug it in to an external monitor, keyboard and mouse it pretty much turns into a desktop PC. The only drawback I&#8217;ve found so far is that there was [...]]]></description>
			<content:encoded><![CDATA[<p>I spend a lot of time working on my EeePC 901 using it&#8217;s external monitor support, it&#8217;s great, I have this little netbook, but when I plug it in to an external monitor, keyboard and mouse it pretty much turns into a desktop PC. The only drawback I&#8217;ve found so far is that there was no way to switch between the monitors in Ubuntu without going through the Screen Resolution configuration dialog. That was until I decided it had annoyed me for long enough and got Googling.</p>
<p>I found <a href="http://www.thinkwiki.org/wiki/Xorg_RandR_1.2">this</a> page, which documents the Xrandr, which can be used to configure monitors and screen resolutions from the command line. Some of the code snippets on the page got me into writing a script, which could toggle between the displays and be assigned to a hot key. I also added a mode to switch back to the laptop screen when there is not external screen (just in case my external monitor dies as happened in the <a href="/2009/02/03/another-auckland-power-outage-means-go-home-early">power cut</a> the other day!).<span id="more-45"></span></p>
<p><code>#!/bin/sh<br />
# names of outputs<br />
EXTERNAL_OUTPUT="VGA"<br />
INTERNAL_OUTPUT="LVDS"<br />
# external and internal resolutions<br />
EXTERNAL_RESOLUTION="1024x768"<br />
INTERNAL_RESOLUTION="1024x600"<br />
# if the external output is disconnected, then switch back to internal output<br />
xrandr | grep $EXTERNAL_OUTPUT | grep 'disconnected'<br />
if [ $? -eq 0 ]; then<br />
# just check to make sure we aren't on internal output already<br />
xrandr | grep $INTERNAL_OUTPUT | grep $INTERNAL_RESOLUTION<br />
if [ $? -eq 1 ]; then<br />
xrandr --output $INTERNAL_OUTPUT --auto --output $EXTERNAL_OUTPUT --off<br />
fi<br />
exit 0<br />
fi<br />
# check to see whether the external output is active<br />
xrandr | grep $EXTERNAL_OUTPUT | grep $EXTERNAL_RESOLUTION<br />
if [ $? -eq 0 ]; then<br />
# yep, we're currently using the external output, so switch back to the internal output<br />
xrandr --output $INTERNAL_OUTPUT --auto --output $EXTERNAL_OUTPUT --off<br />
else<br />
# otherwise we want to change to the external output<br />
xrandr --output $INTERNAL_OUTPUT --off --output $EXTERNAL_OUTPUT --mode $EXTERNAL_RESOLUTION<br />
fi<br />
exit 0</code></p>
<p>I assigned this to the Fn-F5 key combination using <a href="apt:eee-control">eee-control</a>, which I already have running on my eeepc. The result is really nice switching between internal and external outputs, which solved my problem perfectly.</p>
 <p><a href="http://webworxshop.com/?flattrss_redirect&amp;id=45&amp;md5=0360486af516ed5540381bba33ff5206" title="Flattr" target="_blank"><img src="http://blog.webworxshop.com/wp-content/plugins/flattrss/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://webworxshop.com/2009/02/12/screen-switching-on-the-eeepc/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=robconnolly&amp;popout=1&amp;url=http%3A%2F%2Fwebworxshop.com%2F2009%2F02%2F12%2Fscreen-switching-on-the-eeepc&amp;language=en_GB&amp;category=text&amp;title=Screen+switching+on+the+EeePC&amp;description=I+spend+a+lot+of+time+working+on+my+EeePC+901+using+it%26%238217%3Bs+external+monitor+support%2C+it%26%238217%3Bs+great%2C+I+have+this+little+netbook%2C+but+when+I+plug+it+in+to...&amp;tags=eeepc%2Cfoss%2Cscreen+resolution%2Cxrandr%2Cblog" type="text/html" />
	</item>
		<item>
		<title>PXE netinstalling for simpletons</title>
		<link>http://webworxshop.com/2009/02/09/pxe-netinstalling-for-simpletons</link>
		<comments>http://webworxshop.com/2009/02/09/pxe-netinstalling-for-simpletons#comments</comments>
		<pubDate>Mon, 09 Feb 2009 01:59:05 +0000</pubDate>
		<dc:creator>Rob Connolly</dc:creator>
				<category><![CDATA[Howtos]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[dhcp]]></category>
		<category><![CDATA[eeepc]]></category>
		<category><![CDATA[foss]]></category>
		<category><![CDATA[netboot]]></category>
		<category><![CDATA[pxe]]></category>
		<category><![CDATA[tftp]]></category>
		<category><![CDATA[virtual machine]]></category>
		<category><![CDATA[virtualbox]]></category>

		<guid isPermaLink="false">http://blog.webworxshop.com/?p=13</guid>
		<description><![CDATA[<p>Since posting this article I have found a <a href="/2009/06/24/even-easier-netboot-installation">much easier way to do this</a>. This article is still great background information and goes into more detail if you want to take this further, but you should consider reading my <a href="/2009/06/24/even-easier-netboot-installation">new article</a>.</p> <p>Well, I promised something technical and here it is. It&#8217;s turned into [...]]]></description>
			<content:encoded><![CDATA[<p><em>Since posting this article I have found a <a href="/2009/06/24/even-easier-netboot-installation">much easier way to do this</a>. This article is still great background information and goes into more detail if you want to take this further, but you should consider reading my <a href="/2009/06/24/even-easier-netboot-installation">new article</a>.</em></p>
<p>Well, I promised something technical and here it is. It&#8217;s turned into a bit of a mammoth post, but the end result is pretty cool!</p>
<p>The idea of being able to install your favourite Linux distro over the network and so do away with burning CD&#8217;s (which ultimately get used once and then thrown away) is tantalizing. Not to mention the serious geek points for anyone who has a boot server on their network.</p>
<p>I started out using <a href="http://ubuntu-tutorials.com/2007/10/11/how-to-configure-pxe-network-booting-on-ubuntu-for-network-based-installations/">this</a> article as a reference, as the process seemed relatively simple. However, I soon found out that this article wasn&#8217;t strictly accurate and didn&#8217;t explain some things too brilliantly! So I decided to see if I could do better.</p>
<p>The following is my account of setting up my own boot server on a spare box I had lying around (though you can just as easily do it on your main computer). I started from a base install of Ubuntu Server 8.10 (Intrepid Ibex) which I installed in the normal way (i.e. from a CD).<span id="more-13"></span></p>
<p><strong>Prerequisites</strong></p>
<p>Once my server was up and running and I could ssh into it, the fun really started. The article I linked to above tells you what you need, namely:</p>
<ol>
<li>A dhcp server (sudo apt-get install dhcp3-server)</li>
<li>An Ubuntu CD image (the alternate CD not the live CD one, though presumably the server version works too).</li>
<li>A TFTP server (more on this below)</li>
<li>A web server, such as apache (sudo apt-get install apache2)</li>
</ol>
<p>Out of those, only the TFTP server caused me problems, I dutifully installed the suggested package (tftpd), only to find much later that it didn&#8217;t support one of the options needed by the bootloader.  To avoid this use the tftpd-hpa package instead (sudo apt-get install tftpd-hpa).</p>
<p><strong>What happens&#8230;</strong></p>
<p>At this stage, it might help if I run through the actual netbooting process as this will give you a general understanding of what we need to configure:</p>
<ol>
<li>When you choose the netboot option on the machine you want to boot (usually in the boot order settings in the bios), the bios will run a small program stored in on the motherboard (PXE-ROM). This program is essentially a DHCP client, which sends out broadcasts on the network looking for someone to provide it with an IP address and information on what to do next.</li>
<li>The DHCP server on your network respond to the broadcast and dishes out an IP address to the client. It also passes it the IP address of a boot server and the name of the bootloader file to request.</li>
<li>The client contacts the boot server (which can actually be the same machine as the DHCP server) and requests the bootloader file and executes it.</li>
<li>The bootloader loads it&#8217;s configuration from the server and displays a menu of the boot options.</li>
<li>When the user selects an option, the bootloader requests the kernel and initrd images from the server and boots the kernel.</li>
</ol>
<p>Our kernel will run the Ubuntu installer so that we can install an Ubuntu system on the client machine, but to get the packages we will use apache to serve them out for us across the network.</p>
<p><strong>Let&#8217;s get down to it</strong></p>
<p>OK, let&#8217;s configure some stuff, first up is the DHCP server. Here&#8217;s my configuration:</p>
<p><code>default-lease-time 600;<br />
max-lease-time 7200;<br />
option subnet-mask 255.255.255.0;<br />
option broadcast-address 192.168.1.255;<br />
option routers 192.168.1.3;<br />
option domain-name-servers &lt;ns1&gt;, &lt;ns2&gt;;<br />
option domain-name "mydomain.com";<br />
subnet 192.168.1.0 netmask 255.255.255.0 {<br />
range 192.168.1.2 192.168.1.51;<br />
}<br />
next-server 192.168.1.5;<br />
filename "pxelinux.0";</code></p>
<p>This goes in /etc/dhcp3/dhcpd.conf (sudo nano /etc/dhcp3/dhcpd.conf). I&#8217;m actually only going to expalin the last two lines (the rest is pretty standard DHCP stuff which you can find out about <a href="https://help.ubuntu.com/7.04/server/C/dhcp.html">somewhere else</a>. The last two lines are expalined below:</p>
<ol>
<li>next-server 192.168.1.5; &#8211; gives the client the address of your boot server, in most cases this will be the same as your DHCP server address (I&#8217;m running all this on my one server box). Change the address to the address of the machine you want to use.</li>
<li>filename &#8220;pxelinux.0&#8243;; &#8211; the bootloader file to use, just leave this as it is.</li>
</ol>
<p>Once you&#8217;ve done that, restart the DHCP server with &#8216;sudo /etc/init.d/dhcp3-server restart&#8217;. Also if you&#8217;re running a commercial (wireless) router, you&#8217;ll need to disable the DHCP server on the router from it&#8217;s control panel.</p>
<p><strong>TFTP or not TFTP</strong></p>
<p>The TFTP server needs very little configuration. All I did was create directory in the root of my filesystem to serve from:</p>
<p><code>sudo mkdir /tftpboot</code></p>
<p>Then you just need to make sure that tftpd serves from that directory (I spent ages wondering why mine wasn&#8217;t working because of this!), by changing the ftpd line in /etc/inetd.conf to:</p>
<p><code>tftp           dgram   udp     wait    root  /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /tftpboot</code></p>
<p>(I basically changed the path at the end). Then restart the inetd service (sudo /etc/init.d/openbsd-inetd restart).</p>
<p><strong>Serving the iso files from Apache<br />
</strong></p>
<p>Now we&#8217;re going to copy everything out of the iso image to somewhere that Apache can find it:</p>
<p><code>sudo mkdir -p /var/www/netinstall/ubuntu8.10-alternate<br />
sudo mount -o loop ubuntu-8.10-alternate.iso /mnt<br />
sudo cp -a /mnt/* /var/www/netinstall/ubuntu8.10-alternate/<br />
sudo umount /mnt</code></p>
<p>First, we made the required directories to serve our files from. Structuring the directories like this allows us to serve other versions out from the same server if we want to. Secondly, we mounted the iso file on the /mnt directory, then we copied all the files from that to our server directory and finally unmounted the iso image.</p>
<p>If you now go to http://&lt;serveraddress&gt;/netinstall/ubuntu8.10-alternate, you should see a listing of the files that were on the CD. That was easy, let&#8217;s move on.</p>
<p><strong>The elusive pxelinux.0</strong></p>
<p>You should recognise &#8216;pxelinux.o&#8217; from the filename perameter in the DHCP config above, this is the bootloader that loads our kernel. Unfortunately, I couldn&#8217;t find it (and the other article gave me no clue!).  I eventually found it in the files I copied from the iso (I&#8217;ve since learned that you can also get it from the &#8216;syslinux&#8217; package). To copy it to the correct place use:</p>
<p><code>sudo cp /var/www/netinstall/ubuntu8.10-alternate/install/netboot/pxelinux.0 /tftpboot/</code></p>
<p>Next we need a kernel and initrd image we&#8217;ll also get these from the files we just copied:</p>
<p><code>sudo mkdir /tftpboot/ubuntu8.10-alternate<br />
sudo cp /var/www/net</code><code>install</code><code>/ubuntu8.10-alternate/install/netboot/ubuntu-installer/i386/linux /tftpboot/ubuntu8.10-alternate/<br />
sudo cp /var/www/net</code><code>install</code><code>/ubuntu8.10-alternate/install/netboot/ubuntu-installer/i386/initrd.gz /tftpboot/ubuntu8.10-alternate/</code></p>
<p>Now we need to configure pxelinux to find our kernel, the configuration goes in /tftpboot/pxelinux.cfg/default:</p>
<p><code>default 1<br />
timeout 200<br />
prompt 1<br />
display pxelinux.cfg/msgs/boot.msg<br />
# begin list of available boot options<br />
# Local hard disk boot<br />
label 1<br />
localboot 0<br />
# Ubuntu 8.10 Alternate install CD<br />
label 2<br />
kernel ubuntu8.10-alternate/linux<br />
append initrd=ubuntu8.10-alternate/initrd.gz</code></p>
<p>The first two lines select the default boot entry (see below) to use and give us a timeout of 20 seconds after which that option will be selected (the timout value is measure in tenths of a second). The next two display a menu of the available kernels (which goes in /tftpboot/pxelinux.cfg/msgs/boot.msg).</p>
<p>Next we have our boot entries. Each of  these have a label line which enables us to identify the listing later. The first listing just has a directive telling pxelinux to boot from the local hard disk. As this option is selected as the default (above) the computer will attempt to boot from it&#8217;s hard disk once the timout has occured.</p>
<p>The second listing is more interesting, we have the kernel directive with the path relative to the /tftpboot/ directory, this tells  pxelinux what kernel should be booted if this option is selected (duh!). We have the append line, which adds options to the kernel, in this case we tell it to use our initrd  image, but you can add any valid kernel option. Obviously this file can have as many listing as you want to give boot options, there&#8217;s also support for multiple different menu&#8217;s and help screen, but I&#8217;m keeping it at this for now.</p>
<p>OK, now all we need is our display message. I put mine in the msgs directory (mkdir /tftpboot/pxelinux.o/msgs) and put this in the  file  (boot.msg):</p>
<p><code>^Y^L                  ^O0fNETWORK BOOT OPTIONS^O07<br />
Select one of the options below, or press enter for the default:<br />
1 - Local Hard disk boot [Default]<br />
2 - Install Ubuntu 8.10 'Intrepid Ibex'<br />
NB: Default will be selected after 20 seconds</code></p>
<p>That&#8217;s it! Just make sure the bit before the hyphen matches the label field we used above, so that the user knows what to type at the prompt. The funny characters in the file correspond to specially interpreted charaters for clearing the screen, etc. I just copied them from another file!</p>
<p><strong>Booting Clients</strong></p>
<p>The first client I tried to boot was my ASUS EeePC 901. I succesfully configured the bios to boot from the network and got to the menu screen. Booting the Ubuntu kernel worked and I was able to get into the installer, however a few steps in it told me that my ethernet adaptor was unsupported so it was unable to get packages for installation. Apparently, the next version of Ubuntu (Jaunty) is going to have the driver included by default in it&#8217;s kernel, so maybe that&#8217;ll work (I&#8217;ll try it at some point and report back).</p>
<p>Next I decided it would be cool to try and boot a virtual machine from my network. Having done some research I found that if I used VirtualBox with host networking I should be able to get an IP address from my network (rather than VirtualBox&#8217;s build in DHCP) and so boot from the network. I currently had the Open Source edition of VirtualBox installed, which is an older version (2.04) which doesn&#8217;t support host based networking without a lot of fiddling around.</p>
<p>I decided to take the easy way out and upgraded to version 2.1 via the <a href="http://www.virtualbox.org/wiki/Linux_Downloads">VirtualBox repository</a>. Once this was installed I was able to select &#8216;Host Network Interface&#8217; in the virtual machine network settings and then select eth0 as my interface. In the advanced settings I set network as the first boot device and then booted the machine:</p>
<div id="attachment_27" class="wp-caption aligncenter" style="width: 742px"><a href="http://blog.webworxshop.com/wp-content/uploads/2009/02/screenshot2.png"><img class="size-full wp-image-27" title="Network boot screen" src="http://blog.webworxshop.com/wp-content/uploads/2009/02/screenshot2.png" alt="Network boot screen, as seen in VirtualBox" width="732" height="477" /><br />
</a><p class="wp-caption-text">Network boot screen, as seen in VirtualBox</p></div>
<p>As  you can see from the screenshot, this worked just fine, as did proceeding to the installer. When I reached the step in the install which asked me to select a mirror I scrolled up and selected &#8221;. On the next few screens I had to enter information about the server I was using, namely the IP address (192.168.1.5) and the path to the repository (/netinstall/ubuntu8.10-alternate/). See the screenshots below for details:</p>
<div id="attachment_28" class="wp-caption aligncenter" style="width: 656px"><a href="http://blog.webworxshop.com/wp-content/uploads/2009/02/screenshot-1.png"><img class="size-full wp-image-28" title="Repository selection" src="http://blog.webworxshop.com/wp-content/uploads/2009/02/screenshot-1.png" alt="Select 'enter information manually' on the repository selection screen." width="646" height="555" /></a><p class="wp-caption-text">Select &#39;enter information manually&#39; on the repository selection screen.</p></div>
<div id="attachment_29" class="wp-caption aligncenter" style="width: 658px"><a href="http://blog.webworxshop.com/wp-content/uploads/2009/02/screenshot-2.png"><img class="size-full wp-image-29" title="Enter server IP" src="http://blog.webworxshop.com/wp-content/uploads/2009/02/screenshot-2.png" alt="Enter the IP address of the webserver where you copied the files from the ISO" width="648" height="559" /></a><p class="wp-caption-text">Enter the IP address of the webserver where you copied the files from the ISO</p></div>
<div id="attachment_30" class="wp-caption aligncenter" style="width: 659px"><a href="http://blog.webworxshop.com/wp-content/uploads/2009/02/screenshot-3.png"><img class="size-full wp-image-30" title="Enter correct directory" src="http://blog.webworxshop.com/wp-content/uploads/2009/02/screenshot-3.png" alt="Enther the path of the directory which you copied the files to, relative to the web server root." width="649" height="558" /></a><p class="wp-caption-text">Enther the path of the directory which you copied the files to, relative to the web server root.</p></div>
<p>The rest of the install proceeded just fine, with the packages being retrieved and installed from the network. I ended up with a functional desktop system (in a virtual machine) just as I would get if I had used a CD.</p>
<p><strong>Next Steps&#8230;</strong></p>
<p>Wow, that turned out to be pretty long. Hopefully you&#8217;ve made it this far and I&#8217;ve managed to help you get to grips with this. I still have a few things I want to try to setup with this and I&#8217;ll report back if I make any progress:</p>
<ul>
<li>It would be really great to have <a href="http://clonezilla.org/">Clonezilla</a> and/or some kind of rescue toolkit distribution available for booting over the network, that way I can just plug in a machine and boot up whatever I need.</li>
<li>I eventually want to have a go at making a completely diskless system, which doesn&#8217;t look that difficult as I seem to have done most of the work. Ideally it would be nice to be able to install/design a system in a virtual machine on my desktop and then deploy it across the network when it&#8217;s ready!</li>
</ul>
<p>I hope you&#8217;ve enjoyed this How-To and have found it informative, if you have any problems, corrections or just want to say thanks, feel free to post a comment. Bye for now!</p>
 <p><a href="http://webworxshop.com/?flattrss_redirect&amp;id=13&amp;md5=f8bd486e6a9ef0efcfe77a118c2c6ec6" title="Flattr" target="_blank"><img src="http://blog.webworxshop.com/wp-content/plugins/flattrss/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://webworxshop.com/2009/02/09/pxe-netinstalling-for-simpletons/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=robconnolly&amp;popout=1&amp;url=http%3A%2F%2Fwebworxshop.com%2F2009%2F02%2F09%2Fpxe-netinstalling-for-simpletons&amp;language=en_GB&amp;category=text&amp;title=PXE+netinstalling+for+simpletons&amp;description=Since+posting+this+article+I+have+found+a+much+easier+way+to+do+this.+This+article+is+still+great+background+information+and+goes+into+more+detail+if+you+want+to...&amp;tags=apache%2Cdhcp%2Ceeepc%2Cfoss%2Cnetboot%2Cpxe%2Ctftp%2Cvirtual+machine%2Cvirtualbox%2Cblog" type="text/html" />
	</item>
	</channel>
</rss>

