nix-servo/not-os-patches/init_script_service.patch
linuswck 90f18a2a00 pl init: Correct the initialization sequence
- Si5340 should be initialized first before calling any PL register since if
    Si5340 is not preprogrammed, there is not PL system clock driving any PL register.
- Adc Initialization causes the PL MMCM to relock and trigger a global PL reset. Thus,
    CSR registers should only be altered after Adc is initialized successfully.
2025-04-08 12:51:39 +08:00

56 lines
1.8 KiB
Diff

diff --git a/runit.nix b/runit.nix
index 982823d..906fa24 100644
--- a/runit.nix
+++ b/runit.nix
@@ -28,6 +28,23 @@ in
environment.systemPackages = [ compat ];
environment.etc = lib.mkMerge [
{
+ "pl_init".source = pkgs.writeScript "pl_init" ''
+ #!/bin/sh
+ exec 2>&1
+
+ python -m pyfastservo.initialize
+ EXIT_CODE=$?
+
+ if [ $EXIT_CODE -eq 0 ]; then
+ # Add Symlink linien service to /etc/service
+ ln -sf /etc/linien-server /etc/service/linien-server
+ else
+ echo "PL Initialization failed. Linien Server Service is not Started."
+ fi
+
+ exit 0
+ '';
+
"runit/1".source = pkgs.writeScript "1" ''
#!${pkgs.runtimeShell}
${lib.optionalString config.not-os.simpleStaticIp ''
@@ -53,6 +70,8 @@ in
touch /etc/runit/stopit
chmod 0 /etc/runit/stopit
${if true then "" else "${pkgs.dhcpcd}/sbin/dhcpcd"}
+
+ /etc/pl_init
'';
"runit/2".source = pkgs.writeScript "2" ''
#!${pkgs.runtimeShell}
diff --git a/zynq_image.nix b/zynq_image.nix
index 0dad456..fce8797 100644
--- a/zynq_image.nix
+++ b/zynq_image.nix
@@ -51,11 +51,11 @@ in {
hostname ${config.networking.hostName}
exec setsid agetty ttyPS0 115200
'';
- "service/linien-server/run".source = pkgs.writeShellScript "linien-server" ''
+ "linien-server/run".source = pkgs.writeShellScript "linien-server" ''
exec 2>&1
exec setsid linien-server run
'';
- "service/linien-server/log/run".source = pkgs.writeShellScript "linien-server-logger" ''
+ "linien-server/log/run".source = pkgs.writeShellScript "linien-server-logger" ''
exec 2>&1
mkdir -p /root/linien-server-log
exec svlogd -tt /root/linien-server-log