{"id":20782,"date":"2024-05-07T15:34:36","date_gmt":"2024-05-07T13:34:36","guid":{"rendered":"https:\/\/chochol.io\/smart-home\/raspberry-pi-5-installation-and-configuration-of-nvme-drive\/"},"modified":"2025-08-23T19:56:13","modified_gmt":"2025-08-23T17:56:13","slug":"raspberry-pi-5-installation-and-configuration-of-nvme-drive","status":"publish","type":"post","link":"https:\/\/chochol.io\/en\/hardware\/raspberry-pi-5-installation-and-configuration-of-nvme-drive\/","title":{"rendered":"Raspberry Pi 5: Installation and configuration of NVMe drive"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"20782\" class=\"elementor elementor-20782 elementor-20745\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1678015 e-flex e-con-boxed e-con e-parent\" data-id=\"1678015\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cddccb9 elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents\" data-id=\"cddccb9\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;exclude_headings_by_selector&quot;:[],&quot;no_headings_message&quot;:&quot;No headings were found on this page.&quot;,&quot;headings_by_tags&quot;:[&quot;h2&quot;,&quot;h3&quot;,&quot;h4&quot;,&quot;h5&quot;,&quot;h6&quot;],&quot;marker_view&quot;:&quot;numbers&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"table-of-contents.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-toc__header\">\r\n\t\t\t\t\t\t<div class=\"elementor-toc__header-title\">\r\n\t\t\t\tTable of Contents\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--expand\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__cddccb9\" aria-expanded=\"true\" aria-label=\"Open table of contents\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-down\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"><\/path><\/svg><\/div>\r\n\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--collapse\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__cddccb9\" aria-expanded=\"true\" aria-label=\"Close table of contents\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-up\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"><\/path><\/svg><\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<div id=\"elementor-toc__cddccb9\" class=\"elementor-toc__body\">\r\n\t\t\t<div class=\"elementor-toc__spinner-container\">\r\n\t\t\t\t<svg class=\"elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading\" aria-hidden=\"true\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z\"><\/path><\/svg>\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ab7f385 elementor-widget elementor-widget-text-editor\" data-id=\"ab7f385\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Hello!<\/h2><p>In today\u2019s article, I\u2019ll give you a practical guide on how to connect and configure an NVMe drive with your new Raspberry Pi.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ad9a28d e-flex e-con-boxed e-con e-parent\" data-id=\"ad9a28d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-65b4abb elementor-widget elementor-widget-text-editor\" data-id=\"65b4abb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>What is a Raspberry Pi?<\/h2><p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignleft size-full wp-image-20753\" src=\"https:\/\/chochol.io\/wp-content\/uploads\/2024\/04\/Projekt-bez-nazwy-3.png\" alt=\"Raspberry Pi, Logo\" width=\"250\" height=\"250\" srcset=\"https:\/\/chochol.io\/wp-content\/uploads\/2024\/04\/Projekt-bez-nazwy-3.png 250w, https:\/\/chochol.io\/wp-content\/uploads\/2024\/04\/Projekt-bez-nazwy-3-150x150.png 150w, https:\/\/chochol.io\/wp-content\/uploads\/2024\/04\/Projekt-bez-nazwy-3-60x60.png 60w\" sizes=\"(max-width: 250px) 100vw, 250px\" \/><\/p><p><strong>Raspberry Pi<\/strong> is a family of single-board computers (SBCs) created by the Raspberry Pi Foundation, a non-profit organization based in the United Kingdom. The first Raspberry Pi model appeared on the market in 2012. Since then, the series has continued to evolve, delivering newer and more advanced capabilities at an affordable price.<\/p><p>The Raspberry Pi is used for a variety of purposes, from educational to hobbyist to professional, as an inexpensive and compact computer. It takes the form of a small board with a built-in processor, RAM, input\/output (GPIO) ports, USB ports, an Ethernet port, and often with built-in Wi-Fi and Bluetooth modules.<\/p><p>Although the Raspberry Pi is not equivalent to traditional desktop computers in terms of performance, it offers enough computing power for a wide range of applications, such as learning programming, creating IoT (Internet of Things) projects, home servers, monitoring systems and more.<\/p><p>All Raspberry Pi models run on open-source software, usually based on a Linux operating system such as Raspberry Pi OS (formerly known as Raspbian), although other operating systems such as Windows 10 IoT Core can also be run on them. Thanks to its popularity, the Raspberry Pi has become an essential tool for hobbyists, students, developers and even some professionals in various fields of computer science and electronics.<\/p><h3>New generation of Raspberry Pi<\/h3><p><strong>Raspberry Pi 5<\/strong> is the next release in the popular series of single-board computers. Compared to the <strong>Raspberry Pi 4B<\/strong>, it makes some significant changes:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-419f8f6 e-grid e-con-boxed e-con e-parent\" data-id=\"419f8f6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4e751d1 elementor-widget elementor-widget-image\" data-id=\"4e751d1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"600\" height=\"436\" src=\"https:\/\/chochol.io\/wp-content\/uploads\/2024\/04\/143250767.webp\" class=\"attachment-large size-large wp-image-20752\" alt=\"Raspberry Pi 5 single-board computer with HDMI ports, USB, Ethernet, GPIO header, and cooling heatsink\" srcset=\"https:\/\/chochol.io\/wp-content\/uploads\/2024\/04\/143250767.webp 600w, https:\/\/chochol.io\/wp-content\/uploads\/2024\/04\/143250767-300x218.webp 300w, https:\/\/chochol.io\/wp-content\/uploads\/2024\/04\/143250767-110x80.webp 110w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d0f079a elementor-widget elementor-widget-text-editor\" data-id=\"d0f079a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul>\n<li><strong>CPU: <\/strong> The Raspberry Pi 5 uses a <strong>Broadcom BCM2712<\/strong> processor with four <strong>Arm Cortex-A76<\/strong> cores clocked at <strong>2.4 GHz<\/strong>. This means higher performance compared to the previous version.<\/li>\n<li><strong>RAM: <\/strong> <strong>4GB <\/strong> and <strong>8GB<\/strong> <strong>LPDDR4X-4267 SDRAM<\/strong> variants are available. <\/li>\n<li><strong>Video output:<\/strong> Raspberry Pi 5 supports <strong>two 4Kp60 HDMI displays <\/strong> with <strong>HDR<\/strong> support. This is a significant step forward in image quality.<\/li>\n<li><strong>USB ports: <\/strong> the new version has <strong>two USB 3.0 ports<\/strong>, which enable simultaneous operation at <strong>5 Gbps<\/strong>. This makes it easy to connect additional devices.<\/li>\n<li><strong>Wi-Fi and Bluetooth: <\/strong> The Raspberry Pi 5 supports <strong>dual-band Wi-Fi 802.11ac<\/strong> and <strong>Bluetooth 5.0 \/ Bluetooth Low Energy (BLE)<\/strong>. <\/li>\n<li><strong>PCIe: <\/strong> The Raspberry Pi 5 has a <strong>PCI Express (PCIe) interface<\/strong> that allows the connection of additional devices such as <strong>NVMe drives<\/strong>. This allows you to use a high-performance NVMe drive in your project.<\/li>\n<li><strong>Other features: <\/strong> Supports <strong>microSD <\/strong> card in <strong>SDR104 <\/strong> mode, has a standard <strong>40-pin connector<\/strong>, a real-time clock (RTC) powered by an external battery, and a power button.<\/li>\n<\/ul>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-60183e2 e-flex e-con-boxed e-con e-parent\" data-id=\"60183e2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-13c7c6d elementor-widget elementor-widget-text-editor\" data-id=\"13c7c6d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2>Preparation<\/h2><p>Before diving into adapting the system, it\u2019s a good idea to prepare properly. Poni\u017cej znajduj\u0105 si\u0119 kluczowe kroki do rozpocz\u0119cia projektu. Upewnij si\u0119, \u017ce masz wszystkie niezb\u0119dne materia\u0142y:<\/p><ul><li>Raspberry Pi 5 (<a href=\"https:\/\/amzn.to\/3w9suR0\" target=\"_blank\" rel=\"noopener\">Link to store<\/a>),<\/li><li>An attachment for the Raspberry Pi HAT, allowing the installation of an NVMe drive (<a href=\"https:\/\/amzn.to\/4aWMqFV\" target=\"_blank\" rel=\"noopener\">Link to store<\/a>),<\/li><li>Original power supply for Raspberry Pi 27W USB-C (<a href=\"https:\/\/amzn.to\/3Uz3CeL\" target=\"_blank\" rel=\"noopener\">Link to store<\/a>) or if you intend to power via PoE \u2013 Waveshare PoE HAT Compatible (<a href=\"https:\/\/amzn.to\/3w8E1Aa\" target=\"_blank\" rel=\"noopener\">Link to store<\/a>),<\/li><li>(optional) MicroSD memory card \u2013 for EEPROM changes in Raspberry Pi.<\/li><\/ul><h3>Compatibility of HAT+ vs non-HAT+ add-ons<\/h3><p>The Raspberry Pi 5 has an FPC connector located on the board. This connector allows you to use the PCIe Gen 2.0 \u00d71 interface to quickly connect peripheral devices.<\/p><p>To connect a PCIe HAT+ device, simply plug it into the Raspberry Pi. The accessory should be automatically detected by the Raspberry Pi. As for non-HAT+ devices, you must first connect them to the Raspberry Pi and then manually enable PCIe interface support.<\/p><p>The NVMe drive attachment is not an original addition from the Raspberry Pi Foundation, so we will have to manually enable support for the PCIe interface. Without this, the board will not detect our disk.<\/p><h2>Step 1 \u2013 Installing the Raspberry Pi OS on a microSD card<\/h2><p>For the purposes of the tutorial, we will use the Raspberry Pi OS Lite operating system, which has no desktop environment. On the other hand, we will give it commands over SSH.<\/p><p>For Microsoft Windows operating system I recommend <a href=\"https:\/\/www.putty.org\/\" target=\"_blank\" rel=\"noopener\">PuTTY<\/a>, while for Apple macOS operating systems I recommend <a href=\"https:\/\/termius.com\/\" target=\"_blank\" rel=\"noopener\">Termius<\/a>.<\/p><ul><li>Use the <a href=\"https:\/\/chat.openai.com\/c\/link\" target=\"_new\" rel=\"noopener\">official installer<\/a> to install Raspberry Pi OS Lite on your device.<\/li><\/ul><h3>Raspberry Pi Imager<\/h3><ul><li>Raspberry Pi Device: Select <strong>Raspberry Pi 5<\/strong>,<\/li><li>Operating System: Select R<strong>aspberry Pi OS<\/strong> (other) and then <strong>Raspberry Pi OS Lite (64-bit)<\/strong>,<\/li><li>Storage: select your <strong>storage media<\/strong> that you have connected to your computer,<\/li><li>Then click <strong>Next<\/strong>,<ul><li>When the <strong>Use OS customization<\/strong> information prompt appears, click <strong>Edit settings<\/strong>,<\/li><li>For macOS computers \u2013 When you see the next prompt stating <em>Would you like to prefill the wifi password from the system keychain<\/em>, select <strong>No<\/strong>.<\/li><li>When the operating system customization window opens, go to the <strong>General<\/strong> tab and complete it with the following parameters:<ul><li>Check <strong>Set hostname<\/strong> and type: rpi01<\/li><li>Check <strong>Set username and password<\/strong> and type:<ul><li>Username: <strong>pi<\/strong><\/li><li>Password: <strong>Set your own password<\/strong><\/li><\/ul><\/li><\/ul><\/li><li>Go to the next <strong>Services<\/strong> tab and check <strong>Enable SSH<\/strong>, leaving <strong>Use password authentication<\/strong>.<\/li><li>To save your settings, click <strong>Save<\/strong>.<\/li><li>Then return to the previous <strong>Use OS customization<\/strong> window and click <strong>Yes<\/strong> to apply the modifications you made.<\/li><li>A warning window will pop up informing you that all the data on the memory card will be erased permanently. Confirm this action. At this point, the Imager tool will format the card and install the operating system on it with the modifications made.<\/li><li>Once the installation process is complete, insert the memory card into the Raspberry Pi. Then connect them to the power supply and to the router or switch using a network cable terminated with an RJ45 connector.<\/li><\/ul><\/li><\/ul><h2>Step 2 \u2013 Edit BOOT_ORDER for NVMe drive booting<\/h2><p>For the Raspberry Pi 5, you can specify whether to boot from USB or the network if a microSD card is not inserted. This is what the <strong>startup order<\/strong> is responsible for. This allows you to customize which source you want the system to run from. For example, if you have an NVMe drive connected, you want the system to first try to boot from that drive and only then from other sources, such as a microSD card.<\/p><p>The <strong>BOOT_ORDER<\/strong> line determines the order in which the devices are booted. The value <strong>0xf416<\/strong> means that the Raspberry Pi 5 will first try to boot from the NVMe drive (if connected), and only then from other sources (such as a microSD card). It\u2019s crucial that the operating system on the NVMe drive be the first choice at startup.<\/p><ul><li>Run <strong>Putty<\/strong> (Windows OS) or <strong>Termius<\/strong> (macOS), then connect to your device over SSH,<\/li><li><strong>Enter the command:<\/strong><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9306a84 elementor-widget elementor-widget-mdp-coder-elementor\" data-id=\"9306a84\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"mdp-coder-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <!-- Start Coder for Elementor WordPress Plugin -->\n        <div\n            id=\"mdp-coder-9306a84\"\n            class=\"mdp-coder-elementor-box\"\n            data-theme=\"mdp-theme-material-dark\"\n            data-dark-theme=\"mdp-theme-material-dark\"\n        >\n            \n                <pre class=\"language-bash line-numbers\"data-previewers=\"\"><code>sudo rpi-eeprom-config --edit<\/code><\/pre>\n                    <\/div>\n                <script>\n            \"use strict\";\n\n            \/** Handler when the DOM is fully loaded. *\/\n            let callback_9306a84 = function() {\n\n                \/** Set theme for coder widget. *\/\n                function setTheme() {\n\n                    \/** Foreach Code Widget. *\/\n                    let coderBoxes = document.querySelectorAll( '.mdp-coder-elementor-box' );\n\n                    for ( let coderBox of coderBoxes ) {\n\n                        let lightTheme = coderBox.dataset.theme;\n                        let darkTheme = coderBox.dataset.darkTheme;\n\n                        coderBox.className = '';\n                        if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + darkTheme;\n\n                        } else {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + lightTheme;\n\n                        }\n\n                    }\n\n                }\n                setTheme();\n\n\n                \/** Watch for changes color-scheme. *\/\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener( function() {\n                    setTheme();\n                } );\n\n                \n                if ( typeof Prism !== 'undefined' ) {\n\n                    Prism.plugins.autoloader.languages_path = 'https:\/\/chochol.io\/wp-content\/plugins\/coder-elementor\/js\/prism\/components\/';\n                    Prism.highlightAll();\n                    Prism.fileHighlight();\n\n                }\n\n                \n            };\n\n            if (\n                document.readyState === \"complete\" ||\n                ( document.readyState !== \"loading\" && !document.documentElement.doScroll )\n            ) {\n                callback_9306a84();\n            } else {\n                document.addEventListener( \"DOMContentLoaded\", callback_9306a84 );\n            }\n\n        <\/script>\n                <!-- End Coder for Elementor WordPress Plugin -->\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a6bbd3a elementor-widget elementor-widget-text-editor\" data-id=\"a6bbd3a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul>\n<li>In the configuration file, find the <strong> BOOT_ORDER<\/strong> line, change it to:<\/li>\n<\/ul>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-078e558 elementor-widget elementor-widget-mdp-coder-elementor\" data-id=\"078e558\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"mdp-coder-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <!-- Start Coder for Elementor WordPress Plugin -->\n        <div\n            id=\"mdp-coder-078e558\"\n            class=\"mdp-coder-elementor-box\"\n            data-theme=\"mdp-theme-material-dark\"\n            data-dark-theme=\"mdp-theme-material-dark\"\n        >\n            \n                <pre class=\"language-bash line-numbers\"data-previewers=\"\"><code>BOOT_ORDER=0xf416<\/code><\/pre>\n                    <\/div>\n                <script>\n            \"use strict\";\n\n            \/** Handler when the DOM is fully loaded. *\/\n            let callback_078e558 = function() {\n\n                \/** Set theme for coder widget. *\/\n                function setTheme() {\n\n                    \/** Foreach Code Widget. *\/\n                    let coderBoxes = document.querySelectorAll( '.mdp-coder-elementor-box' );\n\n                    for ( let coderBox of coderBoxes ) {\n\n                        let lightTheme = coderBox.dataset.theme;\n                        let darkTheme = coderBox.dataset.darkTheme;\n\n                        coderBox.className = '';\n                        if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + darkTheme;\n\n                        } else {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + lightTheme;\n\n                        }\n\n                    }\n\n                }\n                setTheme();\n\n\n                \/** Watch for changes color-scheme. *\/\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener( function() {\n                    setTheme();\n                } );\n\n                \n                if ( typeof Prism !== 'undefined' ) {\n\n                    Prism.plugins.autoloader.languages_path = 'https:\/\/chochol.io\/wp-content\/plugins\/coder-elementor\/js\/prism\/components\/';\n                    Prism.highlightAll();\n                    Prism.fileHighlight();\n\n                }\n\n                \n            };\n\n            if (\n                document.readyState === \"complete\" ||\n                ( document.readyState !== \"loading\" && !document.documentElement.doScroll )\n            ) {\n                callback_078e558();\n            } else {\n                document.addEventListener( \"DOMContentLoaded\", callback_078e558 );\n            }\n\n        <\/script>\n                <!-- End Coder for Elementor WordPress Plugin -->\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c07a17d elementor-widget elementor-widget-text-editor\" data-id=\"c07a17d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>If you are using a <strong>non-HAT+ adapter<\/strong> (that is, not an official HAT protocol-compliant adapter), adding the <strong>PCIE_PROBE=1<\/strong> line will allow you to manually enable PCIe port support. This option is needed only when using unofficial adapters.<\/p>\n<ul>\n<li><strong>Add the following line:<\/strong><\/li>\n<\/ul>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-20331e6 elementor-widget elementor-widget-mdp-coder-elementor\" data-id=\"20331e6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"mdp-coder-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <!-- Start Coder for Elementor WordPress Plugin -->\n        <div\n            id=\"mdp-coder-20331e6\"\n            class=\"mdp-coder-elementor-box\"\n            data-theme=\"mdp-theme-material-dark\"\n            data-dark-theme=\"mdp-theme-material-dark\"\n        >\n            \n                <pre class=\"language-bash line-numbers\"data-previewers=\"\"><code>PCIE_PROBE=1<\/code><\/pre>\n                    <\/div>\n                <script>\n            \"use strict\";\n\n            \/** Handler when the DOM is fully loaded. *\/\n            let callback_20331e6 = function() {\n\n                \/** Set theme for coder widget. *\/\n                function setTheme() {\n\n                    \/** Foreach Code Widget. *\/\n                    let coderBoxes = document.querySelectorAll( '.mdp-coder-elementor-box' );\n\n                    for ( let coderBox of coderBoxes ) {\n\n                        let lightTheme = coderBox.dataset.theme;\n                        let darkTheme = coderBox.dataset.darkTheme;\n\n                        coderBox.className = '';\n                        if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + darkTheme;\n\n                        } else {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + lightTheme;\n\n                        }\n\n                    }\n\n                }\n                setTheme();\n\n\n                \/** Watch for changes color-scheme. *\/\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener( function() {\n                    setTheme();\n                } );\n\n                \n                if ( typeof Prism !== 'undefined' ) {\n\n                    Prism.plugins.autoloader.languages_path = 'https:\/\/chochol.io\/wp-content\/plugins\/coder-elementor\/js\/prism\/components\/';\n                    Prism.highlightAll();\n                    Prism.fileHighlight();\n\n                }\n\n                \n            };\n\n            if (\n                document.readyState === \"complete\" ||\n                ( document.readyState !== \"loading\" && !document.documentElement.doScroll )\n            ) {\n                callback_20331e6();\n            } else {\n                document.addEventListener( \"DOMContentLoaded\", callback_20331e6 );\n            }\n\n        <\/script>\n                <!-- End Coder for Elementor WordPress Plugin -->\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0ba5bda elementor-widget elementor-widget-text-editor\" data-id=\"0ba5bda\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li>After editing, <strong>save the changes<\/strong> to the configuration file by clicking <strong>Ctrl + O<\/strong> (to save the changes to the file) and then <strong>Ctrl + X<\/strong> (to exit the editor),<\/li><li>Then <strong>restart the Raspberry Pi 5<\/strong> so that the new settings are applied.<\/li><\/ul><h2>Step 3 \u2013 Installing the Raspberry Pi OS on an NVMe drive<\/h2><p>After setting the boot priority on the Raspberry Pi, we proceed to install the Raspberry Pi OS on the NVMe drive.<\/p><ul><li><strong>Connect an NVMe<\/strong> drive using an adapter\/disk enclosure. For my own needs, I use Unitek on USB-C.<\/li><li><strong>Select a system to install <\/strong> on the disk using Raspberry Pi Imager,<\/li><li><strong>Select the target NVMe drive<\/strong> on which to install the system.<\/li><li><strong>Click Write<\/strong> (or change necessary parameters by the way, e.g. SSH\/Locale, etc.).<\/li><li><strong>When you install the operating system on the NVMe drive, do not install it immediately in the Raspberry Pi.<\/strong> It is still necessary to adjust the parameters in the config.txt file on the NVMe drive to activate the PCIe interface.<\/li><\/ul><h2>Step 4 \u2013 Edit config.txt on the NVMe drive<\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a895056 elementor-alert-info elementor-widget elementor-widget-alert\" data-id=\"a895056\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"alert.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-alert\" role=\"alert\">\n\n\t\t\t\t\t\t<span class=\"elementor-alert-title\">Reminder<\/span>\n\t\t\t\n\t\t\t\t\t\t<span class=\"elementor-alert-description\">Using a HAT+-compatible NVMe adapter (such as the official NVMe adapter from Raspberry Pi), you don't need to enable the external PCIe port - it will be automatically activated. However, you can still force PCIe Gen 3 speeds using the options below.<\/span>\n\t\t\t\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-42c7c8f elementor-widget elementor-widget-text-editor\" data-id=\"42c7c8f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>To boot the Raspberry Pi 5 from an NVMe drive, it is necessary to add the appropriate parameter to the <strong>config.txt <\/strong> file, located on the system partition on the NVMe drive. However, editing this file can be a challenge, as Windows and macOS do not support the ext4 partition, used on most Linux-based systems, by default. Below you will find the steps to take:<\/p>\n<ul>\n<li><strong>Reconnect the NVMe drive<\/strong> (if it has been disconnected) using a USB adapter to the computer,<\/li>\n<li><strong>Install ext4 partition utility<\/strong>\n<ul>\n<li>If you are using Windows, you can install the <a href=\"https:\/\/sourceforge.net\/projects\/ext2read\/\" target=\"_blank\" rel=\"noopener\">Ext2Read<\/a> tool,<\/li>\n<li>If you are using macOS, install the <a href=\"https:\/\/paragon-software.pl\/dla-domu\/extfs-mac\" target=\"_blank\" rel=\"noopener\">extFS for Mac tool from Paragon Software<\/a> (I personally use it for other applications as well and am very satisfied),<\/li>\n<\/ul>\n<\/li>\n<li><strong>Read the config.txt file<\/strong>\n<ul>\n<li><strong>Open the ext4 partition <\/strong> on the NVMe drive using the tools mentioned above,<\/li>\n<li><strong>Go to the \/boot\/firmware folder <\/strong> and open the config.txt file located there,<\/li>\n<li><strong>Add the parameter described below:<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-49ad6f8 elementor-widget elementor-widget-mdp-coder-elementor\" data-id=\"49ad6f8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"mdp-coder-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <!-- Start Coder for Elementor WordPress Plugin -->\n        <div\n            id=\"mdp-coder-49ad6f8\"\n            class=\"mdp-coder-elementor-box\"\n            data-theme=\"mdp-theme-material-dark\"\n            data-dark-theme=\"mdp-theme-material-dark\"\n        >\n            \n                <pre class=\"language-bash line-numbers\"data-previewers=\"\"><code>#  Add to the bottom of the \/boot\/firmware\/config.txt file\ndtparam=nvme<\/code><\/pre>\n                    <\/div>\n                <script>\n            \"use strict\";\n\n            \/** Handler when the DOM is fully loaded. *\/\n            let callback_49ad6f8 = function() {\n\n                \/** Set theme for coder widget. *\/\n                function setTheme() {\n\n                    \/** Foreach Code Widget. *\/\n                    let coderBoxes = document.querySelectorAll( '.mdp-coder-elementor-box' );\n\n                    for ( let coderBox of coderBoxes ) {\n\n                        let lightTheme = coderBox.dataset.theme;\n                        let darkTheme = coderBox.dataset.darkTheme;\n\n                        coderBox.className = '';\n                        if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + darkTheme;\n\n                        } else {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + lightTheme;\n\n                        }\n\n                    }\n\n                }\n                setTheme();\n\n\n                \/** Watch for changes color-scheme. *\/\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener( function() {\n                    setTheme();\n                } );\n\n                \n                if ( typeof Prism !== 'undefined' ) {\n\n                    Prism.plugins.autoloader.languages_path = 'https:\/\/chochol.io\/wp-content\/plugins\/coder-elementor\/js\/prism\/components\/';\n                    Prism.highlightAll();\n                    Prism.fileHighlight();\n\n                }\n\n                \n            };\n\n            if (\n                document.readyState === \"complete\" ||\n                ( document.readyState !== \"loading\" && !document.documentElement.doScroll )\n            ) {\n                callback_49ad6f8();\n            } else {\n                document.addEventListener( \"DOMContentLoaded\", callback_49ad6f8 );\n            }\n\n        <\/script>\n                <!-- End Coder for Elementor WordPress Plugin -->\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-89593bf elementor-widget elementor-widget-text-editor\" data-id=\"89593bf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li>After adding this parameter, save the changes and remove the NVMe drive from the computer. Now you can connect the drive to the Raspberry Pi 5 and boot the system with the new settings.<\/li><\/ul><h3>PCIe Gen 3.0<\/h3><p>The Raspberry Pi 5 has five active PCI Express lines: four are dedicated to the new RP1 chip, supporting various interfaces such as USB, Ethernet, MIPI cameras, displays and GPIO, and one is dedicated to an external PCIe connector. By default, all PCIe lines operate in Gen 2.0 mode, achieving about 5 GT\/s per line.<\/p><p>However, it is possible to force Gen 3.0 mode, reaching about 8 GT\/s, which is almost twice as fast. To achieve this, add the following lines to the \/boot\/firmware\/config.txt file:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7c04a8d elementor-widget elementor-widget-mdp-coder-elementor\" data-id=\"7c04a8d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"mdp-coder-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <!-- Start Coder for Elementor WordPress Plugin -->\n        <div\n            id=\"mdp-coder-7c04a8d\"\n            class=\"mdp-coder-elementor-box\"\n            data-theme=\"mdp-theme-material-dark\"\n            data-dark-theme=\"mdp-theme-material-dark\"\n        >\n            \n                <pre class=\"language-bash line-numbers\"data-previewers=\"\"><code># Optionally, you can force a change in PCIe bus speed with the command below\ndtparam=pciex1_gen=3<\/code><\/pre>\n                    <\/div>\n                <script>\n            \"use strict\";\n\n            \/** Handler when the DOM is fully loaded. *\/\n            let callback_7c04a8d = function() {\n\n                \/** Set theme for coder widget. *\/\n                function setTheme() {\n\n                    \/** Foreach Code Widget. *\/\n                    let coderBoxes = document.querySelectorAll( '.mdp-coder-elementor-box' );\n\n                    for ( let coderBox of coderBoxes ) {\n\n                        let lightTheme = coderBox.dataset.theme;\n                        let darkTheme = coderBox.dataset.darkTheme;\n\n                        coderBox.className = '';\n                        if ( window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches ) {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + darkTheme;\n\n                        } else {\n\n                            coderBox.className = 'mdp-coder-elementor-box ' + lightTheme;\n\n                        }\n\n                    }\n\n                }\n                setTheme();\n\n\n                \/** Watch for changes color-scheme. *\/\n                window.matchMedia(\"(prefers-color-scheme: dark)\").addListener( function() {\n                    setTheme();\n                } );\n\n                \n                if ( typeof Prism !== 'undefined' ) {\n\n                    Prism.plugins.autoloader.languages_path = 'https:\/\/chochol.io\/wp-content\/plugins\/coder-elementor\/js\/prism\/components\/';\n                    Prism.highlightAll();\n                    Prism.fileHighlight();\n\n                }\n\n                \n            };\n\n            if (\n                document.readyState === \"complete\" ||\n                ( document.readyState !== \"loading\" && !document.documentElement.doScroll )\n            ) {\n                callback_7c04a8d();\n            } else {\n                document.addEventListener( \"DOMContentLoaded\", callback_7c04a8d );\n            }\n\n        <\/script>\n                <!-- End Coder for Elementor WordPress Plugin -->\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6e2cc29 elementor-widget elementor-widget-text-editor\" data-id=\"6e2cc29\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>After making these changes, <strong>save the file<\/strong>. The new settings will be included, and the Raspberry Pi 5 will operate in PCIe Gen 3.0 mode.<\/p><p>It\u2019s worth noting that while some devices can significantly benefit from Gen 3.0 speeds, such as high-speed network cards and NVMe SSDs, others may encounter problems due to signal interference or other factors. Therefore, it is recommended to experiment with different configurations to achieve optimal performance depending on your specific use case!<\/p><h2>Step 5 \u2013 Installing the adapter and connecting the NVMe drive<\/h2><p>Now it\u2019s time to mount the NVMe adapter on the Raspberry Pi 5 and connect the NVMe drive. Below are the steps you should follow:<\/p><ul><li><strong>PCIe NVMe adapter installation<\/strong><ul><li>Install the adapter according to the instructions provided by the manufacturer. Connect the cable to the FPC connector, which is responsible for communication over PCIe, making sure that it is properly seated.<\/li><\/ul><\/li><li><strong>Install the disk on the board<\/strong><ul><li>Gently tighten the locking screw to prevent the disk from falling out.<\/li><\/ul><\/li><li><strong>Start the board<\/strong><ul><li>Turn on the Raspberry Pi 5 and watch to see if the NVMe drive is detected.<\/li><\/ul><\/li><li><strong>Done!<\/strong> \ud83d\ude80<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fb76ca3 elementor-widget elementor-widget-gallery\" data-id=\"fb76ca3\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;columns&quot;:2,&quot;lazyload&quot;:&quot;yes&quot;,&quot;gallery_layout&quot;:&quot;grid&quot;,&quot;columns_tablet&quot;:2,&quot;columns_mobile&quot;:1,&quot;gap&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;gap_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;gap_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;link_to&quot;:&quot;file&quot;,&quot;aspect_ratio&quot;:&quot;3:2&quot;,&quot;overlay_background&quot;:&quot;yes&quot;,&quot;content_hover_animation&quot;:&quot;fade-in&quot;}\" data-widget_type=\"gallery.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-gallery__container\">\r\n\t\t\t\t\t\t\t<a class=\"e-gallery-item elementor-gallery-item elementor-animated-content\" href=\"https:\/\/chochol.io\/wp-content\/uploads\/2024\/05\/E4796D7D-26FB-4FD1-9A4C-4BB2A10897CA_1_105_c.jpeg\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"fb76ca3\" data-elementor-lightbox-title=\"Raspberry Pi 5, adapter non-HAT+ do NVMe\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjA3NzAsInVybCI6Imh0dHBzOlwvXC9jaG9jaG9sLmlvXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wNVwvRTQ3OTZEN0QtMjZGQi00RkQxLTlBNEMtNEJCMkExMDg5N0NBXzFfMTA1X2MuanBlZyIsInNsaWRlc2hvdyI6ImZiNzZjYTMifQ%3D%3D\">\r\n\t\t\t\t\t<div class=\"e-gallery-image elementor-gallery-item__image\" data-thumbnail=\"https:\/\/chochol.io\/wp-content\/uploads\/2024\/05\/E4796D7D-26FB-4FD1-9A4C-4BB2A10897CA_1_105_c-768x432.jpeg\" data-width=\"768\" data-height=\"432\" aria-label=\"Purple M.2 SSD adapter board on a green HDMI computer module with SATA cable and mounting screws\" role=\"img\" ><\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-gallery-item__overlay\"><\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<a class=\"e-gallery-item elementor-gallery-item elementor-animated-content\" href=\"https:\/\/chochol.io\/wp-content\/uploads\/2024\/05\/9602F249-B757-4455-8998-9AB76D14607B_1_105_c.jpeg\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"fb76ca3\" data-elementor-lightbox-title=\"Raspberry Pi 5, adapter non-HAT+ do NVMe\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MjA3NzIsInVybCI6Imh0dHBzOlwvXC9jaG9jaG9sLmlvXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wNVwvOTYwMkYyNDktQjc1Ny00NDU1LTg5OTgtOUFCNzZEMTQ2MDdCXzFfMTA1X2MuanBlZyIsInNsaWRlc2hvdyI6ImZiNzZjYTMifQ%3D%3D\">\r\n\t\t\t\t\t<div class=\"e-gallery-image elementor-gallery-item__image\" data-thumbnail=\"https:\/\/chochol.io\/wp-content\/uploads\/2024\/05\/9602F249-B757-4455-8998-9AB76D14607B_1_105_c-768x432.jpeg\" data-width=\"768\" data-height=\"432\" aria-label=\"Server PCIe add-in board with SATA\/M.2 slots and cables connected on desk next to monitors and keyboard\" role=\"img\" ><\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-gallery-item__overlay\"><\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-938c7ce elementor-widget elementor-widget-text-editor\" data-id=\"938c7ce\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>If you have additional questions about the setup, <strong>go ahead and leave a comment under this article<\/strong> or <strong>contact me directly<\/strong>. I will be happy to answer any concerns and help solve any problems. Your questions can help improve this guide for other users.<\/p><h2>Problems with disk recognition<\/h2><p>If you\u2019re having trouble getting your NVMe SSD up and running or recognizing it, here are some steps that can help:<\/p><ul><li>Make sure you use the operating system (Bookworm), as it is the only one that supports PCIe. OS Bullseye is not supported. You can check the available operating systems at: <a href=\"https:\/\/www.raspberrypi.com\/software\/operating-systems\/\" target=\"_new\" rel=\"noreferrer noopener\">https:\/\/www.raspberrypi.com\/software\/operating-systems\/<\/a><\/li><li>Make sure you use the right type of SSD. Only M.2 drives are supported NVMe (Sata) Key-M. M.2 NGFF Key-B drives are not supported.<\/li><li>Make sure the FPC cable is properly and tightly inserted into the Raspberry Pi 5. Also check that the direction of the FPC cable is correct.<\/li><li>If you still have problems, consider the compatibility of the SSD. You can try switching to other brands of NVMe SSDs.<\/li><\/ul><h2>Additional materials and information<\/h2><p>For further exploration and more information, I recommend checking out the links below. They are valuable sources that were used in the development of this guide.<\/p><ul><li>Reddit, How to use ext4 filesystems in Windows?: <a href=\"https:\/\/www.reddit.com\/r\/linux\/comments\/11pkgjv\/how_to_use_ext4_filesystems_in_windows\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.reddit.com\/r\/linux\/comments\/11pkgjv\/how_to_use_ext4_filesystems_in_windows\/<\/a><\/li><li>Raspberry Pi, NVMe SSD boot: <a href=\"https:\/\/www.raspberrypi.com\/documentation\/computers\/raspberry-pi.html#nvme-ssd-boot\" target=\"_blank\" rel=\"noopener\">https:\/\/www.raspberrypi.com\/documentation\/computers\/raspberry-pi.html#nvme-ssd-boot<\/a><\/li><li>Raspberry Pi, Updating the EEPROM Configuration: <a href=\"https:\/\/www.raspberrypi.com\/documentation\/computers\/raspberry-pi.html#updating-the-eeprom-configuration\" target=\"_blank\" rel=\"noopener\">https:\/\/www.raspberrypi.com\/documentation\/computers\/raspberry-pi.html#updating-the-eeprom-configuration<\/a><\/li><li>Raspberry Pi, PCIe Gen 3.0: <a href=\"https:\/\/www.raspberrypi.com\/documentation\/computers\/raspberry-pi.html#pcie-gen-3-0\" target=\"_blank\" rel=\"noopener\">https:\/\/www.raspberrypi.com\/documentation\/computers\/raspberry-pi.html#pcie-gen-3-0<\/a><\/li><\/ul><h2>Read also<\/h2><ul><li><a href=\"https:\/\/chochol.io\/en\/smart-home\/home-assistant-installation-and-integration-of-the-eastron-sdm120m-meter\/\">Home Assistant: Installation and integration of the Eastron DSM120M meter.<\/a> Installation and integration of Eastron energy meter with Home Assistant using ESPHome. A detailed step-by-step guide.<\/li><li><a href=\"https:\/\/chochol.io\/en\/smart-home\/home-assistant-bme280-sensor-installation-via-esphome\/\">Home Assistant: BME280 sensor installation via ESPHome.<\/a> Create a simple weather station for your balcony with ESPHome and Home Assistant. With this tutorial, you will build a system with the BME280 sensor.<\/li><li><a href=\"https:\/\/chochol.io\/en\/hardware\/tvheadend-satip-decoder-installation-and-configuration\/\">TVHeadend: SAT>IP decoder installation and configuration<\/a>. Telestar Digibit Twin: Discover the step-by-step configuration of a SAT>IP decoder with TVHeadend in Docker Compose in blog post.<\/li><li><a href=\"https:\/\/chochol.io\/en\/computer-networking\/how-to-configure-a-leox-gpon-ont-module-on-a-mikrotik-router\/\">How to configure a Leox GPON ONT module on a Mikrotik router<\/a>. Step-by-step guide on how to configure Leox LXT-010S-H GPON ONT module on Mikrotik RB5009 router, instead of ONT module from Orange.<\/li><li><a href=\"https:\/\/chochol.io\/en\/computer-networking\/unifi-network-application-remote-adoption-of-an-access-point\/\">UniFi Network Application: Connecting an Access Point from another network<\/a>. Discover how to connect a device from Ubiquiti UniFi from another network to Network Application \u2013 using Mikrotik\u2019s IPSec tunnel as an example.<\/li><li><a href=\"https:\/\/chochol.io\/en\/hardware\/ads-b-receiver-installation-and-configuration-on-raspberry-pi\/\">ADS-B: Installing and configuring the receiver on a Raspberry Pi<\/a>. Discover the secrets of installing and configuring your own ADS-B antenna on a Raspberry Pi. Develop skills and track aircraft in real time.<\/li><li><a href=\"https:\/\/chochol.io\/en\/software\/traccar-docker-installation-guide-on-synology\/\">Traccar: A guide to installing on Synology in Docker<\/a>. Step-by-step guide: Installing Traccar on Synology using Docker. Effective vehicle tracking on your own server.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Learn how to install and configure an NVMe drive with the Raspberry Pi 5. Practical step-by-step guide!<\/p>\n","protected":false},"author":1,"featured_media":20749,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[94],"tags":[136,141,117],"class_list":["post-20782","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hardware","tag-diy","tag-iot","tag-raspberry-pi"],"_links":{"self":[{"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/posts\/20782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/comments?post=20782"}],"version-history":[{"count":0,"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/posts\/20782\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/media\/20749"}],"wp:attachment":[{"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/media?parent=20782"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/categories?post=20782"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chochol.io\/en\/wp-json\/wp\/v2\/tags?post=20782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}