kernel bauch

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
unix1988
Beiträge: 693
Registriert: 27.12.2010 00:09:20

kernel bauch

Beitrag von unix1988 » 13.08.2013 13:08:02

Hallo

Ich habe mir ein keinles script gebaucht wo ich immer meine kernel da mit bauche wie kann ich das machen das ich das nicht immer Rein copy mus für alles bauchen zu lachsen das ich einfach nur noch die kernel nummer enderen muss das ist das script??
fakeroot make-kpkg --initrd --revision=1hagrid kernel_image kernel_source modules_image kernel_headers
z.B ./kernel ein geben mus und er bauch es dan
und möchte es dan so habe das ich dan in /usr/src nur das kann auf rufen und er es von z.B linux-3.2.4 dan baucht


Grus unix1988
Hallo Ich habe eine Rechtschreibschwäche das heis nicht wundern es es manch mal schwer zu schirben ist

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: kernel bauch

Beitrag von syssi » 13.08.2013 13:32:08

Parameter, welche du an deinen Skriptaufruf anhaengst sind im Skript durchgezaehlt verfuegbar. Beispiel:

Code: Alles auswählen

#!/bin/bash

echo $0
echo $1
echo $2

Code: Alles auswählen

$ ./dasskript.sh parameter1 parameter2
./dasskript.sh
parameter1
parameter2
Gruss syssi

Benutzeravatar
unix1988
Beiträge: 693
Registriert: 27.12.2010 00:09:20

Re: kernel bauch

Beitrag von unix1988 » 13.08.2013 14:41:03

Hallo

ich habe das jetzt geschirben aber es gecht nicht was mach ich den da Falsch
#!/bin/bash

echo §cd linux-3.10.6
echo make menuconfig
echo fakeroot make-kpkg --initrd --revision=1hagrid kernel_image kernel_source modules_image kernel_headers
was mach ich da fasch

Grus unix1988
Hallo Ich habe eine Rechtschreibschwäche das heis nicht wundern es es manch mal schwer zu schirben ist

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: kernel bauch

Beitrag von syssi » 13.08.2013 14:56:29

Wir haben aneinander vorbei geredet und scheinbar musst du dir Bash-Programmierung nochmal genau ansehen. Dein Skript muesste so aussehen:

Code: Alles auswählen

#!/bin/bash

cd linux-3.10.6
make menuconfig
fakeroot make-kpkg --initrd --revision=1hagrid kernel_image kernel_source modules_image kernel_headers


Benutzeravatar
unix1988
Beiträge: 693
Registriert: 27.12.2010 00:09:20

Re: kernel bauch

Beitrag von unix1988 » 13.08.2013 15:00:25

cool danke dir

und wie kann ich das jetzt noch machen das er hin gechen und den kernel unter /boot/config.3.6.10 nach /usr/src/linux-3.10.12 copy aber in .config um wanden
ich kann das doch dan so mache mit
cp -rv /boot/config-3.10-2-amd64 /usr/src/linux-3.10.6/.config
und das scipt sicht jetzt so aus
#!/bin/bash

cp -rv /boot/config-3.10-2-amd64 /usr/src/linux-3.10.6/.config
cd linux-3.10.6
make menuconfig
fakeroot make-kpkg --initrd --revision=1hagrid kernel_image kernel_source modules_image kernel_headers
Grus unix1988
Hallo Ich habe eine Rechtschreibschwäche das heis nicht wundern es es manch mal schwer zu schirben ist

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: kernel bauch

Beitrag von rendegast » 14.08.2013 06:41:01

gut.
Das rekursive Kopieren '-r' einer Datei ist unnötig.

Tip für 'make menuconfig',
CONFIG_DEBUG_INFO deaktivieren, spart einige GB an Kompilierplatz.
(und wohl auch einige Zeit)

allgemein für Multicore-Prozessoren
'make-kpkg --jobs CPU+1 .....'

Um nebenbei noch arbeiten zu können, das Skript per 'nice' aufrufen,
oder den letzten Befehl als
'nice fakeroot make-kpkg ......'




---------------------------------------------------
Was ich früher gerne gemacht habe,
Das kernel-Verzeichnis per 'lndir' (xutils-dev) auf ein tmpfs zu bringen.
Leider ist dann das vom kerneleigenen 'make deb-pkg' erstellte header-Paket unbrauchbar,
da es die lndir-Links enthält statt die verlinkten Dateien.
Ein denkbarer Patch dafür könnte sowas in der Art sein:
http://nopaste.debianforum.de/37338

Code: Alles auswählen

--- a/scripts/package/builddeb        2013-08-04 10:51:49.000000000 +0200
+++ lndir-Links-Fix/scripts/package/builddeb  2013-08-14 08:23:02.417725740 +0200
@@ -244,12 +244,12 @@

 # Build header package
 (cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl > "$objtree/debian/hdrsrcfiles")
-(cd $srctree; find arch/$SRCARCH/include include scripts -type f >> "$objtree/debian/hdrsrcfiles")
-(cd $objtree; find arch/$SRCARCH/include .config Module.symvers include scripts -type f >> "$objtree/debian/hdrobjfiles")
+(cd $srctree; find arch/$SRCARCH/include include scripts ! -type d >> "$objtree/debian/hdrsrcfiles")
+(cd $objtree; find arch/$SRCARCH/include .config Module.symvers include scripts ! -type d >> "$objtree/debian/hdrobjfiles")
 destdir=$kernel_headers_dir/usr/src/linux-headers-$version
 mkdir -p "$destdir"
