Build linux-menuconfig resulta em: “*** Erro durante a atualização da configuração.”

4

Eu tento construir o kernel do Linux com o Buildroot usando o Docker. Eu criei uma imagem simples do Docker:

FROM debian:7
MAINTAINER OrangeTux


RUN apt-get update && \
    apt-get install -y \
    build-essential \
    bash \
    bc \
    binutils \
    build-essential \
    bzip2 \
    cpio \
    g++ \
    gcc \
    git \
    gzip \
    make \
    libncurses5-dev \
    patch \
    perl \
    python \
    rsync \
    sed \
    tar \
    unzip \
    wget

WORKDIR /root

RUN git clone git://git.buildroot.net/buildroot 

WORKDIR /root/buildroot

CMD ["/bin/bash"]

Eu quero manter dl/ e output/build/ quando o contêiner parar, então não preciso baixar e compilar todas as dependências todas as vezes. Eu também quero os produtos de compilação no meu host. Portanto, eu começo o container assim:

$ docker run -ti -v $(pwd)/dl:/root/buildroot/dl -v \ $(pwd)/output/build:/root/buildroot/output/build -v \ $(pwd)/output/images:/root/buildroot/output/images orangetux/buildroot

Consigo executar make menuconfig , que cria a configuração para o Buildroot. Eu fiz algumas modificações nos padrões. Aqui está a saída de make savedefconfig :

BR2_arm=y
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_DEFCONFIG="at91_dt"

O próximo passo é criar linux-menuconfig . Esta ação falhou e não tenho ideia do que está errado:

 $ make linux-menuconfig
/usr/bin/make -j1  HOSTCC="/usr/bin/gcc" HOSTCXX="/usr/bin/g++" silentoldconfig
make[1]: Entering directory '/root/buildroot'
BR2_DEFCONFIG='' KCONFIG_AUTOCONFIG=/root/buildroot/output/build/buildroot-config/auto.conf KCONFIG_AUTOHEADER=/root/buildroot/output/build/buildroot-config/autoconf.h KCONFIG_TRISTATE=/root/buildroot/output/build/buildroot-config/tristate.config BR2_CONFIG=/root/buildroot/.config BR2_EXTERNAL=support/dummy-external SKIP_LEGACY= /root/buildroot/output/build/buildroot-config/conf --silentoldconfig Config.in

*** Error during update of the configuration.

make[1]: *** [silentoldconfig] Error 1
make[1]: Leaving directory '/root/buildroot'
make: *** [/root/buildroot/output/build/buildroot-config/auto.conf] Error 2

O arquivo /root/buildroot/output/build/buildroot-config/auto.conf não existe.

Por que o arquivo não existe e como posso criar linux-menuconfig ?

    
por OrangeTux 15.04.2015 / 18:47

2 respostas

0

Após extensa depuração, descobri que montar uma pasta no meu sistema host em /root/buildroot/output/ causa o problema. Remova esta montagem e make linux-menuconfig é possível.

Mais depuração revelou que a montagem de uma pasta de host em /root/buildroot/output/build no contêiner é o problema. Eu não tenho idéia do porquê.

    
por 18.04.2015 / 15:21
0

Isso soa como um problema de permissão. Permissões de usuário (chmod ou acl), MAC (Controle de Acesso Obrigatório, geralmente selinux ou similar) ou permissões de gravação do sistema de arquivos. Acho que é provavelmente o terceiro em que o seu contêiner não é capaz de gravar no dispositivo.

    
por 19.04.2015 / 00:57