Sample Header Ad - 728x90

Unix & Linux Stack Exchange

Q&A for users of Linux, FreeBSD and other Unix-like operating systems

Latest Questions

0 votes
0 answers
38 views
How can I enable support for the HMAT table?
I have access to a server and want to check its HMAT table. However, the HMAT table is not present (the SRAT and SLIT are though). I checked the Linux kernel config and the HMAT is enabled (`CONFIG_ACPI_HMAT=y` and `CONFIG_ACPI=y`). So probably the issue is with the hardware and firmware. Can I enab...
I have access to a server and want to check its HMAT table. However, the HMAT table is not present (the SRAT and SLIT are though). I checked the Linux kernel config and the HMAT is enabled (CONFIG_ACPI_HMAT=y and CONFIG_ACPI=y). So probably the issue is with the hardware and firmware. Can I enable the HMAT, and if so, how? Here's the server spec (let me know if more information is needed): $ uname -a Linux node0.acpi-tinkering-0.prismgt-pg0.clemson.cloudlab.us 5.15.0-122-generic #132-Ubuntu SMP Thu Aug 29 13:45:52 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux $ sudo dmidecode -t 2 # dmidecode 3.3 Getting SMBIOS data from sysfs. SMBIOS 3.3 present. Handle 0x0200, DMI type 2, 8 bytes Base Board Information Manufacturer: Dell Inc. Product Name: 024PW1 Version: A00 Serial Number: .13D52G3.CNIVC001610605. $ sudo dmidecode -t 0 # dmidecode 3.3 Getting SMBIOS data from sysfs. SMBIOS 3.3 present. Handle 0x0000, DMI type 0, 26 bytes BIOS Information Vendor: Dell Inc. Version: 2.8.4 Release Date: 06/23/2022 Address: 0xF0000 Runtime Size: 64 kB ROM Size: 32 MB Characteristics: ISA is supported PCI is supported PNP is supported BIOS is upgradeable BIOS shadowing is allowed Boot from CD is supported Selectable boot is supported EDD is supported Japanese floppy for Toshiba 1.2 MB is supported (int 13h) 5.25"/360 kB floppy services are supported (int 13h) 5.25"/1.2 MB floppy services are supported (int 13h) 3.5"/720 kB floppy services are supported (int 13h) 8042 keyboard services are supported (int 9h) Serial services are supported (int 14h) CGA/mono video services are supported (int 10h) ACPI is supported USB legacy is supported BIOS boot specification is supported Function key-initiated network boot is supported Targeted content distribution is supported UEFI is supported BIOS Revision: 2.8 sudo dmidecode -t 4 # dmidecode 3.3 Getting SMBIOS data from sysfs. SMBIOS 3.3 present. Handle 0x0400, DMI type 4, 48 bytes Processor Information Socket Designation: CPU1 Type: Central Processor Family: Zen Manufacturer: AMD ID: 11 0F A0 00 FF FB 8B 17 Signature: Family 25, Model 1, Stepping 1 Flags: FPU (Floating-point unit on-chip) VME (Virtual mode extension) DE (Debugging extension) PSE (Page size extension) TSC (Time stamp counter) MSR (Model specific registers) PAE (Physical address extension) MCE (Machine check exception) CX8 (CMPXCHG8 instruction supported) APIC (On-chip APIC hardware supported) SEP (Fast system call) MTRR (Memory type range registers) PGE (Page global enable) MCA (Machine check architecture) CMOV (Conditional move instruction supported) PAT (Page attribute table) PSE-36 (36-bit page size extension) CLFSH (CLFLUSH instruction supported) MMX (MMX technology supported) FXSR (FXSAVE and FXSTOR instructions supported) SSE (Streaming SIMD extensions) SSE2 (Streaming SIMD extensions 2) HTT (Multi-threading) Version: AMD EPYC 7543 32-Core Processor Voltage: 1.8 V External Clock: 16000 MHz Max Speed: 3900 MHz Current Speed: 2800 MHz Status: Populated, Enabled Upgrade: Socket SP3 L1 Cache Handle: 0x0700 L2 Cache Handle: 0x0701 L3 Cache Handle: 0x0702 Serial Number: Not Specified Asset Tag: Not Specified Part Number: Not Specified Core Count: 32 Core Enabled: 32 Thread Count: 64 Characteristics: 64-bit capable Multi-Core Hardware Thread Execute Protection Enhanced Virtualization Handle 0x0401, DMI type 4, 48 bytes Processor Information Socket Designation: CPU2 Type: Central Processor Family: Zen Manufacturer: AMD ID: 11 0F A0 00 FF FB 8B 17 Signature: Family 25, Model 1, Stepping 1 Flags: FPU (Floating-point unit on-chip) VME (Virtual mode extension) DE (Debugging extension) PSE (Page size extension) TSC (Time stamp counter) MSR (Model specific registers) PAE (Physical address extension) MCE (Machine check exception) CX8 (CMPXCHG8 instruction supported) APIC (On-chip APIC hardware supported) SEP (Fast system call) MTRR (Memory type range registers) PGE (Page global enable) MCA (Machine check architecture) CMOV (Conditional move instruction supported) PAT (Page attribute table) PSE-36 (36-bit page size extension) CLFSH (CLFLUSH instruction supported) MMX (MMX technology supported) FXSR (FXSAVE and FXSTOR instructions supported) SSE (Streaming SIMD extensions) SSE2 (Streaming SIMD extensions 2) HTT (Multi-threading) Version: AMD EPYC 7543 32-Core Processor Voltage: 1.8 V External Clock: 16000 MHz Max Speed: 3900 MHz Current Speed: 2800 MHz Status: Populated, Enabled Upgrade: Socket SP3 L1 Cache Handle: 0x0703 L2 Cache Handle: 0x0704 L3 Cache Handle: 0x0705 Serial Number: Not Specified Asset Tag: Not Specified Part Number: Not Specified Core Count: 32 Core Enabled: 32 Thread Count: 64 Characteristics: 64-bit capable Multi-Core Hardware Thread Execute Protection Enhanced Virtualization
Matteo (73 rep)
Dec 6, 2024, 07:34 PM
0 votes
1 answers
203 views
No CPU Information with dmidecode in VirtualBox on Linux Environment
**Description:** I am experiencing an issue with obtaining detailed CPU information using the `dmidecode` command on a Linux guest OS virtual machine running in VirtualBox. The `dmidecode` command provides only limited data, while other commands like `lscpu` and `cat /proc/cpuinfo` return complete C...
**Description:** I am experiencing an issue with obtaining detailed CPU information using the dmidecode command on a Linux guest OS virtual machine running in VirtualBox. The dmidecode command provides only limited data, while other commands like lscpu and cat /proc/cpuinfo return complete CPU details. **Steps to Reproduce:** 1. Install Debian11/12 or Ubuntu22.04 as a guest OS in VirtualBox. 2. Run the sudo dmidecode command to obtain hardware information. **Expected Results:** The dmidecode command should provide detailed CPU information similar to what is provided by lscpu and /proc/cpuinfo. **Actual Results:** The dmidecode command returns limited information, mostly related to the BIOS and basic system configuration. Detailed CPU information is not included. **Example Output:** Here is the output of the sudo dmidecode command on my Debian12 VM:
# dmidecode 3.4
Getting SMBIOS data from sysfs.
SMBIOS 2.5 present.
10 structures occupying 450 bytes.
Table at 0x000E1000.

