Kategorie: Computer

Fedora über PXE und NFS installieren

Da mein neuer Tablet PC, ein Lenovo X61 Tablet , ohne optisches Laufwerk ausgeliefert wird, stellt es eine kleine Herausforderung dar Linux oder überhaupt ein Betriebssystem zu installieren, da diese ja doch meist auf einer CD oder DVD ausgeliefert werden. Alternativ gibt es natürlich den Weg über eine bootbare USB-Festplatte oder einen USB-Stick. Da mein Stick allerdings nur 128 MB fasst habe ich hier Platzprobleme. Einen neuen Stick kaufen wollte ich auch grade nicht. Aber es gibt ja noch den Weg über das Netzwerk zu booten und das Installationsmedium über das Netzwerk freizugeben.

Dazu benötigt man einen Rechner der als Server für PXE (Preboot Execution Environment) und NFS (Network File System) dienen kann. Hierzu diente mir mein Laptop auf dem bereits Debian installiert ist als Ausgangsbasis.

Die benötigten Pakete erhält man über den Paketmanager seiner Wahl, diese sind:

1
2
3
4
dhcp3-server
unfs3
tftpd-hpa
xinetd

Danach benötigt man noch sinnvollerweise das PXELINUX, welches man über SYSLINUX beziehen kann. Direkter Link zum Download. Aus der recht umfangreichen gepackten Datei benötigt man nur die Datei:

1
pxelinux.0

Diese befindet sich normalerweise im Core-Verzeichnis. Ebenfalls sollte man sich das aktuelle DVD Abbild von Fedora besorgen (zu finden hier).

Damit hat man alle benötigten Dateien und auch das entsprechende Zubehör.

Die Einrichtung ist im Prinzip recht einfach, es gab nur ein paar Dinge die ich zu beachten herausgefunden habe. Als liebstes Arbeitswerkzeug für die folgenden Schritte nehme man eine Root-Konsole, alternativ eine normale Konsole, welchen Schritten jeweils ein sudo voranzustellen ist, weiß ich nicht.

Der erste Schritt, ist die Konfiguration des DHCP Servers. Ich empfehle hier die Netzwerkinstallation fernab von Routern und anderen Netzen durchzuführen, da es eventuell zu Komplikationen zwischen den einzelnen Einrichtungen kommen kann.
Zuerst sollte man sich überlegen welche Netzwerkschnittstelle man nutzen möchte, in meinem Fall war das die einzige Kabelschnittstelle die mein Laptop zur Verfügung hatte unter Linux als eth0 bezeichnet.
Um zu verhindern, dass es lustige Überschneidungen mit meinem WLAN gibt habe ich ein anderes Subnet gewählt (192.168.3.x statt 192.168.1.x).
Zuerst empfiehlt es sich dann die MAC-Adresse der Schnittstelle über ifconfig herauszufinden. Ifconfig gibt einem in etwa so eine Antwort:

1
2
3
4
5
6
7
eth0      Link encap:Ethernet  Hardware Adresse <strong>XX:XX:XX:XX:XX:XX</strong>  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Speicher:f8200000-f8220000

Wobei statt den XXen natürlich die richtige MAC-Adresse steht. Diese schreibt man sich auf oder kopiert sie in die Zwischenablage (markieren mit der Maus, Strg-Shift-C).
Dann editiert man die DHPC Konfiguration, ich verwende gerne Nano, man kann aber einen anderen Texteditor nach Wahl verwenden:

1
nano /etc/dhcp3/dhcpd.conf

Diese ändert man ab bis nur noch folgende Einträge vorhanden sind:

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
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
# Eigene Konfiguration ab hier -------
next-server  192.168.3.10;  # Server für Bootvorgang festlegen
allow bootp;  # BootP erlauben
allow booting; # booten erlauben
# Subnetzmaske definieren
option subnet-mask  255.255.255.0;
# ping erlauben
ping-check = 1;
# Wichtig - Dateiangabe für PXE
filename="pxelinux.0";
# Subnetz-IP-Adresse
subnet 192.168.3.0;
# zugelassene IP-Adressen einstellen
netmask 255.255.255.0 {
range 192.168.3.11  192.168.3.254
}
# Dem eigenen Server eine feste IP zuweisen
host pxeserv{
   hardware ethernet  <strong>XX:XX:XX:XX:XX:XX</strong>
   fixed-address 192.168.3.10
}

