Kernel-newbie Frage

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
southy
Beiträge: 11
Registriert: 18.07.2007 16:06:06

Kernel-newbie Frage

Beitrag von southy » 18.07.2007 16:16:20

Hallo,

Bitte jetzt nicht lachen, aber ich habe da eine Frage, die Euch sicher ein bisschen einfach vorkommt.

ich will ein paar Netzwerksimulationen mit Nistnet fahren. Unglücklicherweise muss man das selbst kompilieren. Noch unglücklicherweise habe ich als Lastgeneratoren nur richtig alte Rechner (P200, 2GB Platte), so daß ich nur ein Debian in Minimalkonfiguration draufgemacht habe + X11+ Fluxbox.

Das heisst jetzt, ich habe offenbar keine Kernel-Sourcen drauf, zumindest, soweit ich das verstehe: /usr/src ist total leer.
(Da sollten die doch sein? Oder sind sie vllt woanders?)

Ja, ich habe jetzt erstmal "kernel-package" und gcc nachinstalliert und soweit ich das verstehe, brauche ich jetzt noch "kernel-source-xxxxx".
Nur:
1) "apt-cache search kernel-source" bringt kein Ergebnis. Woher bekomme ich die überhaupt? Anderes Repository?
2) Was gebe ich denn als "xxx" (=Version) an? Ich nehme doch mal stark an, die sourcen müssen zu dem Kernel passen, der grade läuft und ich habe keine Ahnung, was das für einer ist. ein aktueller debian in der "Visitenkarten-CD"-Version halt. Wie finde ich raus, welche Version ich brauche?

Brauche ich noch irgendwas anderes?
Irgendein Meta-Paket, wo alles komfortabel drin ist, was ich brauche?
Nachher muss ich dann irgendwie anscheinend auch noch ein Modul in den Kernel laden. Dafür noch irgendwas spezielles nötig?

Am besten wäre natürlich, es würde nistnet einfach fertig kompiliert geben. Aber damit bin ich hier wohl falsch. :-)

VIelen Dank und viele Grüße,
southy

Benutzeravatar
towo
Beiträge: 4552
Registriert: 27.02.2007 19:49:44
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von towo » 18.07.2007 17:05:38

"apt-cache search kernel-source" bringt kein Ergebnis.
Versuchs mal mit linux-source.

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von cirrussc » 18.07.2007 21:14:39

Hi,

was für ein Kernel gerade läuft erfährst du mit

Code: Alles auswählen

uname -r
Kernel-package ist doch schon ein Metapacket was alles benötigt um einen Kernel mit make-kpkg zu erstellen.

Wenn für zusätzliche Modulkompilierungen die Kernel-header benötigt werden reicht es die kernel-headers zu installieren.

Um Module zu laden modprob Modulname ausführen (root!).

Aber ehrlich gesagt auf so einer Maschine Kompiieren?!
Das ist so ziemlich das stressigste mit dem du dein System ausreizen kannst (viel RAM, schnelle CPU,...).

Du brauchst Stunden dafür

Gruß cirrussc
Zuletzt geändert von cirrussc am 18.07.2007 21:36:44, insgesamt 1-mal geändert.

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22454
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 18.07.2007 21:24:48

cirrussc hat geschrieben:Hi,

was für ein Kernel gerade läuft erfährst du mit

Code: Alles auswählen

uname -r
Kernel-package ist doch schon ein Metapacket was alles benötigt um einen Kernel mit make-kpkg zu erstellen.
:?: :?: In dem Paket befindet sich make-kpkg . Der Rest wird dann durch Abhängigkeiten nachgezogen bei der Installation.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von cirrussc » 18.07.2007 21:44:32

Ja natürlich durch Abhängigkeiten, "enthalten" hab ich falsch ausgedrückt.

southy
Beiträge: 11
Registriert: 18.07.2007 16:06:06

Beitrag von southy » 19.07.2007 09:16:31

