<?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>Ivan Zlatev &#187; HowTo</title>
	<atom:link href="http://ivanz.com/tag/howto/feed/" rel="self" type="application/rss+xml" />
	<link>http://ivanz.com</link>
	<description></description>
	<lastBuildDate>Sat, 05 Jun 2010 16:19:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>HowTo Disable the Unsigned Security Warnings on Windows Mobile</title>
		<link>http://ivanz.com/2009/08/15/howto-disable-the-unsigned-security-warnings-on-windows-mobile/</link>
		<comments>http://ivanz.com/2009/08/15/howto-disable-the-unsigned-security-warnings-on-windows-mobile/#comments</comments>
		<pubDate>Sat, 15 Aug 2009 20:54:05 +0000</pubDate>
		<dc:creator>Ivan Zlatev</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[.NET CF]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://i-nz.net/?p=674</guid>
		<description><![CDATA[The security warnings when deploying unsigned applications from Visual Studio to a real Windows Mobile device can get very annoying. Thankfully they can be disabled with a hack and here is how. Using the Remote Registry Editor supplied with Visual Studio and with the Windows Mobile SDK installed change the following key value from 0 [...]]]></description>
			<content:encoded><![CDATA[<p>The security warnings when deploying unsigned applications from Visual Studio to a real Windows Mobile device can get very annoying. Thankfully they can be disabled with a hack and here is how.</p>
<p>Using the Remote Registry Editor supplied with Visual Studio and with the Windows Mobile SDK installed change the following key value from 0 to 1 (and vise-versa to reset the change)</p>
<pre><code>HKEY_LOCAL_MACHINE\Security\Policies\Policies\0000101a = 1</code></pre>
<p>That&#8217;s it.</p>
]]></content:encoded>
			<wfw:commentRss>http://ivanz.com/2009/08/15/howto-disable-the-unsigned-security-warnings-on-windows-mobile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multiple Network Connections at the Same Time on Windows</title>
		<link>http://ivanz.com/2009/07/08/multiple-network-connections-at-the-same-time-on-windows/</link>
		<comments>http://ivanz.com/2009/07/08/multiple-network-connections-at-the-same-time-on-windows/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 02:32:00 +0000</pubDate>
		<dc:creator>Ivan Zlatev</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://i-nz.net/?p=598</guid>
		<description><![CDATA[In my scenario I have one Wireless connection for my Internet and one LAN connection to a small private network of my own with my NAS, PS3 and TV and I want to have them both at the same time. It was a major pain to get this setup working on Windows. When I had [...]]]></description>
			<content:encoded><![CDATA[<p>In my scenario I have one Wireless connection for my Internet and one LAN connection to a small private network of my own with my NAS, PS3 and TV and I want to have them both at the same time. It was a major pain to get this setup working on Windows. When I had both connections enabled my Internet wasn&#8217;t working because Windows was routing through the LAN connection even though the Wireless connection had a higher priority set in <em>Network Connections</em> &#8211;&gt; <em>Advanced</em> menu &#8211;&gt; <em>Advanced settings.</em></p>
<p>The solution is to go into the <em>Properties </em>of each connection (right click on it) &#8211;&gt; select <em>Internet Protocol (TCP/IP) </em>&#8211;&gt; click <em>Properties </em>-&gt; click <em>Advanced </em>&#8211;&gt; uncheck <em>Automatic metric </em>in the bottom and set a number between 1 and 9999 where the smaller the number the higher the connection priority. I have set my Wireless Internet connection to 1 and my LAN connection to 9999 and that works.</p>
<p>I hope this post will save someone else&#8217;s precious time in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://ivanz.com/2009/07/08/multiple-network-connections-at-the-same-time-on-windows/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Resize a VirtualBox Virtual Disk HowTo</title>
		<link>http://ivanz.com/2009/04/30/resize-a-virtualbox-virtual-disk-howto/</link>
		<comments>http://ivanz.com/2009/04/30/resize-a-virtualbox-virtual-disk-howto/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 21:58:42 +0000</pubDate>
		<dc:creator>Ivan Zlatev</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[VirtualBox]]></category>

		<guid isPermaLink="false">http://i-nz.net/?p=498</guid>
		<description><![CDATA[It is not possible to increase the maximum virtual size of a VirtualBox VDI HDD once it is created. The only way I found to do it is to create a new larger VirtualBox HDD and use GParted to copy the old one to the new one. The steps to do that are: 1. Create [...]]]></description>
			<content:encoded><![CDATA[<p>It is not possible to increase the maximum virtual size of a VirtualBox VDI HDD once it is created. The only way I found to do it is to create a new larger VirtualBox HDD and use GParted to copy the old one to the new one. The steps to do that are:</p>
<p>1. Create a new VirtualBox HDD with the desired size and add it as a secondary HDD (Primary Slave) in the Virtual Machine HDD settings.</p>
<p>2. Download the GParted LiveCD and boot from it inside the Guest &#8211; <a href="http://gparted.sourceforge.net/">http://gparted.sourceforge.net/</a></p>
<p>3. Right click on the partitions of the original HDD in GParted and click &#8220;<em>Copy</em>&#8220;. Select the second HDD and &#8220;Paste&#8221;.  This will ask to create a &#8220;<em>msdos</em>&#8221; partition table first so click <em>&#8220;OK&#8221; </em>and &#8220;<em>Paste</em>&#8221; again. Adjust partition sizes as you wish and hit &#8220;<em>Apply</em>&#8220;.</p>
<p>4. Mark the new partition as bootable in right click -&gt; &#8220;<em>Manage Flags</em>&#8221; -&gt; tick &#8220;<em>boot</em>&#8220;. Once done shutdown the VM and release the gparted Live CD.</p>
<p>5. Because the HDD characteristics have changed you might not be able to boot at this point. Insert the Windows/Linux OS installation CD/DVD and run in repair mode. For Windows this would be the recovery console and the &#8220;<em>fixboot c:</em>&#8221; or fixmbr commands. On Linux just reinstall the boot loader.</p>
<p>That&#8217;s it. It&#8217;s not very convenient doing this but at least it works.</p>
<p>P.S: If you get an error &#8220;FATAL: INT18 Boot Failure&#8221; you have forgotten to mark the new partition as bootable.</p>
]]></content:encoded>
			<wfw:commentRss>http://ivanz.com/2009/04/30/resize-a-virtualbox-virtual-disk-howto/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Git automatic smart ChangeLog merging</title>
		<link>http://ivanz.com/2009/03/19/git-automatic-smart-changelog-merging/</link>
		<comments>http://ivanz.com/2009/03/19/git-automatic-smart-changelog-merging/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 21:29:36 +0000</pubDate>
		<dc:creator>Ivan Zlatev</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[HowTo]]></category>

		<guid isPermaLink="false">http://i-nz.net/?p=323</guid>
		<description><![CDATA[This might be old news for some, but there is a merge driver for Git that can automatically perform smart merges of ChangeLogs. I&#8217;ve used it for months now and it has always worked flawlessly. 1) Install git-merge-changelog which is part of gnulib . For openSUSE you can use my repository at http://download.opensuse.org/repositories/home:/i-nZ/ 2) Make [...]]]></description>
			<content:encoded><![CDATA[<p>This might be old news for some, but there is a merge driver for Git that can automatically perform smart merges of ChangeLogs. I&#8217;ve used it for months now and it has always worked flawlessly.</p>
<p>1) Install <em>git-merge-changelog</em> which is part of <a href="http://www.gnu.org/software/gnulib/"><em>gnulib</em></a> . For openSUSE you can use my repository at <a href="http://download.opensuse.org/repositories/home:/i-nZ/">http://download.opensuse.org/repositories/home:/i-nZ/</a></p>
<p>2) Make Git aware of it by adding the following to your <em>~/.gitconfig</em></p>
<pre>[merge "merge-changelog"]
name = GNU-style ChangeLog merge driver
driver = /usr/bin/git-merge-changelog %O %A %B</pre>
<p>3) For each repository where you want to use this driver make Git aware of it by adding to <em>$GIT_REPO/.git/info/attributes</em> the following (create the file if it doesn&#8217;t exist):</p>
<pre>ChangeLog    merge=merge-changelog</pre>
<p>That&#8217;s it! Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://ivanz.com/2009/03/19/git-automatic-smart-changelog-merging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Selective import of SVN branches into a git/git-svn repository</title>
		<link>http://ivanz.com/2009/01/15/selective-import-of-svn-branches-into-a-gitgit-svn-repository/</link>
		<comments>http://ivanz.com/2009/01/15/selective-import-of-svn-branches-into-a-gitgit-svn-repository/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 20:16:39 +0000</pubDate>
		<dc:creator>Ivan Zlatev</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Mono]]></category>

		<guid isPermaLink="false">http://i-nz.net/?p=279</guid>
		<description><![CDATA[Use Case You are using Git and git-svn on a big project which has lots of branches and tags but you only need to work with a small selection of those and you don&#8217;t want to import all of the rest. Import an individual SVN branch 1) Define the new branch in .git/config : [svn-remote [...]]]></description>
			<content:encoded><![CDATA[<h3>Use Case</h3>
<p>You are using Git and git-svn on a big project which has lots of branches and tags but you only need to work with a small selection of those and you don&#8217;t want to import all of the rest.</p>
<h3>Import an individual SVN branch</h3>
<p>1) Define the new branch in <em>.git/config</em> :</p>
<pre>[svn-remote "release-branch"]
        url = svn+ssh://xxxx@mono-cvs.ximian.com/source/branches/mono-2-2/mcs
        fetch = :refs/remotes/git-svn-release-branch</pre>
<p>2) Import the SVN branch. SVN_BRANCHED_REVISION is the the revision when the branch happened in SVN.</p>
<pre>[~]$ git svn fetch release-branch -r SVN_BRANCHED_REVISION</pre>
<p>3) Hook up a local Git branch to the remote branch:</p>
<pre>[~]$ git branch --track release git-svn-release-branch</pre>
<p>5) Checkout and update</p>
<pre>[~]$ git checkout release
[~]$ git svn rebase</pre>
<p>Done!</p>
<h3>Delete the branch checkout</h3>
<p>The following command sequence will delete (locally only) the SVN branch and its history:</p>
<pre>[~]$ git branch -D release
[~]$ git branch -D -r git-svn-release-branch
[~]$ rm -rf .git/svn/git-svn-release-branch
[~]$ git gc</pre>
<h3>Now what?</h3>
<p>Well, for starters given that you are ready to commit something to trunk and you also want to &#8220;backport&#8221; to the release branch you just have to do:</p>
<pre>[~]$ git svn dcommit
[~]$ git checkout release &amp;&amp; git svn rebase
[~]$ git cherry-pick master &amp;&amp; git svn dcommit
[~]$ git checkout master</pre>
]]></content:encoded>
			<wfw:commentRss>http://ivanz.com/2009/01/15/selective-import-of-svn-branches-into-a-gitgit-svn-repository/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Nokia E71 as a USB or Bluetooth 3G Data Modem on Linux</title>
		<link>http://ivanz.com/2008/09/18/nokia-e71-as-a-usb-or-bluetooth-3g-data-modem-on-linux/</link>
		<comments>http://ivanz.com/2008/09/18/nokia-e71-as-a-usb-or-bluetooth-3g-data-modem-on-linux/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 13:23:12 +0000</pubDate>
		<dc:creator>Ivan Zlatev</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Nokia]]></category>
		<category><![CDATA[wvdial]]></category>

		<guid isPermaLink="false">http://i-nz.net/?p=197</guid>
		<description><![CDATA[1.) Install wvdial 2.) Add the following to /etc/wvdial.conf and adjust it for your operator settings: [Dialer nokia-usb] Modem = /dev/ttyACM0 Baud = 3600000 Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &#38;C1 &#38;D2 Init3 = Modem Type = USB Modem Area Code = Phone = *99# Username = ppp Password = ppp Ask [...]]]></description>
			<content:encoded><![CDATA[<p>1.) Install <em>wvdial</em><br />
2.) Add the following to <em>/etc/wvdial.conf</em> and adjust it for your operator settings:</p>
<pre style="padding-left: 60px;"><code>[Dialer nokia-usb]
Modem = /dev/ttyACM0
Baud = 3600000
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &amp;C1 &amp;D2
Init3 =
Modem Type = USB Modem
Area Code =
Phone = *99#
Username = ppp
Password = ppp
Ask Password = 0
Dial Command = ATDT
Stupid Mode = 1
Compuserve = 0
Force Address =
Idle Seconds = 0
DialMessage1 =
DialMessage2 =
ISDN = 0
Auto DNS = 1
New PPPD = yes