Die XXe wieder mit der bereits gesicherten MAC-Adresse ersetzen.
Damit wäre die Konfiguration des DHCP-Servers bereits abgeschlossen.

Als nächstes legen wir das Verzeichnis /var/lib/tftpboot/ an (bei mir war es bereits vorhanden):

1
mkdir -p /var/lib/tftpboot

Und wenn wir gerade dabei sind können wir auch gleich das Verzeichnis /var/lib/tftpboot/pxelinux.cfg anlegen (ja es ist wirklich ein Verzeichnis und keine Datei):

1
mkdir -p /var/lib/tftpboot/pxelinux.cfg

Dann benötigen wir noch ein weiteres Verzeichnis für das Mounten des Images für das NFS-System:

1
mkdir -p /mnt/fedora

Dann konfigurieren wir tftp, dazu editieren wir die Datei /etc/xinetd.d/tftp:

1
nano /etc/xinetd.d/tftp

Diese Datei sollte dann so aussehen (Copy & Paste ;)):

1
2
3
4
5
6
7
8
9
10
service tftp
{
     disable = no
     socket_type = dgram
     wait = yes
     user = root
     server = /usr/sbin/in.tftpd
     server_args = -v -s /var/lib/tftpboot
     only_from = 192.168.3. 127.0.0.1
}

Das war dann auch schon die Konfiguration von tftp.

NFS ist noch einfacher zu konfigurieren indem man einfach die Datei /etc/exports:

1
nano /etc/exports

Hier muss einfach das Mountverzeichnis und die Leseberechtigungen angegeben werden :

1
/mnt/fedora  192.168.3.0/24 (ro,sync)

So nun müssen wir nur noch ein paar Dateien an ihren vorgesehen Ort bringen und die PXE Konfiguration durchführen.

Dazu mounten wir das Fedora Image:

1
mount -o loop <strong>/home/fedora.iso</strong> /mnt/fedora

Wobei man natürlich den richtigen Pfad zum Image nehmen sollte.

Dann kopieren wir zwei wichtige Dateien (vmlinuz und initrd.img):

1
2
cp /mnt/fedora/images/pxeboot/vmlinuz /var/lib/tftpboot
cp /mnt/fedora/images/pxeboot/initrd.img /var/lib/tftpboot

Jetzt fehlt nur noch die Konfiguration von PXELINUX, dazu legen wir einfach die default Konfiguration fest, theoretisch kann man für jeden PC im Netz eine eigene Konfiguration abspeichern und so für jeden PC ein eigenes System booten lassen.

1
nano /var/lib/tftpboot/pxelinux.cfg/default

Hier sind nur ein paar Zeilen einzufügen:

1
2
3
4
5
default linux
timeout 25
label linux
        kernel vmlinuz
        append initrd=initrd.img

Damit ist eigentlich alles soweit fertig, nun müssen die Dienste nur noch alle gestartet werden:
Falls das Image gemountet ist, muss es jetzt erneut gemountet werden (siehe oben).

1
2
3
4
ifconfig eth0 192.168.3.10
/etc/init.d/dhcp3-server restart
/etc/init.d/xinetd restart
/etc/init.d/unfs3 restart

Jetzt sollte sich der angeschlossene PC über das Netzwerk booten lassen und nach einiger Zeit sollte ein recht hässlicher Miniinstaller von Fedora sichtbar sein, dieser fragt nach Sprache, Tastaturlayout und danach nach der Installationsquelle. Hier könnte man den Rechner wohl auch über Kabel wieder an einen Router anschließen und eine HTTP-Quelle angeben. Da wir uns aber schon für NFS entschieden haben wählen wir NFS aus. Die Netzwerkschnittstelle lassen wir automatisch konfigurieren.
Als NFS-Server nehmen wir 192.168.3.10 und als Verzeichnis /mnt/fedora
Jetzt passiert eine zeitlang scheinbar nichts mehr, allerdings kann man an den Netzwerkschnittstellen kontrollieren ob etwas übertragen wird.

Damit sollte sich dann die grafische Fedorainstallation starten.


Registry-Key für große Soundfonts

Ich bin mir nicht sicher ob das Problem aktuell noch besteht, jedoch schreibe ich die Lösung lieber auf bevor sie in Vergessenheit gerät.

