Kernel Entwickling/SVN
Aus NAS Wiki
Kernelentwicklung für die Gemini-Plattform
ICYBOX 4220B, Taurus GigaLan, MRT 35HD-DUAL-NAS-E
soweit bekannt
Die Projekt Seite ist auf Sourceforge.net unter
http://sourceforge.net/projects/gemini-board/
sowie der direkte Einstiegt unter
http://sourceforge.net/svn/?group_id=241746
zu finden
Ein SVN (Subversion) ist auch eingerichtet. Adresse vom SVN
https://gemini-board.svn.sourceforge.net/svnroot/gemini-board
Eine kurze Anleitung fur User die sich ihren Kernel selber bauen wollen. Für Entwickler gibt es eine "erweiterte" Anleitung.
Ein Checkout des aktuellen Codes ist mit SVN für jeden (anonymous) möglich
svn co https://gemini-board.svn.sourceforge.net/svnroot/gemini-board/trunk/kernel kernel
Folgende Beschreibung bezieht sich auf ein Linux-System, auf eine Compiler-Umgebung unter Windows wird hier nicht eingegangen. Cross-Comiling . Nativ auf der Box aber auch möglich.
Um die "zentralen" Makefiles vom Kernel sauber zu halten, was inbesondere den Namen vom Compiler betrifft, sollten bei den Entwicklern/Usern Wrapper-Scripte benutzt werden.
Als praktisch hat sich erwiesen, diese z.B. im "~/Scripts" Verzeichnis zu erstellen, um dort die Wrapper abzulegen, diese Verzeichnis wird dann im Suchpfad mit angegeben.
In der ~/.bashrc vom User muß dann nur noch ein
export PATH="~/Scripts:${PATH}"
angegeben werden dann sind diese mit im Suchpfad drin.
Und nun die Scripte
menuconfig:
#!/bin/bash make ARCH="arm" menuconfig
make3 (GCC Version 3.4.6):
#!/bin/bash make ARCH="arm" CROSS_COMPILE="arm-softfloat-linux-uclibc-" zImage && \ cp arch/arm/boot/zImage /var/tftp ls /var/tftp -l echo -n -e "\a"
make4 (GCC Version 4.1.6):
#!/bin/bash make ARCH="arm" CROSS_COMPILE="arm-linux-gnu-" zImage && \ cp arch/arm/boot/zImage /var/tftp ls /var/tftp -l echo -n -e "\a"
Wie man sehen kann wird nach erfolgter Compilierung der Kernel ist das Verzeichnis vom TFTP-Server kopiert, damit er dann getestet werden kann. Danach folgt noch ein kleine akkustische Meldung, damit eine eventuelle Kaffepause unterbrochen werden kann, falls dies alles auf der ARM-Plattform passiert.
Die Unterstützung für >2TB Laufwerke unter BlockDevices bitte nicht aktivieren !!
Erklärung siehe ggf. Entwickler Info.
Ab hier Entwickler INFOs
Wie gesagt befindet sich das SVN-Repository unter
https://gemini-board.svn.sourceforge.net/svnroot/gemini-board
Für einen Commit (Schreibzugriff) ist zwingend eine Anmeldung als User bei Sourceforge erforderlich.
Bitte danach mit (ElektrmoAn) eine PM im Board zukommenlassen, mit den Usernamen, damit ich die Rechte freischalten kann.
Es sind auch noch einige Mailinglisten aktiviert, z.B. kann beim svn-commit automatisch eine Meldung an alle Entwickler verschickt werden.
Alle Pfadangaben sind jetzt relativ zu diesem
Im Verzeichnis
/experimental
sind noch experimentelle Zweige von Kerneln zu finden.
eingepflegt sind zur Zeit die Sourcen von
/experimental/unionfs /experimental/squashfs
Diese Sourcen sind noch nicht komplett fehlerfrei. Beim Testen wurde herausgefunden, daß die USB-Unterstützung fehlerhaft ist. Es kann nur die erste USB-Schnittstelle mit den Patches benutzt werden. Der Compiler läuft einwandfrei durch, der Fehler erfolgt erst beim Booten.
Folgende Aufgaben sind noch zu erledigen. Code mergen von
/experimental/unionfs /experimental/squashfs
nach
/experimental/union-sqaushfs
Weitere Arbeiten
/experimental/usb-rewrite
komplettes aufräumen des USB-Codes geplant, damit einige Code-Teile nicht doppelt im Kernel auftauchen. Es ist auch dann einfacher diesen zu warten. Der aktuelle Code ist soweit es aussieht schon fehlerfrei. Beim kopieren der Sourcen und nachträglichen änderen sind wohl ein paar Bezeichner vergessen worden. Kannt aber icht garantiert werden.
/experimental/mtd-rewrite
Aufräumen des MTD-Treibers, die Partiontabelle soll nicht Hard-Coded im Kernel sein. Der Kernel kann einen Redboot-Partitionstable auswerten. Die einzige Partitionstabelle soll im Flash liegen.
Der fehlenden (hoffentlich vorhandene) Hardware Zufallzahlengenerator soll unterstützt werden. Header Datei (5 Zeilen) ist vorhanden. aber nicht auf Gemini angepaßt, diese sind noch von der Centroid Plattform.
Denächst kommt noch der Bootloader ins SVN, Pfadangabe
/experimental/bootloader
--ElektromAn 23:15, 12. Nov. 2008 (CET)



