Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!

Iniciado por Hqxriven, 24 de Dezembro de 2007, 13:26

tópico anterior - próximo tópico

4d4c47

pro pessoal que entende de bash, podia dá uma ajudinha aí,

como eu faria pra pegar automaticamente o arquivo /boot/config-x.xx.xx  do kernel antigo e jogar no kernel futuro que será compilado (/usr/src/linux-x-xx-xx/.config) ?

pra quem entende de bash faz isso facil facil, mas eu sou quase um anafabeto nisso.





Stivekx

#4141
Se vc executar o comando:
locate /boot/config-*

Você lista todos os config lá
Porém, ele exibe mais de um caso encontre...

Então, podes fazer isso:
locate -l 1 /boot/config-*

O -l limita a 1 resultado.

Porém, se vc tiver mais de um resultado, ele mostra apenas o primeiro:

locate /boot/config-*
/boot/config-3.0.0-17-generic
/boot/config-3.3.1-ck1

Seria legal pegar o último...
Dá pra por ele em primeiro usando sort:
locate /boot/config-* |sort -r
/boot/config-3.3.1-ck1
/boot/config-3.0.0-17-generic

Mas dai você vai ter que separar os resultados... :s

Ahh enfim, usando:
config_file=$(locate -l 1 /boot/config-*);

config_file será o primeiro arquivo config dentro da pasta /boot

--
Se você não por o -l 1 , ele irá retornar uma array com a lista de .configs, podes até perguntar ao user, qual .config ele quer usar :)

--
config_file=$(find /boot -name config-* -print | head -1)

rs, usando find dá...
Se usasse locate/sort/head daria certo também '-'
config_file=$(locate /boot/config-* | sort -r | head -1)

Stivekx

O localmodconfig, Não funciona anda praticmente... lol
Ele primeiro Não adicionou o HD (SATA - SCSI), depois não marcou o ext4/ext3/ext2, não marcou o teclado e touchpad ...
Ai complica, kkkkk

4d4c47

#4143
Citação de: Stivekx online 17 de Abril de 2012, 08:05
Se vc executar o comando:
locate /boot/config-*

Você lista todos os config lá
Porém, ele exibe mais de um caso encontre...

Então, podes fazer isso:
locate -l 1 /boot/config-*

O -l limita a 1 resultado.

Porém, se vc tiver mais de um resultado, ele mostra apenas o primeiro:

locate /boot/config-*
/boot/config-3.0.0-17-generic
/boot/config-3.3.1-ck1

Seria legal pegar o último...
Dá pra por ele em primeiro usando sort:
locate /boot/config-* |sort -r
/boot/config-3.3.1-ck1
/boot/config-3.0.0-17-generic

Mas dai você vai ter que separar os resultados... :s

Ahh enfim, usando:
config_file=$(locate -l 1 /boot/config-*);

config_file será o primeiro arquivo config dentro da pasta /boot

--
Se você não por o -l 1 , ele irá retornar uma array com a lista de .configs, podes até perguntar ao user, qual .config ele quer usar :)

--
config_file=$(find /boot -name config-* -print | head -1)

rs, usando find dá...
Se usasse locate/sort/head daria certo também '-'
config_file=$(locate /boot/config-* | sort -r | head -1)

@Stivekx,

mais uma valeu demais meu chapa, aqui vai o novo scritpt, agora tudo automatico, sem precisar de se preocupar com o .config, quem quiser melhorar fique a vontade:


#!/bin/bash

#######################################################################################################################################
# script PARA USUARIOS DO UBUNTU 11.10 baixa e compila kernel tudo automaticamente CRIADO PELOS USUÁRIOS DO FORUM UBUNTU BR:          #
# http://ubuntuforum-br.org/index.php/topic,29799.3960.html                                                                           #
#                                                                                                                                     #
# totalmente GPL-3                                                                                                                    #
#                                                                                                                                     #
# vc vai ter o trabalho so de mudar a versão do kernel e a versão do patch do koliva                                                  #
#                                                                                                                                     #
# salve em /bin com o nome scriptkernel e de permissão de execução                                                                    #
# sudo chmod +x /bin/scriptkernel                                                                                                     #
#                                                                                                                                     #
# pra começar a compilação:                                                                                                           #
# time sudo scriptkernel                                                                                                              #
#                                                                                                                                     #
#######################################################################################################################################



