De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Script para atualização do kernel em sistemas Gentoo

Colaboração: Ricardo Iramar dos Santos

Data de Publicação: 19 de December de 2008

Um script para quem está cansado de repetir os mesmos comandos de compilação do kernel quando existe uma nova versão no Gentoo.

  #!/bin/bash
  #
  # Script para atualização do kernel em sistemas Gentoo com eix
  # Agent Smith (Ricardo Iramar dos Santos)
  # ricardo.iramar@gmail.com
  #
  
  VERSOES=(`eix -n sys-kernel/gentoo-sources --format "< fullinstalled>" | sed 's/sys-kernel\///g' | cat -n`)
  DVERSOES=(`eix -n sys-kernel/gentoo-sources --format "< fullinstalled>" | sed 's/sys-kernel\///g'`)
  NVERSAO=$(dialog --stdout --menu "Selecione a versao do kernel" 0 0 0 ${VERSOES[@]})
  if [ "$NVERSAO" = "" ]; then echo "Favor informar a versão do kernel."; exit 1; fi
  VERSAO=`echo ${DVERSOES[$NVERSAO-1]} | sed 's/gentoo-sources-//g' | sed 's/-/-gentoo-/g'`
  if [ ! -d "/usr/src/linux-$VERSAO" ]; then echo "Diretório /usr/src/linux-$VERSAO não encontrado."; exit 2; fi
  if [ ! -d "/usr/src/linux" ]; then echo "Link simbólico /usr/src/linux não encontrado."; exit 3; fi
  if [ ! -d "/boot/grub" ]; then mount /boot; fi
  if [ -f "/boot/kernel-$VERSAO" ]; then echo "Arquivo /boot/kernel-$VERSAO existente."; umount /boot; exit 4; fi
  if [ -f "/boot/config-$VERSAO" ]; then echo "Arquivo /boot/config-$VERSAO existente."; umount /boot; exit 5; fi
  if [ -f "/boot/System.map-$VERSAO" ]; then echo "Arquivo /boot/System.map-$VERSAO existente."; umount /boot; exit 6; fi
  
  echo "Copiando arquivo de configuração antigo..."
  cd /usr/src/
  cp linux/.config linux-$VERSAO/
  echo "Removendo e criando novo link simbólico /usr/src/linux..."
  rm -f linux
  ln -s linux-$VERSAO linux
  ls -l
  cd linux
  echo "Carregando configuração antiga..."
  make oldconfig
  echo "Compilando kernel versão $VERSAO..."
  make && make modules_install
  echo "Copiando kernel versão $VERSAO para /boot..."
  cp arch/i386/boot/bzImage /boot/kernel-$VERSAO
  cp System.map /boot/System.map-$VERSAO
  cp .config /boot/config-$VERSAO
  echo "Recompilando os módulos..."
  module-rebuild populate && module-rebuild rebuild
  echo "Atualizando /boot/grub/grub.conf..."
  cd /boot/grub
  rm -f grub.conf.old
  cp grub.conf grub.conf.old
  sed -n '1,10p' grub.conf > grub.conf.new
  echo "title=Gentoo Linux $VERSAO" >> grub.conf.new
  echo "root (hd0,0)" >> grub.conf.new
  echo "kernel /kernel-$VERSAO root=/dev/hda4" >> grub.conf.new
  echo "savedefault" >> grub.conf.new
  sed -n '10,$p' grub.conf | sed 's/^savedefault$/savedefault 0/g' >> grub.conf.new
  mv grub.conf.new grub.conf
  echo "Instalando grub no MBR de /dev/hda..."
  grub-install --no-floppy /dev/hda
  umount /boot
  echo "Kernel versão $VERSAO compilado e instalado com sucesso!"
Agent Smith (Ricardo Iramar dos Santos) <ricardo iramar (a) gmail com>
Error: No site found with the domain 's2.dicas-l.com.br' (Learn more)