Introdução ao Dtc
O pacote dtc contém o Device Tree
Compiler para trabalhar com fontes de árvores de dispositivos e
arquivos binários e também libfdt, uma biblioteca de utilitários
para ler e manipular árvores de dispositivos no formato binário.
Nota
Esse pacote é conhecido por construir e
funcionar adequadamente usando-se uma plataforma LFS 13.1.
Informação do Pacote
-
Transferência (HTTP): https://kernel.org/pub/software/utils/dtc/dtc-1.8.1.tar.xz
-
Soma de verificação MD5 da transferência:
9753bdbf18763efef1f5ae8c0cecb5f6
-
Tamanho da transferência: 176 KB
-
Espaço em disco estimado exigido: 14 MB (com testes)
-
Tempo de construção estimado: 0,2 UPC (com testes)
Dependências de Dtc
Opcionais
libyaml-0.2.5, SWIG-4.5.0 e texlive-20260301
Instalação do Dtc
Instale dtc executando os
seguintes comandos:
mkdir build &&
cd build &&
meson setup .. \
--prefix=/usr \
--buildtype=release \
--default-library=shared \
-D python=disabled &&
ninja
Para testar os resultados, emita: meson configure -D werror=false && ninja
test.
Agora, como o(a) usante root:
ninja install
Se você tiver texlive-20260301 instalado, poderá
construir o formato PDF da documentação emitindo o seguinte
comando:
pushd ../Documentation
latexmk -bibtex --pdf dtc-paper &&
latexmk -bibtex --pdf dtc-paper -c
popd
Para instalar a documentação, como o(a) usante root emita o seguinte comando:
cp -R ../Documentation -T /usr/share/doc/dtc-1.8.1
Se você tiver instalado SWIG-4.5.0 e desejar instalar as ligações Python 3
desse pacote, corrija o código para a compatibilidade com SWIG
4.5.0 ou mais recente primeiro:
sed -e 's/PyString_FromString/PyUnicode_FromString/' \
-e 's/PyString_AsString/PyBytes_AsString/' \
-e 's/PyInt_AsLong/PyLong_AsLong/' \
-i ../pylibfdt/libfdt.i
Construa o módulo Python 3:
pip3 wheel -w dist --no-build-isolation --no-deps
--no-cache-dir ..
Como o(a) usuário(a) root, instale
o módulo Python 3:
pip3 install --no-index --find-links dist
--no-user libfdt
Explicações do Comando
--buildtype=release:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza binários
não otimizados.
-D python=disabled: Essa
chave impede construir a ligação do Python 3 com o método obsoleto
(executando setup.py
diretamente). Nós construiremos a ligação do Python 3 com o comando
pip3 wheel
separadamente, se desejado.
CC='gcc -Wl,-z,noexecstack': Essa
variável impede marcar as bibliotecas compartilhadas na suíte de
teste como exigindo pilha executável. A Glibc 2.41 ou posterior
parou de permitir abrir com dlopen
tal biblioteca compartilhada, de modo que a suíte de teste
falharia. Mas essas bibliotecas compartilhadas não precisam
realmente de uma pilha executável, de modo que nós podemos usar
-Wl,-z,noexecstack para
consertar a suíte de teste. É necessário no ambiente CC para o meson
test porque essas bibliotecas compartilhadas são
construídas por um conjunto de comandos sequenciais de teste em vez
do sistema de construção meson/ninja, e o conjunto de comandos
sequenciais de teste não reconhece outras variáveis de ambiente
“comuns” como
LDFLAGS.