############################################
#vc só vai ter o trabalho de editar aqui:

#versão do kernel a ser compilado
kernel=3.3

#path de atualização
patchkernel=3.3.2


#patch ck
patchck=3.3-ck1

#sufixo
ckk=ck1


#.config antigo
kernelantigo=atual

############################################

# não precisa mexer em mais nada aqui

##################################
#arquitetura: amd64 ou i386
arqt=$(dpkg --print-architecture)


#CL=CONCURRENCY_LEVEL do processador
CL=$(grep -c processor /proc/cpuinfo)
##################################

sudo apt-get update
sudo apt-get install kernel-package gcc-4.6 libncurses5 libncurses5-dev build-essential -y


cd /usr/src
wget -c http://www.kernel.org/pub/linux/kernel/v3.x/linux-$kernel.tar.bz2


sudo tar -jxpvf /usr/src/linux-$kernel.tar.bz2
sudo mv /usr/src/linux-$kernel /usr/src/linux-$patchkernel-$ckk


wget -c http://www.kernel.org/pub/linux/kernel/v3.x/patch-$patchkernel.bz2
wget -c http://ck.kolivas.org/patches/3.0/$kernel/$patchck/patch-$patchck.bz2

#ubuntu patch
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.2-precise/0001-base-packaging.patch
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.2-precise/0002-debian-changelog.patch
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.2-precise/0003-default-configs.patch



sudo bunzip2 /usr/src/patch-$patchkernel.bz2
sudo bunzip2 /usr/src/patch-$patchck.bz2


cd /usr/src/linux-$patchkernel-$ckk

sudo patch -p1 < /usr/src/patch-$patchkernel
sudo patch -p1 < /usr/src/patch-$patchck
sudo patch -p1 < /usr/src/0001-base-packaging.patch
sudo patch -p1 < /usr/src/0002-debian-changelog.patch
sudo patch -p1 < /usr/src/0003-default-configs.patch



#sudo cp /boot/config-$kernelantigo /usr/src/linux-$patchkernel-$ckk/.config

#########
########## puxando o config antigo ##########

config_file=$(locate /boot/config-* | sort -r | head -1)

sudo cp $config_file /usr/src/linux-$patchkernel-$ckk

#sudo sed 's/CONFIG_RTS5139=m/#CONFIG_RTS5139/g' .config > cc && mv cc .config

####################################

#sudo gedit Makefile 

sleep 3

sudo make menuconfig


sudo sed 's/CONFIG_RTS5139=m/#CONFIG_RTS5139/g' /usr/src/linux-$patchkernel-$ckk/.config > /usr/src/linux-$patchkernel-$ckk/cc && mv /usr/src/linux-$patchkernel-$ckk/cc /usr/src/linux-$patchkernel-$ckk/.config


############ script do grande 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 "Patch no arquivo:"$i
   sed -e 's/-march=\([A-Z0-9a-z]\+\)/-march=native/g'  $i > "$i.file_changed"
   mv "$i.file_changed" $i
done


################

#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

sleep 3

cd /lib/modules
sudo mkinitramfs -o /boot/initrd.img-$patchkernel-$ckk $patchkernel-$ckk
sudo update-grub

sleep 5
echo 'tudo belezinha'


agora é só executar e tchaw, se não quiserem mexer com o menuconfig pode comentar essa parte, e assim fica tudo no automatico.

EDIT:
ontem eu tinha feito uns testes em um pc com 1 GB de ram, e simplismente compilou tudo belezinha mas ao reiniciar não completava o boot, daí é só tirar o parametro -Ofast e compilar tudo denovo daí foi belezinha. então Pra quem tem 1GB de ram ou menos é valido essa dica aé, deve retirar o parametro -Ofast do script.

