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

Ricardo_Branco

Gunss. o srcipt do Arch na verdade e um script que o yaourt usa para compilar sozinho o kernel (seria o apt-build do Debian)
O link esta em https://aur.archlinux.org/packages.php?ID=40191 em PKGBUILD

Abracos.

galactus

Citação de: Ricardo_Branco online 04 de Junho de 2011, 13:07
Citação de: galactus online 04 de Junho de 2011, 07:21
4d4c47, você está usando o Ubuntu? Qual versão?

Voltou a ser necessário recriar o initramfs?   Desde o 10.10 que ele tá fazendo isso sozinho!


Galactus... posso dar risada da desgraca alheia... kernel panic na compilacao do Galactus? rsrsrsrs

Jah perdi a conta de qtos kernel panic por nao montar o filesystem... tenho ateh um video aqui... ele fala que nao foi possivel encontrar root (0,0) mas eu coloco root (0,2)... Eu achava que nao estava selecionando o driver necessario para o hd.. sei lah...

Abracos gente.

Mas rapaz, eu não sou infalível!  É com os erros que a gente aprende também!

Parece tudo certo e daí essa meleca na hora do boot!  É dose!

Mas você descobriu o motivo disso?  Eu aqui ainda não sei! Eu coloco todos os sistemas de arquivos dentro do kernel! Então não pode ser isso!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

4d4c47

Citação de: galactus online 04 de Junho de 2011, 07:21
4d4c47, você está usando o Ubuntu? Qual versão?

Voltou a ser necessário recriar o initramfs?   Desde o 10.10 que ele tá fazendo isso sozinho!



eae galactus, beleza ?

uso aqui o ubuntu 10.04, pelo que vi ainda sou obrigado a usar o initramfs,

não sabia dessa que o 10.10 não usa mais isso, ficou bom demais então.

com esse script aé a compilação foi beleza sem erro nenhum,

só não sei mais onde peguei o patch do traceevents,

por acaso vc sabe ?

valeu

Gunss

#3888
Citação de: 4d4c47 online 04 de Junho de 2011, 04:11
Citação de: Gunss online 03 de Junho de 2011, 20:21

edit: acabei de fazer um script aqui:
Citar#!/bin/bash

cd /usr/src
chmod -R a-s /usr/src/linux-2.6.38.8
rm -rf linux && ln -s /usr/src/linux-2.6.38.8 linux
cp traceevents.patch 2.6.38.6-sched-bfs-404.patch rcuclassic.patch rcutree_plugin.diff config-ok /usr/src/linux
cd /usr/src/linux
patch -p1 < traceevents.patch
patch -p1 < 2.6.38.6-sched-bfs-404.patch
patch -p1 < rcuclassic.patch
patch -p1 < rcutree_plugin.diff
cp /usr/src/linux-2.6.38.8/config-ok .config && make gconfig
CONCURRENCY_LEVEL=2 make-kpkg --revision=3.1hazai --initrd kernel_image kernel_headers modules_image

Adaptem no caso de vocês com os patchs, o --revision=BLABLA; e também o nome do kernel, no caso aqui estou compilando o 2.6.38.8


aqui vai um melhoramento que fiz do seu script:


Citar#!/bin/bash

cd /usr/src
wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.tar.bz2

sudo tar -jxpvf /usr/src/linux-2.6.38.tar.bz2
sudo mv /usr/src/linux-2.6.38 /usr/src/linux-2.6.38.8

wget -c http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.38.8.bz2
wget -c http://www.kernel.org/pub/linux/kernel/people/ck/patches/2.6/2.6.38/2.6.38-ck3/patch-2.6.38-ck3.bz2
#wget -c (aqui seria o link do patch traceevents.patch(não lembro mais onde peguei isso))

sudo bunzip2 /usr/src/patch-2.6.38.8.bz2
sudo bunzip2 /usr/src/patch-2.6.38-ck3.bz2


cd /usr/src/linux-2.6.38.8

sudo patch -p1 < /usr/src/patch-2.6.38.8
sudo patch -p1 < /usr/src/patch-2.6.38-ck3
#sudo patch -p1 < /usr/src/37_trace-add-trace-events-for-open-exec-an.patch

sudo cp /boot/config-2.6.38.XX(substitua o XX pelo kernel atual) /usr/src/linux-2.6.38.8/.config

#sudo gedit Makefile  

sleep 3

sudo make menuconfig

time sudo CONCURRENCY_LEVEL=2 make-kpkg --initrd kernel_image kernel_headers modules_image

