Hello,
I tried to apply the I2C probe from Pilot6 link above
(https://github.com/bentiss/SimplePeripheralBusProbe).
Unfortunatelly I couldn't make it work. I was able to overload my DSDT
table and compile it (using Intel iasl.exe as Microsoft's asl.exe
generated a file which produced lots of errors at compile time). And
then I even got the I2C Probe device in my Device Manager (installed the
binary inf/sys driver that you can download from the releases page, no
compilation needed). But I couldn't manage to modify the DSDT table file
for this particular device, in order to bypass the ELAN touchpad/numpad
through the I2C probe.
Maybe someone with some experience in this I2C stuff can help me to
modify that DSDT table file properly. This is the section I suppose
refers to the ELAN touchpad (the complete file has nearly 70.000 lines):
Scope (_SB.PCI0.I2C1)
{
Device (ETPD)
{
Name (SBFB, ResourceTemplate ()
{
I2cSerialBusV2 (0x004C, ControllerInitiated, 0x00061A80,
AddressingMode7Bit, "\\_SB.PCI0.I2C1",
0x00, ResourceConsumer, _Y34, Exclusive,
)
})
Name (SBFI, ResourceTemplate ()
{
Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
{
0x0000005F,
}
})
CreateWordField (SBFB, \_SB.PCI0.I2C1.ETPD._Y34._ADR, BADR) //
_ADR: Address
Name (_ADR, One) // _ADR: Address
Name (ETPH, Package (0x01)
{
"ELAN1404"
})
Name (FTPH, Package (0x05)
{
"FTE1001",
"FTE1200",
"FTE1200",
"FTE1300",
"FTE1300"
})
Method (_HID, 0, NotSerialized) // _HID: Hardware ID
{
If ((TPDI & 0x04))
{
BADR = 0x15
Return (DerefOf (ETPH [TPHI]))
}
If ((TPDI & 0x10))
{
BADR = 0x15
Return (DerefOf (FTPH [TPHI]))
}
Return ("ELAN1000")
}
Name (_CID, "PNP0C50" /* HID Protocol Device (I2C bus) */) //
_CID: Compatible ID
Name (_UID, One) // _UID: Unique ID
Name (_S0W, 0x03) // _S0W: S0 Device Wake State
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
If ((Arg0 == ToUUID ("3cdff6f7-4267-4555-ad05-b30a3d8938de") /*
HID I2C Device */))
{
If ((Arg2 == Zero))
{
If ((Arg1 == One))
{
Return (Buffer (One)
{
0x03
// .
})
}
Else
{
Return (Buffer (One)
{
0x00
// .
})
}
}
If ((Arg2 == One))
{
Return (One)
}
}
Else
{
Return (Buffer (One)
{
0x00 // .
})
}
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (((TPIF != One) || (DSYN && One)))
{
Return (Zero)
}
Return (0x0F)
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (ConcatenateResTemplate (SBFB, SBFI))
}
}
}
If (CondRefOf (\_SB.PCI0.RP21))
{
Scope (_SB.PCI0.RP21)
{
Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake
{
Return (GPRW (0x69, 0x04))
}
}
}
As you may see, the _CRS method is different and more complex that the
example provided in SimplePeripheralBusProbe main page, as it returns:
ConcatenateResTemplate (SBFB, SBFI). The I2cSerialBusV2 (not
I2cSerialBus) stuff is defined within the SBFB block. Tried to modify
that single block to bypass the trackpad this way:
First I defined the probe device in the same scope:
Scope (_SB.PCI0.I2C1)
{
Device(SPB1)
{
Name(_HID, "PROBE01")
Name(_UID, 1)
Method(_CRS, 0x0, NotSerialized)
{
Name (RBUF, ResourceTemplate ()
{
I2cSerialBusV2 (0x004C, ControllerInitiated, 0x00061A80,
AddressingMode7Bit, "\\_SB.PCI0.I2C1",
0x00, ResourceConsumer, _Y34, Exclusive,
) })
Return(RBUF)
}
}
Then modified the SBFB section of the ETPD device (which I suppose stand for
Elan TrackPad Device).
...
Device (ETPD)
{
Name (SBFB, ResourceTemplate ()
{
I2cSerialBusV2 (0x004C, ControllerInitiated, 0x00061A80,
AddressingMode7Bit, "\\_SB.PCI0.SPB1",
0x00, ResourceConsumer, _Y34, Exclusive,
)
......
But what about the other part of the resource definition (SBFI)? I kept
it unmmodified....
With this modifications in the table, the probe device appears in Device
Manager after reboot (also the trackpad device stopped working, showing
an encouraging error message stating that that device depends on the
other probe device which didn't have a driver yet. That error was
naturally fixed after installing the probe device driver, but then I got
another error, and of course the trackpad and numpad did not work
anymore. The trackpad device shows this error in device manager:
Unexpected HID Descriptor.
So I had to revert all this stuff to get my trackpad working again in
Windows. As I said if someone helps me modify the code above properly I
would try again. I've already spent many hours on this with no luck, and
do not have more time to keep trying without further guidance.
Regards,
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1810183
Title:
numpad on touchpad doesn't work in ASUS Zenbook 14
Status in Linux:
New
Status in linux package in Ubuntu:
Confirmed
Bug description:
I have Asus Zenbook 14 UX433FA which I have installed Ubuntu 18.10 alongside
windows 10.
The numeric keypads are within the touchpad and are supposed to be turned on
by a button on the touchpad. This works well in Windows but doesn't work in
Ubuntu.
I have tried to search for any related problems/solutions online but I
haven't been able to.
I will appreciate any suggestion or help.
Thanks,
---
ProblemType: Bug
ApportVersion: 2.20.10-0ubuntu13.1
Architecture: amd64
CurrentDesktop: ubuntu:GNOME
DistroRelease: Ubuntu 18.10
InstallationDate: Installed on 2018-12-30 (4 days ago)
InstallationMedia: Ubuntu 18.10 "Cosmic Cuttlefish" - Release amd64
(20181017.3)
Package: linux (not installed)
Tags: cosmic
Uname: Linux 4.19.11-041911-generic x86_64
UnreportableReason: The running kernel is not an Ubuntu kernel
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups: adm cdrom dip lpadmin plugdev sambashare sudo
_MarkForUpload: True
---
ProblemType: Bug
ApportVersion: 2.20.10-0ubuntu13.1
Architecture: amd64
CurrentDesktop: ubuntu:GNOME
DistroRelease: Ubuntu 18.10
InstallationDate: Installed on 2018-12-30 (4 days ago)
InstallationMedia: Ubuntu 18.10 "Cosmic Cuttlefish" - Release amd64
(20181017.3)
Package: linux (not installed)
Tags: cosmic
Uname: Linux 4.18.10-041810-generic x86_64
UnreportableReason: The running kernel is not an Ubuntu kernel
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups: adm cdrom dip lpadmin plugdev sambashare sudo
_MarkForUpload: True
To manage notifications about this bug go to:
https://bugs.launchpad.net/linux/+bug/1810183/+subscriptions
--
Mailing list: https://launchpad.net/~kernel-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help : https://help.launchpad.net/ListHelp