Compilação do kernel linux-libre 4.4.6 com cflags -march=native + -Ofast
Publicado por Mário RPG (última atualização em 07/04/2016)
[ Hits: 2.991 ]
Homepage: www.fsfla.org
Download 6397.scriptkernel-libre-4.4.6.sh
Script em bash para compilação automática do kernel Linux-libre 4.4.6 no Ubuntu/Debian/Mint/Trisquel 32/64 bits para PC/notebooks que tenham no mínimo 2 GB de memória RAM. Ele baixa e compila tudo automaticamente usando "CFLAGS -MARCH=NATIVE + Ofast", só sendo necessário escolher a arquitetura exata do seu processador no menuconfig.
Como executar no terminal:
$ time sudo bash scriptkernel-libre-4.4.6.sh
Página do projeto:
http://sourceforge.net/projects/scriptkernel/
#!/bin/bash # GPLv3 # # DEBIAN LIKE # # NECESSARIO versão GCC-4.7 ou superior # # Tamanho final da pasta /usr/src/linux-x.xx.xx = 9.6 GB # # Tempo de compilação ~250 min # ########################################################### #versão do kernel a ser compilado kernel=4.4 #path de atualização patchkernel=4.4.6 #patch BFQ #bfq=3.4.0-v4 #patch do kernel ubuntu site: http://kernel.ubuntu.com/~kernel-ppa/mainline/ ################ P1=0001-base-packaging.patch P2=0002-debian-changelog.patch P3=0003-configs-based-on-Ubuntu-4.4.0-5.20.patch #P4=0004-configs-based-on-Ubuntu-3.4.0-5.11.patch #apelido do kernel ubuntu apelido=wily #patch ck #patchck=3.4-ck3 #sufixo ckk=aaa #.config antigo kernelantigo=atual ################################## ################################## #arquitetura: amd64 ou i386 # criado por Stivekx - forum ubuntu-br ####### arqt=$(dpkg --print-architecture) #CL=CONCURRENCY_LEVEL do processador # criado por Stivekx ############ CL=$(grep -c processor /proc/cpuinfo) ################################## ########baixando compiladores e dependencias######################################################## sudo apt-get update sudo apt-get install kernel-package libncurses5 libncurses5-dev build-essential patch gcc make gzip bzip2 lzip lzma lzop lrzip lrzsz xz-utils -y #sudo apt-get install gcc-4.9 -y #################################################################################################### ####### backup dos patchs antigos ###################### sudo mkdir /usr/src/bkpatch sudo mv /usr/src/*.patch /usr/src/bkpatch ######################################################## ############ download kernel linux-libre ################ cd /usr/src wget -c http://www.linux-libre.fsfla.org/pub/linux-libre/releases/$kernel-gnu/linux-libre-$kernel-gnu.tar.bz2 sudo tar -jxpvf /usr/src/linux-libre-$kernel-gnu.tar.bz2 sudo mv /usr/src/linux-$kernel /usr/src/linux-libre-$patchkernel-$ckk ########### download patchs ############################# wget -c http://www.linux-libre.fsfla.org/pub/linux-libre/releases/$patchkernel-gnu/patch-$kernel-gnu-$patchkernel-gnu.xz #wget -c http://www.kernel.org/pub/linux/kernel/v3.x/patch-$patchkernel.xzy #wget -c http://ck.kolivas.org/patches/3.0/$kernel/$patchck/patch-$patchck.bz2 #wget -c http://algo.ing.unimo.it/people/paolo/disk_sched/patches/$bfq/0001-block-cgroups-kconfig-build-bits-for-BFQ-v4-$kernel.patch #wget -c http://algo.ing.unimo.it/people/paolo/disk_sched/patches/$bfq/0002-block-introduce-the-BFQ-v4-I-O-sched-for-$kernel.patch ########### ubuntu patchs ############################### wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v$patchkernel-$apelido/$P1 wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v$patchkernel-$apelido/$P2 wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v$patchkernel-$apelido/$P3 wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v$patchkernel-$apelido/$P4 ########## descompactando patch ######################### sudo xz -d /usr/src/patch-$kernel-gnu-$patchkernel-gnu.xz cd /usr/src/linux-libre-$patchkernel-$ckk ########## aplicando patchs ############################# sudo patch -p1 < /usr/src/patch-$kernel-gnu-$patchkernel-gnu #sudo patch -p1 < /usr/src/patch-$patchck #sudo patch -p1 < /usr/src/0001-block-cgroups-kconfig-build-bits-for-BFQ-v4-$kernel.patch #sudo patch -p1 < /usr/src/0002-block-introduce-the-BFQ-v4-I-O-sched-for-$kernel.patch sudo patch -p1 < /usr/src/$P1 sudo patch -p1 < /usr/src/$P2 sudo patch -p1 < /usr/src/$P3 sudo patch -p1 < /usr/src/$P4 ###################### sleep 2 ########## removendo .config antigo ##################### sudo rm /boot/download cd /boot ########## baixando .config do site http://sourceforge.net/projects/scriptkernel/files ######## sudo wget -c http://sourceforge.net/projects/scriptkernel/files/config-core2/download #sudo wget -c http://sourceforge.net/projects/scriptkernel/files/config-atom3/download #sudo wget -c http://sourceforge.net/projects/scriptkernel/files/config-14-atom2/download #sudo wget -c http://sourceforge.net/projects/scriptkernel/files/config-14-x86/download #sudo wget -c http://sourceforge.net/projects/scriptkernel/files/config-14-atom32/download #sudo wget -c http://sourceforge.net/projects/scriptkernel/files/config-kernel-12/download ########## copiando .config para /usr/src/linux-libre-xx-xx #################################### sudo cp /boot/download /usr/src/linux-libre-$patchkernel-$ckk/.config ############# Editando o Makefile ###################### sudo sed -e 's/EXTRAVERSION\([ = ]\+\)/EXTRAVERSION = -aaa/g' /usr/src/linux-libre-$patchkernel-$ckk/Makefile > /usr/src/linux-libre-$patchkernel-$ckk/mk && mv /usr/src/linux-libre-$patchkernel-$ckk/mk /usr/src/linux-libre-$patchkernel-$ckk/Makefile cd /usr/src/linux-libre-$patchkernel-$ckk #sudo gedit Makefile sleep 3 sudo make menuconfig sleep 2 ######## Retirando Modulos Problematicos ############ sudo sed 's/CONFIG_RTS5139=m/# CONFIG_RTS5139 is not set/g' /usr/src/linux-libre-$patchkernel-$ckk/.config > /usr/src/linux-libre-$patchkernel-$ckk/aa && mv /usr/src/linux-libre-$patchkernel-$ckk/aa /usr/src/linux-libre-$patchkernel-$ckk/.config sleep 2 sudo sed 's/CONFIG_IGB=m/# CONFIG_IGB is not set/g' /usr/src/linux-libre-$patchkernel-$ckk/.config > /usr/src/linux-libre-$patchkernel-$ckk/bb && mv /usr/src/linux-libre-$patchkernel-$ckk/bb /usr/src/linux-libre-$patchkernel-$ckk/.config sleep 2 sudo sed 's/CONFIG_IGB_DCA=y/# CONFIG_IGB_DCA is not set/g' /usr/src/linux-libre-$patchkernel-$ckk/.config > /usr/src/linux-libre-$patchkernel-$ckk/cc && mv /usr/src/linux-libre-$patchkernel-$ckk/cc /usr/src/linux-libre-$patchkernel-$ckk/.config sleep 2 sudo sed 's/CONFIG_IGBVF=m/# CONFIG_IGBVF is not set/g' /usr/src/linux-libre-$patchkernel-$ckk/.config > /usr/src/linux-libre-$patchkernel-$ckk/dd && mv /usr/src/linux-libre-$patchkernel-$ckk/dd /usr/src/linux-libre-$patchkernel-$ckk/.config sleep 2 sudo sed 's/CONFIG_E1000E=m/# CONFIG_E1000E is not set/g' /usr/src/linux-libre-$patchkernel-$ckk/.config > /usr/src/linux-libre-$patchkernel-$ckk/ee && mv /usr/src/linux-libre-$patchkernel-$ckk/ee /usr/src/linux-libre-$patchkernel-$ckk/.config sleep 3 ###################################################### ############ script criado por Stivekx ####################### #!/bin/bash #Script para automatizar a mudança das flags na hora de compilar o kernel. #Mais informações sobre como compilar o kernel para seu processador: #http://ubuntuforum-br.org/index.php/topic,81718.0.html #Modo de usar: #Após baixar o kernel, descompactar, criar um link simbólico para ele no /usr/src/linux: # cd /usr/src/linux # sudo su # chmod +x script.sh # ./script.sh #O script deve ser executado como root. Recomendo que use sudo su - e rode o script ao invés de sudo sh script.sh #Script criado por André Steinn #Aqui é a lista de arquivos que ele vai dar replace no -march= por -march=native. Você pode mudar essa lista de arquivos passando a lista pela opção a e separados pro virgula #e.g.: ./script.sh -a arch/x86/boot/compressed/Makefile,arch/x86/boot/Makefile,arquivo1,arquivo2,arquivo3 arquivos=( "arch/x86/boot/compressed/Makefile" "arch/x86/boot/Makefile" "arch/x86/kernel/acpi/realmode/Makefile" "arch/x86/Kconfig.cpu" "arch/x86/Makefile" "arch/x86/Makefile_32.cpu") #Aqui eu verifico se a pessoa passou algum argumento na hora de executar o script while getopts ":a:c" opt; do case $opt in a) echo "Você setou uma lista de arquivos personalizada: $OPTARG" >&2 IFS=',' read -ra arquivos <<< "$OPTARG" ;; \?) echo "Opção inválida: -$OPTARG" >&2 exit 1 ;; esac done #Aqui eu faço um loop e altero os arquivos, removendo o -march=() por -march=native for i in "${arquivos[@]}" do echo "Path no arquivo:"$i sed -e 's/-march=\([A-Z0-9a-z]\+\)/-march=native -Ofast /g' $i > "$i.file_changed" mv "$i.file_changed" $i done ################ sleep 3 #time sudo CONCURRENCY_LEVEL=2 make-kpkg --initrd kernel_image kernel_headers modules_image #time sudo CONCURRENCY_LEVEL=$CL make-kpkg --initrd kernel_image kernel_headers modules_image #cd /usr/src #sudo dpkg -i linux-image-$patchkernel-$ckk\_$patchkernel-$ckk-10.00.Custom_$arqt.deb linux-headers-$patchkernel-$ckk\_$patchkernel-$ckk-10.00.Custom_$arqt.deb cd /usr/src/linux-libre-$patchkernel-$ckk ############## compilando e instalando kernel e modulos ##################### time sudo make -j2 time sudo make modules_install time sudo make install sleep 3 cd /lib/modules ls #sudo mkinitramfs -o /boot/initrd.img-$patchkernel-$ckk $patchkernel-$ckk sudo update-grub sleep 3 echo -e ' \033[01;32m######################### KERNEL COMPILADO COM SUCESSO #############################\033[00;37m '
Monitorando tentativas de conexões
burncd - programa para gravar ISOs
Script iniciante para adm. de usuarios e quotas
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
SysAdmin ou DevOps: Qual curso inicial pra essa área? (0)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta