Skip navigation.

ReactOS

Dies soll eine kurze Anleitung sein, wie man die aktuellste Version von ReactOS unter Gentoo kompiliert und installiert.

Vorwort

Hier eine Schritt-für Schritt Anleitung, um ReactOS unter Gentoo Linux zu compilieren und installieren!
In dem HowTo wird davon ausgegangen, dass auf /dev/hdb1 eine FAT32 eingerichtet ist und diese unter /mnt/d gemountet ist.
Als Bootloader wird grub verwendet.
Ich habe dieses HowTo geschrieben, da es andscheinend keines in deutsch gibt, und auf der ReactOs-Homepage muss man sich auch erst alles auf einigen Webseiten zusammensuchen.
Achtung: ReactOs befindet sich noch im Entwicklungsstadium, am besten ist es ReactOs auf einem Test-Rechner zu installieren (wo auch mal was schiefgehen kann), ansonsten, ihr macht doch hoffentlich immer vor sowas Backups? :-)
Garantie das alles stimmt gibts natürlich keine.
Als ich den Versuch gemacht habe ReactOs zu Installieren war die Version "Revision 17092". (Wird nach jedem svn up / svn co ausgegeben, oder man gibt "svn info" in dem reactos svn-Verzeichnis ein)
Außerdem werden ~3GB Platz auf der Festplatte zum compilieren benötigt, der Quellcode schon an sich ist ziemlich gross. Im Moment compiliert ReactOS nur unter einer 32-bit Umgebung, AMD64 wird (noch) nicht unterstüzt. (siehe auch http://www.reactos.org/forum/viewtopic.php?t=1987 )
Für viele ist das selbstcompilieren unnötig, da es auch einen BuildBot gibt, der jede Version compiliert und Download anbietet.
Feedback bitte an matthias at abma.de
Und jetzt gehts schon los :-)

Vorbereitende Massnahmen

Quellcode runterladen

Um den aktuellen Quellcode runterzuladen braucht man einen Subversion client (siehe auch http://www.reactos.org/wiki/Subversion), unter Gentoo installiert man ihn mit
emerge dev-util/subversion
Dann kann man den Quellcode herunterladen:
mkdir ~/reactos
cd ~/reactos
svn co svn://svn.reactos.org/reactos/trunk/reactos
svn co svn://svn.reactos.org/reactos/trunk/rosapps
sollte der Download stehenbleiben, strg+c drücken und dann "svn cleanup" und dann nochmal svn co... eingeben. (kam bei mir mehrmals vor)
freeldr ist schon im modul reactos enthalten, dies ist (noch) fehlerhaft auf der homepage von reactos!
Hat man den Quellcode schon vorher runtergeladen, dann muss man nur in die beiden Verzeichnisse wechseln und jeweils svn up eingeben:
cd ~/reactos/reactos
svn up
cd ~/reactos/rosapps
svn up

Benötigte Programme installieren

als root und wenn noch nicht geschehen:
emerge xmingw-binutils xmingw-gcc xmingw-runtime xmingw-w32api
unter AMD64 sieht es etwas anders aus:
CFLAGS="-m32" emerge xmingw-binutils xmingw-gcc xmingw-runtime xmingw-w32api
und dann nocheinmal
emerge xmingw-binutils xmingw-gcc
damit g++ compiliert und installiert wird.

Umgebung Einrichten (Gentoo)

siehe auch http://www.reactos.org/wiki/Build_Environment
export PATH=$PATH:/opt/xmingw/bin/
export ROS_PREFIX='i386-mingw32msvc'

rosapps einbinden

symbolischen link in reactos/modules auf rosapps setzen
cd ~/reactos/reactos/modules
ln -s ../../rosapps/
cd ..

Konfigurieren

cp config.template.xml config.xml
und dann die datei config.xml editieren. In der Datei kann eingestellt werden, mit was für parametern compiliert wird. (Debugging/Prozessortyp/....)

rosapps einbinden und kompilieren
make depends

Kompilieren

und jetzt
make
im reactos Verzeichnis eingeben! Der Vorgang dauert recht lange (je nach Computer). Bei mir hat es ungefähr 30 Minuten gedauert (Athlon XP 1800+)
Sollte es Probleme geben, mit 'make clean' kann man nochmal von vorne anfangen!

Installieren

mkdir /mnt/d/reactos
export ROS_INSTALL=/mnt/d/reactos
make install
eingeben.
Und jetzt noch den Freeloader auf die Partition kopieren
cp output-i386/boot/freeldr/freeldr/freeldr.sys /mnt/d
cp boot/FREELDR.INI /mnt/d

Freeloader konfigurieren

In diesem Beispiel soll ReactOS auf /dev/hdb1 installiert werden. /dev/hdb1 ist unter /mnt/d gemountet.
Auszug aus /mnt/d/FREELDR.INI:
[Operating Systems]
ReactOSHDD="ReactOS (HardDriveD)"
[ReactOSHDD]
BootType=ReactOS
SystemPath=multi(0)disk(0)rdisk(1)partition(1)\reactos
Options=/DEBUGPORT=SCREEN
Kernel=\REACTOS\SYSTEM32\NTOSKRNL.EXE
Hal=\REACTOS\SYSTEM32\HAL.DLL

grub konfigurieren

Ich verwende grub als Bootloader auf /dev/hda, von diesem aus kann alles gestartet werden, auch ReactOS!
auszug aus /boot/grub/grub.conf
title ReactOS
root (hd1,0)
kernel /freeldr.sys DefaultOS=ReactOS TimeOut=4

Reactos starten

Zu beachten gibts da eigentlich (noch?) nichts... :-)

