boagent icon indicating copy to clipboard operation
boagent copied to clipboard

SERVER AGENT

Open da-ekchajzer opened this issue 3 years ago • 11 comments

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

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
  }
}

da-ekchajzer avatar Feb 22 '22 09:02 da-ekchajzer

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

benjaminlebigot avatar Mar 18 '22 10:03 benjaminlebigot

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

Vic063 avatar Mar 18 '22 11:03 Vic063

https://github.com/lyonel/lshw/tree/master/src manuf.txt

benjaminlebigot avatar Mar 18 '22 11:03 benjaminlebigot

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

samuelrince avatar Mar 18 '22 11:03 samuelrince

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'}}}

bpetit avatar Mar 24 '22 14:03 bpetit

@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 ?

bpetit avatar Apr 07 '22 13:04 bpetit

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 avatar Apr 09 '22 09:04 bpetit

@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.

Vic063 avatar Apr 09 '22 11:04 Vic063

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.

samuelrince avatar Apr 09 '22 14:04 samuelrince

an interessting piece of code to look at : https://github.com/openSUSE/hwinfo

bpetit avatar Apr 13 '22 11:04 bpetit

another one : https://github.com/lpereira/hardinfo/

bpetit avatar Apr 13 '22 11:04 bpetit