staging.inyokaproject.org

linux-headers und linux-sources generieren

Status: Ungelöst | Ubuntu-Version: Ubuntu 10.04 (Lucid Lynx)
Antworten |

t1m0n

Avatar von t1m0n

Anmeldungsdatum:
6. Mai 2008

Beiträge: Zähle...

Hallo, ich habe den Vanilla-Kernel 3.4.9 herunter geladen und mit RT_PREEMPT gepatcht. Der Kernel läuft soweit. Nun benötige ich aber die linux-headers und linux-sources dazu um spezielle Programme zu kompilieren. Wie erstelle ich die und wo muss ich die installieren?

Im Forum habe ich gelesen, dass es mit dpkp Probleme gibt. Die beiden Artikel habe ich gelesen und unter Ubuntu 12.04 getestet- ohne Erfolg: http://wiki.ubuntuusers.de/Metapakete?redirect=no http://wiki.ubuntuusers.de/Metapakete_erstellen

Aus Weiteren Gründen bin ich nun auf 10.04 wieder umgestiegen. Wie gehe ich da genau vor?

Kriev

Avatar von Kriev

Anmeldungsdatum:
12. Dezember 2010

Beiträge: 349

Hö?

Mit welcher Methode hast du den Kernel Kompiliert? Nicht mit der klassischen Debian-Methode? Normalerweise werden dann die headers auch kompiliert, unter Kompilierung steht eigentlich alles.

Gruss Robin

Bearbeitet von Lasall:

Linkfix.

t1m0n

(Themenstarter)
Avatar von t1m0n

Anmeldungsdatum:
6. Mai 2008

Beiträge: 196

Nach dieser Anleitung: https://www.osadl.org/Realtime-Preempt-Kernel.kernel-rt.0.html#othersystems

Siehe

2.2.1. Download and patch the kernel manually

2.2.3. Configure and build the kernel

Allerdings unter cd /usr/src/ Ich habe im Nachhinein gesehen, dass cd /usr/src/kernels vorgesehen ist, ist das schlimm?

Kriev

Avatar von Kriev

Anmeldungsdatum:
12. Dezember 2010

Beiträge: 349

versuchs doch mit der klassischen Debian Methode, nachdem du den Kernel gepatcht hast.

Gruss Robin

t1m0n

(Themenstarter)
Avatar von t1m0n

Anmeldungsdatum:
6. Mai 2008

Beiträge: 196

Ich dachte das ist die..

Kriev

Avatar von Kriev

Anmeldungsdatum:
12. Dezember 2010

Beiträge: 349

nicht ganz, davon abgesehen ist der workaround veraltet... was für ein patch ist den das genau, ein echtzeitkernel?

Gruss Robin

t1m0n

(Themenstarter)
Avatar von t1m0n

Anmeldungsdatum:
6. Mai 2008

Beiträge: 196

Rt-preempt für volle echtzeit da dies im mainline noch nicht zu 100% unterstützt wird

t1m0n

(Themenstarter)
Avatar von t1m0n

Anmeldungsdatum:
6. Mai 2008

Beiträge: 196

Kriev schrieb:

versuchs doch mit der klassischen Debian Methode, nachdem du den Kernel gepatcht hast.

Gruss Robin

Eingabe:

1
2
3
4
cd /usr/src/linux-3.4.9-rt17/
make-kpkg clean
export CONCURRENCY_LEVEL=2
fakeroot make-kpkg --initrd --append-to-version=-patched kernel_image kernel_headers

Ausgabe:

1
2
3
4
5
6
7

dpkg-gencontrol: Fehler: Paket linux-image-3.4.9-patched-rt17 nicht in Steuer-Info
make[2]: *** [debian/stamp/binary/linux-image-3.4.9-patched-rt17] Fehler 255
make[2]: Verlasse Verzeichnis '/usr/src/linux-3.4.9-rt17'
make[1]: *** [debian/stamp/binary/pre-linux-image-3.4.9-patched-rt17] Fehler 2
make[1]: Verlasse Verzeichnis '/usr/src/linux-3.4.9-rt17'
make: *** [kernel_image] Fehler 2