cd /usr/src
sudo dpkg -i linux-image-2.6.38.8.ck3_2.6.38.8.ck3-10.00.Custom_amd64.deb linux-headers-2.6.38.8.ck3_2.6.38..8.ck3-10.00.Custom_amd64.deb

sleep 3

cd /lib/modules
sudo mkinitramfs -o /boot/initrd.img-2.6.38.8.ck3 2.6.38.8.ck3
sudo update-grub

sleep 5
echo 'tudo belezinha'


dê permissão de execução e copie o script pra pasta /bin
# chomd +x scriptkernel
# cp scriptkernel /bin

executando o script:
$ time sudo scriptkernel


fiz os testes aqui e baixou e compilou tudo certo,

se puderem melhora-lo ficaremos gratos,

valeu

o patch do traveevents é aquele no Ureadahead "0001-trace-add-trace-events-for-open-exec-an.patch"
Esse teu script ta muito bom 4d4c47, eu quase não conheço o bash. Vou ler nas ferias pra fazer uma coisa mais bunitinha. Pra que serve esse "time" e "sleep 3"?
Valeu!

ps: Galactus, num ta falando nada no .config??
Tenta usar sem o BFQ!!!
Quais erros aparecem ai no BFS? São erros ou hunks? Aqui vai limpo limpo! Com o mesmo kernel 2.6.38.8
Ah, eu to achando o 2.6.38.7 mais rápido, não sei pq.

4d4c47

#3889
Citação de: 4d4c47 online 04 de Junho de 2011, 04:11
Citação de: Gunss online 03 de Junho de 2011, 20:21

edit: acabei de fazer um script aqui:
Citar#!/bin/bash

cd /usr/src
chmod -R a-s /usr/src/linux-2.6.38.8
rm -rf linux && ln -s /usr/src/linux-2.6.38.8 linux
cp traceevents.patch 2.6.38.6-sched-bfs-404.patch rcuclassic.patch rcutree_plugin.diff config-ok /usr/src/linux
cd /usr/src/linux
patch -p1 < traceevents.patch
patch -p1 < 2.6.38.6-sched-bfs-404.patch
patch -p1 < rcuclassic.patch
patch -p1 < rcutree_plugin.diff
cp /usr/src/linux-2.6.38.8/config-ok .config && make gconfig
CONCURRENCY_LEVEL=2 make-kpkg --revision=3.1hazai --initrd kernel_image kernel_headers modules_image

Adaptem no caso de vocês com os patchs, o --revision=BLABLA; e também o nome do kernel, no caso aqui estou compilando o 2.6.38.8


aqui vai um melhoramento que fiz do seu script:


Citar#!/bin/bash

cd /usr/src
wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.tar.bz2

sudo tar -jxpvf /usr/src/linux-2.6.38.tar.bz2
sudo mv /usr/src/linux-2.6.38 /usr/src/linux-2.6.38.8

wget -c http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.38.8.bz2
wget -c http://www.kernel.org/pub/linux/kernel/people/ck/patches/2.6/2.6.38/2.6.38-ck3/patch-2.6.38-ck3.bz2
#wget -c (aqui seria o link do patch traceevents.patch(não lembro mais onde peguei isso))

sudo bunzip2 /usr/src/patch-2.6.38.8.bz2
sudo bunzip2 /usr/src/patch-2.6.38-ck3.bz2


cd /usr/src/linux-2.6.38.8

sudo patch -p1 < /usr/src/patch-2.6.38.8
sudo patch -p1 < /usr/src/patch-2.6.38-ck3
#sudo patch -p1 < /usr/src/37_trace-add-trace-events-for-open-exec-an.patch

sudo cp /boot/config-2.6.38.XX(substitua o XX pelo kernel atual) /usr/src/linux-2.6.38.8/.config

#sudo gedit Makefile  

sleep 3

sudo make menuconfig

time sudo CONCURRENCY_LEVEL=2 make-kpkg --initrd kernel_image kernel_headers modules_image

cd /usr/src
sudo dpkg -i linux-image-2.6.38.8.ck3_2.6.38.8.ck3-10.00.Custom_amd64.deb linux-headers-2.6.38.8.ck3_2.6.38..8.ck3-10.00.Custom_amd64.deb

sleep 3

cd /lib/modules
sudo mkinitramfs -o /boot/initrd.img-2.6.38.8.ck3 2.6.38.8.ck3
sudo update-grub

sleep 5
echo 'tudo belezinha'


dê permissão de execução e copie o script pra pasta /bin
# chomd +x scriptkernel
# cp scriptkernel /bin