Hallo rundum,

vielen Dank erstmal für die Hilfen.

@cirrussc:
Ja, ich weiss, daß kompilieren mit einem so alten Rechner dauern kann. Aber ich will ja auch keinen neuen Kernel, sondern nur ein Programm kompilieren, welches ein Kernelmodul mitbringt. Klar habe ich auch schnelle Rechner hier, aber mir jetzt beizubringen, wie man etwas so kompiliert, daß es dann auf einem anderen System läuft, dürfte wohl noch länger dauern ;-)
Wie lange das dauert ist auch ziemlich egal, ich brauche das für eine wichtige Arbeit für die Uni, wenns 24h dauert, dauerts halt 24h. :-) (und aus unerfindlichen Gründen gibts das Prog nicht als binary.)

Zurück zum Problem:

Dank Eurer Hilfe weiss ich jetzt, daß ich die 2.6.18-4-486 habe
und habe jetzt noch zusätzlich linux-source-2.6.18 installiert.

Das ./configure von dem Programm davon sagt aber nach wie vor:
You need to install the kernel source!

Und in /usr/src ist immer noch gähnende Leere.

Sollte nicht Kernel-package alles benötigte zumindest automatisch nachladen?

Dann ist in der Anleitung hier noch die Rede von einem "make oldconfig", was wohl die Kernelkonfig vorher sichern soll -> mangels kernel-sourcen geht das bei mir auch nicht.

Das gibts doch nicht, wie kann das sein, ich mach doch irgendwas falsch, das kann doch nicht sein, daß man nur zum ./configure von einem Programm so viel Act machen muss?

Ich denke nach wie vor, daß es eigentlich keine große Ursache sein kann, aber ich komme nicht weitrer.

Vielen Dank für Tips im voraus,

southy

P.S. Vielleicht von kernel.org manuell runterladen und nach /usr/src entpacken? Aber das ist ja dann kein deb-kernel, wer weiss, was da dann wieder schiefgeht...

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22454
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 19.07.2007 09:35:32

Wenn du das Debianpaket linux-source-2.6.18 installierst , dann hast du im Verzeichnis /usr/src/ einen tar.bz2 liegen, welches du noch entpacken mußt. Sinnvoller sind die passenden linux-headers . Mit dem linux-source alleine wirst du nichts anfangen können. Denn es fehlem ihm Dateien die erst während des Kompiliervorgangs erstellt werden.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

southy
Beiträge: 11
Registriert: 18.07.2007 16:06:06

Beitrag von southy » 19.07.2007 10:18:32

Wow, KBDCALLS, klasse, das wars.

Jetzt habe ich die headers und die sourcen in /usr/src.

Tja, damit sollte die Kernel-Frage sich geklärt haben, vielen Dank für die Hilfe.


Naja, die Probleme werden nicht weniger, das ist jetzt nicht kernel-bezogen, aber vielleicht kann ja trotzdem jemand was damit anfangen..?
./configure
[.....]
<stdin>:1:19: error: stdio.h: Datei oder Verzeichnis nicht gefunden
<stdin>:2:19: error: ctype.h: Datei oder Verzeichnis nicht gefunden
<stdin>: In function ‘main’:
<stdin>:18: error: ‘NULL’ undeclared (first use in this function)
<stdin>:18: error: (Each undeclared identifier is reported only once
<stdin>:18: error: for each function it appears in.)
<stdin>:45: warning: incompatible implicit declaration of built-in function ‘sscanf’
<stdin>:49: warning: incompatible implicit declaration of built-in function ‘printf’
/usr/bin/xmkmf: line 57: 2906 Abgebrochen imake $imake_defines $args


Auf jeden Fall vielen Dank, daß Ihr mich schonmal bis hierher gebracht habt,
southy

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22454
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 19.07.2007 10:35:25

Ist xutils-dev installiert ?
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

southy
Beiträge: 11
Registriert: 18.07.2007 16:06:06