Handle 0x0000, DMI type 0, 20 bytes
BIOS Information
    Vendor: innotek GmbH
    Version: VirtualBox
    Release Date: 12/01/2006
    Address: 0xE0000
    Runtime Size: 128 kB
    ROM Size: 128 kB
    Characteristics:
        ISA is supported
        PCI is supported
        Boot from CD is supported
        Selectable boot is supported
        8042 keyboard services are supported (int 9h)
        CGA/mono video services are supported (int 10h)
        ACPI is supported

Handle 0x0001, DMI type 1, 27 bytes
System Information
    Manufacturer: innotek GmbH
    Product Name: VirtualBox
    Version: 1.2
    Serial Number: 0
    UUID: e83f6988-828d-5142-a0e2-2bca4c199fc3
    Wake-up Type: Power Switch
    SKU Number: Not Specified
    Family: Virtual Machine

Handle 0x0008, DMI type 2, 15 bytes
Base Board Information
    Manufacturer: Oracle Corporation
    Product Name: VirtualBox
    Version: 1.2
    Serial Number: 0
    Asset Tag: Not Specified
    Features:
        Board is a hosting board
    Location In Chassis: Not Specified
    Chassis Handle: 0x0003
    Type: Motherboard
    Contained Object Handles: 0

Handle 0x0003, DMI type 3, 13 bytes
Chassis Information
    Manufacturer: Oracle Corporation
    Type: Other
    Lock: Not Present
    Version: Not Specified
    Serial Number: Not Specified
    Asset Tag: Not Specified
    Boot-up State: Safe
    Power Supply State: Safe
    Thermal State: Safe
    Security Status: None

