{"id":134019,"date":"2026-09-30T02:13:38","date_gmt":"2026-09-30T02:13:38","guid":{"rendered":"https:\/\/www.seeedstudio.com\/blog\/?p=134019"},"modified":"2026-09-30T02:31:25","modified_gmt":"2026-09-30T02:31:25","slug":"nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things","status":"publish","type":"post","link":"https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/","title":{"rendered":"NVIDIA Jetson Device Tree: Why Swapping the Carrier Board May Break Things"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">While unboxing and getting started with Jetson at the very beginning, you may always encounter this problem: Swapped the Carrier Board and USB Stopped Working. How does it happen? It All Starts with the Device Tree. Once we boot up the complete Jetson software stack and run on it, how exactly does Linux know which hardware is attached to the board?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, the same Jetson Orin Nano module works perfectly fine on NVIDIA&#8217;s official <a href=\"https:\/\/www.seeedstudio.com\/NVIDIAr-Jetson-Orintm-Nano-Super-Developer-Kit-Bundle.html\">Orin Nano Developer Kit<\/a> carrier board, but after switching to a different carrier board, USB may stop working. The Jetson module hasn&#8217;t changed, and the Linux Kernel hasn&#8217;t changed either. Why can swapping just the carrier board completely change the behavior of the whole system?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This brings us to a very important concept in Jetson hardware development: the <strong>Device Tree<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this article, we focus on three questions:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What exactly is the Device Tree everyone keeps talking about?<\/strong><\/li>\n\n\n\n<li><strong>Why does much of the hardware stop working directly after the carrier board is replaced?<\/strong><\/li>\n\n\n\n<li><strong>Why do Seeed Studio&#8217;s Jetson carrier boards need their own BSP instead of directly using NVIDIA&#8217;s official BSP?<\/strong><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">What Exactly Is the Device Tree?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As mentioned earlier, the Linux Kernel manages the system&#8217;s low-level hardware. But how does the Kernel know which devices are on the carrier board? The answer is the <strong>Device Tree<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Device Tree&nbsp;tells the Linux Kernel what hardware is on the board and how it&#8217;s<strong> connected<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, if a schematic defines a sensor attached to a certain I2C bus with a certain bus address, and its reset line tied to a certain GPIO \u2014 that information will typically appear in the Device Tree in a corresponding form.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So we prefer to think of the Device Tree as <strong>a hardware wiring guide written for the Linux Kernel: schematics are drawn for humans, while the Device Tree is written for the Linux Kernel<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Later, we will look at what these &#8220;hardware connection relationships&#8221; actually look like in code, based on Seeed Studio&#8217;s real L4T BSP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Seeed Studio has open-sourced the BSPs for all Jetson products at <a href=\"https:\/\/github.com\/Seeed-Studio\/Linux_for_Tegra\">Seeed-Studio\/Linux_for_Tegra<\/a>. The repository contains many files ending in <code>.dts<\/code> \u2014 these are the Device Tree files we are about to discuss.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A Concrete Example: How the Device Tree Affects PCIe \/ NVMe<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We just said the Device Tree is a &#8220;hardware wiring guide written for the Linux Kernel&#8221; \u2014 so what does it actually look like in real code?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s look directly at the Device Tree of the Seeed Studio J401.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the open-source repository, there is a Device Tree file named <code>tegra234-j401-p3768-0000+p3767-0000.dts<\/code>. Open it and you will find a node like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vdd_3v3_pcie: regulator-vdd-3v3-pcie {\n    compatible = \"regulator-fixed\";\n    regulator-name = \"VDD_3V3_PCIE\";\n\n    regulator-min-microvolt = &lt;3300000&gt;;\n    regulator-max-microvolt = &lt;3300000&gt;;\n\n    gpio = &lt;&amp;gpio_aon\n            TEGRA234_AON_GPIO(AA, 5)\n            GPIO_ACTIVE_HIGH&gt;;\n\n    enable-active-high;\n};<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This configuration describes a <strong>3.3 V power rail<\/strong> for PCIe. The key pieces of information are:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>regulator-name\n\u2192 This power rail is called VDD_3V3_PCIE\n\n3300000\n\u2192 The voltage is 3.3 V\n\nTEGRA234_AON_GPIO(AA, 5)\n\u2192 It is controlled by AON GPIO AA.5\n\nenable-active-high\n\u2192 The rail is enabled when the GPIO is driven high<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In other words, a <strong>PCIe Power Enable<\/strong> signal on the carrier board schematic is ultimately described to Linux through the Device Tree. This is a very intuitive example of &#8220;hardware connection relationships being written into the Device Tree&#8221;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Only when these configurations are correct does the Kernel get a chance to bring up the PCIe link and enumerate the NVMe drive on the PCIe bus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s connect this with the boot log from the previous article. When the configuration is correct, you will see something like this in the UART boot log:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;    6.639293] tegra194-pcie 14160000.pcie: Link up\n&#91;    6.649851] nvme nvme0: pci function 0004:01:00.0\n&#91;    6.665906] nvme0n1: p1 p2 p3 ...<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The whole relationship forms a chain:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Device Tree\n    \u2193\nLinux initializes the hardware based on its description\n    \u2193\nDrivers do their work\n    \u2193\nThe boot log shows the result<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In other words:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>What you see in the boot log is the result, and the Device Tree is one of the key sources of configuration behind that result.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">[Image placeholder 1: A flow diagram of Device Tree \u2192 hardware initialization \u2192 Driver \u2192 Boot Log (same content as the text chain above; keeping just one is recommended \u2014 it can be redrawn as a cleaner horizontal flow diagram based on the text chain)]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the Device Tree does not match the actual carrier board, problems appear. Suppose a new carrier board routes the PCIe 3.3 V enable signal to a different GPIO, but the Device Tree still says <code>AON GPIO AA.5<\/code> \u2014 Linux may keep controlling the wrong GPIO following the old design.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The result: the NVMe SSD fails to be recognized \u2014 the boot log may reach the Linux Kernel stage, but the PCIe Link up message never appears. At this point, you should have a good sense of what the Device Tree is.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Device Tree File Formats: What&#8217;s the Difference Between DTS, DTSI, DTB, and DTBO?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In a Jetson BSP, you will often see these four kinds of files: <code>.dts<\/code>, <code>.dtsi<\/code>, <code>.dtb<\/code>, and <code>.dtbo<\/code>. They look similar, but their roles are different. Here is a table to build the overall picture first:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">File<\/th><th class=\"has-text-align-left\" data-align=\"left\">Full Name<\/th><th class=\"has-text-align-left\" data-align=\"left\">Main Purpose<\/th><th class=\"has-text-align-left\" data-align=\"left\">Human-Readable?<\/th><th class=\"has-text-align-left\" data-align=\"left\">Example in Seeed&#8217;s Open-Source Repository<\/th><\/tr><\/thead><tbody><tr><td>.dts<\/td><td>Device Tree Source<\/td><td>Describes one specific board, or one overlay<\/td><td>\u2705<\/td><td>tegra234-j401-p3768-0000+p3767-0000.dts<\/td><\/tr><tr><td>.dtsi<\/td><td>Device Tree Source Include<\/td><td>Holds common configuration reused by multiple DTS files<\/td><td>\u2705<\/td><td>tegra234-p3768-0000+p3767-xxxx-nv-common.dtsi<\/td><\/tr><tr><td>.dtb<\/td><td>Device Tree Blob<\/td><td>The compiled binary Device Tree generated from DTS\/DTSI<\/td><td>\u274c<\/td><td>tegra234-j401-p3768-0000+p3767-0000-recomputer.dtb<\/td><\/tr><tr><td>.dtbo<\/td><td>Device Tree Blob Overlay<\/td><td>Adds or modifies part of the hardware configuration on top of a base Device Tree<\/td><td>\u274c<\/td><td>tegra234-p3767-camera-p3768-imx219-dual-seeed.dtbo<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">First, DTS and DTSI<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You can think of a <code>.dts<\/code> as the &#8220;entry file&#8221; for one specific board, while a <code>.dtsi<\/code> is more like a shared configuration module.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, Seeed&#8217;s J401 DTS includes other Device Tree files:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include \"tegra234-p3767.dtsi\"\n#include \"tegra234-p3768-0000.dtsi\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">So in a real project, the Device Tree is not one giant <code>.dts<\/code> file written top to bottom \u2014 it is assembled layer by layer from many <code>.dtsi<\/code> files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can loosely compare it to the C language:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.dtsi is somewhat like .h\n.dts  is somewhat like the final .c that combines those configurations<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Of course the analogy is not strictly equivalent \u2014 it is only meant to help you grasp the relationship faster.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">DTB: The Binary Device Tree Linux Actually Uses<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>.dts<\/code> and <code>.dtsi<\/code> are for developers to read and modify. After being compiled by dtc (the Device Tree Compiler), they produce a <code>.dtb<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What Linux actually reads at boot time is the compiled<\/strong> <strong><code>.dtb<\/code><\/strong><strong>, not the<\/strong> <strong><code>.dts<\/code><\/strong> <strong>sitting in the source directory.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">DTBO: Modifying Only Part of the Hardware Configuration<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Some hardware is not installed on every device \u2014 a camera, for example. If adding one IMX219 meant copying and maintaining an entire new set of J401 Device Tree files, that would be extremely cumbersome. This is exactly the kind of problem <strong>DTBO (Device Tree Overlay)<\/strong> solves.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, Seeed&#8217;s BSP includes a camera overlay:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tegra234-p3767-camera-p3768-imx219-dual-seeed.dtbo<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">It is not a complete J401 Device Tree \u2014 it only describes the <strong>IMX219 camera-related configuration<\/strong>, such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The I2C address<\/li>\n\n\n\n<li>Reset \/ power GPIOs<\/li>\n\n\n\n<li>The CSI interface<\/li>\n\n\n\n<li>NVCSI \/ VI connection relationships<\/li>\n\n\n\n<li>The camera sensor node<\/li>\n\n\n\n<li>&#8230;<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">You can find a similar configuration in Seeed&#8217;s <code>recomputer-orin-j401.conf<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>OVERLAY_DTB_FILE+=tegra234-p3767-camera-p3768-imx219-dual-seeed.dtbo<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In other words, the base J401 hardware configuration still comes from the original DTB \u2014 only the camera-related configuration needs to be added on top.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Beyond the Device Tree: Jetson&#8217;s Earlier Board-Level Configuration<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">At this point, you should have a solid general understanding of the Device Tree, and the question from the beginning of this article should already be answered in your mind.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But have you noticed a new question?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Device Tree is the schematic written for the Linux Kernel. Combined with the boot log from the previous article \u2014 before the Linux Kernel has even started, who configures hardware such as GPIO, pinmux, and pad voltage?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The answer: <strong>the bootloader stage has its own set of board-level configuration.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So on Jetson, you cannot simply equate &#8220;carrier board adaptation&#8221; with &#8220;modifying a Kernel DTB&#8221;. The more complete relationship looks like this:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> <code>               Carrier Board\n                     \u2193\n         Actual hardware connections\n                     \u2193\n        \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n        \u2193                         \u2193\nBootloader Board Config     Kernel Device Tree\n        \u2193                         \u2193\n   MB1 \/ MB2 \/ UEFI          Linux Kernel\n        \u2193                         \u2193\nPinmux \/ Pad Voltage        USB \/ PCIe \/ Camera\n GPIO \/ Early HW             Ethernet \/ Sensor<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If you want to understand how these pieces relate, the best way is to study them directly in Seeed Studio&#8217;s <code>Linux_for_Tegra<\/code> repository.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Taking J401 as an example, flashing uses <code>recomputer-orin-j401.conf<\/code>. You can think of this file as an important &#8220;board-level configuration entry point&#8221; for the J401 \u2014 it selects the corresponding DTB based on the Jetson module SKU, for example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tegra234-j401-p3768-0000+p3767-0000-recomputer.dtb\ntegra234-j401-p3768-0000+p3767-0001-recomputer.dtb\ntegra234-j401-p3768-0000+p3767-0003-recomputer.dtb\ntegra234-j401-p3768-0000+p3767-0004-recomputer.dtb<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Notice an important piece of information here:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>The Device Tree is not only related to the carrier board \u2014 it is related to the combination of carrier board + Jetson module.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">And the <code>.conf<\/code> file contains more than just:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>DTB_FILE --&gt; The Kernel Device Tree used by Linux<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">You will also see:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PINMUX_CONFIG --&gt; Pinmux configuration\nPMC_CONFIG --&gt; Pad voltage \/ PMC-related configuration\nOVERLAY_DTB_FILE --&gt; Extra overlays for camera, display, etc.\nBPFDTB_FILE --&gt; The Device Tree used by BPMP<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">We won&#8217;t expand on the rest here \u2014 feel free to explore on your own, and you&#8217;re welcome to discuss with us in the Seeed Jetson community.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to Check Which Device Tree Linux Is Actually Using?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If the device can already boot into the desktop, you can also directly inspect the Device Tree the running system is actually using.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Export the currently running Device Tree:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dtc -I fs -O dts  \/proc\/device-tree &gt; running.dts<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then you can check the corresponding nodes directly, for example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>grep -n \"pcie\" running.dts\ngrep -n \"usb\" running.dts<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">[Image placeholder 2: A terminal screenshot showing the output of grepping the usb nodes after exporting \/proc\/device-tree]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When debugging the Device Tree, what truly matters is not only &#8220;which DTS file I modified&#8221;, but more importantly <strong>whether the system is actually running the version you modified<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wrapping Up<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Device Tree itself is not complicated \u2014 the core problem it solves is just one:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Let the software know exactly which hardware is on the carrier board, and how that hardware is connected.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">But on Jetson, carrier board adaptation is about more than just the Kernel Device Tree.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As you can see from Seeed Studio&#8217;s L4T BSP, a carrier board truly needs its own complete set of board-level configuration. This is exactly why Seeed Studio&#8217;s Jetson products need their own BSP, rather than simply reusing the configuration of NVIDIA&#8217;s Developer Kit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Thanks for reading \u2014 your feedback will directly shape the articles that follow. <\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>About the Jetson Deep Dive Series<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is an in-depth technical column on Jetson entry-level development from Seeed Studio, with a new article published every week. The series covers Jetson kernel development, boot flows, drivers, and peripheral adaptation, helping you level up from &#8220;using a Jetson&#8221; to &#8220;understanding a Jetson&#8221;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As an NVIDIA Elite Partner, Seeed Studio supports edge AI developers through every stage \u2014 from prototyping to production \u2014 with Jetson-powered hardware ready to ship, getting started from Jetson Orin Nano to the ultimate Jetson Thor modules.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Learn more about Seeed Studio reComputer NVIDIA Jetson ecosystem: <a href=\"https:\/\/www.seeedstudio.com\/tag\/nvidia.html\">https:\/\/www.seeedstudio.com\/tag\/nvidia.html<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.seeedstudio.com\/tag\/nvidia.html\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1030\" height=\"227\" src=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/image-69-1030x227.png\" alt=\"\" class=\"wp-image-134055\" srcset=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/image-69-1030x227.png 1030w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/image-69-300x66.png 300w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/image-69-766x169.png 766w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/image-69-32x7.png 32w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/image-69-1536x339.png 1536w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/image-69-2048x452.png 2048w, https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/image-69-1020x225.png 1020w\" sizes=\"(max-width: 1030px) 100vw, 1030px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>While unboxing and getting started with Jetson at the very beginning, you may always encounter<\/p>\n","protected":false},"author":3606,"featured_media":134053,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","_price":"","_stock":"","_tribe_ticket_header":"","_tribe_default_ticket_provider":"","_tribe_ticket_capacity":"0","_ticket_start_date":"","_ticket_end_date":"","_tribe_ticket_show_description":"","_tribe_ticket_show_not_going":false,"_tribe_ticket_use_global_stock":"","_tribe_ticket_global_stock_level":"","_global_stock_mode":"","_global_stock_cap":"","_tribe_rsvp_for_event":"","_tribe_ticket_going_count":"","_tribe_ticket_not_going_count":"","_tribe_tickets_list":"[]","_tribe_ticket_has_attendee_info_fields":false,"iawp_total_views":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-134019","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>NVIDIA Jetson Device Tree: Why Swapping the Carrier Board May Break Things<\/title>\n<meta name=\"description\" content=\"Swapped the Carrier Board and USB Stopped Working. How does it happen? It All Starts with the Device Tree. We&#039;ll walk through what is it, and how should we check which device tree is Linux actually using.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"NVIDIA Jetson Device Tree: Why Swapping the Carrier Board May Break Things\" \/>\n<meta property=\"og:description\" content=\"Swapped the Carrier Board and USB Stopped Working. How does it happen? It All Starts with the Device Tree. We&#039;ll walk through what is it, and how should we check which device tree is Linux actually using.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/\" \/>\n<meta property=\"og:site_name\" content=\"Latest News from Seeed Studio\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-30T02:13:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-30T02:31:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1734\" \/>\n\t<meta property=\"og:image:height\" content=\"907\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jennie Wang\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jennie Wang\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/\",\"name\":\"NVIDIA Jetson Device Tree: Why Swapping the Carrier Board May Break Things\",\"isPartOf\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587.png\",\"datePublished\":\"2026-09-30T02:13:38+00:00\",\"dateModified\":\"2026-09-30T02:31:25+00:00\",\"author\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/21041ae3908bbb4d44533f2b3b115fd1\"},\"description\":\"Swapped the Carrier Board and USB Stopped Working. How does it happen? It All Starts with the Device Tree. We'll walk through what is it, and how should we check which device tree is Linux actually using.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/#primaryimage\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587.png\",\"contentUrl\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587.png\",\"width\":1734,\"height\":907},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.seeedstudio.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"NVIDIA Jetson Device Tree: Why Swapping the Carrier Board May Break Things\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#website\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/\",\"name\":\"Latest News from Seeed Studio\",\"description\":\"Emerging IoT, AI and Autonomous Applications on the Edge\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.seeedstudio.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/21041ae3908bbb4d44533f2b3b115fd1\",\"name\":\"Jennie Wang\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b3373e21b5acc52b5ecd780bdf6c2da9781422139b3675f2f1812b5a681b26e9?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b3373e21b5acc52b5ecd780bdf6c2da9781422139b3675f2f1812b5a681b26e9?s=96&r=g\",\"caption\":\"Jennie Wang\"},\"description\":\"Seeed Studio AIoT Marketing and Partnership Always coffee always alive \u2615\ufe0f\",\"sameAs\":[\"www.linkedin.com\/in\/jialinwang1215\"],\"url\":\"https:\/\/www.seeedstudio.com\/blog\/author\/jennie-wang\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"NVIDIA Jetson Device Tree: Why Swapping the Carrier Board May Break Things","description":"Swapped the Carrier Board and USB Stopped Working. How does it happen? It All Starts with the Device Tree. We'll walk through what is it, and how should we check which device tree is Linux actually using.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/","og_locale":"en_US","og_type":"article","og_title":"NVIDIA Jetson Device Tree: Why Swapping the Carrier Board May Break Things","og_description":"Swapped the Carrier Board and USB Stopped Working. How does it happen? It All Starts with the Device Tree. We'll walk through what is it, and how should we check which device tree is Linux actually using.","og_url":"https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/","og_site_name":"Latest News from Seeed Studio","article_published_time":"2026-09-30T02:13:38+00:00","article_modified_time":"2026-09-30T02:31:25+00:00","og_image":[{"width":1734,"height":907,"url":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587.png","type":"image\/png"}],"author":"Jennie Wang","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jennie Wang","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/","url":"https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/","name":"NVIDIA Jetson Device Tree: Why Swapping the Carrier Board May Break Things","isPartOf":{"@id":"https:\/\/www.seeedstudio.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/#primaryimage"},"image":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/#primaryimage"},"thumbnailUrl":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587.png","datePublished":"2026-09-30T02:13:38+00:00","dateModified":"2026-09-30T02:31:25+00:00","author":{"@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/21041ae3908bbb4d44533f2b3b115fd1"},"description":"Swapped the Carrier Board and USB Stopped Working. How does it happen? It All Starts with the Device Tree. We'll walk through what is it, and how should we check which device tree is Linux actually using.","breadcrumb":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/#primaryimage","url":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587.png","contentUrl":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587.png","width":1734,"height":907},{"@type":"BreadcrumbList","@id":"https:\/\/www.seeedstudio.com\/blog\/2026\/09\/30\/nvidia-jetson-device-tree-why-swapping-the-carrier-board-may-break-things\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.seeedstudio.com\/blog\/"},{"@type":"ListItem","position":2,"name":"NVIDIA Jetson Device Tree: Why Swapping the Carrier Board May Break Things"}]},{"@type":"WebSite","@id":"https:\/\/www.seeedstudio.com\/blog\/#website","url":"https:\/\/www.seeedstudio.com\/blog\/","name":"Latest News from Seeed Studio","description":"Emerging IoT, AI and Autonomous Applications on the Edge","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.seeedstudio.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/21041ae3908bbb4d44533f2b3b115fd1","name":"Jennie Wang","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b3373e21b5acc52b5ecd780bdf6c2da9781422139b3675f2f1812b5a681b26e9?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b3373e21b5acc52b5ecd780bdf6c2da9781422139b3675f2f1812b5a681b26e9?s=96&r=g","caption":"Jennie Wang"},"description":"Seeed Studio AIoT Marketing and Partnership Always coffee always alive \u2615\ufe0f","sameAs":["www.linkedin.com\/in\/jialinwang1215"],"url":"https:\/\/www.seeedstudio.com\/blog\/author\/jennie-wang\/"}]}},"modified_by":"Jennie Wang","views":18,"featured_image_urls":{"full":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587.png",1734,907,false],"thumbnail":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587-80x80.png",80,80,true],"medium":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587-300x157.png",300,157,true],"medium_large":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587-768x402.png",640,335,true],"large":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587-1030x539.png",640,335,true],"1536x1536":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587-1536x803.png",1536,803,true],"2048x2048":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587.png",1734,907,false],"visody_icon":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587-32x17.png",32,17,true],"magazine-7-slider-full":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587-1536x907.png",1536,907,true],"magazine-7-slider-center":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587-936x897.png",936,897,true],"magazine-7-featured":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587-1024x536.png",1024,536,true],"magazine-7-medium":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587-720x380.png",720,380,true],"magazine-7-medium-square":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2026\/09\/\u6709\u6c5f\u5b66\u957f\u7b2c\u4e09\u8bfe\u82f1\u6587-675x450.png",675,450,true]},"author_info":{"display_name":"Jennie Wang","author_link":"https:\/\/www.seeedstudio.com\/blog\/author\/jennie-wang\/"},"category_info":"<a href=\"https:\/\/www.seeedstudio.com\/blog\/category\/news\/\" rel=\"category tag\">News<\/a>","tag_info":"News","comment_count":"0","_links":{"self":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/134019","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/users\/3606"}],"replies":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/comments?post=134019"}],"version-history":[{"count":4,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/134019\/revisions"}],"predecessor-version":[{"id":134058,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/134019\/revisions\/134058"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/media\/134053"}],"wp:attachment":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/media?parent=134019"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/categories?post=134019"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/tags?post=134019"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}