summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.sops.yaml20
-rw-r--r--flake.lock59
-rw-r--r--flake.nix81
-rw-r--r--labsrv01/configuration.nix135
-rw-r--r--labsrv01/disk-config.nix83
-rw-r--r--labsrv01/facter.json5065
-rw-r--r--labsrv01/home.nix94
-rw-r--r--labsrv01/secrets.yaml30
-rw-r--r--labsrv01/zsh-config.zsh45
-rwxr-xr-xnixos-update.rb8
10 files changed, 5548 insertions, 72 deletions
diff --git a/.sops.yaml b/.sops.yaml
index 2c6af79..4c12c37 100644
--- a/.sops.yaml
+++ b/.sops.yaml
@@ -1,9 +1,15 @@
keys:
- - &admin_kj age10gj7wx2syxd9xtt032xxrvtz9hcpnh5xfhzdaaw8qztt6xt6jyrqme3pdp
- - &server_kj_laptop01 age1dlhywyz63uyyv5z2w6mhax7dcn37akymy2e4ujcdppf85hr3ccrqgwpqmu
+ - &admin_kj age10gj7wx2syxd9xtt032xxrvtz9hcpnh5xfhzdaaw8qztt6xt6jyrqme3pdp
+ - &server_kj_laptop01 age1dlhywyz63uyyv5z2w6mhax7dcn37akymy2e4ujcdppf85hr3ccrqgwpqmu
+ - &server_labsrv01 age1l545fw72zzs9xskxw3d35szwkcttmtrm9g5y0s8zufhmezffys9sr7asey
creation_rules:
- - path_regex: kj-laptop01/.*\.yaml$
- key_groups:
- - age:
- - *admin_kj
- - *server_kj_laptop01
+ - path_regex: kj-laptop01/.*\.yaml$
+ key_groups:
+ - age:
+ - *admin_kj
+ - *server_kj_laptop01
+ - path_regex: labsrv01/.*\.yaml$
+ key_groups:
+ - age:
+ - *admin_kj
+ - *server_labsrv01
diff --git a/flake.lock b/flake.lock
index 8814ee9..c4e248d 100644
--- a/flake.lock
+++ b/flake.lock
@@ -7,11 +7,11 @@
]
},
"locked": {
- "lastModified": 1757508292,
- "narHash": "sha256-7lVWL5bC6xBIMWWDal41LlGAG+9u2zUorqo3QCUL4p4=",
+ "lastModified": 1766150702,
+ "narHash": "sha256-P0kM+5o+DKnB6raXgFEk3azw8Wqg5FL6wyl9jD+G5a4=",
"owner": "nix-community",
"repo": "disko",
- "rev": "146f45bee02b8bd88812cfce6ffc0f933788875a",
+ "rev": "916506443ecd0d0b4a0f4cf9d40a3c22ce39b378",
"type": "github"
},
"original": {
@@ -70,11 +70,11 @@
]
},
"locked": {
- "lastModified": 1757650187,
- "narHash": "sha256-OrythrqccPKtuVt0mj26rr83Qo3Ljb4ZmwLdPGjzjMU=",
+ "lastModified": 1767688629,
+ "narHash": "sha256-kX1BVq5zoowePHssEjmpc6FNT3vVZNZaCXd7mfvCsxg=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "9eab59f3e71ea3a725e4817d8dcf0da0824ad19d",
+ "rev": "bfaba198af72338b8dbda59887859d7a30c6643c",
"type": "github"
},
"original": {
@@ -117,11 +117,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
- "lastModified": 1756369694,
- "narHash": "sha256-wNrnVlg+d0GXbmT+MDS6xMIkB+Su437fuP1DZpwaLiI=",
+ "lastModified": 1766503044,
+ "narHash": "sha256-DdJ0OIngRjekqXJauSQ8y9vyDO24dX8v7DiaWmxk7PU=",
"owner": "nix-community",
"repo": "nixos-anywhere",
- "rev": "dc1df558e51f41d0782eef312f04a2e0e4c9ce8a",
+ "rev": "e86fad431cf9161ca39747972bd255897572dc3b",
"type": "github"
},
"original": {
@@ -132,11 +132,11 @@
},
"nixos-facter-modules": {
"locked": {
- "lastModified": 1756491981,
- "narHash": "sha256-lXyDAWPw/UngVtQfgQ8/nrubs2r+waGEYIba5UX62+k=",
+ "lastModified": 1766558141,
+ "narHash": "sha256-Ud9v49ZPsoDBFuyJSQ2Mpw1ZgAH/aMwUwwzrVoetNus=",
"owner": "numtide",
"repo": "nixos-facter-modules",
- "rev": "c1b29520945d3e148cd96618c8a0d1f850965d8c",
+ "rev": "e796d536e3d83de74267069e179dc620a608ed7d",
"type": "github"
},
"original": {
@@ -186,29 +186,43 @@
"type": "github"
}
},
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1767364772,
+ "narHash": "sha256-fFUnEYMla8b7UKjijLnMe+oVFOz6HjijGGNS1l7dYaQ=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "16c7794d0a28b5a37904d55bcca36003b9109aaa",
+ "type": "github"
+ },
+ "original": {
+ "id": "nixpkgs",
+ "type": "indirect"
+ }
+ },
"nixpkgs-stable": {
"locked": {
- "lastModified": 1748026580,
- "narHash": "sha256-rWtXrcIzU5wm/C8F9LWvUfBGu5U5E7cFzPYT1pHIJaQ=",
+ "lastModified": 1764521362,
+ "narHash": "sha256-M101xMtWdF1eSD0xhiR8nG8CXRlHmv6V+VoY65Smwf4=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "11cb3517b3af6af300dd6c055aeda73c9bf52c48",
+ "rev": "871b9fd269ff6246794583ce4ee1031e1da71895",
"type": "github"
},
"original": {
"owner": "NixOS",
- "ref": "25.05",
+ "ref": "25.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
- "lastModified": 1757487488,
- "narHash": "sha256-zwE/e7CuPJUWKdvvTCB7iunV4E/+G0lKfv4kk/5Izdg=",
+ "lastModified": 1767379071,
+ "narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "ab0f3607a6c7486ea22229b92ed2d355f1482ee0",
+ "rev": "fb7944c166a3b630f177938e478f0378e64ce108",
"type": "github"
},
"original": {
@@ -224,6 +238,7 @@
"home-manager": "home-manager",
"nixos-anywhere": "nixos-anywhere",
"nixos-facter-modules": "nixos-facter-modules",
+ "nixpkgs": "nixpkgs",
"nixpkgs-stable": "nixpkgs-stable",
"nixpkgs-unstable": "nixpkgs-unstable",
"sops-nix": "sops-nix"
@@ -236,11 +251,11 @@
]
},
"locked": {
- "lastModified": 1757503115,
- "narHash": "sha256-S9F6bHUBh+CFEUalv/qxNImRapCxvSnOzWBUZgK1zDU=",
+ "lastModified": 1767499857,
+ "narHash": "sha256-0zUU/PW09d6oBaR8x8vMHcAhg1MOvo3CwoXgHijzzNE=",
"owner": "Mic92",
"repo": "sops-nix",
- "rev": "0bf793823386187dff101ee2a9d4ed26de8bbf8c",
+ "rev": "ecc41505948ec2ab0325f14c9862a4329c2b4190",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index 11a730d..215542b 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,5 +1,7 @@
{
- inputs.nixpkgs-stable.url = "github:NixOS/nixpkgs/25.05";
+ description = "NixOS configurations development environment";
+
+ inputs.nixpkgs-stable.url = "github:NixOS/nixpkgs/25.11";
inputs.nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
inputs.disko.url = "github:nix-community/disko";
inputs.disko.inputs.nixpkgs.follows = "nixpkgs-stable";
@@ -11,60 +13,40 @@
inputs.home-manager.url = "github:nix-community/home-manager";
inputs.home-manager.inputs.nixpkgs.follows = "nixpkgs-unstable";
- outputs =
- {
- nixpkgs-stable,
- nixpkgs-unstable,
- disko,
- nixos-facter-modules,
- sops-nix,
- nixos-anywhere,
- home-manager,
- ...
- }:
+ outputs = { self, nixpkgs, nixpkgs-stable, nixos-anywhere, ... }@inputs:
let
- systems = [
- "x86_64-linux"
- "x86_64-darwin"
- "aarch64-linux"
- "aarch64-darwin"
- ];
+ systems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
+ forAllSystems = nixpkgs.lib.genAttrs systems;
in
{
- nixosConfigurations.kj-laptop01 = nixpkgs-unstable.lib.nixosSystem {
+ nixosConfigurations.labsrv01 = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
+ specialArgs = { inherit inputs; };
modules = [
- disko.nixosModules.disko
- ./kj-laptop01/configuration.nix
- nixos-facter-modules.nixosModules.facter
- sops-nix.nixosModules.sops
- {
- config.facter.reportPath = ./kj-laptop01/facter.json;
- }
- home-manager.nixosModules.home-manager
+ inputs.disko.nixosModules.disko
+ ./labsrv01/configuration.nix
+ inputs.nixos-facter-modules.nixosModules.facter
+ inputs.sops-nix.nixosModules.sops
+ inputs.home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
- home-manager.users.kjtsanaktsidis = ./kj-laptop01/home.nix;
+ home-manager.users.kjtsanaktsidis = ./labsrv01/home.nix;
home-manager.sharedModules = [
- sops-nix.homeManagerModules.sops
+ inputs.sops-nix.homeManagerModules.sops
];
}
];
};
- formatter = nixpkgs-stable.lib.genAttrs systems (
- system: nixpkgs-stable.legacyPackages.${system}.nixfmt-tree
- );
-
- apps = nixpkgs-stable.lib.genAttrs systems (
- system:
+ packages = forAllSystems (system:
let
pkgs = nixpkgs-stable.legacyPackages.${system};
ruby = pkgs.ruby.withPackages (ps: [
pkgs.rubyPackages.tty-command
]);
-
+ in
+ {
nixos-update = pkgs.writeShellApplication {
name = "nixos-update";
runtimeInputs = [
@@ -76,14 +58,35 @@
exec "${ruby}/bin/ruby" "${./nixos-update.rb}" "$@"
'';
};
+ }
+ );
+ devShells = forAllSystems (system:
+ let
+ pkgs = nixpkgs.legacyPackages.${system};
in
{
- nixos-update = {
- type = "app";
- program = "${nixos-update}/bin/nixos-update";
+ default = pkgs.mkShell {
+ buildInputs = [
+ nixos-anywhere.packages.${system}.default
+ pkgs.sops
+ pkgs.ruby
+ pkgs.age
+ pkgs.mkpasswd
+ self.packages.${system}.nixos-update
+ ];
};
}
);
+
+ formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.nixfmt-rfc-style);
+
+
+ apps = forAllSystems (system: {
+ nixos-update = {
+ type = "app";
+ program = "${self.packages.${system}.nixos-update}/bin/nixos-update";
+ };
+ });
};
}
diff --git a/labsrv01/configuration.nix b/labsrv01/configuration.nix
new file mode 100644
index 0000000..cff0a7b
--- /dev/null
+++ b/labsrv01/configuration.nix
@@ -0,0 +1,135 @@
+{
+ modulesPath,
+ lib,
+ pkgs,
+ sops,
+ config,
+ ...
+}@args:
+{
+ imports = [
+ ./disk-config.nix
+ ];
+
+ nix = {
+ extraOptions = ''
+ experimental-features = ca-derivations nix-command flakes
+ '';
+ settings = {
+ substituters = [
+ "https://cache.nixos.org"
+ "https://cache.ngi0.nixos.org/"
+ ];
+ trusted-public-keys = [
+ "cache.ngi0.nixos.org-1:KqH5CBLNSyX184S9BKZJo1LxrxJ9ltnY2uAs5c/f1MA="
+ ];
+ };
+ };
+
+ sops = {
+ defaultSopsFile = ./secrets.yaml;
+ age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
+ age.generateKey = false;
+
+ secrets = {
+ luks_passphrase = { };
+ kj_hashed_password = {
+ neededForUsers = true;
+ };
+ ssh_host_key_ed25519 = { };
+ ssh_host_key_rsa = { };
+ };
+ };
+
+ boot.loader.systemd-boot.enable = true;
+ system.stateVersion = "25.11";
+ swapDevices = [
+ {
+ device = "/swap/swapfile";
+ size = 32768;
+ }
+ ];
+
+ security.sudo.enable = true;
+ users.mutableUsers = false;
+ users.groups.kjtsanaktsidis = { };
+ users.users = {
+ kjtsanaktsidis = {
+ createHome = true;
+ isNormalUser = true;
+ description = "KJ Tsanaktsidis";
+ group = "kjtsanaktsidis";
+ extraGroups = [
+ "wheel"
+ "networkmanager"
+ ];
+ shell = pkgs.zsh;
+ hashedPasswordFile = config.sops.secrets.kj_hashed_password.path;
+ openssh.authorizedKeys.keys = [
+ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAC/BtvW1c1RbBI8eeGo7oOH2y9byBaxWVDHsErgaE+s kjtsanaktsidis@KJMacbookGroq.local"
+ "ssh-ed25519 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHsyhMLrlNiffDrqz0s46hZF8IdR9/qX63TUyllK0LCA kj@KJ-PC"
+ ];
+ };
+ };
+
+ # Enable systemd-resolved for DNS
+ services.resolved = {
+ enable = true;
+ llmnr = "true";
+ extraConfig = ''
+ MulticastDNS=yes
+ '';
+ };
+ networking.hostName = "labsrv01";
+ networking.nameservers = [ "127.0.0.53" ];
+ networking.networkmanager = {
+ enable = true;
+ dns = "systemd-resolved";
+ # Enable mDNS on NetworkManager connections
+ connectionConfig = {
+ "connection.mdns" = "2"; # 2 = yes (resolve & register)
+ };
+ };
+
+ services.openssh = {
+ enable = true;
+ hostKeys = [
+ {
+ type = "ed25519";
+ path = config.sops.secrets.ssh_host_key_ed25519.path;
+ }
+ {
+ type = "rsa";
+ path = config.sops.secrets.ssh_host_key_rsa.path;
+ }
+ ];
+ };
+
+ environment.systemPackages = with pkgs; [];
+
+ # Enable zsh system-wide
+ programs.zsh.enable = true;
+
+ # Disable Alt+Left/Right virtual terminal switching
+ console.keyMap = "us";
+
+ # Create systemd service to disable only Alt+Arrow VT switching
+ systemd.services.disable-alt-arrow-vt = {
+ description = "Disable Alt+Arrow VT switching";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "systemd-vconsole-setup.service" ];
+ script = ''
+ # Define string sequences for Alt+Arrow that generate proper terminal escape sequences
+ cat << 'EOF' | ${pkgs.kbd}/bin/loadkeys
+ string F200 = "\033[1;3D"
+ string F201 = "\033[1;3C"
+ alt keycode 105 = F200
+ alt keycode 106 = F201
+ EOF
+ '';
+ serviceConfig = {
+ Type = "oneshot";
+ RemainAfterExit = true;
+ };
+ };
+}
diff --git a/labsrv01/disk-config.nix b/labsrv01/disk-config.nix
new file mode 100644
index 0000000..b0f74c9
--- /dev/null
+++ b/labsrv01/disk-config.nix
@@ -0,0 +1,83 @@
+{
+ config,
+ ...
+}:
+{
+ disko.devices = {
+ disk.nvme0n1 = {
+ device = "/dev/nvme0n1";
+ type = "disk";
+ content = {
+ type = "gpt";
+ partitions = {
+ esp = {
+ name = "ESP";
+ start = "1MiB";
+ size = "1023M";
+ type = "EF00";
+ content = {
+ type = "filesystem";
+ format = "vfat";
+ mountpoint = "/boot";
+ };
+ };
+ luks = {
+ name = "cryptroot";
+ type = "8300";
+ size = "100%";
+ content = {
+ type = "luks";
+ name = "crypted";
+ passwordFile = config.sops.secrets.luks_passphrase.path;
+ settings = {
+ allowDiscards = true;
+ bypassWorkqueues = true;
+ };
+ content = {
+ type = "btrfs";
+ subvolumes = {
+ "@" = { };
+ "@/root" = {
+ mountpoint = "/";
+ mountOptions = [
+ "compress=zstd"
+ "noatime"
+ ];
+ };
+ "@/home" = {
+ mountpoint = "/home";
+ mountOptions = [
+ "compress=zstd"
+ "noatime"
+ ];
+ };
+ "@/var" = {
+ mountpoint = "/var";
+ mountOptions = [
+ "compress=zstd"
+ "noatime"
+ ];
+ };
+ "@/nix" = {
+ mountpoint = "/nix";
+ mountOptions = [
+ "compress=zstd"
+ "noatime"
+ ];
+ };
+ "@/swap" = {
+ mountpoint = "/swap";
+ mountOptions = [
+ "compress=zstd"
+ "noatime"
+ ];
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+}
diff --git a/labsrv01/facter.json b/labsrv01/facter.json
new file mode 100644
index 0000000..f082969
--- /dev/null
+++ b/labsrv01/facter.json
@@ -0,0 +1,5065 @@
+{
+ "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": false,
+ "pnp_id": 0,
+ "lba_support": false,
+ "low_memory_size": 0,
+ "smbios_version": 773
+ },
+ "bluetooth": [
+ {
+ "index": 48,
+ "attached_to": 47,
+ "class_list": [
+ "usb",
+ "bluetooth"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0115",
+ "name": "Bluetooth Device",
+ "value": 277
+ },
+ "vendor": {
+ "hex": "8087",
+ "value": 32903
+ },
+ "device": {
+ "hex": "0032",
+ "value": 50
+ },
+ "model": "Bluetooth Device",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0",
+ "sysfs_bus_id": "3-10:1.0",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 12000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "00e0",
+ "name": "wireless",
+ "value": 224
+ },
+ "device_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "device_protocol": 1,
+ "interface_class": {
+ "hex": "00e0",
+ "name": "wireless",
+ "value": 224
+ },
+ "interface_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "interface_protocol": 1,
+ "interface_number": 0,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "btusb",
+ "driver_module": "btusb",
+ "drivers": [
+ "btusb"
+ ],
+ "driver_modules": [
+ "btusb"
+ ],
+ "module_alias": "usb:v8087p0032d0000dcE0dsc01dp01icE0isc01ip01in00"
+ },
+ {
+ "index": 58,
+ "attached_to": 47,
+ "class_list": [
+ "usb",
+ "bluetooth"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0115",
+ "name": "Bluetooth Device",
+ "value": 277
+ },
+ "vendor": {
+ "hex": "8087",
+ "value": 32903
+ },
+ "device": {
+ "hex": "0032",
+ "value": 50
+ },
+ "model": "Bluetooth Device",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.1",
+ "sysfs_bus_id": "3-10:1.1",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 12000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "00e0",
+ "name": "wireless",
+ "value": 224
+ },
+ "device_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "device_protocol": 1,
+ "interface_class": {
+ "hex": "00e0",
+ "name": "wireless",
+ "value": 224
+ },
+ "interface_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "interface_protocol": 1,
+ "interface_number": 1,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "btusb",
+ "driver_module": "btusb",
+ "drivers": [
+ "btusb"
+ ],
+ "driver_modules": [
+ "btusb"
+ ],
+ "module_alias": "usb:v8087p0032d0000dcE0dsc01dp01icE0isc01ip01in01"
+ }
+ ],
+ "bridge": [
+ {
+ "index": 25,
+ "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": "1043",
+ "value": 4163
+ },
+ "device": {
+ "hex": "5182",
+ "value": 20866
+ },
+ "sub_device": {
+ "hex": "87f2",
+ "value": 34802
+ },
+ "revision": {
+ "hex": "0001",
+ "value": 1
+ },
+ "model": "Intel ISA bridge",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1f.0",
+ "sysfs_bus_id": "0000:00:1f.0",
+ "detail": {
+ "function": 0,
+ "command": 1031,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "prog_if": 0
+ },
+ "module_alias": "pci:v00008086d00005182sv00001043sd000087F2bc06sc01i00",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 27,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "bridge"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 29
+ },
+ "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": "1043",
+ "value": 4163
+ },
+ "device": {
+ "hex": "51b1",
+ "value": 20913
+ },
+ "sub_device": {
+ "hex": "87f2",
+ "value": 34802
+ },
+ "revision": {
+ "hex": "0001",
+ "value": 1
+ },
+ "model": "Intel PCI bridge",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1d.1",
+ "sysfs_bus_id": "0000:00:1d.1",
+ "detail": {
+ "function": 1,
+ "command": 1031,
+ "header_type": 1,
+ "secondary_bus": 3,
+ "prog_if": 0
+ },
+ "driver": "pcieport",
+ "driver_module": "pcieportdrv",
+ "drivers": [
+ "pcieport"
+ ],
+ "driver_modules": [
+ "pcieportdrv"
+ ],
+ "module_alias": "pci:v00008086d000051B1sv00001043sd000087F2bc06sc04i00"
+ },
+ {
+ "index": 33,
+ "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
+ },
+ "sub_vendor": {
+ "hex": "1043",
+ "value": 4163
+ },
+ "device": {
+ "hex": "4621",
+ "value": 17953
+ },
+ "sub_device": {
+ "hex": "87f2",
+ "value": 34802
+ },
+ "revision": {
+ "hex": "0002",
+ "value": 2
+ },
+ "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,
+ "prog_if": 0
+ },
+ "driver": "igen6_edac",
+ "driver_module": "igen6_edac",
+ "drivers": [
+ "igen6_edac"
+ ],
+ "driver_modules": [
+ "igen6_edac"
+ ],
+ "module_alias": "pci:v00008086d00004621sv00001043sd000087F2bc06sc00i00",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 35,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "bridge"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 6
+ },
+ "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
+ },
+ "device": {
+ "hex": "464d",
+ "value": 17997
+ },
+ "revision": {
+ "hex": "0002",
+ "value": 2
+ },
+ "model": "Intel PCI bridge",
+ "sysfs_id": "/devices/pci0000:00/0000:00:06.0",
+ "sysfs_bus_id": "0000:00:06.0",
+ "detail": {
+ "function": 0,
+ "command": 1031,
+ "header_type": 1,
+ "secondary_bus": 1,
+ "prog_if": 0
+ },
+ "driver": "pcieport",
+ "driver_module": "pcieportdrv",
+ "drivers": [
+ "pcieport"
+ ],
+ "driver_modules": [
+ "pcieportdrv"
+ ],
+ "module_alias": "pci:v00008086d0000464Dsv00000000sd00000000bc06sc04i00"
+ },
+ {
+ "index": 36,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "bridge"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 29
+ },
+ "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": "1043",
+ "value": 4163
+ },
+ "device": {
+ "hex": "51b0",
+ "value": 20912
+ },
+ "sub_device": {
+ "hex": "87f2",
+ "value": 34802
+ },
+ "revision": {
+ "hex": "0001",
+ "value": 1
+ },
+ "model": "Intel PCI bridge",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1d.0",
+ "sysfs_bus_id": "0000:00:1d.0",
+ "detail": {
+ "function": 0,
+ "command": 1031,
+ "header_type": 1,
+ "secondary_bus": 2,
+ "prog_if": 0
+ },
+ "driver": "pcieport",
+ "driver_module": "pcieportdrv",
+ "drivers": [
+ "pcieport"
+ ],
+ "driver_modules": [
+ "pcieportdrv"
+ ],
+ "module_alias": "pci:v00008086d000051B0sv00001043sd000087F2bc06sc04i00"
+ }
+ ],
+ "camera": [
+ {
+ "index": 49,
+ "attached_to": 53,
+ "class_list": [
+ "camera",
+ "usb"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "010f",
+ "name": "Camera",
+ "value": 271
+ },
+ "vendor": {
+ "hex": "046d",
+ "name": "Logitech Inc.",
+ "value": 1133
+ },
+ "device": {
+ "hex": "082c",
+ "name": "HD Webcam C615",
+ "value": 2092
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "0.11",
+ "value": 0
+ },
+ "serial": "0B8FA460",
+ "model": "Logitech HD Webcam C615",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.4/3-5.4:1.2",
+ "sysfs_bus_id": "3-5.4:1.2",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 480000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "00ef",
+ "name": "miscellaneous",
+ "value": 239
+ },
+ "device_subclass": {
+ "hex": "0002",
+ "name": "comm",
+ "value": 2
+ },
+ "device_protocol": 1,
+ "interface_class": {
+ "hex": "000e",
+ "name": "video",
+ "value": 14
+ },
+ "interface_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "interface_protocol": 0,
+ "interface_number": 2,
+ "interface_alternate_setting": 0,
+ "interface_association": {
+ "function_class": {
+ "hex": "000e",
+ "name": "video",
+ "value": 14
+ },
+ "function_subclass": {
+ "hex": "0003",
+ "name": "hid",
+ "value": 3
+ },
+ "function_protocol": 0,
+ "interface_count": 2,
+ "first_interface": 2
+ }
+ },
+ "hotplug": "usb",
+ "driver": "uvcvideo",
+ "driver_module": "uvcvideo",
+ "drivers": [
+ "uvcvideo"
+ ],
+ "driver_modules": [
+ "uvcvideo"
+ ],
+ "module_alias": "usb:v046Dp082Cd0011dcEFdsc02dp01ic0Eisc01ip00in02"
+ },
+ {
+ "index": 60,
+ "attached_to": 53,
+ "class_list": [
+ "camera",
+ "usb"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "010f",
+ "name": "Camera",
+ "value": 271
+ },
+ "vendor": {
+ "hex": "046d",
+ "name": "Logitech Inc.",
+ "value": 1133
+ },
+ "device": {
+ "hex": "082c",
+ "name": "HD Webcam C615",
+ "value": 2092
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "0.11",
+ "value": 0
+ },
+ "serial": "0B8FA460",
+ "model": "Logitech HD Webcam C615",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.4/3-5.4:1.3",
+ "sysfs_bus_id": "3-5.4:1.3",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 480000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "00ef",
+ "name": "miscellaneous",
+ "value": 239
+ },
+ "device_subclass": {
+ "hex": "0002",
+ "name": "comm",
+ "value": 2
+ },
+ "device_protocol": 1,
+ "interface_class": {
+ "hex": "000e",
+ "name": "video",
+ "value": 14
+ },
+ "interface_subclass": {
+ "hex": "0002",
+ "name": "comm",
+ "value": 2
+ },
+ "interface_protocol": 0,
+ "interface_number": 3,
+ "interface_alternate_setting": 0,
+ "interface_association": {
+ "function_class": {
+ "hex": "000e",
+ "name": "video",
+ "value": 14
+ },
+ "function_subclass": {
+ "hex": "0003",
+ "name": "hid",
+ "value": 3
+ },
+ "function_protocol": 0,
+ "interface_count": 2,
+ "first_interface": 2
+ }
+ },
+ "hotplug": "usb",
+ "driver": "uvcvideo",
+ "driver_module": "uvcvideo",
+ "drivers": [
+ "uvcvideo"
+ ],
+ "driver_modules": [
+ "uvcvideo"
+ ],
+ "module_alias": "usb:v046Dp082Cd0011dcEFdsc02dp01ic0Eisc02ip00in03"
+ }
+ ],
+ "cpu": [
+ {
+ "architecture": "x86_64",
+ "vendor_name": "GenuineIntel",
+ "model_name": "12th Gen Intel(R) Core(TM) i5-12500H",
+ "family": 6,
+ "model": 154,
+ "stepping": 3,
+ "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",
+ "ss",
+ "ht",
+ "tm",
+ "pbe",
+ "syscall",
+ "nx",
+ "pdpe1gb",
+ "rdtscp",
+ "lm",
+ "constant_tsc",
+ "art",
+ "arch_perfmon",
+ "pebs",
+ "bts",
+ "rep_good",
+ "nopl",
+ "xtopology",
+ "nonstop_tsc",
+ "cpuid",
+ "aperfmperf",
+ "tsc_known_freq",
+ "pni",
+ "pclmulqdq",
+ "dtes64",
+ "monitor",
+ "ds_cpl",
+ "vmx",
+ "smx",
+ "est",
+ "tm2",
+ "ssse3",
+ "sdbg",
+ "fma",
+ "cx16",
+ "xtpr",
+ "pdcm",
+ "sse4_1",
+ "sse4_2",
+ "x2apic",
+ "movbe",
+ "popcnt",
+ "tsc_deadline_timer",
+ "aes",
+ "xsave",
+ "avx",
+ "f16c",
+ "rdrand",
+ "lahf_lm",
+ "abm",
+ "3dnowprefetch",
+ "cpuid_fault",
+ "epb",
+ "ssbd",
+ "ibrs",
+ "ibpb",
+ "stibp",
+ "ibrs_enhanced",
+ "tpr_shadow",
+ "flexpriority",
+ "ept",
+ "vpid",
+ "ept_ad",
+ "fsgsbase",
+ "tsc_adjust",
+ "bmi1",
+ "avx2",
+ "smep",
+ "bmi2",
+ "erms",
+ "invpcid",
+ "rdseed",
+ "adx",
+ "smap",
+ "clflushopt",
+ "clwb",
+ "intel_pt",
+ "sha_ni",
+ "xsaveopt",
+ "xsavec",
+ "xgetbv1",
+ "xsaves",
+ "split_lock_detect",
+ "user_shstk",
+ "avx_vnni",
+ "dtherm",
+ "ida",
+ "arat",
+ "pln",
+ "pts",
+ "hwp",
+ "hwp_notify",
+ "hwp_act_window",
+ "hwp_epp",
+ "hwp_pkg_req",
+ "hfi",
+ "vnmi",
+ "umip",
+ "pku",
+ "ospke",
+ "waitpkg",
+ "gfni",
+ "vaes",
+ "vpclmulqdq",
+ "rdpid",
+ "movdiri",
+ "movdir64b",
+ "fsrm",
+ "md_clear",
+ "serialize",
+ "arch_lbr",
+ "ibt",
+ "flush_l1d",
+ "arch_capabilities"
+ ],
+ "bugs": [
+ "spectre_v1",
+ "spectre_v2",
+ "spec_store_bypass",
+ "swapgs",
+ "eibrs_pbrsb",
+ "rfds",
+ "bhi",
+ "vmscape"
+ ],
+ "power_management": [
+ ""
+ ],
+ "bogo": 6220,
+ "cache": 18432,
+ "units": 64,
+ "page_size": 4096,
+ "physical_id": 0,
+ "siblings": 16,
+ "cores": 12,
+ "fpu": false,
+ "fpu_exception": false,
+ "cpuid_level": 32,
+ "write_protect": false,
+ "tlb_size": 32765,
+ "clflush_size": 64,
+ "cache_alignment": 64,
+ "address_sizes": {
+ "physical": "0x27",
+ "virtual": "0x30"
+ }
+ }
+ ],
+ "disk": [
+ {
+ "index": 44,
+ "attached_to": 30,
+ "class_list": [
+ "disk",
+ "block_device",
+ "nvme"
+ ],
+ "bus_type": {
+ "hex": "0096",
+ "name": "NVME",
+ "value": 150
+ },
+ "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": "144d",
+ "value": 5197
+ },
+ "sub_vendor": {
+ "hex": "144d",
+ "value": 5197
+ },
+ "device": {
+ "hex": "a80a",
+ "name": "Samsung SSD 980 PRO 2TB",
+ "value": 43018
+ },
+ "sub_device": {
+ "hex": "a801",
+ "value": 43009
+ },
+ "serial": "S69ENF0W831022Y",
+ "model": "Samsung SSD 980 PRO 2TB",
+ "sysfs_id": "/class/block/nvme0n1",
+ "sysfs_bus_id": "nvme0",
+ "sysfs_device_link": "/devices/pci0000:00/0000:00:06.0/0000:01:00.0/nvme/nvme0",
+ "unix_device_names": [
+ "/dev/disk/by-id/nvme-Samsung_SSD_980_PRO_2TB_S69ENF0W831022Y",
+ "/dev/disk/by-id/nvme-Samsung_SSD_980_PRO_2TB_S69ENF0W831022Y_1",
+ "/dev/disk/by-id/nvme-eui.002538b831b900c4",
+ "/dev/disk/by-path/pci-0000:01:00.0-nvme-1",
+ "/dev/nvme0n1"
+ ],
+ "resources": [
+ {
+ "type": "disk_geo",
+ "cylinders": 1907729,
+ "heads": 64,
+ "sectors": 32,
+ "size": "0x0",
+ "geo_type": "logical"
+ },
+ {
+ "type": "size",
+ "unit": "sectors",
+ "value_1": 3907029168,
+ "value_2": 512
+ }
+ ],
+ "driver": "nvme",
+ "driver_module": "nvme",
+ "drivers": [
+ "nvme"
+ ],
+ "driver_modules": [
+ "nvme"
+ ]
+ },
+ {
+ "index": 45,
+ "attached_to": 40,
+ "class_list": [
+ "disk",
+ "usb",
+ "scsi",
+ "block_device"
+ ],
+ "bus_type": {
+ "hex": "0084",
+ "name": "SCSI",
+ "value": 132
+ },
+ "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": "0781",
+ "name": "SanDisk",
+ "value": 1921
+ },
+ "device": {
+ "hex": "5581",
+ "name": "Sandisk Ultra",
+ "value": 21889
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "PMAP",
+ "value": 0
+ },
+ "serial": "AF2F00011030",
+ "model": "SanDisk Sandisk Ultra",
+ "sysfs_id": "/class/block/sda",
+ "sysfs_bus_id": "2:0:0:0",
+ "sysfs_device_link": "/devices/pci0000:00/0000:00:14.0/usb4/4-1/4-1:1.0/host2/target2:0:0/2:0:0:0",
+ "unix_device_names": [
+ "/dev/disk/by-id/usb-SanDisk_Sandisk_Ultra_A20013F341FFFF01-0:0",
+ "/dev/disk/by-path/pci-0000:00:14.0-usb-0:1:1.0-scsi-0:0:0:0",
+ "/dev/disk/by-path/pci-0000:00:14.0-usbv3-0:1:1.0-scsi-0:0:0:0",
+ "/dev/sda"
+ ],
+ "unix_device_name2": "/dev/sg0",
+ "resources": [
+ {
+ "type": "disk_geo",
+ "cylinders": 15120,
+ "heads": 64,
+ "sectors": 32,
+ "size": "0x0",
+ "geo_type": "logical"
+ },
+ {
+ "type": "size",
+ "unit": "sectors",
+ "value_1": 30965760,
+ "value_2": 512
+ }
+ ],
+ "driver": "usb-storage",
+ "driver_module": "usb_storage",
+ "drivers": [
+ "sd",
+ "usb-storage"
+ ],
+ "driver_modules": [
+ "sd_mod",
+ "usb_storage"
+ ],
+ "module_alias": "usb:v0781p5581d0100dc00dsc00dp00ic08isc06ip50in00"
+ }
+ ],
+ "graphics_card": [
+ {
+ "index": 39,
+ "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": "0000",
+ "name": "VGA compatible controller",
+ "value": 0
+ },
+ "pci_interface": {
+ "hex": "0000",
+ "name": "VGA",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "1043",
+ "value": 4163
+ },
+ "device": {
+ "hex": "46a6",
+ "value": 18086
+ },
+ "sub_device": {
+ "hex": "87f2",
+ "value": 34802
+ },
+ "revision": {
+ "hex": "000c",
+ "value": 12
+ },
+ "model": "Intel VGA compatible controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:02.0",
+ "sysfs_bus_id": "0000:00:02.0",
+ "resources": [
+ {
+ "type": "io",
+ "base": 12288,
+ "range": 64,
+ "enabled": true,
+ "access": "read_write"
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1031,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "prog_if": 0
+ },
+ "driver": "i915",
+ "driver_module": "i915",
+ "drivers": [
+ "i915"
+ ],
+ "driver_modules": [
+ "i915"
+ ],
+ "module_alias": "pci:v00008086d000046A6sv00001043sd000087F2bc03sc00i00",
+ "label": "Onboard - Video"
+ }
+ ],
+ "hub": [
+ {
+ "index": 47,
+ "attached_to": 40,
+ "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.12.63 xhci-hcd",
+ "value": 7531
+ },
+ "device": {
+ "hex": "0002",
+ "name": "xHCI Host Controller",
+ "value": 2
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "6.12",
+ "value": 0
+ },
+ "serial": "0000:00:14.0",
+ "model": "Linux 6.12.63 xhci-hcd xHCI Host Controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.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",
+ "driver_module": "usbcore",
+ "drivers": [
+ "hub"
+ ],
+ "driver_modules": [
+ "usbcore"
+ ],
+ "module_alias": "usb:v1D6Bp0002d0612dc09dsc00dp01ic09isc00ip00in00"
+ },
+ {
+ "index": 52,
+ "attached_to": 40,
+ "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.12.63 xhci-hcd",
+ "value": 7531
+ },
+ "device": {
+ "hex": "0003",
+ "name": "xHCI Host Controller",
+ "value": 3
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "6.12",
+ "value": 0
+ },
+ "serial": "0000:00:14.0",
+ "model": "Linux 6.12.63 xhci-hcd xHCI Host Controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.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",
+ "driver_module": "usbcore",
+ "drivers": [
+ "hub"
+ ],
+ "driver_modules": [
+ "usbcore"
+ ],
+ "module_alias": "usb:v1D6Bp0003d0612dc09dsc00dp03ic09isc00ip00in00"
+ },
+ {
+ "index": 53,
+ "attached_to": 47,
+ "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": "0451",
+ "name": "Texas Instruments",
+ "value": 1105
+ },
+ "device": {
+ "hex": "8442",
+ "value": 33858
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "1.00",
+ "value": 0
+ },
+ "serial": "4709007959C0",
+ "model": "Texas Instruments Hub",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5:1.0",
+ "sysfs_bus_id": "3-5: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": 2,
+ "interface_class": {
+ "hex": "0009",
+ "name": "hub",
+ "value": 9
+ },
+ "interface_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "interface_protocol": 2,
+ "interface_number": 0,
+ "interface_alternate_setting": 1
+ },
+ "hotplug": "usb",
+ "driver": "hub",
+ "driver_module": "usbcore",
+ "drivers": [
+ "hub"
+ ],
+ "driver_modules": [
+ "usbcore"
+ ],
+ "module_alias": "usb:v0451p8442d0100dc09dsc00dp02ic09isc00ip02in00"
+ },
+ {
+ "index": 56,
+ "attached_to": 23,
+ "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.12.63 xhci-hcd",
+ "value": 7531
+ },
+ "device": {
+ "hex": "0002",
+ "name": "xHCI Host Controller",
+ "value": 2
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "6.12",
+ "value": 0
+ },
+ "serial": "0000:00:0d.0",
+ "model": "Linux 6.12.63 xhci-hcd xHCI Host Controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:0d.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": 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",
+ "driver_module": "usbcore",
+ "drivers": [
+ "hub"
+ ],
+ "driver_modules": [
+ "usbcore"
+ ],
+ "module_alias": "usb:v1D6Bp0002d0612dc09dsc00dp01ic09isc00ip00in00"
+ },
+ {
+ "index": 64,
+ "attached_to": 23,
+ "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.12.63 xhci-hcd",
+ "value": 7531
+ },
+ "device": {
+ "hex": "0003",
+ "name": "xHCI Host Controller",
+ "value": 3
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "6.12",
+ "value": 0
+ },
+ "serial": "0000:00:0d.0",
+ "model": "Linux 6.12.63 xhci-hcd xHCI Host Controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:0d.0/usb2/2-0:1.0",
+ "sysfs_bus_id": "2-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",
+ "driver_module": "usbcore",
+ "drivers": [
+ "hub"
+ ],
+ "driver_modules": [
+ "usbcore"
+ ],
+ "module_alias": "usb:v1D6Bp0003d0612dc09dsc00dp03ic09isc00ip00in00"
+ }
+ ],
+ "keyboard": [
+ {
+ "index": 50,
+ "attached_to": 53,
+ "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": "046d",
+ "name": "Logitech Inc.",
+ "value": 1133
+ },
+ "device": {
+ "hex": "c094",
+ "name": "PRO X Wireless",
+ "value": 49300
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "25.01",
+ "value": 0
+ },
+ "serial": "E53F6E14",
+ "model": "Logitech PRO X Wireless",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.2/3-5.2:1.1",
+ "sysfs_bus_id": "3-5.2:1.1",
+ "unix_device_names": [
+ "/dev/input/by-id/usb-Logitech_PRO_X_Wireless_E53F6E14-if01-event-kbd",
+ "/dev/input/by-path/pci-0000:00:14.0-usb-0:5.2:1.1-event-kbd",
+ "/dev/input/by-path/pci-0000:00:14.0-usbv2-0:5.2:1.1-event-kbd",
+ "/dev/input/event4"
+ ],
+ "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": "0003",
+ "name": "hid",
+ "value": 3
+ },
+ "interface_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "interface_protocol": 1,
+ "interface_number": 1,
+ "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:v046DpC094d2501dc00dsc00dp00ic03isc01ip01in01"
+ },
+ {
+ "index": 55,
+ "attached_to": 53,
+ "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": "1b1c",
+ "name": "Corsair",
+ "value": 6940
+ },
+ "device": {
+ "hex": "1b09",
+ "name": "Corsair K70R Gaming Keyboard",
+ "value": 6921
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "1.09",
+ "value": 0
+ },
+ "model": "Corsair K70R Gaming Keyboard",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.1/3-5.1:1.0",
+ "sysfs_bus_id": "3-5.1:1.0",
+ "unix_device_names": [
+ "/dev/input/by-id/usb-Corsair_Corsair_K70R_Gaming_Keyboard-kbd",
+ "/dev/input/by-path/pci-0000:00:14.0-usb-0:5.1:1.0-kbd",
+ "/dev/input/by-path/pci-0000:00:14.0-usbv2-0:5.1:1.0-kbd",
+ "/dev/input/js0"
+ ],
+ "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": "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:v1B1Cp1B09d0109dc00dsc00dp00ic03isc01ip01in00"
+ }
+ ],
+ "memory": [
+ {
+ "index": 19,
+ "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": "phys_mem",
+ "range": 68719476736
+ }
+ ]
+ }
+ ],
+ "monitor": [
+ {
+ "index": 43,
+ "attached_to": 39,
+ "class_list": [
+ "monitor"
+ ],
+ "base_class": {
+ "hex": "0100",
+ "name": "Monitor",
+ "value": 256
+ },
+ "sub_class": {
+ "hex": "0002",
+ "name": "LCD Monitor",
+ "value": 2
+ },
+ "vendor": {
+ "hex": "10ac",
+ "name": "DELL",
+ "value": 4268
+ },
+ "device": {
+ "hex": "a125",
+ "name": "DELL U3219Q",
+ "value": 41253
+ },
+ "serial": "CP2P413",
+ "model": "DELL U3219Q",
+ "resources": [
+ {
+ "type": "monitor",
+ "width": 1024,
+ "height": 768,
+ "vertical_frequency": 60,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 1024,
+ "height": 768,
+ "vertical_frequency": 75,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 1152,
+ "height": 864,
+ "vertical_frequency": 75,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 1280,
+ "height": 1024,
+ "vertical_frequency": 60,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 1280,
+ "height": 1024,
+ "vertical_frequency": 75,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 1600,
+ "height": 1200,
+ "vertical_frequency": 60,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 1600,
+ "height": 900,
+ "vertical_frequency": 60,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 3840,
+ "height": 2160,
+ "vertical_frequency": 60,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 640,
+ "height": 480,
+ "vertical_frequency": 60,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 640,
+ "height": 480,
+ "vertical_frequency": 75,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 720,
+ "height": 400,
+ "vertical_frequency": 70,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 800,
+ "height": 600,
+ "vertical_frequency": 60,
+ "interlaced": false
+ },
+ {
+ "type": "monitor",
+ "width": 800,
+ "height": 600,
+ "vertical_frequency": 75,
+ "interlaced": false
+ },
+ {
+ "type": "size",
+ "unit": "mm",
+ "value_1": 697,
+ "value_2": 392
+ }
+ ],
+ "detail": {
+ "manufacture_year": 2021,
+ "manufacture_week": 21,
+ "vertical_sync": {
+ "min": 49,
+ "max": 86
+ },
+ "horizontal_sync": {
+ "min": 10,
+ "max": 137
+ },
+ "horizontal_sync_timings": {
+ "disp": 3840,
+ "sync_start": 3888,
+ "sync_end": 3920,
+ "total": 4000
+ },
+ "vertical_sync_timings": {
+ "disp": 2160,
+ "sync_start": 2163,
+ "sync_end": 2168,
+ "total": 2222
+ },
+ "clock": 533250,
+ "width": 3840,
+ "height": 2160,
+ "width_millimetres": 697,
+ "height_millimetres": 392,
+ "horizontal_flag": 45,
+ "vertical_flag": 43,
+ "vendor": "",
+ "name": "DELL U3219Q"
+ },
+ "driver_info": {
+ "type": "display",
+ "width": 3840,
+ "height": 2160,
+ "vertical_sync": {
+ "min": 49,
+ "max": 86
+ },
+ "horizontal_sync": {
+ "min": 10,
+ "max": 137
+ },
+ "bandwidth": 0,
+ "horizontal_sync_timings": {
+ "disp": 3840,
+ "sync_start": 3888,
+ "sync_end": 3920,
+ "total": 4000
+ },
+ "vertical_sync_timings": {
+ "disp": 2160,
+ "sync_start": 2163,
+ "sync_end": 2168,
+ "total": 2222
+ },
+ "horizontal_flag": 45,
+ "vertical_flag": 43
+ }
+ }
+ ],
+ "mouse": [
+ {
+ "index": 63,
+ "attached_to": 53,
+ "class_list": [
+ "mouse",
+ "usb"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0105",
+ "name": "Mouse",
+ "value": 261
+ },
+ "sub_class": {
+ "hex": "0003",
+ "name": "USB Mouse",
+ "value": 3
+ },
+ "vendor": {
+ "hex": "046d",
+ "name": "Logitech Inc.",
+ "value": 1133
+ },
+ "device": {
+ "hex": "c094",
+ "name": "PRO X Wireless",
+ "value": 49300
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "25.01",
+ "value": 0
+ },
+ "serial": "E53F6E14",
+ "compat_vendor": "Unknown",
+ "compat_device": "Generic USB Mouse",
+ "model": "Logitech PRO X Wireless",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.2/3-5.2:1.0",
+ "sysfs_bus_id": "3-5.2:1.0",
+ "unix_device_names": [
+ "/dev/input/mice"
+ ],
+ "unix_device_name2": "/dev/input/mouse0",
+ "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": "0003",
+ "name": "hid",
+ "value": 3
+ },
+ "interface_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "interface_protocol": 2,
+ "interface_number": 0,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "usbhid",
+ "driver_module": "usbhid",
+ "drivers": [
+ "usbhid"
+ ],
+ "driver_modules": [
+ "usbhid"
+ ],
+ "driver_info": {
+ "type": "mouse",
+ "db_entry_0": [
+ "explorerps/2",
+ "exps2"
+ ],
+ "xf86": "explorerps/2",
+ "gpm": "exps2",
+ "buttons": -1,
+ "wheels": -1
+ },
+ "module_alias": "usb:v046DpC094d2501dc00dsc00dp00ic03isc01ip02in00"
+ }
+ ],
+ "network_controller": [
+ {
+ "index": 20,
+ "attached_to": 27,
+ "class_list": [
+ "network_controller",
+ "pci",
+ "wlan_card"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 3,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0002",
+ "name": "Network controller",
+ "value": 2
+ },
+ "sub_class": {
+ "hex": "0082",
+ "name": "WLAN controller",
+ "value": 130
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "device": {
+ "hex": "2725",
+ "value": 10021
+ },
+ "sub_device": {
+ "hex": "0024",
+ "value": 36
+ },
+ "revision": {
+ "hex": "001a",
+ "value": 26
+ },
+ "model": "Intel WLAN controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1d.1/0000:03:00.0",
+ "sysfs_bus_id": "0000:03:00.0",
+ "unix_device_names": [
+ "wlp3s0"
+ ],
+ "resources": [
+ {
+ "type": "hwaddr",
+ "address": 52
+ },
+ {
+ "type": "phwaddr",
+ "address": 49
+ },
+ {
+ "type": "wlan",
+ "channels": [
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10",
+ "11",
+ "12",
+ "13",
+ "36",
+ "40",
+ "44",
+ "48",
+ "52",
+ "56",
+ "60",
+ "64",
+ "100",
+ "104",
+ "108",
+ "112",
+ "116",
+ "120",
+ "124",
+ "128",
+ "132",
+ "136",
+ "140"
+ ],
+ "frequencies": [
+ "2.412",
+ "2.417",
+ "2.422",
+ "2.427",
+ "2.432",
+ "2.437",
+ "2.442",
+ "2.447",
+ "2.452",
+ "2.457",
+ "2.462",
+ "2.467",
+ "2.472",
+ "5.18",
+ "5.2",
+ "5.22",
+ "5.24",
+ "5.26",
+ "5.28",
+ "5.3",
+ "5.32",
+ "5.5",
+ "5.52",
+ "5.54",
+ "5.56",
+ "5.58",
+ "5.6",
+ "5.62",
+ "5.64",
+ "5.66",
+ "5.68",
+ "5.7"
+ ],
+ "auth_modes": [
+ "open",
+ "sharedkey",
+ "wpa-psk",
+ "wpa-eap"
+ ],
+ "enc_modes": [
+ "WEP40",
+ "WEP104",
+ "TKIP",
+ "CCMP"
+ ]
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1030,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "prog_if": 0
+ },
+ "driver": "iwlwifi",
+ "driver_module": "iwlwifi",
+ "drivers": [
+ "iwlwifi"
+ ],
+ "driver_modules": [
+ "iwlwifi"
+ ],
+ "module_alias": "pci:v00008086d00002725sv00008086sd00000024bc02sc80i00"
+ },
+ {
+ "index": 26,
+ "attached_to": 36,
+ "class_list": [
+ "network_controller",
+ "pci"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 2,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0002",
+ "name": "Network controller",
+ "value": 2
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "Ethernet controller",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "1043",
+ "value": 4163
+ },
+ "device": {
+ "hex": "15f3",
+ "value": 5619
+ },
+ "sub_device": {
+ "hex": "87d2",
+ "value": 34770
+ },
+ "revision": {
+ "hex": "0003",
+ "value": 3
+ },
+ "model": "Intel Ethernet controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1d.0/0000:02:00.0",
+ "sysfs_bus_id": "0000:02:00.0",
+ "unix_device_names": [
+ "enp2s0"
+ ],
+ "resources": [
+ {
+ "type": "hwaddr",
+ "address": 99
+ },
+ {
+ "type": "phwaddr",
+ "address": 99
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1030,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "prog_if": 0
+ },
+ "driver": "igc",
+ "driver_module": "igc",
+ "drivers": [
+ "igc"
+ ],
+ "driver_modules": [
+ "igc"
+ ],
+ "module_alias": "pci:v00008086d000015F3sv00001043sd000087D2bc02sc00i00"
+ }
+ ],
+ "network_interface": [
+ {
+ "index": 65,
+ "attached_to": 20,
+ "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/wlp3s0",
+ "sysfs_device_link": "/devices/pci0000:00/0000:00:1d.1/0000:03:00.0",
+ "unix_device_names": [
+ "wlp3s0"
+ ],
+ "resources": [
+ {
+ "type": "hwaddr",
+ "address": 52
+ },
+ {
+ "type": "phwaddr",
+ "address": 49
+ }
+ ],
+ "driver": "iwlwifi",
+ "driver_module": "iwlwifi",
+ "drivers": [
+ "iwlwifi"
+ ],
+ "driver_modules": [
+ "iwlwifi"
+ ]
+ },
+ {
+ "index": 66,
+ "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_names": [
+ "lo"
+ ]
+ },
+ {
+ "index": 67,
+ "attached_to": 26,
+ "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/enp2s0",
+ "sysfs_device_link": "/devices/pci0000:00/0000:00:1d.0/0000:02:00.0",
+ "unix_device_names": [
+ "enp2s0"
+ ],
+ "resources": [
+ {
+ "type": "hwaddr",
+ "address": 99
+ },
+ {
+ "type": "phwaddr",
+ "address": 99
+ }
+ ],
+ "driver": "igc",
+ "driver_module": "igc",
+ "drivers": [
+ "igc"
+ ],
+ "driver_modules": [
+ "igc"
+ ]
+ }
+ ],
+ "pci": [
+ {
+ "index": 22,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 8
+ },
+ "base_class": {
+ "hex": "0008",
+ "name": "Generic system peripheral",
+ "value": 8
+ },
+ "sub_class": {
+ "hex": "0080",
+ "name": "System peripheral",
+ "value": 128
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "1043",
+ "value": 4163
+ },
+ "device": {
+ "hex": "464f",
+ "value": 17999
+ },
+ "sub_device": {
+ "hex": "87f2",
+ "value": 34802
+ },
+ "revision": {
+ "hex": "0002",
+ "value": 2
+ },
+ "model": "Intel System peripheral",
+ "sysfs_id": "/devices/pci0000:00/0000:00:08.0",
+ "sysfs_bus_id": "0000:00:08.0",
+ "detail": {
+ "function": 0,
+ "command": 0,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "prog_if": 0
+ },
+ "module_alias": "pci:v00008086d0000464Fsv00001043sd000087F2bc08sc80i00",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 24,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 21
+ },
+ "base_class": {
+ "hex": "000c",
+ "name": "Serial bus controller",
+ "value": 12
+ },
+ "sub_class": {
+ "hex": "0080",
+ "value": 128
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "1043",
+ "value": 4163
+ },
+ "device": {
+ "hex": "51e9",
+ "value": 20969
+ },
+ "sub_device": {
+ "hex": "87f2",
+ "value": 34802
+ },
+ "revision": {
+ "hex": "0001",
+ "value": 1
+ },
+ "model": "Intel Serial bus controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:15.1",
+ "sysfs_bus_id": "0000:00:15.1",
+ "detail": {
+ "function": 1,
+ "command": 6,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "prog_if": 0
+ },
+ "driver": "intel-lpss",
+ "driver_module": "intel_lpss_pci",
+ "drivers": [
+ "intel-lpss"
+ ],
+ "driver_modules": [
+ "intel_lpss_pci"
+ ],
+ "module_alias": "pci:v00008086d000051E9sv00001043sd000087F2bc0Csc80i00",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 28,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 4
+ },
+ "base_class": {
+ "hex": "0011",
+ "name": "Signal processing controller",
+ "value": 17
+ },
+ "sub_class": {
+ "hex": "0080",
+ "name": "Signal processing controller",
+ "value": 128
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "1043",
+ "value": 4163
+ },
+ "device": {
+ "hex": "461d",
+ "value": 17949
+ },
+ "sub_device": {
+ "hex": "87f2",
+ "value": 34802
+ },
+ "revision": {
+ "hex": "0002",
+ "value": 2
+ },
+ "model": "Intel Signal processing controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:04.0",
+ "sysfs_bus_id": "0000:00:04.0",
+ "detail": {
+ "function": 0,
+ "command": 6,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "prog_if": 0
+ },
+ "driver": "proc_thermal_pci",
+ "driver_module": "processor_thermal_device_pci",
+ "drivers": [
+ "proc_thermal_pci"
+ ],
+ "driver_modules": [
+ "processor_thermal_device_pci"
+ ],
+ "module_alias": "pci:v00008086d0000461Dsv00001043sd000087F2bc11sc80i00",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 29,
+ "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": "1043",
+ "value": 4163
+ },
+ "device": {
+ "hex": "51e0",
+ "value": 20960
+ },
+ "sub_device": {
+ "hex": "87f2",
+ "value": 34802
+ },
+ "revision": {
+ "hex": "0001",
+ "value": 1
+ },
+ "model": "Intel Communication controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:16.0",
+ "sysfs_bus_id": "0000:00:16.0",
+ "detail": {
+ "function": 0,
+ "command": 1030,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "prog_if": 0
+ },
+ "driver": "mei_me",
+ "driver_module": "mei_me",
+ "drivers": [
+ "mei_me"
+ ],
+ "driver_modules": [
+ "mei_me"
+ ],
+ "module_alias": "pci:v00008086d000051E0sv00001043sd000087F2bc07sc80i00",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 31,
+ "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": "0080",
+ "value": 128
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "1043",
+ "value": 4163
+ },
+ "device": {
+ "hex": "51a4",
+ "value": 20900
+ },
+ "sub_device": {
+ "hex": "87f2",
+ "value": 34802
+ },
+ "revision": {
+ "hex": "0001",
+ "value": 1
+ },
+ "model": "Intel Serial bus controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1f.5",
+ "sysfs_bus_id": "0000:00:1f.5",
+ "detail": {
+ "function": 5,
+ "command": 1026,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "prog_if": 0
+ },
+ "driver": "intel-spi",
+ "driver_module": "spi_intel_pci",
+ "drivers": [
+ "intel-spi"
+ ],
+ "driver_modules": [
+ "spi_intel_pci"
+ ],
+ "module_alias": "pci:v00008086d000051A4sv00001043sd000087F2bc0Csc80i00",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 34,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 21
+ },
+ "base_class": {
+ "hex": "000c",
+ "name": "Serial bus controller",
+ "value": 12
+ },
+ "sub_class": {
+ "hex": "0080",
+ "value": 128
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "1043",
+ "value": 4163
+ },
+ "device": {
+ "hex": "51e8",
+ "value": 20968
+ },
+ "sub_device": {
+ "hex": "87f2",
+ "value": 34802
+ },
+ "revision": {
+ "hex": "0001",
+ "value": 1
+ },
+ "model": "Intel Serial bus controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:15.0",
+ "sysfs_bus_id": "0000:00:15.0",
+ "detail": {
+ "function": 0,
+ "command": 6,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "prog_if": 0
+ },
+ "driver": "intel-lpss",
+ "driver_module": "intel_lpss_pci",
+ "drivers": [
+ "intel-lpss"
+ ],
+ "driver_modules": [
+ "intel_lpss_pci"
+ ],
+ "module_alias": "pci:v00008086d000051E8sv00001043sd000087F2bc0Csc80i00",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 38,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 20
+ },
+ "base_class": {
+ "hex": "0005",
+ "name": "Memory controller",
+ "value": 5
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "RAM memory",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "1043",
+ "value": 4163
+ },
+ "device": {
+ "hex": "51ef",
+ "value": 20975
+ },
+ "sub_device": {
+ "hex": "87f2",
+ "value": 34802
+ },
+ "revision": {
+ "hex": "0001",
+ "value": 1
+ },
+ "model": "Intel RAM memory",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.2",
+ "sysfs_bus_id": "0000:00:14.2",
+ "detail": {
+ "function": 2,
+ "command": 0,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "prog_if": 0
+ },
+ "module_alias": "pci:v00008086d000051EFsv00001043sd000087F2bc05sc00i00",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 41,
+ "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": "1043",
+ "value": 4163
+ },
+ "device": {
+ "hex": "51a3",
+ "value": 20899
+ },
+ "sub_device": {
+ "hex": "87f2",
+ "value": 34802
+ },
+ "revision": {
+ "hex": "0001",
+ "value": 1
+ },
+ "model": "Intel SMBus",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1f.4",
+ "sysfs_bus_id": "0000:00:1f.4",
+ "resources": [
+ {
+ "type": "io",
+ "base": 61344,
+ "range": 32,
+ "enabled": true,
+ "access": "read_write"
+ }
+ ],
+ "detail": {
+ "function": 4,
+ "command": 3,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "prog_if": 0
+ },
+ "driver": "i801_smbus",
+ "driver_module": "i2c_i801",
+ "drivers": [
+ "i801_smbus"
+ ],
+ "driver_modules": [
+ "i2c_i801"
+ ],
+ "module_alias": "pci:v00008086d000051A3sv00001043sd000087F2bc0Csc05i00",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 42,
+ "attached_to": 0,
+ "class_list": [
+ "pci",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 10
+ },
+ "base_class": {
+ "hex": "0011",
+ "name": "Signal processing controller",
+ "value": 17
+ },
+ "sub_class": {
+ "hex": "0080",
+ "name": "Signal processing controller",
+ "value": 128
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "device": {
+ "hex": "467d",
+ "value": 18045
+ },
+ "revision": {
+ "hex": "0001",
+ "value": 1
+ },
+ "model": "Intel Signal processing controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:0a.0",
+ "sysfs_bus_id": "0000:00:0a.0",
+ "detail": {
+ "function": 0,
+ "command": 2,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "prog_if": 0
+ },
+ "driver": "intel_vsec",
+ "driver_module": "intel_vsec",
+ "drivers": [
+ "intel_vsec"
+ ],
+ "driver_modules": [
+ "intel_vsec"
+ ],
+ "module_alias": "pci:v00008086d0000467Dsv00000000sd00000000bc11sc80i00",
+ "label": "Onboard - Other"
+ }
+ ],
+ "sound": [
+ {
+ "index": 32,
+ "attached_to": 0,
+ "class_list": [
+ "sound",
+ "pci"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 31
+ },
+ "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": "1043",
+ "value": 4163
+ },
+ "device": {
+ "hex": "51c8",
+ "value": 20936
+ },
+ "sub_device": {
+ "hex": "8873",
+ "value": 34931
+ },
+ "revision": {
+ "hex": "0001",
+ "value": 1
+ },
+ "model": "Intel Multimedia controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:1f.3",
+ "sysfs_bus_id": "0000:00:1f.3",
+ "detail": {
+ "function": 3,
+ "command": 1030,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "prog_if": 0
+ },
+ "driver": "snd_hda_intel",
+ "driver_module": "snd_hda_intel",
+ "drivers": [
+ "snd_hda_intel"
+ ],
+ "driver_modules": [
+ "snd_hda_intel"
+ ],
+ "module_alias": "pci:v00008086d000051C8sv00001043sd00008873bc04sc03i00",
+ "label": "Onboard - Sound"
+ },
+ {
+ "index": 51,
+ "attached_to": 53,
+ "class_list": [
+ "sound",
+ "usb"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0004",
+ "name": "Multimedia controller",
+ "value": 4
+ },
+ "sub_class": {
+ "hex": "0001",
+ "name": "Multimedia audio controller",
+ "value": 1
+ },
+ "vendor": {
+ "hex": "046d",
+ "name": "Logitech Inc.",
+ "value": 1133
+ },
+ "device": {
+ "hex": "082c",
+ "name": "HD Webcam C615",
+ "value": 2092
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "0.11",
+ "value": 0
+ },
+ "serial": "0B8FA460",
+ "model": "Logitech HD Webcam C615",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.4/3-5.4:1.0",
+ "sysfs_bus_id": "3-5.4:1.0",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 480000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "00ef",
+ "name": "miscellaneous",
+ "value": 239
+ },
+ "device_subclass": {
+ "hex": "0002",
+ "name": "comm",
+ "value": 2
+ },
+ "device_protocol": 1,
+ "interface_class": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "interface_subclass": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "interface_protocol": 0,
+ "interface_number": 0,
+ "interface_alternate_setting": 0,
+ "interface_association": {
+ "function_class": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "function_subclass": {
+ "hex": "0002",
+ "name": "comm",
+ "value": 2
+ },
+ "function_protocol": 0,
+ "interface_count": 2,
+ "first_interface": 0
+ }
+ },
+ "hotplug": "usb",
+ "driver": "snd-usb-audio",
+ "driver_module": "snd_usb_audio",
+ "drivers": [
+ "snd-usb-audio"
+ ],
+ "driver_modules": [
+ "snd_usb_audio"
+ ],
+ "module_alias": "usb:v046Dp082Cd0011dcEFdsc02dp01ic01isc01ip00in00"
+ },
+ {
+ "index": 62,
+ "attached_to": 53,
+ "class_list": [
+ "sound",
+ "usb"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0004",
+ "name": "Multimedia controller",
+ "value": 4
+ },
+ "sub_class": {
+ "hex": "0001",
+ "name": "Multimedia audio controller",
+ "value": 1
+ },
+ "vendor": {
+ "hex": "046d",
+ "name": "Logitech Inc.",
+ "value": 1133
+ },
+ "device": {
+ "hex": "082c",
+ "name": "HD Webcam C615",
+ "value": 2092
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "0.11",
+ "value": 0
+ },
+ "serial": "0B8FA460",
+ "model": "Logitech HD Webcam C615",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.4/3-5.4:1.1",
+ "sysfs_bus_id": "3-5.4:1.1",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 480000000,
+ "bits": 0,
+ "stop_bits": 0,
+ "parity": 0,
+ "handshake": 0
+ }
+ ],
+ "detail": {
+ "device_class": {
+ "hex": "00ef",
+ "name": "miscellaneous",
+ "value": 239
+ },
+ "device_subclass": {
+ "hex": "0002",
+ "name": "comm",
+ "value": 2
+ },
+ "device_protocol": 1,
+ "interface_class": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "interface_subclass": {
+ "hex": "0002",
+ "name": "comm",
+ "value": 2
+ },
+ "interface_protocol": 0,
+ "interface_number": 1,
+ "interface_alternate_setting": 0,
+ "interface_association": {
+ "function_class": {
+ "hex": "0001",
+ "name": "audio",
+ "value": 1
+ },
+ "function_subclass": {
+ "hex": "0002",
+ "name": "comm",
+ "value": 2
+ },
+ "function_protocol": 0,
+ "interface_count": 2,
+ "first_interface": 0
+ }
+ },
+ "hotplug": "usb",
+ "driver": "snd-usb-audio",
+ "driver_module": "snd_usb_audio",
+ "drivers": [
+ "snd-usb-audio"
+ ],
+ "driver_modules": [
+ "snd_usb_audio"
+ ],
+ "module_alias": "usb:v046Dp082Cd0011dcEFdsc02dp01ic01isc02ip00in01"
+ }
+ ],
+ "storage_controller": [
+ {
+ "index": 21,
+ "attached_to": 0,
+ "class_list": [
+ "storage_controller",
+ "pci"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 23
+ },
+ "base_class": {
+ "hex": "0001",
+ "name": "Mass storage controller",
+ "value": 1
+ },
+ "sub_class": {
+ "hex": "0006",
+ "value": 6
+ },
+ "pci_interface": {
+ "hex": "0001",
+ "value": 1
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "1043",
+ "value": 4163
+ },
+ "device": {
+ "hex": "51d3",
+ "value": 20947
+ },
+ "sub_device": {
+ "hex": "87f2",
+ "value": 34802
+ },
+ "revision": {
+ "hex": "0001",
+ "value": 1
+ },
+ "model": "Intel Mass storage controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:17.0",
+ "sysfs_bus_id": "0000:00:17.0",
+ "resources": [
+ {
+ "type": "io",
+ "base": 12384,
+ "range": 32,
+ "enabled": true,
+ "access": "read_write"
+ },
+ {
+ "type": "io",
+ "base": 12416,
+ "range": 4,
+ "enabled": true,
+ "access": "read_write"
+ },
+ {
+ "type": "io",
+ "base": 12432,
+ "range": 8,
+ "enabled": true,
+ "access": "read_write"
+ }
+ ],
+ "detail": {
+ "function": 0,
+ "command": 1031,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "prog_if": 1
+ },
+ "driver": "ahci",
+ "driver_module": "ahci",
+ "drivers": [
+ "ahci"
+ ],
+ "driver_modules": [
+ "ahci"
+ ],
+ "module_alias": "pci:v00008086d000051D3sv00001043sd000087F2bc01sc06i01",
+ "label": "Onboard - SATA"
+ },
+ {
+ "index": 30,
+ "attached_to": 35,
+ "class_list": [
+ "storage_controller",
+ "pci"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 1,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0001",
+ "name": "Mass storage controller",
+ "value": 1
+ },
+ "sub_class": {
+ "hex": "0008",
+ "value": 8
+ },
+ "pci_interface": {
+ "hex": "0002",
+ "value": 2
+ },
+ "vendor": {
+ "hex": "144d",
+ "value": 5197
+ },
+ "sub_vendor": {
+ "hex": "144d",
+ "value": 5197
+ },
+ "device": {
+ "hex": "a80a",
+ "value": 43018
+ },
+ "sub_device": {
+ "hex": "a801",
+ "value": 43009
+ },
+ "model": "Mass storage controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:06.0/0000:01:00.0",
+ "sysfs_bus_id": "0000:01:00.0",
+ "detail": {
+ "function": 0,
+ "command": 1030,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "prog_if": 2
+ },
+ "driver": "nvme",
+ "driver_module": "nvme",
+ "drivers": [
+ "nvme"
+ ],
+ "driver_modules": [
+ "nvme"
+ ],
+ "module_alias": "pci:v0000144Dd0000A80Asv0000144Dsd0000A801bc01sc08i02"
+ },
+ {
+ "index": 37,
+ "attached_to": 0,
+ "class_list": [
+ "storage_controller",
+ "pci"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 14
+ },
+ "base_class": {
+ "hex": "0001",
+ "name": "Mass storage controller",
+ "value": 1
+ },
+ "sub_class": {
+ "hex": "0004",
+ "name": "RAID bus controller",
+ "value": 4
+ },
+ "vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "device": {
+ "hex": "467f",
+ "value": 18047
+ },
+ "sub_device": {
+ "hex": "0000",
+ "value": 0
+ },
+ "model": "Intel RAID bus controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:0e.0",
+ "sysfs_bus_id": "0000:00:0e.0",
+ "detail": {
+ "function": 0,
+ "command": 1030,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "prog_if": 0
+ },
+ "driver": "vmd",
+ "driver_module": "vmd",
+ "drivers": [
+ "vmd"
+ ],
+ "driver_modules": [
+ "vmd"
+ ],
+ "module_alias": "pci:v00008086d0000467Fsv00008086sd00000000bc01sc04i00",
+ "label": "Onboard - Other"
+ }
+ ],
+ "system": {
+ "form_factor": "laptop"
+ },
+ "usb": [
+ {
+ "index": 46,
+ "attached_to": 53,
+ "class_list": [
+ "usb",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0000",
+ "name": "Unclassified device",
+ "value": 0
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "Unclassified device",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "1b1c",
+ "name": "Corsair",
+ "value": 6940
+ },
+ "device": {
+ "hex": "1b09",
+ "name": "Corsair K70R Gaming Keyboard",
+ "value": 6921
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "1.09",
+ "value": 0
+ },
+ "model": "Corsair K70R Gaming Keyboard",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.1/3-5.1:1.1",
+ "sysfs_bus_id": "3-5.1:1.1",
+ "unix_device_names": [
+ "/dev/input/by-id/usb-Corsair_Corsair_K70R_Gaming_Keyboard-event-if01",
+ "/dev/input/by-path/pci-0000:00:14.0-usb-0:5.1:1.1-event",
+ "/dev/input/by-path/pci-0000:00:14.0-usbv2-0:5.1:1.1-event",
+ "/dev/input/event1"
+ ],
+ "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": "0003",
+ "name": "hid",
+ "value": 3
+ },
+ "interface_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "interface_protocol": 0,
+ "interface_number": 1,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "usbhid",
+ "driver_module": "usbhid",
+ "drivers": [
+ "usbhid"
+ ],
+ "driver_modules": [
+ "usbhid"
+ ],
+ "module_alias": "usb:v1B1Cp1B09d0109dc00dsc00dp00ic03isc00ip00in01"
+ },
+ {
+ "index": 54,
+ "attached_to": 53,
+ "class_list": [
+ "usb",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0000",
+ "name": "Unclassified device",
+ "value": 0
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "Unclassified device",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "1b1c",
+ "name": "Corsair",
+ "value": 6940
+ },
+ "device": {
+ "hex": "1b09",
+ "name": "Corsair K70R Gaming Keyboard",
+ "value": 6921
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "1.09",
+ "value": 0
+ },
+ "model": "Corsair K70R Gaming Keyboard",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.1/3-5.1:1.2",
+ "sysfs_bus_id": "3-5.1:1.2",
+ "unix_device_names": [
+ "/dev/input/by-id/usb-Corsair_Corsair_K70R_Gaming_Keyboard-if02-event-kbd",
+ "/dev/input/by-path/pci-0000:00:14.0-usb-0:5.1:1.2-event-kbd",
+ "/dev/input/by-path/pci-0000:00:14.0-usbv2-0:5.1:1.2-event-kbd",
+ "/dev/input/event2"
+ ],
+ "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": "0003",
+ "name": "hid",
+ "value": 3
+ },
+ "interface_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "interface_protocol": 0,
+ "interface_number": 2,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "usbhid",
+ "driver_module": "usbhid",
+ "drivers": [
+ "usbhid"
+ ],
+ "driver_modules": [
+ "usbhid"
+ ],
+ "module_alias": "usb:v1B1Cp1B09d0109dc00dsc00dp00ic03isc00ip00in02"
+ },
+ {
+ "index": 57,
+ "attached_to": 53,
+ "class_list": [
+ "usb",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0000",
+ "name": "Unclassified device",
+ "value": 0
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "Unclassified device",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "0451",
+ "name": "Texas Instruments",
+ "value": 1105
+ },
+ "device": {
+ "hex": "82ff",
+ "value": 33535
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "2.00",
+ "value": 0
+ },
+ "model": "Texas Instruments Unclassified device",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.5/3-5.5:1.0",
+ "sysfs_bus_id": "3-5.5:1.0",
+ "resources": [
+ {
+ "type": "baud",
+ "speed": 480000000,
+ "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": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "interface_protocol": 0,
+ "interface_number": 0,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "usbhid",
+ "driver_module": "usbhid",
+ "drivers": [
+ "usbhid"
+ ],
+ "driver_modules": [
+ "usbhid"
+ ],
+ "module_alias": "usb:v0451p82FFd0200dc00dsc00dp00ic03isc00ip00in00"
+ },
+ {
+ "index": 61,
+ "attached_to": 53,
+ "class_list": [
+ "usb",
+ "unknown"
+ ],
+ "bus_type": {
+ "hex": "0086",
+ "name": "USB",
+ "value": 134
+ },
+ "slot": {
+ "bus": 0,
+ "number": 0
+ },
+ "base_class": {
+ "hex": "0000",
+ "name": "Unclassified device",
+ "value": 0
+ },
+ "sub_class": {
+ "hex": "0000",
+ "name": "Unclassified device",
+ "value": 0
+ },
+ "vendor": {
+ "hex": "046d",
+ "name": "Logitech Inc.",
+ "value": 1133
+ },
+ "device": {
+ "hex": "c094",
+ "name": "PRO X Wireless",
+ "value": 49300
+ },
+ "revision": {
+ "hex": "0000",
+ "name": "25.01",
+ "value": 0
+ },
+ "serial": "E53F6E14",
+ "model": "Logitech PRO X Wireless",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.2/3-5.2:1.2",
+ "sysfs_bus_id": "3-5.2:1.2",
+ "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": "0003",
+ "name": "hid",
+ "value": 3
+ },
+ "interface_subclass": {
+ "hex": "0000",
+ "name": "per_interface",
+ "value": 0
+ },
+ "interface_protocol": 0,
+ "interface_number": 2,
+ "interface_alternate_setting": 0
+ },
+ "hotplug": "usb",
+ "driver": "usbhid",
+ "driver_module": "usbhid",
+ "drivers": [
+ "usbhid"
+ ],
+ "driver_modules": [
+ "usbhid"
+ ],
+ "module_alias": "usb:v046DpC094d2501dc00dsc00dp00ic03isc00ip00in02"
+ }
+ ],
+ "usb_controller": [
+ {
+ "index": 23,
+ "attached_to": 0,
+ "class_list": [
+ "usb_controller",
+ "pci"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 13
+ },
+ "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": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "device": {
+ "hex": "461e",
+ "value": 17950
+ },
+ "revision": {
+ "hex": "0002",
+ "value": 2
+ },
+ "model": "Intel USB Controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:0d.0",
+ "sysfs_bus_id": "0000:00:0d.0",
+ "detail": {
+ "function": 0,
+ "command": 1030,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "prog_if": 48
+ },
+ "driver": "xhci_hcd",
+ "driver_module": "xhci_pci",
+ "drivers": [
+ "xhci_hcd"
+ ],
+ "driver_modules": [
+ "xhci_pci"
+ ],
+ "module_alias": "pci:v00008086d0000461Esv00000000sd00000000bc0Csc03i30",
+ "label": "Onboard - Other"
+ },
+ {
+ "index": 40,
+ "attached_to": 0,
+ "class_list": [
+ "usb_controller",
+ "pci"
+ ],
+ "bus_type": {
+ "hex": "0004",
+ "name": "PCI",
+ "value": 4
+ },
+ "slot": {
+ "bus": 0,
+ "number": 20
+ },
+ "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": "8086",
+ "name": "Intel Corporation",
+ "value": 32902
+ },
+ "sub_vendor": {
+ "hex": "1043",
+ "value": 4163
+ },
+ "device": {
+ "hex": "51ed",
+ "value": 20973
+ },
+ "sub_device": {
+ "hex": "87f2",
+ "value": 34802
+ },
+ "revision": {
+ "hex": "0001",
+ "value": 1
+ },
+ "model": "Intel USB Controller",
+ "sysfs_id": "/devices/pci0000:00/0000:00:14.0",
+ "sysfs_bus_id": "0000:00:14.0",
+ "detail": {
+ "function": 0,
+ "command": 1030,
+ "header_type": 0,
+ "secondary_bus": 0,
+ "prog_if": 48
+ },
+ "driver": "xhci_hcd",
+ "driver_module": "xhci_pci",
+ "drivers": [
+ "xhci_hcd"
+ ],
+ "driver_modules": [
+ "xhci_pci"
+ ],
+ "module_alias": "pci:v00008086d000051EDsv00001043sd000087F2bc0Csc03i30",
+ "label": "Onboard - Other"
+ }
+ ]
+ },
+ "smbios": {
+ "bios": {
+ "handle": 0,
+ "vendor": "ASUSTeK COMPUTER INC.",
+ "version": "2.14.00",
+ "date": "09/20/2023",
+ "features": [
+ "PCI supported",
+ "BIOS flashable",
+ "BIOS shadowing allowed",
+ "CD boot supported",
+ "Selectable boot supported",
+ "BIOS ROM socketed",
+ "EDD spec supported",
+ "1.2MB NEC 9800 Japanese Floppy supported",
+ "1.2MB Toshiba Japanese Floppy supported",
+ "360kB Floppy supported",
+ "1.2MB Floppy supported",
+ "720kB Floppy supported",
+ "2.88MB Floppy supported",
+ "Print Screen supported",
+ "Serial Services supported",
+ "Printer Services supported",
+ "CGA/Mono Video supported",
+ "ACPI supported",
+ "USB Legacy supported",
+ "BIOS Boot Spec supported"
+ ],
+ "start_address": "0xf0000",
+ "rom_size": 16777216
+ },
+ "board": {
+ "handle": 2,
+ "manufacturer": "ASUSTeK COMPUTER INC.",
+ "product": "PN64",
+ "version": "Default string",
+ "board_type": {
+ "hex": "000a",
+ "name": "Motherboard",
+ "value": 10
+ },
+ "features": [
+ "Hosting Board",
+ "Replaceable"
+ ],
+ "location": "Default string",
+ "chassis": 3
+ },
+ "cache": [
+ {
+ "handle": 67,
+ "socket": "L1 Cache",
+ "size_max": 192,
+ "size_current": 192,
+ "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": "0004",
+ "name": "Parity",
+ "value": 4
+ },
+ "cache_type": {
+ "hex": "0004",
+ "name": "Data",
+ "value": 4
+ },
+ "associativity": {
+ "hex": "0009",
+ "name": "Other",
+ "value": 9
+ },
+ "sram_type_current": [
+ "Synchronous"
+ ],
+ "sram_type_supported": [
+ "Synchronous"
+ ]
+ },
+ {
+ "handle": 68,
+ "socket": "L1 Cache",
+ "size_max": 128,
+ "size_current": 128,
+ "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": "0004",
+ "name": "Parity",
+ "value": 4
+ },
+ "cache_type": {
+ "hex": "0003",
+ "name": "Instruction",
+ "value": 3
+ },
+ "associativity": {
+ "hex": "0007",
+ "name": "8-way Set-Associative",
+ "value": 7
+ },
+ "sram_type_current": [
+ "Synchronous"
+ ],
+ "sram_type_supported": [
+ "Synchronous"
+ ]
+ },
+ {
+ "handle": 69,
+ "socket": "L2 Cache",
+ "size_max": 5120,
+ "size_current": 5120,
+ "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": "0005",
+ "name": "Single-bit",
+ "value": 5
+ },
+ "cache_type": {
+ "hex": "0005",
+ "name": "Unified",
+ "value": 5
+ },
+ "associativity": {
+ "hex": "0001",
+ "name": "Other",
+ "value": 1
+ },
+ "sram_type_current": [
+ "Synchronous"
+ ],
+ "sram_type_supported": [
+ "Synchronous"
+ ]
+ },
+ {
+ "handle": 70,
+ "socket": "L3 Cache",
+ "size_max": 18432,
+ "size_current": 18432,
+ "speed": 0,
+ "mode": {
+ "hex": "0001",
+ "name": "Write Back",
+ "value": 1
+ },
+ "enabled": true,
+ "location": {
+ "hex": "0000",
+ "name": "Internal",
+ "value": 0
+ },
+ "socketed": false,
+ "level": 2,
+ "ecc": {
+ "hex": "0006",
+ "name": "Multi-bit",
+ "value": 6
+ },
+ "cache_type": {
+ "hex": "0005",
+ "name": "Unified",
+ "value": 5
+ },
+ "associativity": {
+ "hex": "0009",
+ "name": "Other",
+ "value": 9
+ },
+ "sram_type_current": [
+ "Synchronous"
+ ],
+ "sram_type_supported": [
+ "Synchronous"
+ ]
+ },
+ {
+ "handle": 71,
+ "socket": "L1 Cache",
+ "size_max": 256,
+ "size_current": 256,
+ "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": "0004",
+ "name": "Parity",
+ "value": 4
+ },
+ "cache_type": {
+ "hex": "0004",
+ "name": "Data",
+ "value": 4
+ },
+ "associativity": {
+ "hex": "0007",
+ "name": "8-way Set-Associative",
+ "value": 7
+ },
+ "sram_type_current": [
+ "Synchronous"
+ ],
+ "sram_type_supported": [
+ "Synchronous"
+ ]
+ },
+ {
+ "handle": 72,
+ "socket": "L1 Cache",
+ "size_max": 512,
+ "size_current": 512,
+ "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": "0004",
+ "name": "Parity",
+ "value": 4
+ },
+ "cache_type": {
+ "hex": "0003",
+ "name": "Instruction",
+ "value": 3
+ },
+ "associativity": {
+ "hex": "0007",
+ "name": "8-way Set-Associative",
+ "value": 7
+ },
+ "sram_type_current": [
+ "Synchronous"
+ ],
+ "sram_type_supported": [
+ "Synchronous"
+ ]
+ },
+ {
+ "handle": 73,
+ "socket": "L2 Cache",
+ "size_max": 4096,
+ "size_current": 4096,
+ "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": "0005",
+ "name": "Single-bit",
+ "value": 5
+ },
+ "cache_type": {
+ "hex": "0005",
+ "name": "Unified",
+ "value": 5
+ },
+ "associativity": {
+ "hex": "0008",
+ "name": "16-way Set-Associative",
+ "value": 8
+ },
+ "sram_type_current": [
+ "Synchronous"
+ ],
+ "sram_type_supported": [
+ "Synchronous"
+ ]
+ },
+ {
+ "handle": 74,
+ "socket": "L3 Cache",
+ "size_max": 18432,
+ "size_current": 18432,
+ "speed": 0,
+ "mode": {
+ "hex": "0001",
+ "name": "Write Back",
+ "value": 1
+ },
+ "enabled": true,
+ "location": {
+ "hex": "0000",
+ "name": "Internal",
+ "value": 0
+ },
+ "socketed": false,
+ "level": 2,
+ "ecc": {
+ "hex": "0006",
+ "name": "Multi-bit",
+ "value": 6
+ },
+ "cache_type": {
+ "hex": "0005",
+ "name": "Unified",
+ "value": 5
+ },
+ "associativity": {
+ "hex": "0009",
+ "name": "Other",
+ "value": 9
+ },
+ "sram_type_current": [
+ "Synchronous"
+ ],
+ "sram_type_supported": [
+ "Synchronous"
+ ]
+ }
+ ],
+ "chassis": [
+ {
+ "handle": 3,
+ "manufacturer": "Default string",
+ "version": "Default string",
+ "chassis_type": {
+ "hex": "0023",
+ "name": "Other",
+ "value": 35
+ },
+ "lock_present": false,
+ "bootup_state": {
+ "hex": "0003",
+ "name": "Safe",
+ "value": 3
+ },
+ "power_state": {
+ "hex": "0003",
+ "name": "Safe",
+ "value": 3
+ },
+ "thermal_state": {
+ "hex": "0003",
+ "name": "Safe",
+ "value": 3
+ },
+ "security_state": {
+ "hex": "0003",
+ "name": "None",
+ "value": 3
+ },
+ "oem": "0x0"
+ }
+ ],
+ "config": {
+ "handle": 30,
+ "options": [
+ "Default string"
+ ]
+ },
+ "group_associations": [
+ {
+ "handle": 100,
+ "name": "$MEI",
+ "handles": [
+ 0
+ ]
+ },
+ {
+ "handle": 103,
+ "name": "Firmware Version Info",
+ "handles": [
+ 270582939710,
+ 274877907007,
+ 279172874304,
+ 283467841601,
+ 412316860482,
+ 4471060955232
+ ]
+ }
+ ],
+ "language": [
+ {
+ "handle": 99,
+ "languages": [
+ "en|US|iso8859-1",
+ "fr|FR|iso8859-1",
+ "zh|TW|unicode",
+ "zh|CN|unicode",
+ "ja|JP|unicode",
+ "de|DE|iso8859-1",
+ "es|ES|iso8859-1",
+ "ru|RU|iso8859-5",
+ "ko|KR|unicode"
+ ]
+ }
+ ],
+ "memory_array": [
+ {
+ "handle": 54,
+ "location": {
+ "hex": "0003",
+ "name": "Motherboard",
+ "value": 3
+ },
+ "usage": {
+ "hex": "0003",
+ "name": "System memory",
+ "value": 3
+ },
+ "ecc": {
+ "hex": "0003",
+ "name": "None",
+ "value": 3
+ },
+ "max_size": "0x4000000",
+ "error_handle": 65534,
+ "slots": 2
+ }
+ ],
+ "memory_array_mapped_address": [
+ {
+ "handle": 57,
+ "array_handle": 54,
+ "start_address": "0x0",
+ "end_address": "0x1000000000",
+ "part_width": 2
+ }
+ ],
+ "memory_device": [
+ {
+ "handle": 55,
+ "location": "Controller0-ChannelA-DIMM0",
+ "bank_location": "BANK 0",
+ "manufacturer": "Corsair",
+ "part_number": "CMSX64GX5M2A4800C40",
+ "array_handle": 54,
+ "error_handle": 65534,
+ "width": 64,
+ "ecc_bits": 0,
+ "size": 33554432,
+ "form_factor": {
+ "hex": "000d",
+ "name": "SODIMM",
+ "value": 13
+ },
+ "set": 0,
+ "memory_type": {
+ "hex": "0022",
+ "name": "Other",
+ "value": 34
+ },
+ "memory_type_details": [
+ "Synchronous"
+ ],
+ "speed": 4800
+ },
+ {
+ "handle": 56,
+ "location": "Controller1-ChannelA-DIMM0",
+ "bank_location": "BANK 0",
+ "manufacturer": "Corsair",
+ "part_number": "CMSX64GX5M2A4800C40",
+ "array_handle": 54,
+ "error_handle": 65534,
+ "width": 64,
+ "ecc_bits": 0,
+ "size": 33554432,
+ "form_factor": {
+ "hex": "000d",
+ "name": "SODIMM",
+ "value": 13
+ },
+ "set": 0,
+ "memory_type": {
+ "hex": "0022",
+ "name": "Other",
+ "value": 34
+ },
+ "memory_type_details": [
+ "Synchronous"
+ ],
+ "speed": 4800
+ }
+ ],
+ "memory_device_mapped_address": [
+ {
+ "handle": 60,
+ "memory_device_handle": 55,
+ "array_map_handle": 57,
+ "start_address": "0x0",
+ "end_address": "0x800000000",
+ "row_position": 255,
+ "interleave_position": 1,
+ "interleave_depth": 1
+ },
+ {
+ "handle": 61,
+ "memory_device_handle": 56,
+ "array_map_handle": 57,
+ "start_address": "0x800000000",
+ "end_address": "0x1000000000",
+ "row_position": 255,
+ "interleave_position": 2,
+ "interleave_depth": 1
+ }
+ ],
+ "onboard": [
+ {
+ "handle": 28,
+ "devices": [
+ {
+ "name": "To Be Filled By O.E.M.",
+ "type": {
+ "hex": "0003",
+ "name": "Video",
+ "value": 3
+ },
+ "enabled": true
+ }
+ ]
+ }
+ ],
+ "port_connector": [
+ {
+ "handle": 4,
+ "port_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "PWR_BTN",
+ "external_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "external_reference_designator": "PWR_BTN"
+ },
+ {
+ "handle": 5,
+ "port_type": {
+ "hex": "0010",
+ "name": "USB",
+ "value": 16
+ },
+ "internal_reference_designator": "U32G2_1",
+ "external_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "external_reference_designator": "U32G2_1"
+ },
+ {
+ "handle": 6,
+ "port_type": {
+ "hex": "0010",
+ "name": "USB",
+ "value": 16
+ },
+ "internal_reference_designator": "U32G2_2",
+ "external_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "external_reference_designator": "U32G2_2"
+ },
+ {
+ "handle": 7,
+ "port_type": {
+ "hex": "0010",
+ "name": "USB",
+ "value": 16
+ },
+ "internal_reference_designator": "U32G2_C1",
+ "external_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "external_reference_designator": "U32G2_C1"
+ },
+ {
+ "handle": 8,
+ "port_type": {
+ "hex": "0010",
+ "name": "USB",
+ "value": 16
+ },
+ "internal_reference_designator": "U32G2_C2",
+ "external_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "external_reference_designator": "U32G2_C2"
+ },
+ {
+ "handle": 9,
+ "port_type": {
+ "hex": "0010",
+ "name": "USB",
+ "value": 16
+ },
+ "internal_reference_designator": "U32G2_3",
+ "external_connector_type": {
+ "hex": "0012",
+ "name": "Access Bus [USB]",
+ "value": 18
+ },
+ "external_reference_designator": "U32G2_3"
+ },
+ {
+ "handle": 10,
+ "port_type": {
+ "hex": "001d",
+ "name": "Audio Port",
+ "value": 29
+ },
+ "internal_reference_designator": "AUDIO",
+ "external_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "external_reference_designator": "AUDIO"
+ },
+ {
+ "handle": 11,
+ "port_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "DC_PWR",
+ "external_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "external_reference_designator": "DC_PWR"
+ },
+ {
+ "handle": 12,
+ "port_type": {
+ "hex": "001f",
+ "name": "Network Port",
+ "value": 31
+ },
+ "internal_reference_designator": "LAN",
+ "external_connector_type": {
+ "hex": "000b",
+ "name": "RJ-45",
+ "value": 11
+ },
+ "external_reference_designator": "LAN"
+ },
+ {
+ "handle": 13,
+ "port_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "HDMI1",
+ "external_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "external_reference_designator": "HDMI port"
+ },
+ {
+ "handle": 14,
+ "port_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "HDMI2",
+ "external_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "external_reference_designator": "HDMI port"
+ },
+ {
+ "handle": 15,
+ "port_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "SATA_LED",
+ "external_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "external_reference_designator": "SATA_LED"
+ },
+ {
+ "handle": 16,
+ "port_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "M.2(SOCKET3)"
+ },
+ {
+ "handle": 17,
+ "port_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "M.2(WIFI)"
+ },
+ {
+ "handle": 18,
+ "port_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "CPU_FAN"
+ },
+ {
+ "handle": 19,
+ "port_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "BATTERY"
+ },
+ {
+ "handle": 20,
+ "port_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "PWR_SW"
+ },
+ {
+ "handle": 21,
+ "port_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "GPIO_HEADER"
+ },
+ {
+ "handle": 22,
+ "port_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "HDMI_CEC"
+ },
+ {
+ "handle": 23,
+ "port_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "USB8"
+ },
+ {
+ "handle": 24,
+ "port_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "AUDIO_CON"
+ },
+ {
+ "handle": 25,
+ "port_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "FPC_CON1_FPC_CON2"
+ },
+ {
+ "handle": 26,
+ "port_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "BIOS_JUMPER"
+ },
+ {
+ "handle": 27,
+ "port_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_connector_type": {
+ "hex": "00ff",
+ "name": "Other",
+ "value": 255
+ },
+ "internal_reference_designator": "NIST_CON"
+ }
+ ],
+ "processor": [
+ {
+ "handle": 75,
+ "socket": "U3E1",
+ "socket_type": {
+ "hex": "0041",
+ "name": "Other",
+ "value": 65
+ },
+ "socket_populated": true,
+ "manufacturer": "Intel(R) Corporation",
+ "version": "12th Gen Intel(R) Core(TM) i5-12500H",
+ "part": "To Be Filled By O.E.M.",
+ "processor_type": {
+ "hex": "0003",
+ "name": "CPU",
+ "value": 3
+ },
+ "processor_family": {
+ "hex": "00cd",
+ "name": "Other",
+ "value": 205
+ },
+ "processor_status": {
+ "hex": "0001",
+ "name": "Enabled",
+ "value": 1
+ },
+ "clock_ext": 100,
+ "clock_max": 4500,
+ "cache_handle_l1": 72,
+ "cache_handle_l2": 73,
+ "cache_handle_l3": 74
+ }
+ ],
+ "system": {
+ "handle": 1,
+ "manufacturer": "ASUSTeK COMPUTER INC.",
+ "product": "MINIPC PN64",
+ "version": "To be filled by O.E.M.",
+ "wake_up": {
+ "hex": "0006",
+ "name": "Power Switch",
+ "value": 6
+ }
+ }
+ }
+}
diff --git a/labsrv01/home.nix b/labsrv01/home.nix
new file mode 100644
index 0000000..72824ba
--- /dev/null
+++ b/labsrv01/home.nix
@@ -0,0 +1,94 @@
+{
+ config,
+ pkgs,
+ ...
+}:
+{
+ home.username = "kjtsanaktsidis";
+ home.homeDirectory = "/home/kjtsanaktsidis";
+ home.stateVersion = "25.11";
+
+ programs.home-manager.enable = true;
+
+ # Install packages
+ home.packages = with pkgs; [
+ htop
+ zellij
+ tmux
+ neovim
+ git-absorb
+ # LazyVim dependencies
+ lazygit
+ ripgrep
+ fd
+ nodejs
+ python3
+ ];
+
+ # Configure sops for home-manager
+ sops = {
+ age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
+ defaultSopsFile = ./secrets.yaml;
+ secrets = {
+ kj_id_ed25519 = {
+ path = "${config.home.homeDirectory}/.ssh/id_ed25519";
+ };
+ kj_gpg_private_key = {
+ path = "${config.home.homeDirectory}/.gnupg/private-key.asc";
+ };
+ };
+ };
+
+ # Git configuration
+ programs.git = {
+ enable = true;
+ settings = {
+ user.name = "KJ Tsanaktsidis";
+ user.email = "kj@kjtsanaktsidis.id.au";
+ pull.rebase = true;
+ };
+ signing = {
+ key = "7F21FB211E24B02A5DEF86E227CD40EB9B81C726";
+ signByDefault = true;
+ };
+ };
+
+ # SSH public key (private key is managed by sops)
+ home.file.".ssh/id_ed25519.pub" = {
+ text = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMtGcEXu5S/0zsF6Suxc65DmGFGt1JWRnqadoVhErOed kjtsanaktsidis@KJMacbookGroq.local";
+ };
+
+ # Zsh configuration
+ programs.zsh = {
+ enable = true;
+ history = {
+ size = 1000000;
+ save = 1000000;
+ append = true;
+ extended = true;
+ ignoreSpace = false;
+ ignoreDups = false;
+ };
+
+ initContent = builtins.readFile ./zsh-config.zsh;
+ };
+
+ # FZF with standard keybindings
+ programs.fzf = {
+ enable = true;
+ enableZshIntegration = true;
+ };
+
+ programs.gpg = {
+ enable = true;
+ homedir = "${config.home.homeDirectory}/.gnupg";
+ };
+ services.gpg-agent = {
+ enable = true;
+ };
+ home.activation.importGpgPrivateKey = config.lib.dag.entryAfter ["sops-nix" "onFilesChange"] ''
+ export GNUPGHOME="${config.programs.gpg.homedir}"
+ $DRY_RUN_CMD ${pkgs.gnupg}/bin/gpg --batch --verbose --trust-model always --import "${config.sops.secrets.kj_gpg_private_key.path}"
+ echo "GPG private key imported from sops secret"
+ '';
+}
diff --git a/labsrv01/secrets.yaml b/labsrv01/secrets.yaml
new file mode 100644
index 0000000..cea7988
--- /dev/null
+++ b/labsrv01/secrets.yaml
@@ -0,0 +1,30 @@
+kj_hashed_password: ENC[AES256_GCM,data:sRf0uBBnua/hxn3fZGA9mZAKvg3dm2vgs5Cnanbo6NNQMR1uD9nly3xbpT/xOfCptkY04+ztlSQ6Biz+z11QbYn/3aLNBl/Q/g==,iv:fvvCujpMmegq/Xt54w8lkw7h+1N4OrThbg4iwHo/n5g=,tag:0QWfjBPviOtY7qZQqMW4Vw==,type:str]
+luks_passphrase: ENC[AES256_GCM,data:mUZKrVNPIduciZNx1iuHL4lwjI4=,iv:fz6sIdtJ5LJR8xWsAysYg/6+XgN9dQUHp401/YtwmIE=,tag:kW9B3qZyCwFUzUi0HCIQxw==,type:str]
+ssh_host_key_ed25519: ENC[AES256_GCM,data:9ZMQKFJojbkCayblF2NCpXTAo8Xe4oFjPNtNhTMN14gnhVSUmg5oE3Y5fwy9zYUAqq2714rBQZ72r7f4jNKzrShzRuOaX81OKvxyuTaBCVU7q292R3KVTkkw4RKg90QMQnHs9DZxyKWesbfCkO3nmDCCNB6QVKnQN+Y/01iTUzkK9F/4h9512SiysENm3eJv76MrhRfp60PH23Hpq92Ao4O7vYBKpqt4K4+T+zFbpSb8qvO/oUcjgp5tokUapJzxUm4UJBHYeEbmGB9KB/ZAdGW73e9TRujWLJ1YjjEXW+k2rD5+oUuBopdMLktpkElTO5ZVxZdbrjud5ZFGT5MM425YSkXTt52PhfW96Z08dM/GvCLdonXn6jGVT2VSlocoajzz966EDDcRNxXA8iUCgqCXQSdNrLXC4dU+hBGdXlz6oy7Jx2mebMRMVYhCCECV0hlfhgH0fk7TTIzmQc+YvO0XnFBnfmvj31m7L8ww5HHC89zTwH9XcheW7kObCPtRN6qW+lxtKeNIXT4iKB8M,iv:dYwEHTpNcqzplORzQsgTXdBsVpBP9PsATBhe1j2CIxg=,tag:xpwgeBOLgyZTDBLC4NuOKA==,type:str]
+ssh_host_key_rsa: ENC[AES256_GCM,data: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,iv:hi0vB6gaq59QAraJKrdLaJ3HZ4Z7vHBzX2ol84vDQfs=,tag:LDrM8GR5xMPn3W44J/VNLA==,type:str]
+kj_gpg_private_key: ENC[AES256_GCM,data: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,iv:qok/FPnEdPaiBnM3N2kgDUBf7KZTB3z4VFARb+UnHMY=,tag:Ycbq2zUddMwoCWO7L4DoyA==,type:str]
+kj_id_ed25519: ENC[AES256_GCM,data:x/PmoeSDqwi7aWTAsSohUaR5yuaW0xqzuc+N2dJBnhdXmSfhmVcDAbShhG9o556uCnYc09eln0ccF3VFu/mQaZ6dcK2vnfciY8rGSzdXjy2shnJNAEJauVkIBTVtgzslK+EfDRypbAlj93XcVfTrFfYBTaRLgFjaClJFf+hqPpItPzellL4coll8FxE2n+p6fkZ6lMhFY3iujf/7yRqaUE436NaCI9cgGK+GNJeHtPmL749dgvfpEof/kBnOWC200Eqw5+Ij/e7n6Z2vYKIX/rM4J5ZbPVYBoplwqmc87NvxSHkON0Qzi76XKvPSjNMmgvWweQit07AZUkUuLiJ5zg0c0UO5JB4NMqbeyRqFkXae8OMiP89gF3x0qURAsKG1N/vU7flY+7Qf92D/OGdrjOGlwQT9ZSgnu+57L2H3teybVQ0JvUUjB2gdP+4+HS4gEKZO/oEy3tNVDbAYngw5Fd8X3mDq7GZMGHbKDhTCLKtXuBycMaoUG63pWVhxb0Q0DAxivmvLiVjQBCsEr9yx,iv:hIFAiND+XYgVEf/4aLwTGczaobr0WDZR7p6be00bwlY=,tag:mWSoWcS+Vl3EQDNZJwYWIg==,type:str]
+sops:
+ age:
+ - recipient: age10gj7wx2syxd9xtt032xxrvtz9hcpnh5xfhzdaaw8qztt6xt6jyrqme3pdp
+ enc: |
+ -----BEGIN AGE ENCRYPTED FILE-----
+ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjcStlNG9XU3doNGZJRFJo
+ cFBKd0tRZldsbkZ4OWNYMEVMQW1qdDZtVW1NCkR2WEx0YUVucXZYZ08vR3BLRGEz
+ Z0JiN3F2alRJSlNJQW1hM2VmU1BHNTQKLS0tIGZqOHFOclZIL3FHbk4vWjFPRVF3
+ bll4UnRLbHJ3VktRZ0VPa1B3TVViU3MK8DgbP+wqDfyM8efZ5I/mryH9+V4tc+BZ
+ yjlJl6rFdgsz6piKK7577Kn97nOTej1UiFvRL3uC5R3pHSY2OUVI+A==
+ -----END AGE ENCRYPTED FILE-----
+ - recipient: age1l545fw72zzs9xskxw3d35szwkcttmtrm9g5y0s8zufhmezffys9sr7asey
+ enc: |
+ -----BEGIN AGE ENCRYPTED FILE-----
+ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYc2YzbmdMRjBCOXZ5UUlH
+ Y0d5SWdsdE9hZUZCSXh3V3ZmSkZuR3hvWmlnCno2UmowdzNwZjRRM1E1Q0NEOFlI
+ V1FrdU41UXBIUzhiTWkwdDdTYkVzT0EKLS0tIENWNW96MWxjYUtPRzlndkNTY3RC
+ UDVDZ2luUHlCQVd0aGFQTkY1Uk1yRnMKwstz0FxW/34F05oXBIuOHJwGTrZydHzr
+ Vv8g5OnJyFoq+VYkKP1nbwjViYX+4eX0kfWWyWmk3jZw9qw5XgJXVA==
+ -----END AGE ENCRYPTED FILE-----
+ lastmodified: "2026-01-06T09:44:47Z"
+ mac: ENC[AES256_GCM,data:zehFRMXA5XYnwxh6BWKUIZUq0PYF+eX+c2LOI0MHfooioQ17zrWvxxURZJoukNHfZqJpFyPrTkYkIoF2n1zgNncxzVSbTUTP0XHzlmcuwctKfIn+VfgeCSzW5F/Z/Y22UUGfic818lqSLDctMrhUYDHwuiNLl/7IR+2di8ummV4=,iv:FmjNVdj3SEkjY2U870qRelNIOCWa9YoMs2tZsiA9OC8=,tag:KA2LuuNnNi/veFqymfUI2g==,type:str]
+ unencrypted_suffix: _unencrypted
+ version: 3.11.0
diff --git a/labsrv01/zsh-config.zsh b/labsrv01/zsh-config.zsh
new file mode 100644
index 0000000..8ef8747
--- /dev/null
+++ b/labsrv01/zsh-config.zsh
@@ -0,0 +1,45 @@
+# Initialize completion system
+autoload -Uz compinit
+compinit
+
+# Initialize prompt system
+autoload -Uz promptinit
+promptinit
+
+# Set options
+setopt extendedglob nomatch notify
+
+# Define gentoo prompt theme
+prompt_gentoo_help () {
+ cat <<'EOF'
+This prompt is color-scheme-able. You can invoke it thus:
+
+ prompt gentoo [<promptcolor> [<usercolor> [<rootcolor>]]]
+
+EOF
+}
+
+prompt_gentoo_setup () {
+ local prompt_gentoo_prompt=${1:-'blue'}
+ local prompt_gentoo_user=${2:-'green'}
+ local prompt_gentoo_root=${3:-'red'}
+
+ if [ "$USER" = 'root' ]
+ then
+ local base_prompt="%B%F{$prompt_gentoo_root}%m%k "
+ else
+ local base_prompt="%B%F{$prompt_gentoo_user}%n@%m%k "
+ fi
+ local post_prompt="%b%f%k"
+
+ local path_prompt="%B%F{$prompt_gentoo_prompt}%1~"
+ typeset -g PS1="$base_prompt$path_prompt %# $post_prompt"
+ typeset -g PS2="$base_prompt$path_prompt %_> $post_prompt"
+ typeset -g PS3="$base_prompt$path_prompt ?# $post_prompt"
+}
+
+# Register the prompt with promptinit
+prompt_themes+=( gentoo )
+
+# Use the gentoo prompt
+prompt gentoo
diff --git a/nixos-update.rb b/nixos-update.rb
index 2640835..55c61e6 100755
--- a/nixos-update.rb
+++ b/nixos-update.rb
@@ -71,12 +71,12 @@ class NixOSUpdater
def decrypt_secrets
cmd = TTY::Command.new(printer: :null)
- result = cmd.run(sops_exe, 'decrypt', '--output-type', 'json', "#{@system_def}/secrets.yaml")
+ result = cmd.run('sops', 'decrypt', '--output-type', 'json', "#{@system_def}/secrets.yaml")
JSON.parse(result.out)
end
def perform_install
- puts "### Performing initial installation of #{@system_flake} to #{@target_host} ###"
+ puts "### Performing initial installation of #{@system_flake} to #{@target} ###"
secrets = decrypt_secrets
@@ -87,13 +87,13 @@ class NixOSUpdater
cmd_args = [
'nixos-anywhere',
- '--disk-encryption-keys', "#{dir}/luks_passphrase", "#{dir}/luks_passphrase",
+ '--disk-encryption-keys', "/run/secrets/luks_passphrase", "#{dir}/luks_passphrase",
'--extra-files', "#{dir}/copy_dir",
'--flake', ".##{@system_def}"
]
cmd_args << '--build-on-remote' if RUBY_PLATFORM !~ /linux/
- cmd_args << @target_host
+ cmd_args << @target
# Execute nixos-anywhere
cmd = TTY::Command.new