-(cd $srctree; tar -c -f - -T "$objtree/debian/hdrsrcfiles") | (cd $destdir; tar -xf -)
-(cd $objtree; tar -c -f - -T "$objtree/debian/hdrobjfiles") | (cd $destdir; tar -xf -)
+(cd $srctree; tar -c -h -f - -T "$objtree/debian/hdrsrcfiles") | (cd $destdir; tar -xf -)
+(cd $objtree; tar -c -h -f - -T "$objtree/debian/hdrobjfiles") | (cd $destdir; tar -xf -)
 ln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build"
 rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles"
 arch=$(dpkg --print-architecture)
(EDIT)
EDIT ab kernel 3.12 ein etwas veränderter Patch

Code: Alles auswählen

--- a/scripts/package/builddeb	2013-11-26 04:00:00.000000000 +0200
+++ lndir-Links-Fix/scripts/package/builddeb	2013-11-26 04:04:00.000000000 +0200
@@ -279,12 +279,12 @@
 
 # Build header package
 (cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl > "$objtree/debian/hdrsrcfiles")
-(cd $srctree; find arch/$SRCARCH/include include scripts -type f >> "$objtree/debian/hdrsrcfiles")
-(cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f >> "$objtree/debian/hdrobjfiles")
+(cd $srctree; find arch/$SRCARCH/include include scripts ! -type d >> "$objtree/debian/hdrsrcfiles")
+(cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts ! -type d >> "$objtree/debian/hdrobjfiles")
 destdir=$kernel_headers_dir/usr/src/linux-headers-$version
 mkdir -p "$destdir"
-(cd $srctree; tar -c -f - -T "$objtree/debian/hdrsrcfiles") | (cd $destdir; tar -xf -)
-(cd $objtree; tar -c -f - -T "$objtree/debian/hdrobjfiles") | (cd $destdir; tar -xf -)
+(cd $srctree; tar -c -h -f - -T "$objtree/debian/hdrsrcfiles") | (cd $destdir; tar -xf -)
+(cd $objtree; tar -c -h -f - -T "$objtree/debian/hdrobjfiles") | (cd $destdir; tar -xf -)
 (cd $objtree; cp $KCONFIG_CONFIG $destdir/.config) # copy .config manually to be where it's expected to be
 ln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build"
 rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles"
Zuletzt geändert von rendegast am 26.11.2013 04:06:09, insgesamt 3-mal geändert.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: kernel bauch

Beitrag von syssi » 14.08.2013 10:38:17

unix1988 hat geschrieben:cool danke dir

und wie kann ich das jetzt noch machen das er hin gechen und den kernel unter /boot/config.3.6.10 nach /usr/src/linux-3.10.12 copy aber in .config um wanden
ich kann das doch dan so mache mit
cp -rv /boot/config-3.10-2-amd64 /usr/src/linux-3.10.6/.config
Du koenntest dein System nach dem aktuell laufenden Kernel befragen und die Config dieses Kernels waehlen:

Code: Alles auswählen

cp -v /boot/config-$(uname -r) /usr/src/linux-3.10.6/.config
Wenn du nicht weisst, was "uname -r" an dieser Stelle soll, dann geb es einfach mal in einem Terminal ein:

Code: Alles auswählen

uname -r

Benutzeravatar
unix1988
Beiträge: 693
Registriert: 27.12.2010 00:09:20

Re: kernel bauch

Beitrag von unix1988 » 16.08.2013 16:39:48

Hallo

habe jetzt das script so gemacht
#!/bin/bash

#cp -rv /boot/config-3.10-2-amd64 /usr/src/linux-3.10.6/.config
cp -v /boot/config-$(uname -r) /usr/src/linux-3.10.6/.config
cd linux-3.10.6
make menuconfig
fakeroot make-kpkg --initrd --revision=1hagrid kernel_image kernel_source
habe ich jetzt noch was fergesen oder so??

Grus unix1988
Hallo Ich habe eine Rechtschreibschwäche das heis nicht wundern es es manch mal schwer zu schirben ist

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: kernel bauch

Beitrag von syssi » 16.08.2013 18:22:11

Probiers doch aus. :-) Du kannst noch die Versionsnummer des neuen Kernels gegen eine Variable ersetzen:

Code: Alles auswählen

!/bin/bash

NEU=linux-3.10.6

cp -v /boot/config-$(uname -r) /usr/src/$NEU/.config
cd $NEU
make menuconfig
fakeroot make-kpkg --initrd --revision=1hagrid kernel_image kernel_source
oder sogar per Kommandozeilenparameter:

Code: Alles auswählen

!/bin/bash

if [ $# -ne 1 ];
then
  echo Aufruf: ./skript.sh <version>
  exit 1
fi

NEU=$1

cp -v /boot/config-$(uname -r) /usr/src/$NEU/.config
cd $NEU
make menuconfig
fakeroot make-kpkg --initrd --revision=1hagrid kernel_image kernel_source
Gruss syssi

Antworten