Du bist nicht angemeldet.

#1 06.07.2005 19:11:40

quiptime
Gast

kernel kompilieren

Hallo,

wollte den linux-2.6.11.10-ARCH neu kompilieren. Klappt aber nicht. Das make menuconfig kann ich ausfuehren. Aber auf make && make modules_install erhalte ich folgenden Error:

  CHK     include/linux/version.h
  SPLIT   include/linux/autoconf.h -> include/config/*
  CHK     include/asm-i386/asm_offsets.h
scripts/Makefile.build:13: init/Makefile: Datei oder Verzeichnis nicht gefunden
make[1]: *** Keine Regel, um »init/Makefile« zu erstellen.  Schluss.
make: *** [init] Fehler 2

Ich war der Annahme, die Kernelsourcen auf dem Rechner zu haben. Was fehlt mir da?

Oder muss ich bei Arch irgendwas beachten, um den Arch-Kernel neu zu kompilieren?

Oben beschriebenes trifft auch auf den linux-2.6.12-mm2-ARCH zu.

Gruss quiptime

#2 06.07.2005 19:15:59

Pierre
Entwickler

Re: kernel kompilieren

Wie bist Du denn vorgegangen? Am besten geht es wie folgt:

ggf. cvsup installieren und abs starten:

pacman -Sy cvsup
abs

Den Ordner /var/abs/kernels/kernel26 irgendwo ins Home-Verzeichnis kopieren. In der Datei PKGBUILD "make config" durch "make xconfig" oder was man möchte ersetzen. Im Verzeichnis dann "makepkg" starten. Wenn alles gut geht hat man danach ein Arch-Paket, daß man mit pacman -U paketname installieren kann

Beitrag geändert von Pierre (06.07.2005 19:37:25)

Offline

#3 06.07.2005 19:29:40

quiptime
Gast

Re: kernel kompilieren

Hallo Pierre,

abs hatte ich noch nicht drauf. Hier mein Ergebnis:

pacman -Sy abs
:: Synchronizing package databases...
:: current is up to date
:: extra is up to date
:: community is up to date
abs: not found in sync db

Wo kriege ich den abs her?

Gruss quiptime

#4 06.07.2005 19:38:05

Pierre
Entwickler

Re: kernel kompilieren

Oops, ABS ist wohl bei pacman immer dabei...brauchst es also nicht extra zu installieren. Habe die Anleitung geändert.

Offline

#5 06.07.2005 19:49:49

quiptime
Gast

Re: kernel kompilieren

pacman -Sy cvsup
:: Synchronizing package databases...
:: current is up to date
:: extra is up to date
:: community is up to date

Targets: cvsup-16.1h-3

Total Package Size:   1.6 MB

Proceed with upgrade? [Y/n]

Hat funktioniert.

Gruss quiptime

#6 06.07.2005 19:58:24

quiptime
Gast

Re: kernel kompilieren

Hallo Pierre,

habe nach abs in /var/abs/kernels/ kernel26 liegen.

kernel26 ist doch wohl nicht ein 2.6.12-er?

Wenn ich nun einen 2.6.12-er in mein Arch einpflegen will, selber auf meinen Rechner angepasst/kompiliert, muss ich den ja erst mal nach /var/abs/kernels/ holen.

Wie stelle ich denn das an?

Gruss quiptime

PS.
Hoffe bin nicht all zu nervig. (Aber es wird ja auch User geben die den Thread lesen.)

#7 06.07.2005 20:01:49

Pierre
Entwickler

Re: kernel kompilieren

Unter ABS findest Du immer die PKGBUILD-Dateien zu den aktuellen Paketen. Kernel 2.6.12 ist noch in testing. Wenn Du unbedingt diesen Kernel brauchst, kannst Du das PKGBUILD von dort nehmen oder das alte entsprechend anpassen.

Offline

#8 06.07.2005 20:13:34

quiptime
Gast

Re: kernel kompilieren

Hmhh

#9 06.07.2005 20:15:54

Pierre
Entwickler

Re: kernel kompilieren

Irgendwas unklar?

Offline

#10 06.07.2005 20:49:36

quiptime
Gast

Re: kernel kompilieren

Werde also das mit dem 2.6.12-er erst mal lassen. Muss mich erst noch in das Arch-Konzept besser reinfinden.

Werde mich nun an das Erstellen eines angepassten Kernel 26 machen. Dabei kommen bestimmt noch Fragen.

Gruss quiptime

#11 06.07.2005 21:00:02

quiptime
Gast

Re: kernel kompilieren

Hallo Pierre,

wenn ich einzig make config in z. Bsp. make menuconfig aendere, wie wird am Ende der gebildete Kernel heissen?

Mit welchem Parameter kann ich den Namen des zu bildenden Kernelpaketes aendern?

Wo liegt am Ende das gebildete Kernelpaket?

Mit welchem Parameter aendere ich Ordner des neuen Kernelpaketes?

Gruss quiptime

#12 06.07.2005 21:11:11

Pierre
Entwickler

Re: kernel kompilieren

Der Paketname wird oben in der PKGBUILD festgelegt. Das Paket landet im gleichen Verzeichnis und hat die Endung pkg.tar.gz

PS: Pakete immer als Benutzer und nicht als root bauen.

Offline

#13 06.07.2005 21:48:01

quiptime
Gast

Re: kernel kompilieren

Hallo Pierre,

ich habe eben entdeckt, dass es fuer Arch im Repo auch den ccache gibt.

Kannst Du mir zur Konfig des ccache was sagen?

Ich will ihm 2Gb geben.

Gruss quiptime

#14 06.07.2005 21:53:02

Pierre
Entwickler

Re: kernel kompilieren

Habe damit noch nie gearbeitet. wink Sollte sich aber nicht von anderen Distributionen unterscheiden.

Offline

#15 06.07.2005 21:59:30

quiptime
Gast

Re: kernel kompilieren

Hallo Pierre,

habe eben eine fehlende Abhaengigkeitspruefung beim Installieren von abs gefunden.

makepkg
==> WARNING: Fakeroot is not installed.  Building as an unprivileged user
    will result in non-root ownership of the packaged files.
    Install the fakeroot package to correctly build as a non-root
    user.

Habe das Package fakeroot noch installiert.

Aber nun habe ich ein anderes Problem. Nachdem ich makepkg angeschoben habe hat sich meine Shell aufgehangen. Sie flatterte wie wild zwischen dem Menu von menuconfig und dem Inhalt der Shell. Mit CTRL c habe ich das gestoppt.

Wenn ich nun erneut makepkg starte bekomme ich folgende Ausgabe:

makepkg
==> Entering fakeroot environment
==> Making package: kernel26-sig01 2.6.11.10-1 (Mi Jul  6 19:52:16 UTC 2005)
==> Checking Runtime Dependencies...
==> Checking Buildtime Dependencies...
==> Retrieving Sources...
==>     Found linux-2.6.11.10.tar.bz2 in build dir
==>     Found config in build dir
==>     Found logo_linux_clut224.ppm in build dir
==>     Found acpi-20050408-2.6.11.diff.bz2 in build dir
==>     Found nvidia_6111-6629_compat2.diff in build dir
==>     Found acpi-dsdt-initrd-patch-v0.7d-2.6.9.patch in build dir
==> Validating source files with MD5sums
    linux-2.6.11.10.tar.bz2 ... Passed
    config ... Passed
    logo_linux_clut224.ppm ... Passed
    acpi-20050408-2.6.11.diff.bz2 ... Passed
    nvidia_6111-6629_compat2.diff ... Passed
    acpi-dsdt-initrd-patch-v0.7d-2.6.9.patch ... Passed
==> Extracting Sources...
==>     tar --use-compress-program=bzip2 -xf linux-2.6.11.10.tar.bz2
==>     bunzip2 acpi-20050408-2.6.11.diff.bz2
bunzip2: Output file acpi-20050408-2.6.11.diff already exists.
==> ERROR: Failed to extract acpi-20050408-2.6.11.diff.bz2
==> Aborting...

#16 06.07.2005 22:07:49

Pierre
Entwickler

Re: kernel kompilieren

Du solltest die Ordner src und pkg sowie die genannte diff-Datei löschen.

PS: Wenn es nicht wirklich HTML-Code ist, solltest Du nur den <code>-Tag und nicht <code html> verwenden...dann sieht die Ausgabe auch nicht so bunt aus wink

Beitrag geändert von Pierre (06.07.2005 22:09:04)

Offline

#17 06.07.2005 22:09:07

quiptime
Gast

Re: kernel kompilieren

Zum ccache

DESCRIPTION
ccache is a compiler cache. It speeds up re-compilation of C/C++ code by caching previous compiles and detecting when
the same compile is being done again.

ccache -M 2G
Set cache size limit to 2097152k

Gruss quiptime

#18 06.07.2005 22:11:13

quiptime
Gast

Re: kernel kompilieren

OK, <code>-Tag und nicht <code html>, wink

#19 06.07.2005 22:18:16

quiptime
Gast

Re: kernel kompilieren

Pierre schrieb:

Du solltest die Ordner src und pkg sowie die genannte diff-Datei löschen.

Gemacht.

makepkg verursacht wieder das Gleiche. Bei

  HOSTCC  scripts/lxdialog/yesno.o
  HOSTLD  scripts/lxdialog/lxdialog
scripts/kconfig/mconf arch/i386/Kconfig
#
# using defaults found in .config
#

kommt das Menue von menuconfig und die Shell flattert wie irre. Ich kann nur abbrechen.

Was ist denn das?

#20 06.07.2005 22:20:33

Pierre
Entwickler

Re: kernel kompilieren

Könnte ein Problem mit menuconfig sein. Versuche doch mal xconfig.

Offline

#21 06.07.2005 22:24:11

quiptime
Gast

Re: kernel kompilieren

OK, das war es.

xconfig ist offen.

#22 07.07.2005 00:04:46

quiptime
Gast

Re: kernel kompilieren

Hallo Pierre,

Kernelpaket fertig. Dann habe ich ein pacman -U /pathtopaket/mynewkernel.pkg.tar.gz
durchgefuehrt.

Offensichtlich ist ab da aber die Logik falsch. pacman hat versucht, den neuen Kernel in den schon vorhandenen kernel26 zu installieren.

Bist Du sicher mit -U ?

Eigentlich will ich doch den vorhandenen Kernel nicht ersetzen, sondern einen weiteren daneben installieren.

Gruss quiptime

#23 07.07.2005 07:28:05

Pierre
Entwickler

Re: kernel kompilieren

Wenn Du das nicht möchtest brauchst Du ein anderes PKGBUILD. Im Wiki findest Du dazu eines.

Offline

#24 07.07.2005 12:15:56

quiptime
Gast

Re: kernel kompilieren

Hallo Pierre,

hab mich auf wiki2.archlinux.org mal umgesehen.

Das "andere PKGBUILD" kann man so einfach nicht finden. Habe ueber die Suche versucht das Passende zu finden und habe mich bei den Suchergebnissen festgelesen.

Soweit ich bis jetzt erkennen kann, ist explizit kein Extra - PKGBUILD ausgewiesen, dass zum bilden eines Kernels neben den bereits vorhanden diehnt.

Ich muss/kann das ueber bestimmte Variablen steuern. (Genau danach hatte ich Dich gestern gefragt.)

Momentan verstehe ich das so.:

Mit mkpkg wird der bestehende Kernel ersetzt, wenn in PKGBUILD die Variablen bzw. die Bildung der Variablen auf den gleichen Namen lauten wie ein bereits installierter Kernel.

Einzig ueber

#
# General setup
#
CONFIG_LOCALVERSION="-ARCH"

in der config kann ich den Namen des zu bildenden Kernel beeinflussen. Die anderen Variablen in PKGBUILD wie pkgver darf ich nicht aendern.

Das Aendern von pkgname in PKGBUILD bringt hinsichtlich den Installation des neuen Kernels absolut nichts. Lediglich der Name des gebildeten Paketes wird damit beeinflusst.

Wenn ich bis hier was Falsch habe korrigiere mich bitte.

Gruss quiptime

Beitrag geändert von Guest (07.07.2005 12:25:24)

#25 07.07.2005 13:21:17

Pierre
Entwickler

Re: kernel kompilieren

Ja, das bringt nichts, da der Kernel immer noch unter /boot/vmlinuz gespeichert wird.

Such mal im Wiki nach "ABS Kernel etc.". Da sollte man eigentlich was finden.

Offline

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums