How to get BIOS Device Name from Linux, same as Windows Device Manager format
3
votes
1
answer
3152
views
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
Asked by FlexMcMurphy
(433 rep)
Jun 7, 2021, 12:55 AM
Last activity: Jun 7, 2021, 10:41 PM
Last activity: Jun 7, 2021, 10:41 PM