Die *.deb-Files konnte ich nicht finden

Kriev

Avatar von Kriev

Anmeldungsdatum:
12. Dezember 2010

Beiträge: 349

Aber es gibt doch welche die schon vorkompiliert sind! Such mal nach den Kerneln für ubuntu studio.

Gruss Robin

t1m0n

(Themenstarter)
Avatar von t1m0n

Anmeldungsdatum:
6. Mai 2008

Beiträge: 196

Kriev schrieb:

Aber es gibt doch welche die schon vorkompiliert sind! Such mal nach den Kerneln für ubuntu studio.

Gruss Robin

Ich brauche aber spezielle Kernel-Module und die Software LinuxCNC mit dem speziellen Patch benötigt eine spezielle Kernelversion - daher selbst kompilieren

Vorher hat es mit make ja geklappt.

1. Problem war nur, dass die *.deb-Pakete linux-image und linux-headers nicht angelegt worden sind. Das ist doch nachträglich sicher möglich.

2. Aktuelles Problem, wie aktualisiere ich Grub, so dass der neue kompilierte Kernel im Bootloader auftaucht? Unter 12.04 geschah das automatisch aber unter 10.04 tauchte der neue Kernel erst auf, als ich die Updates ausführte und einen neuen Kernel von Ubuntu ausversehen mitinstalliert hatte. Dumm war nur, dass ich den Kernel bis dahin schon wieder gelöscht (nicht deinstalliert) hatte und er nicht bootbar ist.

Kriev

Avatar von Kriev

Anmeldungsdatum:
12. Dezember 2010

Beiträge: 349

t1m0n schrieb:

Kriev schrieb:

Aber es gibt doch welche die schon vorkompiliert sind! Such mal nach den Kerneln für ubuntu studio.

Gruss Robin

Ich brauche aber spezielle Kernel-Module und die Software LinuxCNC mit dem speziellen Patch benötigt eine spezielle Kernelversion - daher selbst kompilieren

da kann ich dir leider schlecht helfen :/ sorry...

Vorher hat es mit make ja geklappt.

1. Problem war nur, dass die *.deb-Pakete linux-image und linux-headers nicht angelegt worden sind. Das ist doch nachträglich sicher möglich.

2. Aktuelles Problem, wie aktualisiere ich Grub, so dass der neue kompilierte Kernel im Bootloader auftaucht? Unter 12.04 geschah das automatisch aber unter 10.04 tauchte der neue Kernel erst auf, als ich die Updates ausführte und einen neuen Kernel von Ubuntu ausversehen mitinstalliert hatte. Dumm war nur, dass ich den Kernel bis dahin schon wieder gelöscht (nicht deinstalliert) hatte und er nicht bootbar ist.

mit dem Befehl

sudo update-grub

gruss Robin

barcc

Avatar von barcc

Anmeldungsdatum:
13. Juli 2007

Beiträge: 696

t1m0n schrieb:

Du solltest niemals mit root-Rechten kompilieren und im Verzeichnis /usr/src/ hast du normalerweise keine Benutzerrechte. Entpacke den Quellcode in deinem Home-Verzeichnis und kompiliere dort mit make-kpkg. Vielleicht löst das schon dein Problem.

Gruß, B.C.

t1m0n

(Themenstarter)
Avatar von t1m0n

Anmeldungsdatum:
6. Mai 2008

Beiträge: 196

barcc schrieb:

make-kpkg. Vielleicht löst das schon dein Problem.

Gruß, B.C.

Leider finde ich die *.deb-Pakete nun nicht falls er sie angelegt hat. Der Prozess dauerte ca. 1min.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
msruser103@MSRPC-103:~$ uname -a
Linux MSRPC-103 2.6.32-42-generic #95-Ubuntu SMP Wed Jul 25 15:57:54 UTC 2012 i686 GNU/Linux

