Se você quiser criar tudo do zero, tente Buildroot .
git clone git://git.buildroot.net/buildroot
cd buildroot
make qemu_x86_defconfig
make
Veja este blog para mais informações.
Estou tentando construir um linux mínimo, para experimentar drivers (o LLD 3 refere-se à versão 2.6.10 do kernel). O LFS parece ser uma tarefa muito difícil, e eu não tenho certeza se seria capaz de criar o 2.6.10 consultando os documentos mais recentes.
Estou seguindo isso blog para criar uma imagem mínima que possa ser executada no qemu ( Não quero estragar meu sistema existente, por isso escolhi a virtualização).
Eu estou preso no ponto de construir o grub. Consegui criar a versão mais recente do grub i, e 2.0, mas não consegui localizar os arquivos necessários stage1, stage2, e2fs_stage1_5
(mencionado no blog).
Tomando a versão antiga 0.97 como por o blog, surpreendendo a construção está falhando, durante o configure configure: error: GRUB requires a working absolute objcopy; upgrade your binutils
Atualize seus binutils? Estou usando o mais recente Ubuntu.
grub-0.97$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04.3 LTS
Release: 12.04
Codename: precise
grub-0.97$ ld -version
GNU ld (GNU Binutils for Ubuntu) 2.22
Também encontrei este link que menciona algo sobre a binutil upgrade (2.9.1.0.23 ou posterior) para a criação do GRUB.
Estou fazendo algo errado?
I am trying to build a minimal linux, for experimenting out with drivers (LLD 3 book refers kernel version 2.6.10). LFS looks out to be a hell of a task...
Sim, é. Se você quer apenas um linux mínimo com um kernel customizado, você certamente não precisa construir a userland inteira também! Escolha um objetivo:
Experimente o desenvolvimento de drivers.
OR
Construa o linux do zero.
Não ambos, porque se o que você realmente quer fazer é # 1, # 2 é apenas um desnecessário desperdício de tempo. E não um curto período de tempo, como você está descobrindo, embora esse blog seja bem curto, eu suspeito que você terá muito mais problemas e dúvidas se continuar. Pense: dias . Tipo, dias inteiros, plural. E uma probabilidade muito alta de que, em algum momento durante o dia 2 ou 3, você concorde comigo e arquive o LFS em vez de perder mais tempo.
I don't want to mess up my existing system, that why I chose virtualization.
"bagunçar o seu sistema" certamente não é um problema ao testar os drivers do kernel, exceto no sentido de bagunçar o estado de execução. Ou seja, você não fará nenhum dano que não seja corrigido por uma reinicialização. Por "quase certamente não", quero dizer, se é um risco, você saberá por causa da natureza peculiar do que você está fazendo. Mas você não vai trabalhando com o LDD 3.
No entanto, é muito fácil desorganizar o estado de execução o suficiente para exigir uma reinicialização, o que pode se tornar um aborrecimento tedioso, e corre um pequeno risco de corromper o sistema de arquivos se "reinicializar" significa passar o switch porque o kernel venceu Não entre em pânico - o que torna uma boa idéia usar uma VM. Eu não acho que o QEMU é a melhor escolha, a menos que você esteja tentando simular hardware estrangeiro. Que você quase certamente não precisa / quer fazer neste caso.
Então, aqui está o meu conselho: se você estiver em uma máquina x86 ou x86_64, use uma VM x86 (_64) como virtualbox . Use qualquer imagem que você queira e instale um kernel personalizado. Novamente: você não precisa construir o espaço do usuário para executar um kernel personalizado . Você só precisa construir e instalar o kernel em um espaço de usuário existente (ou imagem do SO). Apenas o kernel. Nada além do kernel. Isso é tudo. Você pode fazer isso em < 15 minutos, embora possa demorar horas na primeira leitura de todas as configurações.
Mas: você nem precisa de um kernel personalizado para experimentar a construção de módulos. Você só precisa da fonte para o kernel usado na sua imagem. Embora o LDD 3 seja datado, o kernel 3.x não é tão diferente do kernel 2.6. Muitos drivers, etc., em 3.x estão completamente inalterados de 2.6.
OTOH, tendo alguma experiência em construir kernels, pode fornecer insights para você. programação do kernel.