Estou tentando criar um novo arquivo DTB para minha placa Nvidia Jetson Nano Developer Root. O problema principal é que o cartão SD não é reconhecido, mas tenho certeza de que isso está vindo diretamente da Nvidia. Pesquisei na internet e encontrei o repositório com os arquivos DTB essenciais: "https://github.com/forecr/forecr_nano_kernel/tree/Jetpack-4.6.6". Modifiquei o arquivo forecr_nano_kernel-Jetpack-4.6.6/hardware/nvidia/platform/t210/porg/kernel-dts/tegra210-p3448-0002-p3449-0000-b00.dts conforme minhas necessidades, então adicionei /dts-v1/; à primeira linha e alterei.
sdhci@700b0000 { /* SDMMC1 for SD card */
status = "disabled";
};
para
sdhci@700b0000 { /* SDMMC1 for SD card */
status = "okay";
};
e aqui, eu tentei muito, mesmo junto com o poder do Gemini Deep Research, ChatGPT, Deepseek, Stackoverflow e fóruns da Nvidia e como eu não sou tão profundo na codificação DTC, espero conseguir alguma ajuda aqui. Meu arquivo se parece com isso: tegra210-p3448-0002-p3449-0000-b00.dts
/dts-v1/;
#include "tegra210-porg-p3448-common.dtsi"
#include "porg-platforms/tegra210-porg-camera-rbpcv3-dual-imx477.dtsi"
#include "porg-platforms/tegra210-porg-camera-rbpcv2-dual-imx219.dtsi"
#include "porg-platforms/tegra210-porg-pinmux-p3448-0002-b00.dtsi"
#include "porg-platforms/tegra210-porg-gpio-p3448-0002-b00.dtsi"
#include "porg-platforms/tegra210-porg-p3448-emc-a00.dtsi"
/ {
model = "NVIDIA Jetson Nano Developer Kit";
compatible = "nvidia,p339-0000-b00+p3448-0002-b00", "nvidia,jetson-nano", "nvidia,tegra210";
nvidia,dtsfilename = __FILE__;
sdhci@700b0600 { /* SDMMC4 for EMMC */
status = "okay";
};
sdhci@700b0000 { /* SDMMC1 for SD card */
status = "okay";
};
spi@70410000 { /* QSPI */
status = "disabled";
};
gpio@6000d000 {
/* gpio-name for 40-pin header, gpio-name given as COL(10) x ROW(20) */
gpio-line-names = "", "", "", "", "", "", "", "", "", "",
"", "", "SPI1_MOSI", "SPI1_MISO", "SPI1_SCK", "SPI1_CS0", "SPI0_MOSI", "SPI0_MISO", "SPI0_SCK", "SPI0_CS0",
"SPI0_CS1", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "GPIO13", "",
"", "", "", "", "", "", "", "", "", "",
"UART1_RTS", "UART1_CTS", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "I2S0_FS", "I2S0_DIN", "I2S0_DOUT", "I2S0_SCLK",
"", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "GPIO07", "",
"", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "",
"", "", "", "", "GPIO12", "", "", "", "", "",
"GPIO11", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "GPIO09", "", "", "",
"", "", "", "", "", "", "", "", "", "",
"", "", "SPI1_CS1", "", "", "", "", "", "", "";
};
};
Meu comando para tentar compilar com dtc é este:
dtc -I dts -O dtb -o hardware/nvidia/platform/t210/porg/kernel-dts/tegra210-p3448-0002-p3449-0000-b00.dtb hardware/nvidia/platform/t210/porg/kernel-dts/tegra210-p3448-0002-p3449-0000-b00.dts -i hardware/nvidia/platform/t210/porg/kernel-dts/
e recebo este erro:
Error: hardware/nvidia/platform/t210/porg/kernel-dts/tegra210-p3448-0002-p3449-0000-b00.dts:2.1-9 syntax error
FATAL ERROR: Unable to parse input tree
Eu estava olhando os arquivos que são incluídos, mas eles não parecem tão ruins para mim (ok, sou muito estúpido, mas tanto faz) e o DTC funciona, por exemplo, com o Echo'/ { compatible = "test"; };' | dtc -I dts -O dtb -o test.dtb
Meu sistema operacional para isso é
Ubuntu 18.04 (I need that for installing the drivers / Software to the nvidia nano)
I am Using an AMD Ryzen 7 5800x
Version: DTC 1.6.1-g9bb73dd8
Estou implorando por ajuda, porque esse é meu projeto de ciências :X
Espero que isso ajude, com base no comentário de @sawdust e no comando Preprocessor Only da Referência da Árvore de Dispositivos
Esses comandos parecem produzir bons resultados:
Saídas
cpp
O comando produz o arquivopost-cpp.dts
usado como entrada paradtc
o comando, que produz o comandotegra210-p3448-0002-p3449-0000-b00.dtb
final , que converte o arquivo novamente em um arquivo para verificação. Aqui estão os valores derivados do arquivo que acredito que o arquivo original estava tentando modificar:dtc
dtb
dts
dtb
dts