= Things to be done NixTurris is open-source project without any monetary backing. It is just an attempt to get NixOS and its advantages to the Turris routers. Please poke to these topics if you have some free time. These are big tasks. For the smaller ones please use Gitlab issues. == Bugs to be solved Generate template configuration in `/etc/nixos/`:: This is common way the installation of NixOS proceeds. We would use it only with NixOS rebuild on site but we should still do it. PCIe on Omnia does not work:: There are patches that make it work on Turris OS and attempt to port them to this repository but some important patch seems to be still missing as it doesn't work. Boot files should be copied to `/boot` on tarball:: The standard syslinux generator copies boot files (linux, initrd and dtb) to `/boot` while current implementation in tarball keeps them in Nix store. This prevents installation on separate boot partition. Native build for Turris Omnia doesn't work:: There are multiple packages that fail to build when compiled natively on armv7. This can be either due to Qemu or more likely that they are just not prepared to be build on armv7. The most of the packages fail their test phases as they most likely expect 64bit system. == Improvements to be tackled Firewall configuration with zones and masquarade:: The NixOS firewall should be expanded or replaced by firewall configuration that provides multiple zones with ability to set NAT between them. Easier Wi-Fi AP configuration:: There should be some better way to configure Wi-Fi without reading load of documentation on how to setup Hostapd. One option is to have minimal user configuration and fill the rest when generating configuration based on Wi-Fi adapter. The second and probably easier option is to just provide simple configuration with verified settings for the Wi-Fi cards shipped with Turris routers. Minimal system build:: The Nix evaluation consumes considerable amount of RAM and thus it is not possible to rebuild NixOS on the device itself without using SWAP. The option is to cut out all modules that are just not required as they deal with graphics output and desktop. The initial work on that is already started in this repository but issue is that even core modules depend on desktop specific ones. Nix build of U-Boot:: The initial support for this is already present but we are missing some helper script to flash files to the appropriate block devices. The Turris Mox firmware also requires combination with ARM Trusted Firmware which is not done yet. Boot modes on Omnia to select previous profiles:: By modifying the U-Boot environment for rescue we might be able to use Omnia standard LEDs rescue mode selection to select older profiles. The selected led is passed just by set environment variable to the U-Boot script but we would have to patch the U-Boot to change the rescue environment.