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

Stivekx

fglrx foi fácil aqui, sem problemas...

Aquilo é um arquivo de configuração, ele desabilita/habilita várioas recursos do kernel com a intenção de otimizar ele, reduzir a latencia melhor dizendo.
Não peça pra explicar como porque dai vai além dos meus conhecimentos ;p

Metalbobolic

Citação de: Stivekx online 15 de Abril de 2012, 11:56
fglrx foi fácil aqui, sem problemas...

Aquilo é um arquivo de configuração, ele desabilita/habilita várioas recursos do kernel com a intenção de otimizar ele, reduzir a latencia melhor dizendo.
Não peça pra explicar como porque dai vai além dos meus conhecimentos ;p

Meu kernel não compila..sempre da erro no stage 2 ......

Stivekx

#4127
Hm, que patchs tás usando?

Estou compilando o 3.3.2 aqui devido a um bug com wireless que foi corrigido, to terminando de configurar, já vejo então.

Edit:
Usando meu script pra adicionar -Ofast em tudo, deu erro, não usando ele tá indo :s :s :s

Editei apenas no Makefile então, acredito que seja eficiente pra algo.

Edit 2:
Tive um problema no arquivo:
drivers/base/firmware_class.c

Baixei a versão 3.3.1, depois o patch pra 3.3.2.
Mandei substituir o drivers/base/firmware_class.c.org por drivers/base/firmware_class.c e tá indo normal agora.

Pra substituir, basta:
# mv drivers/base/firmware_class.c.orig drivers/base/firmware_class.c

Metalbobolic

Citação de: Stivekx online 15 de Abril de 2012, 12:39
Hm, que patchs tás usando?

Estou compilando o 3.3.2 aqui devido a um bug com wireless que foi corrigido, to terminando de configurar, já vejo então.

Edit:
Usando meu script pra adicionar -Ofast em tudo, deu erro, não usando ele tá indo :s :s :s

Editei apenas no Makefile então, acredito que seja eficiente pra algo.

Edit 2:
Tive um problema no arquivo:
drivers/base/firmware_class.c

Baixei a versão 3.3.1, depois o patch pra 3.3.2.
Mandei substituir o drivers/base/firmware_class.c.org por drivers/base/firmware_class.c e tá indo normal agora.

Pra substituir, basta:
# mv drivers/base/firmware_class.c.orig drivers/base/firmware_class.c

Erro aqui:


from drivers/gpu/drm/radeon/r600_audio.c:26:
include/linux/vmalloc.h:1:0: internal compiler error: Abortado
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.6/README.Bugs> for instructions.
make[5]: ** [drivers/gpu/drm/radeon/r600_audio.o] Erro 1
make[4]: ** [drivers/gpu/drm/radeon] Erro 2
make[3]: ** [drivers/gpu/drm] Erro 2
make[2]: ** [drivers/gpu] Erro 2
make[1]: ** [drivers] Erro 2
make[1]: Saindo do diretório `/usr/src/linux-3.3.1'
make: ** [debian/stamp/build/kernel] Erro 2

Stivekx

#4129
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

Metalbobolic

#4130
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

4d4c47

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


depois desse erro eu executei:

# make modules
e
#make modules_install

instalei tudo manualmente, foi tudo belezinha, só drive 3d deu problema aqui.

Metalbobolic

#4132
Citação de: 4d4c47 online 16 de Abril de 2012, 00:06
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


depois desse erro eu executei:

# make modules
e
#make modules_install

instalei tudo manualmente, foi tudo belezinha, só drive 3d deu problema aqui.

Aqui agora estar indo....bastou eu colocar em M a sessão multimedia e sound e desmarcar na sessão drivers do kernel o driver rts5139 .. Esse driver é para placas pci usb ....e agora estar compilando....

Amanhã posto o resultado...valeus meu povo

RESULTADO:

Erro


make[1]: Saindo do diretório `/usr/src/linux-3.3.1'
/usr/bin/make  EXTRAVERSION=-liquorix  ARCH=i386 \
                             -C Documentation/lguest
make: *** Documentation/lguest: Arquivo ou diretório não encontrado.  Pare.
make: ** [debian/stamp/build/kernel] Erro 2

Desisto

4d4c47

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


então faiz o seguinte, comenta a linha do driver rts5139 no .config e recomaçe a compilar do 0,

fiz isso e agora não deu erro nenhum, kernel 3.3.2 .deb compilado perfeitamente ( sem usar make modules && make modules_install) pode tentar que vai dar certo agora, valeu



4d4c47

#4134
fiz esse script aqui de compilaçao do kernel 3.3.2 com o 3.3.0-ck1 e tudo compilado em -march=native + -Ofast

obs: antes de tudo, você só vai ter o trabalho de copiar o seu .config para a pasta /boot com o nome de config-atual e de comentar o driver RTS5139 no arquivo /boot/config-atual:

OBS= tenha certeza que tem pelo menos 15 GB livre no hd


