helloSystem / ISO

helloSystem Live and installation ISO
https://github.com/helloSystem/
BSD 3-Clause "New" or "Revised" License
807 stars 58 forks source link

ELAN Touchpad broken (regression) #120

Open probonopd opened 3 years ago

probonopd commented 3 years ago

Acer TravelMate B. Related to iichid? When it is working then both iichid.ko and iicbus.ko are loaded.

Broken as of 0cdf69f It was still working e.g., in 28471f0

probonopd commented 3 years ago

Currently touchpad is broken for (at least) Synaptic and Elan devices (e.g, in MacBookPro7,1 and Acer TravelMate B).

Strangely, nomadbsd-1.4.img.lzma (also based on 12.2) also does not have working touchpad for Synaptic and Elan devices. Hence we should go back to what we had in 0.4.0 before we started using load_iichid.

Unfortunately https://github.com/wulf7/iichid is too vague about how to install and enable this in "the one proper way" and has phrases like "genarally you should load iichid.ko from bootloader"...

...but then, "genarally you shouldn't load anything from the bootloader that isn't strictly required from booting.

Plan of action

Remove

Enable

kld_list="fuse ig4 iicbus iichid utouch asmc"
# kld_list (str) A list of kernel modules to load right after the local
# disks are mounted. Loading modules at this point in the boot
# process is much faster than doing it via /boot/loader.conf
# for those modules not necessary for mounting local disk.

Potential fallback

if people complain try this next :

https://github.com/helloSystem/ISO/commit/a758032490fe20ff464ae84cbcb0f426ec334f0e#diff-a4bd6792f727a57b0487cdbc254effcb749cd24b2e3b62bec5f9faa6883d308b

# https://github.com/wulf7/iichid#usbhid
# "genarally you should load iichid.ko from bootloader"
/boot/boot/loader.conf 
# Add support for I2C devices
ig4_load="YES"
iicbus_load="YES"
iichid_load="YES"
probonopd commented 3 years ago

Seems to work for me again in 0E30.

LillyWho commented 3 years ago

Just tested the latest experimental release on Acer Aspire V3 371 which has got an i2c PS2 hybrid touchpad from ELAN (mode chosen according to which OS is reported to ACPI) and it doesn't work. At least not out of the box and I've no OS that can edit the flash drive that I burned with Etcher to experiment with loader.conf.

probonopd commented 3 years ago

"i2c PS2 hybrid" devices seem to be the ones that are not working yet. We will have to try whether the "Potential fallback" described above would help for those devices.

LillyWho commented 3 years ago

"i2c PS2 hybrid" devices seem to be the ones that are not working yet. We will have to try whether the "Potential fallback" described above would help for those devices.

I think linux has got a kernel cmdline parameter to spoof an OS to ACPI. If FreeBSD has got that as well, it might be worth trying that out. I know how my Laptop's ACPI reacts to the different variables stored from an odyssey with trying to get VoodooPS2 to work on macOS, so whatever mode is most compatible I could probably set them by spoofing the OS. Weirdly enough it goes into pure PS2 mode if Windows 8 is detected. Heck, I could even mod the DSDT to include FreeBSD in the OSYS check with Windows2012 hex values returned to the ACPI. Just needs a bootloader to load the .aml.

probonopd commented 3 years ago

Looks like the FreeBSD bootloader is capable of doing that by editing /boot/loader.conf:

Variable Description
acpi_dsdt_load="YES" DSDT Overriding
acpi_dsdt_name="/boot/acpi_dsdt.aml" Override DSDT in BIOS by this file
acpi_video_load="NO" Load the ACPI video extension driver

Source: https://wiki.ghostbsd.org/index.php//boot/defaults/loader.conf More information: https://www.freebsd.org/cgi/man.cgi?query=acpi&sektion=4

Also, Clover can load FreeBSD, please see https://github.com/helloSystem/ISO/issues/43 if you are interested in that.