executando o script:
$ time sudo scriptkernel


fiz os testes aqui e baixou e compilou tudo certo,

se puderem melhora-lo ficaremos gratos,

valeu

achei um link do tracerevents do arch, ainda não testei mas acho que funciona, testem aé, valeu:

Citar#!/bin/bash

cd /usr/src
wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.tar.bz2

sudo tar -jxpvf /usr/src/linux-2.6.38.tar.bz2
sudo mv /usr/src/linux-2.6.38 /usr/src/linux-2.6.38.8

wget -c http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.38.8.bz2
wget -c http://www.kernel.org/pub/linux/kernel/people/ck/patches/2.6/2.6.38/2.6.38-ck3/patch-2.6.38-ck3.bz2
wget -c https://github.com/andrewthomas/kernelPatches/raw/master/ureadahead/2.6.37-trace-add-trace-events-for-open-exec-an.patch

sudo bunzip2 /usr/src/patch-2.6.38.8.bz2
sudo bunzip2 /usr/src/patch-2.6.38-ck3.bz2


cd /usr/src/linux-2.6.38.8

sudo patch -p1 < /usr/src/patch-2.6.38.8
sudo patch -p1 < /usr/src/patch-2.6.38-ck3
sudo patch -p1 < /usr/src/2.6.37-trace-add-trace-events-for-open-exec-an.patch


sudo cp /boot/config-2.6.38.XX(substitua o XX pelo kernel atual) /usr/src/linux-2.6.38.8/.config

#sudo gedit Makefile  

sleep 3

sudo make menuconfig

time sudo CONCURRENCY_LEVEL=2 make-kpkg --initrd kernel_image kernel_headers modules_image

cd /usr/src
sudo dpkg -i linux-image-2.6.38.8-ck3_2.6.38.8-ck3-10.00.Custom_amd64.deb linux-headers-2.6.38.8-ck3_2.6.38..8-ck3-10.00.Custom_amd64.deb

sleep 3

cd /lib/modules
sudo mkinitramfs -o /boot/initrd.img-2.6.38.8-ck3 2.6.38.8-ck3
sudo update-grub

sleep 5
echo 'tudo belezinha'


dê permissão de execução e copie o script pra pasta /bin
# chomd +x scriptkernel
# cp scriptkernel /bin

executando o script:
$ time sudo scriptkernel


fiz os testes aqui e baixou e compilou tudo certo,

se puderem melhora-lo ficaremos gratos,





Gunss

#3890
O meu ta assim agora
Citar
#!/bin/bash

#Copiar kernel para /usr/src
cd /home/jussier/Downloads/kernel
tar -jxpvf linux-2.6.38.8.tar.bz2
mv linux-2.6.38.8 /usr/src

#Preparar e copiar patchs
cd /usr/src
chmod -R a-s /usr/src/linux-2.6.38.8
rm -rf linux && ln -s /usr/src/linux-2.6.38.8 linux
cp traceevents.patch 2.6.38.6-sched-bfs-404.patch rcuclassic.patch rcutree_plugin.diff config-ok /usr/src/linux

#Aplicar patchs e adicionar -march
cd /usr/src/linux
patch -p1 < traceevents.patch
patch -p1 < 2.6.38.6-sched-bfs-404.patch
patch -p1 < rcuclassic.patch
patch -p1 < rcutree_plugin.diff
gedit Makefile
gedit arch/x86/Makefile
gedit arch/x86/Makefile_32.cpu
gedit arch/x86/boot/Makefile
gedit arch/x86/boot/compressed/Makefile
gedit arch/x86/kernel/acpi/realmode/Makefile
cp /usr/src/linux-2.6.38.8/config-ok .config && make gconfig

#Compilar
CONCURRENCY_LEVEL=2 make-kpkg --revision=3.1hazai --initrd kernel_image kernel_headers modules_image

#Instalar
cd /usr/src
dpkg -i linux-headers-2.6.38.8-hazai3.1_3.1hazai_i386.deb linux-image-2.6.38.8-hazai3.1_3.1hazai_i386.deb

# Remover pastas
rm -rf linux
rm -rf linux-2.6.38.8

sleep 3



echo 'Tudo feito sem problemas. (ao menos até agora)!!!'

Ricardo_Branco

Citação de: galactus online 04 de Junho de 2011, 14:34
Mas rapaz, eu não sou infalível!  É com os erros que a gente aprende também!

Parece tudo certo e daí essa meleca na hora do boot!  É dose!

