2024-01-13 13:49:25 +00:00
|
|
|
{ lib, config, pkgs, ... }:
|
|
|
|
|
|
|
|
let
|
|
|
|
rpmsgexport = pkgs.stdenv.mkDerivation {
|
|
|
|
name = "rpmsgexport";
|
|
|
|
src = pkgs.fetchFromGitHub {
|
|
|
|
repo = "rpmsgexport";
|
|
|
|
owner = "andersson";
|
|
|
|
rev = "324d88d668f36c6a5e6a9c2003a050b8a5a3cd60";
|
|
|
|
hash = "sha256-k38gj+vtEE6/s+vALzW1jiuE3HdQqaGiICdAWndu6aU=";
|
|
|
|
};
|
|
|
|
makeFlags = ["prefix=${placeholder "out"}"];
|
|
|
|
};
|
2024-02-18 22:04:58 +00:00
|
|
|
|
|
|
|
drm-framebuffer = pkgs.stdenv.mkDerivation {
|
|
|
|
name = "drm-framebuffer";
|
|
|
|
src = pkgs.fetchFromGitHub {
|
|
|
|
owner = "embear-engineering";
|
|
|
|
repo = "drm-framebuffer";
|
|
|
|
rev = "80e862bd13bc0f96848af1c1b24b4b0e1fe5b23c";
|
|
|
|
hash = "sha256-YBRG8FUbhwAgquzehvo5Mu+xODcWOOG1HTMtUhNq6xo=";
|
|
|
|
};
|
|
|
|
nativeBuildInputs = [ pkgs.pkg-config ];
|
|
|
|
buildInputs = with pkgs; [ libdrm ];
|
|
|
|
preBuild = ''
|
|
|
|
makeFlagsArray+=("CFLAGS=$($PKG_CONFIG --libs --cflags libdrm)")
|
|
|
|
'';
|
|
|
|
makeFlags = [ "DESTDIR=${placeholder "out"}" "bindir=/bin" ];
|
|
|
|
};
|
|
|
|
|
2024-02-18 22:01:55 +00:00
|
|
|
modemFirmware = config.mobile.device.firmware.override {
|
|
|
|
modem = ./local/harpia-modem;
|
|
|
|
};
|
2024-01-13 13:49:25 +00:00
|
|
|
secrets = import ./local/secrets.nix;
|
|
|
|
in {
|
|
|
|
imports = [
|
2024-02-18 22:01:55 +00:00
|
|
|
(import ../mobile-nixos/lib/configuration.nix { device = "motorola-harpia"; })
|
2024-01-13 13:49:25 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
config = {
|
|
|
|
mobile = {
|
|
|
|
adbd.enable = true;
|
2024-02-18 22:01:55 +00:00
|
|
|
# boot.stage-1.gui.enable = false;
|
|
|
|
# beautification.splash = false;
|
|
|
|
# quirks.fb-refresher.enable = lib.mkForce false;
|
|
|
|
# quirks.qualcomm.msm8953-modem.enable = true;
|
|
|
|
boot.stage-1.firmware = [
|
|
|
|
modemFirmware
|
|
|
|
pkgs.wireless-regdb
|
|
|
|
];
|
2024-01-13 13:49:25 +00:00
|
|
|
};
|
2024-02-18 22:01:55 +00:00
|
|
|
hardware.firmware = [
|
|
|
|
modemFirmware
|
|
|
|
pkgs.wireless-regdb
|
|
|
|
];
|
2024-01-13 13:49:25 +00:00
|
|
|
system.stateVersion = "23.11";
|
|
|
|
|
2024-02-18 22:08:21 +00:00
|
|
|
boot.kernelParams = [
|
|
|
|
"dyndbg=\"file drivers/base/firmware_loader/main.c +fmp\""
|
|
|
|
# "dyndbg=\"file drivers/gpu/drm/panel/msm8953-generated/panel-boe-bs052fhm-a00-6c01.c +fmp\""
|
|
|
|
# "dyndbg=\"file drivers/video/backlight/qcom-wled.c +fmp\""
|
2024-01-13 13:49:25 +00:00
|
|
|
];
|
2024-02-18 22:08:21 +00:00
|
|
|
|
2024-02-19 19:57:03 +00:00
|
|
|
# according to fdisk, /dev/mmcblk0p41 is 30469887-7471104=22998783
|
|
|
|
# blocks, and if we let it get resized by whatever magic this is
|
|
|
|
# (I'm assuming systemd-growfs), on the subsequent boot we'll get
|
|
|
|
# an error
|
|
|
|
|
|
|
|
# EXT4-fs (mmcblk0p41): bad geometry: block count 2883067 exceeds size of device (2874848 blocks)
|
|
|
|
|
|
|
|
# in which neither number matches the reported size (they're both
|
|
|
|
# about 10% of it). cool.
|
|
|
|
|
|
|
|
boot.growPartition = lib.mkForce false;
|
|
|
|
fileSystems."/" = lib.mkDefault {
|
|
|
|
autoResize = lib.mkForce false;
|
|
|
|
};
|
|
|
|
|
2024-01-13 13:49:25 +00:00
|
|
|
networking = {
|
|
|
|
useDHCP = true;
|
|
|
|
hostName = "biscuit";
|
|
|
|
networkmanager = { enable = false; };
|
|
|
|
inherit (secrets) wireless;
|
|
|
|
};
|
|
|
|
|
|
|
|
services.openssh.enable = true;
|
|
|
|
|
|
|
|
# environment.systemPackages = [ qrtr tqftpserv ];
|
|
|
|
services.udev.extraRules = ''
|
|
|
|
# copied from https://github.com/andersson/rpmsgexport
|
|
|
|
ACTION=="add", SUBSYSTEM=="rpmsg", KERNEL=="rpmsg_ctrl[0-9]*", ATTRS{rpmsg_name}=="pronto", RUN+="${rpmsgexport}/bin/rpmsgexport /dev/$name APPS_RIVA_CTRL"
|
|
|
|
SUBSYSTEM=="rpmsg", KERNEL=="rpmsg_ctrl[0-9]*", ATTRS{rpmsg_name}=="?*", SYMLINK+="rpmsg/$attr{rpmsg_name}/ctrl"
|
|
|
|
SUBSYSTEM=="rpmsg", KERNEL=="rpmsg[0-9]*", ATTR{name}=="?*", ATTRS{rpmsg_name}=="?*", SYMLINK+="rpmsg/$attr{rpmsg_name}/$attr{name}"
|
|
|
|
'';
|
2024-02-18 22:04:58 +00:00
|
|
|
environment.systemPackages = with pkgs; [ drm-framebuffer];
|
2024-01-13 13:49:25 +00:00
|
|
|
|
|
|
|
users.users.dan = {
|
|
|
|
isNormalUser = true;
|
|
|
|
uid = 1000;
|
|
|
|
extraGroups = [ "wheel" "libvirtd" "docker" "dialout" ];
|
|
|
|
openssh.authorizedKeys.keys = import ../telent-nixos-config/users/dan/authorized-keys.nix;
|
|
|
|
};
|
|
|
|
|
2024-02-18 22:04:07 +00:00
|
|
|
users.users.root.openssh.authorizedKeys.keys = import ../telent-nixos-config/users/dan/authorized-keys.nix;
|
|
|
|
|
2024-01-13 13:49:25 +00:00
|
|
|
fileSystems."/boot" = {
|
|
|
|
device = "/dev/disk/by-partlabel/system";
|
|
|
|
fsType = "ext4";
|
|
|
|
};
|
2024-02-18 22:04:58 +00:00
|
|
|
hardware.opengl = {
|
|
|
|
enable = true; driSupport = true;
|
|
|
|
};
|
2024-01-13 13:49:25 +00:00
|
|
|
};
|
|
|
|
}
|