Handle 0x0007, DMI type 126, 42 bytes
Inactive

Handle 0x0005, DMI type 126, 15 bytes
Inactive

Handle 0x0006, DMI type 126, 28 bytes
Inactive

Handle 0x0002, DMI type 11, 7 bytes
OEM Strings
    String 1: vboxVer_6.1.50
    String 2: vboxRev_161033

Handle 0x0004, DMI type 128, 8 bytes
OEM-specific Type
    Header and Data:
        80 08 04 00 FF C5 2A 00

Handle 0xFEFF, DMI type 127, 4 bytes
End Of Table
**Commands That Work:** The following commands provide complete CPU details: - lscpu - cat /proc/cpuinfo **Example lscpu Output:**
root@faiserver:~# lscpu
Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         39 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  1
  On-line CPU(s) list:   0
Vendor ID:               GenuineIntel
  Model name:            11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
    BIOS Model name:       CPU @ 0.0GHz
    BIOS CPU family:     0
    CPU family:          6
    Model:               140
    Thread(s) per core:  1
    Core(s) per socket:  1
    Socket(s):           1
    Stepping:            1
    BogoMIPS:            5606.39
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse ss
                         e2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_fre
                         q pni pclmulqdq monitor ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx rdrand
                         hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase avx2 invpcid rdseed clflushopt
                          md_clear flush_l1d arch_capabilities
Virtualization features:
  Hypervisor vendor:     KVM
  Virtualization type:   full
Caches (sum of all):
  L1d:                   48 KiB (1 instance)
  L1i:                   32 KiB (1 instance)
  L2:                    1.3 MiB (1 instance)
  L3:                    12 MiB (1 instance)
NUMA:
  NUMA node(s):          1
  NUMA node0 CPU(s):     0
Vulnerabilities:
  Gather data sampling:  Unknown: Dependent on hypervisor status
  Itlb multihit:         KVM: Mitigation: VMX unsupported
  L1tf:                  Mitigation; PTE Inversion
  Mds:                   Mitigation; Clear CPU buffers; SMT Host state unknown
  Meltdown:              Mitigation; PTI
  Mmio stale data:       Not affected
  Retbleed:              Not affected
  Spec rstack overflow:  Not affected
  Spec store bypass:     Vulnerable
  Spectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:            Mitigation; Retpolines, STIBP disabled, RSB filling, PBRSB-eIBRS Not affected
  Srbds:                 Not affected
  Tsx async abort:       Not affected