Mas você descobriu o motivo disso?  Eu aqui ainda não sei! Eu coloco todos os sistemas de arquivos dentro do kernel! Então não pode ser isso!

Nao descobri nao... o que fiz para funcionar foi dar um localmodconfig e compilei sem mudar nada...

Funcionou...

Depois desabilitei uns drivers que nao uso mas ele detectou... mas bem pouco... como o bluetooth...

Funcionou...

Ate segunda pretendo enxugar um pouquinho mais... se eu descobrir te aviso...

galactus

Citação de: 4d4c47 online 04 de Junho de 2011, 15:36
Citação de: galactus online 04 de Junho de 2011, 07:21
4d4c47, você está usando o Ubuntu? Qual versão?

Voltou a ser necessário recriar o initramfs?   Desde o 10.10 que ele tá fazendo isso sozinho!



eae galactus, beleza ?

uso aqui o ubuntu 10.04, pelo que vi ainda sou obrigado a usar o initramfs,

não sabia dessa que o 10.10 não usa mais isso, ficou bom demais então.

com esse script aé a compilação foi beleza sem erro nenhum,

só não sei mais onde peguei o patch do traceevents,

por acaso vc sabe ?

valeu

É do 10.10 em diante ele faz todo esse processo sozinho! Incluindo o update-grub!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

galactus

Citação de: Ricardo_Branco online 04 de Junho de 2011, 22:06
Citação de: galactus online 04 de Junho de 2011, 14:34
Mas rapaz, eu não sou infalível!  É com os erros que a gente aprende também!

Parece tudo certo e daí essa meleca na hora do boot!  É dose!

Mas você descobriu o motivo disso?  Eu aqui ainda não sei! Eu coloco todos os sistemas de arquivos dentro do kernel! Então não pode ser isso!

Nao descobri nao... o que fiz para funcionar foi dar um localmodconfig e compilei sem mudar nada...

Funcionou...

Depois desabilitei uns drivers que nao uso mas ele detectou... mas bem pouco... como o bluetooth...

Funcionou...

Ate segunda pretendo enxugar um pouquinho mais... se eu descobrir te aviso...

Gunss, na hora de aplicar o patch do BFS ele dá alguns Hunks!  

O lance é que quando usávamos os patchs do Hqx não tinha Hunk nenhum!

Ricardo_Branco, como você faz para usar o localmodconfig?

Gente, tentei aqui com o 2.6.38.7 e sem o BFQ e não deu em nada!  Erro na montagem do sistema de arquivos novamente!

O interessante é que o kernel do Lineduc (2.6.38.5) sobe numa boa!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Gunss

@Galactus

MUUITO estranho, aqui no 2.6.38.8 tudo sobe tranquilo. Tenta aplicar o patch do BFS no .5

Essa opção no .config esta habilitada?
CitarCONFIG_DEVTMPFS

O problema não é aparecer Hunk, o problema é aparecer um FAIL.

Quer que eu te mande minha .config??

Ricardo_Branco

Citação de: galactus online 05 de Junho de 2011, 22:54
Ricardo_Branco, como você faz para usar o localmodconfig?
Galactus... uso normal... assim que entro em /usr/src/pastadokernel dou um make localmodconfig e ele gera o arquivo .config. Dependendo do que esta ativado ele faz umas perguntas se deseja ativar como modulo ou nao... mas no geral ele cria o arquivo sozinho...

Tem dois links na net que avisam para tomar cuidado, pois se nao estiver com o CD montado ele nao marca o modulo do CD... mas claro que damos uma conferida antes de compilar...

http://groups.google.com/group/slack-users-br/browse_thread/thread/456e63f7bc808a40
https://groups.google.com/group/slack-users-br/browse_thread/thread/cce63c420376e126?hl=pt

Galactus... uma coisa que tah me deixando com a pulga atras da orelha... nao consegui compilar alterando  o arquivo /usr/src/linux-2.6.xx/arch/x86/Makefile_32.cpu do teu post. Hoje a tarde enxuguei mais um pouquinho meu .config e alterei o arquivo citado... REsultado: Nao subiu o kernel... reinicia depois que descompacta... vou dormir agora e deixar compilando o mesmo .config sem mudar esse arquivo. soh editei o Makefile mudando a versao e a saida do comando do gcc...

Vamos testando...

Abracos

galactus

Citação de: Gunss online 05 de Junho de 2011, 23:53
@Galactus

MUUITO estranho, aqui no 2.6.38.8 tudo sobe tranquilo. Tenta aplicar o patch do BFS no .5

Essa opção no .config esta habilitada?
CitarCONFIG_DEVTMPFS