[Dialer nokia-bluetooth]
Modem = /dev/rfcomm0
Baud = 3600000
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &amp;C1 &amp;D2
Init3 =
Area Code =
Phone = *99#
Username = ppp
Password = ppp
Ask Password = 0
Dial Command = ATDT
Stupid Mode = 1
Compuserve = 0
Force Address =
Idle Seconds = 0
DialMessage1 =
DialMessage2 =
ISDN = 0
Auto DNS = 1
New PPPD = yes</code></pre>
<p>3.) For USB when you connect the phone <strong><span style="text-decoration: underline;">set it to &#8220;PC Suite&#8221; mode</span> </strong>(else the modem won&#8217;t appear) and then:</p>
<pre style="padding-left: 60px;">su -c "wvdial nokia-usb"</pre>
<p>4.) For Bluetooth, where ### is the Bluetooth Address of you phone</p>
<pre style="padding-left: 60px;">su -c "rfcomm release 0; rfcomm bind 0 ### `sdptool search \
--bdaddr=### dun | grep -i Channel | cut -c14-14` &amp;&amp; wvdial nokia-bluetooth"</pre>
<p>5.) Workaround for broken newer versions of NetworkManager where the DNS won&#8217;t be set properly can be found at <a href="http://seife.kernalert.de/blog/2008/12/11/using-dialup-with-111-if-networkmanager-does-not-handle-your-device/">http://seife.kernalert.de/blog/2008/12/11/using-dialup-with-111-if-networkmanager-does-not-handle-your-device/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ivanz.com/2008/09/18/nokia-e71-as-a-usb-or-bluetooth-3g-data-modem-on-linux/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>Apple Mac Triple Boot HowTo</title>
		<link>http://ivanz.com/2007/05/14/apple-mac-triple-boot-howto/</link>
		<comments>http://ivanz.com/2007/05/14/apple-mac-triple-boot-howto/#comments</comments>
		<pubDate>Mon, 14 May 2007 18:26:49 +0000</pubDate>
		<dc:creator>Ivan Zlatev</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[HowTo]]></category>

		<guid isPermaLink="false">http://i-nz.net/2007/05/14/apple-mac-tripple-boot-howto/</guid>
		<description><![CDATA[Introduction In this HowTo I will cover how to configure a triple boot Apple Mac machine to boot openSUSE, Windows Vista and Mac OS X. The Problems Apple Macs are EFI systems and as such they do not have BIOS. Even though EFI does support the standard partition scheme (MBR), Apple is using the added [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong></p>
<p>In this HowTo I will cover how to configure a triple boot Apple Mac machine to boot openSUSE, Windows Vista and Mac OS X.</p>
<p><strong>The Problems</strong></p>
<p>Apple Macs are <a href="http://en.wikipedia.org/wiki/Extensible_Firmware_Interface" target="_blank">EFI</a> systems and as such they do not have BIOS. Even though EFI does support the standard partition scheme (<a href="http://en.wikipedia.org/wiki/Master_boot_record" target="_blank">MBR</a>), Apple is using the added support for a GUID partition table (<a href="http://en.wikipedia.org/wiki/GUID_Partition_Table" target="_blank">GPT</a>). GPT has a limit of 4 partitions and 1 is already used.</p>
<p>Linux supports the GPT and can boot by using <a href="http://elilo.sf.net" target="_blank">elilo</a> as a bootloader. However the lack of BIOS will not allow the video card drivers to operate properly.</p>
<p>Windows doesn&#8217;t support GPT.</p>
<p><strong>The Solutions</strong></p>
<p><span style="text-decoration: underline;">Video</span></p>
<p>Apple has updated the firmware to allow emulation of BIOS for its <a href="http://www.apple.com/macosx/bootcamp/" target="_blank">Boot Camp</a> tool to work. It should be noted that while Boot Camp offers an easy way to set up a dual boot Windows/OS X machine it does not come in handy for the purpose of this HowTo.</p>
<p><span style="text-decoration: underline;">Partitioning</span></p>
<p>While GPT is a new scheme, it doesn&#8217;t fully replace the MBR, but rather keeps it in the beginning for compatibility reasons. Fortunately one can abuse that and create a MBR partitioning table to match the GPT one. It is very important that the MBR partioning table is kept in sync with the GPT one, because else it will provide false information for the actual physical layout to the software reading it.</p>
<p>Since there are only 3 free GPT partition table slots one can install the three OSes. Linux works just fine with swap on a file in /.</p>
<p><span style="text-decoration: underline;">Booting and MBR/GPT syncing</span></p>
<p>There is an awesome tool available called <a href="http://refit.sourceforge.net/" target="_blank">rEFIt</a>. It includes is not only a boot loader, but also has a built in MBR/GPT partition synchronization tool. It automatically recognizes bootable OSes by scanning the partitions (also scans external devices).</p>
<p><strong>The HowTo</strong></p>
<p><span style="text-decoration: underline;">Partitioning</span></p>
<p>Boot from your Mac OS X CD 1 and use Disk Utility from the menu on top to create one partition for Mac OS X, one Unix type partition and one FAT32 type partition. It appears that <span style="text-decoration: underline;">it is crucial to have the Windows partition as the last one</span>, else Vista will complain and won&#8217;t even install and Windows XP will install, but will throw missing hal.dll error and won&#8217;t boot.</p>
<p><span style="text-decoration: underline;">Install Mac OS X</span></p>
<p>Install Mac OS X and update it to the latest version. Reboot  and install rEFIt. Reboot and use the sync tool (called &#8220;Partition Tool&#8221; in the menu) in the rEFIt menu to sync MBR to GPT.</p>
<p><span style="text-decoration: underline;">Install Windows Vista (setup NTFS partition)<br />
</span></p>
<p>In Vista&#8217;s setup select the FAT32 partition, format it and install there. After the first reboot during the installation use rEFIt sync tool again. This is just to get the NTFS partition in place. Do not finish off the installation now, but rather procceed to the Linux installation. Windows won&#8217;t be able to boot after the sync anyway.</p>
<p><span style="text-decoration: underline;">Install Linux (openSUSE)</span></p>
<p>Crucial elements during the installation of openSUSE before the first reboot:</p>
<ul>
<li>Install Linux (yes, everything) on the single UNIX type partition. Use custom partitioning to format the UNIX type partition to ext3 and set mount point to /. Do not create a swap partition and do not even think about resizing partitions.</li>
<li>Set the boot loader to LILO, because GRUB will fail to install.</li>
<li>Install the boot loader in the boot record for the partition. REFIt can boot it fine and also the master boot record will be free for Windows later on.</li>
<li>Remove the Windows entry from the lilo menu, because it causes LILO&#8217;s installation to fail.</li>
</ul>
<p>Unfortunatly for unknown reasons to me after the first reboot during the installation the MBR partitioning table will be gone, so one has to use rEFIt to resync GPT and MBR. This of course will break lilo&#8217;s previous setup, so we have to reinstall it before continuing the installation. This can be done by boot from the openSUSE cd/dvd again and once the setup has loaded Ctrl + Fx to a terminal. From that point on we have to mount the partition where we have Linux installed and rerun lilo:</p>
<pre><code>mkdir /media/suse;
mount /dev/sda3 /media/suse
mount --bind /dev /media/suse/dev
chroot /media/suse
lilo -v</code></pre>
<p>Reboot and resync GPT/MBR once more (so that rEFIT sets proper partition types) and then reboot for the last time. You should see OS X, Windows (won&#8217;t boot) and Linux icons in the rEFIt menu now. Select the Linux one and finish your openSUSE installation.</p>
<p><span style="text-decoration: underline;">Install Windows Vista</span></p>
<p>Run the Windows Vista installation from the start (again by formatting the partition) to end now. Do not sync MBR/GPT after!</p>
<p><strong>Additional Notes</strong></p>
<p><span style="text-decoration: underline;">parted, fdisk, Boot Camp<br />
</span></p>
<p>Do not use <em>parted</em> nor <em>fdisk</em> once you have a working system. I have had very bad experiences with both of those. As bad as in missing GPT and/or MBR partition table after. Do not use Boot Camp as well.</p>
<p><span style="text-decoration: underline;">Linux swap on a file</span></p>
<p>It works fine and can be done as follows. Example sets 2gb swap.</p>
<pre><code>dd if=/dev/zero of=/swap bs=1024 count=2097152
mkswap /swap
swapon /swap
echo "/swap swap swap pri=1 0 0" &gt;&gt; /etc/fstab</code></pre>
<p><span style="text-decoration: underline;">Linux Built-in iSight WebCam Driver</span></p>
<p><a href="http://ivanz.com/projects/linux-kernel/" target="_blank">Here</a> or possibly supplied by your distribution of choice as uvcvideo patched with my isight patch.</p>
<p><span style="text-decoration: underline;">Apple Mac Windows Driver CD iso</span></p>
<p>After installing Boot Camp the driver cd image is here: /Applications/Utilities/Boot Camp Assistant.app/Contents/Resources/DiskImage.dmg.</p>
<p><strong>Have fun!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://ivanz.com/2007/05/14/apple-mac-triple-boot-howto/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>openSUSE 10.2 Network Boot and Installation HOWTO</title>
		<link>http://ivanz.com/2007/01/31/opensuse-102-network-boot-and-installation-howto/</link>
		<comments>http://ivanz.com/2007/01/31/opensuse-102-network-boot-and-installation-howto/#comments</comments>
		<pubDate>Wed, 31 Jan 2007 01:13:06 +0000</pubDate>
		<dc:creator>Ivan Zlatev</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[openSUSE]]></category>

		<guid isPermaLink="false">http://i-nz.net/2007/01/31/opensuse-102-network-boot-and-installation-howto/</guid>
		<description><![CDATA[Introduction The Preboot Execution Environment (in short PXE) is a protocol that enables a computer to be booted on the network. PXE is saved in ROM on newer network cards and, depending on the boot sequence configured in the computer&#8217;s BIOS, loaded and executed after turning on the computer. This HOWTO describes how to setup [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong></p>
<p>The <strong>P</strong>reboot E<strong>x</strong>ecution <strong>E</strong>nvironment (in short PXE) is a protocol that enables a computer to be booted on the network. PXE is saved in ROM on newer network cards and, depending on the boot sequence configured in the computer&#8217;s BIOS, loaded and executed after turning on the computer.</p>
<p>This HOWTO describes how to setup an openSUSE 10.2 machine to act as a network boot and install server. I have used this method to install openSUSE 10.2 on my Tablet PC (Toshiba Portege M200).</p>
<p>The plan is to have a DHCP server assigning IPs, TFTP server for PXELINUX to be loaded (to load the openSUSE installer) and an NFS share to supply the installation files.</p>
<p><strong>Prerequests</strong></p>
<ul>
<li>PXE boot capable machine</li>
<li> Packages &#8211; all of them can be found on the DVD or in the main openSUSE repository.
<ul>
<li>dhcp-server &#8211; to automatically asign IPs.</li>
<li>tftp &#8211; to share the boot image</li>
<li>syslinux &#8211; to supply the boot image (pxelinux.0)</li>
<li>yast2-tftp-server &#8211; Graphical configurator for a TFTP server</li>
<li>yast2-dhcp-server &#8211; Graphical configurator for a DHCP server</li>
<li>yast2-nfs-server &#8211; Graphical configurator for a NFS server.</li>
</ul>
</li>
<li>A network cable</li>
<li>openSUSE 10.2 DVD</li>
</ul>
<p>All of the graphical configurators used in this HOWTO can be found in Yast2 in the Network Services section.</p>
<p>[[Image:software/suse-netboot-screens/yast2-network-services.png|center|640|480]]</p>
<p><strong>Network Interface Setup</strong></p>
<p>For the purpose of this HOWTO I will set and use the IP 192.168.69.1 for the network interface. This can be configured in Yast in the Network Devices section using the Network Card configurator.</p>
<p>[[Image:software/suse-netboot-screens/card-setup-1.png|center|640|480]]</p>
<p>[[Image:software/suse-netboot-screens/card-setup-2.png|center|640|480]]</p>
<p>[[Image:software/suse-netboot-screens/card-setup-3.png|center|640|480]]</p>
<p>The last step is to bring the interface up:</p>
<pre><code>ifconfig eth0 up 192.168.69.1</code></pre>
<p><strong>NFS Configuration</strong></p>
<p>For the purpose of this HOWTO I am going to share the openSUSE 10.2 DVD as shown. This is going to be the installation source supplied for the installation as you will see later.</p>
<p>[[Image:software/suse-netboot-screens/nfs-1.png|center|640|480]]</p>
<p>[[Image:software/suse-netboot-screens/nfs-2.png|center|640|480]]</p>
<p><strong>TFTP Configuration</strong></p>
<p>Time to configure PXELINUX to be offered by the TFTP server.</p>
<p>[[Image:software/suse-netboot-screens/tftp.png|center|640|480]]</p>
<p>We will also tell PXELINUX to boot the linux kernel we will copy from the openSUSE 10.2 DVD.</p>
<pre><code>cp /usr/share/syslinux/pxelinux.0 /tftpboot
cp /media/SU1020.001/boot/i386/loader/initrd /tftpboot/
cp /media/SU1020.001/boot/i386/loader/linux /tftpboot/
mkdir /tftpboot/pxelinux.cfg
cd /tftpboot/pxelinux.cfg
touch default
chmod 777 default</code></pre>
<p>The boot configuration in the file <em>default</em> should be as follows:</p>
<pre><code>default linux
label linux
kernel linux
append initrd=initrd install=nfs://192.168.69.1/media/SU1020.001
implicit         0
display         message
prompt          1
timeout         1
</code></pre>
<p><strong>DHCPD Configuration</strong></p>
<p>[[Image:software/suse-netboot-screens/dhcpd-1.png|center|640|480]]</p>
<p>[[Image:software/suse-netboot-screens/dhcpd-2.png|center|640|480]]</p>
<p>[[Image:software/suse-netboot-screens/dhcpd-3.png|center|640|480]]</p>
<p>[[Image:software/suse-netboot-screens/dhcpd-4.png|center|640|480]]</p>
<p>The configurator will create the <em>/etc/dhcpd.conf</em> file, but with this configuration the dhcp server won&#8217;t know about the existance of the tftp server, so we have to add 2 the <em>next-server</em> and <em>filename</em> options. Finally the configuration should look like this:</p>
<pre><code>option domain-name "mydomainname";
ddns-update-style none;
   default-lease-time 14400;
   subnet 192.168.69.0 netmask 255.255.255.0 {
   range 192.168.69.2 192.168.69.254;
   default-lease-time 14400;
   max-lease-time 172800;
   next-server 192.168.69.1;
   filename "pxelinux.0";
}</code></pre>
<p>[[Image:software/suse-netboot-screens/dhcpd-5.png|center|640|480]]</p>
<p><strong>Booting</strong></p>
<p>You can now boot the machine and the result should be something simliar to:</p>
<pre><code>Trying to load: pxelinux.cfg/01-88-99-aa-bb-cc-dd
Trying to load: pxelinux.cfg/C000025B
Trying to load: pxelinux.cfg/C000025
...
Trying to load: pxelinux.cfg/default</code></pre>
<p>and then the system should boot.</p>
<p><strong>References and More Information </strong></p>
<ul>
<li><a href="http://ivanz.com/wp-admin/post.php#%20ftp://download.intel.com/design/archives/wfm/downloads/pxespec.pdf" target="_blank">ftp://download.intel.com/design/archives/wfm/downloads/pxespec.pdf</a></li>
<li><a href="http://en.wikipedia.org/wiki/Tftp" target="_blank">http://en.wikipedia.org/wiki/Tftp</a></li>
<li><a href="http://en.wikipedia.org/wiki/Network_File_System_%28Sun%29" target="_blank">http://en.wikipedia.org/wiki/Network_File_System_%28Sun%29</a></li>
<li><a href="http://en.opensuse.org/SDB:Network_Installation_of_SuSE_Linux_via_PXE_Boot" target="_blank">http://en.opensuse.org/SDB:Network_Installation_of_SuSE_Linux_via_PXE_Boot</a></li>
<li><a href="http://syslinux.zytor.com/pxe.php" target="_blank">http://syslinux.zytor.com/pxe.php</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ivanz.com/2007/01/31/opensuse-102-network-boot-and-installation-howto/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Compile Mono SVN Head on Windows</title>
		<link>http://ivanz.com/2006/03/14/compile-mono-svn-head-on-windows/</link>
		<comments>http://ivanz.com/2006/03/14/compile-mono-svn-head-on-windows/#comments</comments>
		<pubDate>Tue, 14 Mar 2006 02:19:49 +0000</pubDate>
		<dc:creator>Ivan Zlatev</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Mono]]></category>

		<guid isPermaLink="false">http://i-nz.net/?p=48</guid>
		<description><![CDATA[Download and install a recent Mono from http://mono-project.com/Downloads. Install it in C:\mono (instead of C:\Program Files\Mono) in order to avoid problems with whitespace in path during build). This mono will be used to compile mono from source. It will also provide a set of other native libraries required for the build. Install Cygwin (I would [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>Download and install a recent Mono from <a title="Mono's downloads section" href="http://mono-project.com/Downloads" target="_blank">http://mono-project.com/Downloads</a>. Install it in <em>C:\mono</em> (instead of C:\Program Files\Mono) in order to avoid problems with whitespace in path during build). This mono will be used to compile mono from source. It will also provide a set of other native libraries required for the build.</li>
<li>Install <a href="http://www.cygwin.com">Cygwin</a> (I would recommend in <em>C:\cygwin</em> to same problems mentioned above) with the following packages in addition to the default ones:</li>
<pre><code>autoconf
automake
bison
gcc-mingw
gcc-mingw-g++
libtool
pkg-config
subversion
make
</code></pre>
<li>Downgrade <em>make </em>because version 3.81 installed by Cygwin introduces a bug which causes the mono build to fail. Replace <em>C:\cygwin\bin\make.exe </em>with the one from here: <a href="http://ivanz.com/wp-content/uploads/2006/03/make-380-1tar.bz2">make 3.80</a></li>
<li>Prepare the build environment by setting the paths so that all the dependancy libs and scripts will be used from the official setup.</li>
<pre><code>export MONO_LOCATION=/cygdrive/c/mono
export PATH=${PATH}:${MONO_LOCATION}/bin
export ACLOCAL_FLAGS="-I ${MONO_LOCATION}/share/aclocal"
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:${MONO_LOCATION}/lib/pkgconfig
mkdir -p /mono/svn
mkdir /mono/build
</code></pre>
<li>Checkout Mono&#8217;s source from svn and compile.</li>
<pre><code>cd /mono/svn
svn co svn://anonsvn.mono-project.com/source/trunk/mono
svn co svn://anonsvn.mono-project.com/source/trunk/mcs
cd mono
./autogen.sh --prefix=/mono/build
make
make install</code></pre>
<li>Copy the freshly compiled files from  <em>C:\cygwin\mono\build </em>to <em>C:\mono</em> and replace all existing. DONE!</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://ivanz.com/2006/03/14/compile-mono-svn-head-on-windows/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