Beitrag von southy » 19.07.2007 10:56:23

ja.

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 19.07.2007 15:04:09

Ist libc6-dev installiert?

southy
Beiträge: 11
Registriert: 18.07.2007 16:06:06

Beitrag von southy » 19.07.2007 15:20:28

libc6-dev dazuinstalliert, super,
jetzt passiert schonmal etwas mehr:

./configure
[...]
make[1]: Entering directory `/home/jan/download/nistnet-3.0a/monitor/Frame-1.0'
make[1]: Für das Ziel »Makefiles« ist nichts zu tun.
make[1]: Leaving directory `/home/jan/download/nistnet-3.0a/monitor/Frame-1.0'
make includes
make: Für das Ziel »includes« ist nichts zu tun.
make depend
gccmakedep -- -ITextField-1.01 -IFrame-1.0 -I/usr/include/X11/Xaw -I/usr/include/X11/Xmu -I.. -I../lib -I../include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DFUNCPROTO=15 -DNARROWPROTO --
gccmakedep -- -ITextField-1.01 -IFrame-1.0 -I/usr/include/X11/Xaw -I/usr/include/X11/Xmu -I.. -I../lib -I../include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DFUNCPROTO=15 -DNARROWPROTO --
debian:/home/jan/download/nistnet-3.0a#

Hmm, da steht weder was von "erfolgreich beendet" noch eine Fehlermeldung...
Ob das wohl so gut ist? Sollte ./configure nicht mit einer Meldung enden?

Ich starte mal ein "make" und schau, was rauskommt.
-> make
Ja, also, er rechnet mal schwer rum, das nehm ich jetzt mal als gutes Zeichen ;-)
Mal sehen, wie sich die Sache weiter entwickelt, das könnte jetzt ja wohl etwas dauern.
vielen Dank auf jeden Fall mal für die sehr hilfreichen Tips bis hierher,
southy

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22454
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 19.07.2007 15:42:58

Könnte es sein das du den cpp brauchst. Ansonsten poste mal den Link vorher das Programm ist.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

southy
Beiträge: 11
Registriert: 18.07.2007 16:06:06

Beitrag von southy » 19.07.2007 15:55:32

Das hier

cpp ist schon drauf.

Abgesehen von der völlig fehlenden exit-Meldung von configure läuft make jetzt stückchenweise von Fehler zu Fehler:

offenbar haben sich aus dem Hintergrund, daß ich X manuell nachinstalliert habe, weil die Standard-Installation "Desktop-System" von der Debian-CD nicht auf die 2GB Platte gepasst hat, ein paar Probleme ergeben:
Offenbar fehlen jetzt ein paar Bibliotheken rund um X.

libxt-dev
gabe ich grade noch dazugenommen, weil google eine Fehlermeldung von make entsprechend aufgelöst hat.

Jetzt suche ich grade nach einem Paket, in dem ein File namens X11/Xmu/Xmu.h drin ist.
Hab noch keins gefunden.

southy

southy
Beiträge: 11
Registriert: 18.07.2007 16:06:06

Beitrag von southy » 19.07.2007 15:59:59

X11/Xmu/Xmu.h -> libXmu-dev
ich komm langsam in Fahrt :-) Mal schauen, wie viele noch fehlen... :-)

southy
Beiträge: 11
Registriert: 18.07.2007 16:06:06

Beitrag von southy » 19.07.2007 16:19:36

Ok, jetzt wirds hier doch nochmal Kernel-Spezifisch, das ist jetzt wieder ein Thema für Euch:

make:
echo " ERROR: Kernel configuration is invalid."; \
echo " include/linux/autoconf.h or include/config/auto.conf are missing."; \
echo " Run 'make oldconfig && make prepare' on kernel src to fix it."; \


Ich habe kein autoconf.h im ganzen System nicht.