valeu





Metalbobolic

Citação de: 4d4c47 online 17 de Abril de 2012, 13:39
Citação de: Stivekx online 17 de Abril de 2012, 08:05
Se vc executar o comando:
locate /boot/config-*

Você lista todos os config lá
Porém, ele exibe mais de um caso encontre...

Então, podes fazer isso:
locate -l 1 /boot/config-*

O -l limita a 1 resultado.

Porém, se vc tiver mais de um resultado, ele mostra apenas o primeiro:

locate /boot/config-*
/boot/config-3.0.0-17-generic
/boot/config-3.3.1-ck1

Seria legal pegar o último...
Dá pra por ele em primeiro usando sort:
locate /boot/config-* |sort -r
/boot/config-3.3.1-ck1
/boot/config-3.0.0-17-generic

Mas dai você vai ter que separar os resultados... :s

Ahh enfim, usando:
config_file=$(locate -l 1 /boot/config-*);

config_file será o primeiro arquivo config dentro da pasta /boot

--
Se você não por o -l 1 , ele irá retornar uma array com a lista de .configs, podes até perguntar ao user, qual .config ele quer usar :)

--
config_file=$(find /boot -name config-* -print | head -1)

rs, usando find dá...
Se usasse locate/sort/head daria certo também '-'
config_file=$(locate /boot/config-* | sort -r | head -1)

@Stivekx,

mais uma valeu demais meu chapa, aqui vai o novo scritpt, agora tudo automatico, sem precisar de se preocupar com o .config, quem quiser melhorar fique a vontade:

Citar
#!/bin/bash

################################################################################################
# script PARA USUARIOS DO UBUNTU 11.10 baixa e compila kernel tudo automaticamente CRIADO PELOS USUÁRIOS DO FORUM UBUNTU BR:
# http://ubuntuforum-br.org/index.php/topic,29799.3960.html
#
# totalmente GPL-3
#
# vc vai ter o trabalho so de mudar a versão do kernel e a versão do patch do koliva
#
# salve em /bin com o nome scriptkernel e de permissão de execução
# sudo chmod +x /bin/scriptkernel
#
# pra começar a compilação:
# time sudo scriptkernel
#
################################################################################################



############################################
#vc só vai ter o trabalho de editar aqui:

#versão do kernel a ser compilado
kernel=3.3

#path de atualização
patchkernel=3.3.2


#patch ck
patchck=3.3-ck1

#sufixo
ckk=ck1


#.config antigo
kernelantigo=atual

############################################

# não precisa mexer em mais nada aqui

##################################
#arquitetura: amd64 ou i386
arqt=$(dpkg --print-architecture)


#CL=CONCURRENCY_LEVEL do processador
CL=$(grep -c processor /proc/cpuinfo)
##################################

sudo apt-get update
sudo apt-get install kernel-package gcc-4.6 libncurses5 libncurses5-dev build-essential -y


cd /usr/src
wget -c http://www.kernel.org/pub/linux/kernel/v3.x/linux-$kernel.tar.bz2


sudo tar -jxpvf /usr/src/linux-$kernel.tar.bz2
sudo mv /usr/src/linux-$kernel /usr/src/linux-$patchkernel-$ckk


wget -c http://www.kernel.org/pub/linux/kernel/v3.x/patch-$patchkernel.bz2
wget -c http://ck.kolivas.org/patches/3.0/$kernel/$patchck/patch-$patchck.bz2

#ubuntu patch
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.2-precise/0001-base-packaging.patch
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.2-precise/0002-debian-changelog.patch
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.2-precise/0003-default-configs.patch



sudo bunzip2 /usr/src/patch-$patchkernel.bz2
sudo bunzip2 /usr/src/patch-$patchck.bz2


cd /usr/src/linux-$patchkernel-$ckk

