ubuntuusers.de

[Kwami] [Update] Warum das „Heise-Ubuntu“ für ältere Rechner nicht durchdacht ist

kwami.png

Heise online veröffentlichte vor kurzem ein angepasstes Ubuntu-ISO-Image, um das Booten auf sehr alten Rechnern zu ermöglichen. Thomas Laube wirft in diesem Artikel einen Blick auf die Schattenseiten dieses Images.

Hinweis:

Dieser Artikel gehört der Kategorie Kwami an. Er spiegelt damit allein die Meinung des Autors und nicht zwingend die des ubuntuusers.de-Teams wider.

Auf heise online erschien am 24.03.2014 der Artikel Ubuntu 12.04.4 für alte Rechner. Die Idee dahinter ist, das aktuelle Pointrelease mit einem Kernel auszuliefern, der auch ohne PAE-Unterstützung lauffähig ist, die vielen Intel Pentium M-CPUs (und den entsprechenden Celeron-Modellen) fehlt.

Unity ist natürlich mit Geräten dieser Altersklasse in der Regel schon aufgrund der damals verbauten Grafikkarten nicht nutzbar. Allerdings gibt es in 12.04 noch die Unity-2D-Session, die auch ohne 3D-Grafikbeschleunigung funktioniert.

Die Idee von „optimierten“ Installationsmedien ist nicht neu. Wer schon etwas länger dabei ist, kann sich an „optimierte“ Installationsmedien als Beilage von Hochglanz-Magazinen erinnern, die ohne Kernel ausgeliefert wurden und damit nicht bootfähig waren.

Man erinnere sich an den ominösen tommy-Ordner der Zeitschrift Ubuntu-User oder die von der Zeitschrift CHIP selbst optimierte Version für einen vielbeachteten Betriebssystem-Vergleichstest wurde aus diversen Gründen sogar vor den Deutschen Presserat gebracht.

Die Heise-Gruppe, die auch als Herausgeber der Zeitschrift c’t agiert, dürfte aber grundsätzlich erst einmal als seriösere Quelle für ein solches Projekt gelten, zumal es dort ja schon seit längerem spezialisierte Linux-Projekte wie Desinfec’t oder auch die c't Bankix gibt. Grund genug, sich das erstellte Installationsmedium genauer anzusehen.

Zuerst einmal ein diff der verwendeten Pakete des Original-Downloads von Ubuntu-12.04.4 und der Heise-Version:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
diff /media/ubuntu-12.04.4/casper/filesystem.manifest /media/ubuntu-12.04.4-nonpae/casper/filesystem.manifest
84a85
> crda  1.1.2-1ubuntu1
346a348
> iw    3.2-1
984,989c986
< linux-generic-lts-saucy       3.11.0.15.14
< linux-headers-3.11.0-15       3.11.0-15.25~precise1
< linux-headers-3.11.0-15-generic       3.11.0-15.25~precise1
< linux-headers-generic-lts-saucy       3.11.0.15.14
< linux-image-3.11.0-15-generic 3.11.0-15.25~precise1
< linux-image-generic-lts-saucy 3.11.0.15.14
---
> linux-image-3.2.0-49-generic  3.2.0-49.75
1342a1340
> wireless-regdb        2011.04.28-1ubuntu3

Auf den ersten Blick wurde also nicht viel geändert. Die Kernel- und Header-Versionen aus der Originalversion wurden entfernt, ein Kernel der 3.2er-Serie, die noch ohne PAE-Abfrage auskommt sowie die zusätzlichen Pakete cdra, iw und wireless-regdb wurden eingefügt.

Nur die Kernelversion wurde verändert?

Korrekt! Und mit Version 3.2.0-49 eine sehr veraltete, die schon beim Release von Ubuntu 12.04.3 im August 2013 nicht mehr aktuell war. Laut eigenen Aussagen hat sich der Ersteller weder darum gekümmert, ob es sich um den im Artikel genannten „aktuellen Kernel“ handelt, noch darum ob dieser mit den mitgelieferten Grafiktreibern nutzbar ist. Schaut man sich des Weiteren das Changelog 🇬🇧 des neuesten Kernels an, sieht man, dass es in der Zeit zahlreiche wichtige Verbesserungen gab.