Fehlermeldungen

Kurze übersicht über bekannte Fehlermeldungen und was dann zu tun ist, falls alles nichts hilft einfach ein bisschen auf das nächste svn-update warten, leider geht dort öfters mal was kaputt :-)

mingw32-dlltool: Kommando nicht gefunden

siehe Umgebung Einrichten

make: i386-mingw32msvc-g++: Kommando nicht gefunden

Siehe Benötigte Programme installieren

make: *** Keine Regel vorhanden, um das Target "subsys/system/devmgr/devmgr.xml"

,benötigt von "makefile.auto", zu erstellen. Schluss.
Einfach makefile.auto mit
rm makefile.auto
löschen und dann nocheinmal
make
eingeben.

i386-mingw32msvc-windres: calc.rsrc.res.tmp: Not a valid WIN32 resource file

Es ist vermutlich eine zu alte Version der xmingw-binutils installiert. ReactOS benötigt zum compilieren den >=xmingw-gcc-3.4.4, dieser ist leider noch als unstable (z.B. für amd-64) im Portage makiert.
ein
ACCEPT_KEYWORDS="~x86" emerge xmingw-binutils xmingw-w32api xmingw-runtime xmingw-gcc
sollte wunder wirken ;-)

Fazit

Im vergleich zu meinem ersten Versuch ReactOS zu installieren gab es echt keine Probleme. Der erste Versuch war gescheitert, weil ich es nicht geschafft hatte den Freeloader so zu konfigurieren, dass er von der zweiten Festplatte startet, jedoch mit der aktuellen Version war das kein Problem!
ReactOS selber ist noch sehr Buggy, das merkt man auch, z.B. flimmert der Mouse-Cursor manchmal, Fenster werden teilweise nicht neugezeichnet, viele Anwendungen sind auch einfach noch nicht fertig, aber die Entwicklung schreitet finde ich sehr schnell voran, (hoffentlich) bald ist es wohl auch zu etwas zu gebrauchen!
Netzwerk habe ich noch nicht versucht einzurichten, aber ich glaube, das ist auch noch extrem Buggy, weswegen ich wohl noch etwas warten werde, aber sonst scheint es ganz gut zu funktionieren!

Links

 

Developement