t-8ch / linux-gigabyte-wmi-driver

Linux Driver for WMI on Gigabyte Mainboards. LEGACY. New development happens in mainline Linux.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/platform/x86/gigabyte-wmi.c
30 stars 4 forks source link

Does this WMI-Driver work with Gigabyte B550M DS3H AC motherboard? #11

Open ipsmile opened 2 years ago

ipsmile commented 2 years ago

Motherboard: Gigabyte "B550M DS3H AC" CPU: AMD Ryzen 5 5600G OS: Linux Mint 20.3

Does this WMI-Driver work with Gigabyte B550M DS3H AC motherboard? If so, how to get it to work? Thanks.

I added:

    { .matches = {
    DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "Gigabyte Technology Co., Ltd."),
    DMI_EXACT_MATCH(DMI_BOARD_NAME, "B550M DS3H AC"),
}},

in "static const struct dmi_system_id gigabyte_wmi_known_working_platforms[] = {" of the "gigabyte-wmi.c" code, the "make" yields:

make -C /lib/modules/uname -r/build M=$PWD modules make[1]: Entering directory '/usr/src/linux-headers-5.13.0-30-generic' make[1]: No rule to make target 'Drivers/B550M-DS3H/linux-gigabyte-wmi-driver-main'. Stop. make[1]: Leaving directory '/usr/src/linux-headers-5.13.0-30-generic' make: [Makefile:12: modules] Error 2

and I can't go any further.

Appreciate any comments, thoughts, and directions.

Thanks,

Ip

t-8ch commented 2 years ago

@ipsmile Instead of using this repository you should use the version from upstream Linux.

Try to execute modprobe gigabyte-wmi force-load=1 and look at the output of dmesg and cat /sys/class/hwmon/hwmon*/name. It works with B550M DS3H so it very well also work with yours.

t-8ch commented 2 years ago

@ipsmile Did it work?

DavidMndz commented 2 years ago

Hello,

I tried the 'modprobe gigabyte-wmi force-load=1' as well for a B560M DS3H V2, but nothing happens at all and nothing is shown in the dmesg or anywhere else.

Here below are some details from the system, running a Debian (Proxmox version), just in case someone can help about what might be missing.

# lsmod | grep -i wmi
intel_wmi_thunderbolt    20480  0
wmi_bmof               16384  0
gigabyte_wmi           20480  0
wmi                    32768  3 intel_wmi_thunderbolt,gigabyte_wmi,wmi_bmof
# 
# grep . /sys/class/dmi/id/* 2> /dev/null 
/sys/class/dmi/id/bios_date:11/03/2021
/sys/class/dmi/id/bios_release:5.19
/sys/class/dmi/id/bios_vendor:American Megatrends International, LLC.
/sys/class/dmi/id/bios_version:F4
/sys/class/dmi/id/board_asset_tag:Default string
/sys/class/dmi/id/board_name:B560M DS3H V2
/sys/class/dmi/id/board_serial:Default string
/sys/class/dmi/id/board_vendor:Gigabyte Technology Co., Ltd.
/sys/class/dmi/id/board_version:x.x
/sys/class/dmi/id/chassis_asset_tag:Default string
/sys/class/dmi/id/chassis_serial:Default string
/sys/class/dmi/id/chassis_type:3
/sys/class/dmi/id/chassis_vendor:Default string
/sys/class/dmi/id/chassis_version:Default string
/sys/class/dmi/id/modalias:dmi:bvnAmericanMegatrendsInternational,LLC.:bvrF4:bd11/03/2021:br5.19:svnGigabyteTechnologyCo.,Ltd.:pnB560MDS3HV2:pvrDefaultstring:rvnGigabyteTechnologyCo.,Ltd.:rnB560MDS3HV2:rvrx.x:cvnDefaultstring:ct3:cvrDefaultstring:skuDefaultstring:
/sys/class/dmi/id/product_family:B560 MB
/sys/class/dmi/id/product_name:B560M DS3H V2
/sys/class/dmi/id/product_serial:Default string
/sys/class/dmi/id/product_sku:Default string
/sys/class/dmi/id/product_uuid:035e02d8-04d3-05a4-a306-1f0700080009
/sys/class/dmi/id/product_version:Default string
/sys/class/dmi/id/sys_vendor:Gigabyte Technology Co., Ltd.
/sys/class/dmi/id/uevent:MODALIAS=dmi:bvnAmericanMegatrendsInternational,LLC.:bvrF4:bd11/03/2021:br5.19:svnGigabyteTechnologyCo.,Ltd.:pnB560MDS3HV2:pvrDefaultstring:rvnGigabyteTechnologyCo.,Ltd.:rnB560MDS3HV2:rvrx.x:cvnDefaultstring:ct3:cvrDefaultstring:skuDefaultstring:
# 