sudo patch -p1 < /usr/src/patch-$patchkernel
sudo patch -p1 < /usr/src/patch-$patchck
sudo patch -p1 < /usr/src/0001-base-packaging.patch
sudo patch -p1 < /usr/src/0002-debian-changelog.patch
sudo patch -p1 < /usr/src/0003-default-configs.patch



#sudo cp /boot/config-$kernelantigo /usr/src/linux-$patchkernel-$ckk/.config

#########
########## puxando o config antigo ##########

config_file=$(locate /boot/config-* | sort -r | head -1)

sudo cp $config_file /usr/src/linux-$patchkernel-$ckk

####################################

#sudo gedit Makefile  

sleep 3

sudo make menuconfig

############ script do grande 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 "Patch 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


    ################

    #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

    sleep 3

    cd /lib/modules
    sudo mkinitramfs -o /boot/initrd.img-$patchkernel-$ckk $patchkernel-$ckk
    sudo update-grub

    sleep 5
    echo 'tudo belezinha'
agora é só executar e tchaw, se não quiserem mexer com o menuconfig pode comentar essa parte, e assim fica tudo no automatico.

EDIT:
ontem eu tinha feito uns testes em um pc com 1 GB de ram, e simplismente compilou tudo belezinha mas ao reiniciar não completava o boot, daí é só tirar o parametro -Ofast e compilar tudo denovo daí foi belezinha. então Pra quem tem 1GB de ram ou menos é valido essa dica aé, deve retirar o parametro -Ofast do script.

valeu






Galera especilista...eu tenho 4gb de ram..

Continua gorda a compilação, com 15gb?

Caso eu marque optimize for size..deixaria a compilação lenta?


4d4c47

#4145
Citação de: Metalbobolic online 17 de Abril de 2012, 21:18


Galera especilista...eu tenho 4gb de ram..

Continua gorda a compilação, com 15gb?

Caso eu marque optimize for size..deixaria a compilação lenta?



@Metalbobolic,

eu coloquei 15 GB foi só pra ter certeza que será tudo compilado, mas acredito que se deixar aé só 8 GB deve ir tranquilo ou talvez até menos, o negócio vai ser meio que na sorte, vai depender do que vc vai acrescentar no kernel, entende.

valeu.



Stivekx

Vai fucando o kernel e removendo coisas, virtualizacao, sistemas de arquivos, alguns drivers como do android, etc ;d

Metalbobolic

Citação de: Stivekx online 17 de Abril de 2012, 22:26
Vai fucando o kernel e removendo coisas, virtualizacao, sistemas de arquivos, alguns drivers como do android, etc ;d

Vou compilar e ver no que dar..se ganho desempenho e tomara que esse trabalho todo..eu possa instalr meu driver fglrx..

valeu spessoall..volto pra dizer como foi

4d4c47

#4148
Citação de: Metalbobolic online 17 de Abril de 2012, 22:46
Citação de: Stivekx online 17 de Abril de 2012, 22:26
Vai fucando o kernel e removendo coisas, virtualizacao, sistemas de arquivos, alguns drivers como do android, etc ;d

Vou compilar e ver no que dar..se ganho desempenho e tomara que esse trabalho todo..eu possa instalr meu driver fglrx..

valeu spessoall..volto pra dizer como foi

eu mesmo incluo tudo que tem direito, só tiro os modulos que ainda está em experimental, deixo a maioria tudo em M, assim qualquer coisa funciona em minha maquina, mas por outro lado devora bem mais memoria, mas pra mim vale a pena.




Stivekx

Estava testando outros métodos de compressão novos, entre eles o LZO

Já testaram ele?
Dá uma performance no boot.

Mais tarde testarei o lrzip, do próprio con kolivas :)

4d4c47

Citação de: Stivekx online 18 de Abril de 2012, 11:45
Estava testando outros métodos de compressão novos, entre eles o LZO

Já testaram ele?
Dá uma performance no boot.

Mais tarde testarei o lrzip, do próprio con kolivas :)

já tinha testado algumas vezes outras formas de compressão, mas pra mim perece que a maquina perde um pouco de peformance no uso geral do sistema ( mesmo com o ganho na hora do boot), já ouvir falar varias vezes de que quanto menor a compressão mais rápido será o programa, mas pode ser também que eu estou errado