Nur die Kernelversion wurde verändert?

Ja! Auf Kernel-Header wurde verzichtet. Die Nutzung von proprietären Grafiktreibern, WLAN-Treibern, Virtualisierungssoftware wie VirtualBox ist damit nicht möglich. Ubuntu hat 1068341 gefixt, heise stellt ihn künstlich wieder her.

Aber nicht nur das, auf die dazugehörigen Metapakete linux-generic, linux-image-generic und linux-headers-generic wurde ebenfalls verzichtet. Der schon zum Installationszeitpunkt veraltete Kernel erhält also ohne Eingriff des Nutzers keinerlei Updates, obwohl die Kernel-Reihe 3.2 bis zum Support-Ende von Ubuntu 12.04 im April 2017 weiterhin unterstützt wird.

Nur die Kernelversion wurde verändert?

Ja! Mit Ubuntu 12.04 wurde die Möglichkeit eingeführt, den Kernel/LTSEnablementStack zu nutzen. Installiert man direkt Ubuntu 12.04.4 erhält man die Kernelversion und den Grafik-Stack von Ubuntu 13.10.

Im Ubuntu-Wiki heißt es dazu eindeutig:

We only intend to support HWE stack package combinations in 12.04 which are derived from the same release, eg. the 13.10 X.org must be used in conjunction with the 13.10 kernel and vice versa. Intermixing a 13.10 enablement kernel with the 12.04 X.org stack or a 13.10 enablement X.org stack with a 12.04 kernel will not be officially tested nor supported.

Also: Wenn X.org und entsprechende Treiber von 13.10 verwendet werden, dann nur in Zusammenhang mit dem Kernel von 13.10.

Per Befehl cat filesystem.manifest | grep saucy sollte man sich nochmals die Liste der verwendeten Pakete ansehen:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
libegl1-mesa-drivers-lts-saucy              9.2.1-1ubuntu3~precise1
libegl1-mesa-lts-saucy                      9.2.1-1ubuntu3~precise1
libgbm1-lts-saucy                           9.2.1-1ubuntu3~precise1
libgl1-mesa-dri-lts-saucy                   9.2.1-1ubuntu3~precise1
libgl1-mesa-glx-lts-saucy                   9.2.1-1ubuntu3~precise1
libglapi-mesa-lts-saucy                     9.2.1-1ubuntu3~precise1
libopenvg1-mesa-lts-saucy                   9.2.1-1ubuntu3~precise1
libxatracker1-lts-saucy                     9.2.1-1ubuntu3~precise1
x11-xserver-utils-lts-saucy                 7.7+0ubuntu2~precise1
xserver-common-lts-saucy                    2:1.14.5-1ubuntu2~saucy1~precise2
xserver-xorg-core-lts-saucy                 2:1.14.5-1ubuntu2~saucy1~precise2
xserver-xorg-glamoregl-lts-saucy            0.5.1-0ubuntu4.2~precise2
xserver-xorg-input-all-lts-saucy            1:7.7+1ubuntu6~precise1
xserver-xorg-input-evdev-lts-saucy          1:2.7.3-0ubuntu3.1~precise1
xserver-xorg-input-mouse-lts-saucy          1:1.7.2-3build1~precise1
xserver-xorg-input-synaptics-lts-saucy      1.7.1-0ubuntu1~precise1
xserver-xorg-input-vmmouse-lts-saucy        1:12.9.0-0ubuntu4~precise1
xserver-xorg-input-wacom-lts-saucy          1:0.20.0-0ubuntu1~precise1
xserver-xorg-lts-saucy                      1:7.7+1ubuntu6~precise1
xserver-xorg-video-all-lts-saucy            1:7.7+1ubuntu6~precise1
xserver-xorg-video-ati-lts-saucy            1:7.2.0-0ubuntu10~precise2
xserver-xorg-video-cirrus-lts-saucy         1:1.5.2-0ubuntu2~precise1
xserver-xorg-video-fbdev-lts-saucy          1:0.4.3-0ubuntu3~precise1
xserver-xorg-video-intel-lts-saucy          2:2.99.904-0ubuntu2.1~precise1
xserver-xorg-video-mach64-lts-saucy         6.9.3-0ubuntu3~precise1
xserver-xorg-video-mga-lts-saucy            1:1.6.2-0ubuntu2~precise1
xserver-xorg-video-modesetting-lts-saucy    0.8.0-0ubuntu1.1~precise1
xserver-xorg-video-neomagic-lts-saucy       1:1.2.7-0ubuntu3~precise1
xserver-xorg-video-nouveau-lts-saucy        1:1.0.9-2ubuntu1~precise2
xserver-xorg-video-openchrome-lts-saucy     1:0.3.1-0ubuntu2.1~precise1
xserver-xorg-video-r128-lts-saucy           6.9.1-0ubuntu2~precise1
xserver-xorg-video-radeon-lts-saucy         1:7.2.0-0ubuntu10~precise2
xserver-xorg-video-s3-lts-saucy             1:0.6.5-0ubuntu3.1~precise1
xserver-xorg-video-savage-lts-saucy         1:2.3.6-0ubuntu3~precise1
xserver-xorg-video-siliconmotion-lts-saucy  1:1.7.7-0ubuntu3~precise1
xserver-xorg-video-sis-lts-saucy            1:0.10.7-0ubuntu4~precise1
xserver-xorg-video-sisusb-lts-saucy         1:0.9.6-0ubuntu3~precise1
xserver-xorg-video-tdfx-lts-saucy           1:1.4.5-0ubuntu3~precise1
xserver-xorg-video-trident-lts-saucy        1:1.3.6-0ubuntu4~precise1
xserver-xorg-video-vesa-lts-saucy           1:2.3.2-0ubuntu3~precise1
xserver-xorg-video-vmware-lts-saucy         1:13.0.1-0ubuntu2~precise1

