diff --git a/flake.lock b/flake.lock index 66170fb..cfeb510 100644 --- a/flake.lock +++ b/flake.lock @@ -174,11 +174,11 @@ ] }, "locked": { - "lastModified": 1744145203, - "narHash": "sha256-I2oILRiJ6G+BOSjY+0dGrTPe080L3pbKpc+gCV3Nmyk=", + "lastModified": 1745224732, + "narHash": "sha256-0OWgbEKhpMLpk3WQi3ugOwxWW4Y6JVpKiQ+o0nuNzus=", "owner": "nix-community", "repo": "disko", - "rev": "76c0a6dba345490508f36c1aa3c7ba5b6b460989", + "rev": "1770bf1ae5da05564f86b969ef21c7228cc1a70b", "type": "github" }, "original": { @@ -536,11 +536,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1744646317, - "narHash": "sha256-Vs5vKsYOtUBdUyHZ9zmKZxhcEnwm9KM8LUhww44JKtE=", + "lastModified": 1745271027, + "narHash": "sha256-HlfNGLjNog0aPcKYaw7Pps3j1ZMZO6LaFenWVCtPfm0=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "8b7b169043de2a9d95f8505edb8b6576fac586fd", + "rev": "a4f7d7c594c70408f299ec8b794211c534709eaa", "type": "github" }, "original": { @@ -723,11 +723,11 @@ }, "mnw": { "locked": { - "lastModified": 1744592022, - "narHash": "sha256-QuWrCRiF3CUM99sgj3gXbIzB1IAVWS5IEfFHadbMA2g=", + "lastModified": 1744597985, + "narHash": "sha256-lLYB9/tQ0OAKonL0Ku963nqOm0aE1TmLavrzmXAr5Zc=", "owner": "Gerg-L", "repo": "mnw", - "rev": "cf9e19413b6c2d995b55565cd99facf9c751b653", + "rev": "cbdcbb5f8eb24e25b932bbc87e29299a72e34b64", "type": "github" }, "original": { @@ -769,11 +769,11 @@ ] }, "locked": { - "lastModified": 1744518957, - "narHash": "sha256-RLBSWQfTL0v+7uyskC5kP6slLK1jvIuhaAh8QvB75m4=", + "lastModified": 1745120797, + "narHash": "sha256-owQ0VQ+7cSanTVPxaZMWEzI22Q4bGnuvhVjLAJBNQ3E=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "4fc9ea78c962904f4ea11046f3db37c62e8a02fd", + "rev": "69716041f881a2af935021c1182ed5b0cc04d40e", "type": "github" }, "original": { @@ -788,11 +788,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1744682419, - "narHash": "sha256-mS501Cff7cxofR5YwV5e8lyKuZz07uF/U7EKFy9IIv4=", + "lastModified": 1745270600, + "narHash": "sha256-JzjxXJvdgG0junEMcqVNn0uF0d3YigJAslfZBV89Fcg=", "owner": "nix-community", "repo": "nix-vscode-extensions", - "rev": "317477b679d95ad2f40c960272324987e81786a4", + "rev": "f3de8ed9f6dc7ca9e0f8b3015d954f26f7ca43cc", "type": "github" }, "original": { @@ -897,11 +897,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1744463964, - "narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=", + "lastModified": 1744932701, + "narHash": "sha256-fusHbZCyv126cyArUwwKrLdCkgVAIaa/fQJYFlCEqiU=", "owner": "nixos", "repo": "nixpkgs", - "rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650", + "rev": "b024ced1aac25639f8ca8fdfc2f8c4fbd66c48ef", "type": "github" }, "original": { @@ -913,11 +913,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1744463964, - "narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=", + "lastModified": 1744932701, + "narHash": "sha256-fusHbZCyv126cyArUwwKrLdCkgVAIaa/fQJYFlCEqiU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650", + "rev": "b024ced1aac25639f8ca8fdfc2f8c4fbd66c48ef", "type": "github" }, "original": { @@ -929,17 +929,17 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1740547748, - "narHash": "sha256-Ly2fBL1LscV+KyCqPRufUBuiw+zmWrlJzpWOWbahplg=", + "lastModified": 1744868846, + "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3a05eebede89661660945da1f151959900903b6a", + "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c", "type": "github" }, "original": { "owner": "NixOS", "repo": "nixpkgs", - "rev": "3a05eebede89661660945da1f151959900903b6a", + "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c", "type": "github" } }, @@ -984,11 +984,11 @@ "treefmt-nix": "treefmt-nix_3" }, "locked": { - "lastModified": 1744745313, - "narHash": "sha256-eSaXmBxjQSeHiBOxA7jcuwvumBsKI8YL1iMs8LX8dZM=", + "lastModified": 1745267475, + "narHash": "sha256-tEP3odwByxCKdFFtnXIG6r80BAGUMt/AtUC8YPV5LxU=", "owner": "nix-community", "repo": "NUR", - "rev": "e667247df0a6f9cf0e19e991939ce87ada422ffe", + "rev": "af348f73e190e52b6527d33ffb21f1d3e441f35f", "type": "github" }, "original": { @@ -1009,11 +1009,11 @@ "systems": "systems_5" }, "locked": { - "lastModified": 1744639354, - "narHash": "sha256-AwUtAeDokimPucrPVj0YuoFWZ/xFVL4wy2wxZN5+u20=", + "lastModified": 1745219503, + "narHash": "sha256-oE7nEQBfLTwXqs0U5/fpsMVsfccD6NL1TlBE1z9S+Nc=", "owner": "notashelf", "repo": "nvf", - "rev": "f516cb43ceb2b071e6b9a6d5c9d681c8a3187f5f", + "rev": "4045c458dc3e3eaabbb94518a857651cff341542", "type": "github" }, "original": { @@ -1250,11 +1250,11 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1744707583, - "narHash": "sha256-IPFcShGro/UUp8BmwMBkq+6KscPlWQevZi9qqIwVUWg=", + "lastModified": 1744961264, + "narHash": "sha256-aRmUh0AMwcbdjJHnytg1e5h5ECcaWtIFQa6d9gI85AI=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "49d05555ccdd2592300099d6a657cc33571f4fe0", + "rev": "8d404a69efe76146368885110f29a2ca3700bee6", "type": "github" }, "original": { diff --git a/hosts/default.nix b/hosts/default.nix index e1c453c..14d6070 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -96,5 +96,13 @@ in { ../modules/devenv.nix ]; }; + homelab = mkSystem { + hostname = "homelab"; + username = "nickolaj"; + modules = [ + ../modules/required.nix + ../modules/shell.nix + ]; + }; }; } diff --git a/hosts/homelab/configuration.nix b/hosts/homelab/configuration.nix new file mode 100644 index 0000000..591a6df --- /dev/null +++ b/hosts/homelab/configuration.nix @@ -0,0 +1,29 @@ +{ + pkgs, + lib, + ... +}: { + boot = { + # Use grub as bootloader as it works better with mdadm + loader.grub.enable = true; + loader.systemd-boot.enable = lib.mkForce false; + + # HACK: silence mdadm warning on missing MAILADDR or PROGRAM setting + swraid.mdadmConf = '' + PROGRAM ${pkgs.coreutils}/bin/true + ''; + }; + + # Enable OpenGL + hardware.graphics = { + enable = true; + }; + + # Load nvidia driver for Xorg and Wayland + services.xserver.videoDrivers = ["nvidia"]; + + hardware.nvidia = { + open = true; + modesetting.enable = true; + }; +} diff --git a/hosts/homelab/disks.nix b/hosts/homelab/disks.nix new file mode 100644 index 0000000..43dee87 --- /dev/null +++ b/hosts/homelab/disks.nix @@ -0,0 +1,120 @@ +{pkgs, ...}: { + # Data disks + environment.systemPackages = with pkgs; [ + mergerfs + ]; + fileSystems."/mnt/data-disk/1" = { + device = "/dev/disk/by-id/ata-WDC_WD120EFBX-68B0EN0_5PKURKPF-part1"; + fsType = "ext4"; + }; + fileSystems."/mnt/data-disk/2" = { + device = "/dev/disk/by-id/ata-WDC_WD120EFBX-68B0EN0_5PKVMK7F-part1"; + fsType = "ext4"; + }; + fileSystems."/mnt/longhorn" = { + device = "/dev/disk/by-id/ata-TOSHIBA_HDWE160_26N7K5N0F56D-part1"; + fsType = "ext4"; + }; + fileSystems."/mnt/data" = { + fsType = "fuse.mergerfs"; + device = "/mnt/data-disk/*"; + options = ["cache.files=partial" "dropcacheonclose=true" "category.create=mfs"]; + }; + + # System disks + disko.devices = { + disk = { + system1 = { + type = "disk"; + device = "/dev/disk/by-id/ata-WDC_WDS500G2B0A-00SM50_1827AD804249"; + content = { + type = "gpt"; + partitions = { + boot = { + size = "1M"; + type = "EF02"; # for grub MBR + }; + ESP = { + size = "500M"; + type = "EF00"; + content = { + type = "mdraid"; + name = "boot"; + }; + }; + mdadm = { + size = "100%"; + content = { + type = "mdraid"; + name = "system"; + }; + }; + }; + }; + }; + system2 = { + type = "disk"; + device = "/dev/disk/by-id/ata-WDC_WDS500G2B0A-00SM50_1908BB805114"; + content = { + type = "gpt"; + partitions = { + boot = { + size = "1M"; + type = "EF02"; # for grub MBR + }; + ESP = { + size = "500M"; + type = "EF00"; + content = { + type = "mdraid"; + name = "boot"; + }; + }; + mdadm = { + size = "100%"; + content = { + type = "mdraid"; + name = "system"; + }; + }; + }; + }; + }; + }; + mdadm = { + boot = { + type = "mdadm"; + level = 1; + metadata = "1.0"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + mountOptions = ["umask=0077"]; + }; + }; + system = { + type = "mdadm"; + level = 1; + content = { + type = "btrfs"; + extraArgs = ["-f"]; + subvolumes = { + "@" = { + mountpoint = "/"; + mountOptions = ["compress=zstd" "noatime"]; + }; + "@nix" = { + mountpoint = "/nix"; + mountOptions = ["compress=zstd" "noatime"]; + }; + "@home" = { + mountpoint = "/home"; + mountOptions = ["compress=zstd" "noatime"]; + }; + }; + }; + }; + }; + }; +} diff --git a/hosts/homelab/docker-compose-out.sh b/hosts/homelab/docker-compose-out.sh new file mode 100644 index 0000000..31c4b6b --- /dev/null +++ b/hosts/homelab/docker-compose-out.sh @@ -0,0 +1,8 @@ +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +8dbebe22375a lscr.io/linuxserver/radarr:latest "/init" 13 hours ago Up 15 minutes 7878/tcp deployment-radarr-1 +b445f1a00c58 lscr.io/linuxserver/prowlarr:latest "/init" 13 hours ago Up 15 minutes 9696/tcp deployment-prowlarr-1 +8ae82963dbcc lscr.io/linuxserver/sonarr:latest "/init" 37 hours ago Up 15 minutes 8989/tcp deployment-sonarr-1 +44e019b912ea ghcr.io/open-webui/open-webui:ollama "bash start.sh" 37 hours ago Up 15 minutes (healthy) 8080/tcp open-webui +65956cc9ab2b lscr.io/linuxserver/sabnzbd:latest "/init" 3 days ago Up 15 minutes 8080/tcp deployment-sabnzbd-1 +bdddf0848dc3 lscr.io/linuxserver/bazarr:latest "/init" 4 days ago Up 15 minutes 6767/tcp deployment-bazarr-1 +b1492d62fcb0 nextcloud:latest "/entrypoint.sh apac…" 9 days ago Up 15 minutes 80/tcp deployment-nextcloud-1 diff --git a/hosts/homelab/facter.json b/hosts/homelab/facter.json new file mode 100644 index 0000000..1e8e4ec --- /dev/null +++ b/hosts/homelab/facter.json @@ -0,0 +1,3596 @@ +{ + "version": 1, + "system": "x86_64-linux", + "virtualisation": "none", + "hardware": { + "bios": { + "apm_info": { + "supported": false, + "enabled": false, + "version": 0, + "sub_version": 0, + "bios_flags": 0 + }, + "vbe_info": { + "version": 0, + "video_memory": 0 + }, + "pnp": true, + "pnp_id": 0, + "lba_support": false, + "low_memory_size": 653312, + "smbios_version": 516 + }, + "bridge": [ + { + "index": 14, + "attached_to": 0, + "class_list": ["pci", "bridge"], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 28 + }, + "base_class": { + "hex": "0006", + "name": "Bridge", + "value": 6 + }, + "sub_class": { + "hex": "0004", + "name": "PCI bridge", + "value": 4 + }, + "pci_interface": { + "hex": "0000", + "name": "Normal decode", + "value": 0 + }, + "vendor": { + "hex": "8086", + "name": "Intel Corporation", + "value": 32902 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "1c10", + "value": 7184 + }, + "sub_device": { + "hex": "5001", + "value": 20481 + }, + "revision": { + "hex": "00b5", + "value": 181 + }, + "model": "Intel PCI bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:1c.0", + "sysfs_bus_id": "0000:00:1c.0", + "resources": [ + { + "type": "irq", + "base": 16, + "triggered": 0, + "enabled": true + } + ], + "detail": { + "function": 0, + "command": 3, + "header_type": 1, + "secondary_bus": 2, + "irq": 16, + "prog_if": 0 + }, + "driver": "pcieport", + "drivers": ["pcieport"], + "module_alias": "pci:v00008086d00001C10sv00001458sd00005001bc06sc04i00" + }, + { + "index": 15, + "attached_to": 0, + "class_list": ["pci", "bridge"], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 31 + }, + "base_class": { + "hex": "0006", + "name": "Bridge", + "value": 6 + }, + "sub_class": { + "hex": "0001", + "name": "ISA bridge", + "value": 1 + }, + "vendor": { + "hex": "8086", + "name": "Intel Corporation", + "value": 32902 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "1c44", + "value": 7236 + }, + "sub_device": { + "hex": "5001", + "value": 20481 + }, + "revision": { + "hex": "0005", + "value": 5 + }, + "model": "Intel ISA bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:1f.0", + "sysfs_bus_id": "0000:00:1f.0", + "detail": { + "function": 0, + "command": 263, + "header_type": 0, + "secondary_bus": 0, + "irq": 0, + "prog_if": 0 + }, + "driver": "lpc_ich", + "driver_module": "lpc_ich", + "drivers": ["lpc_ich"], + "driver_modules": ["lpc_ich"], + "module_alias": "pci:v00008086d00001C44sv00001458sd00005001bc06sc01i00" + }, + { + "index": 16, + "attached_to": 0, + "class_list": ["pci", "bridge"], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 1 + }, + "base_class": { + "hex": "0006", + "name": "Bridge", + "value": 6 + }, + "sub_class": { + "hex": "0004", + "name": "PCI bridge", + "value": 4 + }, + "pci_interface": { + "hex": "0000", + "name": "Normal decode", + "value": 0 + }, + "vendor": { + "hex": "8086", + "name": "Intel Corporation", + "value": 32902 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "0101", + "value": 257 + }, + "sub_device": { + "hex": "5000", + "value": 20480 + }, + "revision": { + "hex": "0009", + "value": 9 + }, + "model": "Intel PCI bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:01.0", + "sysfs_bus_id": "0000:00:01.0", + "resources": [ + { + "type": "irq", + "base": 24, + "triggered": 0, + "enabled": true + } + ], + "detail": { + "function": 0, + "command": 1031, + "header_type": 1, + "secondary_bus": 1, + "irq": 24, + "prog_if": 0 + }, + "driver": "pcieport", + "drivers": ["pcieport"], + "module_alias": "pci:v00008086d00000101sv00001458sd00005000bc06sc04i00" + }, + { + "index": 21, + "attached_to": 0, + "class_list": ["pci", "bridge"], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 28 + }, + "base_class": { + "hex": "0006", + "name": "Bridge", + "value": 6 + }, + "sub_class": { + "hex": "0004", + "name": "PCI bridge", + "value": 4 + }, + "pci_interface": { + "hex": "0001", + "name": "Subtractive decode", + "value": 1 + }, + "vendor": { + "hex": "8086", + "name": "Intel Corporation", + "value": 32902 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "244e", + "value": 9294 + }, + "sub_device": { + "hex": "5001", + "value": 20481 + }, + "revision": { + "hex": "00b5", + "value": 181 + }, + "model": "Intel PCI bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:1c.3", + "sysfs_bus_id": "0000:00:1c.3", + "resources": [ + { + "type": "irq", + "base": 19, + "triggered": 0, + "enabled": true + } + ], + "detail": { + "function": 3, + "command": 1, + "header_type": 1, + "secondary_bus": 5, + "irq": 19, + "prog_if": 1 + }, + "driver": "pcieport", + "drivers": ["pcieport"], + "module_alias": "pci:v00008086d0000244Esv00001458sd00005001bc06sc04i01" + }, + { + "index": 23, + "attached_to": 0, + "class_list": ["pci", "bridge"], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 0 + }, + "base_class": { + "hex": "0006", + "name": "Bridge", + "value": 6 + }, + "sub_class": { + "hex": "0000", + "name": "Host bridge", + "value": 0 + }, + "vendor": { + "hex": "8086", + "name": "Intel Corporation", + "value": 32902 + }, + "device": { + "hex": "0100", + "value": 256 + }, + "revision": { + "hex": "0009", + "value": 9 + }, + "model": "Intel Host bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:00.0", + "sysfs_bus_id": "0000:00:00.0", + "detail": { + "function": 0, + "command": 6, + "header_type": 0, + "secondary_bus": 0, + "irq": 0, + "prog_if": 0 + }, + "driver": "snb_uncore", + "driver_module": "intel_uncore", + "drivers": ["snb_uncore"], + "driver_modules": ["intel_uncore"], + "module_alias": "pci:v00008086d00000100sv00000000sd00000000bc06sc00i00" + }, + { + "index": 24, + "attached_to": 0, + "class_list": ["pci", "bridge"], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 28 + }, + "base_class": { + "hex": "0006", + "name": "Bridge", + "value": 6 + }, + "sub_class": { + "hex": "0004", + "name": "PCI bridge", + "value": 4 + }, + "pci_interface": { + "hex": "0000", + "name": "Normal decode", + "value": 0 + }, + "vendor": { + "hex": "8086", + "name": "Intel Corporation", + "value": 32902 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "1c12", + "value": 7186 + }, + "sub_device": { + "hex": "5001", + "value": 20481 + }, + "revision": { + "hex": "00b5", + "value": 181 + }, + "model": "Intel PCI bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:1c.1", + "sysfs_bus_id": "0000:00:1c.1", + "resources": [ + { + "type": "irq", + "base": 17, + "triggered": 0, + "enabled": true + } + ], + "detail": { + "function": 1, + "command": 6, + "header_type": 1, + "secondary_bus": 3, + "irq": 17, + "prog_if": 0 + }, + "driver": "pcieport", + "drivers": ["pcieport"], + "module_alias": "pci:v00008086d00001C12sv00001458sd00005001bc06sc04i00" + }, + { + "index": 26, + "attached_to": 21, + "class_list": ["pci", "bridge"], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 5, + "number": 0 + }, + "base_class": { + "hex": "0006", + "name": "Bridge", + "value": 6 + }, + "sub_class": { + "hex": "0004", + "name": "PCI bridge", + "value": 4 + }, + "pci_interface": { + "hex": "0001", + "name": "Subtractive decode", + "value": 1 + }, + "vendor": { + "hex": "1283", + "value": 4739 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "8892", + "value": 34962 + }, + "sub_device": { + "hex": "5000", + "value": 20480 + }, + "revision": { + "hex": "0030", + "value": 48 + }, + "model": "PCI bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:1c.3/0000:05:00.0", + "sysfs_bus_id": "0000:05:00.0", + "resources": [ + { + "type": "irq", + "base": 11, + "triggered": 0, + "enabled": true + } + ], + "detail": { + "function": 0, + "command": 3, + "header_type": 1, + "secondary_bus": 6, + "irq": 11, + "prog_if": 1 + }, + "module_alias": "pci:v00001283d00008892sv00001458sd00005000bc06sc04i01" + }, + { + "index": 31, + "attached_to": 0, + "class_list": ["pci", "bridge"], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 28 + }, + "base_class": { + "hex": "0006", + "name": "Bridge", + "value": 6 + }, + "sub_class": { + "hex": "0004", + "name": "PCI bridge", + "value": 4 + }, + "pci_interface": { + "hex": "0000", + "name": "Normal decode", + "value": 0 + }, + "vendor": { + "hex": "8086", + "name": "Intel Corporation", + "value": 32902 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "1c14", + "value": 7188 + }, + "sub_device": { + "hex": "5001", + "value": 20481 + }, + "revision": { + "hex": "00b5", + "value": 181 + }, + "model": "Intel PCI bridge", + "sysfs_id": "/devices/pci0000:00/0000:00:1c.2", + "sysfs_bus_id": "0000:00:1c.2", + "resources": [ + { + "type": "irq", + "base": 18, + "triggered": 0, + "enabled": true + } + ], + "detail": { + "function": 2, + "command": 7, + "header_type": 1, + "secondary_bus": 4, + "irq": 18, + "prog_if": 0 + }, + "driver": "pcieport", + "drivers": ["pcieport"], + "module_alias": "pci:v00008086d00001C14sv00001458sd00005001bc06sc04i00" + } + ], + "cpu": [ + { + "architecture": "x86_64", + "vendor_name": "GenuineIntel", + "family": 6, + "model": 42, + "stepping": 7, + "features": [ + "fpu", + "vme", + "de", + "pse", + "tsc", + "msr", + "pae", + "mce", + "cx8", + "apic", + "sep", + "mtrr", + "pge", + "mca", + "cmov", + "pat", + "pse36", + "clflush", + "dts", + "acpi", + "mmx", + "fxsr", + "sse", + "sse2", + "ht", + "tm", + "pbe", + "syscall", + "nx", + "rdtscp", + "lm", + "constant_tsc", + "arch_perfmon", + "pebs", + "bts", + "rep_good", + "nopl", + "xtopology", + "nonstop_tsc", + "cpuid", + "aperfmperf", + "pni", + "pclmulqdq", + "dtes64", + "monitor", + "ds_cpl", + "vmx", + "smx", + "est", + "tm2", + "ssse3", + "cx16", + "xtpr", + "pdcm", + "pcid", + "sse4_1", + "sse4_2", + "x2apic", + "popcnt", + "tsc_deadline_timer", + "aes", + "xsave", + "avx", + "lahf_lm", + "epb", + "pti", + "ssbd", + "ibrs", + "ibpb", + "stibp", + "tpr_shadow", + "flexpriority", + "ept", + "vpid", + "xsaveopt", + "dtherm", + "ida", + "arat", + "pln", + "pts", + "vnmi", + "md_clear", + "flush_l1d" + ], + "bugs": [ + "cpu_meltdown", + "spectre_v1", + "spectre_v2", + "spec_store_bypass", + "l1tf", + "mds", + "swapgs", + "itlb_multihit", + "mmio_unknown" + ], + "bogo": 6784.45, + "cache": 8192, + "units": 16, + "physical_id": 0, + "siblings": 8, + "cores": 4, + "fpu": true, + "fpu_exception": true, + "cpuid_level": 13, + "write_protect": false, + "clflush_size": 64, + "cache_alignment": 64, + "address_sizes": { + "physical": 36, + "virtual": 48 + } + } + ], + "disk": [ + { + "index": 33, + "attached_to": 13, + "class_list": ["disk", "ide", "block_device"], + "bus_type": { + "hex": "0085", + "name": "IDE", + "value": 133 + }, + "slot": { + "bus": 1, + "number": 1 + }, + "base_class": { + "hex": "0106", + "name": "Mass Storage Device", + "value": 262 + }, + "sub_class": { + "hex": "0000", + "name": "Disk", + "value": 0 + }, + "vendor": { + "hex": "0000", + "name": "WDC", + "value": 0 + }, + "device": { + "hex": "0000", + "name": "WD120EFBX-68", + "value": 0 + }, + "revision": { + "hex": "0000", + "name": "0A85", + "value": 0 + }, + "serial": "5PKURKPF", + "model": "WDC WD120EFBX-68", + "sysfs_id": "/class/block/sdd", + "sysfs_bus_id": "1:0:1:0", + "sysfs_device_link": "/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:1/1:0:1:0", + "unix_device_name": "/dev/sdd", + "unix_device_number": { + "type": 98, + "major": 8, + "minor": 48, + "range": 16 + }, + "unix_device_names": [ + "/dev/disk/by-diskseq/14", + "/dev/disk/by-id/ata-WDC_WD120EFBX-68B0EN0_5PKURKPF", + "/dev/disk/by-id/wwn-0x5000cca291f5f884", + "/dev/disk/by-path/pci-0000:00:1f.2-ata-2.1", + "/dev/sdd" + ], + "resources": [ + { + "type": "disk_geo", + "cylinders": 1458933, + "heads": 255, + "sectors": 63, + "size": 0, + "geo_type": "logical" + }, + { + "type": "size", + "unit": "sectors", + "value_1": 23437770752, + "value_2": 512 + } + ], + "driver": "ata_piix", + "driver_module": "ata_piix", + "drivers": ["ata_piix", "sd"], + "driver_modules": ["ata_piix", "sd_mod"] + }, + { + "index": 34, + "attached_to": 13, + "class_list": ["disk", "ide", "block_device"], + "bus_type": { + "hex": "0085", + "name": "IDE", + "value": 133 + }, + "slot": { + "bus": 0, + "number": 0 + }, + "base_class": { + "hex": "0106", + "name": "Mass Storage Device", + "value": 262 + }, + "sub_class": { + "hex": "0000", + "name": "Disk", + "value": 0 + }, + "vendor": { + "hex": "0000", + "name": "WDC", + "value": 0 + }, + "device": { + "hex": "0000", + "name": "WDS500G2B0A-", + "value": 0 + }, + "revision": { + "hex": "0000", + "name": "90WD", + "value": 0 + }, + "serial": "1827AD804249", + "model": "WDC WDS500G2B0A-", + "sysfs_id": "/class/block/sdb", + "sysfs_bus_id": "0:0:0:0", + "sysfs_device_link": "/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0", + "unix_device_name": "/dev/sdb", + "unix_device_number": { + "type": 98, + "major": 8, + "minor": 16, + "range": 16 + }, + "unix_device_names": [ + "/dev/disk/by-diskseq/12", + "/dev/disk/by-id/ata-WDC_WDS500G2B0A-00SM50_1827AD804249", + "/dev/disk/by-id/wwn-0x5001b448b6f5c521", + "/dev/disk/by-path/pci-0000:00:1f.2-ata-1.0", + "/dev/sdb" + ], + "resources": [ + { + "type": "disk_geo", + "cylinders": 60801, + "heads": 255, + "sectors": 63, + "size": 0, + "geo_type": "logical" + }, + { + "type": "size", + "unit": "sectors", + "value_1": 976773168, + "value_2": 512 + } + ], + "driver": "ata_piix", + "driver_module": "ata_piix", + "drivers": ["ata_piix", "sd"], + "driver_modules": ["ata_piix", "sd_mod"] + }, + { + "index": 35, + "attached_to": 20, + "class_list": ["disk", "ide", "block_device"], + "bus_type": { + "hex": "0085", + "name": "IDE", + "value": 133 + }, + "slot": { + "bus": 2, + "number": 0 + }, + "base_class": { + "hex": "0106", + "name": "Mass Storage Device", + "value": 262 + }, + "sub_class": { + "hex": "0000", + "name": "Disk", + "value": 0 + }, + "vendor": { + "hex": "0000", + "name": "WDC", + "value": 0 + }, + "device": { + "hex": "0000", + "name": "WD120EFBX-68", + "value": 0 + }, + "revision": { + "hex": "0000", + "name": "0A85", + "value": 0 + }, + "serial": "5PKVMK7F", + "model": "WDC WD120EFBX-68", + "sysfs_id": "/class/block/sde", + "sysfs_bus_id": "2:0:0:0", + "sysfs_device_link": "/devices/pci0000:00/0000:00:1f.5/ata3/host2/target2:0:0/2:0:0:0", + "unix_device_name": "/dev/sde", + "unix_device_number": { + "type": 98, + "major": 8, + "minor": 64, + "range": 16 + }, + "unix_device_names": [ + "/dev/disk/by-diskseq/15", + "/dev/disk/by-id/ata-WDC_WD120EFBX-68B0EN0_5PKVMK7F", + "/dev/disk/by-id/wwn-0x5000cca291f66192", + "/dev/disk/by-path/pci-0000:00:1f.5-ata-1", + "/dev/disk/by-path/pci-0000:00:1f.5-ata-1.0", + "/dev/sde" + ], + "resources": [ + { + "type": "disk_geo", + "cylinders": 1458933, + "heads": 255, + "sectors": 63, + "size": 0, + "geo_type": "logical" + }, + { + "type": "size", + "unit": "sectors", + "value_1": 23437770752, + "value_2": 512 + } + ], + "driver": "ata_piix", + "driver_module": "ata_piix", + "drivers": ["ata_piix", "sd"], + "driver_modules": ["ata_piix", "sd_mod"] + }, + { + "index": 36, + "attached_to": 13, + "class_list": ["disk", "ide", "block_device"], + "bus_type": { + "hex": "0085", + "name": "IDE", + "value": 133 + }, + "slot": { + "bus": 1, + "number": 0 + }, + "base_class": { + "hex": "0106", + "name": "Mass Storage Device", + "value": 262 + }, + "sub_class": { + "hex": "0000", + "name": "Disk", + "value": 0 + }, + "vendor": { + "hex": "0000", + "name": "WDC", + "value": 0 + }, + "device": { + "hex": "0000", + "name": "WDS500G2B0A", + "value": 0 + }, + "revision": { + "hex": "0000", + "name": "00WD", + "value": 0 + }, + "serial": "1908BB805114", + "model": "WDC WDS500G2B0A", + "sysfs_id": "/class/block/sdc", + "sysfs_bus_id": "1:0:0:0", + "sysfs_device_link": "/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0", + "unix_device_name": "/dev/sdc", + "unix_device_number": { + "type": 98, + "major": 8, + "minor": 32, + "range": 16 + }, + "unix_device_names": [ + "/dev/disk/by-diskseq/13", + "/dev/disk/by-id/ata-WDC_WDS500G2B0A-00SM50_1908BB805114", + "/dev/disk/by-id/wwn-0x5001b448b93b7980", + "/dev/disk/by-path/pci-0000:00:1f.2-ata-2", + "/dev/disk/by-path/pci-0000:00:1f.2-ata-2.0", + "/dev/sdc" + ], + "resources": [ + { + "type": "disk_geo", + "cylinders": 60801, + "heads": 255, + "sectors": 63, + "size": 0, + "geo_type": "logical" + }, + { + "type": "size", + "unit": "sectors", + "value_1": 976773168, + "value_2": 512 + } + ], + "driver": "ata_piix", + "driver_module": "ata_piix", + "drivers": ["ata_piix", "sd"], + "driver_modules": ["ata_piix", "sd_mod"] + }, + { + "index": 37, + "attached_to": 13, + "class_list": ["disk", "ide", "block_device"], + "bus_type": { + "hex": "0085", + "name": "IDE", + "value": 133 + }, + "slot": { + "bus": 0, + "number": 1 + }, + "base_class": { + "hex": "0106", + "name": "Mass Storage Device", + "value": 262 + }, + "sub_class": { + "hex": "0000", + "name": "Disk", + "value": 0 + }, + "vendor": { + "hex": "0000", + "name": "TOSHIBA", + "value": 0 + }, + "device": { + "hex": "0000", + "name": "HDWE160", + "value": 0 + }, + "revision": { + "hex": "0000", + "name": "FS2A", + "value": 0 + }, + "serial": "26N7K5N0F56D", + "model": "TOSHIBA HDWE160", + "sysfs_id": "/class/block/sda", + "sysfs_bus_id": "0:0:1:0", + "sysfs_device_link": "/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:1/0:0:1:0", + "unix_device_name": "/dev/sda", + "unix_device_number": { + "type": 98, + "major": 8, + "minor": 0, + "range": 16 + }, + "unix_device_names": [ + "/dev/disk/by-diskseq/11", + "/dev/disk/by-id/ata-TOSHIBA_HDWE160_26N7K5N0F56D", + "/dev/disk/by-id/wwn-0x50000396dba02a07", + "/dev/disk/by-path/pci-0000:00:1f.2-ata-1", + "/dev/disk/by-path/pci-0000:00:1f.2-ata-1.1", + "/dev/sda" + ], + "resources": [ + { + "type": "disk_geo", + "cylinders": 729601, + "heads": 255, + "sectors": 63, + "size": 0, + "geo_type": "logical" + }, + { + "type": "size", + "unit": "sectors", + "value_1": 11721045168, + "value_2": 512 + } + ], + "driver": "ata_piix", + "driver_module": "ata_piix", + "drivers": ["ata_piix", "sd"], + "driver_modules": ["ata_piix", "sd_mod"] + } + ], + "graphics_card": [ + { + "index": 18, + "attached_to": 16, + "class_list": ["graphics_card", "pci"], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 1, + "number": 0 + }, + "base_class": { + "hex": "0003", + "name": "Display controller", + "value": 3 + }, + "sub_class": { + "hex": "0000", + "name": "VGA compatible controller", + "value": 0 + }, + "pci_interface": { + "hex": "0000", + "name": "VGA", + "value": 0 + }, + "vendor": { + "hex": "10de", + "name": "nVidia Corporation", + "value": 4318 + }, + "sub_vendor": { + "hex": "1462", + "value": 5218 + }, + "device": { + "hex": "13c2", + "value": 5058 + }, + "sub_device": { + "hex": "3160", + "value": 12640 + }, + "revision": { + "hex": "00a1", + "value": 161 + }, + "model": "nVidia VGA compatible controller", + "sysfs_id": "/devices/pci0000:00/0000:00:01.0/0000:01:00.0", + "sysfs_bus_id": "0000:01:00.0", + "resources": [ + { + "type": "io", + "base": 57088, + "range": 128, + "enabled": true, + "access": "read_write" + }, + { + "type": "irq", + "base": 12, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 3221225472, + "range": 268435456, + "enabled": true, + "access": "read_only", + "prefetch": "no" + }, + { + "type": "mem", + "base": 3724541952, + "range": 33554432, + "enabled": true, + "access": "read_only", + "prefetch": "no" + }, + { + "type": "mem", + "base": 4177526784, + "range": 16777216, + "enabled": true, + "access": "read_write", + "prefetch": "no" + }, + { + "type": "mem", + "base": 786432, + "range": 131072, + "enabled": false, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 0, + "command": 1027, + "header_type": 0, + "secondary_bus": 0, + "irq": 12, + "prog_if": 0 + }, + "module_alias": "pci:v000010DEd000013C2sv00001462sd00003160bc03sc00i00" + }, + { + "index": 30, + "attached_to": 0, + "class_list": ["graphics_card", "pci"], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 2 + }, + "base_class": { + "hex": "0003", + "name": "Display controller", + "value": 3 + }, + "sub_class": { + "hex": "0080", + "name": "Display controller", + "value": 128 + }, + "vendor": { + "hex": "8086", + "name": "Intel Corporation", + "value": 32902 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "0102", + "value": 258 + }, + "sub_device": { + "hex": "d000", + "value": 53248 + }, + "revision": { + "hex": "0009", + "value": 9 + }, + "model": "Intel Display controller", + "sysfs_id": "/devices/pci0000:00/0000:00:02.0", + "sysfs_bus_id": "0000:00:02.0", + "resources": [ + { + "type": "io", + "base": 65280, + "range": 64, + "enabled": true, + "access": "read_write" + }, + { + "type": "irq", + "base": 28, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 3758096384, + "range": 268435456, + "enabled": true, + "access": "read_only", + "prefetch": "no" + }, + { + "type": "mem", + "base": 4219469824, + "range": 4194304, + "enabled": true, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 0, + "command": 1031, + "header_type": 0, + "secondary_bus": 0, + "irq": 28, + "prog_if": 0 + }, + "driver": "i915", + "driver_module": "i915", + "drivers": ["i915"], + "driver_modules": ["i915"], + "module_alias": "pci:v00008086d00000102sv00001458sd0000D000bc03sc80i00" + } + ], + "hub": [ + { + "index": 38, + "attached_to": 45, + "class_list": ["usb", "hub"], + "bus_type": { + "hex": "0086", + "name": "USB", + "value": 134 + }, + "slot": { + "bus": 0, + "number": 0 + }, + "base_class": { + "hex": "010a", + "name": "Hub", + "value": 266 + }, + "vendor": { + "hex": "8087", + "value": 32903 + }, + "device": { + "hex": "0024", + "value": 36 + }, + "model": "Hub", + "sysfs_id": "/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0", + "sysfs_bus_id": "2-1:1.0", + "resources": [ + { + "type": "baud", + "speed": 480000000, + "bits": 0, + "stop_bits": 0, + "parity": 0, + "handshake": 0 + } + ], + "detail": { + "device_class": { + "hex": "0009", + "name": "hub", + "value": 9 + }, + "device_subclass": { + "hex": "0000", + "name": "per_interface", + "value": 0 + }, + "device_protocol": 1, + "interface_class": { + "hex": "0009", + "name": "hub", + "value": 9 + }, + "interface_subclass": { + "hex": "0000", + "name": "per_interface", + "value": 0 + }, + "interface_protocol": 0, + "interface_number": 0, + "interface_alternate_setting": 0 + }, + "hotplug": "usb", + "driver": "hub", + "drivers": ["hub"], + "module_alias": "usb:v8087p0024d0000dc09dsc00dp01ic09isc00ip00in00" + }, + { + "index": 39, + "attached_to": 12, + "class_list": ["usb", "hub"], + "bus_type": { + "hex": "0086", + "name": "USB", + "value": 134 + }, + "slot": { + "bus": 0, + "number": 0 + }, + "base_class": { + "hex": "010a", + "name": "Hub", + "value": 266 + }, + "vendor": { + "hex": "1d6b", + "name": "Linux 6.13.11 xhci-hcd", + "value": 7531 + }, + "device": { + "hex": "0002", + "name": "xHCI Host Controller", + "value": 2 + }, + "revision": { + "hex": "0000", + "name": "6.13", + "value": 0 + }, + "serial": "0000:03:00.0", + "model": "Linux 6.13.11 xhci-hcd xHCI Host Controller", + "sysfs_id": "/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/usb3/3-0:1.0", + "sysfs_bus_id": "3-0:1.0", + "resources": [ + { + "type": "baud", + "speed": 480000000, + "bits": 0, + "stop_bits": 0, + "parity": 0, + "handshake": 0 + } + ], + "detail": { + "device_class": { + "hex": "0009", + "name": "hub", + "value": 9 + }, + "device_subclass": { + "hex": "0000", + "name": "per_interface", + "value": 0 + }, + "device_protocol": 1, + "interface_class": { + "hex": "0009", + "name": "hub", + "value": 9 + }, + "interface_subclass": { + "hex": "0000", + "name": "per_interface", + "value": 0 + }, + "interface_protocol": 0, + "interface_number": 0, + "interface_alternate_setting": 0 + }, + "hotplug": "usb", + "driver": "hub", + "drivers": ["hub"], + "module_alias": "usb:v1D6Bp0002d0613dc09dsc00dp01ic09isc00ip00in00" + }, + { + "index": 41, + "attached_to": 12, + "class_list": ["usb", "hub"], + "bus_type": { + "hex": "0086", + "name": "USB", + "value": 134 + }, + "slot": { + "bus": 0, + "number": 0 + }, + "base_class": { + "hex": "010a", + "name": "Hub", + "value": 266 + }, + "vendor": { + "hex": "1d6b", + "name": "Linux 6.13.11 xhci-hcd", + "value": 7531 + }, + "device": { + "hex": "0003", + "name": "xHCI Host Controller", + "value": 3 + }, + "revision": { + "hex": "0000", + "name": "6.13", + "value": 0 + }, + "serial": "0000:03:00.0", + "model": "Linux 6.13.11 xhci-hcd xHCI Host Controller", + "sysfs_id": "/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/usb4/4-0:1.0", + "sysfs_bus_id": "4-0:1.0", + "detail": { + "device_class": { + "hex": "0009", + "name": "hub", + "value": 9 + }, + "device_subclass": { + "hex": "0000", + "name": "per_interface", + "value": 0 + }, + "device_protocol": 3, + "interface_class": { + "hex": "0009", + "name": "hub", + "value": 9 + }, + "interface_subclass": { + "hex": "0000", + "name": "per_interface", + "value": 0 + }, + "interface_protocol": 0, + "interface_number": 0, + "interface_alternate_setting": 0 + }, + "hotplug": "usb", + "driver": "hub", + "drivers": ["hub"], + "module_alias": "usb:v1D6Bp0003d0613dc09dsc00dp03ic09isc00ip00in00" + }, + { + "index": 42, + "attached_to": 25, + "class_list": ["usb", "hub"], + "bus_type": { + "hex": "0086", + "name": "USB", + "value": 134 + }, + "slot": { + "bus": 0, + "number": 0 + }, + "base_class": { + "hex": "010a", + "name": "Hub", + "value": 266 + }, + "vendor": { + "hex": "1d6b", + "name": "Linux 6.13.11 ehci_hcd", + "value": 7531 + }, + "device": { + "hex": "0002", + "name": "EHCI Host Controller", + "value": 2 + }, + "revision": { + "hex": "0000", + "name": "6.13", + "value": 0 + }, + "serial": "0000:00:1a.0", + "model": "Linux 6.13.11 ehci_hcd EHCI Host Controller", + "sysfs_id": "/devices/pci0000:00/0000:00:1a.0/usb1/1-0:1.0", + "sysfs_bus_id": "1-0:1.0", + "resources": [ + { + "type": "baud", + "speed": 480000000, + "bits": 0, + "stop_bits": 0, + "parity": 0, + "handshake": 0 + } + ], + "detail": { + "device_class": { + "hex": "0009", + "name": "hub", + "value": 9 + }, + "device_subclass": { + "hex": "0000", + "name": "per_interface", + "value": 0 + }, + "device_protocol": 0, + "interface_class": { + "hex": "0009", + "name": "hub", + "value": 9 + }, + "interface_subclass": { + "hex": "0000", + "name": "per_interface", + "value": 0 + }, + "interface_protocol": 0, + "interface_number": 0, + "interface_alternate_setting": 0 + }, + "hotplug": "usb", + "driver": "hub", + "drivers": ["hub"], + "module_alias": "usb:v1D6Bp0002d0613dc09dsc00dp00ic09isc00ip00in00" + }, + { + "index": 44, + "attached_to": 42, + "class_list": ["usb", "hub"], + "bus_type": { + "hex": "0086", + "name": "USB", + "value": 134 + }, + "slot": { + "bus": 0, + "number": 0 + }, + "base_class": { + "hex": "010a", + "name": "Hub", + "value": 266 + }, + "vendor": { + "hex": "8087", + "value": 32903 + }, + "device": { + "hex": "0024", + "value": 36 + }, + "model": "Hub", + "sysfs_id": "/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.0", + "sysfs_bus_id": "1-1:1.0", + "resources": [ + { + "type": "baud", + "speed": 480000000, + "bits": 0, + "stop_bits": 0, + "parity": 0, + "handshake": 0 + } + ], + "detail": { + "device_class": { + "hex": "0009", + "name": "hub", + "value": 9 + }, + "device_subclass": { + "hex": "0000", + "name": "per_interface", + "value": 0 + }, + "device_protocol": 1, + "interface_class": { + "hex": "0009", + "name": "hub", + "value": 9 + }, + "interface_subclass": { + "hex": "0000", + "name": "per_interface", + "value": 0 + }, + "interface_protocol": 0, + "interface_number": 0, + "interface_alternate_setting": 0 + }, + "hotplug": "usb", + "driver": "hub", + "drivers": ["hub"], + "module_alias": "usb:v8087p0024d0000dc09dsc00dp01ic09isc00ip00in00" + }, + { + "index": 45, + "attached_to": 27, + "class_list": ["usb", "hub"], + "bus_type": { + "hex": "0086", + "name": "USB", + "value": 134 + }, + "slot": { + "bus": 0, + "number": 0 + }, + "base_class": { + "hex": "010a", + "name": "Hub", + "value": 266 + }, + "vendor": { + "hex": "1d6b", + "name": "Linux 6.13.11 ehci_hcd", + "value": 7531 + }, + "device": { + "hex": "0002", + "name": "EHCI Host Controller", + "value": 2 + }, + "revision": { + "hex": "0000", + "name": "6.13", + "value": 0 + }, + "serial": "0000:00:1d.0", + "model": "Linux 6.13.11 ehci_hcd EHCI Host Controller", + "sysfs_id": "/devices/pci0000:00/0000:00:1d.0/usb2/2-0:1.0", + "sysfs_bus_id": "2-0:1.0", + "resources": [ + { + "type": "baud", + "speed": 480000000, + "bits": 0, + "stop_bits": 0, + "parity": 0, + "handshake": 0 + } + ], + "detail": { + "device_class": { + "hex": "0009", + "name": "hub", + "value": 9 + }, + "device_subclass": { + "hex": "0000", + "name": "per_interface", + "value": 0 + }, + "device_protocol": 0, + "interface_class": { + "hex": "0009", + "name": "hub", + "value": 9 + }, + "interface_subclass": { + "hex": "0000", + "name": "per_interface", + "value": 0 + }, + "interface_protocol": 0, + "interface_number": 0, + "interface_alternate_setting": 0 + }, + "hotplug": "usb", + "driver": "hub", + "drivers": ["hub"], + "module_alias": "usb:v1D6Bp0002d0613dc09dsc00dp00ic09isc00ip00in00" + } + ], + "keyboard": [ + { + "index": 43, + "attached_to": 44, + "class_list": ["keyboard", "usb"], + "bus_type": { + "hex": "0086", + "name": "USB", + "value": 134 + }, + "slot": { + "bus": 0, + "number": 0 + }, + "base_class": { + "hex": "0108", + "name": "Keyboard", + "value": 264 + }, + "sub_class": { + "hex": "0000", + "name": "Keyboard", + "value": 0 + }, + "vendor": { + "hex": "04b3", + "name": "IBM Corp.", + "value": 1203 + }, + "device": { + "hex": "3025", + "name": "USB NetVista Full Width Keyboard.", + "value": 12325 + }, + "revision": { + "hex": "0000", + "name": "1.09", + "value": 0 + }, + "model": "IBM USB NetVista Full Width Keyboard.", + "sysfs_id": "/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/1-1.6:1.0", + "sysfs_bus_id": "1-1.6:1.0", + "unix_device_name": "/dev/input/event0", + "unix_device_number": { + "type": 99, + "major": 13, + "minor": 64, + "range": 1 + }, + "unix_device_names": [ + "/dev/input/by-id/usb-LITE-ON_Technology_USB_NetVista_Full_Width_Keyboard.-event-kbd", + "/dev/input/by-path/pci-0000:00:1a.0-usb-0:1.6:1.0-event-kbd", + "/dev/input/by-path/pci-0000:00:1a.0-usbv2-0:1.6:1.0-event-kbd", + "/dev/input/event0" + ], + "resources": [ + { + "type": "baud", + "speed": 1500000, + "bits": 0, + "stop_bits": 0, + "parity": 0, + "handshake": 0 + } + ], + "detail": { + "device_class": { + "hex": "0000", + "name": "per_interface", + "value": 0 + }, + "device_subclass": { + "hex": "0000", + "name": "per_interface", + "value": 0 + }, + "device_protocol": 0, + "interface_class": { + "hex": "0003", + "name": "hid", + "value": 3 + }, + "interface_subclass": { + "hex": "0001", + "name": "audio", + "value": 1 + }, + "interface_protocol": 1, + "interface_number": 0, + "interface_alternate_setting": 0 + }, + "hotplug": "usb", + "driver": "usbhid", + "driver_module": "usbhid", + "drivers": ["usbhid"], + "driver_modules": ["usbhid"], + "driver_info": { + "type": "keyboard", + "xkb_rules": "xfree86", + "xkb_model": "pc104" + }, + "module_alias": "usb:v04B3p3025d0109dc00dsc00dp00ic03isc01ip01in00" + } + ], + "memory": [ + { + "index": 11, + "attached_to": 0, + "class_list": ["memory"], + "base_class": { + "hex": "0101", + "name": "Internally Used Class", + "value": 257 + }, + "sub_class": { + "hex": "0002", + "name": "Main Memory", + "value": 2 + }, + "model": "Main Memory", + "resources": [ + { + "type": "mem", + "base": 0, + "range": 25116897280, + "enabled": true, + "access": "read_write", + "prefetch": "unknown" + }, + { + "type": "phys_mem", + "range": 25769803776 + } + ] + } + ], + "network_controller": [ + { + "index": 29, + "attached_to": 31, + "class_list": ["network_controller", "pci"], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 4, + "number": 0 + }, + "base_class": { + "hex": "0002", + "name": "Network controller", + "value": 2 + }, + "sub_class": { + "hex": "0000", + "name": "Ethernet controller", + "value": 0 + }, + "vendor": { + "hex": "10ec", + "value": 4332 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "8168", + "value": 33128 + }, + "sub_device": { + "hex": "e000", + "value": 57344 + }, + "revision": { + "hex": "0006", + "value": 6 + }, + "model": "Ethernet controller", + "sysfs_id": "/devices/pci0000:00/0000:00:1c.2/0000:04:00.0", + "sysfs_bus_id": "0000:04:00.0", + "unix_device_name": "enp4s0", + "unix_device_names": ["enp4s0"], + "resources": [ + { + "type": "hwaddr", + "address": 53 + }, + { + "type": "io", + "base": 60928, + "range": 256, + "enabled": true, + "access": "read_write" + }, + { + "type": "irq", + "base": 18, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 4225728512, + "range": 16384, + "enabled": true, + "access": "read_only", + "prefetch": "no" + }, + { + "type": "mem", + "base": 4225757184, + "range": 4096, + "enabled": true, + "access": "read_only", + "prefetch": "no" + }, + { + "type": "phwaddr", + "address": 53 + } + ], + "detail": { + "function": 0, + "command": 1031, + "header_type": 0, + "secondary_bus": 0, + "irq": 18, + "prog_if": 0 + }, + "driver": "r8169", + "driver_module": "r8169", + "drivers": ["r8169"], + "driver_modules": ["r8169"], + "module_alias": "pci:v000010ECd00008168sv00001458sd0000E000bc02sc00i00" + } + ], + "network_interface": [ + { + "index": 46, + "attached_to": 29, + "class_list": ["network_interface"], + "base_class": { + "hex": "0107", + "name": "Network Interface", + "value": 263 + }, + "sub_class": { + "hex": "0001", + "name": "Ethernet", + "value": 1 + }, + "model": "Ethernet network interface", + "sysfs_id": "/class/net/enp4s0", + "sysfs_device_link": "/devices/pci0000:00/0000:00:1c.2/0000:04:00.0", + "unix_device_name": "enp4s0", + "unix_device_names": ["enp4s0"], + "resources": [ + { + "type": "hwaddr", + "address": 53 + }, + { + "type": "phwaddr", + "address": 53 + } + ], + "driver": "r8169", + "driver_module": "r8169", + "drivers": ["r8169"], + "driver_modules": ["r8169"] + }, + { + "index": 47, + "attached_to": 0, + "class_list": ["network_interface"], + "base_class": { + "hex": "0107", + "name": "Network Interface", + "value": 263 + }, + "sub_class": { + "hex": "0000", + "name": "Loopback", + "value": 0 + }, + "model": "Loopback network interface", + "sysfs_id": "/class/net/lo", + "unix_device_name": "lo", + "unix_device_names": ["lo"] + } + ], + "pci": [ + { + "index": 17, + "attached_to": 0, + "class_list": ["pci", "unknown"], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 22 + }, + "base_class": { + "hex": "0007", + "name": "Communication controller", + "value": 7 + }, + "sub_class": { + "hex": "0080", + "name": "Communication controller", + "value": 128 + }, + "vendor": { + "hex": "8086", + "name": "Intel Corporation", + "value": 32902 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "1c3a", + "value": 7226 + }, + "sub_device": { + "hex": "1c3a", + "value": 7226 + }, + "revision": { + "hex": "0004", + "value": 4 + }, + "model": "Intel Communication controller", + "sysfs_id": "/devices/pci0000:00/0000:00:16.0", + "sysfs_bus_id": "0000:00:16.0", + "resources": [ + { + "type": "irq", + "base": 26, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 4227854336, + "range": 16, + "enabled": true, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 0, + "command": 1030, + "header_type": 0, + "secondary_bus": 0, + "irq": 26, + "prog_if": 0 + }, + "driver": "mei_me", + "driver_module": "mei_me", + "drivers": ["mei_me"], + "driver_modules": ["mei_me"], + "module_alias": "pci:v00008086d00001C3Asv00001458sd00001C3Abc07sc80i00" + }, + { + "index": 22, + "attached_to": 0, + "class_list": ["pci", "unknown"], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 31 + }, + "base_class": { + "hex": "000c", + "name": "Serial bus controller", + "value": 12 + }, + "sub_class": { + "hex": "0005", + "name": "SMBus", + "value": 5 + }, + "vendor": { + "hex": "8086", + "name": "Intel Corporation", + "value": 32902 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "1c22", + "value": 7202 + }, + "sub_device": { + "hex": "5001", + "value": 20481 + }, + "revision": { + "hex": "0005", + "value": 5 + }, + "model": "Intel SMBus", + "sysfs_id": "/devices/pci0000:00/0000:00:1f.3", + "sysfs_bus_id": "0000:00:1f.3", + "resources": [ + { + "type": "io", + "base": 1280, + "range": 32, + "enabled": true, + "access": "read_write" + }, + { + "type": "irq", + "base": 18, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 4227842048, + "range": 256, + "enabled": true, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 3, + "command": 3, + "header_type": 0, + "secondary_bus": 0, + "irq": 18, + "prog_if": 0 + }, + "driver": "i801_smbus", + "driver_module": "i2c_i801", + "drivers": ["i801_smbus"], + "driver_modules": ["i2c_i801"], + "module_alias": "pci:v00008086d00001C22sv00001458sd00005001bc0Csc05i00" + } + ], + "sound": [ + { + "index": 19, + "attached_to": 0, + "class_list": ["sound", "pci"], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 27 + }, + "base_class": { + "hex": "0004", + "name": "Multimedia controller", + "value": 4 + }, + "sub_class": { + "hex": "0003", + "value": 3 + }, + "vendor": { + "hex": "8086", + "name": "Intel Corporation", + "value": 32902 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "1c20", + "value": 7200 + }, + "sub_device": { + "hex": "a002", + "value": 40962 + }, + "revision": { + "hex": "0005", + "value": 5 + }, + "model": "Intel Multimedia controller", + "sysfs_id": "/devices/pci0000:00/0000:00:1b.0", + "sysfs_bus_id": "0000:00:1b.0", + "resources": [ + { + "type": "irq", + "base": 29, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 4227825664, + "range": 16384, + "enabled": true, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 0, + "command": 1030, + "header_type": 0, + "secondary_bus": 0, + "irq": 29, + "prog_if": 0 + }, + "driver": "snd_hda_intel", + "driver_module": "snd_hda_intel", + "drivers": ["snd_hda_intel"], + "driver_modules": ["snd_hda_intel"], + "module_alias": "pci:v00008086d00001C20sv00001458sd0000A002bc04sc03i00" + }, + { + "index": 28, + "attached_to": 16, + "class_list": ["sound", "pci"], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 1, + "number": 0 + }, + "base_class": { + "hex": "0004", + "name": "Multimedia controller", + "value": 4 + }, + "sub_class": { + "hex": "0003", + "value": 3 + }, + "vendor": { + "hex": "10de", + "name": "nVidia Corporation", + "value": 4318 + }, + "sub_vendor": { + "hex": "1462", + "value": 5218 + }, + "device": { + "hex": "0fbb", + "value": 4027 + }, + "sub_device": { + "hex": "3160", + "value": 12640 + }, + "revision": { + "hex": "00a1", + "value": 161 + }, + "model": "nVidia Multimedia controller", + "sysfs_id": "/devices/pci0000:00/0000:00:01.0/0000:01:00.1", + "sysfs_bus_id": "0000:01:00.1", + "resources": [ + { + "type": "irq", + "base": 17, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 4211064832, + "range": 16384, + "enabled": true, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 1, + "command": 6, + "header_type": 0, + "secondary_bus": 0, + "irq": 17, + "prog_if": 0 + }, + "driver": "snd_hda_intel", + "driver_module": "snd_hda_intel", + "drivers": ["snd_hda_intel"], + "driver_modules": ["snd_hda_intel"], + "module_alias": "pci:v000010DEd00000FBBsv00001462sd00003160bc04sc03i00" + } + ], + "storage_controller": [ + { + "index": 13, + "attached_to": 0, + "class_list": ["storage_controller", "pci"], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 31 + }, + "base_class": { + "hex": "0001", + "name": "Mass storage controller", + "value": 1 + }, + "sub_class": { + "hex": "0001", + "name": "IDE interface", + "value": 1 + }, + "pci_interface": { + "hex": "008f", + "value": 143 + }, + "vendor": { + "hex": "8086", + "name": "Intel Corporation", + "value": 32902 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "1c00", + "value": 7168 + }, + "sub_device": { + "hex": "b002", + "value": 45058 + }, + "revision": { + "hex": "0005", + "value": 5 + }, + "model": "Intel IDE interface", + "sysfs_id": "/devices/pci0000:00/0000:00:1f.2", + "sysfs_bus_id": "0000:00:1f.2", + "resources": [ + { + "type": "io", + "base": 63744, + "range": 16, + "enabled": true, + "access": "read_write" + }, + { + "type": "io", + "base": 64000, + "range": 16, + "enabled": true, + "access": "read_write" + }, + { + "type": "io", + "base": 64256, + "range": 4, + "enabled": true, + "access": "read_write" + }, + { + "type": "io", + "base": 64512, + "range": 8, + "enabled": true, + "access": "read_write" + }, + { + "type": "io", + "base": 64768, + "range": 4, + "enabled": true, + "access": "read_write" + }, + { + "type": "io", + "base": 65024, + "range": 8, + "enabled": true, + "access": "read_write" + }, + { + "type": "irq", + "base": 19, + "triggered": 0, + "enabled": true + } + ], + "detail": { + "function": 2, + "command": 7, + "header_type": 0, + "secondary_bus": 0, + "irq": 19, + "prog_if": 143 + }, + "driver": "ata_piix", + "driver_module": "ata_piix", + "drivers": ["ata_piix"], + "driver_modules": ["ata_piix"], + "module_alias": "pci:v00008086d00001C00sv00001458sd0000B002bc01sc01i8F" + }, + { + "index": 20, + "attached_to": 0, + "class_list": ["storage_controller", "pci"], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 31 + }, + "base_class": { + "hex": "0001", + "name": "Mass storage controller", + "value": 1 + }, + "sub_class": { + "hex": "0001", + "name": "IDE interface", + "value": 1 + }, + "pci_interface": { + "hex": "0085", + "value": 133 + }, + "vendor": { + "hex": "8086", + "name": "Intel Corporation", + "value": 32902 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "1c08", + "value": 7176 + }, + "sub_device": { + "hex": "b002", + "value": 45058 + }, + "revision": { + "hex": "0005", + "value": 5 + }, + "model": "Intel IDE interface", + "sysfs_id": "/devices/pci0000:00/0000:00:1f.5", + "sysfs_bus_id": "0000:00:1f.5", + "resources": [ + { + "type": "io", + "base": 61952, + "range": 16, + "enabled": true, + "access": "read_write" + }, + { + "type": "io", + "base": 62208, + "range": 16, + "enabled": true, + "access": "read_write" + }, + { + "type": "io", + "base": 62464, + "range": 4, + "enabled": true, + "access": "read_write" + }, + { + "type": "io", + "base": 62720, + "range": 8, + "enabled": true, + "access": "read_write" + }, + { + "type": "io", + "base": 62976, + "range": 4, + "enabled": true, + "access": "read_write" + }, + { + "type": "io", + "base": 63232, + "range": 8, + "enabled": true, + "access": "read_write" + }, + { + "type": "irq", + "base": 19, + "triggered": 0, + "enabled": true + } + ], + "detail": { + "function": 5, + "command": 5, + "header_type": 0, + "secondary_bus": 0, + "irq": 19, + "prog_if": 133 + }, + "driver": "ata_piix", + "driver_module": "ata_piix", + "drivers": ["ata_piix"], + "driver_modules": ["ata_piix"], + "module_alias": "pci:v00008086d00001C08sv00001458sd0000B002bc01sc01i85" + } + ], + "system": { + "form_factor": "desktop" + }, + "unknown": [ + { + "index": 32, + "attached_to": 0, + "class_list": ["unknown"], + "base_class": { + "hex": "0007", + "name": "Communication controller", + "value": 7 + }, + "sub_class": { + "hex": "0000", + "name": "Serial controller", + "value": 0 + }, + "pci_interface": { + "hex": "0002", + "name": "16550", + "value": 2 + }, + "device": { + "hex": "0000", + "name": "16550A", + "value": 0 + }, + "model": "16550A", + "unix_device_name": "/dev/ttyS0", + "unix_device_names": ["/dev/ttyS0"], + "resources": [ + { + "type": "io", + "base": 1016, + "range": 0, + "enabled": true, + "access": "read_write" + }, + { + "type": "irq", + "base": 4, + "triggered": 0, + "enabled": true + } + ] + } + ], + "usb": [ + { + "index": 40, + "attached_to": 38, + "class_list": ["usb", "unknown"], + "bus_type": { + "hex": "0086", + "name": "USB", + "value": 134 + }, + "slot": { + "bus": 0, + "number": 0 + }, + "base_class": { + "hex": "0007", + "name": "Communication controller", + "value": 7 + }, + "sub_class": { + "hex": "0000", + "name": "Serial controller", + "value": 0 + }, + "pci_interface": { + "hex": "0080", + "value": 128 + }, + "vendor": { + "hex": "10c4", + "name": "Silicon Labs", + "value": 4292 + }, + "device": { + "hex": "ea60", + "name": "Sonoff Zigbee 3.0 USB Dongle Plus", + "value": 60000 + }, + "revision": { + "hex": "0000", + "name": "1.00", + "value": 0 + }, + "serial": "0001", + "model": "Silicon Sonoff Zigbee 3.0 USB Dongle Plus", + "sysfs_id": "/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0", + "sysfs_bus_id": "2-1.6:1.0", + "unix_device_name": "/dev/ttyUSB0", + "unix_device_number": { + "type": 99, + "major": 188, + "minor": 0, + "range": 1 + }, + "unix_device_names": [ + "/dev/serial/by-id/usb-Silicon_Labs_Sonoff_Zigbee_3.0_USB_Dongle_Plus_0001-if00-port0", + "/dev/serial/by-path/pci-0000:00:1d.0-usb-0:1.6:1.0-port0", + "/dev/serial/by-path/pci-0000:00:1d.0-usbv2-0:1.6:1.0-port0", + "/dev/ttyUSB0" + ], + "resources": [ + { + "type": "baud", + "speed": 12000000, + "bits": 0, + "stop_bits": 0, + "parity": 0, + "handshake": 0 + } + ], + "detail": { + "device_class": { + "hex": "0000", + "name": "per_interface", + "value": 0 + }, + "device_subclass": { + "hex": "0000", + "name": "per_interface", + "value": 0 + }, + "device_protocol": 0, + "interface_class": { + "hex": "00ff", + "name": "vendor_spec", + "value": 255 + }, + "interface_subclass": { + "hex": "0000", + "name": "per_interface", + "value": 0 + }, + "interface_protocol": 0, + "interface_number": 0, + "interface_alternate_setting": 0 + }, + "hotplug": "usb", + "driver": "cp210x", + "driver_module": "cp210x", + "drivers": ["cp210x"], + "driver_modules": ["cp210x"], + "module_alias": "usb:v10C4pEA60d0100dc00dsc00dp00icFFisc00ip00in00" + } + ], + "usb_controller": [ + { + "index": 12, + "attached_to": 24, + "class_list": ["usb_controller", "pci"], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 3, + "number": 0 + }, + "base_class": { + "hex": "000c", + "name": "Serial bus controller", + "value": 12 + }, + "sub_class": { + "hex": "0003", + "name": "USB Controller", + "value": 3 + }, + "pci_interface": { + "hex": "0030", + "value": 48 + }, + "vendor": { + "hex": "1b6f", + "value": 7023 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "7023", + "value": 28707 + }, + "sub_device": { + "hex": "5007", + "value": 20487 + }, + "revision": { + "hex": "0001", + "value": 1 + }, + "model": "USB Controller", + "sysfs_id": "/devices/pci0000:00/0000:00:1c.1/0000:03:00.0", + "sysfs_bus_id": "0000:03:00.0", + "resources": [ + { + "type": "irq", + "base": 25, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 4226777088, + "range": 32768, + "enabled": true, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 0, + "command": 1030, + "header_type": 0, + "secondary_bus": 0, + "irq": 25, + "prog_if": 48 + }, + "driver": "xhci_hcd", + "driver_module": "xhci_pci", + "drivers": ["xhci_hcd"], + "driver_modules": ["xhci_pci"], + "module_alias": "pci:v00001B6Fd00007023sv00001458sd00005007bc0Csc03i30" + }, + { + "index": 25, + "attached_to": 0, + "class_list": ["usb_controller", "pci"], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 26 + }, + "base_class": { + "hex": "000c", + "name": "Serial bus controller", + "value": 12 + }, + "sub_class": { + "hex": "0003", + "name": "USB Controller", + "value": 3 + }, + "pci_interface": { + "hex": "0020", + "name": "EHCI", + "value": 32 + }, + "vendor": { + "hex": "8086", + "name": "Intel Corporation", + "value": 32902 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "1c2d", + "value": 7213 + }, + "sub_device": { + "hex": "5006", + "value": 20486 + }, + "revision": { + "hex": "0005", + "value": 5 + }, + "model": "Intel USB Controller", + "sysfs_id": "/devices/pci0000:00/0000:00:1a.0", + "sysfs_bus_id": "0000:00:1a.0", + "resources": [ + { + "type": "irq", + "base": 18, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 4227850240, + "range": 1024, + "enabled": true, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 0, + "command": 6, + "header_type": 0, + "secondary_bus": 0, + "irq": 18, + "prog_if": 32 + }, + "driver": "ehci-pci", + "driver_module": "ehci_pci", + "drivers": ["ehci-pci"], + "driver_modules": ["ehci_pci"], + "driver_info": { + "type": "module", + "db_entry_0": ["ehci-hcd"], + "active": true, + "modprobe": true, + "names": ["ehci-hcd"], + "module_args": [""], + "conf": "" + }, + "module_alias": "pci:v00008086d00001C2Dsv00001458sd00005006bc0Csc03i20" + }, + { + "index": 27, + "attached_to": 0, + "class_list": ["usb_controller", "pci"], + "bus_type": { + "hex": "0004", + "name": "PCI", + "value": 4 + }, + "slot": { + "bus": 0, + "number": 29 + }, + "base_class": { + "hex": "000c", + "name": "Serial bus controller", + "value": 12 + }, + "sub_class": { + "hex": "0003", + "name": "USB Controller", + "value": 3 + }, + "pci_interface": { + "hex": "0020", + "name": "EHCI", + "value": 32 + }, + "vendor": { + "hex": "8086", + "name": "Intel Corporation", + "value": 32902 + }, + "sub_vendor": { + "hex": "1458", + "value": 5208 + }, + "device": { + "hex": "1c26", + "value": 7206 + }, + "sub_device": { + "hex": "5006", + "value": 20486 + }, + "revision": { + "hex": "0005", + "value": 5 + }, + "model": "Intel USB Controller", + "sysfs_id": "/devices/pci0000:00/0000:00:1d.0", + "sysfs_bus_id": "0000:00:1d.0", + "resources": [ + { + "type": "irq", + "base": 23, + "triggered": 0, + "enabled": true + }, + { + "type": "mem", + "base": 4227846144, + "range": 1024, + "enabled": true, + "access": "read_write", + "prefetch": "no" + } + ], + "detail": { + "function": 0, + "command": 6, + "header_type": 0, + "secondary_bus": 0, + "irq": 23, + "prog_if": 32 + }, + "driver": "ehci-pci", + "driver_module": "ehci_pci", + "drivers": ["ehci-pci"], + "driver_modules": ["ehci_pci"], + "driver_info": { + "type": "module", + "db_entry_0": ["ehci-hcd"], + "active": true, + "modprobe": true, + "names": ["ehci-hcd"], + "module_args": [""], + "conf": "" + }, + "module_alias": "pci:v00008086d00001C26sv00001458sd00005006bc0Csc03i20" + } + ] + }, + "smbios": { + "bios": { + "handle": 0, + "vendor": "Award Software International, Inc.", + "version": "FD", + "date": "03/20/2012", + "features": [ + "PCI supported", + "PnP supported", + "BIOS flashable", + "BIOS shadowing allowed", + "CD boot supported", + "Selectable boot supported", + "EDD spec supported", + "360kB Floppy supported", + "1.2MB Floppy supported", + "720kB Floppy supported", + "2.88MB Floppy supported", + "Print Screen supported", + "8042 Keyboard Services supported", + "Serial Services supported", + "Printer Services supported", + "CGA/Mono Video supported", + "ACPI supported", + "USB Legacy supported", + "BIOS Boot Spec supported" + ], + "start_address": "0xe0000", + "rom_size": 4194304 + }, + "board": { + "handle": 2, + "manufacturer": "Gigabyte Technology Co., Ltd.", + "product": "Z68AP-D3", + "version": "", + "board_type": null, + "features": null, + "location": "", + "chassis": 0 + }, + "cache": [ + { + "handle": 10, + "socket": "Internal Cache", + "size_max": 64, + "size_current": 64, + "speed": 0, + "mode": { + "hex": "0001", + "name": "Write Back", + "value": 1 + }, + "enabled": true, + "location": { + "hex": "0000", + "name": "Internal", + "value": 0 + }, + "socketed": false, + "level": 0, + "ecc": { + "hex": "0002", + "name": "Unknown", + "value": 2 + }, + "cache_type": { + "hex": "0002", + "name": "Unknown", + "value": 2 + }, + "associativity": { + "hex": "0002", + "name": "Unknown", + "value": 2 + }, + "sram_type_current": ["Synchronous"], + "sram_type_supported": ["Synchronous"] + }, + { + "handle": 11, + "socket": "External Cache", + "size_max": 2048, + "size_current": 8192, + "speed": 0, + "mode": { + "hex": "0001", + "name": "Write Back", + "value": 1 + }, + "enabled": true, + "location": { + "hex": "0000", + "name": "Internal", + "value": 0 + }, + "socketed": false, + "level": 1, + "ecc": { + "hex": "0002", + "name": "Unknown", + "value": 2 + }, + "cache_type": { + "hex": "0002", + "name": "Unknown", + "value": 2 + }, + "associativity": { + "hex": "0002", + "name": "Unknown", + "value": 2 + }, + "sram_type_current": ["Synchronous"], + "sram_type_supported": ["Synchronous"] + } + ], + "chassis": { + "handle": 3, + "manufacturer": "Gigabyte Technology Co., Ltd.", + "version": "", + "chassis_type": { + "hex": "0003", + "name": "Desktop", + "value": 3 + }, + "lock_present": false, + "bootup_state": { + "hex": "0002", + "name": "Unknown", + "value": 2 + }, + "power_state": { + "hex": "0002", + "name": "Unknown", + "value": 2 + }, + "thermal_state": { + "hex": "0002", + "name": "Unknown", + "value": 2 + }, + "security_state": { + "hex": "0002", + "name": "Unknown", + "value": 2 + }, + "oem": "0x0" + }, + "language": [ + { + "handle": 24, + "languages": [ + "n|US|iso8859-1", + "n|US|iso8859-1", + "r|CA|iso8859-1", + "a|JP|unicode" + ] + } + ], + "memory_array": [ + { + "handle": 25, + "location": { + "hex": "0003", + "name": "Motherboard", + "value": 3 + }, + "usage": { + "hex": "0003", + "name": "System memory", + "value": 3 + }, + "ecc": { + "hex": "0003", + "name": "None", + "value": 3 + }, + "max_size": 33554432, + "error_handle": 65534, + "slots": 4 + } + ], + "memory_array_mapped_address": [ + { + "handle": 30, + "array_handle": 25, + "start_address": 0, + "end_address": 25769803776, + "part_width": 1 + } + ], + "memory_device": [ + { + "handle": 26, + "location": "A0", + "bank_location": "Bank0/1", + "manufacturer": "", + "part_number": "", + "array_handle": 25, + "error_handle": 65534, + "width": 2244, + "ecc_bits": 60, + "size": 4194304, + "form_factor": { + "hex": "0009", + "name": "DIMM", + "value": 9 + }, + "set": 0, + "memory_type": { + "hex": "0002", + "name": "Unknown", + "value": 2 + }, + "memory_type_details": null, + "speed": 1333 + }, + { + "handle": 27, + "location": "A1", + "bank_location": "Bank2/3", + "manufacturer": "", + "part_number": "", + "array_handle": 25, + "error_handle": 65534, + "width": 2244, + "ecc_bits": 60, + "size": 4194304, + "form_factor": { + "hex": "0009", + "name": "DIMM", + "value": 9 + }, + "set": 0, + "memory_type": { + "hex": "0002", + "name": "Unknown", + "value": 2 + }, + "memory_type_details": null, + "speed": 1333 + }, + { + "handle": 28, + "location": "A2", + "bank_location": "Bank4/5", + "manufacturer": "", + "part_number": "", + "array_handle": 25, + "error_handle": 65534, + "width": 2050, + "ecc_bits": 254, + "size": 8388608, + "form_factor": { + "hex": "0009", + "name": "DIMM", + "value": 9 + }, + "set": 0, + "memory_type": { + "hex": "0002", + "name": "Unknown", + "value": 2 + }, + "memory_type_details": null, + "speed": 1333 + }, + { + "handle": 29, + "location": "A3", + "bank_location": "Bank6/7", + "manufacturer": "", + "part_number": "", + "array_handle": 25, + "error_handle": 65534, + "width": 2050, + "ecc_bits": 254, + "size": 8388608, + "form_factor": { + "hex": "0009", + "name": "DIMM", + "value": 9 + }, + "set": 0, + "memory_type": { + "hex": "0002", + "name": "Unknown", + "value": 2 + }, + "memory_type_details": null, + "speed": 1333 + } + ], + "memory_device_mapped_address": [ + { + "handle": 31, + "memory_device_handle": 26, + "array_map_handle": 30, + "start_address": 0, + "end_address": 4294967296, + "row_position": 1, + "interleave_position": 0, + "interleave_depth": 0 + }, + { + "handle": 32, + "memory_device_handle": 27, + "array_map_handle": 30, + "start_address": 4294967296, + "end_address": 8589934592, + "row_position": 1, + "interleave_position": 0, + "interleave_depth": 0 + }, + { + "handle": 33, + "memory_device_handle": 28, + "array_map_handle": 30, + "start_address": 8589934592, + "end_address": 17179869184, + "row_position": 1, + "interleave_position": 0, + "interleave_depth": 0 + }, + { + "handle": 34, + "memory_device_handle": 29, + "array_map_handle": 30, + "start_address": 17179869184, + "end_address": 25769803776, + "row_position": 1, + "interleave_position": 0, + "interleave_depth": 0 + } + ], + "port_connector": [ + { + "handle": 12, + "port_type": { + "hex": "00ff", + "name": "Other", + "value": 255 + }, + "internal_connector_type": { + "hex": "0016", + "name": "On Board IDE", + "value": 22 + }, + "internal_reference_designator": "PRIMARY IDE" + }, + { + "handle": 13, + "port_type": { + "hex": "00ff", + "name": "Other", + "value": 255 + }, + "internal_connector_type": { + "hex": "0016", + "name": "On Board IDE", + "value": 22 + }, + "internal_reference_designator": "SECONDARY IDE" + }, + { + "handle": 14, + "port_type": { + "hex": "00a1", + "name": "8251 FIFO Compatible", + "value": 161 + }, + "internal_connector_type": { + "hex": "0017", + "name": "On Board Floppy", + "value": 23 + }, + "internal_reference_designator": "FDD" + }, + { + "handle": 15, + "port_type": { + "hex": "0007", + "name": "Serial Port 16450 Compatible", + "value": 7 + }, + "internal_connector_type": { + "hex": "0018", + "name": "9 Pin Dual Inline [pin 10 cut]", + "value": 24 + }, + "internal_reference_designator": "COM1", + "external_connector_type": { + "hex": "0008", + "name": "DB-9 pin male", + "value": 8 + } + }, + { + "handle": 16, + "port_type": { + "hex": "0007", + "name": "Serial Port 16450 Compatible", + "value": 7 + }, + "internal_connector_type": { + "hex": "0018", + "name": "9 Pin Dual Inline [pin 10 cut]", + "value": 24 + }, + "internal_reference_designator": "COM2", + "external_connector_type": { + "hex": "0008", + "name": "DB-9 pin male", + "value": 8 + } + }, + { + "handle": 17, + "port_type": { + "hex": "0005", + "name": "Parallel Port ECP/EPP", + "value": 5 + }, + "internal_connector_type": { + "hex": "0005", + "name": "DB-25 pin female", + "value": 5 + }, + "internal_reference_designator": "LPT1", + "external_connector_type": { + "hex": "0005", + "name": "DB-25 pin female", + "value": 5 + } + }, + { + "handle": 18, + "port_type": { + "hex": "000d", + "name": "Keyboard Port", + "value": 13 + }, + "internal_connector_type": { + "hex": "00ff", + "name": "Other", + "value": 255 + }, + "internal_reference_designator": "Keyboard", + "external_connector_type": { + "hex": "000f", + "name": "PS/2", + "value": 15 + } + }, + { + "handle": 19, + "port_type": { + "hex": "000e", + "name": "Mouse Port", + "value": 14 + }, + "internal_connector_type": { + "hex": "000f", + "name": "PS/2", + "value": 15 + }, + "internal_reference_designator": "PS/2 Mouse", + "external_connector_type": { + "hex": "000f", + "name": "PS/2", + "value": 15 + }, + "external_reference_designator": "No Detected" + }, + { + "handle": 20, + "port_type": { + "hex": "0010", + "name": "USB", + "value": 16 + }, + "internal_reference_designator": "USB", + "external_connector_type": { + "hex": "0012", + "name": "Access Bus [USB]", + "value": 18 + } + }, + { + "handle": 21, + "port_type": { + "hex": "0010", + "name": "USB", + "value": 16 + }, + "internal_reference_designator": "USB", + "external_connector_type": { + "hex": "0012", + "name": "Access Bus [USB]", + "value": 18 + } + } + ], + "processor": [ + { + "handle": 4, + "socket": "Socket 1155", + "socket_type": { + "hex": "000f", + "name": "Socket 478", + "value": 15 + }, + "socket_populated": true, + "manufacturer": "Intel", + "version": "Intel(R) Core(TM) i7-2600 CPU", + "part": "", + "processor_type": { + "hex": "0003", + "name": "CPU", + "value": 3 + }, + "processor_family": { + "hex": "0001", + "name": "Other", + "value": 1 + }, + "processor_status": { + "hex": "0001", + "name": "Enabled", + "value": 1 + }, + "clock_ext": 100, + "clock_max": 4000, + "cache_handle_l1": 10, + "cache_handle_l2": 11, + "cache_handle_l3": 0 + } + ], + "slot": [ + { + "handle": 22, + "designation": "PCI", + "slot_type": { + "hex": "0006", + "name": "PCI", + "value": 6 + }, + "bus_width": { + "hex": "0005", + "name": "32 bit", + "value": 5 + }, + "usage": { + "hex": "0003", + "name": "Available", + "value": 3 + }, + "length": { + "hex": "0004", + "name": "Long", + "value": 4 + }, + "id": 0, + "features": ["5.0 V", "3.3 V", "PME#"] + }, + { + "handle": 23, + "designation": "PCI", + "slot_type": { + "hex": "0006", + "name": "PCI", + "value": 6 + }, + "bus_width": { + "hex": "0005", + "name": "32 bit", + "value": 5 + }, + "usage": { + "hex": "0003", + "name": "Available", + "value": 3 + }, + "length": { + "hex": "0004", + "name": "Long", + "value": 4 + }, + "id": 0, + "features": ["5.0 V", "3.3 V", "PME#"] + } + ], + "system": { + "handle": 1, + "manufacturer": "Gigabyte Technology Co., Ltd.", + "product": "Z68AP-D3", + "version": "", + "wake_up": { + "hex": "0006", + "name": "Power Switch", + "value": 6 + } + } + } +} diff --git a/hosts/homelab/flame.nix b/hosts/homelab/flame.nix new file mode 100644 index 0000000..80feda9 --- /dev/null +++ b/hosts/homelab/flame.nix @@ -0,0 +1,27 @@ +_: let + dataDir = "/var/lib/flame"; + domain = "flame.nickolaj.com"; +in { + services.nginx.virtualHosts."${domain}" = { + enableACME = true; + forceSSL = true; + locations."/" = { + proxyPass = "http://127.0.0.1:5005"; + }; + }; + + virtualisation.oci-containers = { + containers = { + flame = { + autoStart = true; + image = "pawelmalak/flame:2.3.1"; + volumes = [ + "${dataDir}:/app/data" + ]; + ports = [ + "127.0.0.1:5005:5005" + ]; + }; + }; + }; +} diff --git a/hosts/homelab/home-assistant.nix b/hosts/homelab/home-assistant.nix new file mode 100644 index 0000000..3818da1 --- /dev/null +++ b/hosts/homelab/home-assistant.nix @@ -0,0 +1,175 @@ +{ + pkgsUnstable, + pkgs, + config, + ... +}: let + mosquittoPort = 1883; + zigbee2mqttPort = 8080; + homeAssistantPort = 8123; +in { + age.secrets = { + "zigbee2mqtt-secret.yaml" = { + rekeyFile = ../../secrets/hosts/homelab/zigbee2mqtt-secret.yaml.age; + owner = "zigbee2mqtt"; + group = "zigbee2mqtt"; + }; + z2m-basic-auth = { + rekeyFile = ../../secrets/hosts/homelab/basic-auth.age; + owner = config.services.nginx.user; + inherit (config.services.nginx) group; + }; + mosquitto-zigbee2mqtt.rekeyFile = ../../secrets/hosts/homelab/mosquitto-zigbee2mqtt.age; + mosquitto-sas.rekeyFile = ../../secrets/hosts/homelab/mosquitto-sas.age; + mosquitto-ha.rekeyFile = ../../secrets/hosts/homelab/mosquitto-ha.age; + }; + + networking.firewall.allowedTCPPorts = [ + mosquittoPort + ]; + + services = { + nginx.virtualHosts = { + "zigbee.nickolaj.com" = { + enableACME = true; + forceSSL = true; + locations."/" = { + proxyPass = "http://localhost:${toString zigbee2mqttPort}"; + proxyWebsockets = true; + }; + basicAuthFile = "${config.age.secrets.z2m-basic-auth.path}"; + }; + "ha.nickolaj.com" = { + enableACME = true; + forceSSL = true; + locations."/" = { + proxyPass = "http://localhost:${toString homeAssistantPort}"; + proxyWebsockets = true; + }; + }; + }; + + home-assistant = { + enable = true; + package = pkgsUnstable.home-assistant; + customComponents = with pkgsUnstable.home-assistant-custom-components; [ + adaptive_lighting + sleep_as_android + (pkgs.buildHomeAssistantComponent rec { + owner = "Sian-Lee-SA"; + domain = "switch_manager"; + version = "v2.0.4b"; + src = pkgs.fetchFromGitHub { + inherit owner; + repo = "Home-Assistant-Switch-Manager"; + rev = version; + hash = "sha256-W9xO3JjnRKHk/dlXMA6y5nEJl/KsGzPvJoumGw+nohw="; + }; + }) + ]; + extraComponents = [ + "default_config" + "met" + "mqtt" + "esphome" + "google" + "spotify" + "unifi" + "upnp" + "homeassistant_hardware" + ]; + config = { + homeassistant = { + name = "Home"; + latitude = "56.2"; + longitude = "10.2"; + elevation = "0"; + unit_system = "metric"; + time_zone = "Europe/Copenhagen"; + }; + frontend = { + themes = "!include_dir_merge_named themes"; + }; + http = { + server_port = homeAssistantPort; + use_x_forwarded_for = true; + trusted_proxies = [ + "127.0.0.1" + "::1" + ]; + base_url = "https://ha.nickolaj.com"; + }; + + automation = "!include automations.yaml"; + script = "!include scripts.yaml"; + scene = "!include scenes.yaml"; + }; + }; + + mosquitto = { + enable = true; + listeners = [ + { + port = mosquittoPort; + users."zigbee2mqtt" = { + acl = ["readwrite #"]; + passwordFile = "${config.age.secrets.mosquitto-zigbee2mqtt.path}"; + }; + users."homeassistant" = { + acl = ["readwrite #"]; + passwordFile = "${config.age.secrets.mosquitto-ha.path}"; + }; + users."sleep_as_android" = { + acl = ["readwrite SleepAsAndroid"]; + passwordFile = "${config.age.secrets.mosquitto-sas.path}"; + }; + } + ]; + }; + + zigbee2mqtt = { + enable = true; + settings = { + homeassistant = { + enabled = true; + }; + mqtt = { + base_topic = "zigbee2mqtt"; + server = "mqtt://localhost:${toString mosquittoPort}"; + user = "zigbee2mqtt"; + password = "!${config.age.secrets."zigbee2mqtt-secret.yaml".path} password"; + }; + frontend = { + enabled = true; + port = zigbee2mqttPort; + }; + serial = { + port = "/dev/serial/by-id/usb-Silicon_Labs_Sonoff_Zigbee_3.0_USB_Dongle_Plus_0001-if00-port0"; + adapter = "zstack"; + }; + advanced = { + network_key = [ + 233 + 138 + 136 + 76 + 51 + 117 + 128 + 127 + 74 + 84 + 33 + 179 + 116 + 61 + 79 + 101 + ]; + channel = 25; + log_level = "debug"; + }; + }; + }; + }; +} diff --git a/hosts/homelab/netdata.nix b/hosts/homelab/netdata.nix new file mode 100644 index 0000000..4cf4c00 --- /dev/null +++ b/hosts/homelab/netdata.nix @@ -0,0 +1,13 @@ +{ + config, + pkgsUnstable, + ... +}: { + age.secrets.netdata-claim-token.rekeyFile = ../../secrets/netdata-claim-token.age; + + services.netdata = { + enable = true; + package = pkgsUnstable.netdataCloud; + claimTokenFile = "${config.age.secrets.netdata-claim-token.path}"; + }; +} diff --git a/hosts/homelab/nginx.nix b/hosts/homelab/nginx.nix new file mode 100644 index 0000000..ec4495e --- /dev/null +++ b/hosts/homelab/nginx.nix @@ -0,0 +1,12 @@ +_: { + networking.firewall.allowedTCPPorts = [80 443]; + + services.nginx = { + enable = true; + recommendedProxySettings = true; + }; + security.acme = { + acceptTerms = true; + defaults.email = "nickolaj@fireproof.website"; + }; +} diff --git a/hosts/homelab/plex.nix b/hosts/homelab/plex.nix new file mode 100644 index 0000000..0fb1d68 --- /dev/null +++ b/hosts/homelab/plex.nix @@ -0,0 +1,18 @@ +_: let + domain = "plex.nickolaj.com"; +in { + services.nginx.virtualHosts."${domain}" = { + forceSSL = true; + enableACME = true; + http2 = true; + locations."/" = { + proxyWebsockets = true; + proxyPass = "http://localhost:32400/"; + }; + }; + + services.plex = { + enable = true; + openFirewall = true; + }; +} diff --git a/hosts/homelab/restic.nix b/hosts/homelab/restic.nix new file mode 100644 index 0000000..9228422 --- /dev/null +++ b/hosts/homelab/restic.nix @@ -0,0 +1,19 @@ +{ + pkgs, + config, + ... +}: { + environment.systemPackages = with pkgs; [ + restic + ]; + + age.secrets.restic-password.rekeyFile = ../../secrets/hosts/homelab/restic-password.age; + age.secrets.restic-env.rekeyFile = ../../secrets/hosts/homelab/restic-env.age; + + services.restic.backups.server = { + repository = "b2:fireproof-backup"; + timerConfig = null; + passwordFile = "${config.age.secrets.restic-password.path}"; + environmentFile = "${config.age.secrets.restic-env.path}"; + }; +} diff --git a/hosts/homelab/vaultwarden.nix b/hosts/homelab/vaultwarden.nix new file mode 100644 index 0000000..7c9596e --- /dev/null +++ b/hosts/homelab/vaultwarden.nix @@ -0,0 +1,21 @@ +{config, ...}: let + domain = "bitwarden.nickolaj.com"; +in { + services.vaultwarden = { + enable = true; + config = { + DOMAIN = "https://${domain}"; + SIGNUPS_ALLOWED = false; + ROCKET_ADDRESS = "127.0.0.1"; + ROCKET_PORT = 8222; + }; + }; + + services.nginx.virtualHosts."${domain}" = { + enableACME = true; + forceSSL = true; + locations."/" = { + proxyPass = "http://${toString config.services.vaultwarden.config.ROCKET_ADDRESS}:${toString config.services.vaultwarden.config.ROCKET_PORT}"; + }; + }; +} diff --git a/justfile b/justfile index 5fa5221..c38a708 100644 --- a/justfile +++ b/justfile @@ -67,7 +67,7 @@ deploy-remote hostname target: --flake .#{{ hostname }} \ --disk-encryption-keys /luks-password <(just age -d ./secrets/luks-password.age) \ --extra-files "$temp" \ - --target-host "{{ target }}" {{ nix_output_monitor }} + --target-host "{{ target }}" [doc('A wrapper disko-install')] [group('deploy')] diff --git a/modules/base/boot.nix b/modules/base/boot.nix index ba7f9bb..15ffb78 100644 --- a/modules/base/boot.nix +++ b/modules/base/boot.nix @@ -1,4 +1,4 @@ -_: { - boot.loader.systemd-boot.enable = true; +{lib, ...}: { + boot.loader.systemd-boot.enable = lib.mkDefault true; boot.loader.efi.canTouchEfiVariables = true; } diff --git a/modules/desktop/hyprland/hypridle.nix b/modules/desktop/hyprland/hypridle.nix index 079c54f..bdb63f3 100644 --- a/modules/desktop/hyprland/hypridle.nix +++ b/modules/desktop/hyprland/hypridle.nix @@ -2,13 +2,12 @@ config, pkgs, ... -}: -let -sleep_cmd = "${config.programs.hyprland.package}/bin/hyprctl dispatch dpms off"; -wake_cmd = "${config.programs.hyprland.package}/bin/hyprctl dispatch dpms on"; -lock_cmd = "pidof ${pkgs.hyprlock}/bin/hyprlock || ${pkgs.hyprlock}/bin/hyprlock"; +}: let + sleep_cmd = "${config.programs.hyprland.package}/bin/hyprctl dispatch dpms off"; + wake_cmd = "${config.programs.hyprland.package}/bin/hyprctl dispatch dpms on"; + lock_cmd = "pidof ${pkgs.hyprlock}/bin/hyprlock || ${pkgs.hyprlock}/bin/hyprlock"; in { - config = { + config = { fireproof.home-manager.services.hypridle = { enable = true; settings = { @@ -31,4 +30,4 @@ in { }; }; }; -} \ No newline at end of file +} diff --git a/modules/desktop/hyprland/hyprlock.nix b/modules/desktop/hyprland/hyprlock.nix index 5084936..beb1a7f 100644 --- a/modules/desktop/hyprland/hyprlock.nix +++ b/modules/desktop/hyprland/hyprlock.nix @@ -1,12 +1,10 @@ { lib, config, - inputs, pkgs, ... -}: -let - background = pkgs.stdenvNoCC.mkDerivation { +}: let + background = pkgs.stdenvNoCC.mkDerivation { pname = "desktop-background"; version = "0.2"; @@ -39,61 +37,61 @@ let in { config = { fireproof.home-manager.programs.hyprlock = { - enable = true; - settings = { - general = { - disable_loading_bar = false; - grace = 0; - no_fade_in = false; - }; - background = { + enable = true; + settings = { + general = { + disable_loading_bar = false; + grace = 0; + no_fade_in = false; + }; + background = { + monitor = ""; + color = color.bg; + path = background + "/share/backgrounds/unknown.png"; + }; + input-field = { + monitor = ""; + size = "250, 60"; + outline_thickness = 2; + dots_size = 0.2; + dots_spacing = 0.2; + dots_center = true; + outer_color = color.transparent; + inner_color = color.ui; + font_color = color.fg; + fade_on_empty = false; + font_family = "Hack Nerd Font"; + placeholder_text = ""; + hide_input = false; + position = "0, -35"; + halign = "center"; + valign = "center"; + rounding = 8; + }; + shape = [ + { monitor = ""; - color = color.bg; - path = background + "/share/backgrounds/unknown.png"; - }; - input-field = { - monitor = ""; - size = "250, 60"; - outline_thickness = 2; - dots_size = 0.2; - dots_spacing = 0.2; - dots_center = true; - outer_color = color.transparent; - inner_color = color.ui; - font_color = color.fg; - fade_on_empty = false; - font_family = "Hack Nerd Font"; - placeholder_text = ""; - hide_input = false; - position = "0, -35"; + color = color.ui; halign = "center"; valign = "center"; + size = "150, 60"; + position = "0, 35"; rounding = 8; - }; - shape = [ - { - monitor = ""; - color = color.ui; - halign = "center"; - valign = "center"; - size = "150, 60"; - position = "0, 35"; - rounding = 8; - } - ]; - label = [ - { - monitor = ""; - text = "cmd[update:1000] echo \"$(date +\"%H:%M\")\""; - color = color.fg; - font_size = 30; - font_family = "Hack Nerd Font"; - position = "0, 35"; - halign = "center"; - valign = "center"; - } - ]; + } + ]; + label = [ + { + monitor = ""; + text = "cmd[update:1000] echo \"$(date +\"%H:%M\")\""; + color = color.fg; + font_size = 30; + font_family = "Hack Nerd Font"; + position = "0, 35"; + halign = "center"; + valign = "center"; + } + ]; }; }; }; -} \ No newline at end of file +} diff --git a/modules/dev/docker.nix b/modules/dev/docker.nix index 660fdd5..3eb3d6e 100644 --- a/modules/dev/docker.nix +++ b/modules/dev/docker.nix @@ -14,6 +14,9 @@ enableOnBoot = lib.mkDefault false; storageDriver = "btrfs"; }; + virtualisation.oci-containers = { + backend = "docker"; + }; users.extraGroups.docker.members = [username]; } diff --git a/modules/shell/core.nix b/modules/shell/core.nix index 4c94f39..b57347a 100644 --- a/modules/shell/core.nix +++ b/modules/shell/core.nix @@ -1,5 +1,7 @@ {pkgs, ...}: { config = { + environment.enableAllTerminfo = true; + environment.systemPackages = with pkgs; [ # Man pages man-pages diff --git a/secrets/hosts/homelab/.rekey/0caf919251bb18b1001dc9edd0b65e8f-ssh-key-ao.age b/secrets/hosts/homelab/.rekey/0caf919251bb18b1001dc9edd0b65e8f-ssh-key-ao.age new file mode 100644 index 0000000..3928fe3 Binary files /dev/null and b/secrets/hosts/homelab/.rekey/0caf919251bb18b1001dc9edd0b65e8f-ssh-key-ao.age differ diff --git a/secrets/hosts/homelab/.rekey/138eb59710c868a3ac32a383a3c9bb8c-hashed-user-password.age b/secrets/hosts/homelab/.rekey/138eb59710c868a3ac32a383a3c9bb8c-hashed-user-password.age new file mode 100644 index 0000000..d498715 --- /dev/null +++ b/secrets/hosts/homelab/.rekey/138eb59710c868a3ac32a383a3c9bb8c-hashed-user-password.age @@ -0,0 +1,9 @@ +age-encryption.org/v1 +-> ssh-ed25519 uxq+Zw F6J+zpSZMzomoDyuOD51GN66MT7WCqS8itq24chzAFk +wk472qGObQIuLAL9jPPY1SkplwQcZ42LEALl+Lyn2mo +-> )j-grease +6cJmucW++jurxlstx8xohXgKvaBnLK7g5rDW/LTW6nKodU0GjVXIGkm0WFE3M+n3 ++LvT5OUcUc9BiardOKdCbDdTgw855Mwm +--- kHNfCLIEk79PrX7SHMbDm7wqWeW0iEzi/Ha/zMPQ2Bk +Mxp; :N1+n^0S 9=:Z_ +R=y瓷S;C\5 ܨAsY~ѳY!9zN*$\w}e֏7 \ No newline at end of file diff --git a/secrets/hosts/homelab/.rekey/14b416bbae3cdc88a8c1c51e34fc4251-netdata-claim-token.age b/secrets/hosts/homelab/.rekey/14b416bbae3cdc88a8c1c51e34fc4251-netdata-claim-token.age new file mode 100644 index 0000000..fc1c0a4 --- /dev/null +++ b/secrets/hosts/homelab/.rekey/14b416bbae3cdc88a8c1c51e34fc4251-netdata-claim-token.age @@ -0,0 +1,7 @@ +age-encryption.org/v1 +-> ssh-ed25519 uxq+Zw O7Lgl8nCBN+7PkfnDJg1QlJuJsIWHsC0ph5HRvc+U3E +bdllRkmn3RDwg1DVPSHLtYWfay/Y+hUeCtdiCYc1rDM +-> JC5p)q|.-grease J<5Gb -#' }(d &;SYO +9sFJvUrPneffSRN4a5VLMZBMJYluYh7efNGdJHnEnDLS2NJt33px +--- Ct3YI+Fb2sCve9NRhIMZfAlDEN0jANs6kJREaSeRxUo +I|#+R : OFY\c|XӲFmX/OI]Q5t!v‚SVRMׄ42oczMFXݽђ+$#Iia(K8Ϧ̦i22}ЦO@ zqP \ No newline at end of file diff --git a/secrets/hosts/homelab/.rekey/15f8620e62e6007eca75f5b1988d30e4-mosquitto-zigbee2mqtt.age b/secrets/hosts/homelab/.rekey/15f8620e62e6007eca75f5b1988d30e4-mosquitto-zigbee2mqtt.age new file mode 100644 index 0000000..8624266 --- /dev/null +++ b/secrets/hosts/homelab/.rekey/15f8620e62e6007eca75f5b1988d30e4-mosquitto-zigbee2mqtt.age @@ -0,0 +1,7 @@ +age-encryption.org/v1 +-> ssh-ed25519 uxq+Zw k3cMMTZuQqRMU4NOfTjObYV8/wBeXviGI+pY7tEwhSc +5tyXxJpOHU6SFMjI26Twr0IOhZNI9DhX8jxBMQM/Al4 +-> *}v$-grease -|;y' \I15AGYa +kVpv2boLX6K7M0AxW34+bnVUQA +--- rur+EXAAvdVN4krHU3ezxCoax/BLVsli+rU5LnndlSo +_?8w~V@x N::|j"l;[N@ O.X "8  \ No newline at end of file diff --git a/secrets/hosts/homelab/.rekey/2441d2322b7240b3eea35ad9dab11832-llm-api-key.age b/secrets/hosts/homelab/.rekey/2441d2322b7240b3eea35ad9dab11832-llm-api-key.age new file mode 100644 index 0000000..a9b6907 --- /dev/null +++ b/secrets/hosts/homelab/.rekey/2441d2322b7240b3eea35ad9dab11832-llm-api-key.age @@ -0,0 +1,9 @@ +age-encryption.org/v1 +-> ssh-ed25519 uxq+Zw f1R1uOBfZIdPn5BQ+5ZniaLhcNIjCJLsSF1k7D8RIls +qJJnInZeCvwBIMm5X1MzhwbGZ/592JqNmtAfbwSCYhw +-> }o?y|l-grease cX)/~: `n \j +0E48K80STlC5k6I+c+BXFV/ZaSc3VuYSnnJVrtaqloq8GjOJabQGpz2kJVecRN1y +foetmkjWhOvTB9f5UmMvQhL3G8G4hqjJubwMrTTvW3t3 +--- dtdOrXsFxRkgVsjwAFFe32rOregwJ21fU1wFwwO6+kw +OX6*?DGm#B,3o[&1cnb>(SHu7Ga:ɾHB(V҂0-,@[=s68r9cbG +S+͜" z tҋi׎緄s݁grN:I|` \ No newline at end of file diff --git a/secrets/hosts/homelab/.rekey/30920f14e702cae484442111b4851f54-ssh-key.age b/secrets/hosts/homelab/.rekey/30920f14e702cae484442111b4851f54-ssh-key.age new file mode 100644 index 0000000..58fddab Binary files /dev/null and b/secrets/hosts/homelab/.rekey/30920f14e702cae484442111b4851f54-ssh-key.age differ diff --git a/secrets/hosts/homelab/.rekey/48148d6112d1434e7398b9c12c630dd2-restic-env.age b/secrets/hosts/homelab/.rekey/48148d6112d1434e7398b9c12c630dd2-restic-env.age new file mode 100644 index 0000000..4dc1a5d --- /dev/null +++ b/secrets/hosts/homelab/.rekey/48148d6112d1434e7398b9c12c630dd2-restic-env.age @@ -0,0 +1,7 @@ +age-encryption.org/v1 +-> ssh-ed25519 uxq+Zw 08ZhfwiBvcuSolMm1ALC8OzyY2v6Wsi/dzYULt0fSWE +wY3KisU5VZ2i3f4UX4m8bduklHJiIqB0sIX9ZbopoWA +-> I%-grease KdnM'X.} S }g)BW +Zu8IquWpHt/8sQOE +--- DRo5HV8Z3DxMKjDClkk3qQjEyud6nhM5B7qbAnrL6Os +І 7ܭjf֝@XNvVb\wM㐚ԥmթ$Gu*XWuש^:^LyfV1Zu6<::m$M$ʔB_;yTZeJoZ \ No newline at end of file diff --git a/secrets/hosts/homelab/.rekey/74a4e736e20629d2740a364f64845693-hosts-private.age b/secrets/hosts/homelab/.rekey/74a4e736e20629d2740a364f64845693-hosts-private.age new file mode 100644 index 0000000..cc2c7b3 --- /dev/null +++ b/secrets/hosts/homelab/.rekey/74a4e736e20629d2740a364f64845693-hosts-private.age @@ -0,0 +1,8 @@ +age-encryption.org/v1 +-> ssh-ed25519 uxq+Zw CI0deDYyaMuB+xZnioISSo0IVRu/EWvGqMYy5Kh8ni4 +v58W2scedSGkHszuNjdFmit5KUoRt3sPeumZJhp1Wzo +-> Y(n-grease Tvk{V$qm +b1vfTZ+Xs3P8Dh4/RMRyTuIL8GE7CCewHiDC5D8WznyfiCucBU69/MUhPuqIdv9X +0qAfxmshLMAjI0tFZ54aWMm6OEpTcdzMlo1R0U+NWStOnCIbhA +--- 4X98rP7pkB+L7Nj6az5/g6XDldWEVuZgMd7OV5jWRU8 +<HZ ؅9Tf%`|~kR;HilzZ-Tضe\PG,>*v_(=w#L *N~g5I-P4d81^hgf!84 \ No newline at end of file diff --git a/secrets/hosts/homelab/.rekey/94a278805ce0e0e4f6264b8fd86a5091-restic-password.age b/secrets/hosts/homelab/.rekey/94a278805ce0e0e4f6264b8fd86a5091-restic-password.age new file mode 100644 index 0000000..1798c13 --- /dev/null +++ b/secrets/hosts/homelab/.rekey/94a278805ce0e0e4f6264b8fd86a5091-restic-password.age @@ -0,0 +1,7 @@ +age-encryption.org/v1 +-> ssh-ed25519 uxq+Zw gJklmZvmMHNrR8CQqgeXjdquvYCI9yBoI3cIaerFzjg +gBlXW7lWZyhyAsYJ00Iga74cZCTpfwzu123mWMP1q4U +-> xuX3[1M"-grease :XC PdC4t '3HamwU +CkvUahB707fp+qqKelKV1eX+v4MbKi5/hxk4UeCMkaY8vpuXtjaADPPQMfwl4Q +--- ulRYWJMo5QCSCNmHVq3eVps8rbZvcraMSPtCGmjZ1io +ƩRqvPA:? 4J\,R]jQi$)Xc[ \ No newline at end of file diff --git a/secrets/hosts/homelab/.rekey/b5d227f481f954aea5c51bdf5d8a5dcf-zigbee2mqtt-secret.yaml.age b/secrets/hosts/homelab/.rekey/b5d227f481f954aea5c51bdf5d8a5dcf-zigbee2mqtt-secret.yaml.age new file mode 100644 index 0000000..c3a150f --- /dev/null +++ b/secrets/hosts/homelab/.rekey/b5d227f481f954aea5c51bdf5d8a5dcf-zigbee2mqtt-secret.yaml.age @@ -0,0 +1,8 @@ +age-encryption.org/v1 +-> ssh-ed25519 uxq+Zw kHM4p85AsOwVmv9pD1jzX5JMOnN6PeiCb0FjLajSYzM +EJdymF4TcHkdS2rdFTb0qiFDc03ApPlRHP7tHyLos+c +-> ^ph-grease $X')jU bPcQ +OQ/f13Wb8Cc/YM7lVic7//EvxVIgQZK3PD9YUHWzRu7522bm0QBpZYu9kFlKksZ8 +KonC4Y7ZXA7vjt5HOzZWi7ZgflQc5vJMGV12M0KpFyUrQLMz6ICLoRI27UnsA1g +--- G7bZfsEuPyIqSDhQpuBdRzct+kzKRFuQVEJAQ/I+nyE +ž#D跕 Jpg k_N`Bgg M]Uh*ނ[c>\磜{&_0>U \ No newline at end of file diff --git a/secrets/hosts/homelab/.rekey/c56efde02ccf0a7c3d984bd06bb5256b-mosquitto-sas.age b/secrets/hosts/homelab/.rekey/c56efde02ccf0a7c3d984bd06bb5256b-mosquitto-sas.age new file mode 100644 index 0000000..cc1fcfc --- /dev/null +++ b/secrets/hosts/homelab/.rekey/c56efde02ccf0a7c3d984bd06bb5256b-mosquitto-sas.age @@ -0,0 +1,7 @@ +age-encryption.org/v1 +-> ssh-ed25519 uxq+Zw n9X1pYeg/Ro4nL+Sbh9eF7NI1NA+GZqfFcJpIvCfIBE +/O2xZ9l5/X/SwRJcRlWr0VQaOYqkDUqfTCp0ppsZQFU +-> T!@-grease tVu`Q +hNzkvmlYLwaz +--- baKbALuUvRFetyP3VoXFtqf2jCYaaG6RvcYWxJ6nBJs +tȘ\?'/0RY$?BAu \ No newline at end of file diff --git a/secrets/hosts/homelab/.rekey/ce1e98e4b461da4e405ecdef56b69d89-z2m-basic-auth.age b/secrets/hosts/homelab/.rekey/ce1e98e4b461da4e405ecdef56b69d89-z2m-basic-auth.age new file mode 100644 index 0000000..d211efb Binary files /dev/null and b/secrets/hosts/homelab/.rekey/ce1e98e4b461da4e405ecdef56b69d89-z2m-basic-auth.age differ diff --git a/secrets/hosts/homelab/.rekey/de5c0bc0308469a9ac2cba127b5e7dc4-mosquitto-ha.age b/secrets/hosts/homelab/.rekey/de5c0bc0308469a9ac2cba127b5e7dc4-mosquitto-ha.age new file mode 100644 index 0000000..856089c --- /dev/null +++ b/secrets/hosts/homelab/.rekey/de5c0bc0308469a9ac2cba127b5e7dc4-mosquitto-ha.age @@ -0,0 +1,8 @@ +age-encryption.org/v1 +-> ssh-ed25519 uxq+Zw XDWh867SO4ie2qfm59+Ub2vxQSxR6fwc72vZbHrN2Ss +4/xK8aWfEDcEzkGsPNfkKXlpWVMqW8eU6u12OXH9k1w +-> $Q&-grease +i9TpyrFfEf3fwfMAppylDddeNgt1kI/DgnI2aUa5lzZ0YmVeRR/Oc8m2/ixL9bSQ +MmnUkzSjJSgEmXzbcb/jUiTAvUFp1C71fGuIiwPMtdETeg +--- k6eT3aj6R++AM1gFSkrqrDXaTSGP924V0zapl2jTgXg +٘v-JA>- xBSq/UwC"ƽ \oX \ No newline at end of file diff --git a/secrets/hosts/homelab/basic-auth.age b/secrets/hosts/homelab/basic-auth.age new file mode 100644 index 0000000..1eb0206 --- /dev/null +++ b/secrets/hosts/homelab/basic-auth.age @@ -0,0 +1,10 @@ +age-encryption.org/v1 +-> X25519 IvJB9eyMjUeotOOlOJ5KfjS2D4OjzRifvuoNQzWi1gc +XR8RCBhi5AjqfKQ1FH8fpF8Qsa7m87dfg1wcw8ZMEtQ +-> piv-p256 q3LNVw A0aUhWmpWsmRDAXsU06Qm7L6MrKc16nGxpprogdDtUxy +uxrBGAEUIRU436lx8+cs1LXnL1XbBP5+0VrGMpXvuXA +-> @@02F=3-grease +8aoVyiXx2y93mJuA+3OJ+0EQjg5/WZRtYjqYe5UJa/BjkzRzdvlTcwMnwNldZzcC +HKjMzq75J+Ot9TOBRe+OKByhEXoqe4uWPXB7rw +--- DmhCoM0vlZqKIQ7ycZ+ud0Do0XdOkCz1jKZzOxgZQHY +It"ɐ<H<ˆZKX&8R#e3e 늼KM/FEm^}#,!Ɓ&.Ze& BǺ)1Fv{ogCuzD;x$\3rM \ No newline at end of file diff --git a/secrets/hosts/homelab/id_ed25519.age b/secrets/hosts/homelab/id_ed25519.age new file mode 100644 index 0000000..d3428a5 --- /dev/null +++ b/secrets/hosts/homelab/id_ed25519.age @@ -0,0 +1,10 @@ +age-encryption.org/v1 +-> piv-p256 q3LNVw A5+sdq4RTbheCEzvuq2BjsAoBoTuwoaqZBnSjqIK32Zl +ktly/qj2zYhX+czwgDvmNM1a6MbGIJqz7H0lvzJ7Axg +-> m{7-grease 5,VvVN +llZG3b/UEL06BI1chzBdrZ0wKRXNpv+4 +--- TPxkYZu4F0Il9r32xOQciMOUW8Vk9D2wkSbSrxzCUkc +ijڊ~I)4 Ͳp4q[c,``hoG~X '(n$F bͫAkͳES +E_OUQ۽q5FK-SĮ䖥EYI{9%bVY%"(WdVto@h۶,`J<Ӧ5]IKRXцK09Z_6DH2١r\r- RE(F +m#( X25519 6a2eEogc167KcEQ/k6H3KUuoeXfOPsnblSezlRN9mT8 +ofUCZ+DOa2FCOwiwRkeJttMYHbtlQNMiI9kEBNwvU84 +-> piv-p256 q3LNVw AzmRiiKEn4CVtXq+G8+LTEiHX7N3B2dvC3SpJJ86GCaM +BihfkNZCycG/Be3SDkbfZPWTKPiKrX8iaktaBLcdW7U +-> _peX_txi-grease RNVi] +m/xckMd8CvdwgXRxlwxOCVWLponSQ44iNUCuWNYiuVIoOFbU0Fr/zIlGMx3jLe/C +nJNVkTID2/OTVcQtDWfz+5LdecbuYeq0A6reOo1fjg +--- /P9pjhMiJldQe89uap+zEX9mmz8/wThb2tG6EXyBNXM +31/_-}F[zjI@WJ 鑂5 \ No newline at end of file diff --git a/secrets/hosts/homelab/mosquitto-sas.age b/secrets/hosts/homelab/mosquitto-sas.age new file mode 100644 index 0000000..938f5ad Binary files /dev/null and b/secrets/hosts/homelab/mosquitto-sas.age differ diff --git a/secrets/hosts/homelab/mosquitto-zigbee2mqtt.age b/secrets/hosts/homelab/mosquitto-zigbee2mqtt.age new file mode 100644 index 0000000..b51fe21 Binary files /dev/null and b/secrets/hosts/homelab/mosquitto-zigbee2mqtt.age differ diff --git a/secrets/hosts/homelab/restic-env.age b/secrets/hosts/homelab/restic-env.age new file mode 100644 index 0000000..bb20cb0 --- /dev/null +++ b/secrets/hosts/homelab/restic-env.age @@ -0,0 +1,9 @@ +age-encryption.org/v1 +-> X25519 yczjxcZq+Im03Xe456EWRPcDt6r/SnBM6zVcYr9oT0I +k0exa0PAIs2rPWgdEK+1uqi7VN4ZLQswEFtxxrvSP4U +-> piv-p256 q3LNVw Ah0sLbl5aiS36sGVKZM7fWlrx6halCtwW3Hc6IQb1W+w +lRVq+Z47bjkpOReRRoscR5A+LpqloyNgx4zjx+2M1C0 +-> '-grease f%E `Dyy55T + 5xHqim +ysaJAgUcTp5aWOyu3MkXq2AGsqEBpNZDfuSu6PDmdtojwjEM879ZVy0+7Xg +--- ddwcqlpP4+ZIWode9wPkOVnrrqYpEkdFjhwDsgVXhzc +n( A1F8ufwB# X25519 SlTiYLUOZgos54gVVEiWVsO2LC1Pwm7NWTMYQqx3Dio +68fxmw+BadS30wF1kl9eeQvVSFqhafUFtXSXMfMsDmg +-> piv-p256 q3LNVw A/CtvNbVRNCJkKm5QCwi6ehvTid7rQxCCoGfFvD8luoz +Qr0v5GGWSV98qrxvRqNAK42gm3TKLny1DYB/ijqeOmY +-> \*-grease +7F= 9O W#`d ? +FJ9LaugVuNQN6o5/D3lfyhvLuXY3kXVFNg +--- ejAUsW3bP39q8PciF0gA3VOWDeGHf7P17JBNIkvFj/c +w!嬙]>B᨝1r`Qoi{J-q,-Î_ \ No newline at end of file diff --git a/secrets/hosts/homelab/zigbee2mqtt-secret.yaml.age b/secrets/hosts/homelab/zigbee2mqtt-secret.yaml.age new file mode 100644 index 0000000..06af5f2 Binary files /dev/null and b/secrets/hosts/homelab/zigbee2mqtt-secret.yaml.age differ diff --git a/secrets/netdata-claim-token.age b/secrets/netdata-claim-token.age new file mode 100644 index 0000000..14edfff --- /dev/null +++ b/secrets/netdata-claim-token.age @@ -0,0 +1,9 @@ +age-encryption.org/v1 +-> X25519 ZwlikKecA4BWj61AmzgfAYggI3beEo/N9taFt0w9X3w +zmgXbAdUD33hpz4I+B5IF01gheDmm8cSArNNANM2C90 +-> piv-p256 q3LNVw AvVG4PzbF7O2tA6a9SFe0rY2Y3EvWySmM1pFKk5OXnrs +tN3OYjBKDihjbGakPRiJ+mQW3/x06AiOk7K39jp/IM4 +-> D#`T1-grease D w@ ML;p2 ?SbOwhx +yRBDJJPqqPY0f6aX8w +--- qjhN3qD7Ye8UGPCX69wZfGK5wBy0Dn/IhXpSC3J5kN0 +䬟C|S6r;f:T ڪsh $ڙ4Ct;8 "0֭!iOPUK14j]l8x<)fYVZJk?34 qFx4@k,◄<yqPH"OWnk3 \ No newline at end of file