PersonalBSD NanoPi5 OpenSense EMMC install,
Advice on installing OpenSense on NanoPi 5
Installing OPNsense on a NanoPi R5S (ARM64, Rockchip RK3568) with your setup—U-Boot on eMMC and Debian 12 on NVMe—is feaThissible but requires careful steps due to the specific boot process and hardware constraints. Below, I address your questions and provide a step-by-step guide based on available information and the complexities of ARM64 booting with OPNsense.
Installing OPNsense on a NanoPi R5S (ARM64, Rockchip RK3568) with your setup—U-Boot on eMMC and Debian 12 on NVMe—is feasible but requires careful steps due to the specific boot process and hardware constraints. Below, I address your questions and provide a step-by-step guide based on available information and the complexities of ARM64 booting with OPNsense.
### Addressing Your Questions
1. **Will the SD card image allow me to install OPNsense directly to NVMe (e.g., via the installer or by copying)?**
- **Short Answer**: Yes, the custom OPNsense SD card image (likely based on EDK2 UEFI firmware) can be used to boot OPNsense temporarily and facilitate installation to the NVMe drive. However, directly copying the image to NVMe or using it as an installer depends on the image's configuration and the boot process.
- **Details**:
- Custom OPNsense images for ARM64 devices like the NanoPi R5S, as described in sources like yrzr’s blog and PersonalBSD.org, are typically built for SD card booting with EDK2 UEFI firmware to handle the initial boot process. These images are not directly bootable from NVMe without additional configuration because the NanoPi R5S relies on eMMC or SD card for the initial bootloader (U-Boot or EDK2).[](https://yrzr.github.io/running-opnsense-on-r6s/)[](https://personalbsd.org/)
- The SD card image can be used to boot OPNsense, and from there, you can use the OPNsense installer to install the system onto the NVMe drive. Alternatively, you can manually copy the image to NVMe and configure the bootloader to point to it, but this requires modifying the boot configuration to support NVMe booting.
- Note that OPNsense on ARM64 is experimental and not an official release, so you may encounter issues with drivers (e.g., Realtek RTL8125 2.5GbE NICs) or storage detection (eMMC/SD card not always recognized).[](https://forums.freebsd.org/threads/nanopi-r5s-and-freebsd-14.88967/)[](https://forums.freebsd.org/threads/opnsense-nanopi-r5s-and-r6s-issues.88029/)
2. **Do I need to erase/overwrite U-Boot on eMMC first? Or can I bypass that?**
- **Short Answer**: You don’t necessarily need to erase or overwrite U-Boot on eMMC, but you may need to modify or replace it with an EDK2 UEFI firmware to ensure compatibility with the OPNsense image. Bypassing U-Boot entirely is possible if you boot from the SD card with EDK2 and configure it to load OPNsense from NVMe.
- **Details**:
- The NanoPi R5S boot process typically starts with the bootloader on eMMC or SD card. Your current setup has U-Boot on eMMC, which loads Debian from NVMe. OPNsense ARM64 images often rely on EDK2 UEFI firmware to boot, as U-Boot alone may not fully support OPNsense’s EFI-based boot requirements.[](https://yrzr.github.io/running-opnsense-on-r6s/)[](https://forums.freebsd.org/threads/nanopi-r6c.95309/)
- If the OPNsense SD card image includes EDK2, you can boot from the SD card without touching the eMMC’s U-Boot, as the SD card will take boot priority when inserted. From there, you can install OPNsense to NVMe.
- To boot OPNsense directly from NVMe without an SD card, you’ll need to ensure the eMMC’s bootloader (U-Boot or EDK2) is configured to load the OPNsense kernel from NVMe. This may require flashing EDK2 to eMMC or updating U-Boot to support NVMe booting with the appropriate device tree (DTB) and kernel parameters.
- Erasing U-Boot is only necessary if it conflicts with the OPNsense boot process or if you want a clean setup. For example, if U-Boot lacks NVMe support or the correct DTB for OPNsense, replacing it with EDK2 on eMMC might be simpler.[](https://dietpi.com/forum/t/nanopi-r5s-boot-from-nvme/18064)[](https://nixos.wiki/wiki/NixOS_on_ARM/NanoPi-R6C)
### Step-by-Step Guide to Install OPNsense on NVMe
Here’s a detailed process to migrate OPNsense to your NVMe drive, assuming you have the custom OPNsense SD card image and want to boot without an SD card eventually.
#### Prerequisites
- A working SD card with the OPNsense image (e.g., `OPNsense-<version>-arm-aarch64.img`).
- A USB keyboard, HDMI display, and Ethernet cables for initial setup.
- Access to a computer with tools like `dd` (Linux) or RKDevTool (Windows/Linux) for flashing.
- Backup your current Debian 12 NVMe data, as the installation may overwrite it.
- Rockchip USB driver and RKDevTool (if flashing eMMC).[](https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R3S)
#### Steps
1. **Prepare the SD Card with the OPNsense Image**
- Download the custom OPNsense image for ARM64 (e.g., from sources like yrzr.github.io or PersonalBSD.org).[](https://yrzr.github.io/)[](https://personalbsd.org/)
- Flash the image to an SD card using `dd` on Linux or a tool like balenaEtcher:
```bash
sudo dd if=OPNsense-<version>-arm-aarch64.img of=/dev/sdX bs=4M status=progress
```
Replace `/dev/sdX` with your SD card device (e.g., `/dev/sdc`). Ensure the correct device to avoid data loss.
- The image likely includes EDK2 UEFI firmware, which handles booting on ARM64 devices like the NanoPi R5S.[](https://yrzr.github.io/running-opnsense-on-r6s/)
2. **Boot OPNsense from the SD Card**
- Insert the SD card into the NanoPi R5S.
- Connect a keyboard, HDMI display, and Ethernet cables (WAN and LAN ports as needed).
- Power on the NanoPi R5S. The SD card should take boot priority over eMMC.
- If the EDK2 UEFI firmware is included, you may need to press `Esc` repeatedly to access the boot menu and select the SD card.[](https://yrzr.github.io/running-opnsense-on-r6s/)
- Log in to OPNsense (default credentials: `root:opnsense`).[](https://yrzr.github.io/opnsense-22-for-aarch64/)
- Verify that the system boots and the NVMe drive is detected (use `lsblk` or `gpart show` in the OPNsense shell).
3. **Install OPNsense to NVMe**
- **Option 1: Use the OPNsense Installer**
- If the OPNsense image includes an installer, access it via the console or web interface.
- Select the NVMe drive (e.g., `/dev/nvme0n1`) as the target for installation.
- Follow the prompts to partition and install OPNsense to NVMe. This will format the NVMe drive, overwriting your Debian 12 installation.
- The installer should set up a FreeBSD-based filesystem (UFS or ZFS) and copy the necessary boot files.
- **Option 2: Manual Copy to NVMe**
- If no installer is available, boot into OPNsense from the SD card and mount the NVMe drive.
- Partition the NVMe drive using `gpart` (e.g., create a GPT partition table with a `freebsd-ufs` or `freebsd-zfs` partition).
- Copy the OPNsense filesystem from the SD card to the NVMe drive using `dd` or `rsync`. For example:
```bash
sudo dd if=/dev/ada0 of=/dev/nvme0n1 bs=4M status=progress
```
Replace `/dev/ada0` with the SD card’s device and `/dev/nvme0n1` with the NVMe device.
- Ensure the NVMe partition is bootable by setting up an EFI system partition (ESP) if required by EDK2.
4. **Configure the Bootloader for NVMe Booting**
- **Option A: Keep U-Boot on eMMC**
- Update U-Boot on eMMC to support NVMe booting. Clone the U-Boot source for RK3568:
```bash
git clone https://github.com/friendlyarm/uboot-rockchip --depth 1 -b nanopi5-v2017.09
cd uboot-rockchip
export PATH=/opt/FriendlyARM/toolchain/11.3-aarch64/bin/:$PATH
./make.sh nanopi5
```
Flash the generated U-Boot images (`idbloader.img`, `u-boot.itb`) to eMMC using RKDevTool or `dd`.[](https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R5S)[](https://dietpi.com/forum/t/nanopi-r5s-boot-from-nvme/18064)
- Configure U-Boot to load the OPNsense kernel from NVMe. Edit the boot configuration (e.g., `bootcmd` in U-Boot) to point to the NVMe device’s EFI partition or kernel image. You may need the `rockchip-nanopi5.dtb` device tree file.[](https://forums.freebsd.org/threads/nanopi-r6c.95309/)
- Add the `phy_rockchip_naneng_combphy` kernel module to support NVMe in the boot process.[](https://nixos.wiki/wiki/NixOS_on_ARM/NanoPi-R6C)
- **Option B: Replace U-Boot with EDK2 on eMMC**
- Download an EDK2 UEFI image for RK3568 (e.g., from `edk2-porting/edk2-rk3588` or a similar repository).[](https://forums.freebsd.org/threads/nanopi-r6c.95309/)
- Flash the EDK2 image to eMMC:
```bash
wget https://github.com/edk2-porting/edk2-rk3588/releases/download/<version>/nanopi-r5s_UEFI_Release_<version>.img
sudo dd if=nanopi-r5s_UEFI_Release_<version>.img of=/dev/mmcblk0 bs=1M
```
Replace `/dev/mmcblk0` with the eMMC device.
- EDK2 should automatically detect the OPNsense EFI bootloader on the NVMe drive’s ESP.
- **Option C: Continue Using SD Card for Bootloader**
- Keep the EDK2 firmware on the SD card and configure it to boot OPNsense from NVMe. This avoids modifying eMMC but requires the SD card to remain inserted.
5. **Handle Realtek NIC Issues**
- The NanoPi R5S uses Realtek RTL8125BG (2.5GbE) and RTL8211F (1GbE) Ethernet controllers. The 2.5GbE NICs may not work out-of-the-box with OPNsense/FreeBSD due to missing or incomplete drivers.[](https://forums.freebsd.org/threads/nanopi-r5s-and-freebsd-14.88967/)[](https://forums.freebsd.org/threads/opnsense-nanopi-r5s-and-r6s-issues.88029/)
- Install the `realtek-re-kmod` port (version 1.98 or later) to enable Realtek NIC support:
```bash
pkg install realtek-re-kmod
echo 'if_re_load="YES"' >> /boot/loader.conf.local
echo 'if_re_name="/boot/modules/if_re.ko"' >> /boot/loader.conf.local
```
[](https://forums.freebsd.org/threads/nanopi-r5s-and-freebsd-14.88967/)
- If the NICs still don’t work, check `dmesg` for errors related to PCIe interrupts or MAC addresses. You may need to build a custom kernel with updated Realtek drivers.[](https://forums.freebsd.org/threads/opnsense-nanopi-r5s-and-r6s-issues.88029/)
6. **Test and Finalize**
- Remove the SD card (if using eMMC for bootloader) and reboot.
- Verify that OPNsense boots from NVMe and that all hardware (NICs, NVMe, USB) is functional.
- Configure OPNsense via the web interface (default: `https://192.168.1.1`).
- Update the system and install necessary plugins using the repository provided by the image creator (e.g., `http://168.138.176.159/opnsense/`).[](https://yrzr.github.io/opnsense-22-for-aarch64/)
### Additional Notes
- **Driver Issues**: The Realtek 2.5GbE NICs (RTL8125BG) are a known pain point on FreeBSD/OPNsense for ARM64. If they don’t work, consider using the 1GbE port or exploring community patches.[](https://forums.freebsd.org/threads/nanopi-r5s-and-freebsd-14.88967/)[](https://forums.freebsd.org/threads/opnsense-nanopi-r5s-and-r6s-issues.88029/)
- **NVMe Support**: Ensure the kernel includes `nvme` and `phy_rockchip_naneng_combphy` modules for NVMe detection.[](https://nixos.wiki/wiki/NixOS_on_ARM/NanoPi-R6C)
- **Backup eMMC**: Before modifying eMMC, back up its contents using `dd` to avoid bricking the device.
- **Experimental Nature**: OPNsense on ARM64 is not officially supported, so expect potential bugs. Check forums like opnsense.org or freebsd.org for community support.[](https://forum.opnsense.org/index.php?topic=12186.150)[](https://forum.opnsense.org/index.php?topic=12186.210)
- **Alternative**: If OPNsense proves too problematic, consider running pfSense or OpenWrt, which have better ARM64 support for the NanoPi R5S.[](https://github.com/MichaIng/DietPi/issues/5901)
### Critical Considerations
- The sources indicate ongoing issues with Realtek NICs and storage detection (eMMC/SD) on ARM64 FreeBSD/OPNsense. Be prepared to troubleshoot or contribute to driver development.[](https://forums.freebsd.org/threads/nanopi-r5s-and-freebsd-14.88967/)[](https://forums.freebsd.org/threads/opnsense-nanopi-r5s-and-r6s-issues.88029/)
- Always verify the device paths (`/dev/sdX`, `/dev/mmcblk0`, `/dev/nvme0n1`) to avoid data loss.
- If you encounter boot issues, use RKDevTool to enter Maskrom mode and reflash eMMC.[](https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R3S)
If you run into specific errors during the process, let me know, and I can help troubleshoot further!
### Addressing Your Questions
1. **Will the SD card image allow me to install OPNsense directly to NVMe (e.g., via the installer or by copying)?**
- **Short Answer**: Yes, the custom OPNsense SD card image (likely based on EDK2 UEFI firmware) can be used to boot OPNsense temporarily and facilitate installation to the NVMe drive. However, directly copying the image to NVMe or using it as an installer depends on the image's configuration and the boot process.
- **Details**:
- Custom OPNsense images for ARM64 devices like the NanoPi R5S, as described in sources like yrzr’s blog and PersonalBSD.org, are typically built for SD card booting with EDK2 UEFI firmware to handle the initial boot process. These images are not directly bootable from NVMe without additional configuration because the NanoPi R5S relies on eMMC or SD card for the initial bootloader (U-Boot or EDK2).[](https://yrzr.github.io/running-opnsense-on-r6s/)[](https://personalbsd.org/)
- The SD card image can be used to boot OPNsense, and from there, you can use the OPNsense installer to install the system onto the NVMe drive. Alternatively, you can manually copy the image to NVMe and configure the bootloader to point to it, but this requires modifying the boot configuration to support NVMe booting.
- Note that OPNsense on ARM64 is experimental and not an official release, so you may encounter issues with drivers (e.g., Realtek RTL8125 2.5GbE NICs) or storage detection (eMMC/SD card not always recognized).[](https://forums.freebsd.org/threads/nanopi-r5s-and-freebsd-14.88967/)[](https://forums.freebsd.org/threads/opnsense-nanopi-r5s-and-r6s-issues.88029/)
2. **Do I need to erase/overwrite U-Boot on eMMC first? Or can I bypass that?**
- **Short Answer**: You don’t necessarily need to erase or overwrite U-Boot on eMMC, but you may need to modify or replace it with an EDK2 UEFI firmware to ensure compatibility with the OPNsense image. Bypassing U-Boot entirely is possible if you boot from the SD card with EDK2 and configure it to load OPNsense from NVMe.
- **Details**:
- The NanoPi R5S boot process typically starts with the bootloader on eMMC or SD card. Your current setup has U-Boot on eMMC, which loads Debian from NVMe. OPNsense ARM64 images often rely on EDK2 UEFI firmware to boot, as U-Boot alone may not fully support OPNsense’s EFI-based boot requirements.[](https://yrzr.github.io/running-opnsense-on-r6s/)[](https://forums.freebsd.org/threads/nanopi-r6c.95309/)
- If the OPNsense SD card image includes EDK2, you can boot from the SD card without touching the eMMC’s U-Boot, as the SD card will take boot priority when inserted. From there, you can install OPNsense to NVMe.
- To boot OPNsense directly from NVMe without an SD card, you’ll need to ensure the eMMC’s bootloader (U-Boot or EDK2) is configured to load the OPNsense kernel from NVMe. This may require flashing EDK2 to eMMC or updating U-Boot to support NVMe booting with the appropriate device tree (DTB) and kernel parameters.
- Erasing U-Boot is only necessary if it conflicts with the OPNsense boot process or if you want a clean setup. For example, if U-Boot lacks NVMe support or the correct DTB for OPNsense, replacing it with EDK2 on eMMC might be simpler.[](https://dietpi.com/forum/t/nanopi-r5s-boot-from-nvme/18064)[](https://nixos.wiki/wiki/NixOS_on_ARM/NanoPi-R6C)
### Step-by-Step Guide to Install OPNsense on NVMe
Here’s a detailed process to migrate OPNsense to your NVMe drive, assuming you have the custom OPNsense SD card image and want to boot without an SD card eventually.
#### Prerequisites
- A working SD card with the OPNsense image (e.g., `OPNsense-<version>-arm-aarch64.img`).
- A USB keyboard, HDMI display, and Ethernet cables for initial setup.
- Access to a computer with tools like `dd` (Linux) or RKDevTool (Windows/Linux) for flashing.
- Backup your current Debian 12 NVMe data, as the installation may overwrite it.
- Rockchip USB driver and RKDevTool (if flashing eMMC).[](https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R3S)
#### Steps
1. **Prepare the SD Card with the OPNsense Image**
- Download the custom OPNsense image for ARM64 (e.g., from sources like yrzr.github.io or PersonalBSD.org).[](https://yrzr.github.io/)[](https://personalbsd.org/)
- Flash the image to an SD card using `dd` on Linux or a tool like balenaEtcher:
```bash
sudo dd if=OPNsense-<version>-arm-aarch64.img of=/dev/sdX bs=4M status=progress
```
Replace `/dev/sdX` with your SD card device (e.g., `/dev/sdc`). Ensure the correct device to avoid data loss.
- The image likely includes EDK2 UEFI firmware, which handles booting on ARM64 devices like the NanoPi R5S.[](https://yrzr.github.io/running-opnsense-on-r6s/)
2. **Boot OPNsense from the SD Card**
- Insert the SD card into the NanoPi R5S.
- Connect a keyboard, HDMI display, and Ethernet cables (WAN and LAN ports as needed).
- Power on the NanoPi R5S. The SD card should take boot priority over eMMC.
- If the EDK2 UEFI firmware is included, you may need to press `Esc` repeatedly to access the boot menu and select the SD card.[](https://yrzr.github.io/running-opnsense-on-r6s/)
- Log in to OPNsense (default credentials: `root:opnsense`).[](https://yrzr.github.io/opnsense-22-for-aarch64/)
- Verify that the system boots and the NVMe drive is detected (use `lsblk` or `gpart show` in the OPNsense shell).
3. **Install OPNsense to NVMe**
- **Option 1: Use the OPNsense Installer**
- If the OPNsense image includes an installer, access it via the console or web interface.
- Select the NVMe drive (e.g., `/dev/nvme0n1`) as the target for installation.
- Follow the prompts to partition and install OPNsense to NVMe. This will format the NVMe drive, overwriting your Debian 12 installation.
- The installer should set up a FreeBSD-based filesystem (UFS or ZFS) and copy the necessary boot files.
- **Option 2: Manual Copy to NVMe**
- If no installer is available, boot into OPNsense from the SD card and mount the NVMe drive.
- Partition the NVMe drive using `gpart` (e.g., create a GPT partition table with a `freebsd-ufs` or `freebsd-zfs` partition).
- Copy the OPNsense filesystem from the SD card to the NVMe drive using `dd` or `rsync`. For example:
```bash
sudo dd if=/dev/ada0 of=/dev/nvme0n1 bs=4M status=progress
```
Replace `/dev/ada0` with the SD card’s device and `/dev/nvme0n1` with the NVMe device.
- Ensure the NVMe partition is bootable by setting up an EFI system partition (ESP) if required by EDK2.
4. **Configure the Bootloader for NVMe Booting**
- **Option A: Keep U-Boot on eMMC**
- Update U-Boot on eMMC to support NVMe booting. Clone the U-Boot source for RK3568:
```bash
git clone https://github.com/friendlyarm/uboot-rockchip --depth 1 -b nanopi5-v2017.09
cd uboot-rockchip
export PATH=/opt/FriendlyARM/toolchain/11.3-aarch64/bin/:$PATH
./make.sh nanopi5
```
Flash the generated U-Boot images (`idbloader.img`, `u-boot.itb`) to eMMC using RKDevTool or `dd`.[](https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R5S)[](https://dietpi.com/forum/t/nanopi-r5s-boot-from-nvme/18064)
- Configure U-Boot to load the OPNsense kernel from NVMe. Edit the boot configuration (e.g., `bootcmd` in U-Boot) to point to the NVMe device’s EFI partition or kernel image. You may need the `rockchip-nanopi5.dtb` device tree file.[](https://forums.freebsd.org/threads/nanopi-r6c.95309/)
- Add the `phy_rockchip_naneng_combphy` kernel module to support NVMe in the boot process.[](https://nixos.wiki/wiki/NixOS_on_ARM/NanoPi-R6C)
- **Option B: Replace U-Boot with EDK2 on eMMC**
- Download an EDK2 UEFI image for RK3568 (e.g., from `edk2-porting/edk2-rk3588` or a similar repository).[](https://forums.freebsd.org/threads/nanopi-r6c.95309/)
- Flash the EDK2 image to eMMC:
```bash
wget https://github.com/edk2-porting/edk2-rk3588/releases/download/<version>/nanopi-r5s_UEFI_Release_<version>.img
sudo dd if=nanopi-r5s_UEFI_Release_<version>.img of=/dev/mmcblk0 bs=1M
```
Replace `/dev/mmcblk0` with the eMMC device.
- EDK2 should automatically detect the OPNsense EFI bootloader on the NVMe drive’s ESP.
- **Option C: Continue Using SD Card for Bootloader**
- Keep the EDK2 firmware on the SD card and configure it to boot OPNsense from NVMe. This avoids modifying eMMC but requires the SD card to remain inserted.
5. **Handle Realtek NIC Issues**
- The NanoPi R5S uses Realtek RTL8125BG (2.5GbE) and RTL8211F (1GbE) Ethernet controllers. The 2.5GbE NICs may not work out-of-the-box with OPNsense/FreeBSD due to missing or incomplete drivers.[](https://forums.freebsd.org/threads/nanopi-r5s-and-freebsd-14.88967/)[](https://forums.freebsd.org/threads/opnsense-nanopi-r5s-and-r6s-issues.88029/)
- Install the `realtek-re-kmod` port (version 1.98 or later) to enable Realtek NIC support:
```bash
pkg install realtek-re-kmod
echo 'if_re_load="YES"' >> /boot/loader.conf.local
echo 'if_re_name="/boot/modules/if_re.ko"' >> /boot/loader.conf.local
```
[](https://forums.freebsd.org/threads/nanopi-r5s-and-freebsd-14.88967/)
- If the NICs still don’t work, check `dmesg` for errors related to PCIe interrupts or MAC addresses. You may need to build a custom kernel with updated Realtek drivers.[](https://forums.freebsd.org/threads/opnsense-nanopi-r5s-and-r6s-issues.88029/)
6. **Test and Finalize**
- Remove the SD card (if using eMMC for bootloader) and reboot.
- Verify that OPNsense boots from NVMe and that all hardware (NICs, NVMe, USB) is functional.
- Configure OPNsense via the web interface (default: `https://192.168.1.1`).
- Update the system and install necessary plugins using the repository provided by the image creator (e.g., `http://168.138.176.159/opnsense/`).[](https://yrzr.github.io/opnsense-22-for-aarch64/)
### Additional Notes
- **Driver Issues**: The Realtek 2.5GbE NICs (RTL8125BG) are a known pain point on FreeBSD/OPNsense for ARM64. If they don’t work, consider using the 1GbE port or exploring community patches.[](https://forums.freebsd.org/threads/nanopi-r5s-and-freebsd-14.88967/)[](https://forums.freebsd.org/threads/opnsense-nanopi-r5s-and-r6s-issues.88029/)
- **NVMe Support**: Ensure the kernel includes `nvme` and `phy_rockchip_naneng_combphy` modules for NVMe detection.[](https://nixos.wiki/wiki/NixOS_on_ARM/NanoPi-R6C)
- **Backup eMMC**: Before modifying eMMC, back up its contents using `dd` to avoid bricking the device.
- **Experimental Nature**: OPNsense on ARM64 is not officially supported, so expect potential bugs. Check forums like opnsense.org or freebsd.org for community support.[](https://forum.opnsense.org/index.php?topic=12186.150)[](https://forum.opnsense.org/index.php?topic=12186.210)
- **Alternative**: If OPNsense proves too problematic, consider running pfSense or OpenWrt, which have better ARM64 support for the NanoPi R5S.[](https://github.com/MichaIng/DietPi/issues/5901)
### Critical Considerations
- The sources indicate ongoing issues with Realtek NICs and storage detection (eMMC/SD) on ARM64 FreeBSD/OPNsense. Be prepared to troubleshoot or contribute to driver development.[](https://forums.freebsd.org/threads/nanopi-r5s-and-freebsd-14.88967/)[](https://forums.freebsd.org/threads/opnsense-nanopi-r5s-and-r6s-issues.88029/)
- Always verify the device paths (`/dev/sdX`, `/dev/mmcblk0`, `/dev/nvme0n1`) to avoid data loss.
- If you encounter boot issues, use RKDevTool to enter Maskrom mode and reflash eMMC.[](https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R3S)
If you run into specific errors during the process, let me know, and I can help troubleshoot further!
Data was copied from https://x.com/i/grok
This is a test paste below:
Installing OPNsense on a NanoPi R5S (ARM64, Rockchip RK3568) with your setup—U-Boot on eMMC and Debian 12 on NVMe—is feasible but requires careful steps due to the specific boot process and hardware constraints. Below, I address your questions and provide a step-by-step guide based on available information and the complexities of ARM64 booting with OPNsense.
### Addressing Your Questions
1. **Will the SD card image allow me to install OPNsense directly to NVMe (e.g., via the installer or by copying)?**
- **Short Answer**: Yes, the custom OPNsense SD card image (likely based on EDK2 UEFI firmware) can be used to boot OPNsense temporarily and facilitate installation to the NVMe drive. However, directly copying the image to NVMe or using it as an installer depends on the image's configuration and the boot process.
- **Details**:
- Custom OPNsense images for ARM64 devices like the NanoPi R5S, as described in sources like yrzr’s blog and PersonalBSD.org, are typically built for SD card booting with EDK2 UEFI firmware to handle the initial boot process. These images are not directly bootable from NVMe without additional configuration because the NanoPi R5S relies on eMMC or SD card for the initial bootloader (U-Boot or EDK2).[](https://yrzr.github.io/running-opnsense-on-r6s/)[](https://personalbsd.org/)
- The SD card image can be used to boot OPNsense, and from there, you can use the OPNsense installer to install the system onto the NVMe drive. Alternatively, you can manually copy the image to NVMe and configure the bootloader to point to it, but this requires modifying the boot configuration to support NVMe booting.
- Note that OPNsense on ARM64 is experimental and not an official release, so you may encounter issues with drivers (e.g., Realtek RTL8125 2.5GbE NICs) or storage detection (eMMC/SD card not always recognized).[](https://forums.freebsd.org/threads/nanopi-r5s-and-freebsd-14.88967/)[](https://forums.freebsd.org/threads/opnsense-nanopi-r5s-and-r6s-issues.88029/)
2. **Do I need to erase/overwrite U-Boot on eMMC first? Or can I bypass that?**
- **Short Answer**: You don’t necessarily need to erase or overwrite U-Boot on eMMC, but you may need to modify or replace it with an EDK2 UEFI firmware to ensure compatibility with the OPNsense image. Bypassing U-Boot entirely is possible if you boot from the SD card with EDK2 and configure it to load OPNsense from NVMe.
- **Details**:
- The NanoPi R5S boot process typically starts with the bootloader on eMMC or SD card. Your current setup has U-Boot on eMMC, which loads Debian from NVMe. OPNsense ARM64 images often rely on EDK2 UEFI firmware to boot, as U-Boot alone may not fully support OPNsense’s EFI-based boot requirements.[](https://yrzr.github.io/running-opnsense-on-r6s/)[](https://forums.freebsd.org/threads/nanopi-r6c.95309/)
- If the OPNsense SD card image includes EDK2, you can boot from the SD card without touching the eMMC’s U-Boot, as the SD card will take boot priority when inserted. From there, you can install OPNsense to NVMe.
- To boot OPNsense directly from NVMe without an SD card, you’ll need to ensure the eMMC’s bootloader (U-Boot or EDK2) is configured to load the OPNsense kernel from NVMe. This may require flashing EDK2 to eMMC or updating U-Boot to support NVMe booting with the appropriate device tree (DTB) and kernel parameters.
- Erasing U-Boot is only necessary if it conflicts with the OPNsense boot process or if you want a clean setup. For example, if U-Boot lacks NVMe support or the correct DTB for OPNsense, replacing it with EDK2 on eMMC might be simpler.[](https://dietpi.com/forum/t/nanopi-r5s-boot-from-nvme/18064)[](https://nixos.wiki/wiki/NixOS_on_ARM/NanoPi-R6C)
### Step-by-Step Guide to Install OPNsense on NVMe
Here’s a detailed process to migrate OPNsense to your NVMe drive, assuming you have the custom OPNsense SD card image and want to boot without an SD card eventually.
#### Prerequisites
- A working SD card with the OPNsense image (e.g., `OPNsense-<version>-arm-aarch64.img`).
- A USB keyboard, HDMI display, and Ethernet cables for initial setup.
- Access to a computer with tools like `dd` (Linux) or RKDevTool (Windows/Linux) for flashing.
- Backup your current Debian 12 NVMe data, as the installation may overwrite it.
- Rockchip USB driver and RKDevTool (if flashing eMMC).[](https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R3S)
#### Steps
1. **Prepare the SD Card with the OPNsense Image**
- Download the custom OPNsense image for ARM64 (e.g., from sources like yrzr.github.io or PersonalBSD.org).[](https://yrzr.github.io/)[](https://personalbsd.org/)
- Flash the image to an SD card using `dd` on Linux or a tool like balenaEtcher:
```bash
sudo dd if=OPNsense-<version>-arm-aarch64.img of=/dev/sdX bs=4M status=progress
```
Replace `/dev/sdX` with your SD card device (e.g., `/dev/sdc`). Ensure the correct device to avoid data loss.
- The image likely includes EDK2 UEFI firmware, which handles booting on ARM64 devices like the NanoPi R5S.[](https://yrzr.github.io/running-opnsense-on-r6s/)
2. **Boot OPNsense from the SD Card**
- Insert the SD card into the NanoPi R5S.
- Connect a keyboard, HDMI display, and Ethernet cables (WAN and LAN ports as needed).
- Power on the NanoPi R5S. The SD card should take boot priority over eMMC.
- If the EDK2 UEFI firmware is included, you may need to press `Esc` repeatedly to access the boot menu and select the SD card.[](https://yrzr.github.io/running-opnsense-on-r6s/)
- Log in to OPNsense (default credentials: `root:opnsense`).[](https://yrzr.github.io/opnsense-22-for-aarch64/)
- Verify that the system boots and the NVMe drive is detected (use `lsblk` or `gpart show` in the OPNsense shell).
3. **Install OPNsense to NVMe**
- **Option 1: Use the OPNsense Installer**
- If the OPNsense image includes an installer, access it via the console or web interface.
- Select the NVMe drive (e.g., `/dev/nvme0n1`) as the target for installation.
- Follow the prompts to partition and install OPNsense to NVMe. This will format the NVMe drive, overwriting your Debian 12 installation.
- The installer should set up a FreeBSD-based filesystem (UFS or ZFS) and copy the necessary boot files.
- **Option 2: Manual Copy to NVMe**
- If no installer is available, boot into OPNsense from the SD card and mount the NVMe drive.
- Partition the NVMe drive using `gpart` (e.g., create a GPT partition table with a `freebsd-ufs` or `freebsd-zfs` partition).
- Copy the OPNsense filesystem from the SD card to the NVMe drive using `dd` or `rsync`. For example:
```bash
sudo dd if=/dev/ada0 of=/dev/nvme0n1 bs=4M status=progress
```
Replace `/dev/ada0` with the SD card’s device and `/dev/nvme0n1` with the NVMe device.
- Ensure the NVMe partition is bootable by setting up an EFI system partition (ESP) if required by EDK2.
4. **Configure the Bootloader for NVMe Booting**
- **Option A: Keep U-Boot on eMMC**
- Update U-Boot on eMMC to support NVMe booting. Clone the U-Boot source for RK3568:
```bash
git clone https://github.com/friendlyarm/uboot-rockchip --depth 1 -b nanopi5-v2017.09
cd uboot-rockchip
export PATH=/opt/FriendlyARM/toolchain/11.3-aarch64/bin/:$PATH
./make.sh nanopi5
```
Flash the generated U-Boot images (`idbloader.img`, `u-boot.itb`) to eMMC using RKDevTool or `dd`.[](https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R5S)[](https://dietpi.com/forum/t/nanopi-r5s-boot-from-nvme/18064)
- Configure U-Boot to load the OPNsense kernel from NVMe. Edit the boot configuration (e.g., `bootcmd` in U-Boot) to point to the NVMe device’s EFI partition or kernel image. You may need the `rockchip-nanopi5.dtb` device tree file.[](https://forums.freebsd.org/threads/nanopi-r6c.95309/)
- Add the `phy_rockchip_naneng_combphy` kernel module to support NVMe in the boot process.[](https://nixos.wiki/wiki/NixOS_on_ARM/NanoPi-R6C)
- **Option B: Replace U-Boot with EDK2 on eMMC**
- Download an EDK2 UEFI image for RK3568 (e.g., from `edk2-porting/edk2-rk3588` or a similar repository).[](https://forums.freebsd.org/threads/nanopi-r6c.95309/)
- Flash the EDK2 image to eMMC:
```bash
wget https://github.com/edk2-porting/edk2-rk3588/releases/download/<version>/nanopi-r5s_UEFI_Release_<version>.img
sudo dd if=nanopi-r5s_UEFI_Release_<version>.img of=/dev/mmcblk0 bs=1M
```
Replace `/dev/mmcblk0` with the eMMC device.
- EDK2 should automatically detect the OPNsense EFI bootloader on the NVMe drive’s ESP.
- **Option C: Continue Using SD Card for Bootloader**
- Keep the EDK2 firmware on the SD card and configure it to boot OPNsense from NVMe. This avoids modifying eMMC but requires the SD card to remain inserted.
5. **Handle Realtek NIC Issues**
- The NanoPi R5S uses Realtek RTL8125BG (2.5GbE) and RTL8211F (1GbE) Ethernet controllers. The 2.5GbE NICs may not work out-of-the-box with OPNsense/FreeBSD due to missing or incomplete drivers.[](https://forums.freebsd.org/threads/nanopi-r5s-and-freebsd-14.88967/)[](https://forums.freebsd.org/threads/opnsense-nanopi-r5s-and-r6s-issues.88029/)
- Install the `realtek-re-kmod` port (version 1.98 or later) to enable Realtek NIC support:
```bash
pkg install realtek-re-kmod
echo 'if_re_load="YES"' >> /boot/loader.conf.local
echo 'if_re_name="/boot/modules/if_re.ko"' >> /boot/loader.conf.local
```
[](https://forums.freebsd.org/threads/nanopi-r5s-and-freebsd-14.88967/)
- If the NICs still don’t work, check `dmesg` for errors related to PCIe interrupts or MAC addresses. You may need to build a custom kernel with updated Realtek drivers.[](https://forums.freebsd.org/threads/opnsense-nanopi-r5s-and-r6s-issues.88029/)
6. **Test and Finalize**
- Remove the SD card (if using eMMC for bootloader) and reboot.
- Verify that OPNsense boots from NVMe and that all hardware (NICs, NVMe, USB) is functional.
- Configure OPNsense via the web interface (default: `https://192.168.1.1`).
- Update the system and install necessary plugins using the repository provided by the image creator (e.g., `http://168.138.176.159/opnsense/`).[](https://yrzr.github.io/opnsense-22-for-aarch64/)
### Additional Notes
- **Driver Issues**: The Realtek 2.5GbE NICs (RTL8125BG) are a known pain point on FreeBSD/OPNsense for ARM64. If they don’t work, consider using the 1GbE port or exploring community patches.[](https://forums.freebsd.org/threads/nanopi-r5s-and-freebsd-14.88967/)[](https://forums.freebsd.org/threads/opnsense-nanopi-r5s-and-r6s-issues.88029/)
- **NVMe Support**: Ensure the kernel includes `nvme` and `phy_rockchip_naneng_combphy` modules for NVMe detection.[](https://nixos.wiki/wiki/NixOS_on_ARM/NanoPi-R6C)
- **Backup eMMC**: Before modifying eMMC, back up its contents using `dd` to avoid bricking the device.
- **Experimental Nature**: OPNsense on ARM64 is not officially supported, so expect potential bugs. Check forums like opnsense.org or freebsd.org for community support.[](https://forum.opnsense.org/index.php?topic=12186.150)[](https://forum.opnsense.org/index.php?topic=12186.210)
- **Alternative**: If OPNsense proves too problematic, consider running pfSense or OpenWrt, which have better ARM64 support for the NanoPi R5S.[](https://github.com/MichaIng/DietPi/issues/5901)
### Critical Considerations
- The sources indicate ongoing issues with Realtek NICs and storage detection (eMMC/SD) on ARM64 FreeBSD/OPNsense. Be prepared to troubleshoot or contribute to driver development.[](https://forums.freebsd.org/threads/nanopi-r5s-and-freebsd-14.88967/)[](https://forums.freebsd.org/threads/opnsense-nanopi-r5s-and-r6s-issues.88029/)
- Always verify the device paths (`/dev/sdX`, `/dev/mmcblk0`, `/dev/nvme0n1`) to avoid data loss.
- If you encounter boot issues, use RKDevTool to enter Maskrom mode and reflash eMMC.[](https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R3S)
If you run into specific errors during the process, let me know, and I can help troubleshoot further!
Installing OPNsense on a NanoPi R5S (ARM64, Rockchip RK3568) with your setup—U-Boot on eMMC and Debian 12 on NVMe—is feasible but requires careful steps due to the specific boot process and hardware constraints. Below, I address your questions and provide a step-by-step guide based on available information and the complexities of ARM64 booting with OPNsense.
### Addressing Your Questions
1. **Will the SD card image allow me to install OPNsense directly to NVMe (e.g., via the installer or by copying)?**
- **Short Answer**: Yes, the custom OPNsense SD card image (likely based on EDK2 UEFI firmware) can be used to boot OPNsense temporarily and facilitate installation to the NVMe drive. However, directly copying the image to NVMe or using it as an installer depends on the image's configuration and the boot process.
- **Details**:
- Custom OPNsense images for ARM64 devices like the NanoPi R5S, as described in sources like yrzr’s blog and PersonalBSD.org, are typically built for SD card booting with EDK2 UEFI firmware to handle the initial boot process. These images are not directly bootable from NVMe without additional configuration because the NanoPi R5S relies on eMMC or SD card for the initial bootloader (U-Boot or EDK2).[](https://yrzr.github.io/running-opnsense-on-r6s/)[](https://personalbsd.org/)
- The SD card image can be used to boot OPNsense, and from there, you can use the OPNsense installer to install the system onto the NVMe drive. Alternatively, you can manually copy the image to NVMe and configure the bootloader to point to it, but this requires modifying the boot configuration to support NVMe booting.
- Note that OPNsense on ARM64 is experimental and not an official release, so you may encounter issues with drivers (e.g., Realtek RTL8125 2.5GbE NICs) or storage detection (eMMC/SD card not always recognized).[](https://forums.freebsd.org/threads/nanopi-r5s-and-freebsd-14.88967/)[](https://forums.freebsd.org/threads/opnsense-nanopi-r5s-and-r6s-issues.88029/)
2. **Do I need to erase/overwrite U-Boot on eMMC first? Or can I bypass that?**
- **Short Answer**: You don’t necessarily need to erase or overwrite U-Boot on eMMC, but you may need to modify or replace it with an EDK2 UEFI firmware to ensure compatibility with the OPNsense image. Bypassing U-Boot entirely is possible if you boot from the SD card with EDK2 and configure it to load OPNsense from NVMe.
- **Details**:
- The NanoPi R5S boot process typically starts with the bootloader on eMMC or SD card. Your current setup has U-Boot on eMMC, which loads Debian from NVMe. OPNsense ARM64 images often rely on EDK2 UEFI firmware to boot, as U-Boot alone may not fully support OPNsense’s EFI-based boot requirements.[](https://yrzr.github.io/running-opnsense-on-r6s/)[](https://forums.freebsd.org/threads/nanopi-r6c.95309/)
- If the OPNsense SD card image includes EDK2, you can boot from the SD card without touching the eMMC’s U-Boot, as the SD card will take boot priority when inserted. From there, you can install OPNsense to NVMe.
- To boot OPNsense directly from NVMe without an SD card, you’ll need to ensure the eMMC’s bootloader (U-Boot or EDK2) is configured to load the OPNsense kernel from NVMe. This may require flashing EDK2 to eMMC or updating U-Boot to support NVMe booting with the appropriate device tree (DTB) and kernel parameters.
- Erasing U-Boot is only necessary if it conflicts with the OPNsense boot process or if you want a clean setup. For example, if U-Boot lacks NVMe support or the correct DTB for OPNsense, replacing it with EDK2 on eMMC might be simpler.[](https://dietpi.com/forum/t/nanopi-r5s-boot-from-nvme/18064)[](https://nixos.wiki/wiki/NixOS_on_ARM/NanoPi-R6C)
### Step-by-Step Guide to Install OPNsense on NVMe
Here’s a detailed process to migrate OPNsense to your NVMe drive, assuming you have the custom OPNsense SD card image and want to boot without an SD card eventually.
#### Prerequisites
- A working SD card with the OPNsense image (e.g., `OPNsense-<version>-arm-aarch64.img`).
- A USB keyboard, HDMI display, and Ethernet cables for initial setup.
- Access to a computer with tools like `dd` (Linux) or RKDevTool (Windows/Linux) for flashing.
- Backup your current Debian 12 NVMe data, as the installation may overwrite it.
- Rockchip USB driver and RKDevTool (if flashing eMMC).[](https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R3S)
#### Steps
1. **Prepare the SD Card with the OPNsense Image**
- Download the custom OPNsense image for ARM64 (e.g., from sources like yrzr.github.io or PersonalBSD.org).[](https://yrzr.github.io/)[](https://personalbsd.org/)
- Flash the image to an SD card using `dd` on Linux or a tool like balenaEtcher:
```bash
sudo dd if=OPNsense-<version>-arm-aarch64.img of=/dev/sdX bs=4M status=progress
```
Replace `/dev/sdX` with your SD card device (e.g., `/dev/sdc`). Ensure the correct device to avoid data loss.
- The image likely includes EDK2 UEFI firmware, which handles booting on ARM64 devices like the NanoPi R5S.[](https://yrzr.github.io/running-opnsense-on-r6s/)
2. **Boot OPNsense from the SD Card**
- Insert the SD card into the NanoPi R5S.
- Connect a keyboard, HDMI display, and Ethernet cables (WAN and LAN ports as needed).
- Power on the NanoPi R5S. The SD card should take boot priority over eMMC.
- If the EDK2 UEFI firmware is included, you may need to press `Esc` repeatedly to access the boot menu and select the SD card.[](https://yrzr.github.io/running-opnsense-on-r6s/)
- Log in to OPNsense (default credentials: `root:opnsense`).[](https://yrzr.github.io/opnsense-22-for-aarch64/)
- Verify that the system boots and the NVMe drive is detected (use `lsblk` or `gpart show` in the OPNsense shell).
3. **Install OPNsense to NVMe**
- **Option 1: Use the OPNsense Installer**
- If the OPNsense image includes an installer, access it via the console or web interface.
- Select the NVMe drive (e.g., `/dev/nvme0n1`) as the target for installation.
- Follow the prompts to partition and install OPNsense to NVMe. This will format the NVMe drive, overwriting your Debian 12 installation.
- The installer should set up a FreeBSD-based filesystem (UFS or ZFS) and copy the necessary boot files.
- **Option 2: Manual Copy to NVMe**
- If no installer is available, boot into OPNsense from the SD card and mount the NVMe drive.
- Partition the NVMe drive using `gpart` (e.g., create a GPT partition table with a `freebsd-ufs` or `freebsd-zfs` partition).
- Copy the OPNsense filesystem from the SD card to the NVMe drive using `dd` or `rsync`. For example:
```bash
sudo dd if=/dev/ada0 of=/dev/nvme0n1 bs=4M status=progress
```
Replace `/dev/ada0` with the SD card’s device and `/dev/nvme0n1` with the NVMe device.
- Ensure the NVMe partition is bootable by setting up an EFI system partition (ESP) if required by EDK2.
4. **Configure the Bootloader for NVMe Booting**
- **Option A: Keep U-Boot on eMMC**
- Update U-Boot on eMMC to support NVMe booting. Clone the U-Boot source for RK3568:
```bash
git clone https://github.com/friendlyarm/uboot-rockchip --depth 1 -b nanopi5-v2017.09
cd uboot-rockchip
export PATH=/opt/FriendlyARM/toolchain/11.3-aarch64/bin/:$PATH
./make.sh nanopi5
```
Flash the generated U-Boot images (`idbloader.img`, `u-boot.itb`) to eMMC using RKDevTool or `dd`.[](https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R5S)[](https://dietpi.com/forum/t/nanopi-r5s-boot-from-nvme/18064)
- Configure U-Boot to load the OPNsense kernel from NVMe. Edit the boot configuration (e.g., `bootcmd` in U-Boot) to point to the NVMe device’s EFI partition or kernel image. You may need the `rockchip-nanopi5.dtb` device tree file.[](https://forums.freebsd.org/threads/nanopi-r6c.95309/)
- Add the `phy_rockchip_naneng_combphy` kernel module to support NVMe in the boot process.[](https://nixos.wiki/wiki/NixOS_on_ARM/NanoPi-R6C)
- **Option B: Replace U-Boot with EDK2 on eMMC**
- Download an EDK2 UEFI image for RK3568 (e.g., from `edk2-porting/edk2-rk3588` or a similar repository).[](https://forums.freebsd.org/threads/nanopi-r6c.95309/)
- Flash the EDK2 image to eMMC:
```bash
wget https://github.com/edk2-porting/edk2-rk3588/releases/download/<version>/nanopi-r5s_UEFI_Release_<version>.img
sudo dd if=nanopi-r5s_UEFI_Release_<version>.img of=/dev/mmcblk0 bs=1M
```
Replace `/dev/mmcblk0` with the eMMC device.
- EDK2 should automatically detect the OPNsense EFI bootloader on the NVMe drive’s ESP.
- **Option C: Continue Using SD Card for Bootloader**
- Keep the EDK2 firmware on the SD card and configure it to boot OPNsense from NVMe. This avoids modifying eMMC but requires the SD card to remain inserted.
5. **Handle Realtek NIC Issues**
- The NanoPi R5S uses Realtek RTL8125BG (2.5GbE) and RTL8211F (1GbE) Ethernet controllers. The 2.5GbE NICs may not work out-of-the-box with OPNsense/FreeBSD due to missing or incomplete drivers.[](https://forums.freebsd.org/threads/nanopi-r5s-and-freebsd-14.88967/)[](https://forums.freebsd.org/threads/opnsense-nanopi-r5s-and-r6s-issues.88029/)
- Install the `realtek-re-kmod` port (version 1.98 or later) to enable Realtek NIC support:
```bash
pkg install realtek-re-kmod
echo 'if_re_load="YES"' >> /boot/loader.conf.local
echo 'if_re_name="/boot/modules/if_re.ko"' >> /boot/loader.conf.local
```
[](https://forums.freebsd.org/threads/nanopi-r5s-and-freebsd-14.88967/)
- If the NICs still don’t work, check `dmesg` for errors related to PCIe interrupts or MAC addresses. You may need to build a custom kernel with updated Realtek drivers.[](https://forums.freebsd.org/threads/opnsense-nanopi-r5s-and-r6s-issues.88029/)
6. **Test and Finalize**
- Remove the SD card (if using eMMC for bootloader) and reboot.
- Verify that OPNsense boots from NVMe and that all hardware (NICs, NVMe, USB) is functional.
- Configure OPNsense via the web interface (default: `https://192.168.1.1`).
- Update the system and install necessary plugins using the repository provided by the image creator (e.g., `http://168.138.176.159/opnsense/`).[](https://yrzr.github.io/opnsense-22-for-aarch64/)
### Additional Notes
- **Driver Issues**: The Realtek 2.5GbE NICs (RTL8125BG) are a known pain point on FreeBSD/OPNsense for ARM64. If they don’t work, consider using the 1GbE port or exploring community patches.[](https://forums.freebsd.org/threads/nanopi-r5s-and-freebsd-14.88967/)[](https://forums.freebsd.org/threads/opnsense-nanopi-r5s-and-r6s-issues.88029/)
- **NVMe Support**: Ensure the kernel includes `nvme` and `phy_rockchip_naneng_combphy` modules for NVMe detection.[](https://nixos.wiki/wiki/NixOS_on_ARM/NanoPi-R6C)
- **Backup eMMC**: Before modifying eMMC, back up its contents using `dd` to avoid bricking the device.
- **Experimental Nature**: OPNsense on ARM64 is not officially supported, so expect potential bugs. Check forums like opnsense.org or freebsd.org for community support.[](https://forum.opnsense.org/index.php?topic=12186.150)[](https://forum.opnsense.org/index.php?topic=12186.210)
- **Alternative**: If OPNsense proves too problematic, consider running pfSense or OpenWrt, which have better ARM64 support for the NanoPi R5S.[](https://github.com/MichaIng/DietPi/issues/5901)
### Critical Considerations
- The sources indicate ongoing issues with Realtek NICs and storage detection (eMMC/SD) on ARM64 FreeBSD/OPNsense. Be prepared to troubleshoot or contribute to driver development.[](https://forums.freebsd.org/threads/nanopi-r5s-and-freebsd-14.88967/)[](https://forums.freebsd.org/threads/opnsense-nanopi-r5s-and-r6s-issues.88029/)
- Always verify the device paths (`/dev/sdX`, `/dev/mmcblk0`, `/dev/nvme0n1`) to avoid data loss.
- If you encounter boot issues, use RKDevTool to enter Maskrom mode and reflash eMMC.[](https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R3S)
If you run into specific errors during the process, let me know, and I can help troubleshoot further!
;
Comments
Post a Comment