O problema não é aparecer Hunk, o problema é aparecer um FAIL.

Quer que eu te mande minha .config??


Gunss eu não sei te dizer se essa opção CONFIG_DEVTMPFS estava habilitada!  Depois vou prestar atenção!

Eu te falo desse bendito .config faz tempo!!!!  :P

Pode me mandar o seu .config?  É para 64bits!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Gunss

Citação de: galactus online 06 de Junho de 2011, 00:55
Citação de: Gunss online 05 de Junho de 2011, 23:53
@Galactus

MUUITO estranho, aqui no 2.6.38.8 tudo sobe tranquilo. Tenta aplicar o patch do BFS no .5

Essa opção no .config esta habilitada?
CitarCONFIG_DEVTMPFS

O problema não é aparecer Hunk, o problema é aparecer um FAIL.

Quer que eu te mande minha .config??


Gunss eu não sei te dizer se essa opção CONFIG_DEVTMPFS estava habilitada!  Depois vou prestar atenção!

Eu te falo desse bendito .config faz tempo!!!!  :P

Pode me mandar o seu .config?  É para 64bits!

ixi, o meu é 32bits... como faço para mudar pra um config para 64 bits?

galactus

Citação de: Ricardo_Branco online 06 de Junho de 2011, 00:41
Citação de: galactus online 05 de Junho de 2011, 22:54
Ricardo_Branco, como você faz para usar o localmodconfig?
Galactus... uso normal... assim que entro em /usr/src/pastadokernel dou um make localmodconfig e ele gera o arquivo .config. Dependendo do que esta ativado ele faz umas perguntas se deseja ativar como modulo ou nao... mas no geral ele cria o arquivo sozinho...

Tem dois links na net que avisam para tomar cuidado, pois se nao estiver com o CD montado ele nao marca o modulo do CD... mas claro que damos uma conferida antes de compilar...

http://groups.google.com/group/slack-users-br/browse_thread/thread/456e63f7bc808a40
https://groups.google.com/group/slack-users-br/browse_thread/thread/cce63c420376e126?hl=pt

Galactus... uma coisa que tah me deixando com a pulga atras da orelha... nao consegui compilar alterando  o arquivo /usr/src/linux-2.6.xx/arch/x86/Makefile_32.cpu do teu post. Hoje a tarde enxuguei mais um pouquinho meu .config e alterei o arquivo citado... REsultado: Nao subiu o kernel... reinicia depois que descompacta... vou dormir agora e deixar compilando o mesmo .config sem mudar esse arquivo. soh editei o Makefile mudando a versao e a saida do comando do gcc...

Vamos testando...

Abracos


Vou testar o make localmodconfig!  

Eu que estranho esse erro no Makefile_32.cpu, depois que ficamos sabendo que podíamos mudar ele, eu sempre mudei e não tive erros!  Depois eu colo aqui como o deixo esse arquivo!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

galactus

Citação de: Gunss online 06 de Junho de 2011, 00:59
Citação de: galactus online 06 de Junho de 2011, 00:55
Citação de: Gunss online 05 de Junho de 2011, 23:53
@Galactus

MUUITO estranho, aqui no 2.6.38.8 tudo sobe tranquilo. Tenta aplicar o patch do BFS no .5

Essa opção no .config esta habilitada?
CitarCONFIG_DEVTMPFS

O problema não é aparecer Hunk, o problema é aparecer um FAIL.

Quer que eu te mande minha .config??


Gunss eu não sei te dizer se essa opção CONFIG_DEVTMPFS estava habilitada!  Depois vou prestar atenção!

Eu te falo desse bendito .config faz tempo!!!!  :P

Pode me mandar o seu .config?  É para 64bits!

ixi, o meu é 32bits... como faço para mudar pra um config para 64 bits?

Do que eu pude verificar, tem que mudar as seguintes linhas do arquivo .config:

Esta no começo

Citar#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.30-zen0 "welcome back"
# Fri Jun 12 21:36:20 2009
#
CONFIG_64BIT=y
# CONFIG_X86_32 is not set
CONFIG_X86_64=y
CONFIG_X86=y
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_FAST_CMPXCHG_LOCAL=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_GPIO=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y

Outros exemplos:

CitarCONFIG_64BIT=y
# CONFIG_X86_32 is not set
CONFIG_X86_64=y

ou

Citar# CONFIG_64BIT is not set
CONFIG_X86_32=y
# CONFIG_X86_64 is not set


CitarCONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"

ou

CitarCONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"

Certo?
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.