Flashed UEFI full rom for Drallion(Dell Latitude Chromebook 7410). I am noticing a few issues. I am on Arch Linux.
No keyboard backlight support. The kernel does not see the keyboard backlight at all. It seems the backlight is controlled by the firmware/EC which brings me to my next issue
I cannot access the EC on this device. I have installed ectool and it reports
sudo ./ectool hello
Port 0x204,0x200 are both 0xFF.
Very likely this board doesn't have a Chromium EC.
Cannot find I2C adapter
Unable to establish host communication
Couldn't find EC
no matter which option I specify.
3. No fan support. The kernel does not see the fan and as mentioned above, I cannot troubleshoot with ectool
4. Certain keys do not register a keycode in xev(namely, f5, f6 for brightness)
Looks like Drallion uses a Dell EC. Explains why ectool does not work(obviously) and why cros kernel modules are not loaded by the kernel. No amount of coreboot config options can fix this. This boards EC is essentially unsupported on linux. Is there any way we can update the supported device page notes to reflect this? Linux technically works but, no working fan is kind of an issue. I would hate for others to experience the same issues with this board.
The default kernel does not automatically load the module on Arch. When trying to load it manually.
sudo modprobe -vvv wilco_ec
modprobe: INFO: custom logging function 0x60a1e5d58080 registered
insmod /lib/modules/6.11.3-arch1-1/kernel/drivers/platform/chrome/cros_ec_lpcs.ko.zst force
modprobe: INFO: Failed to insert module '/lib/modules/6.11.3-arch1-1/kernel/drivers/platform/chrome/cros_ec_lpcs.ko.zst': No such device
modprobe: ERROR: could not insert 'wilco_ec': No such device
modprobe: INFO: context 0x60a2019c1430 released
sudo modprobe -vvv cros_ec_lpcs
modprobe: INFO: custom logging function 0x6059f1905080 registered
insmod /lib/modules/6.11.3-arch1-1/kernel/drivers/platform/chrome/cros_ec_lpcs.ko.zst force
modprobe: INFO: Failed to insert module '/lib/modules/6.11.3-arch1-1/kernel/drivers/platform/chrome/cros_ec_lpcs.ko.zst': No such device
modprobe: ERROR: could not insert 'cros_ec_lpcs': No such device
modprobe: INFO: context 0x605a07f62430 released
Any idea why? Could this firmware binary load error in dmesg be related?
[ 3.066218] ish-loader {C804D06A-55BD-4EA7-ADED-1E31228C76DC}: Direct firmware load for intel/drallion_ish.bin failed with error -2
[ 3.066236] ish-loader {C804D06A-55BD-4EA7-ADED-1E31228C76DC}: ISH host firmware load failed -2
If this is not the right place for this, let me know.
I can confirm these were compiled as a module in the kernel. The issue is that the wilco_ec module cannot load cros_ec_lpcs as a dependency. cros_ec_lpcs reports it cannot load due to no compatible device existing on this machine. I could be wrong but, this seems like a hardware/firmware bug to me.
Looking at the wilco-ec code, it pulls in cros_lpc_mec.h from cros_ec_lpcs to “Initialize cros_ec register interface for communication”.
Looking at cros_ec_lpcs, it looks like it looks for cros_ec_lpc_acpi_device. It could be that the kernel does not fully recognize this laptop as a chromeos device/ec. For example chromeos_acpi is not automatically detected and loaded by the kernel. Loading cros* and chromeos* modules that would appear related for cros_ec_lpcs to function/load correctly do not help. I doubt this is distribution specific but I would need to test in order to make that claim. Just not sure how else to debug from here. Appreciate your time.
Drallion doesn’t use a ChromeEC, doesn’t have the ACPI structures to load those drivers. The Wilco EC has the following ACPI devices:
GOOG000A
GOOG000C
GOOG000D
GOOG000E
Kernel driver drivers/platform/chrome/wilco_ec/core.c looks for GOOG000C as the match, so that’s not problematic. It uses cros_ec_lpc_mec for some I/O, but that doesn’t depend on cros_ec_lpcs.
Thank you for clearing that up. I have reached out to the module authors. Definitely not a firmware bug. Apologies for assuming so. As always, it’s the driver. Appreciate your time on this.
I haven’t been able to find anything specific with a quick glance at the source, but my suspicion is that the kernel devs coupled the cros_ec_lpcs and cros_ec_lpc_mec modules even though they are meant to be independent, and that wilco_ec used to only depend on cros_ec_lpc_mec, but now has a dependency on cros_ec_lpcs which can never be satisfied
That seems apparent considering you cannot compile wilco_ec as a module unless its’ “dependency” of cros_ec_lpcs and by extension, cros_ec is additionally compiled as a module.
I have reached out to the module authors. Hopefully we can get some answers here. If I do not hear from them, I will open a kernel bug report.