Como os cartões Compact Flash compatíveis com ATA são vistos pelo FreeBSD como discos rígidos IDE normais, você poderia teoricamente instalar o FreeBSD a partir da rede usando o os disquetes do kern e mfsroot ou de um CD.
No entanto, mesmo uma pequena instalação do FreeBSD utilizando procedimentos normais de instalação pode produzir um sistema com tamanho maior que 200 megabytes. Como a maioria das pessoas usará dispositivos de memória flash menores (128 megabytes são considerados razoavelmente grandes - 32 ou até mesmo 16 megabytes são comuns), uma instalação usando mecanismos normais não será possível - simplesmente não há espaço em disco suficiente nem para as menores instalações convencionais.
A maneira mais fácil de superar essa limitação de espaço é instalar o FreeBSD usando meios convencionais em um disco rígido normal. Após a conclusão da instalação, reduza o sistema operacional para um tamanho que caiba na mídia flash e compacte o sistema de arquivos inteiro com o tar. Os passos seguintes irão guiá-lo através do processo de preparação de uma parte da memória flash para o seu sistema de arquivos compactado com o tar. Lembre-se de que não estamos executando uma instalação normal, logo as operações como particionamento, criação dos labels, criação do sistema de arquivos, etc. precisam ser executadas manualmente. Além dos disquetes do kern e mfsroot, você também precisará usar o disquete do fixit.
Particionando seu Dispositivo de Mídia Flash
Após inicializar com os disquetes do kern e mfsroot, escolha custom
no menu de instalação. No menu de instalação personalizada, escolha partition
. No menu de partições, você deve apagar todas as partições existentes usando a tecla d. Depois de excluir todas as partições existentes, crie uma partição usando a tecla c e aceite o valor padrão para o tamanho da partição. Quando perguntado sobre o tipo da partição, certifique-se de que o valor esteja configurado para 165
. Agora escreva esta tabela de partições no disco pressionando w (esta é uma opção oculta nesta tela). Se você estiver usando um cartão compact flash compatível com ATA, deverá escolher o FreeBSD Boot Manager. Agora pressione q para sair do menu de partições. Você verá novamente o menu do gerenciador de inicialização - repita a escolha feita anteriormente.
Criando Sistemas de Arquivos em seu Dispositivo de Memória Flash
Saia do menu de instalação personalizada e, no menu de instalação principal, escolha a opção fixit
. Depois de entrar no ambiente do fixit, digite o seguinte comando:
#
disklabel -e /dev/ad0c
Neste ponto, você terá entrado no editor vi sob os auspícios do comando disklabel. Em seguida, você precisa adicionar uma linha a:
no final do arquivo. Esta linha a:
deve ser semelhante a linha abaixo:
a: 123456
0 4.2BSD 0 0
Onde 123456
é um número o qual é exatamente o mesmo que o número existente na entrada c:
para o tamanho. Basicamente, você está duplicando a linha c:
existente como uma linha a:
, certifique-se de que o fstype seja 4.2BSD
. Salve o arquivo e saia.
#
disklabel -B -r /dev/ad0c
#
newfs /dev/ad0a
Colocando seu Sistema de Arquivos na Mídia Flash
Monte a mídia flash recém-preparada:
#
mount /dev/ad0a /flash
Coloque esta máquina na rede para que possamos transferir nosso arquivo tar e extrai-lo em nosso sistema de arquivos de mídia flash. Um exemplo de como fazer isso é:
#
ifconfig xl0 192.168.0.10 netmask 255.255.255.0
#
route add default 192.168.0.1
Agora que a máquina está na rede, transfira seu arquivo tar. Você pode se deparar com um pequeno dilema neste ponto - se a sua memória flash tiver por exemplo 128 megabytes, e seu arquivo tar for maior que 64 megabytes, você não poderá ter o seu arquivo tar na mídia flash ao mesmo tempo em que realiza a descompressão - você ficará sem espaço. Uma solução para esse problema, se você estiver usando FTP, é descompactar o arquivo enquanto ele é transferido por FTP. Se você realizar sua transferência desta maneira, você nunca terá o arquivo tar e o conteúdo do tar em seu disco ao mesmo tempo:
ftp>
get tarfile.tar "| tar xvf -"
Se o seu arquivo tar estiver gzipado, você pode fazer isso também:
ftp>
get tarfile.tar "| zcat | tar xvf -"
Depois que o conteúdo do seu sistema de arquivos compactado pelo tar estiver no sistema de arquivos da sua memória flash, você poderá desmontar a memória flash e reinicializar:
#
cd /
#
umount /flash
#
exit
Assumindo que você configurou seu sistema de arquivos corretamente quando ele foi construído no disco rígido normal (com seus sistemas de arquivos montado como read-only, e com as opções necessárias compiladas no kernel) você agora deve inicializar com sucesso seu sistema embarcado FreeBSD.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.