Stivekx

No caso do LZO, ele une ambos, ele vai ter uma compressão do mesmo tamanho e uma taxa pra descomprimir menor ...
Isso é o que ajuda, descomprimir mais rápido :)

--
Compilei o kernel 3.3.2 sem problemas agora com o localmodconfig, achei um jeito de ele fazer tudo sem dar problemas!!
A wireless está rápida e funcionando perfeitamente, o driver da ATI também, o boot ficou mais lento que o 3.3.1, não sei porque e as informações de debug no boot eu mandei desativar, hahahaha, vou ver isso certinho ou vou ficar sem saber né ... ;/
Removi mais alguns itens e usei LZO, a performance dele em si para abrir programas e executá-los está ótima!

A compilação durou 8 minutos aqui num turion x2 com ssd.


----------------
Tutorial pra quem quizer usar o localmodconfig:

(depois de ter ido pra pasta /usr/src/linux, logado como su usando: sudo su)

1 - pluge algo na usb para que ela seja ativada, ative o wireless, o driver de som, verifique se tudo que você quer está carregado usando: # lsmod

2 - Crie o .config personalizado pra sua configuração:
# chmod +x ./scripts/kconfig/streamline_config.pl && ./scripts/kconfig/streamline_config.pl > config_strip

Esse arquivo config config_strip tem todas as configs necessárias só para seu computador!

3 -Mova ele pra .config:
# mv config_strip .config

4 - Rode o make oldconfig:
# make oldconfig
Responda as perguntas que ele vai fazer...

5 - Entre no make menuconfig verifique tudo e edite o resto do que você quer.
# make menuconfig

Eu desativo a virtualização, ativo o 1000mhz, bfs, prempt desktop, compressão LZO, desativo sistemas de arquivos que são inúteis a mim, etc

Depois só compile com # make e instale com # make modules_install e install

:)

4d4c47

#4152
Citação de: Metalbobolic online 15 de Abril de 2012, 15:22
Citação de: Stivekx online 15 de Abril de 2012, 14:37
Tente gerar o arquivo de configuracao com make localmodconfig, esse driver, você pode nem precisar dele talvez :)

----
localmodconfig pode não ser legal não...
Compilei 2 vezes hoje já, mesmo ativando todos os drivers de disco/hd/ata e todos os tipos de sistema de arquivo, ele não consegue montar o disco, o driver que identifica ele ou que identifica o sistema de arquivos não tá sendo compilado junto :T

soda que tenho que compilar todos os drivers existentes porque não sei qual exatamente devo ativar gg

Eu coloquei multimedia e sound em built in ...agora deixei multimedia em built in e coloquei sound em modulo..estar compilando...vou ver se dará o erro...

Agora o segundo erro:


Building modules, stage 2.
 MODPOST 3496 modules