#!/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

#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'


execute o script como root ou com o sudo

OBS: certa hora vai abrir o menuconfig e na parte de processador escolha a sua arquitetura exata

qualquer coisa é só falar, valeu

Stivekx

ótimo script @4d4c47, quando der eu testo certinho ele!!!

Ahh, obs, na parte onde tá usando o meu script, tem que adicionar o MakeFile junto pra ele colocar ele no HOSTCFLAGS e no HOSTCXXFLAGS.
Se eu não me engano, o meu script alterava uma parte no MakeFile e adicionava o retorno das flags que o cc permitia, se editar lá deve dar certinho tmb

E no texto eu digitei echo "Path no arquivo:"$i, é echo "Patch no arquivo:"$i
hehe


4d4c47

Citação de: Stivekx online 16 de Abril de 2012, 15:12
ótimo script @4d4c47, quando der eu testo certinho ele!!!

Ahh, obs, na parte onde tá usando o meu script, tem que adicionar o MakeFile junto pra ele colocar ele no HOSTCFLAGS e no HOSTCXXFLAGS.
Se eu não me engano, o meu script alterava uma parte no MakeFile e adicionava o retorno das flags que o cc permitia, se editar lá deve dar certinho tmb

E no texto eu digitei echo "Path no arquivo:"$i, é echo "Patch no arquivo:"$i
hehe



corrigido e operante,

tô fazendo um teste dele aqui em outro pc, e até agora sem problema nenhum, vamos ver o que que vai dá, valeu


Stivekx

#4137
Usando o localmodconfig, o kernel não carrega o meu hd aparentemente o ou driver dele ou até a partição...

O erro é similar a esse:
Gave up wating for root device. Commom problems:
Boot args (cat /proc/cmdline)
Check rootdelay = (did the system wait long enough?)
Check root = (did the system wait for the rigth device?)
Missing modules (cat / proc/modules; ls/dev)

ALERT:  /dev/disk/by-uuid/<número do dispositivo> does not exist. Dropping to a shell!

BusyBox v1.17.1 (Debian 1:1.17.1-10) built-in shell (ash)
Enter 'help' for a list of built-in commands.


Já tentei passar root=/dev/sda1 e root=UUID=xxx no parametro, mas em nenhum deles deu certo :s

Com identificar se eu esqueci alguma opção e ativá-la?


Edit:
A opção tava desativada *dumb*
  • SCSI disk support

Metalbobolic

Citação de: 4d4c47 online 16 de Abril de 2012, 03:18
fiz esse script aqui de compilaçao do kernel 3.3.2 com o 3.3.0-ck1 e tudo compilado em -march=native + -Ofast

obs: antes de tudo, você só vai ter o trabalho de copiar o seu .config para a pasta /boot com o nome de config-atual e de comentar o driver RTS5139 no arquivo /boot/config-atual:

OBS= tenha certeza que tem pelo menos 15 GB livre no hd


#!/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

#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'


execute o script como root ou com o sudo

OBS: certa hora vai abrir o menuconfig e na parte de processador escolha a sua arquitetura exata

qualquer coisa é só falar, valeu


Por que tanto espaço assim?

Vou perguntar, como aplica um script, sou velho no uso do linux..agora "malinar" ele assim a fundo..é rescente..tenha paciência comigo..hehehe

valeus brother

4d4c47

#4139
Citação de: Metalbobolic online 16 de Abril de 2012, 20:18
Citação de: 4d4c47 online 16 de Abril de 2012, 03:18
fiz esse script aqui de compilaçao do kernel 3.3.2 com o 3.3.0-ck1 e tudo compilado em -march=native + -Ofast

obs: antes de tudo, você só vai ter o trabalho de copiar o seu .config para a pasta /boot com o nome de config-atual e de comentar o driver RTS5139 no arquivo /boot/config-atual:

OBS= tenha certeza que tem pelo menos 15 GB livre no hd


#!/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

#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'


execute o script como root ou com o sudo

OBS: certa hora vai abrir o menuconfig e na parte de processador escolha a sua arquitetura exata

qualquer coisa é só falar, valeu


Por que tanto espaço assim?

Vou perguntar, como aplica um script, sou velho no uso do linux..agora "malinar" ele assim a fundo..é rescente..tenha paciência comigo..hehehe

valeus brother

bicho,
depois de compilado o kernel a pasta /usr/src/linux-3.3.2-ck ficou aqui com 12 GB, só ela, mas depende muito também do que vc vai adicionar de modulo, no  meu caso vai tudo na tora, incluo todos os modulos possiveis, mas  vc pode selecionar o que vai usar e o que não vai usar, sendo assim o tamanho da pasta não deve passar de 5 GB

pra aplicar o srcipt, salve ele na pasta /usr/src e executa isso :

# chmod +x scriptcompilarkernel

pra executar ele faz isso:

$ time sudo ./scriptcompilarkernel


valeu.