Der Nutzer erhält also nicht zum Kernel passende Pakete und wird vom Anbieter dieses Installationsmediums mit dem nächsten Problem allein gelassen.

In der entsprechenden Dokumentation steht weiterhin:

To remain on the original Precise stack there are a few options:

Install from a previous 12.04.0 or 12.04.1 point release and update. The previous 12.04.0 and 12.04.1 releases are archived at http://old-releases.ubuntu.com.

Perform an update or upgrade to Precise from a previous release

Sofern man ein Installationsmedium mit Non-PAE-Kernel auf dem aktuellen Stand haben will, kann sich das übrigens jeder mit Hilfe des 12.04.1-ISOs und einer Internetverbindung selbst erstellen.

Zum Beispiel mit diesem Skript, dessen Basis der Artikel LiveCD manuell remastern ist und dessen Ausgabedatei dann im Ordner work zu finden ist.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
wget http://old-releases.ubuntu.com/releases/precise/ubuntu-12.04.1-desktop-i386.iso 
mount -o loop ubuntu-12.04.1-desktop-i386.iso /mnt
mkdir -p work/{livecd,old,new}
chmod -R u+w work/livecd
cd work
cp -a /mnt/. livecd/
mount -t squashfs -o loop,ro /mnt/casper/filesystem.squashfs old
dd if=/dev/zero of=ubuntu-fs.ext2 bs=1M count=3096
mke2fs -F ubuntu-fs.ext2
mount -o loop,rw ubuntu-fs.ext2 new
rm -rf new/lost+found
cp -a old/. new/
umount old
umount /mnt
cp /etc/resolv.conf new/etc/
mount -t proc -o bind /proc new/proc
mount -o bind /dev/pts new/dev/pts
chroot new dpkg-divert --local --rename --add /sbin/initctl
chroot new ln -s /bin/true /sbin/initctl 
chroot new apt-get update
chroot new apt-get remove -y linux-generic* linux-image* linux-headers*
chroot new apt-get install -y linux-image-generic linux-headers-generic linux-image-generic
chroot new apt-get dist-upgrade -y
chroot new apt-get clean
chroot new rm /sbin/initctl
chroot new dpkg-divert --local --rename --remove /sbin/initctl
cp new/boot/vmlinuz* livecd/casper/vmlinuz
cp new/boot/initrd.img* livecd/casper/initrd.lz
chroot new dpkg-query -W --showformat='${Package} ${Version}\n' > livecd/casper/filesystem.manifest 
dd if=/dev/zero of=new/unused_space
rm new/unused_space
rm livecd/wubi.exe
rm livecd/casper/filesystem.squashfs
umount new/proc
umount new/dev/pts
mksquashfs new/. livecd/casper/filesystem.squashfs -comp xz
umount new
find livecd -type f -print0 |xargs -0 md5sum | tee livecd/md5sum.txt
genisoimage -o ubuntu-12.04.4-non-pae-i386.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -r -V "ubuntu_12.04.4-non-pae" -cache-inodes -J -l livecd