root@faiserver:~#
**Example /proc/cpuinfo Output:**
root@faiserver:~# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 140
model name      : 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
stepping        : 1
cpu MHz         : 2803.198
cache size      : 12288 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 22
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq monitor ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase avx2 invpcid rdseed clflushopt md_clear flush_l1d arch_capabilities
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit gds
bogomips        : 5606.39
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:
root@faiserver:~#
**Request for Assistance:** - Is there a way to configure VirtualBox to expose more detailed SMBIOS information to the guest OS? - Are there any settings or additional steps that can be taken to enable dmidecode to retrieve full CPU information in a VirtualBox VM? - Any insights or suggestions to address this issue would be greatly appreciated. Thank you for your assistance.
Samadhan Fuke (21 rep)
Jun 23, 2024, 10:08 AM • Last activity: Jul 14, 2024, 12:20 PM
188 votes
10 answers
481743 views
How can I find the hardware model in Linux?
I used a system information utility to take the model number of a system, and also of the motherboard. DMI System Manufacturer LENOVO DMI System Product 2306CTO DMI System Version ThinkPad X230 DMI Motherboard Product 2306CTO Is there a way to get model number, in this case `2306CTO`, in Linux?
I used a system information utility to take the model number of a system, and also of the motherboard. DMI System Manufacturer LENOVO DMI System Product 2306CTO DMI System Version ThinkPad X230 DMI Motherboard Product 2306CTO Is there a way to get model number, in this case 2306CTO, in Linux?
Eduard Florinescu (12413 rep)
May 14, 2013, 08:52 AM • Last activity: May 5, 2024, 07:10 PM
3 votes
1 answers
1758 views
How to find the kernel boot parameter for a given boot configuration option?
I have a Dell laptop running Debian Sid. Current kernel (4.15.4) is configured to load `dell_smbios` as module (`CONFIG_DELL_SMBIOS=m`). This produces the followning error while booting dell_smbios: No dell-smbios drivers are loaded I want to add a kernel boot parameter to stop dell-smbios from bein...
I have a Dell laptop running Debian Sid. Current kernel (4.15.4) is configured to load dell_smbios as module (CONFIG_DELL_SMBIOS=m). This produces the followning error while booting dell_smbios: No dell-smbios drivers are loaded I want to add a kernel boot parameter to stop dell-smbios from being loaded. Something like dell_smbios=off (Used to diable ACPI, i.e acpi=off) or dell_smbios.disable=1 (Used to disable IPv6, i.e ipv6.disable=1). So how do I know the specific kernel boot parameter for a given configuration option in the config file in /boot directory?
Manoj (171 rep)
Mar 4, 2018, 03:00 PM • Last activity: Nov 4, 2023, 12:09 AM
0 votes
1 answers
290 views
How to find system bios address in linux
I want to do some interaction with bios of a embedded linux on an AMD Ryzen embedded platform. The main tool I think is `flashrom` which can read/write flash chips. It should also be possible to write data to flash rom using something like `dd` if the address of the chip in memory is known? Is this...
I want to do some interaction with bios of a embedded linux on an AMD Ryzen embedded platform. The main tool I think is flashrom which can read/write flash chips. It should also be possible to write data to flash rom using something like dd if the address of the chip in memory is known? Is this the correct way to look for system bios: root@device:~/bios# grep ROM /proc/iomem 000c0000-000cd3ff : Video ROM 000f0000-000fffff : System ROM If I look for the rom using flashrom tool I get the following: root@device:~/bios# flashrom -p internal --flash-name flashrom v1.2 on Linux 5.4.199 (x86_64) flashrom is free software, get the source code at https://flashrom.org Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns). Found chipset "AMD FP4". Enabling flash write... OK. Found Winbond flash chip "W25Q64.W" (8192 kB, SPI) mapped at physical address 0x00000000ff800000. vendor="Winbond" name="W25Q64.W" So the iomem says the chip is at 000f0000-000fffff and flashrom is saying he chip is at 0x00000000ff800000 Which one is correct, or better yet, why these are not identical?
DEKKER (998 rep)
Mar 1, 2023, 10:27 AM • Last activity: Mar 1, 2023, 12:14 PM
3 votes
1 answers
3152 views
How to get BIOS Device Name from Linux, same as Windows Device Manager format
My laptop has a display adapter and from Windows 10 I can see its **BIOS Device Name** from.. Device Manager > Display Adapters > Properties > Details > "BIOS device name" And from there I get a pop up window saying something like: `\_SB.PCI0.GFX0` How can I get that information if the same laptop i...
My laptop has a display adapter and from Windows 10 I can see its **BIOS Device Name** from.. Device Manager > Display Adapters > Properties > Details > "BIOS device name" And from there I get a pop up window saying something like: \_SB.PCI0.GFX0 How can I get that information if the same laptop is running Linux? Cheers Update ------ I need this information because I am building a hackintosh and need to build a SSDT to create a display backlight fix. I would like to help out at the [Opencore project](https://dortania.github.io/OpenCore-Install-Guide/) and provide a method to do this in Linux as currently [the only method](https://dortania.github.io/Getting-Started-With-ACPI/Laptops/backlight-methods/manual.html) is to switch in to Windows and use Device Manager I tried dmidecode and lspci and they don't give me a BIOS device name in the format that Windows does and is needed to create the SSDT. I tried [acpidump](https://01.org/linux-acpi/utilities) and it's getting me closer but the decompiled output has disassembly errors. It contains the string I am looking for \_SB.PCI0.GFX0 but I don't know how I would create a script to read that file and correlate it to my particular display adapter. e.g: Intel(R) HD Graphics 4000. These are the commands I have tried so far with acpidump I dump the ACPI tables from my system to a text file: sudo acpidump -o acpidump.out Extract the binary ACPI tables from acpidump output acpixtract -a acpidump.out I now have seven ssdt*.data files. I disassemble the binary table of ssdt1.dat into human source iasl -d ssdt1.dat This gives a large .dsl file, this is just the first 60 lines of over a thousand.. /* * Intel ACPI Component Architecture * AML/ASL+ Disassembler version 20190509 (64-bit version) * Copyright (c) 2000 - 2019 Intel Corporation * * Disassembling to symbolic ASL+ operators * * Disassembly of ssdt1.dat, Mon Jun 7 09:54:08 2021 * * Original Table Header: * Signature "SSDT" * Length 0x00001EED (7917) * Revision 0x01 * Checksum 0x9C * OEM ID "COMPAL" * OEM Table ID "CRV ORB " * OEM Revision 0x00001000 (4096) * Compiler ID "ACPI" * Compiler Version 0x00040000 (262144) */ DefinitionBlock ("", "SSDT", 1, "COMPAL", "CRV ORB ", 0x00001000) { /* * iASL Warning: There was 1 external control method found during * disassembly, but only 0 were resolved (1 unresolved). Additional * ACPI tables may be required to properly disassemble the code. This * resulting disassembler output file may not compile because the * disassembler did not know how many arguments to assign to the * unresolved methods. Note: SSDTs can be dynamically loaded at * runtime and may or may not be available via the host OS. * * To specify the tables needed to resolve external control method * references, the -e option can be used to specify the filenames. * Example iASL invocations: * iasl -e ssdt1.aml ssdt2.aml ssdt3.aml -d dsdt.aml * iasl -e dsdt.aml ssdt2.aml -d ssdt1.aml * iasl -e ssdt*.aml -d dsdt.aml * * In addition, the -fe option can be used to specify a file containing * control method external declarations with the associated method * argument counts. Each line of the file must be of the form: * External (, MethodObj, ) * Invocation: * iasl -fe refs.txt -d dsdt.aml * * The following methods were unresolved and many not compile properly * because the disassembler had to guess at the number of arguments * required for each: */ External (_SB_.PCI0.GFX0, DeviceObj) External (_SB_.PCI0.GFX0._DOD, IntObj) External (_SB_.PCI0.GFX0.AINT, MethodObj) // Warning: Unknown method, guessing 2 arguments External (_SB_.PCI0.GFX0.DD01._ADR, IntObj) External (_SB_.PCI0.GFX0.DD01._DGS, IntObj) External (_SB_.PCI0.GFX0.DD02._ADR, IntObj) External (_SB_.PCI0.GFX0.DD02._BCL, IntObj) External (_SB_.PCI0.GFX0.DD02._BCM, IntObj) External (_SB_.PCI0.GFX0.DD02._BQC, IntObj) I think maybe I need to dissasemble ssdt1.dat such that I don't get disassembly errors and then is there a way to search that disassembled file for a device by a name like 'Intel(R) HD Graphics 4000' or that would at least be obvious this is the BIOS Device Name for my display adapter? Maybe dmidecode, lspci and acpidump can all be combined into a script? Any other help much appreciated. Flex
FlexMcMurphy (433 rep)
Jun 7, 2021, 12:55 AM • Last activity: Jun 7, 2021, 10:41 PM
2 votes
0 answers
829 views
DMI table unreliable?
From the `dmidecode` [man page][1] : > the presented information [is] possibly unreliable. They also add: > More often than not, information contained in the DMI tables is inaccurate, incomplete or simply wrong. [Here is an example ][2] where the DMI table data differs from using other PCI utilities...
From the dmidecode man page : > the presented information [is] possibly unreliable. They also add: > More often than not, information contained in the DMI tables is inaccurate, incomplete or simply wrong. Here is an example where the DMI table data differs from using other PCI utilities. Under what circumstances is data in the DMI table inaccurate?
Chris (21 rep)
Nov 9, 2019, 09:45 PM
12 votes
3 answers
23704 views
How to clear / reset smart battery memory?
So, I got a new battery for my laptop, and right from the get go, I'm having problems. The battery came almost entirely discharged from the manufacturer. I plugged it into my computer and the batter would report that the charge rate is 0, and hence would never reach "fully charged" After a couple mi...
So, I got a new battery for my laptop, and right from the get go, I'm having problems. The battery came almost entirely discharged from the manufacturer. I plugged it into my computer and the batter would report that the charge rate is 0, and hence would never reach "fully charged" After a couple minutes and having X11 crash, I'm now at this (upower -i /org/freedesktop/UPower/devices/battery_BAT0): native-path: BAT0 vendor: Hewlett-Packard model: Primary power supply: yes updated: Fri 21 Oct 2016 08:28:33 AM CEST (106 seconds ago) has history: yes has statistics: yes battery present: yes rechargeable: yes state: charging warning-level: none energy: 17.8704 Wh energy-empty: 0 Wh energy-full: 24.192 Wh energy-full-design: 95.04 Wh energy-rate: 0.0996923 W voltage: 15.947 V percentage: 73% capacity: 25.4545% technology: lithium-ion icon-name: 'battery-full-charging-symbolic' So the battery is charging, the energy capacity is only about a quarter of what it was designed (even though the battery is only a couple days old), it sits at 73%, and the charge rate is so small, it doesn't even report how much it'd take till fully charged. Now, I know you can kinda "calibrate" a battery, by charging it for a couple hours, then letting it run flat, and then charge it up again. This doesn't seem to be the right way to do, though. I'm wondering if I can't access the smart data directly, via the SMBus . i2cdetect -l reports: i2c-0 smbus SMBus I801 adapter at 8000 SMBus adapter i2c-1 i2c NVIDIA i2c adapter 0 at 1:00.0 I2C adapter i2c-2 i2c NVIDIA i2c adapter 2 at 1:00.0 I2C adapter i2c-3 i2c NVIDIA i2c adapter 3 at 1:00.0 I2C adapter i2c-4 i2c NVIDIA i2c adapter 5 at 1:00.0 I2C adapter So, I tried probing SMBus (i2cdetect -r 0): WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe file /dev/i2c-0 using read byte commands. I will probe address range 0x03-0x77. Continue? [Y/n] y 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- This is quite strange to me, does that mean there's nothing connected to the bus? No matter which address I'm trying to dump, the result is always the same: i2cdump 0 0x03 (all other valid addresses produce the same output): No size specified (using byte-data access) WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe file /dev/i2c-0, address 0x1a, mode byte Continue? [Y/n] y 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef 00: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX 10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX 20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX 30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX 40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX 50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX 60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX 70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX 80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX 90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX That's how far I got. The system gets it's battery information from *somewhere*, but I can't figure out how and from where. As for the I²C / SMBus access to the battery: no idea if I'm doing something wrong, or it's impossible like that. I'd like to know how to access smart battery data, how to set it (presumably with i2cset), and possibly how it's formatted (what data encodes which information, etc.) ------- acpi -V is even more confused: Battery 0: Unknown, 73% Battery 0: design capacity 6600 mAh, last full capacity 1680 mAh = 25% Adapter 0: on-line *(design capacity reported incorrectly, etc.)* ------- Last bit of information I can come up with, is dmidecode output: Handle 0x0010, DMI type 39, 22 bytes System Power Supply Location: OEM_Define0 Name: OEM_Define1 Manufacturer: OEM_Define2 Serial Number: OEM_Define2 Asset Tag: OEM_Define3 Model Part Number: OEM_Define4 Revision: OEM_Define5 Max Power Capacity: 75 W Status: Present, OK Type: Regulator Input Voltage Range Switching: Auto-switch Plugged: No Hot Replaceable: No You can see all these "OEM_Define2", etc. strings in there, that aren't telling much. dmidecode -t connector reports: Getting SMBIOS data from sysfs. SMBIOS 2.4 present.
polemon (11921 rep)
Oct 21, 2016, 07:02 AM • Last activity: Dec 1, 2018, 11:32 PM
24 votes
3 answers
15293 views
Is it possible to find the physical address range of a DIMM?
I note that SMBios Type 20 would help here, but it's optional as of version [2.5 (2006-09-05) pp. 25, L796, and pp. 131 ][1], whereas types 16, 17 and 19 are mandatory, but don't quite help. ### Physical Memory Array (Type 16) There is one of these structures for the entire system, explaining what i...
I note that SMBios Type 20 would help here, but it's optional as of version 2.5 (2006-09-05) pp. 25, L796, and pp. 131 , whereas types 16, 17 and 19 are mandatory, but don't quite help. ### Physical Memory Array (Type 16) There is one of these structures for the entire system, explaining what is possible on this board. Handle 0x1000, DMI type 16, 23 bytes Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: Multi-bit ECC Maximum Capacity: 768 GB Error Information Handle: Not Provided Number Of Devices: 24 ### Memory Device (Type 17) There is one record per each Dimm, which tells you the physical Dimms installed on the board. Handle 0x1100, DMI type 17, 34 bytes Memory Device Array Handle: 0x1000 Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 2048 MB Form Factor: DIMM Set: 1 Locator: DIMM_A1 Bank Locator: Not Specified Type: DDR3 Type Detail: Synchronous Registered (Buffered) Speed: 1600 MHz Manufacturer: XXXX Serial Number: XXXX Asset Tag: XXXX Part Number: XXXX Rank: 1 Configured Clock Speed: 1333 MHz ### Memory Array Mapped Address (Type 19) There can be multiple of these records, and each record lists a range of physical addresses. Here is the output with two 2GB sticks: Handle 0x1300, DMI type 19, 31 bytes Memory Array Mapped Address Starting Address: 0x00000000000 Ending Address: 0x000CFFFFFFF Range Size: 3328 MB Physical Array Handle: 0x1000 Partition Width: 2 Handle 0x1301, DMI type 19, 31 bytes Memory Array Mapped Address Starting Address: 0x00100000000 Ending Address: 0x0012FFFFFFF Range Size: 768 MB Physical Array Handle: 0x1000 Partition Width: 2 And here is the output with 4 sticks; 2*2GB and 2*4GB: Handle 0x1300, DMI type 19, 31 bytes Memory Array Mapped Address Starting Address: 0x00000000000 Ending Address: 0x000CFFFFFFF Range Size: 3328 MB Physical Array Handle: 0x1000 Partition Width: 2 Handle 0x1301, DMI type 19, 31 bytes Memory Array Mapped Address Starting Address: 0x00100000000 Ending Address: 0x0032FFFFFFF Range Size: 8960 MB Physical Array Handle: 0x1000 Partition Width: 2 Note that in the first sample output above, there were two 2GB DIMMs, but two ranges of 3.3GB and 0.7GB. With 4 Dimms, the system will also coalesce the memory array mapped address region into two chunks, as it is just representing the same as the e820 map, i.e. the valid memory physical address ranges. 1 to many Type 20 records are tied to exactly one type 17 memory device, meaning that the entire physical range can be known: ### Example $ sudo dmidecode -t 20 # dmidecode 2.12 SMBIOS 2.6 present. Handle 0x002F, DMI type 20, 19 bytes Memory Device Mapped Address Starting Address: 0x00000000000 Ending Address: 0x000FFFFFFFF Range Size: 4 GB Physical Device Handle: 0x002B Memory Array Mapped Address Handle: 0x002E Partition Row Position: 1 Handle 0x0030, DMI type 20, 19 bytes Memory Device Mapped Address Starting Address: 0x00100000000 Ending Address: 0x001FFFFFFFF Range Size: 4 GB Physical Device Handle: 0x002C Memory Array Mapped Address Handle: 0x002E Partition Row Position: 1 It seems possible to go from address to DIMM for EDAC - Error Detection & Correction purposes, but not from DIMM to entire range. Looking at the source code of mcelog , it is also using type 20 for its decoding.
Alun (409 rep)
Jan 6, 2014, 06:39 AM • Last activity: Dec 24, 2017, 04:34 AM
Showing page 1 of 9 total questions