From 0b2391075932d3b78a4e700cd464f068874b6127 Mon Sep 17 00:00:00 2001 From: Malte Voos Date: Wed, 19 Feb 2025 21:16:51 +0100 Subject: update to firmware version v3.14.1.9 --- client.nix | 56 +++++++++++++--------- flake.nix | 52 ++++++++++----------- server.nix | 155 +++++++++++++++++++++++++++++++++---------------------------- 3 files changed, 143 insertions(+), 120 deletions(-) diff --git a/client.nix b/client.nix index 67c083c..ad58693 100644 --- a/client.nix +++ b/client.nix @@ -1,33 +1,43 @@ -{ writeShellApplication, curl, openssh, sshpass, rsync, sshPassword, sshPort -, httpPort }: +{ + writeShellApplication, + curl, + openssh, + sshpass, + rsync, + sshPassword, + sshPort, + httpPort, +}: writeShellApplication { name = "reMder-client"; - runtimeInputs = [ curl openssh sshpass rsync ]; + runtimeInputs = [ + curl + openssh + sshpass + rsync + ]; - text = let - ssh = - "sshpass -p ${sshPassword} ssh -q -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p ${ - toString sshPort - }"; - guest = "root@127.0.0.1"; - documentDir = "/home/root/.local/share/remarkable/xochitl"; - in '' - in="$1" - out="$2" + text = + let + ssh = "sshpass -p ${sshPassword} ssh -q -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p ${toString sshPort}"; + guest = "root@127.0.0.1"; + documentDir = "/home/root/.local/share/remarkable/xochitl"; + in + '' + in="$1" + out="$2" - in_basename="$(basename "$in")" + in_basename="$(basename "$in")" - ${ssh} ${guest} rm -rf ${documentDir} - ${ssh} ${guest} mkdir ${documentDir} + ${ssh} ${guest} rm -rf ${documentDir} + ${ssh} ${guest} mkdir ${documentDir} - rsync --rsh="${ssh}" "$in" ${guest}:${documentDir} - ${ssh} ${guest} "unzip '${documentDir}/$in_basename' -d ${documentDir}" - doc_id="$(${ssh} ${guest} find ${documentDir} -name '\*.metadata' -exec basename {} .metadata '\;')" + rsync --rsh="${ssh}" "$in" ${guest}:${documentDir} + ${ssh} ${guest} "unzip '${documentDir}/$in_basename' -d ${documentDir}" + doc_id="$(${ssh} ${guest} find ${documentDir} -name '\*.metadata' -exec basename {} .metadata '\;')" - curl -f -o "$out" "http://127.0.0.1:${ - toString httpPort - }/download/$doc_id/placeholder" - ''; + curl -f -o "$out" "http://127.0.0.1:${toString httpPort}/download/$doc_id/placeholder" + ''; } diff --git a/flake.nix b/flake.nix index ef3a18c..889e68e 100644 --- a/flake.nix +++ b/flake.nix @@ -1,31 +1,31 @@ { - inputs = { - nixpkgs.url = "github:malte-v/nixpkgs/raspi3"; - flake-utils.url = "github:numtide/flake-utils"; - }; - outputs = { self, nixpkgs, flake-utils }: - flake-utils.lib.eachDefaultSystem (system: - let - pkgs = import nixpkgs { inherit system; }; + outputs = + { self }: + { + overlays.default = + final: prev: + let + sshPassword = "1234"; + sshPort = 43922; + httpPort = 43980; - sshPassword = "1234"; - sshPort = 43922; - httpPort = 43980; + server = final.callPackage ./server.nix { + inherit sshPassword sshPort httpPort; + }; + client = final.callPackage ./client.nix { + inherit sshPassword sshPort httpPort; + }; - server = pkgs.callPackage ./server.nix { - inherit sshPassword sshPort httpPort; + reMder = final.symlinkJoin { + name = "reMder"; + paths = [ + client + server + ]; + }; + in + { + inherit reMder; }; - client = pkgs.callPackage ./client.nix { - inherit sshPassword sshPort httpPort; - }; - - reMder = pkgs.symlinkJoin { - name = "reMder"; - paths = [ client server ]; - }; - in { - packages = { inherit reMder; }; - - defaultPackage = reMder; - }); + }; } diff --git a/server.nix b/server.nix index b0d4e61..b301821 100644 --- a/server.nix +++ b/server.nix @@ -1,5 +1,16 @@ -{ fetchurl, writeText, libguestfs-with-appliance, pkgsCross, qemu -, runCommand, cpio, writeShellApplication, sshPassword, sshPort, httpPort }: +{ + fetchurl, + writeText, + libguestfs-with-appliance, + pkgsCross, + qemu, + runCommand, + cpio, + writeShellApplication, + sshPassword, + sshPort, + httpPort, +}: let updateName = "remarkable-production-memfault-image-3.14.1.9-rm2-public"; @@ -27,6 +38,14 @@ let ATTR{type}=="1", KERNEL=="eth*", NAME="usb0" ''; + usbNetworkConfig = writeText "10-usb.network" '' + [Match] + Name=usb* + + [Network] + DHCP=yes + ''; + xochitlService = writeText "xochitl.service" '' [Unit] Description=reMarkable main application @@ -53,75 +72,71 @@ let rootfsImage = runCommand "rm-rootfs.ext4" { nativeBuildInputs = [ cpio ]; } '' cpio -i --file ${updateArchive} - gzip -dc ${updateName}.ext4.gz > $out + gzip -dc ${updateName}.ext4.gz > $out ''; - diskImage = runCommand "rm-disk.qcow2" { - nativeBuildInputs = [ qemu libguestfs-with-appliance ]; - } '' - qemu-img create -f qcow2 $out 8G - - guestfish --rw --blocksize=512 --add $out <