msruser103@MSRPC-103:~$ cd linux-3.4.9-rt17/
msruser103@MSRPC-103:~/linux-3.4.9-rt17$ make-kpkg
exec make kpkg_version=12.032 -f /usr/share/kernel-package/ruleset/minimal.mk debian
====== making target debian/stamp/conf/minimal_debian [new prereqs: ]======
This is kernel package version 12.032.
test -d debian             || mkdir debian
test ! -e stamp-building || rm -f stamp-building
install -p -m 755 /usr/share/kernel-package/rules debian/rules
for file in ChangeLog  Control  Control.bin86 config templates.in rules; do                                      \
            cp -f  /usr/share/kernel-package/$file ./debian/;                               \
        done
for dir  in Config docs examples ruleset scripts pkg po;  do                                      \
          cp -af /usr/share/kernel-package/$dir  ./debian/;                                 \
        done
test -f debian/control || sed         -e 's/=V/3.4.9/g'  \
                -e 's/=D/3.4.9-10.00.Custom/g'         -e 's/=A/i386/g'  \
		-e 's/=SA//g'  \
		-e 's/=I//g'				    \
		-e 's/=CV/3.4/g'			    \
		-e 's/=M/Unknown Kernel Package Maintainer <unknown@unconfigured.in.etc.kernel-pkg.conf>/g'			    \
		-e 's/=ST/linux/g'      -e 's/=B/i386/g'    \
                  /usr/share/kernel-package/Control > debian/control
test -f debian/changelog ||  sed -e 's/=V/3.4.9/g'       \
            -e 's/=D/3.4.9-10.00.Custom/g'        -e 's/=A/i386/g'       \
            -e 's/=ST/linux/g'     -e 's/=B/i386/g'         \
            -e 's/=M/Unknown Kernel Package Maintainer <unknown@unconfigured.in.etc.kernel-pkg.conf>/g'                            \
             /usr/share/kernel-package/changelog > debian/changelog
chmod 0644 debian/control debian/changelog
test -d ./debian/stamp || mkdir debian/stamp 
make -f debian/rules debian/stamp/conf/kernel-conf
make[1]: Betrete Verzeichnis '/home/msruser103/linux-3.4.9-rt17'
====== making target debian/stamp/conf/kernel-conf [new prereqs: ]======
make    ARCH=i386 \
                    oldconfig;                                      
make[2]: Betrete Verzeichnis '/home/msruser103/linux-3.4.9-rt17'
scripts/kconfig/conf --oldconfig Kconfig
#
# configuration written to .config
#
make[2]: Verlasse Verzeichnis '/home/msruser103/linux-3.4.9-rt17'
make    ARCH=i386 prepare
make[2]: Betrete Verzeichnis '/home/msruser103/linux-3.4.9-rt17'
scripts/kconfig/conf --silentoldconfig Kconfig
make[2]: Verlasse Verzeichnis '/home/msruser103/linux-3.4.9-rt17'
make[2]: Betrete Verzeichnis '/home/msruser103/linux-3.4.9-rt17'
  SYSHDR  arch/x86/syscalls/../include/generated/asm/unistd_32.h
  SYSHDR  arch/x86/syscalls/../include/generated/asm/unistd_64.h
  SYSHDR  arch/x86/syscalls/../include/generated/asm/unistd_x32.h
  SYSTBL  arch/x86/syscalls/../include/generated/asm/syscalls_32.h
  HOSTCC  arch/x86/tools/relocs
  CHK     include/linux/version.h
  UPD     include/linux/version.h
  CHK     include/generated/utsrelease.h
  UPD     include/generated/utsrelease.h
  CC      kernel/bounds.s
  GEN     include/generated/bounds.h
  CC      arch/x86/kernel/asm-offsets.s
  GEN     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh
