t1m0n
Anmeldungsdatum: 6. Mai 2008
Beiträge: 196
|
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
Anmeldungsdatum: 12. Dezember 2010
Beiträge: Zähle...
|
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)
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
Anmeldungsdatum: 12. Dezember 2010
Beiträge: 349
|
versuchs doch mit der klassischen Debian Methode, nachdem du den Kernel gepatcht hast. Gruss Robin
|
t1m0n
(Themenstarter)
Anmeldungsdatum: 6. Mai 2008
Beiträge: 196
|
|
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)
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)
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:
| 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:
|
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
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)
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
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
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)
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
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: | 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)
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: | 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?
|