Das Problem überhaupt: Beim laden von sehr großen Soundfont-Dateien in den Speicher (abgezweigt vom Hauptspeicher) bei Audigy oder auch X-Fi Soundkarten wurde der Vorgang mit einer nicht leicht verständlichen Fehlermeldung abgebrochen.

Die Ursache ist wohl ein zu klein gewählter Wert für irgendeine Speicherverwaltung.

Abhilfe schafft ein Registryschlüssel der zur aktuellen Registry hinzugefügt werden muss beziehungsweise  geändert.

1
2
3
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
"PagedPoolSize"=dword:ffffffff

Das ganze gibt natürlich auch als einfachen Download. 

Soundfont Upload Fix


GeoGebra

Bei einer kleinen Visite bei Heise, bin ich wiedereinmal ins Stöbern gekommen. Zuerst bin ich über einen Passwort Ausleser für Opera gestolpert, der allerdings nur bis Opera Version 8.x funktioniert und daher uninteressant für mich ist.

Dabei bin ich dann über die Sektion Wissenschaftliche Software gestolpert. Dort wiederum gab es ein Special bei der ausgesuchte Software vorgestellt wird.

Und dann auf der zweiten Seite fand ich eine Software die ich in dieser Art schon gesucht hatte, ein Zeichenprogramm mit dem man die „gewöhnlichen“ Zeichenarten hat, die man aus der Mathematik kennt. Also einen Mittelpunkt und Radius und schon hat man einen Kreis, Tangenten anlegen auch kein Problem. Das ganze noch im Plattform unabhängigen Java.

Das ganze erweitert sich dann noch um die zusätzliche Dimension, dass man Funktionsgleichungen einfach eintippen kann und schon bekommt man die Funktion gezeichnet. Also hat man eine Art grafischen Taschenrechner mit sehr hoher Auflösung gleich mit dabei.  Dort kann man dann auch gleich die Ableitung bilden lassen, das Integral, die dann automatisch Abhängig sind von der Ausgangsfunktion und aktualisiert werden. So schön Matlab ist mit seinen numerischen Lösungsverfahren und der recht eingängigen Programmierung, so ist es doch einfach etwas anderes wenn man eine Funktion anpacken kann und mit der Maus einfach so verschiebt wie man es gerne haben möchte.

Für einen LaTeX-Nutzer wie mich ist die Funktion: Export to PSTricks natürlich traumhaft. Man bekommt ein Codeschnipsel welches sich einfach in eine TeX-Datei einbinden lässt. Nur leider funktioniert irgendetwas nicht richtig, zumindest beim einfachen Kopieren und Einfügen bekomme ich 30 Fehler ausgegeben.
Wenn ich allerdings etwas nachgedacht hätte wäre mir in den Sinn gekommen, dass PSTricks nur bei Latex -> PS und nicht bei Latex -> PDF funktioniert. Wählt man also den Weg Latex->PS->PDF geht es einwandfrei. Nur ist das nicht optimal da durch die mehrmalige Wandlung die Fehleranfälligkeit steigt.
Abhilfe ist aber bereits in Arbeit, da in der Entwicklerversion bereits ein Export zu PGF/TKIZ realisiert wird. Der hat wohl noch ein paar Bugs aber das wird schon.

Offizielle GeoGebra Webseite.

Entwicklungs Seite GeoGebra (hier findet sich die aktuellste Version)


Navit – GPG Key

Da ich anfangs Probleme hatte den GPG Schlüssel für die Navit-Quellen zu importieren bin ich nun bei der Suche nach dem Schlüssel CB229096 über eine Seite gestolpert die gleich eine komplette Befehlszeile mitgeliefert hat mit der man problemlos den Schlüssel hinzufügen kann, dadurch erspare ich mir beim Aktualisieren nun die lästigen Bestätigungen, dass ich mir auch sicher bin das Navit aus einer vertrauenswürdigen Quelle stammt.

1
2
gpg --keyserver x-hkp://gpg-keyserver.de --recv-keys CB229096
gpg --export -a CB229096 | sudo apt-key add -

Vor keyserver, export und recv-keys sollte ein Doppelminus stehen, jedoch wandelt WordPress dies automatisch in einen Gedankenstrich um.

Die Code-Umgebung stellt die Minuszeichen korrekt dar 🙂

Für Ubuntu benötigt man wohl noch ein sudo vor den Befehlen, unter Debian habe ich das Root-Terminal benutzt.

Der Vollständigkeit halber noch die ursprüngliche Quelle:

Christian Karrié: NavIt.