| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| comfilepi:trixie:index [2026/07/03 04:36] – [Read-only File System] mfranklin | comfilepi:trixie:index [2026/07/03 08:55] (current) – [chrony] mfranklin |
|---|
| See the [[https://www.raspberrypi.com/news/trixie-the-new-version-of-raspberry-pi-os/|Raspberry Pi Trixie OS announcement]]. | See the [[https://www.raspberrypi.com/news/trixie-the-new-version-of-raspberry-pi-os/|Raspberry Pi Trixie OS announcement]]. |
| |
| | The Raspberry Pi Trixie OS has adopted [[https://www.raspberrypi.com/news/cloud-init-on-raspberry-pi-os/|cloud-init]] for first boot initialization, and the latest Raspberry Pi imager has removed the ability to customize custom OS images. Therefore, to customize the OS prior to booting (e.g. changing the default userid/password, adding authorized SSH keys, etc.) please edit the //user-data// file in the //bootfs// partition according the the instructions in the [[https://docs.cloud-init.io/en/latest/index.html|cloud-init documentation]] |
| ===== COMFILE Technology Changes ===== | ===== COMFILE Technology Changes ===== |
| | |
| | ==== Replace config.txt prior to booting ==== |
| | |
| | **IMPORTANT!** |
| | After installing the OS image to the ComfilePi's storage device, and prior to booting for the first time, you **MUST** replace the //config.txt// file with the model-specific //config.txt// file in the //bootfs// partition. For example, for the CPi-J070WR panel PC, overwrite //config.txt// with the //cpi-j070wr_config.tx//t file. Some models will not boot, or will not function correctly, without the correct //config.txt// file. |
| | |
| | ==== Partition Layout ==== |
| | |
| | Like Bookworm, the ComfilePi Trixie OS now has the following partition layout: |
| | |
| | ^ Label ^ Size ^ Mount Point ^ File System ^ Description ^ |
| | | bootfs | 512MB | /boot/firmware | FAT32 | System firmware (i.e. bootloader, kernel, and configuration) | |
| | | datafs | 1GB | /data | Ext4 | User data partition | |
| | | rootfs | Fills Remaining Space | / | Ext4 | Root file system (i.e. the actual operating system) | |
| | |
| | This layout was created to make it easier to [[#read-only_file_system|enable the read-only file system]], effectively making the //bootfs// and //rootfs// partitions read-only, while still having a place to write data to (i.e. the //datafs// partition). |
| | |
| | If the //datafs// partition is too small, and your SD card, eMMC, or other storage medium is large enough, you can use [[https://gparted.org/|gparted]], or other disk partitioning utilities, to adjust partition sizes as needed. Currently, the //rootfs// partition must be the last partition of the disk to maintain compatibility with some configuration utilities of the Raspberry Pi. |
| |
| ==== Read-only File System ==== | ==== Read-only File System ==== |
| </code> | </code> |
| |
| | ==== Preserving Changes to System Files ==== |
| | |
| | If you need a file on the //rootfs// partition to be read-write even when the read-only file system overlay is enabled, consider one of the following methods: |
| | |
| | === Method 1: Symbolic Link === |
| | |
| | - Disable the read-only file system, and reboot. |
| | - Move the file from the //rootfs// partition to an analogous location on the //datafs// partition. |
| | - [[https://manpages.debian.org/bookworm/coreutils/ln.1.en.html|Create a symbolic link]] on the //rootfs// partition that points to the file on the //datafs// partition. e.g. ''ln -s /data/etc/default/locale /etc/default/locale'' |
| | - Reenable the read-only file system and reboot. |
| | |
| | === Method 2: Bind Mount === |
| | |
| | A bind mount can also be used to make a file on the //datafs// partition appear at its original location on the //rootfs// partition. This is useful when the original path must remain a normal file or directory, or when the application does not work well with symbolic links. |
| | |
| | - Disable the read-only file system, and reboot. |
| | - Copy the file from the //rootfs// partition to an analogous location on the //datafs// partition. e.g. ''cp /etc/default/locale /data/etc/default/locale'' |
| | - Leave the original file in place on the //rootfs// partition. It will be used as the bind mount target. |
| | - Add a bind mount entry to ''/etc/fstab''. For example:<code> /data/etc/default/locale /etc/default/locale none bind 0 0 </code> |
| | - Reenable the read-only file system and reboot. |
| | - After rebooting, ''/etc/default/locale'' will appear to be in its original location, but its contents will actually come from ''/data/etc/default/locale''. Changes made to the file will be preserved on the writable //datafs// partition. |
| | |
| | ==== .NET 10 ==== |
| | |
| | The .NET 10 SDK and Microsoft’s Visual Studio Remote Debugger (//vsdbg//) are installed by default, so .NET development should be ready to go out of the box. |
| | |
| | Now that [[https://learn.microsoft.com/en-us/dotnet/core/install/linux-debian?tabs=dotnet10|Microsoft is publishing .NET installation packages for ARM64 Debian]], there is no need for COMFILE Technology to publish installation packages (e.g. //cpi-dotnet-sdk-9.0//) or for users to install .NET manually. Microsoft's repositories are already added to the operating system so you easily install, update, or remove packages with ''apt''. |
| | |
| | COMFILE Technology has made it easier than ever to develop .NET applications, even WinForms applications, for ARM Linux devices like the Comfile Pi. |
| | |
| | * [[:winforms:index|ComfileTech.WinForms]] - A port of Mono WinForms to .NET 10, maintained by COMFILE Technology. |
| | * [[:comfilepi:dotnet_core_development:remote_debugger:index|.NET Remote Debug Extension for Visual Studio |
| | ]] - Deploy, launch, and debug your .NET applications on the ComfilePi all from withing the Visual Studio development environment. |
| | * [[:comfilepi:dotnet_core_development:vscode_remote_debug_configurator:index|.NET Remote Debug Configurator for Visual Studio Code]] - Easily create the .json files to deploy, launch, and debug your .NET applications on the ComfilePi all from withing the Visual Studio Code development environment. |
| | |
| | Mono is no longer installed by default. Instead, please consider using the [[:winforms:index|ComfileTech.WinForms]] library which will allow you to use the latest version of .NET and C# to write WinForms applications for the ComfilePi. If you would like to use mono, install the //mono-complete// package from the Debian repositories. |
| | |
| | ==== chrony ==== |
| | |
| | The ComfilePi Trixie OS replaces //systemd-timesyncd// with [[https://chrony-project.org/|chrony]] to provide better support for real-time clock (RTC) control and configuration. |