boagent
boagent copied to clipboard
SERVER AGENT
NAME
SERVER AGENT
STORY
In charge of an on-premise server, I want to be able to run a script that creates a server object calling the API, to retrieve the impacts of my server.
GUIDELINES
- Creation of an executable script on a server calling the API from its configuration and usage data.
- Launch the usage analysis during a given time in parameter
- Retrieves the configuration information needed to calculate the impact
- The script does not have to handle missing data, which will be filled in on the API side
HELP
- Use SCAPHANDRE or POWERJOULAR to recover the power consumption.
RESSOURCES
-
Route [POST] /v1/server/
-
API Server documentation : http://hackaton.boavizta.org/Reference/server_route/
-
Exemple de serveur :
{
"model":
{
"manufacturer": "Dell",
"name": "R740",
"type": "rack",
"year": 2020
},
{
"configuration":
{
"cpu":
{
"units": 2,
"core_units": 24,
"family": "Skylake"
},
"ram":
[
{
"units": 12,
"capacity": 32,
"manufacturer": "Samsung"
}
],
"disk":
[
{
"units": 1,
"type": "ssd",
"capacity": 400,
"manufacturer": "Samsung"
}
],
"power_supply":
{
"units": 2
}
}
},
"usage": {
"hours_use_time": 1,
"days_use_time": 0,
"years_use_time": 0
"usage_location": "FRA",
"hours_electrical_consumption": 510
}
}
input:
sudo lshw -short
output:
H/W path Device Class Description
=======================================================
system GL502VMZ
/0 bus GL502VMZ
/0/0 memory 64KiB BIOS
/0/8 memory 16GiB System Memory
/0/8/0 memory 8GiB SODIMM DDR4 Synchronous 2400 MHz (0,4 ns)
/0/8/1 memory [empty]
/0/8/2 memory 8GiB SODIMM DDR4 Synchronous 2400 MHz (0,4 ns)
/0/8/3 memory [empty]
/0/e memory 256KiB L1 cache
/0/f memory 1MiB L2 cache
/0/10 memory 6MiB L3 cache
/0/11 processor Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
/0/100 bridge Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM R
/0/100/1 bridge Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Co
/0/100/1/0 display GP106M [GeForce GTX 1060 Mobile]
/0/100/1/0.1 multimedia GP106 High Definition Audio Controller
/0/100/4 generic Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal
/0/100/14 bus 100 Series/C230 Series Chipset Family USB 3.0 xHCI Contro
/0/100/14/0 usb1 bus xHCI Host Controller
/0/100/14/0/1 input Razer Diamondback Optical Mouse
/0/100/14/0/4 multimedia USB2.0 HD UVC WebCam
/0/100/14/0/8 input ROG MacroKey
/0/100/14/0/9 communication Bluetooth wireless interface
/0/100/14/1 usb2 bus xHCI Host Controller
/0/100/14.2 generic 100 Series/C230 Series Chipset Family Thermal Subsystem
/0/100/15 generic 100 Series/C230 Series Chipset Family Serial IO I2C Contr
/0/100/15.1 generic 100 Series/C230 Series Chipset Family Serial IO I2C Contr
/0/100/16 communication 100 Series/C230 Series Chipset Family MEI Controller #1
/0/100/17 storage HM170/QM170 Chipset SATA Controller [AHCI Mode]
/0/100/1c bridge 100 Series/C230 Series Chipset Family PCI Express Root Po
/0/100/1c.2 bridge 100 Series/C230 Series Chipset Family PCI Express Root Po
/0/100/1c.2/0 wlp3s0 network Wireless 8260
/0/100/1c.3 bridge 100 Series/C230 Series Chipset Family PCI Express Root Po
/0/100/1c.3/0 enp4s0 network RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
/0/100/1f bridge HM175 Chipset LPC/eSPI Controller
/0/100/1f.2 memory Memory controller
/0/100/1f.3 multimedia CM238 HD Audio Controller
/0/100/1f.4 bus 100 Series/C230 Series Chipset Family SMBus
/0/1 system PnP device PNP0c02
/0/2 system PnP device PNP0c02
/0/3 system PnP device PNP0b00
/0/4 generic PnP device INT3f0d
/0/5 generic PnP device ATK3001
/0/6 system PnP device PNP0c02
/0/7 system PnP device PNP0c02
/0/9 system PnP device PNP0c02
/0/a system PnP device PNP0c02
/0/c/0.0.0 /dev/sdb disk 1TB HGST HTS721010A9
/0/c/0.0.0/1 /dev/sdb1 volume 931GiB Windows NTFS volume
strace of lshw:
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libm.so.6", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/sys/firmware/dmi/tables/smbios_entry_point", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/firmware/dmi/tables/DMI", O_RDONLY) = 4 openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 5 openat(AT_FDCWD, "/usr/share/locale/en_US/LC_MESSAGES/lshw.mo", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/share/locale/en/LC_MESSAGES/lshw.mo", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/devices/system/cpu/online", O_RDONLY) = 3 openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/block_size_bytes", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory0/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory1/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory10/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory100/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory101/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory102/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory103/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory104/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory105/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory106/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory107/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory108/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory109/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory11/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory110/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory111/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory112/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory113/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory114/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory115/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory116/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory117/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory118/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory119/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory12/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory120/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory121/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory122/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory123/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory124/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory125/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory126/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory127/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory128/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory129/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory13/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory130/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory131/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory132/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory133/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory134/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory135/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory136/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory137/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory138/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory139/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory14/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory140/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory141/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory142/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory143/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory144/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory145/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory146/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory147/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory148/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory149/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory15/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory150/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory151/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory152/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory153/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory154/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory155/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory156/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory157/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory158/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory159/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory16/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory160/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory161/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory162/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory163/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory164/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory165/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory166/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory167/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory168/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory169/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory17/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory170/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory171/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory172/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory173/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory174/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory175/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory176/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory177/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory178/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory179/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory18/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory180/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory181/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory182/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory183/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory184/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory185/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory186/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory187/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory188/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory189/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory190/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory191/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory192/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory193/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory194/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory195/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory196/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory197/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory198/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory199/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory2/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory200/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory201/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory202/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory203/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory204/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory205/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory206/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory207/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory208/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory209/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory210/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory211/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory212/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory213/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory214/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory215/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory216/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory217/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory218/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory219/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory220/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory221/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory222/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory223/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory224/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory225/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory226/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory227/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory228/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory229/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory230/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory231/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory232/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory233/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory234/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory235/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory236/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory237/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory238/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory239/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory240/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory241/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory242/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory243/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory244/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory245/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory246/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory247/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory248/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory249/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory250/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory251/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory252/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory253/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory254/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory255/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory256/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory257/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory258/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory259/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory260/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory261/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory262/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory263/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory264/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory265/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory266/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory267/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory3/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory32/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory33/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory34/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory35/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory36/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory37/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory38/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory39/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory4/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory40/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory41/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory42/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory43/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory44/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory45/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory46/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory47/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory48/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory49/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory5/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory50/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory51/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory52/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory53/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory54/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory55/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory56/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory57/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory58/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory59/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory6/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory60/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory61/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory62/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory63/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory64/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory65/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory66/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory67/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory68/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory69/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory7/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory70/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory71/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory72/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory73/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory74/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory75/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory76/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory77/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory78/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory79/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory8/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory80/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory81/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory82/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory83/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory84/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory85/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory86/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory87/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory88/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory89/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory9/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory90/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory91/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory92/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory93/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory94/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory95/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory96/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory97/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory98/online", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/system/memory/memory99/online", O_RDONLY) = 3 openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3 openat(AT_FDCWD, "/usr/share/misc/pci.ids", O_RDONLY) = 3 openat(AT_FDCWD, "/usr/share/hwdata/pci.ids", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/etc/pci.ids", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/share/pci.ids", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/local/share/pci.ids", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/share/lshw-common/pci.ids", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/share/pci.ids", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "0000:00:00.0/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:00.0/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:00.0/device", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:00.0/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:00.0/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:02.0/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:02.0/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:02.0/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:02.0/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:02.0/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:02.0/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:04.0/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:04.0/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:04.0/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:04.0/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:04.0/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:04.0/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:06.0/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:06.0/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:06.0/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:06.0/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:06.0/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:06.0/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:07.0/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:07.0/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:07.0/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:07.0/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:07.0/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:07.0/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:07.2/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:07.2/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:07.2/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:07.2/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:07.2/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:07.2/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:0d.0/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:0d.0/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:0d.0/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:0d.0/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:0d.0/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:0d.0/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:0d.2/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:0d.2/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:0d.2/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:0d.2/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:0d.2/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:0d.2/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:0d.3/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:0d.3/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:0d.3/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:0d.3/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:0d.3/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:0d.3/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:14.0/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:14.0/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:14.0/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:14.0/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:14.0/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:14.0/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:14.2/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:14.2/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:14.2/device", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:14.2/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:14.2/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:15.0/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:15.0/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:15.0/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:15.0/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:15.0/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:15.0/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:15.1/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:15.1/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:15.1/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:15.1/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:15.1/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:15.1/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:16.0/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:16.0/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:16.0/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:16.0/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:16.0/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:16.0/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1c.0/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1c.0/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1c.0/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1c.0/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1c.0/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1c.0/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1c.4/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1c.4/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1c.4/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1c.4/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1c.4/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1c.4/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1c.7/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1c.7/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1c.7/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1c.7/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1c.7/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1c.7/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1d.0/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1d.0/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1d.0/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1d.0/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1d.0/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1d.0/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1f.0/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1f.0/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1f.0/device", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1f.0/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1f.0/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1f.3/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1f.3/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1f.3/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1f.3/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1f.3/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1f.3/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1f.4/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1f.4/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1f.4/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1f.4/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1f.4/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1f.4/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1f.5/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1f.5/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1f.5/device", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1f.5/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1f.5/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1f.6/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1f.6/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1f.6/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1f.6/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1f.6/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:00:1f.6/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:01:00.0/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1d.0/0000:01:00.0/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1d.0/0000:01:00.0/device", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1d.0/0000:01:00.0/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:01:00.0/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:04:00.0/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:06.0/0000:04:00.0/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:06.0/0000:04:00.0/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:04:00.0/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:06.0/0000:04:00.0/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:04:00.0/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:09:00.0/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1c.4/0000:09:00.0/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1c.4/0000:09:00.0/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:09:00.0/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1c.4/0000:09:00.0/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:09:00.0/resource", O_RDONLY) = 3 openat(AT_FDCWD, "0000:0a:00.0/config", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1c.7/0000:0a:00.0/vendor", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1c.7/0000:0a:00.0/device", O_RDONLY) = 3 openat(AT_FDCWD, "0000:0a:00.0/irq", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1c.7/0000:0a:00.0/modalias", O_RDONLY) = 3 openat(AT_FDCWD, "0000:0a:00.0/resource", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pnp0/00:00/id", O_RDONLY) = 3 openat(AT_FDCWD, "/usr/share/hwdata/pnp.ids", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/share/lshw/pnp.ids", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/share/pnp.ids", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/share/hwdata/pnpid.txt", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/share/lshw/pnpid.txt", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/share/pnpid.txt", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/devices/pnp0/00:00/name", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/devices/pnp0/00:01/id", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pnp0/00:01/name", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/devices/pnp0/00:02/id", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pnp0/00:02/name", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/devices/pnp0/00:03/id", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pnp0/00:03/name", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/devices/pnp0/00:04/id", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pnp0/00:04/name", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/devices/pnp0/00:05/id", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pnp0/00:05/name", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/devices/pnp0/00:06/id", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pnp0/00:06/name", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/devices/pnp0/00:07/id", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pnp0/00:07/name", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/devices/pnp0/00:08/id", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pnp0/00:08/name", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/devices/pnp0/00:09/id", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/devices/pnp0/00:09/name", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/proc/devices", O_RDONLY) = 3 openat(AT_FDCWD, "/usr/share/misc/usb.ids", O_RDONLY) = 3 openat(AT_FDCWD, "/usr/share/hwdata/usb.ids", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/etc/usb.ids", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/share/usb.ids", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/local/share/usb.ids", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/share/lshw-common/usb.ids", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/share/usb.ids", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/kernel/debug/usb/devices", O_RDONLY) = 3 openat(AT_FDCWD, "/dev/twe0", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/dev/twe1", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/dev/twe2", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/dev/twe3", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/dev/twe4", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/dev/twe5", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/dev/twe6", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/dev/twe7", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/dev/twe8", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/dev/twe9", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/dev/twe10", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/dev/twe11", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/dev/twe12", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/dev/twe13", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/dev/twe14", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/dev/twe15", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/dev", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3 openat(AT_FDCWD, "/dev", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3 openat(AT_FDCWD, "/dev", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3 openat(AT_FDCWD, "/dev", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3 openat(AT_FDCWD, "/dev", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3 openat(AT_FDCWD, "/dev", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3 openat(AT_FDCWD, "/dev", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3 openat(AT_FDCWD, "/dev", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3 openat(AT_FDCWD, "/dev", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3 openat(AT_FDCWD, "/dev", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3 openat(AT_FDCWD, "/proc/mounts", O_RDONLY) = 3 openat(AT_FDCWD, "/proc/net/dev", O_RDONLY) = 3 openat(AT_FDCWD, "/sys/class/net/lo/device/modalias", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1f.6/modalias", O_RDONLY) = 4 openat(AT_FDCWD, "/sys/devices/pci0000:00/0000:00:1c.4/0000:09:00.0/modalias", O_RDONLY) = 4 openat(AT_FDCWD, "/sys/class/net/JamesBond/device/modalias", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/class/net/wg0/device/modalias", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/class/net/breth0/device/modalias", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/class/net/br-mgmt/device/modalias", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/class/net/wg1/device/modalias", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/sys/class/net/brfourberies/device/modalias", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/proc/devices", O_RDONLY) = 3 openat(AT_FDCWD, "/var/run/fb-3543848", O_RDONLY) = -1 EACCES (Permission denied) openat(AT_FDCWD, "/dev/fb-3543848", O_RDONLY) = 3 openat(AT_FDCWD, "/var/run/fb-3543848", O_RDONLY) = -1 EACCES (Permission denied) openat(AT_FDCWD, "/dev/fb-3543848", O_RDONLY) = -1 ENODEV (No such device) openat(AT_FDCWD, "/tmp/fb-3543848", O_RDONLY) = -1 ENODEV (No such device) openat(AT_FDCWD, "cpuinfo_max_freq", O_RDONLY) = 4 openat(AT_FDCWD, "scaling_cur_freq", O_RDONLY) = 4
https://github.com/lyonel/lshw/tree/master/src manuf.txt
Example of list of RAM components from ASUS:
- https://dlcdnets.asus.com/pub/ASUS/mb/Socket2066/WS_X299_SAGE/QVL/WS_X299_SAGE_memory_QVL_20191212.pdf
- https://dlsvr04.asus.com/pub/ASUS/mb/LGA1151/Z170I_PRO_GAMING/Z170IPG_2133_QVL151106.pdf
- https://dlsvr04.asus.com/pub/ASUS/mb/LGA1151/B150-PLUS/Non-Z170_DDR4_4DIMM_Condensed_memory_QVL_report161222.pdf
- https://dlcdnets.asus.com/pub/ASUS/mb/LGA1151/TUF_B360M-PLUS_GAMING/4DIMM-memory-QVL.pdf
Calls to the api work with the openapi generated client library (python-agent/openapi_client) :
python3 main.py
{'impacts': {'adp': {'manufacture': 0.02,
'unit': 'kgSbeq',
'use': 'not implemented'},
'gwp': {'manufacture': 21.7,
'unit': 'kgCO2eq',
'use': 'not implemented'},
'pe': {'manufacture': 325.0,
'unit': 'MJ',
'use': 'not implemented'}},
'verbose': {'core_units': {'input_value': 24,
'status': 'UNCHANGED',
'used_value': 24},
'die_size_per_core': {'input_value': None,
'status': 'SET',
'used_value': 0.245},
'family': {'input_value': 'Skylake',
'status': 'UNCHANGED',
'used_value': 'Skylake'},
'impacts': {'adp': {'unit': 'kgSbeq', 'value': 0.02},
'gwp': {'unit': 'kgCO2eq', 'value': 21.7},
'pe': {'unit': 'MJ', 'value': 325.0}},
'manufacture_date': {'input_value': '2017',
'status': 'UNCHANGED',
'used_value': '2017'}}}
@samuelrince Thanks for the update on the ram module !
Do you know if there is a way to use this module/those libraries without root privileges ?
Like configure the dmidecode kernel module or something ?
Hi ! @Vic063 Thanks a lot for the hard drive code ! I works well, but I'm wondering how we could get the underlying drives of an hardware RAID, if you have any idea ? (now it show only one drive, on a machine with 3 drives with hard RAID) I was thinking about getting the model of the RAID card if it is present. But how to know how many drives are attached if no specific module is loaded ?
@bpetit I think it depends of the RAID method used.
My knowledge is limited to two methods:
- Hardware RAID with dedicated RAID controller (often managed by iDRAC or the HPE OS)
- Software/Logical RAID with mdadm for example
I have a Dell Poweredge T430 at home, with a dedicated RAID card but managed by mdadm on top of it, I can take a look at it.
Hi @bpetit I am still investigating on how to get memory info without root privilege. All other tools seems to rely on dmidecode to get memory info like vendor info, model name, size, etc.
Currently without root privilege we can have:
- Total memory size using meminfo, which is already implemented.
- And, possibly the number of physical memory sticks installed on the board, but definitely not a "stable solution". It relies on reading kernel logs and hoping that the DMI information on memory is still there (and not overridden by newer logs).
Like configure the dmidecode kernel module or something ?
If you have more inputs on this would be happy to hear about it.
an interessting piece of code to look at : https://github.com/openSUSE/hwinfo
another one : https://github.com/lpereira/hardinfo/