diff --git a/rust/Cargo.lock b/rust/Cargo.lock index c18f758905..0798a9c22c 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -150,7 +150,9 @@ dependencies = [ "agama-utils", "async-trait", "merge-struct", + "serde", "serde_json", + "serde_with", "test-context", "thiserror 2.0.17", "tokio", @@ -4044,9 +4046,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.16.0" +version = "3.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10574371d41b0d9b2cff89418eda27da52bcaff2cc8741db26382a77c29131f1" +checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" dependencies = [ "base64 0.22.1", "chrono", @@ -4063,9 +4065,9 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.16.0" +version = "3.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a72d8216842fdd57820dc78d840bef99248e35fb2554ff923319e60f2d686b" +checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" dependencies = [ "darling", "proc-macro2", diff --git a/rust/agama-manager/Cargo.toml b/rust/agama-manager/Cargo.toml index 4eb3a9b3d2..8c4d82daae 100644 --- a/rust/agama-manager/Cargo.toml +++ b/rust/agama-manager/Cargo.toml @@ -18,6 +18,8 @@ zbus = { version = "5", default-features = false, features = ["tokio"] } merge-struct = "0.1.0" serde_json = "1.0.140" tracing = "0.1.41" +serde = { version = "1.0.228", features = ["derive"] } +serde_with = "3.16.1" [dev-dependencies] test-context = "0.4.1" diff --git a/rust/agama-manager/src/hardware.rs b/rust/agama-manager/src/hardware.rs new file mode 100644 index 0000000000..3db3a57aff --- /dev/null +++ b/rust/agama-manager/src/hardware.rs @@ -0,0 +1,337 @@ +// Copyright (c) [2025] SUSE LLC +// +// All Rights Reserved. +// +// This program is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or (at your option) +// any later version. +// +// This program is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +// more details. +// +// You should have received a copy of the GNU General Public License along +// with this program; if not, contact SUSE LLC. +// +// To contact SUSE LLC about this file by physical or electronic mail, you may +// find current contact information at www.suse.com. + +use agama_utils::api::manager::HardwareInfo; +use serde::Deserialize; +use serde_with::{formats::PreferMany, serde_as, OneOrMany}; +use std::{ + path::{Path, PathBuf}, + process::ExitStatus, +}; + +#[derive(thiserror::Error, Debug)] +pub enum Error { + #[error("lshw command failed: {stderr}")] + Command { status: ExitStatus, stderr: String }, + #[error("Failed to parse lshw output: {source:?}")] + Parse { + json: String, + #[source] + source: serde_json::Error, + }, + #[error("I/O error: {0}")] + Io(#[from] std::io::Error), +} + +#[derive(Clone)] +enum Source { + System, + File(PathBuf), +} + +pub struct Registry { + root: Option, + source: Source, +} + +impl Registry { + pub fn new_from_system() -> Self { + Self { + source: Source::System, + root: None, + } + } + + pub fn new_from_file>(path: P) -> Self { + Self { + source: Source::File(path.as_ref().to_path_buf()), + root: None, + } + } + + pub async fn read(&mut self) -> Result<(), Error> { + match &self.source { + Source::System => self.read_from_system().await, + Source::File(ref path) => self.read_from_file(path.clone()), + } + } + + async fn read_from_system(&mut self) -> Result<(), Error> { + let output = tokio::process::Command::new("lshw") + .arg("-json") + .output() + .await?; + + if !output.status.success() { + return Err(Error::Command { + status: output.status, + stderr: String::from_utf8_lossy(&output.stderr).into_owned(), + }); + } + + let stdout = String::from_utf8_lossy(&output.stdout); + self.root = Some(HardwareNode::from_json(&stdout)?); + Ok(()) + } + + /// Builds a registry using the lshw data from a file. + fn read_from_file>(&mut self, path: P) -> Result<(), Error> { + let json = std::fs::read_to_string(path)?; + self.root = Some(HardwareNode::from_json(&json)?); + Ok(()) + } + + /// Converts the information to a HardwareInfo struct. + pub fn to_hardware_info(&self) -> HardwareInfo { + let Some(root) = &self.root else { + return HardwareInfo::default(); + }; + + HardwareInfo::from(root) + } +} + +/// Hardware information from the underlying system. +/// +/// It relies on lshw to read the hardware information. +#[serde_as] +#[derive(Clone, Debug, Deserialize, PartialEq)] +struct HardwareNode { + pub id: String, + pub class: String, + pub claimed: Option, + pub description: Option, + pub vendor: Option, + pub product: Option, + pub version: Option, + pub serial: Option, + pub businfo: Option, + pub dev: Option, + pub driver: Option, + pub physid: Option, + pub size: Option, + pub capacity: Option, + #[serde(default)] + #[serde_as(as = "OneOrMany<_, PreferMany>")] + pub logicalname: Vec, + pub configuration: Option, + #[serde(default)] + pub capabilities: Option, + #[serde(default)] + pub children: Vec, +} + +impl HardwareNode { + /// Builds a node (including its children) from a JSON string. + /// + /// * `json`: JSON string reference. + fn from_json(json: &str) -> Result { + let node = serde_json::from_str(&json).map_err(|error| Error::Parse { + json: json.to_string(), + source: error, + })?; + + Ok(node) + } + + /// Searches hardware information using the id (e.g., "cpu"). + /// + /// It assumes that the id is unique. + /// + /// * `id`: id to search for (e.g., "cpu", "memory", etc.). + pub fn find_by_id(&self, id: &str) -> Option<&HardwareNode> { + if self.id == id { + return Some(&self); + } + + for children in &self.children { + let result = children.find_by_id(id); + if result.is_some() { + return result; + } + } + + None + } + + /// Searches hardware information by class (e.g., "disk"). + /// + /// It might be multiple elements of the same class. + /// + /// * `class`: class to search for (e.g., "disk", "processor", etc.). + pub fn find_by_class(&self, class: &str) -> Vec<&HardwareNode> { + let mut results = vec![]; + self.search_by_class(class, &mut results); + results + } + + fn search_by_class<'a>(&'a self, class: &str, results: &mut Vec<&'a HardwareNode>) { + if self.class == class { + results.push(&self); + } + + for children in &self.children { + children.search_by_class(class, results); + } + } +} + +impl From<&HardwareNode> for HardwareInfo { + fn from(value: &HardwareNode) -> Self { + let cpu = value + .find_by_class("processor") + .first() + .and_then(|c| c.product.clone()); + + let memory = value.find_by_id("memory").and_then(|m| m.size); + + let model = if let Some(system) = value.find_by_class("system").first() { + let model_str = format!( + "{} {}", + system.vendor.clone().unwrap_or_default(), + system.version.clone().unwrap_or_default() + ) + .trim() + .to_string(); + if model_str.is_empty() { + None + } else { + Some(model_str) + } + } else { + None + }; + + Self { cpu, memory, model } + } +} + +#[cfg(test)] +mod tests { + use std::{error::Error, path::PathBuf}; + + use super::*; + + #[tokio::test] + async fn test_read_from_system() { + let old_path = std::env::var("PATH").unwrap(); + let bin_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../share/bin"); + std::env::set_var("PATH", format!("{}:{}", &bin_dir.display(), &old_path)); + let mut hardware = Registry::new_from_system(); + hardware.read().await.unwrap(); + + let info = hardware.to_hardware_info(); + assert!(info.cpu.is_some()); + } + + #[tokio::test] + async fn test_find_by_id() -> Result<(), Box> { + let fixtures = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../test/share"); + let path = fixtures.join("lshw.json"); + let json = std::fs::read_to_string(path)?; + let node: HardwareNode = serde_json::from_str(&json)?; + + let cpu = node.find_by_id("cpu").unwrap(); + assert_eq!(cpu.class, "processor"); + assert_eq!( + cpu.product, + Some("AMD Ryzen 5 PRO 5650U with Radeon Graphics".to_string()) + ); + + let unknown = node.find_by_id("unknown"); + assert_eq!(unknown, None); + Ok(()) + } + + #[tokio::test] + async fn test_find_by_class() -> Result<(), Box> { + let fixtures = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../test/share"); + let path = fixtures.join("lshw.json"); + let json = std::fs::read_to_string(path)?; + let node: HardwareNode = serde_json::from_str(&json)?; + + let disks = node.find_by_class("disk"); + assert_eq!(disks.len(), 3); + + let disk = disks.first().unwrap(); + assert_eq!(disk.description, Some("NVMe disk".to_string())); + assert_eq!(disk.logicalname, vec!["hwmon1".to_string()]); + + let unknown = node.find_by_class("unknown"); + assert!(unknown.is_empty()); + Ok(()) + } + + #[tokio::test] + async fn test_to_hardware_info() -> Result<(), Box> { + let fixtures = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../test/share"); + let mut registry = Registry::new_from_file(&fixtures.join("lshw.json")); + registry.read().await?; + let node = registry.to_hardware_info(); + assert_eq!( + node.cpu, + Some("AMD Ryzen 5 PRO 5650U with Radeon Graphics".to_string()) + ); + assert_eq!(node.memory, Some(17179869184)); + assert_eq!(node.model, Some("LENOVO ThinkPad T14s Gen 2a".to_string())); + Ok(()) + } + + #[tokio::test] + async fn test_to_hardware_info_qemu() -> Result<(), Box> { + let fixtures = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../test/share"); + let mut registry = Registry::new_from_file(&fixtures.join("lshw-qemu.json")); + registry.read().await?; + let node = registry.to_hardware_info(); + assert_eq!( + node.cpu, + Some("AMD Ryzen 5 PRO 5650U with Radeon Graphics".to_string()) + ); + assert_eq!(node.memory, Some(4294967296)); + assert_eq!(node.model, Some("QEMU pc-q35-9.2".to_string())); + Ok(()) + } + + #[test] + fn test_parse_from_json_error() { + let invalid_json = "INVALID JSON"; + let error = HardwareNode::from_json(invalid_json).unwrap_err(); + println!("{error}"); + assert!(matches!( + error, + super::Error::Parse { + json: _json, + source: _source + } + )); + } + + #[tokio::test] + async fn test_to_hardware_incomplete() -> Result<(), Box> { + let fixtures = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../test/share"); + let mut registry = Registry::new_from_file(&fixtures.join("lshw-incomplete.json")); + registry.read().await?; + let node = registry.to_hardware_info(); + assert_eq!(node.cpu, None); + assert_eq!(node.memory, None); + assert_eq!(node.model, None); + Ok(()) + } +} diff --git a/rust/agama-manager/src/lib.rs b/rust/agama-manager/src/lib.rs index c6483e9109..d18166f066 100644 --- a/rust/agama-manager/src/lib.rs +++ b/rust/agama-manager/src/lib.rs @@ -23,6 +23,8 @@ pub use service::Service; pub mod message; +pub mod hardware; + pub use agama_files as files; pub use agama_l10n as l10n; pub use agama_network as network; diff --git a/rust/agama-manager/src/service.rs b/rust/agama-manager/src/service.rs index 9efc67df58..522b12e7f0 100644 --- a/rust/agama-manager/src/service.rs +++ b/rust/agama-manager/src/service.rs @@ -18,7 +18,7 @@ // To contact SUSE LLC about this file by physical or electronic mail, you may // find current contact information at www.suse.com. -use crate::{files, l10n, message, network, software, storage}; +use crate::{files, hardware, l10n, message, network, software, storage}; use agama_utils::{ actor::{self, Actor, Handler, MessageHandler}, api::{ @@ -73,6 +73,8 @@ pub enum Error { // rest. #[error(transparent)] NetworkSystem(#[from] network::NetworkSystemError), + #[error(transparent)] + Hardware(#[from] hardware::Error), } pub struct Starter { @@ -86,6 +88,7 @@ pub struct Starter { files: Option>, issues: Option>, progress: Option>, + hardware: Option, } impl Starter { @@ -105,6 +108,7 @@ impl Starter { files: None, issues: None, progress: None, + hardware: None, } } @@ -143,6 +147,11 @@ impl Starter { self } + pub fn with_hardware(mut self, hardware: hardware::Registry) -> Self { + self.hardware = Some(hardware); + self + } + /// Starts the service and returns a handler to communicate with it. pub async fn start(self) -> Result, Error> { let issues = match self.issues { @@ -206,6 +215,11 @@ impl Starter { None => network::start().await?, }; + let hardware = match self.hardware { + Some(hardware) => hardware, + None => hardware::Registry::new_from_system(), + }; + let mut service = Service { events: self.events, questions: self.questions, @@ -218,6 +232,7 @@ impl Starter { files, products: products::Registry::default(), licenses: licenses::Registry::default(), + hardware, // FIXME: state is already used for service state. state: State::Configuring, config: Config::default(), @@ -241,6 +256,7 @@ pub struct Service { questions: Handler, products: products::Registry, licenses: licenses::Registry, + hardware: hardware::Registry, product: Option>>, state: State, config: Config, @@ -257,11 +273,11 @@ impl Service { Starter::new(questions, events, dbus) } - /// Set up the service by reading the registries and determining the default product. + /// Set up the service by reading the registries, the hardware info and determining the default product. /// /// If a default product is set, it asks the other services to initialize their configurations. pub async fn setup(&mut self) -> Result<(), Error> { - self.read_registries().await?; + self.read_system_info().await?; if let Some(product) = self.products.default_product() { let config = Config::with_product(product.id.clone()); @@ -273,11 +289,15 @@ impl Service { Ok(()) } - async fn read_registries(&mut self) -> Result<(), Error> { + async fn read_system_info(&mut self) -> Result<(), Error> { self.licenses.read()?; self.products.read()?; + self.hardware.read().await?; + self.system.licenses = self.licenses.licenses().into_iter().cloned().collect(); self.system.products = self.products.products(); + self.system.hardware = self.hardware.to_hardware_info(); + Ok(()) } diff --git a/rust/agama-manager/src/test_utils.rs b/rust/agama-manager/src/test_utils.rs index 7aa10771cf..ea8b2ffbbd 100644 --- a/rust/agama-manager/src/test_utils.rs +++ b/rust/agama-manager/src/test_utils.rs @@ -20,16 +20,19 @@ //! This module implements a set of utilities for tests. +use std::path::PathBuf; + use agama_l10n::test_utils::start_service as start_l10n_service; use agama_network::test_utils::start_service as start_network_service; use agama_software::test_utils::start_service as start_software_service; use agama_storage::test_utils::start_service as start_storage_service; use agama_utils::{actor::Handler, api::event, issue, progress, question}; -use crate::Service; +use crate::{hardware, Service}; /// Starts a testing manager service. pub async fn start_service(events: event::Sender, dbus: zbus::Connection) -> Handler { + let fixtures = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../test/share"); let issues = issue::Service::starter(events.clone()).start(); let questions = question::start(events.clone()).await.unwrap(); let progress = progress::Service::starter(events.clone()).start(); @@ -41,6 +44,9 @@ pub async fn start_service(events: event::Sender, dbus: zbus::Connection) -> Han ) .with_software(start_software_service(events, issues, progress, questions).await) .with_network(start_network_service().await) + .with_hardware(hardware::Registry::new_from_file( + fixtures.join("lshw.json"), + )) .start() .await .expect("Could not spawn a testing manager service") diff --git a/rust/agama-utils/src/api/manager.rs b/rust/agama-utils/src/api/manager.rs index 51e060417d..f329581269 100644 --- a/rust/agama-utils/src/api/manager.rs +++ b/rust/agama-utils/src/api/manager.rs @@ -22,4 +22,4 @@ mod license; pub use license::{InvalidLanguageCode, LanguageTag, License, LicenseContent}; mod system_info; -pub use system_info::{Product, SystemInfo}; +pub use system_info::{HardwareInfo, Product, SystemInfo}; diff --git a/rust/agama-utils/src/api/manager/system_info.rs b/rust/agama-utils/src/api/manager/system_info.rs index bea28cf9ed..f2e9151cb9 100644 --- a/rust/agama-utils/src/api/manager/system_info.rs +++ b/rust/agama-utils/src/api/manager/system_info.rs @@ -28,6 +28,8 @@ pub struct SystemInfo { pub products: Vec, /// List of known licenses pub licenses: Vec, + /// Hardware information + pub hardware: HardwareInfo, } /// Represents a software product @@ -47,3 +49,14 @@ pub struct Product { /// License ID pub license: Option, } + +/// Represents the hardware information of the underlying system. +#[derive(Clone, Default, Debug, Serialize, utoipa::ToSchema)] +pub struct HardwareInfo { + /// CPU description. + pub cpu: Option, + /// Memory size (in bytes). + pub memory: Option, + /// Computer model. + pub model: Option, +} diff --git a/rust/share/bin/lshw b/rust/share/bin/lshw new file mode 100755 index 0000000000..2d3ca31a02 --- /dev/null +++ b/rust/share/bin/lshw @@ -0,0 +1,3 @@ +#!/usr/bin/bash + +cat `dirname "${BASH_SOURCE[0]}"`/../../test/share/lshw.json diff --git a/rust/test/share/lshw-incomplete.json b/rust/test/share/lshw-incomplete.json new file mode 100644 index 0000000000..efe2f11637 --- /dev/null +++ b/rust/test/share/lshw-incomplete.json @@ -0,0 +1,24 @@ +{ + "id" : "localhost.localdomain", + "class" : "system", + "claimed" : true, + "handle" : "DMI:000F", + "description" : "Notebook", + "product" : "20XF009AUK (LENOVO_MT_20XF_BU_Think_FM_ThinkPad T14s Gen 2a)", + "serial" : "PC2G11QC", + "width" : 64, + "configuration" : { + "administrator_password" : "disabled", + "chassis" : "notebook", + "family" : "ThinkPad T14s Gen 2a", + "power-on_password" : "disabled", + "sku" : "LENOVO_MT_20XF_BU_Think_FM_ThinkPad T14s Gen 2a", + "uuid" : "b63bbacc-1f95-11b2-a85c-e0c3a8567de0" + }, + "capabilities" : { + "smbios-3.3.0" : "SMBIOS version 3.3.0", + "dmi-3.3.0" : "DMI version 3.3.0", + "smp" : "Symmetric Multi-Processing", + "vsyscall32" : "32-bit processes" + } +} diff --git a/rust/test/share/lshw-qemu.json b/rust/test/share/lshw-qemu.json new file mode 100644 index 0000000000..cf0de383b4 --- /dev/null +++ b/rust/test/share/lshw-qemu.json @@ -0,0 +1,1878 @@ +{ + "id" : "agama", + "class" : "system", + "claimed" : true, + "handle" : "DMI:0100", + "description" : "Computer", + "product" : "Standard PC (Q35 + ICH9, 2009)", + "vendor" : "QEMU", + "version" : "pc-q35-9.2", + "width" : 64, + "configuration" : { + "boot" : "normal", + "uuid" : "99615fbd-80b0-46e8-916c-4865be946897" + }, + "capabilities" : { + "smbios-2.8" : "SMBIOS version 2.8", + "dmi-2.8" : "DMI version 2.8", + "smp" : "Symmetric Multi-Processing", + "vsyscall32" : "32-bit processes" + }, + "children" : [ { + "id" : "core", + "class" : "bus", + "claimed" : true, + "description" : "Motherboard", + "physid" : "0", + "children" : [ { + "id" : "firmware", + "class" : "memory", + "claimed" : true, + "description" : "BIOS", + "vendor" : "SeaBIOS", + "physid" : "0", + "version" : "rel-1.16.3-2-gc13ff2cd-prebuilt.qemu.org", + "date" : "04/01/2014", + "units" : "bytes", + "size" : 98304 + }, + { + "id" : "cpu:0", + "class" : "processor", + "claimed" : true, + "handle" : "DMI:0400", + "description" : "CPU", + "product" : "AMD Ryzen 5 PRO 5650U with Radeon Graphics", + "vendor" : "Advanced Micro Devices [AMD]", + "physid" : "400", + "businfo" : "cpu@0", + "version" : "25.80.0", + "slot" : "CPU 0", + "units" : "Hz", + "size" : 2000000000, + "capacity" : 2000000000, + "width" : 64, + "configuration" : { + "cores" : "1", + "enabledcores" : "1", + "microcode" : "173015058", + "threads" : "1" + }, + "capabilities" : { + "fpu" : "mathematical co-processor", + "fpu_exception" : "FPU exceptions reporting", + "wp" : true, + "vme" : "virtual mode extensions", + "de" : "debugging extensions", + "pse" : "page size extensions", + "tsc" : "time stamp counter", + "msr" : "model-specific registers", + "pae" : "4GB+ memory addressing (Physical Address Extension)", + "mce" : "machine check exceptions", + "cx8" : "compare and exchange 8-byte", + "apic" : "on-chip advanced programmable interrupt controller (APIC)", + "sep" : "fast system calls", + "mtrr" : "memory type range registers", + "pge" : "page global enable", + "mca" : "machine check architecture", + "cmov" : "conditional move instruction", + "pat" : "page attribute table", + "pse36" : "36-bit page size extensions", + "clflush" : true, + "mmx" : "multimedia extensions (MMX)", + "fxsr" : "fast floating point save/restore", + "sse" : "streaming SIMD extensions (SSE)", + "sse2" : "streaming SIMD extensions (SSE2)", + "syscall" : "fast system calls", + "nx" : "no-execute bit (NX)", + "mmxext" : "multimedia extensions (MMXExt)", + "fxsr_opt" : true, + "pdpe1gb" : true, + "rdtscp" : true, + "x86-64" : "64bits extensions (x86-64)", + "rep_good" : true, + "nopl" : true, + "xtopology" : true, + "cpuid" : true, + "extd_apicid" : true, + "tsc_known_freq" : true, + "pni" : true, + "pclmulqdq" : true, + "ssse3" : true, + "fma" : true, + "cx16" : true, + "sse4_1" : true, + "sse4_2" : true, + "x2apic" : true, + "movbe" : true, + "popcnt" : true, + "tsc_deadline_timer" : true, + "aes" : true, + "xsave" : true, + "avx" : true, + "f16c" : true, + "rdrand" : true, + "hypervisor" : true, + "lahf_lm" : true, + "cmp_legacy" : true, + "svm" : true, + "cr8_legacy" : true, + "abm" : true, + "sse4a" : true, + "misalignsse" : true, + "3dnowprefetch" : true, + "osvw" : true, + "perfctr_core" : true, + "ssbd" : true, + "ibrs" : true, + "ibpb" : true, + "stibp" : true, + "vmmcall" : true, + "fsgsbase" : true, + "tsc_adjust" : true, + "bmi1" : true, + "avx2" : true, + "smep" : true, + "bmi2" : true, + "erms" : true, + "invpcid" : true, + "rdseed" : true, + "adx" : true, + "smap" : true, + "clflushopt" : true, + "clwb" : true, + "sha_ni" : true, + "xsaveopt" : true, + "xsavec" : true, + "xgetbv1" : true, + "xsaves" : true, + "clzero" : true, + "xsaveerptr" : true, + "wbnoinvd" : true, + "arat" : true, + "npt" : true, + "lbrv" : true, + "nrip_save" : true, + "tsc_scale" : true, + "vmcb_clean" : true, + "flushbyasid" : true, + "pausefilter" : true, + "pfthreshold" : true, + "v_vmsave_vmload" : true, + "vgif" : true, + "umip" : true, + "pku" : true, + "ospke" : true, + "vaes" : true, + "vpclmulqdq" : true, + "rdpid" : true, + "overflow_recov" : true, + "succor" : true, + "fsrm" : true, + "arch_capabilities" : true + } + }, + { + "id" : "cpu:1", + "class" : "processor", + "claimed" : true, + "handle" : "DMI:0401", + "description" : "CPU", + "product" : "AMD Ryzen 5 PRO 5650U with Radeon Graphics", + "vendor" : "Advanced Micro Devices [AMD]", + "physid" : "401", + "businfo" : "cpu@1", + "version" : "25.80.0", + "slot" : "CPU 1", + "units" : "Hz", + "size" : 2000000000, + "capacity" : 2000000000, + "width" : 64, + "configuration" : { + "cores" : "1", + "enabledcores" : "1", + "microcode" : "173015058", + "threads" : "1" + }, + "capabilities" : { + "fpu" : "mathematical co-processor", + "fpu_exception" : "FPU exceptions reporting", + "wp" : true, + "vme" : "virtual mode extensions", + "de" : "debugging extensions", + "pse" : "page size extensions", + "tsc" : "time stamp counter", + "msr" : "model-specific registers", + "pae" : "4GB+ memory addressing (Physical Address Extension)", + "mce" : "machine check exceptions", + "cx8" : "compare and exchange 8-byte", + "apic" : "on-chip advanced programmable interrupt controller (APIC)", + "sep" : "fast system calls", + "mtrr" : "memory type range registers", + "pge" : "page global enable", + "mca" : "machine check architecture", + "cmov" : "conditional move instruction", + "pat" : "page attribute table", + "pse36" : "36-bit page size extensions", + "clflush" : true, + "mmx" : "multimedia extensions (MMX)", + "fxsr" : "fast floating point save/restore", + "sse" : "streaming SIMD extensions (SSE)", + "sse2" : "streaming SIMD extensions (SSE2)", + "syscall" : "fast system calls", + "nx" : "no-execute bit (NX)", + "mmxext" : "multimedia extensions (MMXExt)", + "fxsr_opt" : true, + "pdpe1gb" : true, + "rdtscp" : true, + "x86-64" : "64bits extensions (x86-64)", + "rep_good" : true, + "nopl" : true, + "xtopology" : true, + "cpuid" : true, + "extd_apicid" : true, + "tsc_known_freq" : true, + "pni" : true, + "pclmulqdq" : true, + "ssse3" : true, + "fma" : true, + "cx16" : true, + "sse4_1" : true, + "sse4_2" : true, + "x2apic" : true, + "movbe" : true, + "popcnt" : true, + "tsc_deadline_timer" : true, + "aes" : true, + "xsave" : true, + "avx" : true, + "f16c" : true, + "rdrand" : true, + "hypervisor" : true, + "lahf_lm" : true, + "cmp_legacy" : true, + "svm" : true, + "cr8_legacy" : true, + "abm" : true, + "sse4a" : true, + "misalignsse" : true, + "3dnowprefetch" : true, + "osvw" : true, + "perfctr_core" : true, + "ssbd" : true, + "ibrs" : true, + "ibpb" : true, + "stibp" : true, + "vmmcall" : true, + "fsgsbase" : true, + "tsc_adjust" : true, + "bmi1" : true, + "avx2" : true, + "smep" : true, + "bmi2" : true, + "erms" : true, + "invpcid" : true, + "rdseed" : true, + "adx" : true, + "smap" : true, + "clflushopt" : true, + "clwb" : true, + "sha_ni" : true, + "xsaveopt" : true, + "xsavec" : true, + "xgetbv1" : true, + "xsaves" : true, + "clzero" : true, + "xsaveerptr" : true, + "wbnoinvd" : true, + "arat" : true, + "npt" : true, + "lbrv" : true, + "nrip_save" : true, + "tsc_scale" : true, + "vmcb_clean" : true, + "flushbyasid" : true, + "pausefilter" : true, + "pfthreshold" : true, + "v_vmsave_vmload" : true, + "vgif" : true, + "umip" : true, + "pku" : true, + "ospke" : true, + "vaes" : true, + "vpclmulqdq" : true, + "rdpid" : true, + "overflow_recov" : true, + "succor" : true, + "fsrm" : true, + "arch_capabilities" : true + } + }, + { + "id" : "cpu:2", + "class" : "processor", + "claimed" : true, + "handle" : "DMI:0402", + "description" : "CPU", + "product" : "AMD Ryzen 5 PRO 5650U with Radeon Graphics", + "vendor" : "Advanced Micro Devices [AMD]", + "physid" : "402", + "businfo" : "cpu@2", + "version" : "25.80.0", + "slot" : "CPU 2", + "units" : "Hz", + "size" : 2000000000, + "capacity" : 2000000000, + "width" : 64, + "configuration" : { + "cores" : "1", + "enabledcores" : "1", + "microcode" : "173015058", + "threads" : "1" + }, + "capabilities" : { + "fpu" : "mathematical co-processor", + "fpu_exception" : "FPU exceptions reporting", + "wp" : true, + "vme" : "virtual mode extensions", + "de" : "debugging extensions", + "pse" : "page size extensions", + "tsc" : "time stamp counter", + "msr" : "model-specific registers", + "pae" : "4GB+ memory addressing (Physical Address Extension)", + "mce" : "machine check exceptions", + "cx8" : "compare and exchange 8-byte", + "apic" : "on-chip advanced programmable interrupt controller (APIC)", + "sep" : "fast system calls", + "mtrr" : "memory type range registers", + "pge" : "page global enable", + "mca" : "machine check architecture", + "cmov" : "conditional move instruction", + "pat" : "page attribute table", + "pse36" : "36-bit page size extensions", + "clflush" : true, + "mmx" : "multimedia extensions (MMX)", + "fxsr" : "fast floating point save/restore", + "sse" : "streaming SIMD extensions (SSE)", + "sse2" : "streaming SIMD extensions (SSE2)", + "syscall" : "fast system calls", + "nx" : "no-execute bit (NX)", + "mmxext" : "multimedia extensions (MMXExt)", + "fxsr_opt" : true, + "pdpe1gb" : true, + "rdtscp" : true, + "x86-64" : "64bits extensions (x86-64)", + "rep_good" : true, + "nopl" : true, + "xtopology" : true, + "cpuid" : true, + "extd_apicid" : true, + "tsc_known_freq" : true, + "pni" : true, + "pclmulqdq" : true, + "ssse3" : true, + "fma" : true, + "cx16" : true, + "sse4_1" : true, + "sse4_2" : true, + "x2apic" : true, + "movbe" : true, + "popcnt" : true, + "tsc_deadline_timer" : true, + "aes" : true, + "xsave" : true, + "avx" : true, + "f16c" : true, + "rdrand" : true, + "hypervisor" : true, + "lahf_lm" : true, + "cmp_legacy" : true, + "svm" : true, + "cr8_legacy" : true, + "abm" : true, + "sse4a" : true, + "misalignsse" : true, + "3dnowprefetch" : true, + "osvw" : true, + "perfctr_core" : true, + "ssbd" : true, + "ibrs" : true, + "ibpb" : true, + "stibp" : true, + "vmmcall" : true, + "fsgsbase" : true, + "tsc_adjust" : true, + "bmi1" : true, + "avx2" : true, + "smep" : true, + "bmi2" : true, + "erms" : true, + "invpcid" : true, + "rdseed" : true, + "adx" : true, + "smap" : true, + "clflushopt" : true, + "clwb" : true, + "sha_ni" : true, + "xsaveopt" : true, + "xsavec" : true, + "xgetbv1" : true, + "xsaves" : true, + "clzero" : true, + "xsaveerptr" : true, + "wbnoinvd" : true, + "arat" : true, + "npt" : true, + "lbrv" : true, + "nrip_save" : true, + "tsc_scale" : true, + "vmcb_clean" : true, + "flushbyasid" : true, + "pausefilter" : true, + "pfthreshold" : true, + "v_vmsave_vmload" : true, + "vgif" : true, + "umip" : true, + "pku" : true, + "ospke" : true, + "vaes" : true, + "vpclmulqdq" : true, + "rdpid" : true, + "overflow_recov" : true, + "succor" : true, + "fsrm" : true, + "arch_capabilities" : true + } + }, + { + "id" : "cpu:3", + "class" : "processor", + "claimed" : true, + "handle" : "DMI:0403", + "description" : "CPU", + "product" : "AMD Ryzen 5 PRO 5650U with Radeon Graphics", + "vendor" : "Advanced Micro Devices [AMD]", + "physid" : "403", + "businfo" : "cpu@3", + "version" : "25.80.0", + "slot" : "CPU 3", + "units" : "Hz", + "size" : 2000000000, + "capacity" : 2000000000, + "width" : 64, + "configuration" : { + "cores" : "1", + "enabledcores" : "1", + "microcode" : "173015058", + "threads" : "1" + }, + "capabilities" : { + "fpu" : "mathematical co-processor", + "fpu_exception" : "FPU exceptions reporting", + "wp" : true, + "vme" : "virtual mode extensions", + "de" : "debugging extensions", + "pse" : "page size extensions", + "tsc" : "time stamp counter", + "msr" : "model-specific registers", + "pae" : "4GB+ memory addressing (Physical Address Extension)", + "mce" : "machine check exceptions", + "cx8" : "compare and exchange 8-byte", + "apic" : "on-chip advanced programmable interrupt controller (APIC)", + "sep" : "fast system calls", + "mtrr" : "memory type range registers", + "pge" : "page global enable", + "mca" : "machine check architecture", + "cmov" : "conditional move instruction", + "pat" : "page attribute table", + "pse36" : "36-bit page size extensions", + "clflush" : true, + "mmx" : "multimedia extensions (MMX)", + "fxsr" : "fast floating point save/restore", + "sse" : "streaming SIMD extensions (SSE)", + "sse2" : "streaming SIMD extensions (SSE2)", + "syscall" : "fast system calls", + "nx" : "no-execute bit (NX)", + "mmxext" : "multimedia extensions (MMXExt)", + "fxsr_opt" : true, + "pdpe1gb" : true, + "rdtscp" : true, + "x86-64" : "64bits extensions (x86-64)", + "rep_good" : true, + "nopl" : true, + "xtopology" : true, + "cpuid" : true, + "extd_apicid" : true, + "tsc_known_freq" : true, + "pni" : true, + "pclmulqdq" : true, + "ssse3" : true, + "fma" : true, + "cx16" : true, + "sse4_1" : true, + "sse4_2" : true, + "x2apic" : true, + "movbe" : true, + "popcnt" : true, + "tsc_deadline_timer" : true, + "aes" : true, + "xsave" : true, + "avx" : true, + "f16c" : true, + "rdrand" : true, + "hypervisor" : true, + "lahf_lm" : true, + "cmp_legacy" : true, + "svm" : true, + "cr8_legacy" : true, + "abm" : true, + "sse4a" : true, + "misalignsse" : true, + "3dnowprefetch" : true, + "osvw" : true, + "perfctr_core" : true, + "ssbd" : true, + "ibrs" : true, + "ibpb" : true, + "stibp" : true, + "vmmcall" : true, + "fsgsbase" : true, + "tsc_adjust" : true, + "bmi1" : true, + "avx2" : true, + "smep" : true, + "bmi2" : true, + "erms" : true, + "invpcid" : true, + "rdseed" : true, + "adx" : true, + "smap" : true, + "clflushopt" : true, + "clwb" : true, + "sha_ni" : true, + "xsaveopt" : true, + "xsavec" : true, + "xgetbv1" : true, + "xsaves" : true, + "clzero" : true, + "xsaveerptr" : true, + "wbnoinvd" : true, + "arat" : true, + "npt" : true, + "lbrv" : true, + "nrip_save" : true, + "tsc_scale" : true, + "vmcb_clean" : true, + "flushbyasid" : true, + "pausefilter" : true, + "pfthreshold" : true, + "v_vmsave_vmload" : true, + "vgif" : true, + "umip" : true, + "pku" : true, + "ospke" : true, + "vaes" : true, + "vpclmulqdq" : true, + "rdpid" : true, + "overflow_recov" : true, + "succor" : true, + "fsrm" : true, + "arch_capabilities" : true + } + }, + { + "id" : "memory", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:1000", + "description" : "System Memory", + "physid" : "1000", + "units" : "bytes", + "size" : 4294967296, + "configuration" : { + "errordetection" : "multi-bit-ecc" + }, + "capabilities" : { + "ecc" : "Multi-bit error-correcting code (ECC)" + }, + "children" : [ { + "id" : "bank", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:1100", + "description" : "DIMM RAM", + "vendor" : "QEMU", + "physid" : "0", + "slot" : "DIMM 0", + "units" : "bytes", + "size" : 4294967296 + }] + }, + { + "id" : "pci", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "82G33/G31/P35/P31 Express DRAM Controller", + "vendor" : "Intel Corporation", + "physid" : "100", + "businfo" : "pci@0000:00:00.0", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "children" : [ { + "id" : "display", + "class" : "display", + "claimed" : true, + "handle" : "PCI:0000:00:01.0", + "description" : "VGA compatible controller", + "product" : "Virtio 1.0 GPU", + "vendor" : "Red Hat, Inc.", + "physid" : "1", + "businfo" : "pci@0000:00:01.0", + "version" : "01", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "virtio-pci", + "latency" : "0" + }, + "capabilities" : { + "msix" : "MSI-X", + "vga_controller" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "rom" : "extension ROM" + }, + "children" : [ { + "id" : "virtio0", + "class" : "generic", + "description" : "Virtual I/O device", + "physid" : "0", + "businfo" : "virtio@0", + "configuration" : { + "driver" : "virtio_gpu" + } + }] + }, + { + "id" : "pci:0", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:01", + "description" : "PCI bridge", + "product" : "QEMU PCIe Root port", + "vendor" : "Red Hat, Inc.", + "physid" : "2", + "businfo" : "pci@0000:00:02.0", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "network", + "class" : "network", + "claimed" : true, + "handle" : "PCI:0000:01:00.0", + "description" : "Ethernet controller", + "product" : "Virtio 1.0 network device", + "vendor" : "Red Hat, Inc.", + "physid" : "0", + "businfo" : "pci@0000:01:00.0", + "version" : "01", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "virtio-pci", + "latency" : "0" + }, + "capabilities" : { + "msix" : "MSI-X", + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "rom" : "extension ROM" + }, + "children" : [ { + "id" : "virtio1", + "class" : "network", + "claimed" : true, + "description" : "Ethernet interface", + "physid" : "0", + "businfo" : "virtio@1", + "logicalname" : "enp1s0", + "serial" : "52:54:00:ff:a4:74", + "configuration" : { + "autonegotiation" : "off", + "broadcast" : "yes", + "driver" : "virtio_net", + "driverversion" : "1.0.0", + "ip" : "192.168.122.10", + "link" : "yes", + "multicast" : "yes" + }, + "capabilities" : { + "ethernet" : true, + "physical" : "Physical interface" + } + }] + }] + }, + { + "id" : "pci:1", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:02", + "description" : "PCI bridge", + "product" : "QEMU PCIe Root port", + "vendor" : "Red Hat, Inc.", + "physid" : "2.1", + "businfo" : "pci@0000:00:02.1", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "usb", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:02:00.0", + "description" : "USB controller", + "product" : "QEMU XHCI Host Controller", + "vendor" : "Red Hat, Inc.", + "physid" : "0", + "businfo" : "pci@0000:02:00.0", + "version" : "01", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "xhci_hcd", + "latency" : "0" + }, + "capabilities" : { + "msix" : "MSI-X", + "pciexpress" : "PCI Express", + "xhci" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "usbhost:0", + "class" : "bus", + "claimed" : true, + "handle" : "USB:1:1", + "product" : "xHCI Host Controller", + "vendor" : "Linux 6.17.7-1-default xhci-hcd", + "physid" : "0", + "businfo" : "usb@1", + "logicalname" : "usb1", + "version" : "6.17", + "configuration" : { + "driver" : "hub", + "slots" : "15", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0" + }, + "children" : [ { + "id" : "usb", + "class" : "input", + "claimed" : true, + "handle" : "USB:1:2", + "description" : "Human interface device", + "product" : "QEMU QEMU USB Tablet", + "vendor" : "QEMU", + "physid" : "1", + "businfo" : "usb@1:1", + "logicalname" : ["input4", "/dev/input/event3", "/dev/input/js0", "/dev/input/mouse2"], + "version" : "0.00", + "serial" : "28754-0000:00:02.1:00.0-1", + "configuration" : { + "driver" : "usbhid", + "maxpower" : "100mA", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0", + "usb" : "USB" + } + }] + }, + { + "id" : "usbhost:1", + "class" : "bus", + "claimed" : true, + "handle" : "USB:2:1", + "product" : "xHCI Host Controller", + "vendor" : "Linux 6.17.7-1-default xhci-hcd", + "physid" : "1", + "businfo" : "usb@2", + "logicalname" : "usb2", + "version" : "6.17", + "configuration" : { + "driver" : "hub", + "slots" : "15", + "speed" : "5000Mbit/s" + }, + "capabilities" : { + "usb-3.00" : true + }, + "children" : [ { + "id" : "usb", + "class" : "storage", + "claimed" : true, + "handle" : "SCSI:07", + "description" : "Mass storage device", + "product" : "QEMU USB HARDDRIVE", + "vendor" : "QEMU", + "physid" : "2", + "businfo" : "usb@2:2", + "logicalname" : "scsi7", + "version" : "0.00", + "serial" : "1-0000:00:02.1:00.0-2", + "configuration" : { + "driver" : "usb-storage", + "speed" : "5000Mbit/s" + }, + "capabilities" : { + "usb-3.00" : true, + "scsi" : "SCSI", + "emulated" : "Emulated device", + "scsi-host" : "SCSI host adapter" + }, + "children" : [ { + "id" : "disk", + "class" : "volume", + "claimed" : true, + "handle" : "SCSI:07:00:00:00", + "description" : "EXT4 volume", + "product" : "QEMU HARDDISK", + "vendor" : "Linux", + "physid" : "0.0.0", + "businfo" : "scsi@7:0.0.0", + "logicalname" : "/dev/sda", + "dev" : "8:0", + "version" : "1.0", + "serial" : "eb812b72-8077-4f28-88ee-7769993b260d", + "size" : 1073741824, + "configuration" : { + "ansiversion" : "5", + "created" : "2025-11-05 08:33:21", + "filesystem" : "ext4", + "label" : "UPDATES", + "lastmountpoint" : "/mnt", + "logicalsectorsize" : "512", + "modified" : "2025-11-05 08:34:23", + "mounted" : "2025-11-05 08:34:11", + "sectorsize" : "512", + "state" : "clean" + }, + "capabilities" : { + "5400rpm" : "5400 rotations per minute", + "journaled" : true, + "extended_attributes" : "Extended Attributes", + "large_files" : "4GB+ files", + "huge_files" : "16TB+ files", + "dir_nlink" : "directories with 65000+ subdirs", + "64bit" : "64bit filesystem", + "extents" : "extent-based allocation", + "ext4" : true, + "ext2" : "EXT2/EXT3 volume", + "initialized" : "initialized volume" + } + }] + }] + }] + }] + }, + { + "id" : "pci:2", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:03", + "description" : "PCI bridge", + "product" : "QEMU PCIe Root port", + "vendor" : "Red Hat, Inc.", + "physid" : "2.2", + "businfo" : "pci@0000:00:02.2", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "communication", + "class" : "communication", + "claimed" : true, + "handle" : "PCI:0000:03:00.0", + "description" : "Communication controller", + "product" : "Virtio 1.0 console", + "vendor" : "Red Hat, Inc.", + "physid" : "0", + "businfo" : "pci@0000:03:00.0", + "version" : "01", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "virtio-pci", + "latency" : "0" + }, + "capabilities" : { + "msix" : "MSI-X", + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "virtio2", + "class" : "generic", + "description" : "Virtual I/O device", + "physid" : "0", + "businfo" : "virtio@2", + "configuration" : { + "driver" : "virtio_console" + } + }] + }] + }, + { + "id" : "pci:3", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:04", + "description" : "PCI bridge", + "product" : "QEMU PCIe Root port", + "vendor" : "Red Hat, Inc.", + "physid" : "2.3", + "businfo" : "pci@0000:00:02.3", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "scsi", + "class" : "storage", + "claimed" : true, + "handle" : "PCI:0000:04:00.0", + "description" : "SCSI storage controller", + "product" : "Virtio 1.0 block device", + "vendor" : "Red Hat, Inc.", + "physid" : "0", + "businfo" : "pci@0000:04:00.0", + "version" : "01", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "virtio-pci", + "latency" : "0" + }, + "capabilities" : { + "scsi" : true, + "msix" : "MSI-X", + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "virtio3", + "class" : "disk", + "claimed" : true, + "handle" : "GUID:f6b4cb32-981c-42ea-bfdb-0979224395a3", + "description" : "Virtual I/O device", + "physid" : "0", + "businfo" : "virtio@3", + "logicalname" : "/dev/vda", + "units" : "bytes", + "size" : 42949672960, + "configuration" : { + "driver" : "virtio_blk", + "guid" : "f6b4cb32-981c-42ea-bfdb-0979224395a3", + "logicalsectorsize" : "512", + "sectorsize" : "512" + }, + "capabilities" : { + "gpt-1.00" : "GUID Partition Table version 1.00", + "partitioned" : "Partitioned disk", + "partitioned:gpt" : "GUID partition table" + }, + "children" : [ { + "id" : "volume:0", + "class" : "volume", + "claimed" : true, + "handle" : "GUID:2f8ced2d-9dae-474d-b8c5-9f714a0595d5", + "description" : "BIOS Boot partition", + "vendor" : "EFI", + "physid" : "1", + "businfo" : "virtio@3,1", + "logicalname" : "/dev/vda1", + "dev" : "253:1", + "serial" : "2f8ced2d-9dae-474d-b8c5-9f714a0595d5", + "capacity" : 8388096, + "capabilities" : { + "nofs" : "No filesystem" + } + }, + { + "id" : "volume:1", + "class" : "volume", + "claimed" : true, + "handle" : "GUID:3f2382c8-ebd2-49ee-8684-034af9394386", + "description" : "EFI partition", + "physid" : "2", + "businfo" : "virtio@3,2", + "logicalname" : "/dev/vda2", + "dev" : "253:2", + "serial" : "3f2382c8-ebd2-49ee-8684-034af9394386", + "capacity" : 40791703040 + }, + { + "id" : "volume:2", + "class" : "volume", + "claimed" : true, + "handle" : "GUID:69d509f1-b840-423b-a946-05f76287a598", + "description" : "Linux swap volume", + "vendor" : "Linux", + "physid" : "3", + "businfo" : "virtio@3,3", + "logicalname" : "/dev/vda3", + "dev" : "253:3", + "version" : "1", + "serial" : "fdac494d-29f0-4f80-babf-504e4f6adcd9", + "size" : 2148511744, + "capacity" : 2148514816, + "configuration" : { + "filesystem" : "swap", + "pagesize" : "4096" + }, + "capabilities" : { + "nofs" : "No filesystem", + "swap" : "Linux swap volume", + "initialized" : "initialized volume" + } + }] + }] + }] + }, + { + "id" : "pci:4", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:05", + "description" : "PCI bridge", + "product" : "QEMU PCIe Root port", + "vendor" : "Red Hat, Inc.", + "physid" : "2.4", + "businfo" : "pci@0000:00:02.4", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "generic", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:05:00.0", + "description" : "Unclassified device", + "product" : "Virtio 1.0 balloon", + "vendor" : "Red Hat, Inc.", + "physid" : "0", + "businfo" : "pci@0000:05:00.0", + "version" : "01", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "virtio-pci", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "virtio4", + "class" : "generic", + "description" : "Virtual I/O device", + "physid" : "0", + "businfo" : "virtio@4", + "configuration" : { + "driver" : "virtio_balloon" + } + }] + }] + }, + { + "id" : "pci:5", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:06", + "description" : "PCI bridge", + "product" : "QEMU PCIe Root port", + "vendor" : "Red Hat, Inc.", + "physid" : "2.5", + "businfo" : "pci@0000:00:02.5", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "generic", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:06:00.0", + "description" : "Unclassified device", + "product" : "Virtio 1.0 RNG", + "vendor" : "Red Hat, Inc.", + "physid" : "0", + "businfo" : "pci@0000:06:00.0", + "version" : "01", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "virtio-pci", + "latency" : "0" + }, + "capabilities" : { + "msix" : "MSI-X", + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "virtio5", + "class" : "generic", + "description" : "Virtual I/O device", + "physid" : "0", + "businfo" : "virtio@5" + }] + }] + }, + { + "id" : "pci:6", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:07", + "description" : "PCI bridge", + "product" : "QEMU PCIe Root port", + "vendor" : "Red Hat, Inc.", + "physid" : "2.6", + "businfo" : "pci@0000:00:02.6", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "scsi", + "class" : "storage", + "claimed" : true, + "handle" : "PCI:0000:07:00.0", + "description" : "SCSI storage controller", + "product" : "Virtio 1.0 SCSI", + "vendor" : "Red Hat, Inc.", + "physid" : "0", + "businfo" : "pci@0000:07:00.0", + "version" : "01", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "virtio-pci", + "latency" : "0" + }, + "capabilities" : { + "scsi" : true, + "msix" : "MSI-X", + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "virtio6", + "class" : "generic", + "description" : "Virtual I/O device", + "physid" : "0", + "businfo" : "virtio@6", + "configuration" : { + "driver" : "virtio_scsi" + } + }] + }] + }, + { + "id" : "pci:7", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:08", + "description" : "PCI bridge", + "product" : "QEMU PCIe Root port", + "vendor" : "Red Hat, Inc.", + "physid" : "2.7", + "businfo" : "pci@0000:00:02.7", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "network", + "class" : "network", + "claimed" : true, + "handle" : "PCI:0000:08:00.0", + "description" : "Ethernet controller", + "product" : "Virtio 1.0 network device", + "vendor" : "Red Hat, Inc.", + "physid" : "0", + "businfo" : "pci@0000:08:00.0", + "version" : "01", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "virtio-pci", + "latency" : "0" + }, + "capabilities" : { + "msix" : "MSI-X", + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "rom" : "extension ROM" + }, + "children" : [ { + "id" : "virtio7", + "class" : "network", + "claimed" : true, + "description" : "Ethernet interface", + "physid" : "0", + "businfo" : "virtio@7", + "logicalname" : "enp8s0", + "serial" : "52:54:00:8f:48:94", + "configuration" : { + "autonegotiation" : "off", + "broadcast" : "yes", + "driver" : "virtio_net", + "driverversion" : "1.0.0", + "ip" : "192.168.122.122", + "link" : "yes", + "multicast" : "yes" + }, + "capabilities" : { + "ethernet" : true, + "physical" : "Physical interface" + } + }] + }] + }, + { + "id" : "pci:8", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:09", + "description" : "PCI bridge", + "product" : "QEMU PCIe Root port", + "vendor" : "Red Hat, Inc.", + "physid" : "3", + "businfo" : "pci@0000:00:03.0", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "scsi", + "class" : "storage", + "claimed" : true, + "handle" : "PCI:0000:09:00.0", + "description" : "SCSI storage controller", + "product" : "Virtio 1.0 block device", + "vendor" : "Red Hat, Inc.", + "physid" : "0", + "businfo" : "pci@0000:09:00.0", + "version" : "01", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "virtio-pci", + "latency" : "0" + }, + "capabilities" : { + "scsi" : true, + "msix" : "MSI-X", + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "virtio8", + "class" : "disk", + "claimed" : true, + "handle" : "GUID:3c1728b2-8e50-4eb2-a423-91b7abbf09c1", + "description" : "Virtual I/O device", + "physid" : "0", + "businfo" : "virtio@8", + "logicalname" : "/dev/vdb", + "units" : "bytes", + "size" : 21474836480, + "configuration" : { + "driver" : "virtio_blk", + "guid" : "3c1728b2-8e50-4eb2-a423-91b7abbf09c1", + "logicalsectorsize" : "512", + "sectorsize" : "512" + }, + "capabilities" : { + "gpt-1.00" : "GUID Partition Table version 1.00", + "partitioned" : "Partitioned disk", + "partitioned:gpt" : "GUID partition table" + }, + "children" : [ { + "id" : "volume:0", + "class" : "volume", + "claimed" : true, + "handle" : "GUID:f0cdd1ca-60dd-4643-ab97-cf08c3b7f34b", + "description" : "BIOS Boot partition", + "vendor" : "EFI", + "physid" : "1", + "businfo" : "virtio@8,1", + "logicalname" : "/dev/vdb1", + "dev" : "253:17", + "serial" : "f0cdd1ca-60dd-4643-ab97-cf08c3b7f34b", + "capacity" : 8388096, + "capabilities" : { + "nofs" : "No filesystem" + } + }, + { + "id" : "volume:1", + "class" : "volume", + "claimed" : true, + "handle" : "GUID:9d9b43f6-17ac-4264-8e65-54c7a8371d9e", + "description" : "EFI partition", + "physid" : "2", + "businfo" : "virtio@8,2", + "logicalname" : "/dev/vdb2", + "dev" : "253:18", + "serial" : "9d9b43f6-17ac-4264-8e65-54c7a8371d9e", + "capacity" : 19316866560 + }, + { + "id" : "volume:2", + "class" : "volume", + "claimed" : true, + "handle" : "GUID:251af2d3-0460-436c-aeea-067b503a7666", + "description" : "Linux swap volume", + "vendor" : "Linux", + "physid" : "3", + "businfo" : "virtio@8,3", + "logicalname" : "/dev/vdb3", + "dev" : "253:19", + "version" : "1", + "serial" : "5ca83a76-5081-4f51-a396-9ed70ed8538c", + "size" : 2148511744, + "capacity" : 2148514816, + "configuration" : { + "filesystem" : "swap", + "pagesize" : "4096" + }, + "capabilities" : { + "nofs" : "No filesystem", + "swap" : "Linux swap volume", + "initialized" : "initialized volume" + } + }] + }] + }] + }, + { + "id" : "pci:9", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:0a", + "description" : "PCI bridge", + "product" : "QEMU PCIe Root port", + "vendor" : "Red Hat, Inc.", + "physid" : "3.1", + "businfo" : "pci@0000:00:03.1", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "pci:10", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:0b", + "description" : "PCI bridge", + "product" : "QEMU PCIe Root port", + "vendor" : "Red Hat, Inc.", + "physid" : "3.2", + "businfo" : "pci@0000:00:03.2", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "pci:11", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:0c", + "description" : "PCI bridge", + "product" : "QEMU PCIe Root port", + "vendor" : "Red Hat, Inc.", + "physid" : "3.3", + "businfo" : "pci@0000:00:03.3", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "pci:12", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:0d", + "description" : "PCI bridge", + "product" : "QEMU PCIe Root port", + "vendor" : "Red Hat, Inc.", + "physid" : "3.4", + "businfo" : "pci@0000:00:03.4", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "pci:13", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:0e", + "description" : "PCI bridge", + "product" : "QEMU PCIe Root port", + "vendor" : "Red Hat, Inc.", + "physid" : "3.5", + "businfo" : "pci@0000:00:03.5", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "isa", + "class" : "bridge", + "claimed" : true, + "handle" : "PCI:0000:00:1f.0", + "description" : "ISA bridge", + "product" : "82801IB (ICH9) LPC Interface Controller", + "vendor" : "Intel Corporation", + "physid" : "1f", + "businfo" : "pci@0000:00:1f.0", + "version" : "02", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "lpc_ich", + "latency" : "0" + }, + "capabilities" : { + "isa" : true + }, + "children" : [ { + "id" : "pnp00:00", + "class" : "communication", + "claimed" : true, + "product" : "PnP device PNP0501", + "physid" : "0", + "configuration" : { + "driver" : "serial" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:01", + "class" : "input", + "claimed" : true, + "product" : "PnP device PNP0303", + "physid" : "1", + "configuration" : { + "driver" : "i8042 kbd" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:02", + "class" : "input", + "claimed" : true, + "product" : "PnP device PNP0f13", + "physid" : "2", + "configuration" : { + "driver" : "i8042 aux" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:03", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0b00", + "physid" : "3", + "configuration" : { + "driver" : "rtc_cmos" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:04", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c01", + "physid" : "4", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }] + }, + { + "id" : "sata", + "class" : "storage", + "claimed" : true, + "handle" : "PCI:0000:00:1f.2", + "description" : "SATA controller", + "product" : "82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode]", + "vendor" : "Intel Corporation", + "physid" : "1f.2", + "businfo" : "pci@0000:00:1f.2", + "logicalname" : "scsi1", + "version" : "02", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "ahci", + "latency" : "0" + }, + "capabilities" : { + "sata" : true, + "msi" : "Message Signalled Interrupts", + "ahci_1.0" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "emulated" : "Emulated device" + }, + "children" : [ { + "id" : "cdrom", + "class" : "disk", + "claimed" : true, + "handle" : "SCSI:01:00:00:00", + "description" : "DVD reader", + "product" : "QEMU DVD-ROM", + "vendor" : "QEMU", + "physid" : "0.0.0", + "businfo" : "scsi@1:0.0.0", + "logicalname" : ["/dev/cdrom", "/dev/sr0", "/run/initramfs/live"], + "dev" : "11:0", + "version" : "2.5+", + "configuration" : { + "ansiversion" : "5", + "mount.fstype" : "iso9660", + "mount.options" : "ro,relatime,nojoliet,check=s,map=n,blocksize=2048,iocharset=utf8", + "state" : "mounted", + "status" : "ready" + }, + "capabilities" : { + "removable" : "support is removable", + "audio" : "Audio CD playback", + "dvd" : "DVD playback" + }, + "children" : [ { + "id" : "medium", + "class" : "disk", + "claimed" : true, + "handle" : "GUID:35323032-3930-4033-b130-303435343138", + "physid" : "0", + "logicalname" : ["/dev/cdrom", "/run/initramfs/live"], + "dev" : "11:0", + "configuration" : { + "guid" : "35323032-3930-4033-b130-303435343138", + "mount.fstype" : "iso9660", + "mount.options" : "ro,relatime,nojoliet,check=s,map=n,blocksize=2048,iocharset=utf8", + "state" : "mounted" + }, + "capabilities" : { + "gpt-1.00" : "GUID Partition Table version 1.00", + "partitioned" : "Partitioned disk", + "partitioned:gpt" : "GUID partition table" + }, + "children" : [ { + "id" : "volume:0", + "class" : "volume", + "handle" : "GUID:35323032-3930-4033-b131-303435343138", + "description" : "data partition", + "vendor" : "Windows", + "physid" : "1", + "serial" : "35323032-3930-4033-b131-303435343138", + "capacity" : 743712256, + "configuration" : { + "name" : "ISO9660" + }, + "capabilities" : { + "precious" : "This partition is required for the platform to function", + "readonly" : "Read-only partition" + } + }, + { + "id" : "volume:1", + "class" : "volume", + "handle" : "GUID:35323032-3930-4033-b132-303435343138", + "description" : "Windows FAT volume", + "vendor" : "mkfs.fat", + "physid" : "2", + "version" : "FAT16", + "serial" : "18f0-b4f2", + "size" : 18446744073709549568, + "configuration" : { + "FATs" : "2", + "filesystem" : "fat", + "label" : "BOOT", + "name" : "Appended2" + }, + "capabilities" : { + "boot" : "Contains boot code", + "fat" : "Windows FAT volume", + "initialized" : "initialized volume" + } + }] + }] + }] + }, + { + "id" : "serial", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:00:1f.3", + "description" : "SMBus", + "product" : "82801I (ICH9 Family) SMBus Controller", + "vendor" : "Intel Corporation", + "physid" : "1f.3", + "businfo" : "pci@0000:00:1f.3", + "version" : "02", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "i801_smbus", + "latency" : "0" + } + }] + }] + }, + { + "id" : "input:0", + "class" : "input", + "claimed" : true, + "product" : "AT Translated Set 2 keyboard", + "physid" : "1", + "logicalname" : ["input0", "/dev/input/event0", "input0::capslock", "input0::numlock", "input0::scrolllock"], + "capabilities" : { + "i8042" : "i8042 PC AT keyboard controller" + } + }, + { + "id" : "input:1", + "class" : "input", + "claimed" : true, + "product" : "VirtualPS/2 VMware VMMouse", + "physid" : "2", + "logicalname" : ["input2", "/dev/input/event2", "/dev/input/mouse1"], + "capabilities" : { + "i8042" : "i8042 PC AT keyboard controller" + } + }, + { + "id" : "input:2", + "class" : "input", + "claimed" : true, + "product" : "VirtualPS/2 VMware VMMouse", + "physid" : "3", + "logicalname" : ["input3", "/dev/input/event1", "/dev/input/mouse0"], + "capabilities" : { + "i8042" : "i8042 PC AT keyboard controller" + } + }, + { + "id" : "input:3", + "class" : "input", + "claimed" : true, + "product" : "PC Speaker", + "physid" : "4", + "logicalname" : ["input5", "/dev/input/event4"], + "capabilities" : { + "isa" : "ISA bus" + } + }, + { + "id" : "input:4", + "class" : "input", + "claimed" : true, + "product" : "Power Button", + "physid" : "5", + "logicalname" : ["input6", "/dev/input/event5"], + "capabilities" : { + "platform" : true + } + }] +} diff --git a/rust/test/share/lshw.json b/rust/test/share/lshw.json new file mode 100644 index 0000000000..97ad2a743f --- /dev/null +++ b/rust/test/share/lshw.json @@ -0,0 +1,1812 @@ +{ + "id" : "localhost.localdomain", + "class" : "system", + "claimed" : true, + "handle" : "DMI:000F", + "description" : "Notebook", + "product" : "20XF009AUK (LENOVO_MT_20XF_BU_Think_FM_ThinkPad T14s Gen 2a)", + "vendor" : "LENOVO", + "version" : "ThinkPad T14s Gen 2a", + "serial" : "PC2G11QC", + "width" : 64, + "configuration" : { + "administrator_password" : "disabled", + "chassis" : "notebook", + "family" : "ThinkPad T14s Gen 2a", + "power-on_password" : "disabled", + "sku" : "LENOVO_MT_20XF_BU_Think_FM_ThinkPad T14s Gen 2a", + "uuid" : "b63bbacc-1f95-11b2-a85c-e0c3a8567de0" + }, + "capabilities" : { + "smbios-3.3.0" : "SMBIOS version 3.3.0", + "dmi-3.3.0" : "DMI version 3.3.0", + "smp" : "Symmetric Multi-Processing", + "vsyscall32" : "32-bit processes" + }, + "children" : [ { + "id" : "core", + "class" : "bus", + "claimed" : true, + "handle" : "DMI:0010", + "description" : "Motherboard", + "product" : "20XF009AUK", + "vendor" : "LENOVO", + "physid" : "0", + "version" : "SDK0T76538 WIN", + "serial" : "L1HF25E0VY6", + "slot" : "Not Available", + "children" : [ { + "id" : "memory", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0001", + "description" : "System Memory", + "physid" : "1", + "slot" : "System board or motherboard", + "units" : "bytes", + "size" : 17179869184, + "children" : [ { + "id" : "bank:0", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0008", + "description" : "LPDDR4 Synchronous Unbuffered (Unregistered) 4266 MHz (0.2 ns)", + "product" : "MT53E1G32D2NP-046", + "vendor" : "Micron Technology", + "physid" : "0", + "serial" : "00000000", + "slot" : "DIMM 0", + "units" : "bytes", + "size" : 8589934592, + "width" : 32, + "clock" : 4266000000 + }, + { + "id" : "bank:1", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:000B", + "description" : "LPDDR4 Synchronous Unbuffered (Unregistered) 4266 MHz (0.2 ns)", + "product" : "MT53E1G32D2NP-046", + "vendor" : "Micron Technology", + "physid" : "1", + "serial" : "00000000", + "slot" : "DIMM 0", + "units" : "bytes", + "size" : 8589934592, + "width" : 32, + "clock" : 4266000000 + }] + }, + { + "id" : "cache:0", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0003", + "description" : "L1 cache", + "physid" : "3", + "slot" : "L1 - Cache", + "units" : "bytes", + "size" : 393216, + "capacity" : 393216, + "clock" : 1000000000, + "configuration" : { + "level" : "1" + }, + "capabilities" : { + "pipeline-burst" : "Pipeline burst", + "internal" : "Internal", + "write-back" : "Write-back", + "unified" : "Unified cache" + } + }, + { + "id" : "cache:1", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0004", + "description" : "L2 cache", + "physid" : "4", + "slot" : "L2 - Cache", + "units" : "bytes", + "size" : 3145728, + "capacity" : 3145728, + "clock" : 1000000000, + "configuration" : { + "level" : "2" + }, + "capabilities" : { + "pipeline-burst" : "Pipeline burst", + "internal" : "Internal", + "write-back" : "Write-back", + "unified" : "Unified cache" + } + }, + { + "id" : "cache:2", + "class" : "memory", + "claimed" : true, + "handle" : "DMI:0005", + "description" : "L3 cache", + "physid" : "5", + "slot" : "L3 - Cache", + "units" : "bytes", + "size" : 16777216, + "capacity" : 16777216, + "clock" : 1000000000, + "configuration" : { + "level" : "3" + }, + "capabilities" : { + "pipeline-burst" : "Pipeline burst", + "internal" : "Internal", + "write-back" : "Write-back", + "unified" : "Unified cache" + } + }, + { + "id" : "cpu", + "class" : "processor", + "claimed" : true, + "handle" : "DMI:0006", + "description" : "CPU", + "product" : "AMD Ryzen 5 PRO 5650U with Radeon Graphics", + "vendor" : "Advanced Micro Devices [AMD]", + "physid" : "6", + "businfo" : "cpu@0", + "version" : "25.80.0", + "serial" : "None", + "slot" : "FP6", + "units" : "Hz", + "size" : 3352781000, + "capacity" : 4291753000, + "width" : 64, + "clock" : 100000000, + "configuration" : { + "cores" : "6", + "enabledcores" : "6", + "microcode" : "173015058", + "threads" : "12" + }, + "capabilities" : { + "lm" : "64bits extensions (x86-64)", + "fpu" : "mathematical co-processor", + "fpu_exception" : "FPU exceptions reporting", + "wp" : true, + "vme" : "virtual mode extensions", + "de" : "debugging extensions", + "pse" : "page size extensions", + "tsc" : "time stamp counter", + "msr" : "model-specific registers", + "pae" : "4GB+ memory addressing (Physical Address Extension)", + "mce" : "machine check exceptions", + "cx8" : "compare and exchange 8-byte", + "apic" : "on-chip advanced programmable interrupt controller (APIC)", + "sep" : "fast system calls", + "mtrr" : "memory type range registers", + "pge" : "page global enable", + "mca" : "machine check architecture", + "cmov" : "conditional move instruction", + "pat" : "page attribute table", + "pse36" : "36-bit page size extensions", + "clflush" : true, + "mmx" : "multimedia extensions (MMX)", + "fxsr" : "fast floating point save/restore", + "sse" : "streaming SIMD extensions (SSE)", + "sse2" : "streaming SIMD extensions (SSE2)", + "ht" : "HyperThreading", + "syscall" : "fast system calls", + "nx" : "no-execute bit (NX)", + "mmxext" : "multimedia extensions (MMXExt)", + "fxsr_opt" : true, + "pdpe1gb" : true, + "rdtscp" : true, + "x86-64" : "64bits extensions (x86-64)", + "constant_tsc" : true, + "rep_good" : true, + "nopl" : true, + "xtopology" : true, + "nonstop_tsc" : true, + "cpuid" : true, + "extd_apicid" : true, + "aperfmperf" : true, + "rapl" : true, + "pni" : true, + "pclmulqdq" : true, + "monitor" : true, + "ssse3" : true, + "fma" : true, + "cx16" : true, + "sse4_1" : true, + "sse4_2" : true, + "movbe" : true, + "popcnt" : true, + "aes" : true, + "xsave" : true, + "avx" : true, + "f16c" : true, + "rdrand" : true, + "lahf_lm" : true, + "cmp_legacy" : true, + "svm" : true, + "extapic" : true, + "cr8_legacy" : true, + "abm" : true, + "sse4a" : true, + "misalignsse" : true, + "3dnowprefetch" : true, + "osvw" : true, + "ibs" : true, + "skinit" : true, + "wdt" : true, + "tce" : true, + "topoext" : true, + "perfctr_core" : true, + "perfctr_nb" : true, + "bpext" : true, + "perfctr_llc" : true, + "mwaitx" : true, + "cpb" : true, + "cat_l3" : true, + "cdp_l3" : true, + "hw_pstate" : true, + "ssbd" : true, + "mba" : true, + "ibrs" : true, + "ibpb" : true, + "stibp" : true, + "vmmcall" : true, + "fsgsbase" : true, + "bmi1" : true, + "avx2" : true, + "smep" : true, + "bmi2" : true, + "erms" : true, + "invpcid" : true, + "cqm" : true, + "rdt_a" : true, + "rdseed" : true, + "adx" : true, + "smap" : true, + "clflushopt" : true, + "clwb" : true, + "sha_ni" : true, + "xsaveopt" : true, + "xsavec" : true, + "xgetbv1" : true, + "xsaves" : true, + "cqm_llc" : true, + "cqm_occup_llc" : true, + "cqm_mbm_total" : true, + "cqm_mbm_local" : true, + "user_shstk" : true, + "clzero" : true, + "irperf" : true, + "xsaveerptr" : true, + "rdpru" : true, + "wbnoinvd" : true, + "cppc" : true, + "arat" : true, + "npt" : true, + "lbrv" : true, + "svm_lock" : true, + "nrip_save" : true, + "tsc_scale" : true, + "vmcb_clean" : true, + "flushbyasid" : true, + "decodeassists" : true, + "pausefilter" : true, + "pfthreshold" : true, + "avic" : true, + "v_vmsave_vmload" : true, + "vgif" : true, + "v_spec_ctrl" : true, + "umip" : true, + "pku" : true, + "ospke" : true, + "vaes" : true, + "vpclmulqdq" : true, + "rdpid" : true, + "overflow_recov" : true, + "succor" : true, + "smca" : true, + "fsrm" : true, + "debug_swap" : true, + "cpufreq" : "CPU Frequency scaling" + } + }, + { + "id" : "firmware", + "class" : "memory", + "claimed" : true, + "description" : "BIOS", + "vendor" : "LENOVO", + "physid" : "e", + "version" : "R1NET63W (1.33)", + "date" : "12/17/2024", + "units" : "bytes", + "size" : 131072, + "capacity" : 33554432, + "capabilities" : { + "pci" : "PCI bus", + "pnp" : "Plug-and-Play", + "upgrade" : "BIOS EEPROM can be upgraded", + "shadowing" : "BIOS shadowing", + "cdboot" : "Booting from CD-ROM/DVD", + "bootselect" : "Selectable boot path", + "edd" : "Enhanced Disk Drive extensions", + "int13floppy720" : "3.5\" 720KB floppy", + "int5printscreen" : "Print Screen key", + "int9keyboard" : "i8042 keyboard controller", + "int14serial" : "INT14 serial line control", + "int17printer" : "INT17 printer control", + "int10video" : "INT10 CGA/Mono video", + "acpi" : "ACPI", + "usb" : "USB legacy emulation", + "biosbootspecification" : "BIOS boot specification", + "uefi" : "UEFI specification is supported" + } + }, + { + "id" : "pci:0", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Renoir/Cezanne Root Complex", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "100", + "businfo" : "pci@0000:00:00.0", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "children" : [ { + "id" : "generic", + "class" : "generic", + "handle" : "PCI:0000:00:00.2", + "description" : "IOMMU", + "product" : "Renoir/Cezanne IOMMU", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "0.2", + "businfo" : "pci@0000:00:00.2", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "msi" : "Message Signalled Interrupts", + "ht" : "HyperTransport", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "pci:0", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:01", + "description" : "PCI bridge", + "product" : "Renoir/Cezanne PCIe GPP Bridge", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "2.1", + "businfo" : "pci@0000:00:02.1", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "ht" : "HyperTransport", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "nvme", + "class" : "storage", + "claimed" : true, + "handle" : "PCI:0000:01:00.0", + "description" : "NVMe device", + "product" : "UMIS RPETJ512MGE2QDQ", + "vendor" : "Shenzhen Unionmemory Information System Ltd.", + "physid" : "0", + "businfo" : "pci@0000:01:00.0", + "logicalname" : "/dev/nvme0", + "version" : "1.5Q0630", + "serial" : "SS0L25217X8LC2560T0V", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "nvme", + "latency" : "0", + "nqn" : "nqn.2022-05.com.Ramaxel:nvm-subsystem-sn-SS0L25217X8LC2560T0V", + "state" : "live" + }, + "capabilities" : { + "nvme" : true, + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "nvm_express" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "namespace:0", + "class" : "disk", + "claimed" : true, + "description" : "NVMe disk", + "physid" : "0", + "logicalname" : "hwmon1" + }, + { + "id" : "namespace:1", + "class" : "disk", + "claimed" : true, + "description" : "NVMe disk", + "physid" : "2", + "logicalname" : "/dev/ng0n1" + }, + { + "id" : "namespace:2", + "class" : "disk", + "claimed" : true, + "handle" : "GUID:c1c7e130-8782-48a6-8494-765106e2c764", + "description" : "NVMe disk", + "physid" : "1", + "businfo" : "nvme@0:1", + "logicalname" : "/dev/nvme0n1", + "units" : "bytes", + "size" : 512110190592, + "configuration" : { + "guid" : "c1c7e130-8782-48a6-8494-765106e2c764", + "logicalsectorsize" : "512", + "sectorsize" : "512", + "wwid" : "eui.044a5012509d57e0" + }, + "capabilities" : { + "gpt-1.00" : "GUID Partition Table version 1.00", + "partitioned" : "Partitioned disk", + "partitioned:gpt" : "GUID partition table" + }, + "children" : [ { + "id" : "volume:0", + "class" : "volume", + "claimed" : true, + "handle" : "GUID:5d4ea142-f9d0-4a26-8ab1-d691b04e6f7f", + "description" : "Windows FAT volume", + "vendor" : "mkfs.fat", + "physid" : "1", + "businfo" : "nvme@0:1,1", + "logicalname" : ["/dev/nvme0n1p1", "/boot/efi"], + "dev" : "259:1", + "version" : "FAT32", + "serial" : "56fd-87c7", + "size" : 1072676864, + "capacity" : 1073741312, + "configuration" : { + "FATs" : "2", + "filesystem" : "fat", + "mount.fstype" : "vfat", + "mount.options" : "rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro", + "state" : "mounted" + }, + "capabilities" : { + "boot" : "Contains boot code", + "fat" : "Windows FAT volume", + "initialized" : "initialized volume" + } + }, + { + "id" : "volume:1", + "class" : "volume", + "claimed" : true, + "handle" : "GUID:f83b5eda-32f8-4751-ba4c-89db5ba6e52d", + "description" : "EFI partition", + "physid" : "2", + "businfo" : "nvme@0:1,2", + "logicalname" : "/dev/nvme0n1p2", + "dev" : "259:2", + "serial" : "d8b292d9-57dc-402b-8195-aacbacde68aa", + "size" : 493855178240, + "capacity" : 493855178240, + "width" : 2784342592, + "configuration" : { + "bits" : "11374277184", + "filesystem" : "luks", + "hash" : "sha256", + "version" : "2" + }, + "capabilities" : { + "encrypted" : "Encrypted volume", + "luks" : "Linux Unified Key Setup volume", + "initialized" : "initialized volume" + } + }, + { + "id" : "volume:2", + "class" : "volume", + "claimed" : true, + "handle" : "GUID:95b40e7b-ba42-47c2-8526-e82da564273d", + "description" : "swap partition", + "vendor" : "Linux", + "physid" : "3", + "businfo" : "nvme@0:1,3", + "logicalname" : "/dev/nvme0n1p3", + "dev" : "259:3", + "serial" : "7acf44d0-bfde-46bf-bdde-81ca3f8beac0", + "size" : 17180204032, + "capacity" : 17180204032, + "width" : 2534398576, + "configuration" : { + "bits" : "19714267760", + "filesystem" : "luks", + "hash" : "sha256", + "version" : "2" + }, + "capabilities" : { + "nofs" : "No filesystem", + "encrypted" : "Encrypted volume", + "luks" : "Linux Unified Key Setup volume", + "initialized" : "initialized volume" + } + }] + }] + }] + }, + { + "id" : "pci:1", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:02", + "description" : "PCI bridge", + "product" : "Renoir/Cezanne PCIe GPP Bridge", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "2.2", + "businfo" : "pci@0000:00:02.2", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "ht" : "HyperTransport", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "network", + "class" : "network", + "claimed" : true, + "handle" : "PCI:0000:02:00.0", + "description" : "Ethernet interface", + "product" : "RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller", + "vendor" : "Realtek Semiconductor Co., Ltd.", + "physid" : "0", + "businfo" : "pci@0000:02:00.0", + "logicalname" : "enp2s0f0", + "version" : "0e", + "serial" : "6c:24:08:6e:98:f2", + "units" : "bit/s", + "capacity" : 1000000000, + "width" : 64, + "clock" : 33000000, + "configuration" : { + "autonegotiation" : "on", + "broadcast" : "yes", + "driver" : "r8169", + "driverversion" : "6.17.9-1-default", + "latency" : "0", + "link" : "no", + "multicast" : "yes", + "port" : "twisted pair" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "vpd" : "Vital Product Data", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "ethernet" : true, + "physical" : "Physical interface", + "tp" : "twisted pair", + "mii" : "Media Independent Interface", + "10bt" : "10Mbit/s", + "10bt-fd" : "10Mbit/s (full duplex)", + "100bt" : "100Mbit/s", + "100bt-fd" : "100Mbit/s (full duplex)", + "1000bt-fd" : "1Gbit/s (full duplex)", + "autonegotiation" : "Auto-negotiation" + } + }, + { + "id" : "communication:0", + "class" : "communication", + "claimed" : true, + "handle" : "PCI:0000:02:00.1", + "description" : "Serial controller", + "product" : "RTL8111xP UART #1", + "vendor" : "Realtek Semiconductor Co., Ltd.", + "physid" : "0.1", + "businfo" : "pci@0000:02:00.1", + "version" : "0e", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "serial", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "vpd" : "Vital Product Data", + "16550" : true, + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "communication:1", + "class" : "communication", + "claimed" : true, + "handle" : "PCI:0000:02:00.2", + "description" : "Serial controller", + "product" : "RTL8111xP UART #2", + "vendor" : "Realtek Semiconductor Co., Ltd.", + "physid" : "0.2", + "businfo" : "pci@0000:02:00.2", + "version" : "0e", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "serial", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "vpd" : "Vital Product Data", + "16550" : true, + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "serial", + "class" : "bus", + "handle" : "PCI:0000:02:00.3", + "description" : "IPMI Interface", + "product" : "RTL8111xP IPMI interface", + "vendor" : "Realtek Semiconductor Co., Ltd.", + "physid" : "0.3", + "businfo" : "pci@0000:02:00.3", + "version" : "0e", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "vpd" : "Vital Product Data", + "kcs" : true, + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "usb", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:02:00.4", + "description" : "USB controller", + "product" : "RTL811x EHCI host controller", + "vendor" : "Realtek Semiconductor Co., Ltd.", + "physid" : "0.4", + "businfo" : "pci@0000:02:00.4", + "version" : "0e", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "ehci-pci", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "pciexpress" : "PCI Express", + "msix" : "MSI-X", + "vpd" : "Vital Product Data", + "ehci" : "Enhanced Host Controller Interface (USB2)", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "usbhost", + "class" : "bus", + "claimed" : true, + "handle" : "USB:7:1", + "product" : "EHCI Host Controller", + "vendor" : "Linux 6.17.9-1-default ehci_hcd", + "physid" : "1", + "businfo" : "usb@7", + "logicalname" : "usb7", + "version" : "6.17", + "configuration" : { + "driver" : "hub", + "slots" : "1", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0" + } + }] + }] + }, + { + "id" : "pci:2", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:03", + "description" : "PCI bridge", + "product" : "Renoir/Cezanne PCIe GPP Bridge", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "2.3", + "businfo" : "pci@0000:00:02.3", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "ht" : "HyperTransport", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "network", + "class" : "network", + "claimed" : true, + "handle" : "PCI:0000:03:00.0", + "description" : "Wireless interface", + "product" : "MT7921 802.11ax PCI Express Wireless Network Adapter", + "vendor" : "MEDIATEK Corp.", + "physid" : "0", + "businfo" : "pci@0000:03:00.0", + "logicalname" : "wlp3s0", + "version" : "00", + "serial" : "d8:80:83:a5:d0:79", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "broadcast" : "yes", + "driver" : "mt7921e", + "driverversion" : "6.17.9-1-default", + "firmware" : "____010000-20250625153703", + "ip" : "192.168.1.42", + "latency" : "0", + "link" : "yes", + "multicast" : "yes", + "wireless" : "IEEE 802.11" + }, + "capabilities" : { + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "pm" : "Power Management", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing", + "ethernet" : true, + "physical" : "Physical interface", + "wireless" : "Wireless-LAN" + } + }] + }, + { + "id" : "pci:3", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:04", + "description" : "PCI bridge", + "product" : "Renoir/Cezanne PCIe GPP Bridge", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "2.7", + "businfo" : "pci@0000:00:02.7", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "ht" : "HyperTransport", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "usb", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:04:00.0", + "description" : "USB controller", + "product" : "uPD720202 USB 3.0 Host Controller", + "vendor" : "Renesas Electronics Corp.", + "physid" : "0", + "businfo" : "pci@0000:04:00.0", + "version" : "02", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "xhci-pci-renesas", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "msi" : "Message Signalled Interrupts", + "msix" : "MSI-X", + "pciexpress" : "PCI Express", + "xhci" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "usbhost:0", + "class" : "bus", + "claimed" : true, + "handle" : "USB:5:1", + "product" : "xHCI Host Controller", + "vendor" : "Linux 6.17.9-1-default xhci-hcd", + "physid" : "0", + "businfo" : "usb@5", + "logicalname" : "usb5", + "version" : "6.17", + "configuration" : { + "driver" : "hub", + "slots" : "2", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0" + }, + "children" : [ { + "id" : "usb", + "class" : "multimedia", + "claimed" : true, + "handle" : "USB:5:2", + "description" : "Video", + "product" : "Integrated RGB Camera", + "vendor" : "SunplusIT Inc", + "physid" : "2", + "businfo" : "usb@5:2", + "version" : "60.06", + "serial" : "01.00.00", + "configuration" : { + "driver" : "uvcvideo", + "maxpower" : "500mA", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.01" : true + } + }] + }, + { + "id" : "usbhost:1", + "class" : "bus", + "claimed" : true, + "handle" : "USB:6:1", + "product" : "xHCI Host Controller", + "vendor" : "Linux 6.17.9-1-default xhci-hcd", + "physid" : "1", + "businfo" : "usb@6", + "logicalname" : "usb6", + "version" : "6.17", + "configuration" : { + "driver" : "hub", + "slots" : "2", + "speed" : "5000Mbit/s" + }, + "capabilities" : { + "usb-3.00" : true + } + }] + }] + }, + { + "id" : "pci:4", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:05", + "description" : "PCI bridge", + "product" : "Renoir Internal PCIe GPP Bridge to Bus", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "8.1", + "businfo" : "pci@0000:00:08.1", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "pcieport" + }, + "capabilities" : { + "pci" : true, + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "normal_decode" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "display", + "class" : "display", + "claimed" : true, + "handle" : "PCI:0000:05:00.0", + "description" : "VGA compatible controller", + "product" : "Cezanne [Radeon Vega Series / Radeon Vega Mobile Series]", + "vendor" : "Advanced Micro Devices, Inc. [AMD/ATI]", + "physid" : "0", + "businfo" : "pci@0000:05:00.0", + "version" : "d2", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "amdgpu", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "msix" : "MSI-X", + "vga_controller" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "multimedia:0", + "class" : "multimedia", + "claimed" : true, + "handle" : "PCI:0000:05:00.1", + "description" : "Audio device", + "product" : "Renoir Radeon High Definition Audio Controller", + "vendor" : "Advanced Micro Devices, Inc. [AMD/ATI]", + "physid" : "0.1", + "businfo" : "pci@0000:05:00.1", + "logicalname" : ["card1", "/dev/snd/controlC1", "/dev/snd/hwC1D0", "/dev/snd/pcmC1D3p", "/dev/snd/pcmC1D7p", "/dev/snd/pcmC1D8p", "/dev/snd/pcmC1D9p"], + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "snd_hda_intel", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "input:0", + "class" : "input", + "claimed" : true, + "product" : "HD-Audio Generic HDMI/DP,pcm=3", + "physid" : "0", + "logicalname" : ["input24", "/dev/input/event19"] + }, + { + "id" : "input:1", + "class" : "input", + "claimed" : true, + "product" : "HD-Audio Generic HDMI/DP,pcm=7", + "physid" : "1", + "logicalname" : ["input25", "/dev/input/event20"] + }, + { + "id" : "input:2", + "class" : "input", + "claimed" : true, + "product" : "HD-Audio Generic HDMI/DP,pcm=8", + "physid" : "2", + "logicalname" : ["input26", "/dev/input/event21"] + }, + { + "id" : "input:3", + "class" : "input", + "claimed" : true, + "product" : "HD-Audio Generic HDMI/DP,pcm=9", + "physid" : "3", + "logicalname" : ["input27", "/dev/input/event22"] + }] + }, + { + "id" : "generic", + "class" : "generic", + "claimed" : true, + "handle" : "PCI:0000:05:00.2", + "description" : "Encryption controller", + "product" : "Family 17h (Models 10h-1fh) Platform Security Processor", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "0.2", + "businfo" : "pci@0000:05:00.2", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "ccp", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "msix" : "MSI-X", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "usb:0", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:05:00.3", + "description" : "USB controller", + "product" : "Renoir/Cezanne USB 3.1", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "0.3", + "businfo" : "pci@0000:05:00.3", + "version" : "00", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "xhci_hcd", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "msix" : "MSI-X", + "xhci" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "usbhost:0", + "class" : "bus", + "claimed" : true, + "handle" : "USB:1:1", + "product" : "xHCI Host Controller", + "vendor" : "Linux 6.17.9-1-default xhci-hcd", + "physid" : "0", + "businfo" : "usb@1", + "logicalname" : "usb1", + "version" : "6.17", + "configuration" : { + "driver" : "hub", + "slots" : "4", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0" + }, + "children" : [ { + "id" : "usb:0", + "class" : "input", + "claimed" : true, + "handle" : "USB:1:3", + "description" : "Mouse", + "product" : "Logitech Wireless Receiver Mouse", + "vendor" : "Logitech", + "physid" : "2", + "businfo" : "usb@1:2", + "logicalname" : ["input14", "/dev/input/event9", "/dev/input/mouse3"], + "version" : "3.03", + "configuration" : { + "driver" : "usbhid", + "maxpower" : "50mA", + "speed" : "12Mbit/s" + }, + "capabilities" : { + "usb-1.10" : "USB 1.1", + "usb" : "USB" + } + }, + { + "id" : "usb:1", + "class" : "generic", + "handle" : "USB:1:5", + "description" : "Smart card reader", + "product" : "EMV Smartcard Reader", + "vendor" : "Generic", + "physid" : "3", + "businfo" : "usb@1:3", + "version" : "1.20", + "configuration" : { + "maxpower" : "50mA", + "speed" : "12Mbit/s" + }, + "capabilities" : { + "usb-2.01" : true + } + }] + }, + { + "id" : "usbhost:1", + "class" : "bus", + "claimed" : true, + "handle" : "USB:2:1", + "product" : "xHCI Host Controller", + "vendor" : "Linux 6.17.9-1-default xhci-hcd", + "physid" : "1", + "businfo" : "usb@2", + "logicalname" : "usb2", + "version" : "6.17", + "configuration" : { + "driver" : "hub", + "slots" : "2", + "speed" : "10000Mbit/s" + }, + "capabilities" : { + "usb-3.10" : true + } + }] + }, + { + "id" : "usb:1", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:05:00.4", + "description" : "USB controller", + "product" : "Renoir/Cezanne USB 3.1", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "0.4", + "businfo" : "pci@0000:05:00.4", + "version" : "00", + "width" : 64, + "clock" : 33000000, + "configuration" : { + "driver" : "xhci_hcd", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "msix" : "MSI-X", + "xhci" : true, + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "usbhost:0", + "class" : "bus", + "claimed" : true, + "handle" : "USB:3:1", + "product" : "xHCI Host Controller", + "vendor" : "Linux 6.17.9-1-default xhci-hcd", + "physid" : "0", + "businfo" : "usb@3", + "logicalname" : "usb3", + "version" : "6.17", + "configuration" : { + "driver" : "hub", + "slots" : "4", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0" + }, + "children" : [ { + "id" : "usb:0", + "class" : "multimedia", + "claimed" : true, + "handle" : "USB:3:8", + "description" : "Audio device", + "product" : "Kingston Technology Company HyperX Cloud Flight Wireless", + "vendor" : "Kingston Technology Company", + "physid" : "2", + "businfo" : "usb@3:2", + "logicalname" : ["card0", "/dev/snd/controlC0", "/dev/snd/pcmC0D0c", "/dev/snd/pcmC0D0p", "input81", "/dev/input/event5", "input82", "/dev/input/event6", "input83", "/dev/input/event7", "input84", "/dev/input/event8"], + "version" : "41.01", + "configuration" : { + "driver" : "usbhid", + "maxpower" : "100mA", + "speed" : "12Mbit/s" + }, + "capabilities" : { + "usb-1.10" : "USB 1.1", + "audio-control" : "Control device", + "usb" : "USB" + } + }, + { + "id" : "usb:1", + "class" : "generic", + "handle" : "USB:3:3", + "description" : "Generic USB device", + "product" : "Goodix USB2.0 MISC", + "vendor" : "Goodix Technology Co., Ltd.", + "physid" : "3", + "businfo" : "usb@3:3", + "version" : "1.00", + "serial" : "UID73DCE868_XXXX_MOC_B0", + "configuration" : { + "maxpower" : "100mA", + "speed" : "12Mbit/s" + }, + "capabilities" : { + "usb-2.00" : "USB 2.0" + } + }, + { + "id" : "usb:2", + "class" : "communication", + "claimed" : true, + "handle" : "USB:3:4", + "description" : "Bluetooth wireless interface", + "product" : "Wireless_Device", + "vendor" : "MediaTek Inc.", + "physid" : "4", + "businfo" : "usb@3:4", + "version" : "1.00", + "serial" : "000000000", + "configuration" : { + "driver" : "btusb", + "maxpower" : "100mA", + "speed" : "480Mbit/s" + }, + "capabilities" : { + "usb-2.10" : true, + "bluetooth" : "Bluetooth wireless radio" + } + }] + }, + { + "id" : "usbhost:1", + "class" : "bus", + "claimed" : true, + "handle" : "USB:4:1", + "product" : "xHCI Host Controller", + "vendor" : "Linux 6.17.9-1-default xhci-hcd", + "physid" : "1", + "businfo" : "usb@4", + "logicalname" : "usb4", + "version" : "6.17", + "configuration" : { + "driver" : "hub", + "slots" : "2", + "speed" : "10000Mbit/s" + }, + "capabilities" : { + "usb-3.10" : true + } + }] + }, + { + "id" : "multimedia:1", + "class" : "multimedia", + "claimed" : true, + "handle" : "PCI:0000:05:00.5", + "description" : "Multimedia controller", + "product" : "Audio Coprocessor", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "0.5", + "businfo" : "pci@0000:05:00.5", + "logicalname" : ["card3", "/dev/snd/controlC3", "/dev/snd/pcmC3D0c"], + "version" : "01", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "snd_rn_pci_acp3x", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + } + }, + { + "id" : "multimedia:2", + "class" : "multimedia", + "claimed" : true, + "handle" : "PCI:0000:05:00.6", + "description" : "Audio device", + "product" : "Family 17h/19h/1ah HD Audio Controller", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "0.6", + "businfo" : "pci@0000:05:00.6", + "logicalname" : ["card2", "/dev/snd/controlC2", "/dev/snd/hwC2D0", "/dev/snd/pcmC2D0c", "/dev/snd/pcmC2D0p"], + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "snd_hda_intel", + "latency" : "0" + }, + "capabilities" : { + "pm" : "Power Management", + "pciexpress" : "PCI Express", + "msi" : "Message Signalled Interrupts", + "bus_master" : "bus mastering", + "cap_list" : "PCI capabilities listing" + }, + "children" : [ { + "id" : "input:0", + "class" : "input", + "claimed" : true, + "product" : "HDA Digital PCBeep", + "physid" : "0", + "logicalname" : ["input28", "/dev/input/event23"], + "capabilities" : { + "pci" : "PCI" + } + }, + { + "id" : "input:1", + "class" : "input", + "claimed" : true, + "product" : "HD-Audio Generic Mic", + "physid" : "1", + "logicalname" : ["input29", "/dev/input/event24"] + }, + { + "id" : "input:2", + "class" : "input", + "claimed" : true, + "product" : "HD-Audio Generic Headphone", + "physid" : "2", + "logicalname" : ["input30", "/dev/input/event25"] + }] + }] + }, + { + "id" : "serial", + "class" : "bus", + "claimed" : true, + "handle" : "PCI:0000:00:14.0", + "description" : "SMBus", + "product" : "FCH SMBus Controller", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "14", + "businfo" : "pci@0000:00:14.0", + "version" : "51", + "width" : 32, + "clock" : 66000000, + "configuration" : { + "driver" : "piix4_smbus", + "latency" : "0" + } + }, + { + "id" : "isa", + "class" : "bridge", + "claimed" : true, + "handle" : "PCI:0000:00:14.3", + "description" : "ISA bridge", + "product" : "FCH LPC Bridge", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "14.3", + "businfo" : "pci@0000:00:14.3", + "version" : "51", + "width" : 32, + "clock" : 66000000, + "configuration" : { + "latency" : "0" + }, + "capabilities" : { + "isa" : true, + "bus_master" : "bus mastering" + }, + "children" : [ { + "id" : "pnp00:00", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "0", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:01", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0b00", + "physid" : "1", + "configuration" : { + "driver" : "rtc_cmos" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:02", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c02", + "physid" : "2", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:03", + "class" : "system", + "claimed" : true, + "product" : "PnP device PNP0c01", + "physid" : "3", + "configuration" : { + "driver" : "system" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:04", + "class" : "generic", + "claimed" : true, + "product" : "PnP device LEN0071", + "vendor" : "Lenovo Group Limited", + "physid" : "4", + "configuration" : { + "driver" : "i8042 kbd" + }, + "capabilities" : { + "pnp" : true + } + }, + { + "id" : "pnp00:05", + "class" : "generic", + "claimed" : true, + "product" : "PnP device LEN0307", + "vendor" : "Lenovo Group Limited", + "physid" : "5", + "configuration" : { + "driver" : "i8042 aux" + }, + "capabilities" : { + "pnp" : true + } + }] + }] + }, + { + "id" : "pci:1", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Renoir PCIe Dummy Host Bridge", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "101", + "businfo" : "pci@0000:00:01.0", + "version" : "00", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:2", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Renoir PCIe Dummy Host Bridge", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "102", + "businfo" : "pci@0000:00:02.0", + "version" : "00", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:3", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Renoir PCIe Dummy Host Bridge", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "103", + "businfo" : "pci@0000:00:08.0", + "version" : "00", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:4", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Cezanne Data Fabric; Function 0", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "104", + "businfo" : "pci@0000:00:18.0", + "version" : "00", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:5", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Cezanne Data Fabric; Function 1", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "105", + "businfo" : "pci@0000:00:18.1", + "version" : "00", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:6", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Cezanne Data Fabric; Function 2", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "106", + "businfo" : "pci@0000:00:18.2", + "version" : "00", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:7", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Cezanne Data Fabric; Function 3", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "107", + "businfo" : "pci@0000:00:18.3", + "version" : "00", + "width" : 32, + "clock" : 33000000, + "configuration" : { + "driver" : "k10temp" + } + }, + { + "id" : "pci:8", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Cezanne Data Fabric; Function 4", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "108", + "businfo" : "pci@0000:00:18.4", + "version" : "00", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:9", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Cezanne Data Fabric; Function 5", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "109", + "businfo" : "pci@0000:00:18.5", + "version" : "00", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:10", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Cezanne Data Fabric; Function 6", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "10a", + "businfo" : "pci@0000:00:18.6", + "version" : "00", + "width" : 32, + "clock" : 33000000 + }, + { + "id" : "pci:11", + "class" : "bridge", + "claimed" : true, + "handle" : "PCIBUS:0000:00", + "description" : "Host bridge", + "product" : "Cezanne Data Fabric; Function 7", + "vendor" : "Advanced Micro Devices, Inc. [AMD]", + "physid" : "10b", + "businfo" : "pci@0000:00:18.7", + "version" : "00", + "width" : 32, + "clock" : 33000000 + }] + }, + { + "id" : "battery", + "class" : "power", + "claimed" : true, + "handle" : "DMI:002C", + "product" : "5B10W518", + "vendor" : "Sunwoda", + "physid" : "1", + "slot" : "Front", + "units" : "mWh", + "capacity" : 57000, + "configuration" : { + "voltage" : "15.4V" + } + }, + { + "id" : "input:0", + "class" : "input", + "claimed" : true, + "product" : "AT Translated Set 2 keyboard", + "physid" : "2", + "logicalname" : ["input0", "/dev/input/event0", "input0::capslock", "input0::numlock", "input0::scrolllock"], + "capabilities" : { + "i8042" : "i8042 PC AT keyboard controller" + } + }, + { + "id" : "input:1", + "class" : "input", + "claimed" : true, + "product" : "Power Button", + "physid" : "3", + "logicalname" : ["input18", "/dev/input/event13"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:2", + "class" : "input", + "claimed" : true, + "product" : "Lid Switch", + "physid" : "4", + "logicalname" : ["input19", "/dev/input/event14"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:3", + "class" : "input", + "claimed" : true, + "product" : "TPPS/2 Elan TrackPoint", + "physid" : "5", + "logicalname" : ["input2", "/dev/input/event1", "/dev/input/mouse0"], + "capabilities" : { + "i8042" : "i8042 PC AT keyboard controller" + } + }, + { + "id" : "input:4", + "class" : "input", + "claimed" : true, + "product" : "Sleep Button", + "physid" : "6", + "logicalname" : ["input20", "/dev/input/event15"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:5", + "class" : "input", + "claimed" : true, + "product" : "Power Button", + "physid" : "7", + "logicalname" : ["input21", "/dev/input/event16"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:6", + "class" : "input", + "claimed" : true, + "product" : "ThinkPad Extra Buttons", + "physid" : "8", + "logicalname" : ["input22", "/dev/input/event18"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:7", + "class" : "input", + "claimed" : true, + "product" : "PC Speaker", + "physid" : "9", + "logicalname" : ["input23", "/dev/input/event17"], + "capabilities" : { + "isa" : "ISA bus" + } + }, + { + "id" : "input:8", + "class" : "input", + "claimed" : true, + "product" : "Video Bus", + "physid" : "a", + "logicalname" : ["input3", "/dev/input/event2"], + "capabilities" : { + "platform" : true + } + }, + { + "id" : "input:9", + "class" : "input", + "claimed" : true, + "product" : "SYNA0001:00 06CB:CE67 Mouse", + "physid" : "b", + "logicalname" : ["input7", "/dev/input/event3", "/dev/input/mouse1"], + "capabilities" : { + "i2c" : "I²C bus" + } + }, + { + "id" : "input:10", + "class" : "input", + "claimed" : true, + "product" : "SYNA0001:00 06CB:CE67 Touchpad", + "physid" : "c", + "logicalname" : ["input8", "/dev/input/event4", "/dev/input/mouse2"], + "capabilities" : { + "i2c" : "I²C bus" + } + }] +}