I read in the https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/platform/x86/gigabyte-wmi.c that the exact name for the B560 does not include the V2 at the end, might that be the case? If so, any idea about how to make this working?

Also, I read about forcing the ID of the motherboard to pretend be another one supported, but not sure if that is still valid or how I can do it.

Anyone that could help please?

t-8ch commented 2 years ago

@DavidMndz Please try to first unload the module before reloading it with the force_load parameter.

modprobe -r gigabyte_wmi
modprobe gigabyte_wmi force_load=1
dmesg
DavidMndz commented 2 years ago

Hello @t-8ch,

you were completely right, I missed the removal step! Now it is working as expected, thank you very much, really (really!) appreciated your help.

# dmesg -T | tail
[Tue Jul 19 23:24:50 2022] gigabyte-wmi DEADBEEF-2001-0000-00A0-C90629100000: Forcing load on unknown platform
#
# sensors
coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +34.0°C  (high = +100.0°C, crit = +100.0°C)
Core 0:        +33.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:        +32.0°C  (high = +100.0°C, crit = +100.0°C)
Core 2:        +31.0°C  (high = +100.0°C, crit = +100.0°C)
Core 3:        +32.0°C  (high = +100.0°C, crit = +100.0°C)
Core 4:        +34.0°C  (high = +100.0°C, crit = +100.0°C)
Core 5:        +33.0°C  (high = +100.0°C, crit = +100.0°C)

acpitz-acpi-0
Adapter: ACPI interface
temp1:        +16.8°C  (crit = +20.8°C)
temp2:        +16.8°C  (crit = +20.8°C)
temp3:        +27.8°C  (crit = +105.0°C)

gigabyte_wmi-virtual-0
Adapter: Virtual device
temp1:        +36.0°C  
temp2:        +42.0°C  
temp3:        +34.0°C  
temp4:        +40.0°C  
temp5:        +49.0°C  
temp6:        +37.0°C  

nvme-pci-0100
Adapter: PCI adapter
Composite:    +42.9°C  (low  = -273.1°C, high = +81.8°C)
                       (crit = +84.8°C)
Sensor 1:     +42.9°C  (low  = -273.1°C, high = +65261.8°C)
Sensor 2:     +53.9°C  (low  = -273.1°C, high = +65261.8°C)

# 
t-8ch commented 2 years ago

@DavidMndz Nice! Now the board should be included in the upstream driver as supported. Do you think you can send a patch adding an entry to the list?

DavidMndz commented 2 years ago

@DavidMndz Nice! Now the board should be included in the upstream driver as supported. Do you think you can send a patch adding an entry to the list?

Hi @t-8ch,

I am more than happy to do it, but I am not familiar to this. Is how to do this anywhere documented please?

Regarding the PWM, I guess this driver is not intended to get the sensors for PWM listed as well, am I correct? I tried to run the pwmconfig but it says that 'There are no pwm-capable sensor modules installed'.

t-8ch commented 2 years ago

This is the official documentation: https://docs.kernel.org/#introduction-to-kernel-development An example patch would look like this: https://lore.kernel.org/all/20220705184407.14181-1-parherman@gmail.com/ (Please use git to generate and send the patch, also keep the list of supported boards sorted alphabetically, at least as sorted as currently)