- u-boot: 2021.10
- linux kernel: 5.10.4
- buildroot: 2021.05
- opensbi: 89182b2
build.sh
:Conforme mostrado no prompt, existem duas maneiras de compilar a versão de destino.
O primeiro método é executar ./build.sh lunch
para abrir o menu interativo, selecionar o número da versão a ser compilada e pressionar Enter:
# ./build.sh lunch
Selecione o destino para Build
1. milkv-duo
2. milkv-duo256m
O qual você gostaria
O segundo método é colocar o nome da versão de destino após o script e compilá-lo diretamente. Por exemplo, se você precisar compilar a imagem de milkv-duo
, o comando é o seguinte:
# ./build.sh milkv-duo
milkv-duo-*-*.img
no diretório out
Nota: A primeira compilação baixará automaticamente o conjunto de ferramentas necessário, que tem aproximadamente 840 MB. Depois de baixado, ele será extraído automaticamente para o host-tools
diretório do SDK. Para compilações subsequentes, caso o diretório host-tools
seja detectado, o download não será realizado novamente .
Sobre o WSL
Se você deseja realizar a compilação com WSL, há um pequeno problema no Build da imagem. O $PATH, devido à interoperabilidade do Windows, possui variáveis de ambiente do Windows que incluem alguns espaços entre os caminhos.
Para resolver este problema você precisa alterar o arquivo /etc/wsl.conf
e adicionar as seguintes linhas:
[interop]
appendWindowsPath = false
Depois disso, você precisa reiniciar o WSL com wsl.exe --reboot
. Então você poderá executar o script ./build.sh
ou a linha build_all
no método de compilação passo a passo. Para reverter esta alteração no arquivo /etc/wsl.conf
definido appendWindowsPath
como verdadeiro. Para reinicializar o WSL, você pode usar o comando do Windows PowerShell wsl.exe --shutdown
então wsl.exe
, depois disso as variáveis de ambiente do Windows ficam disponíveis novamente em $PATH.
Você pode pegar imagens (IMG) prontas em
Releases · milkv-duo/duo-buildroot-sdk (github.com), o qual inclui a LIB WIRING (C++), a qual será discutida futuramente, bem como PINGPONG (Python)
Make Menuconfig
Um grande número de pacotes de aplicativos estão predefinidos no Buildroot. Os programas necessários são gerados baixando o código-fonte e compilando-os. Os pacotes de aplicativos predefinidos do Buildroot podem ser visualizados no diretório buildroot-2021.05/package.
A configuração para ativar ou desativar um pacote de aplicativos é implementada no arquivo de configuração do quadro de destino. Tomando o alvo milkv-duo
como exemplo, seu arquivo de configuração buildroot é:
buildroot-2021.05/configs/milkv-duo_musl_riscv64_defconfig
Podemos compilar o SDK como um todo no host (como Ubuntu) e, em seguida, ir para o diretório de compilação Buildroot para configurar os pacotes de aplicativos relevantes por meio da interação do menu de linha de comando.
cd buildroot-2021.05/output/milkv-duo_musl_riscv64
Você pode usar o comando make show-targets
para visualizar os pacotes de aplicativos usados atualmente:
$ make show-targets busybox coreutils dhcpcd dnsmasq dropbear duo-pinmux e2fsprogs evtest expat fio freetype gdb host-acl host-attr host-autoconf host-automake host-e2fsprogs host-fakeroot host-genimage host-libtool host-libzlib host-m4 host-makedevs host-mkpasswd host-patchelf host-pkgconf host-skeleton host-util-linux host-xz host-zlib htop ifupdown-scripts initscripts iperf3 json-c kmod libevent libffi libnl libopenssl libxml2 libxslt libzlib musl-compat-headers ncurses ntp openssl python-cffi python-evdev python-freetype python-lxml python-modbus-tk python-pillow python-pinpong python-pip python-psutil python-pycparser python-serial python-setuptools python-smbus-cffi python-spidev python3 skeleton skeleton-init-common skeleton-init-sysv spidev_test strace stress-ng tar toolchain toolchain-external toolchain-external-custom urandom-scripts util-linux wpa_supplicant zlib rootfs-ext2 rootfs-tar
Configurar o Buildroot
Execute o comando make menuconfig
para abrir o menu interativo:
Target packages
. Se você não souber a localização específica do pacote de aplicativos, poderá pressionar a /
tecla para pesquisar o nome do pacote. Por exemplo, se você deseja instalar o comando tar
, já que a pesquisa tar
trará muitos outros conteúdos irrelevantes, você pode pesquisar por package_tar
. E veja que =n
está desativado no momento. Sua localização está na categoria System tools
de Target packages
. Você pode clicar duas vezes na tecla ESC
para retornar à página principal. Em seguida, insira a posição correspondente na interface, ou você pode inserir diretamente a posição de acordo com o número solicitado anteriormente:![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgbSSkkiC-g1Jt1vSiEv1Sjhm5i8a2boqLuhLZSWSqkaSE3L__7l5X239pKFFVJ2R_gube64AMXUQt6GjCkW5JBmOV6F-sMNKmnkKsPsKT2swMAeizYdZNOFcpo9ULNSeuWqLud0ioVMa3o5G9gf3YIsCHIdN_VASUujZrQPimOM9ogSEgzCedJ_k5WG_L/s320/a.webp)
Pressione a barra de espaço para ativar:
Clique duas vezes na tecla ESC
continuamente para sair da interface principal. Quando perguntado se deseja salvar, o padrão é SIM. Basta pressionar Enter para salvar e sair:
Execute o comando
make savedefconfig
para salvar a configuração modificada no arquivo de configuração original. Use o comando git status
para confirmar. Você pode ver que o arquivo de configuração original foi modificado:Neste ponto, volte para o diretório raiz do SDK e recompile.
DICA
Aqui você também pode comparar as diferenças entre o arquivo de configuração antigo e o novo arquivo de configuração no diretório de compilação e modificar manualmente as partes que precisam ser alteradas diretamente no arquivo de configuração originalmilkv-duo_musl_riscv64_defconfig
:
diff -u .config.old .config
Depois de começar com a imagem recém-compilada, teste o comando recém-adicionado no dispositivo Duo. Se not found
ocorrer um erro, pode ser que o arquivo .mk
de configuração do pacote precise ser complementado com parâmetros gcc, principalmente TARGET_CFLAGS
e Os dois parâmetros TARGET_LDFLAGS
precisam ser adicionados. Você pode consultar os seguintes commits:
- buildroot: enable fio
- buildroot: enable spidev_test
- buildroot: fix build parameter for coremark package
Questões: suporte@smartcore.com.br
Nenhum comentário:
Postar um comentário