Estou construindo meu próprio sistema operacional com o Linux. Eu uso o kernel e alguns componentes do GNU.
Eu compilei o kernel e instalei bash
com readline
e busybox
. Depois disso tudo funciona bem. Eu queria instalar nano
, gcc
...
Quando executo esses aplicativos, isso me dá 'Falha na segmentação (core despejado)'. Eu instalei gdb
(depurador GNU) para ver o que está errado. Também gdb
não inicia e me dá o erro:
Segmentation failed (core dumped)
O problema é que eu tenho o /include
e /share
não copiado para /usr
E por algumas bibliotecas mais de uma versão da biblioteca. Não havia stacktrace
ou algo assim para colá-lo aqui nessa questão.
Passos que fiz:
grub
e instale-o com grub-installer
no meu disco usb make menuconfig
make
e make modules
bzimage
e executável no meu usb ( /boot
) bzimage
para /tmp
, descompactei com gzip
, dd
bzimage
de /lib
, /usr
para meu usb gclib
, ncurses
, readline
e bash
4.4 busybox
mkdir
, rmdir
, adduser
...) nano
e gcc
compilador Computador reiniciado, tente executar o nano e isso me dá:
Segmentation failed (core dumped)
Instalado gdb
e reiniciado. Também me dá:
Segmentation failed (core dumped)
Como eu instalei o busybox
Eu baixei o binário do site do busybox.
Então você cola em /bin
Não se esqueça de fazer busybox --install
quando você executar seu novo sistema operacional para instalar os comandos.
Mas você também pode criá-lo a partir do código-fonte com make menuconfig
, make
e make install
Como instalei o grub
Eu baixei a fonte do site GNU e a compilei com make
e make install
. Nos utils você pode ver o grub-install
. Com isso, você pode instalar o grub no seu disco. link
Como eu instalei o kernel
Primeiro você precisa configurar com make menuconfig
.
Em seguida, você precisa criar com make
, make modules
e make modules_install
Se você deseja copiar o bzimage e o exe instalados na sua atual distribuição de Linux você faz sudo make install
Eu copiei os arquivos para o meu usb. (executável bzimage e linux)
Como instalei o gclib
Você precisa baixar gclib
do gnu e configurá-lo com ./configure --prefix=<usb_directory>
Então você precisa construí-lo com make
e make install
Copie o /include
e /share
para /usr/share
e /usr/include
Como eu instalei o nano
Você precisa baixar o nano do gnu e configurá-lo com ./configure --prefix=<usb_directory>/usr
Então você precisa construí-lo com make
e make install
Se houver um /usr/etc
, copie-o para /etc
Como eu instalei ncurses
O mesmo que gclib
SOLUÇÃO
Eu encontrei a solução. Eu copiei /include
e /share
para /usr/include
e /usr/share
. Certifique-se de que você não tenha mais de uma versão da biblioteca.
Eu não posso postar minha resposta, então colo aqui.
@JiggyNaga: Não há erros fatais.
telecoM: Se você descompactar o initramfs, poderá ver as bibliotecas que você pode precisar. Então você não precisa instalá-los.
Tags bash segmentation-fault linux