und make oldconfig klappt nicht -> keine Regel zum erstellen. Fehlt mir evtl doch noch ein Teil der Sourcen vom kernel?
Ich habe die folgenden:
debian:/usr/src# ls -la
drwxr-xr-x 17 root root 4096 2007-07-19 13:45 linux-headers-2.6.18-4
drwxr-xr-x 4 root root 4096 2007-07-19 13:53 linux-headers-2.6.18-4-486
drwxr-xr-x 3 root root 4096 2007-07-19 13:53 linux-kbuild-2.6.18
-rw-r--r-- 1 root root 236881920 2007-05-02 01:54 linux-source-2.6.18.tar

Fehlt da was? Wo muss ich denn das make oldconfig machen? in einem von den header-Verzeichnissen?

Vielen Dank, southy


[EIDT]
Ok, ich glaube, ich hätte das linux-source-2.6.18.tar doch einfach mal auspacken sollen...

Sarem_Avuton
Beiträge: 546
Registriert: 16.12.2004 09:58:27
Wohnort: Leipzig

Beitrag von Sarem_Avuton » 19.07.2007 16:27:11

Hallo,

ist zwar ubuntu aber vielleicht hilft es ja.
http://www.how2blog.de/?p=9

Grüße Jörg

PS: Im wiederspruch zu obigen howto habe ich aber noch das gefunden:
10.3 NIST Net installieren
Nachdem das Quellcodearchiv „nistnet.2.0.12c.tar.gz“ von den Webseiten des US-
Amerikanischen „National Institute of Standards and Technologie“ (NIST) (http://www-
x.antd.nist.gov/nistnet) heruntergeladen wurde (z.B. nach /usr/src), wird es zunächst
entpackt und verlinkt.
# tar -xvzf nistnet.2.0.12c.tar.gz
# ln -s nistnet-3.0a nistnet
# cd nistnet
10.3.1
Quellcode anpassen
Eine Kompilierung zu diesem Zeitpunkt führt zu einer Reihe von Fehlermeldungen, weshalb
zunächst der Quellcode der Datei kernel/knistnet.c korrigiert werden muss. In den
Zeilen 916, 961, 972 und 1003 fehlt jeweils ein Parameter beim Funktionsaufruf von
„ippt->func“. Der korrekte Aufruf muss jeweils zu ippt->func(skb,dev,ippt,dev)
ergänzt werden (anstelle von ippt->func(skb,dev,ippt)

southy
Beiträge: 11
Registriert: 18.07.2007 16:06:06

Beitrag von southy » 19.07.2007 16:36:51

Ok,
das auspacken der Kernel-sourcen hat die Platte endgültig bis an den Rand vollgemacht.
Ich sehe also, 2GB reichen einfach nicht für debian+X+NistNet.
Ich werde schauen, eine andere Platte zu organisieren. Dann installiere ich debian incl. Desktop-System neu und werde damit vermutlich die Probleme mit den ganzen fehlenden X-libs los. Von daher hat sich die Sache damit wohl erledigt, mit dem hier stehenden System ist das wohl halt einfach nicht zu machen.
Trotzdem danke für Eure Hilfe soweit, und ich habe wieder einiges gelernt dabei :-)

Sarem_Avuton, auch danke für den Link, sieht interessant aus.
Sieht so aus, als wäre da ja durchaus noch ne ganze Menge Handarbeit nötig...
Das werde ich mir genau anschauen. Und wenn ich eh neu anfange, kann ich ja auch gleich Kubuntu nehmen und strikt nach Anleitung vorgehen. (Naja, am besten dann gleich einen anderen Rechner - KUbuntu auf einem P200??)
Vielleicht komme ich so auf einen grünen Zweig.

Viele Grüße,
southy


EDIT:
Ohje, was Du da noch an Anmerkungen gefunden hast, lässt ja irgendwie nicht auf so ein richtig gute Pflege und Tests schliessen.
Ich hoffe, ich bekomme das hin, denn so gut bin ich nicht, daß ich da aus irgendwelchen kryptischen Fehlermeldungen etwas derartiges rauslesen könnte...