ERROR: "__modver_version_show" [drivers/staging/rts5139/rts5139.ko] undefined!
WARNING: modpost: Found 12 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
make[2]: ** [__modpost] Erro 1
make[1]: ** [modules] Erro 2
make[1]: Saindo do diretório `/usr/src/linux-3.3.1'
make: ** [debian/stamp/build/kernel] Erro 2


aqui vai uma nova versão do script com a correção desse problema:




#!/bin/bash

#######################################################################################################################################
# script PARA USUARIOS DO UBUNTU 11.10 baixa e compila kernel tudo automaticamente CRIADO PELOS USUÁRIOS DO FORUM UBUNTU BR:          #
# http://ubuntuforum-br.org/index.php/topic,29799.3960.html                                                                           #
#                                                                                                                                     #
# totalmente GPL-3                                                                                                                    #
#                                                                                                                                     #
# vc vai ter o trabalho so de mudar a versão do kernel e a versão do patch do koliva                                                  #
#                                                                                                                                     #
# salve em /bin com o nome scriptkernel e de permissão de execução                                                                    #
# sudo chmod +x /bin/scriptkernel                                                                                                     #
#                                                                                                                                     #
# pra começar a compilação:                                                                                                           #
# time sudo scriptkernel                                                                                                              #
#                                                                                                                                     #
#######################################################################################################################################



############################################
#vc só vai ter o trabalho de editar aqui:

#versão do kernel a ser compilado
kernel=3.3

#path de atualização
patchkernel=3.3.2


#patch ck
patchck=3.3-ck1

#sufixo
ckk=ck1


#.config antigo
kernelantigo=atual

############################################

# não precisa mexer em mais nada aqui

##################################
#arquitetura: amd64 ou i386
arqt=$(dpkg --print-architecture)


#CL=CONCURRENCY_LEVEL do processador
CL=$(grep -c processor /proc/cpuinfo)
##################################

sudo apt-get update
sudo apt-get install kernel-package gcc-4.6 libncurses5 libncurses5-dev build-essential -y


cd /usr/src
wget -c http://www.kernel.org/pub/linux/kernel/v3.x/linux-$kernel.tar.bz2


sudo tar -jxpvf /usr/src/linux-$kernel.tar.bz2
sudo mv /usr/src/linux-$kernel /usr/src/linux-$patchkernel-$ckk


wget -c http://www.kernel.org/pub/linux/kernel/v3.x/patch-$patchkernel.bz2
wget -c http://ck.kolivas.org/patches/3.0/$kernel/$patchck/patch-$patchck.bz2

#ubuntu patch
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.2-precise/0001-base-packaging.patch
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.2-precise/0002-debian-changelog.patch
wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.2-precise/0003-default-configs.patch



sudo bunzip2 /usr/src/patch-$patchkernel.bz2
sudo bunzip2 /usr/src/patch-$patchck.bz2


cd /usr/src/linux-$patchkernel-$ckk

sudo patch -p1 < /usr/src/patch-$patchkernel
sudo patch -p1 < /usr/src/patch-$patchck
sudo patch -p1 < /usr/src/0001-base-packaging.patch
sudo patch -p1 < /usr/src/0002-debian-changelog.patch
sudo patch -p1 < /usr/src/0003-default-configs.patch



#sudo cp /boot/config-$kernelantigo /usr/src/linux-$patchkernel-$ckk/.config

#########
########## puxando o config antigo ##########

config_file=$(locate /boot/config-* | sort -r | head -1)

sudo cp $config_file /usr/src/linux-$patchkernel-$ckk

#sudo sed 's/CONFIG_RTS5139=m/#CONFIG_RTS5139/g' .config > cc && mv cc .config

####################################

#sudo gedit Makefile  

sleep 3

sudo make menuconfig


sudo sed 's/CONFIG_RTS5139=m/#CONFIG_RTS5139/g' /usr/src/linux-$patchkernel-$ckk/.config > /usr/src/linux-$patchkernel-$ckk/cc && mv /usr/src/linux-$patchkernel-$ckk/cc /usr/src/linux-$patchkernel-$ckk/.config


############ script do grande 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 "Patch no arquivo:"$i
  sed -e 's/-march=\([A-Z0-9a-z]\+\)/-march=native/g'  $i > "$i.file_changed"
  mv "$i.file_changed" $i
done


################

#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

sleep 3

cd /lib/modules
sudo mkinitramfs -o /boot/initrd.img-$patchkernel-$ckk $patchkernel-$ckk
sudo update-grub

sleep 5
echo 'tudo belezinha'



faiz um teste novamete aé, valeu



Stivekx

Quando posta o script aqui ele troca um caractere por emoticon :S:S:S

Tenta colocar ele no pastebin.com e posta aque dai.

brottor

Citação de: Stivekx online 18 de Abril de 2012, 20:41
Quando posta o script aqui ele troca um caractere por emoticon :S:S:S

Tenta colocar ele no pastebin.com e posta aque dai.


Tem  a opção CODE que funciona pros códigos...
Linux Professional Institute Certificated Level 2.
LPI000220827