我正在尝试为我的 Nvidia Jetson Nano 开发板创建新的 dtb 文件。核心问题是 SD 卡无法识别,但我确信这是 Nvidia 直接导致的。我在网上查找,找到了包含关键 dts 文件的仓库:“https://github.com/forecr/forecr_nano_kernel/tree/Jetpack-4.6.6”。我根据自己的需求修改了 forecr_nano_kernel-Jetpack-4.6.6/hardware/nvidia/platform/t210/porg/kernel-dts/tegra210-p3448-0002-p3449-0000-b00.dts 文件,因此在第一行添加了 /dts-v1/; ,并更改了
sdhci@700b0000 { /* SDMMC1 for SD card */
status = "disabled";
};
到
sdhci@700b0000 { /* SDMMC1 for SD card */
status = "okay";
};
在这里,我尝试了很多方法,甚至借助了 Gemini Deep Research、ChatGPT、deepseek、Stackoverflow 和 nvidia 论坛的帮助,但由于我对 dtc 编码并不是很了解,所以我希望在这里得到一些帮助。我的文件如下所示: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", "", "", "", "", "", "", "";
};
};
我尝试使用 dtc 进行编译的命令是这样的:
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/
我收到此错误:
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
我正在研究包含的文件,但它们看起来并不糟糕(好吧,我很愚蠢,但无论如何)并且 dtc 可以与 echo 一起使用'/ { compatible = "test"; };' | dtc -I dts -O dtb -o test.dtb
我的操作系统是
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
我请求帮助,因为这是我的科学项目:X