PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2.4.3 -> 2.4.7


Seiten : [1] 2

hunter
07.08.01, 16:45
Ich hab mal eine ganz dumme Frage:

Ich will den Kernel von Version 2.4.3 auf Version 2.4.7 bringen. Leider hab ich noch nicht viel Erfahrung und hab mich nun gefragt ob es möglich ist einfach xconfig für beide Versionen zu starten und alle Einstellungen vom alten Kernel im 2.4.7 Kernel zu übernehmen. Die Sachen die der neue Kernel Extra hat könnte man dann zur Sicherheit mit n oder m anwählen, dann sollte er keine Auswirkungen haben.

Kann man das so erst mal machen, um erst mal einen lauffähigen Kernel 2.4.7 zu bekommen ?

Falls ja, was müsste ich denn danach noch genau machen ? Bitte eine ausführlichere Beschreibung. Bevor ich anfange zu experimentieren will ich erst mal einen stabilen neuen Kernel haben. Erst danach kann ich rausschmeißen was ich nicht brauche.

Ich nehmen an wenn ich konfiguriert habe kommt das kompilieren und dann das installieren. Danach will ich Lilo so ändern das ich den 2.4.3 noch booten kann und mit dem neuen dann testen kann. Das ganze sollte so sein das noch nichts überschrieben oder gelöscht wird.

Da ich auf diesem Gebiet noch Anfänger bin bitte ich hier um etwas Hilfe, damit ich in die Gänge komme ohne dabei meinen Pinguin gleich zu killen.

Seyer
07.08.01, 17:02
Du nimmst aus dem alten Source Verzeichnis die ".config"-Datei und kopierst sie ins neue Verzeichnis.

Im neuen Verzeichnis rufst du "make oldconfig" auf. Evtl. Änderungen werden angepasst, bei gravierenden Änderungen oder neuen Bestandteilen erfolgt eine Nachfrage.

McG.linux
07.08.01, 17:11
Hi

Ja, für beide kernel xconfig starten (oder auch menuconfig) geht
Allerdings musst du bei deinem momentan laufenden Kernel davor noch make cloneconfig
machen, damit er auch die aktuelle einstellung in xconfig anzeigt (sonst zeigt er nur den blanken standard-kernel)

d.h.für deinen aktuellen kernel gibst du ein

make cloneconfig && xconfig (oder menuconfig)

und für den neuen den du bauen willst:

make mrproper
make xconfig
make dep
make bzImage
make modules
make modules_install
cp arch/i386/boot/bzImage <neuer_kernelname>
cp System.map /boot/

<neuer_kernelname> kannst du frei wählen.. allerdings solltest du ihn anders nennen als den vorhandenen..
Dann fügst du in lilo einen weiteren Eintrag ein (einfach den eintrag für den momentanen Kernel kopieren und den kernelnamen austauschen)

/sbin/lilo noch ausführen und du hast 2 bootbare kernel.. so kannst du dann erstmal ohne gefahr testen ob der neue kernel funktioniert. :)

Gruß
McG.linux

McG.linux
07.08.01, 17:21
ah.. war jemand schneller.. :)

make oldconfig gibts also auch.. hm.. man lernt nie aus. :)

@Hunter:
wenn du das so machst wie
Seyer es vorgeschlagen hat (spart natürlich einiges an arbeit :) )
dann musst du das

make oldconfig

zwischen

make mrproper

und

make xconfig

knallen.. der rest bleibt..

Gruß
McG.linux

hunter
07.08.01, 17:52
Also ich hab mich dazu entschieden das so zu machen wie ich es mir anfangs gedacht habe und wie es McG.linux bestätigt hat. Vor allem aus dem Grund um die möglichen Einstellungen des Kernels kennen zu lernen.

Ich hab nun in /usr/src/ erst mal den Link linux zum 2.4.3 Kernel gelöscht und dann die neuen Sourcen ausgepackt. Er hat dann 2.4.7 und einen link linux erstellt. So weit so gut.

