I want to keep the current kernel while I upgrade to 2.6.36-2 and where I
confused is how to use mkinitcpio to do this. What I think I can do to preserve
the current kernel as 2.6.36-dcr is:
(1) cp -a /lib/modules/2.6.36-ARCH /lib/modules/2.6.36-dcr
(2)
--
David C. Rankin, J.D.,P.E.
Rankin Law Firm, PLLC
510 Ochiltree Street
Nacogdoches, Texas 75961
Telephone: (936) 715-9333
Facsimile: (936) 715-9339
www.rankinlawfirm.com
12-12-2010, 07:51 AM
Ray Rashif
Howto Preserve Current Kernel through Update?
On 12 December 2010 11:39, David C. Rankin
<drankinatty@suddenlinkmail.com> wrote:
> On 12/11/2010 09:34 PM, David C. Rankin wrote:
>> mkinitcpio -k 2.6.35-dcr
>> -c /etc/mkinitcpio.conf
>> -g /boot/kernel26-dcr.img
>>
>> mkinitcpio -k 2.6.35-dcr
>> -c /etc/mkinitcpio.conf
>> -g /boot/kernel26-dcr-fallback.img
>> -S autodetect
>
> Of course that should be 2.6.36-dcr
You're on the right track. Two points that you have to remember:
1) there must be modules
2) there must be a kernel image
Change the file names in /boot, because mkinitcpio still creates with
the standard names. You can change the config files as well.
I created a script to install an x64 kernel alongside i686, but it's
all about renames, so you can use it verbatim as well (if you have the
pkg cached):
http://paste.pocoo.org/show/303829/
./303829 $kernelpkgfile $name
Or just follow the steps and rename stuff in existing files.
12-12-2010, 06:17 PM
"David C. Rankin"
Howto Preserve Current Kernel through Update?
On 12/12/2010 02:51 AM, < wrote:>
> On 12 December 2010 11:39, David C. Rankin
> <drankinatty@suddenlinkmail.com> wrote:
>> On 12/11/2010 09:34 PM, David C. Rankin wrote:
>>> mkinitcpio -k 2.6.35-dcr
>>> -c /etc/mkinitcpio.conf
>>> -g /boot/kernel26-dcr.img
>>>
>>> mkinitcpio -k 2.6.35-dcr
>>> -c /etc/mkinitcpio.conf
>>> -g /boot/kernel26-dcr-fallback.img
>>> -S autodetect
>>
>> Of course that should be 2.6.36-dcr
>
> You're on the right track. Two points that you have to remember:
>
> 1) there must be modules
> 2) there must be a kernel image
>
> Change the file names in /boot, because mkinitcpio still creates with
> the standard names. You can change the config files as well.
>
> I created a script to install an x64 kernel alongside i686, but it's
> all about renames, so you can use it verbatim as well (if you have the
> pkg cached):
>
> http://paste.pocoo.org/show/303829/
>
> ./303829 $kernelpkgfile $name
>
> Or just follow the steps and rename stuff in existing files.
>
Thank you Ray.
I guess the part I missed was not preserving the source directory. But I'm
still confused whether it is possible to preserve the running kernel as
"kernel-dcr" by copying the existing kernel files to the new name *without*
first modifying the kernel-package and then installing the modified package.
I guess what I don't know is whether simply copying the existing files in the
manner set out below will screw up any hard-coded links to the old kernel file
names. (like any links in the copied System.map26-dcr that still point to the
original System.map26, etc..) So do you know if it is possible to preserve the
existing kernel on the system as kernel (-dcr), by doing something like:
1. cp -a /usr/src/linux-2.6.36-ARCH /usr/src/linux-2.6.36-dcr
2. cp -a /lib/modules/2.6.36-ARCH /lib/modules/2.6.36-dcr
6. update grub menu.lst and create entries for the dcr kernel
I will definitely use your script to remake the existing kernel package into a
custom -dcr package and give that a try. The script was great at helping me
along in this process. (I still need to unravel all the bsdtar options). Also, I
tweaked the top part of the script to make it a bit more generic and to provide
a bit of usage information on error. If you like, here are a few bits you could
incorporate:
#!/bin/bash
E_NO_P_1=1
E_INV_PKG=2
# simple usage function to provide usage and error information
Usage() {
[[ -n $1 ]] && echo -e "
ERROR: ${1}"
echo -e "
Usage: ${0##*/} krnl-pkg_name [krnl-extension (default:
CSTM)]
"
echo -e " The script repackages 'krnl-pkg_name' from its default name of
kernel26 to"
echo -e " kernel26-'krnl-extension' (default: kernel26-CSTM). The script will
rename"
echo -e " the source directory and module tree accordingly.
"
# test that $2 exists and is an interger and if so use as exit code
[[ -n $2 ]] && [[ $2 -eq $2 ]] &>/dev/null && exit $2
exit 1
}
[[ -z $1 ]] && Usage "Invalid Input - Arch Linux kernel package name required"
$E_NO_P_1
[[ $1 =~ pkg.tar ]] || Usage "Invalid Input - 'krnl-pkg_name' must be an Arch
Linux kernel package" $E_INV_PKG
NAME=${2:-CSTM} # I just used parameter substitution instead of 2 tests
[[ ${NAME:0:1} != - ]] && NAME="-$NAME" # if no - add it and not exit
# just temp test output to make sure it does what you want
echo -e "
$1: $1"
echo -e " $2: $2"
echo -e " Name: $NAME
"
Thanks for your help.
--
David C. Rankin, J.D.,P.E.
Rankin Law Firm, PLLC
510 Ochiltree Street
Nacogdoches, Texas 75961
Telephone: (936) 715-9333
Facsimile: (936) 715-9339
www.rankinlawfirm.com
12-14-2010, 06:00 AM
Ray Rashif
Howto Preserve Current Kernel through Update?
On 13 December 2010 03:17, David C. Rankin
<drankinatty@suddenlinkmail.com> wrote:
> * * * *I guess what I don't know is whether simply copying the existing files in the
> manner set out below will screw up any hard-coded links to the old kernel file
> names. (like any links in the copied System.map26-dcr that still point to the
> original System.map26, etc..) So do you know if it is possible to preserve the
> existing kernel on the system as kernel (-dcr), by doing something like:
> snip <
Of course. I'd guess it's the normal way to do it. Think of it as a
manual kernel installation:
> * * * *I will definitely use your script to remake the existing kernel package into a
> custom -dcr package and give that a try. The script was great at helping me
> along in this process. (I still need to unravel all the bsdtar options). Also, I
> tweaked the top part of the script to make it a bit more generic and to provide
> a bit of usage information on error. If you like, here are a few bits you could
> incorporate:
> snip <
Sure, consider it done. The final tar+compress is adapted from makepkg, btw.