Mailinglist Archive: opensuse-de (6694 mails)

< Previous Next >
Re: Kernel Update auf version 2.4.17
  • From: David Haller <david@xxxxxxxxxx>
  • Date: Mon, 7 Jan 2002 20:45:32 +0100
  • Message-id: <20020107204532.D17057@xxxxxxxxxxxxxxxxxx>
Hallo,

On Wed, 02 Jan 2002, Manfred Tremmel wrote:
Am Mittwoch, 2. Januar 2002 01:12 schrieb Helga Fischer:
Ich würde lieber mit der Hand kopieren. make bzlilo löscht den
alten nämlich (und warum sollte man was funktionierendes
wegschmeissen?).

Ack.

Nö, der alte wird zum vmlinuz.old und die System.map zur System.old
Find ich recht praktisch, hab hier in der lilo.conf immer nur vmlinuz
und vmlinuz.old drinnen. Sollte mal was schief gehen, steht die alte
Version damit immer noch zur Verfügung, trotzdem brauch ich mich nicht
ums rumkopieren kümmern.

Und was ist, wenn du im neuen Kernel was vergessen hast? z.B. den
Framebuffer-Support? Nach einem "make bzlilo" folgt dann das grosse
"Oh-oh", wenn man nicht noch ne andere Kopie hat (die es bei neueren
Suse's ja $DEITY-sei-Dank gibt)...

Siehe aber http://www.dhaller.de/linux/multikernel.html ;)

Ich ziehe auch ein manuelles kopieren vor, alternativ kann man sich
ein '/sbin/installkernel' shell-script schreiben, und dann 'make install'
statt 'make bzlilo' aufrufen, denn (aus arch/$(ARCH)/boot/install.sh):

====
# User may have a custom install script

if [ -x ~/bin/installkernel ]; then exec ~/bin/installkernel "$@"; fi
if [ -x /sbin/installkernel ]; then exec /sbin/installkernel "$@"; fi
====

Zum Beispiel (entschaerft und OHNE JEDE GEWAEHR da nur "mal eben"
hingeschrieben[1]) fuer "mein" Schema von o.g. Webseite:

,----[ /sbin/installkernel ]
| #!/bin/sh
| lilo_conf="/dev/stdout"
| instname="bzImage"
|
| kernelversion="$1"
| kernelfile="$2"
| mapfile="$3"
| installpath="$4"
|
| test -n "$rootdev" || {
| echo "$0: Fatal error: environment-variable 'rootdev' empty!" >&2;
| exit 1;
| }
| test -n "$append" || {
| echo "$0: Fatal error: environment-variable 'append' empty!" >&2;
| echo " set it to a single blank ' ' for no per-image append line" >&2;
| exit 2;
| }
| if test "x$append" = "x "; then
| unset append
| else
| append="\n append = \"$append\""
| fi
|
| instkernel="${installpath}/${instname}-${kernelversion}"
|
| echo cp -i "$kernelfile" "$instkernel" || exit -1
| echo cp -i "$mapfile" "${installpath}/System.map-${kernelversion}" || exit -1
| echo -e "
| #### Kernel $kernelversion ####
| image = $instkernel
| root = $rootdev$append
| label = $kernelversion
| " >> $lilo_conf || exit -1
|
| if test -x /sbin/lilo; then
| echo /sbin/lilo -v || exit -1
| else
| /etc/lilo/install || exit -1
| fi
|
| exit 0
`----

Anwendung in /usr/src/linux z.B. mit:

append="hdd=ide-scsi" rootdev="/dev/hda5" make install

oder

append=" " rootdev="/dev/hda5" make install

(wobei man append und rootdev sicher auch im script definieren[2] oder
vorher in der shell exportieren koennte ;)

Ausserdem muss man entweder im "Toplevel-Makefile" das folgende ent-
kommentieren
#export INSTALL_PATH=/boot
oder
append=" " rootdev="/dev/hd??" make INSTALL_PATH="/boot" install
verwenden, wenn man den Kernel nach /boot haben will.

Mir wiederstrebt es irgendwie, einen mit mehreren Megabyte an Patches
abgeänderten Kernel, wie SuSE es macht, als Original zu bezeichnen.

Full Ack. "Original" bzw. "vanilla" ist immer ein ungepatchter Kernel
von kernel.org.[PUNKT!] ;)

Alle anderen Kernel sind zu qualifizieren z.B. als "SuSE-default-Kernel
2.x.y", "Original 2.x.y + reiserfs-patch" etc.).

-dnh

[1] hoffentlich ist's auch sh-konform ;)

[2] aber dann ist das script halt nicht mehr portabel...

--
95: PGP-Keysigning-Party
Kultiges Zusammensitzen und gemeinsames Murmeln magischer
Zahlen. (Gert Döring)

< Previous Next >
Follow Ups