Wenn ich jetzt erst mal versuche zum 2.4.3 Kernel zu gehen und make cloneconfig&& xconfig eingebe, dann meldet er mir:

Keine Regel für "cloneconfig"

xconfig selbst geht aufzurufen, aber cloneconfig geht nicht. Was muss man denn hier noch beachten ? Warum erkennt er nicht die aktuellen einstellungen des 2.4.3 Kernels ?

McG.linux
07.08.01, 19:14
hm.. hab das aus der erinnerung geschrieben..

Aber gut.. nach deinen probs hab ich noch mal kurz im www geschaut.. das mit dem cloneconfig ist u.U. eine SuSE-eigenheit.. (bzw n patch der z.B. bei suse schon mit dabei ist, aber wohl nicht überall) also schau einfach nach den .config-dateien wie Seyer es vorgeschlagen hat..
wenn du trotzdem die version mit 2x xconfig durchführen willst, dann lade einfach diese kernel-config-datei in dein xconfig rein.. (einer der menüpunkte)

Wenn es mehrere .config-dateien gibt, dann schau in dein /boot/verzeichnis, bzw in deiner lilo.conf nach welches kernel-image gebooted wird.. die in xconfig zu ladende datei sollte dann "<kernel-image>".conf heißen..

Gruß
McG.linux

[ 07. August 2001: Beitrag editiert von: McG.linux ]

McG.linux
07.08.01, 19:20
ups.. gerade gesehen dass eckige-klammern wohl nicht gehen.. also berichtigung..

die config-datei sollte dann heißen:

(kernel-image).conf

und die cp-befehle heißen nicht:

cp arch/i386/boot/bzImage
cp System.map /boot/

sondern

cp arch/i386/boot/bzImage (new-kernel_image-name)
cp System.map /boot/

hunter
07.08.01, 21:12
Also, ich hab das erst mal jetzt mit dem 2 mal xconfig versucht, aber das hat mich schnell genervt. Deshalb habe ich erst mal make oldconfig gemacht. Das meiste hab ich mit n oder m und nur selten y beantwortet, was halt neu war.

Dann habe ich "make dep" ausgeführt und er hat ohne fehlermeldung bis zum Schluss durchgearbeitet. So weit so gut. Kompiliert ist also erst mal.

Jetzt habe ich "make bzimage" eingegeben und er meldet mir wieder "keine Regel ...". Das verwundert mich allerdings ein wenig, da eigentlich beim kompilieren mit make dep keine Fehler auftraten.

Woran liegt es denn und wie gehts nun weiter ?

hunter
08.08.01, 07:46
Ich nehme ales zurück. Ich war wohl etwas müde und hab übersehen das bzImage mit einem großen I geschrieben wird.

Allerdings hat er dann mit fehlern abgebrochen. Möglicherweise war das Archiv beschädigt, weil es schon beim entpacken der Kernel Quellen einige Probleme gab. Deshalb lade ich gerade alles noch mal neu runter und versuche es dann heute Abend erneut.

Worin besteht eigentlich der Unterschied zwischen tar.gz und tar.bz2 und wozu sind die sign Datein gut ? Jedenfalls lade ich nun zur Sicherheit erst mal alles runter.

hunter
08.08.01, 12:00
Nein, das war wohl nichts. Das Tar Archiv war nicht Schuld daran. Wenn ich make bzImage ausführe endet es wieder mit :