Der im heise-Artikel genannte weitere „Vorteil“ der angepassten Version, dass das ISO so auch auf einen Standard-CD-Rohling passt, ist im Übrigen eine Frage der Komprimierung. In obigem Skript-Beispiel wird xz verwendet, wodurch das Image 649 MB Größe hat und ebenso auf einen CD-Rohling passt.

Im Großen und Ganzen kann ich mich des Eindrucks nicht erwehren, man hätte dem Praktikanten ein ISO-Image und einen aus dem Lostopf gezogen Kernel mit dem Auftrag „Mach mal was draus!“ gegeben.

Sollte das Installations-Image in dieser Form größere Verbreitung finden, dürfte das zumindest dafür sorgen, dass der Community so schnell nicht die Arbeit im Support ausgeht. 😉

Übrigens: Xubuntu 12.04.4 kann vollkommen ohne Veränderungen als Installationsmedium für Geräte ohne PAE-Unterstützung genutzt werden, wird noch bis April 2015 unterstützt und benötigt dank der Desktopumgebung Xfce auch keine 3D-Beschleunigung.

In Trusty Tahr wird eine neue Bootoption forcepae verfügbar sein 🇬🇧 , die das Booten des 32-Bit-Mediums ebenfalls auf einer Vielzahl der derzeit betroffenen Systeme möglich machen wird.

Update

Inzwischen wurde das ISO auf dem Heise-FTP-Server durch ein neues ersetzt. Leider treten auch hier noch Unstimmigkeiten auf, wenn auch bei weitem nicht mehr so viele wie vorher.