Mal sehen. Neuer Rechner muss her.

Sarem_Avuton
Beiträge: 546
Registriert: 16.12.2004 09:58:27
Wohnort: Leipzig

Beitrag von Sarem_Avuton » 19.07.2007 16:42:24

Hallo,

warum willst du unbedingt X haben?Ist das notwendig?

Grüße Jörg

southy
Beiträge: 11
Registriert: 18.07.2007 16:06:06

Beitrag von southy » 19.07.2007 17:06:31

Soweit ich gesehen habe, hat NistNet sowohl commandline als auch X.
Von daher wäre X an sich nicht nötig - wobei ich von Anwenderberichten weiss, daß man in der GUI angeblich viel schneller mal kleine test-Bedingungen zusammenstellen kann, während die shellbedienung halt eher für länger laufende Sachen gut ist. Aber probiert habe ich es noch nicht. Nachdem ich in dem Programm auch neu bin und damit wirklich arbeiten muss, wäre es sicher schon nicht schlecht, beide Optionen zu haben.

Und wie soll ich es denn überhaupt kompilieren, wenn ich kein X habe, denn es gibt sourcen nicht ohne die GUI mit drin.
Von daher könnte ich höchstens versuchen, debian ohne X einzurichten, dann die X-libs manuell nachzuziehen und es dann zu kompilieren.
Das war das, was Du vorgeschlagen hättest, nehme ich an?

Southy

southy
Beiträge: 11
Registriert: 18.07.2007 16:06:06

Beitrag von southy » 19.07.2007 17:38:26

Haha,
was gerade passiert ist: Ich mache das ganze ja für eine Arbeit für die Uni, aber in einer Firma. Die Rechner hatte ich aus eigenen Beständen mitgebracht. Jetzt habe ich vorhin meinem Chef das Leid geklagt und der meinte glatt: "Ja, wir haben da doch noch drei brandneue Pentium-hyperduper-wasweisich im Lager stehen, nimm doch die.".
Damit ist mein Hardware-Problem wohl gelöst ;-) Toll!

Ob ichs mit den ganzen Besonderheiten damit dann auch kompiliert bekomme, ist zwar natürlich noch nicht klar, aber wenigstens wird der Kram dann wenigstens auf modernster Technik in den Orkus rutschen :-)

Ja, damit werde ich wohl doch _mit_ X machen ;-)

southy

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von cirrussc » 19.07.2007 22:56:04

KBDCALLS hat geschrieben:Sinnvoller sind die passenden linux-headers . Mit dem linux-source alleine wirst du nichts anfangen können. Denn es fehlem ihm Dateien die erst während des Kompiliervorgangs erstellt werden.
Die werden IMO durch make prepare erzeugt wie make schon selbst vorgeschlagen hat
southy hat geschrieben:

Code: Alles auswählen

 echo " Run 'make oldconfig && make prepare' on kernel src to fix it."; \ 
Gruß cirrussc

hacki
Beiträge: 10
Registriert: 28.11.2003 17:14:22
Kontaktdaten:

Beitrag von hacki » 23.07.2007 23:47:35

southy hat geschrieben:Soweit ich gesehen habe, hat NistNet sowohl commandline als auch X.
Von daher wäre X an sich nicht nötig - wobei ich von Anwenderberichten weiss, daß man in der GUI angeblich viel schneller mal kleine test-Bedingungen zusammenstellen kann, während die shellbedienung halt eher für länger laufende Sachen gut ist. Aber probiert habe ich es noch nicht. Nachdem ich in dem Programm auch neu bin und damit wirklich arbeiten muss, wäre es sicher schon nicht schlecht, beide Optionen zu haben.
Southy
Vergiss die GUI, die ist irgendwie totaler crap....
Am schnellsten biste immernoch mit der commandline, der syntax ist auch nicht weiter schwer...

Antworten