make[2]: Verlasse Verzeichnis '/home/msruser103/linux-3.4.9-rt17'
echo done > debian/stamp/conf/kernel-conf
make[1]: Verlasse Verzeichnis '/home/msruser103/linux-3.4.9-rt17'
make -f debian/rules debian/stamp/conf/full-changelog
make[1]: Betrete Verzeichnis '/home/msruser103/linux-3.4.9-rt17'
====== making target debian/stamp/conf/full-changelog [new prereqs: ]======
for file in ChangeLog  Control  Control.bin86 config templates.in rules; do				\
	     cp -f  /usr/share/kernel-package/$file ./debian/;			\
	done
for dir  in Config docs examples ruleset scripts pkg po;	do				\
	   cp -af /usr/share/kernel-package/$dir  ./debian/;				\
	done
install -p -m 755 /usr/share/kernel-package/rules debian/rules
sed         -e 's/=V/3.4.9/g'  \
                -e 's/=D/3.4.9-rt17-10.00.Custom/g'         -e 's/=A/i386/g'  \
		-e 's/=SA//g'  \
		-e 's/=I//g'				    \
		-e 's/=CV/3.4/g'			    \
		-e 's/=M/Unknown Kernel Package Maintainer <unknown@unconfigured.in.etc.kernel-pkg.conf>/g'			    \
		-e 's/=ST/linux/g'      -e 's/=B/i386/g'    \
                  /usr/share/kernel-package/Control > debian/control
sed -e 's/=V/3.4.9-rt17/g' -e 's/=D/3.4.9-rt17-10.00.Custom/g'	      \
	    -e 's/=A/i386/g' -e 's/=M/Unknown Kernel Package Maintainer <unknown@unconfigured.in.etc.kernel-pkg.conf>/g' \
	    -e 's/=ST/linux/g'	 -e 's/=B/i386/g'	      \
		/usr/share/kernel-package/changelog > debian/changelog
chmod 0644 debian/control debian/changelog
make -f debian/rules debian/stamp/conf/kernel-conf
make[2]: Betrete Verzeichnis '/home/msruser103/linux-3.4.9-rt17'
make[2]: »debian/stamp/conf/kernel-conf« ist bereits aktualisiert.
make[2]: Verlasse Verzeichnis '/home/msruser103/linux-3.4.9-rt17'
make[1]: Verlasse Verzeichnis '/home/msruser103/linux-3.4.9-rt17'
echo done > debian/stamp/conf/minimal_debian
exec debian/rules  
nothing to be done.
msruser103@MSRPC-103:~/linux-3.4.9-rt17$ 

barcc

Avatar von barcc

Anmeldungsdatum:
13. Juli 2007

Beiträge: 696

Du musst schon make-kpkg schon so verwenden wie du es oben gemacht hast und wie es auch im Wiki steht:

1
2
3
make-kpkg clean
export CONCURRENCY_LEVEL=2
fakeroot make-kpkg --initrd --append-to-version=-patched kernel_image kernel_headers

Die deb-Pakete sind dann im übergeordneten Verzeichnis.

t1m0n

(Themenstarter)
Avatar von t1m0n

Anmeldungsdatum:
6. Mai 2008

Beiträge: 196

barcc schrieb:

Du musst schon make-kpkg schon so verwenden wie du es oben gemacht hast und wie es auch im Wiki steht:

1
2
3
make-kpkg clean
export CONCURRENCY_LEVEL=2
fakeroot make-kpkg --initrd --append-to-version=-patched kernel_image kernel_headers

Die deb-Pakete sind dann im übergeordneten Verzeichnis.

Ok, danke. Und dann habe ich kernel-image-xxx und kernel-headers-xxx. Richtig? Diese dann installieren mit der Paketverwaltung (wenn ja, wie) und der neue Kernel ist komplett und "ordnungsgemäß" installiert?

Antworten |