<?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>Das Rootserver-Experiment &#187; Linux</title>
	<atom:link href="http://blog.rootserverexperiment.de/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rootserverexperiment.de</link>
	<description>Erlebnisse eines Rootserver (Beinahe-) Neulings</description>
	<lastBuildDate>Wed, 31 Aug 2011 11:54:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Asus x101 &#8211; wieder ein echter Eee PC?</title>
		<link>http://blog.rootserverexperiment.de/2011/08/31/asus-x101-wieder-ein-echter-eee-pc/</link>
		<comments>http://blog.rootserverexperiment.de/2011/08/31/asus-x101-wieder-ein-echter-eee-pc/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 11:54:10 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=734</guid>
		<description><![CDATA[Seit einigen Tagen liefert Asus den Eee PC x101 aus. Die Eckdaten &#8211; vorinstalliertes Linux als Betriebssystem, extrem abgespeckte Hardware, 8GB Solid State Drive &#8211; erinnern an den ersten Eee PC, den 701. Aber auch der daraus resultierende Preis von 25% bis 30% unter der bisherigen Untergrenze und das geringe Gewicht von etwa 950 Gramm [...]]]></description>
			<content:encoded><![CDATA[<p>Seit einigen Tagen liefert Asus den Eee PC x101 aus. Die Eckdaten &#8211; vorinstalliertes Linux als Betriebssystem, extrem abgespeckte Hardware, 8GB Solid State Drive &#8211; erinnern an den ersten Eee PC, den 701. Aber auch der daraus resultierende Preis von 25% bis 30% unter der bisherigen Untergrenze und das geringe Gewicht von etwa 950 Gramm lassen Erinnerungen wach werden. Und 169€ brutto sind schwer zu unterbieten.</p>
<div align="center"><a href="http://blog.rootserverexperiment.de/wp-content/uploads/2011/08/ASUS_EeePC_X101_4_med.jpg"><img src="http://blog.rootserverexperiment.de/wp-content/uploads/2011/08/ASUS_EeePC_X101_4_sml.jpg" alt="" title="ASUS_EeePC_X101_4_sml" width="360" height="305" class="aligncenter size-full wp-image-746" /></a></div>
<p><span id="more-734"></span></p>
<h3>Paket voller Kompromisse</h3>
<p>Da Asus noch kein Testgerät liefern konnte, kaufte ich einen x101 auf mein Unternehmen. Die dahinterstehende Kalkulation war, dass selbst bei einem Weiterverkauf mit 25% Wertverlust kein allzu großer Schaden eintreten würde. Allerdings habe ich derzeit einen Eee PC 1015B mit Zweikern AMD zur Hand, der für Fotos herhalten muss und als Vergleichsobjekt hinsichtlich der Verarbeitungsqualität.</p>
<p>Was sofort auffällt ist die dünne Bauform und das relativ leichte Gewicht. Das Gewicht ist nicht nur dem Wegfall der Festplatte, sondern auch dem vergleichsweise kleinen Akku geschuldet, der mit drei Zellen und 28Wh rund vier Stunden durchhält. Das ist meiner Erfahrung nach ausreichend, da ich längere Zugfahrten meide und sogar auf der Argentinienreise der alte Eee PC 701 als elektronisches Reisetagebuch auf langen Busfahrten genug durchhielt.</p>
<p>Schaut man sich das x101 näher an, stellt man eine Reihe weiterer Kompromisse fest:</p>
<ul>
<li>
<p><b>Tastatur:</b> Die F-Tastenreihe fehlt. Um überhaupt USB-Anschlüsse unterbringen zu können, mussten diese an den dicksten Teil des Gehäuses rutschen, der Platz reichte dort dennoch nicht für darüber angebrachte Tasten. Die F-Tasten wurden kurzerhand gespart und die Tiefe der Tasten reduziert. Auch der Hub fällt geringer aus, so lässt sich gerade noch flüssig tippen.</p>
</li>
<li>
<p><b>Ethernet:</b> Gibt es nicht, es musste schon beim 1015B in einer Klapplösung umgesetzt werden. Fürs Netz gibt es nur WLAN.</p>
</li>
<li>
<p><b>VGA/HDMI:</b> Gibt es nicht, es war schlichtweg kein Platz für den Port da.</p>
</li>
<li>
<p><b>USB:</b> Zwei Ports müssen genügen, USB 3.0 und eSATA fehlt.</p>
</li>
<li>
<p><b>Kartenleser:</b> Statt SD ist MicroSD eingebaut &#8211; der hat unter der Tastatur Platz.</p>
</li>
<li>
<p><b>Audio In/Out:</b> Es gibt nur einen kombinierten Port, beispielsweise zur Verwendung mit typischen Handy-Headsets.</p>
</li>
</ul>
<p>Gut zu erkennen &#8211; die F-Tastenreihe wurde geopfert, ansonsten hätte kein USB-Port Platz gehabt:</p>
<div align="center"><a href="http://blog.rootserverexperiment.de/wp-content/uploads/2011/08/x101_tastatur_med.jpg"><img src="http://blog.rootserverexperiment.de/wp-content/uploads/2011/08/x101_tastatur_sml.jpg" alt="" title="x101_tastatur_sml" width="360" height="223" class="aligncenter size-full wp-image-757" /></a></div>
<p>Die Dicke im direkten Vergleich mit dem Eee PC 1015B &#8211; dieser sieht plötzlich klobig aus:</p>
<div align="center"><a href="http://blog.rootserverexperiment.de/wp-content/uploads/2011/08/x101_dicke_med.jpg"><img src="http://blog.rootserverexperiment.de/wp-content/uploads/2011/08/x101_dicke_sml.jpg" alt="" title="x101_dicke_sml" width="360" height="168" class="aligncenter size-full wp-image-755" /></a></div>
<h3>Software</h3>
<p>Vorinstalliert ist MeeGo in Version 1.1. Die ist schon etwas älter und weist einige Lücken bei der Lokalisierung auf. Ich habe daher nach einer halben Stunde rumprobieren Ubuntu 11.04 (in der 32 Bit Variante) mit Unity als Desktop installiert. Auf MeeGo 1.2 werde ich an anderer Stelle eingehen, ich sehe ein recht großes Potential für viele typische Netbook-Nutzer.</p>
<p>Zurück zu Ubuntu: Dank für Desktopeffekte brauchbar umgesetzter Hardwarebeschleunigung des Intel GMA 3150 läuft Unity schonmal reibungslos. Sowohl Sound, WLAN als auch ACPI (Helligkeit, rfkill) funktionieren einwandfrei. Anwendungen sind merklich träger als bei einem Dual-Core Atom oder AMD C-Serie, aber noch absolut im Bereich des gut Nutzbaren. Meine Ubuntu-Installation umfasste eine Root-Partition mit vier Gigabyte, eine Home-Partition mit deren drei und ein GB Swap. Eine meiner Ansicht nach bessere Partitionierung mit <tt>/usr</tt> auf einem SquashFS-Container werde ich demnächst separat vorstellen.</p>
<h3>Fazit</h3>
<p>Die eingegangenen Kompromisse sind spürbar, aber nicht schmerzhaft. Die F-Tastenreihe dürfte einigen Powerusern fehlen, mir fiel die umständliche Zugänglichkeit der Textkonsole (Strg+Alt+Fn+2) oder des oft in regulären Ausdrücken benötigten &#8220;^&#8221; auf. Abgesehen davon ist die Tastatur um längen besser als bei den Neunzöllern von vor drei oder vier Jahren. Als mobiles Admin- und Präsentationstool eignet sich das x101 dagegen nur eingeschränkt: Muss man eine Präsentation halten, ist ein USB-VGA-Adapter nötig, der nicht immer einfach einzurichten ist. Gleiches gilt für die Netzwerkwartung, wo ich gerne mit einem TFTP-Bootserver auf dem Notebook herumlaufe, der aber einen Ethernetport erfordert &#8211; da werde ich wohl weiterhin Lenovos  x100e mitnehmen (und dieses mittelfristig durch ein x121e ersetzen).</p>
<p>Im angepeilten Einsatzbereich &#8211; Social Media, Schreibmaschine für Unterwegs und Internet Client trifft Asus die Zielgruppe fast punktgenau und überzeugt hier mit dem leichten Gewicht und dem schnellen Start. Den günstigen Preis muss ich etwas relativieren, mittlerweile haben Speicherriegel (11€ für 2GB) und Micro-SDHC-Karte (20€ für 16GB) den Preis auf genau 200€ hochgetrieben &#8211; das liegt über dem eines besser ausgestatteten Acer Aspire One D525 mit fast doppelter Akkulaufzeit und 250GB Festplatte &#8211; aber eben 300 Gramm mehr und einem klobigeren Netzteil (188€ derzeit bei Media Markt Krefeld). </p>
<p>Einziges Ärgernis ist nur den Verzicht auf Bluetooth, weil eben noch nicht jeder ein Handy mit AP-Funktion hat und eben auch viele BT-Mäuse im Umlauf sind. Nach den ersten Tagen mit dem x101 kann ich jedenfalls ziemlich sicher sagen, dass ich wieder häufiger mit Netbook unterwegs sein werde und hoffe insgeheim, dass Asus den wiedergefundenen &#8220;wahren Netbook-Pfad&#8221; nicht verlässt und stattdessen vielleicht eine Luxus-Variante des x101 auflegt &#8211; wie wäre es mit einem Dual-Core Atom, zwei GB RAM, 32GB SSD und Bluetooth im gleichen Gehäuse mit gleicher oder möglicherweise etwas besserer Akkulaufzeit?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2011/08/31/asus-x101-wieder-ein-echter-eee-pc/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Linux zieht OS X um</title>
		<link>http://blog.rootserverexperiment.de/2011/08/15/linux-zieht-os-x-um/</link>
		<comments>http://blog.rootserverexperiment.de/2011/08/15/linux-zieht-os-x-um/#comments</comments>
		<pubDate>Mon, 15 Aug 2011 12:32:25 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Tips und Tricks]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=728</guid>
		<description><![CDATA[Wir haben noch ein altes Powerbook (Unibody, 2008), bei dem die serienmäßige 160GB-Platte arg klein geworden ist. Die sollte nun gegen eine Momentus-Hybrid-Platte ausgetauscht werden. Geplant war, die Platte mit &#8220;dd&#8221; zu klonen und anschließend mit dem &#8220;diskutil&#8221; oder dem Festplattendienstprogramm zu strecken. Ging nicht, weil das Festplattendienstprogramm irritiert davon ist, dass die Schattenkopie der [...]]]></description>
			<content:encoded><![CDATA[<p>Wir haben noch ein altes Powerbook (Unibody, 2008), bei dem die serienmäßige 160GB-Platte arg klein geworden ist. Die sollte nun gegen eine Momentus-Hybrid-Platte ausgetauscht werden. Geplant war, die Platte mit &#8220;dd&#8221; zu klonen und anschließend mit dem &#8220;diskutil&#8221; oder dem Festplattendienstprogramm zu strecken. Ging nicht, weil das Festplattendienstprogramm irritiert davon ist, dass die Schattenkopie der GPT nicht am Ende der Platte liegt.</p>
<p>Ich bin dann so vorgegangen:</p>
<ol>
<li>
<p>Beide Platten mit einem SATA2USB-Adapter an den Linux-Desktop-Rechner angeschlossen</p>
</li>
<li>
<p>Mit<br /><tt>dd if=/dev/sdx of=/dev/sdy bs=1M</tt><br />die alte (sdx) auf die neue (sdy) Platte geklont</p>
</li>
<li>
<p>Mit<br /><tt>gdisk /dev/sdy</tt><br />die Platte im GPT-Partitionierungstool geöffnet und eine Partition vom Typ <tt>0700</tt> auf dem Rest der Platte angelegt, mit <tt>w</tt> bestätigt &#8211; das korrigiert die Position der Backup-GPT</p>
</li>
<li>
<p>Die Platte abgestöpselt und in den Mac eingebaut</p>
</li>
<li>
<p>Den Mac gebootet und dort im Festplattendienstprogramm die leere Partition gelöscht und die OS X Partition etwas gestreckt</p>
</li>
</ol>
<p>Klappte prima und erspart mir eine Neuinstallation von OS X. Ich habe jetzt noch Platz, um demnächst Ubuntu drauf unterzubringen. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2011/08/15/linux-zieht-os-x-um/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Cross compiling uClibc and busybox</title>
		<link>http://blog.rootserverexperiment.de/2011/07/02/cross-compiling-uclibc-and-busybox/</link>
		<comments>http://blog.rootserverexperiment.de/2011/07/02/cross-compiling-uclibc-and-busybox/#comments</comments>
		<pubDate>Sat, 02 Jul 2011 10:32:17 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mini-Linux]]></category>
		<category><![CDATA[Tips und Tricks]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=625</guid>
		<description><![CDATA[There are a few articles from this blog that are old, but still known an read &#8211; even outside the small area of people speaking German. Thus this article written in English. My intention is to show how to cross compile uClibc and a BusyBox that is statically linked with this uClibc. The resulting BusyBox [...]]]></description>
			<content:encoded><![CDATA[<p>There are a few articles from this blog that are old, but still known an read &#8211; even outside the small area of people speaking German. Thus this article written in English. My intention is to show how to cross compile uClibc and a BusyBox that is statically linked with this uClibc. The resulting BusyBox can be used to build some minimal Linux system. Around three or four Megabytes if you keep it really small. Nearly five years ago I wrote <a href="http://blog.rootserverexperiment.de/2006/09/15/das-4mb-mini-linux/">a tutorial on this topic (in German)</a> on which I still receive feedback quite often. Since this tutorial is very outdated (module loading, initrd vs. initramfs, multiple initramfs), I plan to update it. This tutorial will show a quick alternative to get a working cross compiled BusyBox.</p>
<p>The content of this blog entry is partially based on the <a href="http://busybox.net/~vda/HOWTO/i486-linux-uclibc/HOWTO.txt">&#8220;semi official tutorial&#8221;</a> how to cross compile BusyBox and partially on my experience with Linux from Scratch, especially <a href=http://www.linuxfromscratch.org/lfs/view/development/chapter05/chapter05.html"">Chapter 5 &#8211; Constructing a temporary system</a>. At the time of this being written, I tried to make sure that very few patches are necessary &#8211; this will not always be the way, maybe GCC 4.7 will need more patches or BusyBox 1.19 does. uClibc 0.9.32 does not yet build cleanly on x86, thus I stay with uClibc 0.9.31.1 for this time:</p>
<h3>Needed files</h3>
<p>Sources and patches:</p>
<ul>
<li><a href="http://ftp.gnu.org/gnu/binutils/">GNU Binutils 2.21</a></p>
<li><a href="ftp://ftp.gnu.org/pub/gnu/gcc/gcc-4.6.0/">GCC 4.6.0</a> plus <a href="http://distfiles.lesslinux.org/gcc-4.6.0-cross_compile-1.patch">gcc-4.6.0-cross_compile-1.patch</a></li>
<li><a href="http://www.kernel.org/pub/linux/kernel/v2.6/">Linux sources 2.6.39.2</a></li>
<li><a href="http://www.uclibc.org/downloads/">uClibc 0.9.31.1</a></li>
<li><a href="http://www.busybox.net/downloads/">BusyBox 1.18.5</a></li>
<li><a href="ftp://ftp.gmplib.org/pub/">Gmp 5.0.2</a></li>
<li><a href="http://www.mpfr.org/mpfr-current/">Mpfr 3.0.1</a></li>
<li><a href="http://www.multiprecision.org/index.php?prog=mpc&#038;page=download">Mpc 0.9</a></li>
</ul>
<p>Configuration files:</p>
<ul>
<li><a href="http://distfiles.lesslinux.org/busybox-1.18.5.config">busybox-1.18.5.config</a></li>
<li><a href="http://distfiles.lesslinux.org/uClibc-0.9.31.1.config">uClibc-0.9.31.1.config</a></ul>
<h3>1. Setting up the environment</h3>
<p>Very few modifications to the environment are necessary. We just need three variables:</p>
<pre>
    export TGTARCH=i486
    export INSTDIR=/usr/local/crosstools
    export PATH=${INSTDIR}/bin:${PATH}
</pre>
<p><tt>$TGTARCH</tt> is the targeted architecture, it should be either <tt>i486</tt>, <tt>i586</tt>, <tt>i686</tt> or <tt>x86_64</tt>. Of course it is possible to build for several ARM or MIPS targets if you need a statically linked BusyBox for a rooted Android device or a DSL router. There is one drawback however: My configs for uClibc and BusyBox are very x86 specific. For the first build I recommend using the same target architecture as the machine you are building:</p>
<pre>
    export TGTARCH=` uname -m `
</pre>
<p><tt>$INSTDIR</tt> is the location of the resulting toolchain. When building for different target architectures, you might also include the name of the target arch into the path. This makes deinstallation easier &#8211; you just have to delete a branch in the file system. For example:</p>
<pre>
    export TGTARCH=i486
    export INSTDIR=/usr/local/uclibc-crosstools-${TGTARCH}
    export PATH=${INSTDIR}/bin:${PATH}
</pre>
<h3>2. Building binutils</h3>
<p>Unpack the binutils and create a directory <tt>binutils-build</tt> on the same level of the file system, then configure binutils:</p>
<pre>
    tar xvjf binutils-2.21.tar.bz2
    mkdir binutils-build
    cd binutils-build
    ../binutils-2.21/configure \
        --target=${TGTARCH}-linux-uclibc \
        --prefix=${INSTDIR} --disable-nls \
        --disable-werror
</pre>
<p>Now build and install binutils:</p>
<pre>
    make &#038;&#038; make install
</pre>
<h3>3. Building GCC</h3>
<p>As far as I tested, GCC needs a small patch to result in a properly working cross compiler. Besides this, GMP, MPFR and MPC must be present:</p>
<pre>
    tar xvjf gcc-4.6.0.tar.bz2
    tar xvjf mpfr-3.0.1.tar.bz2
    tar xvjf gmp-5.0.2.tar.bz2
    tar xvzf mpc-0.9.tar.gz
    mv mpfr-3.0.1 gcc-4.6.0/mpfr
    mv gmp-5.0.2 gcc-4.6.0/gmp
    mv mpc-0.9 gcc-4.6.0/mpc
    mkdir gcc-build
    cd gcc-4.6.0
    cat ../gcc-4.6.0-cross_compile-1.patch | patch -p1
    cd ../gcc-build
</pre>
<p>Now configure, build and install GCC:</p>
<pre>
    ../gcc-4.6.0/configure \
        --target=${TGTARCH}-linux-uclibc \
        --prefix=${INSTDIR} \
	--disable-nls --disable-shared --disable-multilib \
        --disable-libmudflap --disable-libssp --disable-libgomp \
        --disable-libquadmath --disable-target-libiberty \
        --disable-target-zlib --disable-decimal-float \
        --disable-threads --enable-languages=c \
	--without-ppl --without-cloog
    make &#038;&#038; make install
</pre>
<h3>4. Installing kernel headers</h3>
<p>The kernel headers used should ressemble the version you intend to run the BusyBox on. Unpack and install them &#8211; the sanitizing step is taken from Linux from Scratch:</p>
<pre>
    tar xvjf linux-2.6.39.2.tar.bz2
    cd linux-2.6.39.2
    make INSTALL_HDR_PATH=dest headers_install
    find dest/include \( -name .install -o -name ..install.cmd \) -delete
    mkdir -p ${INSTDIR}/${TGTARCH}-linux-uclibc/include
    cp -rv dest/include/* ${INSTDIR}/${TGTARCH}-linux-uclibc/include
</pre>
<p>In the next steps <tt>${INSTDIR}/${TGTARCH}-linux-uclibc</tt> will become more populated with headers, libraries and other development files for our build target.</p>
<h3>5. Installing uClibc</h3>
<p>Unpack uClibc and copy the config into the resulting directory. Since uClibc uses the same configuration scheme as the Linux kernel, some parameters in the config have to be changed with sed, and a run of <tt>make oldconfig</tt> is needed if you do not run my exact version of uClibc:</p>
<pre>
    unxz -c uClibc-0.9.31.1.tar.xz | tar xvf -
    cp uClibc-0.9.31.1.config uClibc-0.9.31.1/.config
    cd uClibc-0.9.31.1
    # This fixes the path of the linux headers
    sed -i 's%/usr/local/crosstools/i486-linux-uclibc/include%'${INSTDIR}/${TGTARCH}-linux-uclibc/include'%g' .config
    # This fixes the path to GCC and binutils:
    sed -i 's%/usr/local/crosstools/bin/i486-linux-uclibc-%'${INSTDIR}/bin/${TGTARCH}-linux-uclibc-'%g' .config
    make oldconfig
</pre>
<p>When building for x86_64 instead of i486-i686, replace the target as well:</p>
<pre>
    sed -i 's%TARGET_i386=y%#TARGET_i386 is not set%g' .config
    sed -i 's%# TARGET_x86_64 is not set%TARGET_x86_64=y%g' .config
    make oldconfig
</pre>
<p>Now build and install uClibc:</p>
<pre>
    make
    make install PREFIX=${INSTDIR}/${TGTARCH}-linux-uclibc/
</pre>
<p>Everything is in place now. In the next step we are building the statically linked BusyBox:</p>
<h3>6. Building BusyBox</h3>
<p>Our BusyBox will be statically linked. Since BusyBox also uses the configuration scheme from the Linux kernel, configuration is done by copying the .config file:</p>
<pre>
    tar xvjf busybox-1.18.5.tar.bz2
    cp busybox-1.18.5.config busybox-1.18.5/.config
    cd busybox-1.18.5
    make oldconfig CROSS_COMPILE=${TGTARCH}-linux-uclibc-
</pre>
<p>Build BusyBox and install it to the subdirectory <tt>_install</tt>:</p>
<pre>
    make CROSS_COMPILE=${TGTARCH}-linux-uclibc-
    make install CROSS_COMPILE=${TGTARCH}-linux-uclibc-
</pre>
<p>If your build system is x86_64, any i486 to i686 or x86_64 can be directly run. There will be no hassle with libraries since our binary is statically linked:</p>
<pre>
    # Should result in: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped
    file _install/bin/busybox
    # Should print the BusyBox applets contained
    ./_install/bin/busybox
</pre>
<p>That&#8217;s it. Have fun with your BusyBox. In a short time I will tell you how to configure and build a minimal Linux system that just consists of a kernel, BusyBox and Dropbear for SSH logins &#8211; that is just enough Linux to do imaging and restoring tasks.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2011/07/02/cross-compiling-uclibc-and-busybox/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Randnotizen, 22. September 2010</title>
		<link>http://blog.rootserverexperiment.de/2010/09/22/rnadnotizen-22-september-2010/</link>
		<comments>http://blog.rootserverexperiment.de/2010/09/22/rnadnotizen-22-september-2010/#comments</comments>
		<pubDate>Wed, 22 Sep 2010 19:06:17 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Randnotizen]]></category>
		<category><![CDATA[Skurriles]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=611</guid>
		<description><![CDATA[So, heute mal etwas persönliche Randnotizen.


LessLinux: Die CD &#8220;DE-Cleaner-Rettungs-System&#8221; (Pressemitteilung) basiert auf meinem LessLinux. War viel Arbeit, weniger im technischen Sinne, mehr im Sinne der Koordination der Projektpartner. Ich bin handwerlich zufrieden mit dem Ergebnis, würde aber aber nach einer Zwischenauswertung der Leserfragen eine deutlich simplere Nutzerführung bevorzugen. Das war in der kurzen Projektphase nicht [...]]]></description>
			<content:encoded><![CDATA[<p>So, heute mal etwas persönliche Randnotizen.</p>
<ul>
<li>
<p><b>LessLinux:</b> Die CD &#8220;DE-Cleaner-Rettungs-System&#8221; (<a href="http://www.openpr.de/news/464934/Initiative-sagt-Botnetzen-den-Kampf-an.html">Pressemitteilung</a>) basiert auf meinem <a href="http://blog.lesslinux.org/">LessLinux</a>. War viel Arbeit, weniger im technischen Sinne, mehr im Sinne der Koordination der Projektpartner. Ich bin handwerlich zufrieden mit dem Ergebnis, würde aber aber nach einer Zwischenauswertung der Leserfragen eine deutlich simplere Nutzerführung bevorzugen. Das war in der kurzen Projektphase nicht möglich, also bleibt es bei dieser Oberfläche. Ärgerlich: Es wurden wohl ein paar Tausend fehlgepresste Datenträger ausgeliefert, so dass ich bei Supportanfragen nie weiss, ob ein Problem nun eher auf problematische Hardware, meine Erkennungsroutinen oder eine kaputte CD zurückzuführen ist.</p>
</li>
<li>
<p><b>LessLinux, nochmal:</b> Ich arbeite gerade an einer Funktion, die anhand von Strace-Logs prüft, auf welche Dateien während eines Builds zugegriffen wird und welche gesucht, aber nicht gefunden werden. Ziel ist ein Abhängigkeitsmanagement, welches auch vorschlägt, welche Bibliotheken vorher installiert werden, könnten, beispielsweise wenn <tt>./configure</tt> zur Laufzeit anhand installierter Programme festlegt, welche Eigenschaften einkompiliert werden. Momentan läuft eine Analyse einer Glibc-Kompilation &#8212; die Strace-Logdatei hat 1,4GB oder 13 Millionen Zeilen und will natürlich komplett durchs RAM und dort analysiert werden&#8230;</p>
</li>
<li>
<p><b>Nokia:</b> Wie etwas so sucken kann&#8230; Ich habe seit ein paar Tagen ein E5, Nachfolger meines E71. Schönere Kamera, bessere Nutzerführung, toller, übersichtlicher Email-Client. Flotter Webbrowser, spielt Youtube. 3.5mm Klinke. Aaaaber: Um VoIP einzurichten musste ich ein Zusatzprogramm runterladen. Mein Bluetooth-Keyboard will noch immer nicht. Auf der Nokia World stellt Ihr tolle Hardware wie das E7 vor, aber kein Wort zu MeeGo? Sicher ist Symbian^3 nicht wirklich schlecht, sogar richtig viel besser als S60 5th, aber das Highend bedient Ihr damit nicht!</p>
</li>
<li>
<p><b>Auf Wolken gehen:</b> Peter Voit war ein Nachbarjunge, einer der großen, sechs oder sieben Jahre älter als ich. Irgendwie ist aus ziemlich vielen der Nachbarjungen (ich schließe mich da nicht aus) etwas geworden. Peter wurde Mitgründer von Transsolar und die machen nun Wolken. Das kann praktisch sein, wenn man die Lichteintrahlung in einem Gebäude beeinflußen will: <a href="http://www.youtube.com/watch?v=uCj5CUaaeZ4&#038;feature=player_embedded">Video bei Youtube</a>.</p>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2010/09/22/rnadnotizen-22-september-2010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Frischer LessLinux-Build zum Wochenende</title>
		<link>http://blog.rootserverexperiment.de/2010/09/03/frischer-lesslinux-build-zum-wochenende/</link>
		<comments>http://blog.rootserverexperiment.de/2010/09/03/frischer-lesslinux-build-zum-wochenende/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 14:59:46 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=605</guid>
		<description><![CDATA[So, in den letzten Tagen entstand wieder ein frischer LessLinux Development-Build. Neu sind vor allem die Funktion, dass das ISO-Image nicht nur dank ISOhybrid auch auf einem USB-Stick eingesetzt werden kann, sondern dieser beim Start gleich wieder mit einem FAT-Dateisystem versehen wird. Neu ist auch ein pvops-tauglicher Kernel und einige kleinere Änderungen an den Bootscripten, [...]]]></description>
			<content:encoded><![CDATA[<p>So, in den letzten Tagen entstand wieder ein frischer LessLinux Development-Build. Neu sind vor allem die Funktion, dass das ISO-Image nicht nur dank ISOhybrid auch auf einem USB-Stick eingesetzt werden kann, sondern dieser beim Start gleich wieder mit einem FAT-Dateisystem versehen wird. Neu ist auch ein pvops-tauglicher Kernel und einige kleinere Änderungen an den Bootscripten, womit sich LessLinux nun als Xen domU booten lässt.</p>
<p>Einige weitere Modifikationen wie Bootsplash mit fbsplash, die demnächst in einem kommerziellen Derivat sichtbar sein werden, sind noch nicht aktiv. Hier geht&#8217;s lang zum Blogpost:</p>
<p><a href="http://blog.lesslinux.org/fresh-development-build-isohybrid-conversion-and-boot-on-xen/">http://blog.lesslinux.org/fresh-development-build-isohybrid-conversion-and-boot-on-xen/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2010/09/03/frischer-lesslinux-build-zum-wochenende/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 10.04 als DomU (Xen) &#8220;debootstrappen&#8221;</title>
		<link>http://blog.rootserverexperiment.de/2010/09/01/ubuntu-lucid-xen4-domu-debootstrappen/</link>
		<comments>http://blog.rootserverexperiment.de/2010/09/01/ubuntu-lucid-xen4-domu-debootstrappen/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 10:00:40 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips und Tricks]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=571</guid>
		<description><![CDATA[Nach vier Jahren ist es mal wieder Zeit für ein kleines Tutorial zur Installation von Ubuntu-domUs via debootstrap. Dank Aufnahme der pvops-DomU in den Vanilla-Kernel bringt Ubuntu einen Kernel mit, der lediglich kleine Anpassungen am Initramfs benötigt, um sauber auf einem aktuellen Xen 4.0 zu starten.
Installation von Debootstrap
Zuerst muss debootstrap vorhanden sein, am einfachsten natürlich [...]]]></description>
			<content:encoded><![CDATA[<p>Nach <a href="http://blog.rootserverexperiment.de/2006/07/22/ubuntu-als-domu-xen-debootstrappen/">vier Jahren</a> ist es mal wieder Zeit für ein kleines Tutorial zur Installation von Ubuntu-domUs via <tt>debootstrap</tt>. Dank Aufnahme der pvops-DomU in den Vanilla-Kernel bringt Ubuntu einen Kernel mit, der lediglich kleine Anpassungen am Initramfs benötigt, um sauber auf einem <a href="http://blog.rootserverexperiment.de/2010/08/30/xen-401-pvops-dom0-ubuntu1004/">aktuellen Xen 4.0</a> zu starten.</p>
<h3>Installation von Debootstrap</h3>
<p>Zuerst muss <tt>debootstrap</tt> vorhanden sein, am einfachsten natürlich mit <tt>apt-get install debootstrap</tt>. Unter Ubuntu kann mit <tt>debootstrap</tt> auch die Folgeversion installiert werden. Debian-User können das Ubuntu-Debootstrap direkt von <a href="http://archive.ubuntu.com/ubuntu/pool/main/d/debootstrap/">http://archive.ubuntu.com/ubuntu/pool/main/d/debootstrap/</a> herunterladen und mit <tt>dpkg -i</tt> installieren. Nutzer von RPM-Distributionen sollten ein Konvertierungstool installieren oder Debootstrap direkt aus dem <tt>.tar.gz</tt> installieren.</p>
<h3>Vorbereitung eines Images</h3>
<p>Für Xen DomUs haben Sie die Möglichkeit, physikalische Festplatten oder deren Partitionen zu nutzen oder Festplattenimages zu verwenden. Bei den Images wiederum gibt es zwei Möglichkeiten: Tap-Disks, die wachsen können und beispielsweise VMware VMDK-Format unterstützen oder &#8220;Plain-Images&#8221;, die als Loopback-Device gemountet werden können. Ich empfehle bei Testkonfigurationen grundsätzlich und bei Produktivsystemen für die Systempartitionen Images von Partitionen. Die Gründe:<span id="more-571"></span></p>
<ul>
<li>Im Gegensatz zu partitionierten Festplattenimages kann ein Partitionsimage ohne Verrenkungen vergrößert werden</li>
<li>Ein Mounten ist simpel mit <tt>mount -o loop ...</tt> möglich, es muss kein Offset errechnet und angegeben werden</li>
<li>Im Gegensatz zu VMDK-Images benötigt der Mount auf einer Xen-losen Maschine keine zusätzlichen Werkzeuge</li>
</ul>
<p>Images erstelle ich als Sparse-Images, das geht schnell und spart Plattenplatz, hat aber bei Maschinen mit vielen Xen-Instanzen deutlich spürbare Einbußen durch doppelte Fragmentierung zur Folge. Zunächst entsteht ein Image für die Systempartition. Da ich gerne auch Kernel in der Xen-Instanz baue, hier 8GB groß, das Swap-Image bekommt ein Gigabyte:</p>
<pre>dd if=/dev/zero bs=$((1024**2)) count=1 seek=8191 of=xvda1.img
dd if=/dev/zero bs=$((1024**2)) count=1 seek=1023 of=swap.img
</pre>
<p>Als nächstes entsteht eine Swap-Signatur und ein Dateisystem auf dem Image <tt>xvda1.img</tt>. Das Dateisystem mounte ich gleich auf einen noch zu erstellenden Mountpoint <tt>/tmp/minibuntu</tt>:</p>
<pre>mkswap -f swap.img
freeloop=` losetup -f `
losetup $freeloop xvda1.img
echo "loopdevice is $freeloop"
mkfs.ext3 $freeloop
mkdir /tmp/minibuntu
mount $freeloop /tmp/minibuntu</pre>
<h3>Installation des Basissystems</h3>
<p>Die Installation des Basissystems geht innerhalb weniger Minuten mit dem Befehl <tt>debootstrap</tt>. Auf einem 64-Bit Hostsystem haben Sie die Wahl, 32- oder 64-Bit-Gäste zu installieren. Bei Gästen, die keine allzu große Prozessgröße erwarten lassen, sind 32-Bit-Gäste oft einen Tick flotter und kompakter:</p>
<pre>debootstrap --arch i386 lucid /tmp/minibuntu http://archive.ubuntu.com/ubuntu</pre>
<p>oder</p>
<pre>debootstrap --arch amd64 lucid /tmp/minibuntu http://archive.ubuntu.com/ubuntu</pre>
<p>Das so installierte Ubuntu würde sich mit dem Hostkernel schon booten, darüber hinaus jedoch kaum nutzen lassen. Setzen wir einige Einstellungen:</p>
<pre>vim /tmp/minibuntu/etc/default/locale</pre>
<pre># BEGIN /etc/default/locale
LANG="POSIX"
# oder
# LANG="de_DE.UTF-8"
# END /etc/default/locale</pre>
<pre>vim /tmp/minibuntu/etc/network/interfaces</pre>
<pre># BEGIN /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
# END /etc/network/interfaces</pre>
<pre>echo '127.0.0.1 localhost' > /tmp/minibuntu/etc/hosts
echo 'lucid-domU.test' > /tmp/minibuntu/etc/hostname</pre>
<p>Auch eine vollständige <tt>/etc/apt/sources.list</tt> wird benötigt:</p>
<pre>vim /tmp/minibuntu/etc/apt/sources.list</pre>
<pre># BEGIN /etc/apt/sources.list
deb http://de.archive.ubuntu.com/ubuntu/ lucid main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ lucid main restricted
deb http://de.archive.ubuntu.com/ubuntu/ lucid-updates main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ lucid-updates main restricted
deb http://de.archive.ubuntu.com/ubuntu/ lucid universe
deb-src http://de.archive.ubuntu.com/ubuntu/ lucid universe
deb http://de.archive.ubuntu.com/ubuntu/ lucid-updates universe
deb-src http://de.archive.ubuntu.com/ubuntu/ lucid-updates universe
deb http://de.archive.ubuntu.com/ubuntu/ lucid multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ lucid multiverse
deb http://de.archive.ubuntu.com/ubuntu/ lucid-updates multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ lucid-updates multiverse
deb http://security.ubuntu.com/ubuntu lucid-security main restricted
deb-src http://security.ubuntu.com/ubuntu lucid-security main restricted
deb http://security.ubuntu.com/ubuntu lucid-security universe
deb-src http://security.ubuntu.com/ubuntu lucid-security universe
deb http://security.ubuntu.com/ubuntu lucid-security multiverse
deb-src http://security.ubuntu.com/ubuntu lucid-security multiverse
# END /etc/apt/sources.list</pre>
<p>Ohne <tt>/etc/fstab</tt> geht wenig im domU-System, die Platten heissen nicht mehr wie bei den alten dom0- und domU-Kerneln <tt>/dev/sda</tt>, sondern <tt>/dev/xvda</tt>:</p>
<pre>vim /tmp/minibuntu/etc/fstab</pre>
<pre># BEGIN /etc/fstab
proc /proc proc defaults 0 0
/dev/xvda1 / ext3 defaults 0 1
/dev/xvda2 none swap sw 0 0
# END /etc/fstab</pre>
<p>Eine Konsole für Xen. Xen nutzt <tt>/dev/hvc0</tt> als Systemkonsole, diese muss noch mit einem <tt>getty</tt> versehen werden. Das erledigen Sie durch Kopieren der Definition von <tt>tty1</tt> und entsprechende Anpassungen:</p>
<pre>cp /tmp/minibuntu/etc/init/{tty1,hvc0}.conf
sed -i 's/tty1/hvc0/g' /tmp/minibuntu/etc/init/hvc0.conf</pre>
<h3>Chroot, Passwort und Kernel</h3>
<p>Zum Abschluss der Installation und der Nachinstallation von Software müssen Sie per <tt>chroot</tt> in das frisch installierte Ubuntu wechseln. Zunächst benötigen Sie dafür einige spezielle Dateisysteme:</p>
<pre>mount -t proc none /tmp/minibuntu/proc
mount -t devpts none /tmp/minibuntu/dev/pts </pre>
<p>Wenn Host und Gast die gleiche Architektur nutzen, klappt der Chroot klassisch:</p>
<pre>LANG=C chroot /tmp/minibuntu /bin/bash</pre>
<p>Ist der Host dagegen 64 bittig und der Gast 32 bittig, ist <tt>setarch</tt> zu verwenden:</p>
<pre>LANG=C setarch i386 chroot /tmp/minibuntu /bin/bash</pre>
<p>Zunächst aktivieren wir Shadow-Passwörter und setzen ein Root-Passwort:</p>
<pre>shadowconfig on
passwd</pre>
<p>Auf 32-Bit-Gästen muss zwingend ein PAE-Kernel installiert werden. Nur dieser enthält Unterstützung für pvops. Kernel ohne PAE laufen nur auf dem &#8220;nackten Metall&#8221;. Bei 64 Bit sollten alle Kernel pvops unterstützen:</p>
<pre>apt-get install linux-image-generic-pae</pre>
<p>Da ein Bootloader bei unserer Konfiguration keinen Sinn macht, sind entsprechende Nachfragen mit <tt>[No]</tt> zu beantworten.</p>
<h3>Aufbau des Initramfs</h3>
<p>Im Gegensatz zu gängigen Dateisystemtreibern enthält Ubuntus Kernel die Frontend-Treiber für Blockdevices und das Netz nur als Module. Diese sind entsprechend zu Initramfs-Konfiguration hinzuzufügen:</p>
<pre>vim.tiny /etc/initramfs-tools/initramfs.conf</pre>
<pre>MODULES=list</pre>
<p>Diese Liste ist entsprechend anzupassen:</p>
<pre>vim.tiny /etc/initramfs-tools/modules</pre>
<pre># BEGIN /etc/initramfs-tools/modules
xen-kbdfront
xen-netfront
xen-blkfront
# END /etc/initramfs-tools/modules</pre>
<p>Und anschließend wird das Initramfs neu aufgebaut:</p>
<pre>mkinitramfs -o /boot/initrd.img-2.6.32-24-generic-pae 2.6.32-24-generic-pae</pre>
<p>Verlassen Sie nun den Chroot wieder und unmounten Sie die beiden speziellen Dateisysteme.</p>
<pre>exit
umount /tmp/minibuntu/proc
umount /tmp/minibuntu/dev/pts</pre>
<h3>Kopieren der Kernel, Aufbau der domU-Konfiguration</h3>
<p>Kopieren Sie nun Kernel und Initramfs von <tt>/tmp/minibuntu/boot</tt> in das Verzeichnis, welches Festplattenimages und später die Konfiguration enthält. Erstellen Sie dann eine Datei <tt>ubuntu.cfg</tt> mit folgendem Inhalt (selbstverständlich ist der Pfad zum Installationsverzeichnis anzupassen und Kernel sowie Initramfs umzubenennen oder zu verlinken):</p>
<pre>kernel = "/usr/local/xendomains/lucid_test/vmlinuz"
ramdisk = "/usr/local/xendomains/lucid_test/initrd.gz"
memory = 512
name = "lucid-test"
vif = [ 'mac=00:16:00:00:42:23' ]
disk = [ 'file:/usr/local/xendomains/lucid_test/xvda1.img,xvda1,w',
         'file:/usr/local/xendomains/lucid_test/swap.img,xvda2,w' ]
root = '/dev/xvda1 ro'
extra = 'console=hvc0'</pre>
<p>Jetzt nicht vergessen, das Loopback-Device zu unmounten und freizugeben:</p>
<pre>umount /tmp/minibuntu
umount $freeloop
losetup -d $freeloop</pre>
<p>Dann kann auch die neue domU gestartet werden:</p>
<pre>xm create -c ubuntu.cfg</pre>
<p>Melden Sie sich in der Konsole der domU an und installieren Sie die Xen-Version der C-Bibliothek, sowie OpenSSH nach:</p>
<pre>apt-get install ssh libc6-xen</pre>
<p>Beim nächsten Mal kann dann die Domain ohne <tt>-c</tt> gestartet und per SSH zugegriffen werden. Soll die virtuelle Festplatte vergrößert werden, kann dies nach dem Herunterfahren mit <tt>dd</tt> erfolgen:</p>
<pre>dd if=/dev/zero bs=$((1024**2)) count=1 seek=16383 of=xvda1.img
freeloop=` losetup -f`
losetup $freeloop xvda1.img
fsck.ext3 -f $freeloop
resize2fs $freeloop
losetup -d $freeloop</pre>
<p>That&#8217;s it! Soll die domU automatisch mit dem Xend des Hostes starten, die <tt>.cfg</tt> in <tt>/etc/xen/auto</tt> verlinken und darauf achten, dass das Startscript <tt>/etc/init.d/xendomains</tt> beim Systemstart unmittelbar nach <tt>xend</tt> gestartet wird. Die so erstellte Domain ist prinzipiell portabel, man sollte sich allerdings keine allzugroßen Hoffnungen auf einen Boot unter alten Xen-Versionen (vor 3.4) machen. Sind noch alte dom0s vorhanden, schafft möglicherweise Ubuntus ec2-Kernel für Amazons Elastic Computing Cloud Abhilfe.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2010/09/01/ubuntu-lucid-xen4-domu-debootstrappen/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Installation von Xen 4.0.1 mit pvops-Dom0 auf Ubuntu 10.04</title>
		<link>http://blog.rootserverexperiment.de/2010/08/30/xen-401-pvops-dom0-ubuntu1004/</link>
		<comments>http://blog.rootserverexperiment.de/2010/08/30/xen-401-pvops-dom0-ubuntu1004/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 13:35:13 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips und Tricks]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=548</guid>
		<description><![CDATA[Xen 4.0 hat einige interessante Features eingeführt. Am Auffälligsten dürfte die Umstellung des vom Xen-Projekt gepflegten Dom0-Kernels auf &#8220;pvops&#8221; sein. Es handelt sich dabei um eine Technologie, mithilfe derer ein Kernel erkennt, ob er auf &#8220;nacktem Metall&#8221; (&#8220;bare metal&#8221; = direkt auf Hardware) oder auf dem Xen-Hypervisor läuft. Für unpriviligierte Domains (domU) ist dieses Feature [...]]]></description>
			<content:encoded><![CDATA[<p>Xen 4.0 hat einige interessante Features eingeführt. Am Auffälligsten dürfte die Umstellung des vom Xen-Projekt gepflegten Dom0-Kernels auf &#8220;pvops&#8221; sein. Es handelt sich dabei um eine Technologie, mithilfe derer ein Kernel erkennt, ob er auf &#8220;nacktem Metall&#8221; (&#8220;bare metal&#8221; = direkt auf Hardware) oder auf dem Xen-Hypervisor läuft. Für unpriviligierte Domains (domU) ist dieses Feature bereits seit geraumer Zeit im Linux-Kernel enthalten, für dom0s is es neu und muss über den Kernel des Xen-Projektes installiert werden.</p>
<p>Ich habe einmal testweise ein Setup auf einer AMD64-Maschine erstellt, auf 32-Bit-Systemen sind lediglich einige Kleinigkeiten anders: Der Kernel muss PAE-Support haben und es muss zwingend ein Prozessortyp ausgewählt werden, der über Virtualisierungserweiterungen verfügt. Da heutzutage kaum Rechner als Xen-Host zum Einsatz kommen dürften, die nicht 64-Bit-tauglich sind, sollte sich die Frage nach pvops-Dom0s auf 32-Bit-Hardware kaum stellen. <span id="more-548"></span></p>
<h3>Die Vorbereitung</h3>
<p>Fürs Bauen des Kernels müssen zuerst einige Debian-Pakete nachinstalliert werden. Meine Testmaschine war ein recht blankes Netinstall, so dass diese Liste hoffentlich vollständig ist:</p>
<pre>apt-get install build-essential libncurses5-dev python-twisted \
        git-core zlib1g-dev gettext libX11-dev uuid-dev libssl-dev\
        bin86 bcc flex bison python-dev bridge-utils</pre>
<p>Auf 64-Bit-Systemen außerdem:</p>
<pre>apt-get install libc6-dev-i386</pre>
<p>Neuere Xen-Versionen benötigen Intels ACPI-Compiler. Den habe ich noch nicht in den Ubuntu-Paketlisten gefunden, stattdessen habe ich ihn aus den Quellen gebaut und mittels <tt>install</tt> installiert. Da nur ein einziges Binary benötigt wird, ist es leicht möglich, das temporäre Build-Verzeichnis in den Pfad aufzunehmen und so das System nicht zu verschmutzen. Bitte prüft vor der ACPICA-Installation, ob unter <a href="http://www.acpica.org/downloads/">http://www.acpica.org/downloads/</a> neuere Versionen bereitstehen:</p>
<pre>cd /usr/src
wget http://acpica.org/download/acpica-unix-20100806.tar.gz
tar xvzf acpica-unix-20100806.tar.gz
cd acpica-unix-20100806/compiler
make
install -m 0755 iasl /usr/bin</pre>
<h3>Bau und Boot des pvops-Kernels</h3>
<p>Wie eingangs erwähnt, ist Support für pvops-Dom0 noch nicht Teil des offiziellen Kernels. Es muss daher Jeremys 2.6.32er mit pvops-Patches ausgecheckt werden. Falls jemand abkürzen möchte, kann er <a href="http://cdprojekte.mattiasschlenker.de/Public/Xen-Kernel/vmlinuz-2.6.32.18-xen0-pvops-20100830-sources.tbz">hier die von mir verwendeten Sourcen herunterladen</a>, diese beinhalten bereits eine <tt>.config</tt>. </p>
<pre>cd /usr/src
git clone git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen
cd linux-2.6-xen
git reset --hard
git checkout -b xen/stable-2.6.32.x origin/xen/stable-2.6.32.x</pre>
<p>Beim Selbstbau dürfte es meist ganz gut passen, die Kernelconfig des Ubuntu als Basis zu verwenden und mit <tt>make oldconfig</tt> die Xen-spezifischen Punkte zu ergänzen. Wer dabei die richtigen Treiber statisch einbindet, braucht auch an der Initramfs-Konfiguration nichts zu modifizieren:</p>
<pre>cd /usr/src
cd linux-2.6-xen
cp /boot/config-` uname -r ` .config
make oldconfig</pre>
<p>Zum Vergleich hier meine Xen-spezifischen Optionen:</p>
<pre>CONFIG_XEN=y
CONFIG_XEN_MAX_DOMAIN_MEMORY=32
CONFIG_XEN_SAVE_RESTORE=y
CONFIG_SWIOTLB_XEN=y
CONFIG_MICROCODE_XEN=y
CONFIG_XEN_DOM0=y
CONFIG_XEN_PRIVILEGED_GUEST=y
CONFIG_XEN_DOM0_PCI=y
CONFIG_XEN_PCI_PASSTHROUGH=y
CONFIG_PCI_XEN=y
CONFIG_XEN_PCIDEV_FRONTEND=y
CONFIG_XEN_BLKDEV_FRONTEND=m
CONFIG_NETXEN_NIC=m
CONFIG_XEN_NETDEV_FRONTEND=m
CONFIG_XEN_KBDDEV_FRONTEND=m
CONFIG_HVC_XEN=y
CONFIG_XEN_FBDEV_FRONTEND=m
CONFIG_XEN_BALLOON=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_DEV_EVTCHN=m
CONFIG_XEN_BACKEND=y
CONFIG_XEN_NETDEV_BACKEND=y
CONFIG_XEN_BLKDEV_BACKEND=y
CONFIG_XEN_BLKDEV_TAP=y
CONFIG_XEN_BLKBACK_PAGEMAP=y
CONFIG_XEN_PCIDEV_BACKEND=y
CONFIG_XEN_PCIDEV_BACKEND_VPCI=y
CONFIG_XENFS=m
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_SYS_HYPERVISOR=y
CONFIG_XEN_MCE=y
CONFIG_XEN_XENBUS_FRONTEND=y
CONFIG_XEN_GNTDEV=m
CONFIG_XEN_S3=y
CONFIG_ACPI_PROCESSOR_XEN=y
CONFIG_XEN_PLATFORM_PCI=m</pre>
<p>Wer möchte, kann meine Konfiguration <a href="http://cdprojekte.mattiasschlenker.de/Public/Xen-Kernel/config-2.6.32.18-xen0-pvops-20100830-amd64">komplett</a> oder als <a href="http://cdprojekte.mattiasschlenker.de/Public/Xen-Kernel/config-2.6.32.18-xen0-pvops-20100830-amd64.diff">unified diff</a> (gegen Ubuntus 2.6.32-24 Kernel) herunterladen und diese verwenden. Das Bauen geht dann wie gewohnt, ich strippe die Kernelmodule und erstelle gleich eine GRUB-Konfiguration:</p>
<pre>make
make install
make modules_install
find /lib/modules/2.6.32.18-xen0-pvops/ -name '*.ko' -exec strip --strip-unneeded {} \;
mkinitramfs -o /boot/initrd.img-2.6.32.18-xen0-pvops 2.6.32.18-xen0-pvops
update-grub</pre>
<h3>Der erste Neustart</h3>
<p>Rebooten Sie nun den Rechner und wählen Sie den neuen pvops-Kernel als Startkernel aus. Die Maschine sollte problemlos hochfahren, tut sie das nicht, stehen die Chancen schlecht, dass dieser Kernel auch auf Xen sauber startet.</p>
<h3>Installation von Xen und den Xen-Tools</h3>
<p>Als dieses Tutorial erstellt wurde, war mit Xen 4.0.1 gerade die erste <a href="http://www.xen.org/products/xen_source.html"></a>Maintenance-Release der 4.0er-Reihe erhältlich. Falls Sie noch 3.4.x oder 4.0.0 verwenden (und damit zufrieden sind): Aktualisieren Sie auf jeden Fall auf 4.0.1, weil hier einige Bugs im Zusammenspiel von Xen und dom0-pvops-Kerneln beseitigt wurden:</p>
<pre>cd /usr/src
wget http://bits.xensource.com/oss-xen/release/4.0.1/xen-4.0.1.tar.gz
tar xvzf xen-4.0.1.tar.gz
cd xen-4.0.1
make xen
make install-xen
make tools
make install-tools PYTHON_PREFIX_ARG=</pre>
<p>Es folgt die Erstellung einer Bootloder-Konfiguration, bitte die UUID entsprechend anpassen:</p>
<pre>vim.tiny /etc/grub.d/50_xen</pre>
<pre>#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "Ubuntu 10.04 - Xen 4.0.1 - 2.6.32.18 pvops" {
        insmod ext2
        set root=(hd0,1)
        search --no-floppy --fs-uuid --set dc50c3d6-787a-45d7-951b-20836d10443c
        multiboot /boot/xen-4.0.1.gz dummy=dummy
        module /boot/vmlinuz-2.6.32.18-xen0-pvops root=UUID=dc50c3d6-787a-45d7-951b-20836d10443c ro dummy=dummy
        module /boot/initrd.img-2.6.32.18-xen0-pvops
}</pre>
<pre>chmod a+x /etc/grub.d/50_xen
vim.tiny /etc/default/grub</pre>
<pre>GRUB_DEFAULT="Ubuntu 10.04 - Xen 4.0.1 - 2.6.32.18 pvops"
GRUB_HIDDEN_TIMEOUT=30
GRUB_HIDDEN_TIMEOUT_QUIET=false</pre>
<p>Anschließend nicht vergessen, die Grub-Konfiguration noch einmal neu aufzubauen:</p>
<pre>update-grub</pre>
<p>Ein Dateisystem für Xen: Einige Scripte benäötigen das alte <tt>/proc/xen</tt>. Dieses wird durch einen Eintrag in der <tt>/etc/fstab</tt> beim nächsten Neustart gemountet:</p>
<pre>xenfs /proc/xen xenfs defaults</pre>
<p>Dann benötigen wir noch zwei Module und deren Devices &#8211; die Module sollten in die <tt>/etc/modules</tt> eingetragen werden:</p>
<pre>modprobe -v xen-evtchn
modprobe -v xen-gntdev</pre>
<pre>mkdir /dev/xen
mknod -m 0660 /dev/xen/gntdev c 10 57
mknod -m 0660 /dev/xen/evtchn c 10 58</pre>
<p>Das war es: Beim nächsten Neustart startet der eben gebootete pvops-Kernel nicht auf nacktem Metall, sondern auf dem Hypervisor. Mit pvops-Kernel sollte es auch möglich sein, die beschleunigten Grafiktreiber von AMD und nVidia zu nutzen, ausprobiert habe ich dies nicht, weil bei mir Xen nur auf dem Server eingesetzt wird.</p>
<p>Auf die Konfiguration von pvops-DomUs gehe ich in den nächsten Tagen ein: Für diese halten aktuelle Distributionen oft passende Kernel bereit, ich werde jedoch auch zeigen, wie man mit einem frischen Vanilla-Kernel 2.6.35.x ein wenig mehr herausholt.</p>
<h3>Vielen Dank an&#8230;</h3>
<ul>
<li><a href="http://blog.xen.org/index.php/2010/03/26/steps-to-try-xen-4-0-0-release-candidate-8-on-ubuntu-lucid-10-04-64-bits/">&#8230;das offizielle Xen-Blog, an dessen Anleitung ich mich grob orientiert habe</a></li>
<li><a href="http://wiki.xensource.com/xenwiki/XenParavirtOps">&#8230;die Mitarbeiter des Xen-Wikis, die viele wertvolle Informationen zu pvops zusammengetragen haben</a></li>
</ul>
<h3>Update, 31. August 2010</h3>
<ul>
<li>bridge-utils zur Paketliste hinzugefügt</li>
<li>Ergänzung zu <tt>/proc/xen</tt></li>
<li>Ergänzung zu fehlenden Devices und Modulen</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2010/08/30/xen-401-pvops-dom0-ubuntu1004/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Das BSI empfiehlt&#8230; LessLinux</title>
		<link>http://blog.rootserverexperiment.de/2010/08/27/das-bsi-empfiehlt-lesslinux/</link>
		<comments>http://blog.rootserverexperiment.de/2010/08/27/das-bsi-empfiehlt-lesslinux/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 15:12:30 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=545</guid>
		<description><![CDATA[Mn sehe und staune: Das BSI schickt seine eigene, Knoppix basierte Live-Distri in Rente und verweist auf das von mir federführend entwickelte LessLinux, konkret in seiner Ausprägung als &#8220;Computerbild Sicher Surfen&#8220;. 
Das mag auf den ersten Blick verwundern, auf den zweiten scheint es logisch: Die Anforderungen an die Sicherheitsmechanismen der Sicher-Surfen-CD wurden vom BSI festgelegt, [...]]]></description>
			<content:encoded><![CDATA[<p>Mn sehe und staune: Das BSI schickt seine eigene, Knoppix basierte <a href="https://www.bsi.bund.de/cln_156/DE/Themen/ProdukteTools/SecuritySurfCD/securitysurfcd_node.html">Live-Distri in Rente</a> und verweist auf das von mir federführend entwickelte <a href="http://blog.lesslinux.org/">LessLinux</a>, konkret in seiner Ausprägung als &#8220;<a href="http://www.computerbild.de/artikel/cb-News-Software-Software-Tipp-des-Tages-Sicher-surfen-5387256.html">Computerbild Sicher Surfen</a>&#8220;. </p>
<p>Das mag auf den ersten Blick verwundern, auf den zweiten scheint es logisch: Die Anforderungen an die Sicherheitsmechanismen der Sicher-Surfen-CD wurden vom BSI festgelegt, die Umsetzung dieser vom TÜV geprüft. Dabei bin ich durchaus auch eigene Wege gegangen, so habe ich die Integration des einfachen MAC-Modells SMACK statt SELinux durchgesetzt und als Basis eben keine Debian-Distri genommen, sondern mein damals (vor anderthalb Jahren) noch in den Kinderschuhen befindliches LessLinux.</p>
<p>In den letzten Wochen hat sich im Blog von LessLinux wenig getan, hinter den Kulissen umso mehr. Worum es ging, darf ich noch nicht sagen. Stay tuned, in zwei Wochen wisst Ihr mehr.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2010/08/27/das-bsi-empfiehlt-lesslinux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Welchen Bootloader verwende ich?</title>
		<link>http://blog.rootserverexperiment.de/2010/08/25/welchen-bootloader-verwende-ich/</link>
		<comments>http://blog.rootserverexperiment.de/2010/08/25/welchen-bootloader-verwende-ich/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 09:11:40 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Randnotizen]]></category>
		<category><![CDATA[Tips und Tricks]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=540</guid>
		<description><![CDATA[Ich arbeite an Rootservern, bei denen die verschiedensten Bootloader installiert sind. Mal Grub 0.9x, mal Grub 2, oft Extlinux (oh, ja, ich muss mal ein Tutorial zu Syslinux 4.0 machen&#8230;). Böse ist, wenn sowohl eine extlinux.conf als auch ein Ordner /boot/grub vorhanden sind. Was tun? Einfach im MBR nachschauen:
root@caesium:~#  dd if=/dev/sda bs=448 count=1 &#124; [...]]]></description>
			<content:encoded><![CDATA[<p>Ich arbeite an Rootservern, bei denen die verschiedensten Bootloader installiert sind. Mal Grub 0.9x, mal Grub 2, oft <a href="http://blog.rootserverexperiment.de/2006/08/01/extlinux-flexibler-bootloader-fur-den-rootserver/" target="_blank">Extlinux</a> (oh, ja, ich muss mal ein Tutorial zu Syslinux 4.0 machen&#8230;). Böse ist, wenn sowohl eine <tt>extlinux.conf</tt> als auch ein Ordner <tt>/boot/grub</tt> vorhanden sind. Was tun? Einfach im MBR nachschauen:</p>
<pre>root@caesium:~#  dd if=/dev/sda bs=448 count=1 | strings
1+0 Datensätze ein
1+0 Datensätze aus
448 Bytes (448 B) kopiert, 4,2288e-05 s, 10,6 MB/s
ZRr=
`|f
\|f1
GRUB
Geom
Hard Disk
Read
 Error</pre>
<p>Das ist wohl GRUB, beim Syslinux-MBR (Extlinux) sieht die Ausgabe so aus:</p>
<pre>RPf1
Missing operating system.
f`f1
|fRfP
Ht[y9Y[
Multiple active partitions.
Operating system load error.</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2010/08/25/welchen-bootloader-verwende-ich/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eine Frage an die Community: Welches (Linux-) Smartphone kaufen?</title>
		<link>http://blog.rootserverexperiment.de/2010/07/12/eine-frage-an-die-community-welches-linux-smartphone-kaufen/</link>
		<comments>http://blog.rootserverexperiment.de/2010/07/12/eine-frage-an-die-community-welches-linux-smartphone-kaufen/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 12:53:36 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=537</guid>
		<description><![CDATA[ich sinniere noch immer über dem Kauf eines Smartphones: Ein Gerät mit 480&#215;320-Touchscreen (gerne größer), möglichst offener Plattform (Bada oder Android 2.1+) sollte es sein. Ob nur Touchscreen oder Touchscreen plus Tastatur ist zunächst zweitrangig.
Der Haken: Es sollte Features bieten oder als stabile Software zu Nachrüstung bereithalten, die ich am E71 nicht mehr missen möchte:

Tethering [...]]]></description>
			<content:encoded><![CDATA[<p>ich sinniere noch immer über dem Kauf eines Smartphones: Ein Gerät mit 480&#215;320-Touchscreen (gerne größer), möglichst offener Plattform (Bada oder Android 2.1+) sollte es sein. Ob nur Touchscreen oder Touchscreen plus Tastatur ist zunächst zweitrangig.</p>
<p>Der Haken: Es sollte Features bieten oder als stabile Software zu Nachrüstung bereithalten, die ich am E71 nicht mehr missen möchte:</p>
<ul>
<li>Tethering möglichst per Bluetooth und Funktion als WLAN-Hotspot</li>
<li>SIP-Client</li>
<li>SyncML-Client oder Funambol-Plugin erhältlich</li>
<li>Unterstützung für Bluetooth-Tastaturen</li>
</ul>
<p>Eigentlich nix Wildes, aber drei der vier Punkte sind meines Wissens schwer umzusetzen. Dazu würde mich interessieren: Wie haltet Ihr Smartphone und Linux-Rechner synchron? Ich nutze einen eigenen Funambol-Server und das Funambol-Addon für Thunderbird 3.0. Das klappt prima mit Kontakten und Terminen. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2010/07/12/eine-frage-an-die-community-welches-linux-smartphone-kaufen/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
	</channel>
</rss>