/usr/src/linux-2.4.7/include/asm/rwsem.h:152: inconsistent operand constraints in an `asm'
make[2]: *** [sys.o] Fehler 1
make[2]: Verlassen des Verzeichnisses Verzeichnis »/usr/src/linux-2.4.7/kernel«
make[1]: *** [first_rule] Fehler 2
make[1]: Verlassen des Verzeichnisses Verzeichnis »/usr/src/linux-2.4.7/kernel«
make: *** [_dir_kernel] Fehler 2

Was bedeutet das ? Was ist "asm" und wie kann ich diesen Fehler beseitigen ?

McG.linux
08.08.01, 12:29
hm.. mandrake.. :-(

mach mal

gcc --version

ich glaub die verwenden n ungünstigen gcc..

die ausgabe sollte sein:

2.95.2 oder 2.95.2.1 wenn das nicht der fall ist schau mal ob du nicht den drauf machen kannst...

Gruß
McG.linux

hunter
08.08.01, 13:49
Ich weiß es auswendig: gcc Version 3.0

Werd aber mal einen downgrade versuchen.

hunter
08.08.01, 15:06
Mir kommen bald die Tränen.

Also ich hab nun gcc 2.95.2-12 installiert. Wenn ich aber gcc --version eingebe meldet er mir : 2.95.3 (Er rundet also auf)

Jedenfalls leg ich dann noch mal mit make bzimage und diesmal arbeitet er bis zum Ende durch.

Im nächsten Schritt mache ich dann make modules und bekomme am Ende folgendes :

DAC960.c: In function `DAC960_ProcessRequest':
DAC960.c:2771: structure has no member named `sem'
make[2]: *** [DAC960.o] Fehler 1
make[2]: Verlassen des Verzeichnisses Verzeichnis »/usr/src/linux-2.4.7/drivers/block«
make[1]: *** [_modsubdir_block] Fehler 2
make[1]: Verlassen des Verzeichnisses Verzeichnis »/usr/src/linux-2.4.7/drivers«
make: *** [_mod_drivers] Fehler 2

Ich kann mir vorstellen das ich langsam nerve, aber was ist denn das nun wieder für ein Problem ? Muss es genau 2.95.2 oder 21 sein oder was ist hier los ?

McG.linux
08.08.01, 15:36
hi

keine sorge.. du nervst nich :)

Also gcc 2.95.2 bzw 2.95.2.1 sind die momentan am besten funktionierenden.. :)

Was die fehler angeht.. keine ahnung woran das liegt.. probiers nochmal mit den oben genanten versionnen von gcc vielleicht geht's ja..

Gruß
McG.linux

hunter
08.08.01, 16:44
Hab zwar diese Versionen nicht als rpm bekommen können, habe aber make modules mal mit verschiedenen Versionen von gcc ausgeführt. Das Ergebnis ist immer das gleiche.

Kann es sein das von Version 2.4.3 zu 2.4.7 was weggelassen wurde was er mit der alten Config jetzt sucht, es aber nicht finden kann ?

McG.linux
08.08.01, 18:16
wäre möglich.. ich hab mal im netz geschaut.. aber diese fehlermeldung ist nicht bekannt.. :-(

ich würde vorschlagen du machst folgendes..
starte make menuconfig für deinen aktuellen kernel, und dann die ganze make-palette für den neuen.. wenn die beiden make menuconfigs laufen gehst du jeden menüpunkt durch..
jedoch mit dem unterschied.. du übernimmst nur die einstellungen die dir entweder nichts sagen oder die auf deine hardware passen.. den rest nicht.. (wenn du z.B. ne via-onboard-soundkarte hast dann übernehm in der sound-section nur dieese einstellungen.. da dein aktueller kernel ndistri-kernel ist werden da vermutlich alle drin sein, als <M> aktiviert also.

Dadurch bekommst du nicht nur nen schlankeren und trotzdem funktionierenden kernel, du bist u.U. auch die fehlermeldung los.. und du kommst n bißchen rein in die kernel-kompilierung :)

Viel Spaß/Glück

Gruß
McG.linux

hunter
08.08.01, 19:54
Also ich bin nun mal deiner Anleitung gefolgt. Mit zwei mal menuconfig ging es sehr viel einfacher weil da nicht so wie bei xconfig immer wieder neue Fenster aufgehen die man kaum auseinander halten kann.

make modules und make modules_install sind jetzt ohne Fehlermeldung durchgegangen und alles sollte jetzt fertig kompiliert sein.

Jetzt soll ich da einige Sachen kopieren und ins /boot packen. Leider hab ich deine Ausführungen nicht ganz verstanden. Ich dachte der Kernel wäre vmlinuz oder so ähnlich. Kannst du mir das bitte noch mal etwas genauer beschreiben ? Ich hätte gemeind nun das ganze vmlinux-2.4.7a (a für ersten eigenen Kernel) zu nennen.

Für den neuen Kernel schätze ich muß ich dann nur noch den Eintrag in der lilo.conf für Linux kopieren und den Namen sowie den Namen des zu bootenden Kernels ändern. Dann natürlich noch ein /sbin/lilo

Ich frag lieber noch mal bevor ich was falsch mache und alles zerstöre.

McG.linux
08.08.01, 21:14
hi

Wie du den kernel nennst ist egal.. kannst ihn auch Kaiser_hugo-II nennen wenn du willst :) :)

Das mit dem lilo hast du richtig verstanden.. :)

Gruß
McG.linux

McG.linux
08.08.01, 23:10
hi

Viel Glück.. :)

tar.gz sind files die mit tar und gzip gepackt wurden..
tar.bz2 sind files die mit tar und bzip2 gepackt wurden.. dabei is die kompression höher..

Was die sign-dateien angeht.. sagt mir auch nichts..

Gruß
McG.linux

hunter
09.08.01, 07:51
Naja, einen ersten Versuch war es wert. Wenn ich mit dem neuen Kernel starte bekomme ich ein ziemlich merkwürdiges Bild. Das ganze ist verschwommen und vierspaltig. Am Ende kann dann auch X nicht gestartet werden.

Schätze mal es gibt nur zwei Möglichkeiten für diesen Fehler :

1. Fehler im Kernel
2. Falscher gcc (hab jetzt den beiliegenden von Mandrake benutzt)

Um aber sicher zu gehen das alles andere richtig ist schreib ich hier noch mal auf was ich gemacht habe, um zu sehen ob das erst mal richtig ist :

cd /usr/src/linux
cp /arch/"blabla"/boot/bzImage vmlinuz-2.4.7a
cp vmlinuz-2.4.7a /boot/

cp System.map /boot/System.map-2.4.7a
cd /boot
rm System.map (den Link gelöscht der auf System.map-2.4.3 weist)
ln -s System.map-2.4.7a System.map

Was ist denn mit kernel.h, das ist noch immer ein Link auf kernel.h-2.4.3 ?

Jedenfalls sieht nun so meine lilo.conf aus (der untere Teil davon):

image=/boot/vmlinuz
label=linux
root=/dev/hdb7
append="quiet hdc=ide-scsi hdd=ide-scsi"
vga=788
read-only
image=/boot/vmlinuz-2.4.7a
label=linux247a
root=/dev/hdb7
append="quiet hdc=ide-scsi hdd=ide-scsi"
vga=788
read-only
other=/dev/hda1
label=windows
table=/dev/hda

Wenn das alles richtig ist, dann bleibt jetzt nur noch die Frage woran es am ehesten liegt. gcc oder Konfiguration. Wie ist deine Einschätzung ?

keiler
09.08.01, 10:00
Hi!

Ich wuerde erst einmal den vga-Eintrag aus der lilo.conf rausnehmen, dann lilo starten mit lilo. Dann mal nen Neustart. Wenn es dann nicht klappt, wuerde ich mal einen Standar-Kernel, so wie er nach dem Entpacken konfiguriert ist compilieren und benutzen. Das funktioniert eigentlich immer. Danach kannst Du immer mehr Sachen aus dem alten Kernel uebernehmen und Dich ans Optimum rantasten.

Alle Befehle:

make xconfig
make dep clean bzImage
make modules && make modules_install
cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.7a
cp System.map /boot/System.map-2.4.7a
lilo

Das reicht immer und nicht vergessen: vor neuem Kompilieren das Verzeichnis /lib/modules/2.4.7 oder so loeschen. Die neuesten modutils hast Du ja sicher.

McG.linux
09.08.01, 10:12
hi

vermutlich hast du doch was vergessen bei den kernel-einstellungen.. hast du alles übernommen wo du dir unsicher warst?

@keiler: Den standard-kernel hat er ja noch.. und die konfig von dem alten standard-kernel kann er ja nicht in den neuen übernehmen.. (siehe oben)

Was das löschen von /lib/modules/2.4.7 angeht.. kannst du sicher machen.. is aber glaube ich nicht umbedingt nötig..

Gruß
McG.linux

keiler
09.08.01, 10:29
Hi

>> @keiler: Den standard-kernel hat er ja noch.. und die konfig von dem alten standard-kernel kann er ja nicht in den neuen übernehmen.. (siehe oben)

Er soll ja auch nicht irgendeine alte config uebernehmen, sonder die neue Standardkonfiguration.

>>Was das löschen von /lib/modules/2.4.7 angeht.. kannst du sicher machen.. is aber glaube ich nicht umbedingt nötig..

Aber sicherer, wenn man einmal im Kernel ein Modul wieder deaktiviert.

hunter
09.08.01, 14:56
Ich habe nun mal den VGA Eintrag rausgenommen und hatte dann nicht mehr das Problem das er immer vierspaltig und verschwommen alles anzeigte. Allerdings kam er am Ende wieder nicht in X rein und hat ganz nervös immer mit dem ganzen Bild geblinkt.

4 Dinge sind mir beim hochfahren aufgefallen. Einmal hat er gemeldet das er irgendwelche Hardware nicht erkennt. Dann kamen zwei Module die er nicht finden konnte. Eines war klar, weil ich das in den Kernel direkt eingebaut habe und einmal die Real Time Clock die ich wohl gar nicht erst ausgewählt habe. Das letzte war VMware, aber das war klar das man immer bei einem andern Kernel noch mal neu konfigurieren muß.

Irgendwer hat behauptet es wäre nicht möglich das der Kernel dafür verantwortlich sein könnte das X nicht starten kann, aber das scheint ja nicht ganz zu stimmen.

Gibt es eigentlich noch kein Programm das eine automatische Konfiguration erstellt so das erst mal die Hardware definitiv läuft und man danach noch zusätzlich auswählen kann was man sonst noch will ?

Ich werd jedenfalls noch mal den ganzen Kernel killen und in Kürze einen neuen Versuch starten. Aber zumindest weiß ich jetzt wie es geht. Schönen Dank schon mal an alle die mir dabei geholfen haben. Wenn ich jetzt noch das konfigurieren mal richtig hinbekomme, könnte ich mir auch einen funktionierenden Kernel bauen.

Noch was . Wie macht man eigentlich mit RPM Packeten einen Downgrade ? Als ich versuchte gcc und gcc.cpp per RPM zu installieren hat er immer gemeckert das die aktuelle Version neuer ist. Also habe ich sie mit Gewalt gelöscht und die neuen drüber gepackt. Das hat er zwar gemacht, aber die feine englische Art war das nicht gerade.

McG.linux
09.08.01, 16:18
hi

Viel Glück bei deinem Versuch.. Wenn du zeit hast kannst du ja noch posten was für fehler dein neuer kernel bringt (-> log-files)

Und was X sagt bevor es sich beendet wäre auch interessant.. :)

Was die rpm's angeht.. hab da noch nicht so viel erfahrung.. aber geht ein rpm -U file-rpm --force nicht?
Gruß
McG.linux

hunter
09.08.01, 21:06
Ich habe nun den langen (seher langen) Weg gemacht und make config ausgeführt. Ich habe mich soweit es ging an meine Hardware sowie die Vorschläge der Hilfe Texte gehalten.

Nun ist ein Kernel rausgekommen der immer noch nicht X starten kann, ansonsten aber nur sehr wenige Fehler beim booten zeigt. diese könnten aber Möglicherweise der Grund sein.

Also hier mal der Fehler :

Wenn er lokale und sonstige Dateisysteme einhängen will, meckert er das devpts File System nicht vom Kernel unterstützt wird. Was muß ich denn dafür noch einstellen ? Bei den File Systemen wo ich ext2 und reiserfs gewählt habe, hab ich nichts derartiges entdecken können.

Vermutlich kann er die Daten die er für X braucht nicht von diesen Filesystems lesen und deshalb auch nicht ausführen. Ich denke nun sollte erst mal dieses Problem gelöst werden und dann geht es weiter.

Irgendeine Ahnung wie man den Support für devpts einschaltet, und wo ?

McG.linux
10.08.01, 08:24
hi

Also, den support für /dev/pts findest du unter File-systems schau also nochmal nach..

Ach ja.. ich hoffe du speicherst deine einstellungen immer ab, so dass du deine kernel-config jederzeit wieder in menuconfig laden und weiterbearbeiten kannst? :)

Gruß
McG.linux

hunter
10.08.01, 08:41
Hmmmm, werd wohl noch mal nachschauen müssen. Hab gestern noch mal ein zweites mal den Kernel kompiliert und hatte geglaubt das es nun eingeschaltet wäre. Wars aber nicht.

Bevor ich beende speicher ich den File immer noch mal unter anderem Namen ab. Sonst würde ich den Kernel ja nur schlecht modifizieren können wenn ich es jedes mal komplett neu machen würde.

Ich werde es heute Nachmittag noch einmal überarbeiten. Danke deiner Hilfe kenne ich die Schritte ja nun auswendig und auch in der Konfiguration kenne ich mich schon etwas besser aus.

Muß ich eigentlich die System.map jedes mal neu kopieren ?

hunter
10.08.01, 13:02
Nach einigen Mühen ist es mir gelungen das er nicht mehr wegen den Filesystems meckert.

Nun startet er X aber immer noch nicht, obwohl er keine besonderen Fehler mehr meldet. (Nur USB, weil das Modul hab ich nicht kompiliert, da ich kein einziges USB Gerät besitze)

Auch in der boot.log ist nichts darüber zu finden. Da geht es bis zum hochfahren des Rechners und dann mit Reset wieder runter. Und überall (außer USB steht succeed hinter).

Wo kann man rausfinden was los ist ?

hunter
10.08.01, 13:42
Hab den Fehler gefunden. Der Nvidia Treiber 0.9 funktioniert nicht. Als Übergangslösung habe ich dann von nvidia auf nv umgestellt und die Grafik läuft nun wieder.

Ich habe dann versucht noch mal die NVidia treiber neu zu installieren, aber er meldet das ein "Nvidiadriver" fehlen würde. Offenbar muß irgendwo noch ein Modul dazu kompiliert werden.

Danach hab ich mal getstet was denn mit dem Kernel schon läuft. Wie du siehst läuft mein ISDN und mein Internet. Der Sound funktioniert ebenfalls. Die Netzwerkkarte scheint ebenfalls zu funktionieren. Meinen Scanner hab ich noch gar nicht eingerichtet, aber zumindest die SCSI Karte geht. Mein IDE Brenner wird weiterhin als SCSI Brenner angesehen und wird vermutlich auch funktionieren.

Meine TV Karte geht aber nicht. Wenn ich xawtv starte findet er /dev/video nicht. bttv meinte ich aber eigentlich im Kernel zu haben.

Mein CDROM hat normalerweise immer automatisch gemountet. Jetzt gings nicht mehr und ich musste es manuell machen.

So weit erst mal. Würde sagen die dringensten Probleme die gelöst werden müssen sind erst mal die Grafikkarte und anschließend die TV Karte. Danch dann erst das CDRom Problem. Muß man irgendwie den Automounter mit einstellen oder so was ?