diff /media/ubuntu-12.04.4/casper/filesystem.manifest /media/ubuntu-12.04.4-nonpae/casper/filesystem.manifest
84a85
> crda	1.1.2-1ubuntu1
346a348
> iw	3.2-1
499a502,503
> libegl1-mesa	8.0.4-0ubuntu0.7
> libegl1-mesa-drivers	8.0.4-0ubuntu0.7
534a539
> libgbm1	8.0.4-0ubuntu0.7
557a563
> libgl1-mesa-dri	8.0.4-0ubuntu0.7
558a565
> libgl1-mesa-glx	8.0.4-0ubuntu0.7
560a568
> libglapi-mesa	8.0.4-0ubuntu0.7
677a686
> libllvm3.0	3.0-4ubuntu1
735a745
> libopenvg1-mesa	8.0.4-0ubuntu0.7
917a928
> libwayland0	0.85.0-1ubuntu2
936a948
> libxatracker1	8.0.4-0ubuntu0.7
984,989c996,1000
< linux-generic-lts-saucy	3.11.0.15.14
< linux-headers-3.11.0-15	3.11.0-15.25~precise1
< linux-headers-3.11.0-15-generic	3.11.0-15.25~precise1
< linux-headers-generic-lts-saucy	3.11.0.15.14
< linux-image-3.11.0-15-generic	3.11.0-15.25~precise1
< linux-image-generic-lts-saucy	3.11.0.15.14
---
> linux-headers-3.2.0-60	3.2.0-60.91
> linux-headers-3.2.0-60-generic	3.2.0-60.91
> linux-headers-generic	3.2.0.60.71
> linux-image-3.2.0-60-generic	3.2.0-60.91
> linux-image-generic	3.2.0.60.71
1342a1354
> wireless-regdb	2011.04.28-1ubuntu3
1374a1387,1388
> xserver-xorg	1:7.6+12ubuntu2
> xserver-xorg-core	2:1.11.4-0ubuntu10.14
1376,1382c1390
< xserver-xorg-glamoregl-lts-saucy	0.5.1-0ubuntu4.2~precise2
< xserver-xorg-input-all-lts-saucy	1:7.7+1ubuntu6~precise1
< xserver-xorg-input-evdev-lts-saucy	1:2.7.3-0ubuntu3.1~precise1
< xserver-xorg-input-mouse-lts-saucy	1:1.7.2-3build1~precise1
< xserver-xorg-input-synaptics-lts-saucy	1.7.1-0ubuntu1~precise1
< xserver-xorg-input-vmmouse-lts-saucy	1:12.9.0-0ubuntu4~precise1
< xserver-xorg-input-wacom-lts-saucy	1:0.20.0-0ubuntu1~precise1
---
> xserver-xorg-input-evdev	1:2.7.0-0ubuntu1.2
1384,1387c1392,1397
< xserver-xorg-video-all-lts-saucy	1:7.7+1ubuntu6~precise1
< xserver-xorg-video-ati-lts-saucy	1:7.2.0-0ubuntu10~precise2
< xserver-xorg-video-cirrus-lts-saucy	1:1.5.2-0ubuntu2~precise1
< xserver-xorg-video-fbdev-lts-saucy	1:0.4.3-0ubuntu3~precise1
---
> xserver-xorg-video-all	1:7.6+12ubuntu2
> xserver-xorg-video-ati	1:6.14.99~git20111219.aacbd629-0ubuntu2
> xserver-xorg-video-cirrus	1:1.3.2-4build1
> xserver-xorg-video-fbdev	1:0.4.2-4ubuntu2
> xserver-xorg-video-geode	2.11.13-2build1
> xserver-xorg-video-intel	2:2.17.0-1ubuntu4.4
1389,1393c1399,1403
< xserver-xorg-video-mach64-lts-saucy	6.9.3-0ubuntu3~precise1
< xserver-xorg-video-mga-lts-saucy	1:1.6.2-0ubuntu2~precise1
< xserver-xorg-video-modesetting-lts-saucy	0.8.0-0ubuntu1.1~precise1
< xserver-xorg-video-neomagic-lts-saucy	1:1.2.7-0ubuntu3~precise1
< xserver-xorg-video-nouveau-lts-saucy	1:1.0.9-2ubuntu1~precise2
---
> xserver-xorg-video-mach64	6.9.0-1build2
> xserver-xorg-video-mga	1:1.4.13.dfsg-4build2
> xserver-xorg-video-neomagic	1:1.2.5-2build2
> xserver-xorg-video-nouveau	1:0.0.16+git20111201+b5534a1-1build3
> xserver-xorg-video-openchrome	1:0.2.904+svn1050-1ubuntu0.1
1395,1404c1405,1416
< xserver-xorg-video-r128-lts-saucy	6.9.1-0ubuntu2~precise1
< xserver-xorg-video-radeon-lts-saucy	1:7.2.0-0ubuntu10~precise2
< xserver-xorg-video-s3-lts-saucy	1:0.6.5-0ubuntu3.1~precise1
< xserver-xorg-video-savage-lts-saucy	1:2.3.6-0ubuntu3~precise1
< xserver-xorg-video-siliconmotion-lts-saucy	1:1.7.7-0ubuntu3~precise1
< xserver-xorg-video-sis-lts-saucy	1:0.10.7-0ubuntu4~precise1
< xserver-xorg-video-sisusb-lts-saucy	1:0.9.6-0ubuntu3~precise1
< xserver-xorg-video-tdfx-lts-saucy	1:1.4.5-0ubuntu3~precise1
< xserver-xorg-video-trident-lts-saucy	1:1.3.6-0ubuntu4~precise1
< xserver-xorg-video-vesa-lts-saucy	1:2.3.2-0ubuntu3~precise1
---
> xserver-xorg-video-qxl	0.0.16-2ubuntu0.1
> xserver-xorg-video-r128	6.8.1-5build2
> xserver-xorg-video-radeon	1:6.14.99~git20111219.aacbd629-0ubuntu2
> xserver-xorg-video-s3	1:0.6.3-4build2
> xserver-xorg-video-savage	1:2.3.3-1ubuntu1
> xserver-xorg-video-siliconmotion	1:1.7.5-1build2
> xserver-xorg-video-sis	1:0.10.3-3build2
> xserver-xorg-video-sisusb	1:0.9.4-2build2
> xserver-xorg-video-tdfx	1:1.4.3-4build2
> xserver-xorg-video-trident	1:1.3.4-2build2
> xserver-xorg-video-vesa	1:2.3.0-7build2
> xserver-xorg-video-vmware	1:12.0.1-1ubuntu1.1

