FreeBSD na Cubieboard 1 e 2

FreeBSD na Cubieboard

Cubieboard é uma placa de desenvolvimento que se baseia em Allwinner A10 / A20 System-on-Chip (SoC).

Os detalhes técnicos completos para o Cubieboard estão disponíveis nesse link.

Desde a Cubieboard, o SD Controller não é suportado pelo FreeBSD ainda. Para inicializar o sistema na Cubieboard, você vai precisar de uma configuração mais complexa:

1) Cartão microSD com carregador u-boot e arquivos de sistema msdos contendo kernel do FreeBSD.
2) Memory stick USB com arquivos de sistema root FreeBSD.

Quando a Cubieboard é inicializada com microSD inserido, ele tenta iniciar a partir dele antes da NAND, então será executado u-boot a partir do SD que por sua vez  irá carregar e executar o kernel. Como disse, sem suporte ao controller SD, o núcleo não tem acesso a microSD, então o root é montado a partir do stick USB.

 

Construindo o FreeBSD

Obter o FreeBSD head

Compile o kernel e World. Instale o World para Flash USB (substitua da0 com seu dispositivo de armazenamento USB).

CUBIEBOARD deve ser alterado para CUBIEBOARD2 se você tiver Cubieboard2 (Nota: Mude da0s2 para da0 na configuração do kernel).

 

# truncate -s 1024M cubie.img
 # mdconfig -f cubie.img -u0
 # newfs /dev/md0
 # mount /dev/md0 /mnt

 # make TARGET_ARCH=armv6 kernel-toolchain
 # make TARGET_ARCH=armv6 KERNCONF=CUBIEBOARD buildkernel
 # make TARGET_ARCH=armv6 buildworld
 # make TARGET_ARCH=armv6 DESTDIR=/mnt installworld distribution

 # umount /mnt
 # mdconfig -d -u0
 # sysctl kern.geom.debugflags=16
 # dd if=cubie.img of=/dev/da0 bs=4096k 


Prepare o Cartão SD

1. Para Cubieboard1, obtenha o arquivo SPL clicando aqui, para Cubieboard2, obtenha o arquivo SPL clicando aqui.

2. Para Cubieboard1, obtenha U-Boot binário a clicando aqui, para Cubieboard2, obtenha U-Boot binário  clicando aqui.

3. Escreva binários (substituir da4 com o seu dispositivo). CUBIEBOARD deve ser alterado para CUBIEBOARD2 se você tiver Cubieboard2.

# dd if=/dev/zero of=a10.img bs=1m count=1
# dd if=sunxi-spl.bin conv=notrunc of=a10.img bs=1024 seek=8
# dd if=u-boot.bin conv=notrunc of=a10.img bs=1024 seek=32
# dd if=a10.img of=/dev/da4 bs=1m

# gpart create -s MBR /dev/da4
# gpart add -b 1m -s 24m -t '\!12' /dev/da4
# gpart set -a active -i 1 /dev/da4
# newfs_msdos -L boot -F 16 /dev/da4s1
# mount_msdosfs /dev/da4s1 /mnt
# cp /usr/obj/arm.armv6/usr/src/sys/CUBIEBOARD/kernel /mnt
# umount /mnt

 

Boot

1. Coloque o cartão SD e USB flash na Cubieboard.

2. Conecte-se utilizando um cabo console serial e com velocidade 115200

 

 # cu -l /dev/ttyU0 -s 115200

 

3. Ligue sua placa e configure o comando de Boot

sun4i# fatload mmc 0 0x40200000 kernel; go 0x40200100

 

Automatize o Boot

O boot não requer interação do usuário, prossiga com as instruções abaixo:

1. Instale a porta devel port / uboot-mkimage

2. Escreva um script com o nome de boot.cmd com os seguintes comandos:

 

fatload mmc 0 0x40200000 kernel
 go 0x40200100


3. Use o mkimage para converter este script para boot.scr:


mkimage -C none -A arm -T script -d boot.cmd boot.scr

 

Insira o boot.scr gerado nos arquivos de sistema no cartão microSD. Agora uboot irá executar comandos a partir do seu script ao invés de procurar no prompt, de modo que o kernel será executado automaticamente.

Mais detalhes você pode acessar neste link

 

 

Para baixar a versão em PDF, clique no link abaixo:

https://www.lojamundi.com.br/download/freebsd-na-cubieboard-1-e-2/freebsd-na-cubieboard-1-e-2.pdf


 

Fonte: https://wiki.freebsd.org/FreeBSD/arm/Cubieboard

Posted in: CubieboardEmbarcados

ENTRE EM CONTATO COM A LOJAMUNDI.

Assine nossa Newsletter! É gratuito!

Cadastre seu nome e email para receber novidades e materiais gratuitos da Lojamundi.