http://www.pronix.de -> Forum -> Linux-Unix Programmierung

Forum: Linux-Unix Programmierung

Moderatoren: juergen, Martin Conrad

Thema: Portierung einer C-Applikation aus dem User-Space in den Kernel-Space

  • (nur registrierte Mitglieder)
So ich melde mich nach einger Zeit wieder.

bin dabei den Preempt Kernel zu testen.
Ich bin nach folgender Anleitug gegangen und den Kernel 2.6.24.7 genommen:

Die Installation verlief erfolgreich.

Dazu habe ich noch einige Fragen:

Nun habe ich in /lib/modules/2.6.24.7-preempt 2 Links
build -> /usr/src/linux-2.6.27.7
source -> /usr/src/linux-2.6.24.7

Sind diese Links korrekt?

Worauf muss in der Link linux in /usr/src zeigen?

Ich muss dann noch ein Treiber kompilieren. Muss ich dazu den linux link auf de neuen preempt-headers
verlinken?

Gruß
Juri
 
Hi Juri,

Was ist der aktuelle Stand deines Projektes? Hast du die Applikation portiert?

Zitat:
Ich bin nach folgender Anleitug gegangen und den Kernel 2.6.24.7 genommen:


1) Welche Anleitung? Ich sehe keinen Link oder ähnliches.
2) Warum Kernel 2.6.24? Der latest stable RT Preempt Kernel ist 2.6.33.

Zitat:
Die Installation verlief erfolgreich.


D.h. du hast jetzt einen lauffähigen RT Prempt Kernel?
Falls nein: Ich habe mir vor ein paar Tagen den aktuellen RT Preempt kompiliert, und auf der OSADL-Seite (externer link) findet man dazu eine nette Kurzanleitung.

Zitat:
Worauf muss in der Link linux in /usr/src zeigen?


Wird im Dokument Konfigurieren, Compilieren und Installieren eines Kernels 2.6 unter openSUSE Linux (externer link) (lesenswert Grafik: Smilie Gluecklich ) sehr ausführlich behandelt, obs stimmt was dort steht weiß ich nicht:

Zitat:

Immer wieder kommt es zu Missverständnissen, was den Link /usr/src/linux angeht. Prinzipiell muss dieser Link nicht existieren (Linus Torvalds geht sogar soweit zu sagen, der Link sollte nicht existieren). Er ist zum Konfigurieren, Compilieren und Installieren eines neuen Kernels nicht nötig. Existiert dieser Link aber, so sollte er immer auf die Kernel-Quellen des momentan laufenden Kernels zeigen. Der Link wird (leider nachwievor) manchmal benutzt, wenn externe Kernel-Module compiliert werden; oft wertet das entsprechende Makefile nicht den Link /lib/modules/`uname -r`/build aus (was es eigentlich tun sollte), sondern vertraut darauf, dass /usr/src/linux korrekt gesetzt ist. Nur wenn die korrekten Linux-Header zum Compilieren des Modules eingebunden werden können, wird es auch zum Kernel passen und sich laden lassen. Sofern also beim Installieren von neuen Kernel-Quellen der Link /usr/src/linux existiert und auf ein existierendes Verzeichnis mit (älteren) Kernel-Quellen, die zum momentan laufenden Kernel passen, zeigt, kann er zunächst unberührt bleiben. Erst nachdem ein neuern Kernel compiliert, installiert und erfolgreich gebootet wurde, sollte der Link /usr/src/linux angepasst werden. Installiert man Kernel-Quellen per RPM, so wird u.U. der Link automatisch verändert. Hier sollte man als Anwender ein Auge darauf haben und gegebenenfalls von Hand einschreiten (oder den Link ganz löschen).


mfg, Wolfgang

--
Hex, Bugs and Rock 'n Roll

 
Hab mir grad die EtherLab-Homepage (externer link) angesehen, und festgestellt, dass das die Entwickler die gleichen Herrschaften sind die das Buch Linux für Industrielle Steuerungen (externer link) geschrieben haben.

Ich hoffe für den Erfolg deines Projektes, dass die von der Programmierung mehr Ahnung haben als vom Bücher-Schreiben Grafik: Smilie Juchuh

BTW: Möchte jemand ein Buch geschenkt haben? Grafik: Smilie Zwinker

--
Hex, Bugs and Rock 'n Roll

 
Hallo Wolfgang,

ja ich habe die Applikation erfolgreich portiert bekommen.

zu 1) tut mir Leid, ich weiß nicht wo der Link hin ist, war mir sicher den eingefügt zu haben, aber doch wohl vergessen.

Anleitung (externer link)

zu 2) Ich nutzte diese Kernelversion da ich einen Treiber verwende, welcher laut meinem Wissensstand nur bis 2.4.26 erfolgreich getestet wurde.
Außerdem muss die Kernelversion auch mit dem EtherCAT-Master kompatibel sein.

Der RT PREEMPT Kernel läuft jetzt. Die Zykluszeit ist momentan auf 500µs eingestellt.

Ich werde mir deine Links bei Gelegenheit angucken, danke schon mal dafür.

Gruß
Juri

 
  • (nur registrierte Mitglieder)