Índice
Llevo unos cuantos años usando Gentoo, y cada vez que salía una actualización del kernel terminaba visitando la página Kernel/Upgrade de la Wiki de Gentoo. Tras casi aprenderme los pasos de memoria, decidí que iba siendo hora de escribir un script que automatizara el proceso.
El script es bastante simple, lo publico por si a alguien le resulta útil:
#!/usr/bin/env bash
## Upgrade gentoo kernel
# The first and only argument must be the folder name of the new kernel.
# Stop script when an error occurs
set -o errexit
set -o pipefail
set -o nounset
# For debugging purposes
set -o xtrace
readonly kernel_path='/usr/src/'
_usage () {
local script_name="$0"
echo "Usage: $0 <newkernelfolder>"
}
_main () {
echo "Backing up old kernel..."
cd "${kernel_path}/linux/"
cp .config ~/kernel-config-"$(uname -r)"
echo "Copying old configuration..."
cp /usr/src/linux/.config /tmp/.config
echo "Setting new kernel as default..."
#ln -sf /usr/src/"$1" /usr/src/linux
cp /tmp/.config /usr/src/linux/
eselect kernel set 2
cd /usr/src/linux/
echo "Building..."
make -j4 olddefconfig
make -j4 modules_prepare
make modules_install
emerge --ask @module-rebuild
make -j4
make install
echo "Please, update your EFI entry: cp /boot/vmlinuz-*-gentoo /boot/efi/boot/bootx64.efi"
}
if [[ $# -eq 1 ]]
then
_main $1
else
_usage
fi
Para usarlo basta con ejecutar:
$ sudo ./updatekernel.sh <nombre-carpeta-kernel>
## por ejemplo
$ sudo ./updatekernel.sh linux-4.12.12-gentoo
El script se puede mejorar aún bastante, si te apetece contribuir, está alojado en mi repositorio de Dotfiles.
Tras escribir el script, me dí cuenta que portage tiene una opción para añadir hooks a los paquetes, concretamente hay uno para que el kernel se compile e instale automáticamente. Al probarlo me dí cuenta de que no usa el .config
del kernel anterior. Seguramente se pueda configurar para que lo haga, pero ya que escribí el script, decidí usarlo.
Espero que te sea útil!
¿Has visto algún error?: Por favor, ayúdame a corregirlo contactando conmigo o comentando abajo.