Como adicionar um pacote autotools ao Buildroot?

6

Estou tentando adicionar um pacote ao buildroot, mas não estou tendo muito sucesso. O pacote que estou tentando adicionar é um pacote autotools chamado scew. Eu segui as orientações do buildroot sobre como adicionar pacotes, e embora o pacote esteja listado quando make menuconfig é executado, quando eu executo make o pacote está faltando no final rootfs.tar .

Eu também copiei outro arquivo .mk simples que usou para instalar which e alterei os nomes das variáveis e o URL de acordo. Aqui está minha cópia de scew.mk :

SCEW_VERSION = 1.1.3
SCEW_SITE = http://savannah.nongnu.org/download/scew/
SCEW_LICENSE = GPLv3
SCEW_LICENSE_FILES = COPYING

$(eval $(autotools-package))

No mesmo diretório, tenho Config.in , que se parece com:

config BR2_PACKAGE_SCEW
   bool "scew"
   help
   google scew

Eu também adicionei as seguintes linhas a package/Config.in :

menu "My Packages"

 menu "Packages I Wrote"
 source "package/MyPackages/packagesIWrote/hello/Config.in"
 source "package/MyPackages/packagesIWrote/helloworld/Config.in"
 endmenu

 menu "External Packages"
 source "package/MyPackages/external-packages/scew/Config.in"
 endmenu

endmenu

Esta parte parece funcionar, pois os pacotes são listados e podem ser selecionados. Os pacotes hello e helloworld são cópias de um guia para adicionar pacotes, retirados deste site (em francês): Adicionando o Hello Wolrd

Os pacotes hello world também não funcionam. Eu ficaria feliz com qualquer conselho, pois parece que eu estou dando voltas em círculos sobre este, e não consigo ver o que estou fazendo de errado.

    
por James 21.02.2013 / 14:27

3 respostas

1

Dê uma olhada no este projeto , há exemplos muito bons.

Edite o buildroot-packages/package/Config.in para adicionar seu pacote

menu "buildroot-packages [external repo]"
    source package/hola/Config.in
endmenu

Adicione em uma pasta o seu arquivo .in buildroot-packages/package/hola/Config.in

config BR2_PACKAGE_HOLA
    bool "hola"
    depends on BR2_PACKAGE_SOME_PACKAGE
    help
        hola is an example of a program build with autotools for to be added
        to buildroot

        http://stackoverflow.com/users/4059304/simonppg

comment "hola no needs any toolchain w/ dynamic library, threads"

adicione o .mk também buildroot-packages/package/hola/hola.mk

HOLA_VERSION = v0.0.1
HOLA_SITE = https://bitbucket.org/simonppg/hola
HOLA_SITE_METHOD = git
HOLA_AUTORECONF = YES
HOLA_DEPENDENCIES = some_package

$(eval $(autotools-package))

e siga as instruções no mesmo projeto para instalar ou desinstalar os pacotes no diretório do buildroot.

    
por 27.12.2015 / 17:28
0

O diretório temporário é útil para cabeçalhos e ferramentas intermediárias necessárias para construir a imagem final, mas não necessárias no rootfs, ela também é usada para bibliotecas removidas e executáveis.

A cópia do teste para o diretório de destino $(TARGET_DIRECTORY) é geralmente feita dentro da configuração de rootfs alvo escolhida (por exemplo: cramfs, squashfs, etc.), mas geralmente a lista de arquivos a serem incluídos no rootfs está em seu destino de configuração da plataforma (por exemplo: genérico, plataforma-alguma coisa) em um arquivo de texto simples.

    
por 22.10.2013 / 23:59
0

Estou experimentando o que parece ser o mesmo problema: enquanto outros pacotes acabam construindo um executável e, em seguida, o desmembrando no diretório ./project_build_arm/my_device/root/usr/bin/ , o pacote que adicionei é construído e depois removido para ./build_arm/staging_dir/usr/bin/ .

Para contornar este problema, atualmente tudo o que faço é copiar o binário separado do diretório errado para o diretório correto. Não é inteligente, não é correto, mas funciona (em um estilo Band-Aid).

Parece que o que está dando errado é fazê-lo de maneira razoavelmente alta, então talvez a descrição acima seja suficiente para que alguém com uma melhor experiência de buildroot diagnostique a causa real do problema.

... ou você já resolveu você mesmo?

    
por 08.05.2013 / 12:01