Es wurde also vieles ausgetauscht. Wie ein erneutes cat filesystem.manifest | grep saucy zeigt, sind allerdings immer noch Teile des Saucy-Graphic-Stacks installiert, die dort nicht hingehören und Probleme verursachen können:

libegl1-mesa-drivers-lts-saucy	9.2.1-1ubuntu3~precise1
libegl1-mesa-lts-saucy	9.2.1-1ubuntu3~precise1
libgbm1-lts-saucy	9.2.1-1ubuntu3~precise1
libgl1-mesa-dri-lts-saucy	9.2.1-1ubuntu3~precise1
libgl1-mesa-glx-lts-saucy	9.2.1-1ubuntu3~precise1
libglapi-mesa-lts-saucy	9.2.1-1ubuntu3~precise1
libopenvg1-mesa-lts-saucy	9.2.1-1ubuntu3~precise1
libxatracker1-lts-saucy	9.2.1-1ubuntu3~precise1
x11-xserver-utils-lts-saucy	7.7+0ubuntu2~precise1
xserver-common-lts-saucy	2:1.14.5-1ubuntu2~saucy1~precise2
xserver-xorg-core-lts-saucy	2:1.14.5-1ubuntu2~saucy1~precise2
xserver-xorg-lts-saucy	1:7.7+1ubuntu6~precise1
xserver-xorg-video-intel-lts-saucy	2:2.99.904-0ubuntu2.1~precise1
xserver-xorg-video-openchrome-lts-saucy	1:0.3.1-0ubuntu2.1~precise1
xserver-xorg-video-vmware-lts-saucy	1:13.0.1-0ubuntu2~precise1

In diesem Kommentar gibt der Autor an, er habe die bemängelten fehlenden Metapakete "aus Platzgründen" geopfert.

Leider macht das den ersten Eindruck nicht besser, denn das heißt, dass hier nicht aus Versehen vergessen wurde, den Kernel mit Updates zu versorgen und Kernel-Header zu installieren, sondern das dies absichtlich geschehen ist.

Auch die Aussage, es ginge lediglich darum, ein installierbares Image anzubieten, halte ich für ein solches Projekt für befremdlich, lässt es doch erahnen, dass dem Ersteller die zu erwartenden Probleme der Nutzer relativ egal zu sein scheinen.

Sehr positiv dagegen ist natürlich die schnelle Reaktion auf die geäußerten Mängel, auch wenn diese nicht in vollem Umfang beseitigt wurden.

Nochmals hier der Hinweis, dass der Verweis auf die Platzprobleme nicht ganz korrekt ist, denn wenn man mksquashfs mit der Option -comp xz verwendet, ist dieses Problem nicht vorhanden. Diese Option wird seit Kernel 2.6.38 unterstützt, ist also bereits seit März 2011 verfügbar.

Über den Autor

Thomas Laube, im Forum unter dem Namen tomtomtom zu finden, ist bekannt für klare Worte, weshalb er sie auch hier wählt. Er beschäftigt sich seit zehn Jahren ausführlich mit verschiedenen Linux-Distributionen und deren Support sowie der Erstellung von Live- und Installationsdatenträgern.