User Tools

Site Tools

한국어

comfilepi:trixie:index

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
comfilepi:trixie:index [2026/07/03 04:28] – [Read-only File System] mfranklincomfilepi:trixie:index [2026/07/03 08:55] (current) – [chrony] mfranklin
Line 15: Line 15:
 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 ====
  
-It is highly recommended to, after provisioning your ComfilePi with your customizations, to enable the read-only file system.  +After provisioning your ComfilePi with your customizations, it is **highly recommended** to enable the read-only file system.  
  
   * It protects the //bootfs// and //rootfs// file systems from corruption.   * It protects the //bootfs// and //rootfs// file systems from corruption.
Line 27: Line 46:
 Due to several bugs in the Raspberry Pi read-only file system overlay, for Trixie, we have chosen to mount the file system read-only instead of using an overlay. Like Bookworm, this can be easily enabled via a GUI. Due to several bugs in the Raspberry Pi read-only file system overlay, for Trixie, we have chosen to mount the file system read-only instead of using an overlay. Like Bookworm, this can be easily enabled via a GUI.
  
-{Show UI screenshot}+{{ :comfilepi:trixie:ro-filesystem-gui.png }}
  
 Or, use the following commands: Or, use the following commands:
Line 43: Line 62:
 </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.
comfilepi/trixie/index.1783052888.txt.gz · Last modified: by mfranklin