Sziasztok!
Segítségeteket szeretném kérni abban, Windowsnál hogyan lehet elérni, hogy I²C vonalat gondolja alapértelmezésnek a touchpad eléréséhez.
Részletesen is körbeírom a problémát, hogy érthető legyen, mit szeretnék.
Kiindulási állapot röviden
Adott egy Thinkpad P52, amiben nem működik a touchpad és a trackpoint.
Alapvetően létező probléma a gépnél, hogy egy korábbi firmware-frissítés kapcsán előfordul ez az állapot, ki is adtak egy-egy firmware-frissítést a touchpadhez és a trackpointhoz is emiatt.
A frissítés persze nem fut le a touchpad esetén inicializációs hibával, trackpoint esetében "transzparens módra" váltás sikertelensége miatt.
Hardver
Utánanéztem, a touchpad egy ún. SMBus interfészen van, ami Linux alatt i2c-0 eszközként látható.
Maga az interfész elérhető, néhány I²C eszköz válaszol is rajta Linux alól nézve.
Kapcsolási rajz alapján van a gépben két kapcsoló IC, egyik az SDA, másik az SCL vonalra.
Ez a kapcsolt rész megy el a touchpad szalagkábel-csatlakozójához (és az ebben a gépben nem kiépített NFC csatlakozójához is), és a touchpadtől megy tovább egy clock és egy data vezeték a trackpointhoz, ide más eszköz nincs kötve.
Nyilván a transzparens mód esetén a touchpad-ot váltja olyan állapotba, hogy a trackpointtal közvetlen tudjon kommunikálni ezen a vonalon.
Mérés
Alapvetően azt látom, hogy a gép rövid idővel bekapcsolás után próbál kommunikálni a touchpadnél lévő I²C kivezetéseken, vagyis a vonali kapcsoló IC-k jók lehetnek, mind az órajel, mind az adatlábon látok kommunikációt.
(Jelalak vizsgálatához komolyabb oszcilloszkópot kellett volna elővennem, de egyelőre azt is elég volt látnom, hogy megvannak a felhúzások, megvan a touchpad tápja, és jónak tűnik az adatvonal kommunikációja, valószínűleg jelalakja is.)
Tehát elvileg minden jó, de mégsem.
Probléma
Alapvetően visszatérve a frissítőprogramra, annak futása során a touchpad csatlakozóján nem látok kommunikációt az I²C vonalon.
...viszont a frissítő logját vizsgálva feltűnt ez a sor:
"default interface: PS2"
Magyarul "PS2" interfészen keresztül próbálja a touchpad frissítését elvégezni, ami soha nem fog menni egy csak I²C vonalon kapcsolódó eszköznél.
...és ennek fényében nem annyira furcsa, miért nem látok kommunikációt a frissítési próbálkozás során azon az I²C vonalon, amin a gép indulásakor egyértelmű kommunikációt látok.
Tehát jelenleg a frissítés teljes bizonyossággal félrefut, nem megfelelő interfészen próbálkozik.
Kiegészítő információ
Több helyen találni fórumokon panaszokat ezzel a problémával kapcsolatban, itt olvastam azt is, hogy, ha a touchpad-et átrakja valami bootloader üzemmódba, abból egy firmware-frissítés fogja csak kihozni.
A probléma Windowsos része
Az alapvető hiányosság, hogy frissen telepítettem fel a gépre egy Windows 10-et, vagyis ez a rendszer sohasem látta a gép I2C touchpadjét, így ebben a tekintetben alapértelmezésekkel működik.
A "beszédes" (fwupdate.exe) nevű program emiatt nem az ún. SMBus nevű I²C eszközön próbál frissíteni, ahogy kellene neki, hanem PS2 vonalon küldözget, ami nyilván nem ér célt.
Megoldás lehetősége
Valószínűleg megoldást adhatna elindítani a rendszert egy olyan gépen, amin szintén I²C interfészen "lóg" a touchpad.
Legjobb lenne egy ugyanilyen, de működő másik gépen beállított rendszert áttenni ebbe a gépbe, erre lesz lehetőségem talán néhány napon belül vagy jövő héten.
Kérdés kicsit másképpen
A fentiek tükrében van esetleg valamelyikőtöknek ötlete arra, vajon honnan veheti a frissítő program, hogy PS2 interfészen kellene elérnie a touchpad-et, esetleg mit és hol kellene a registryben módosítanom, hogy az "i2c-0 / SMBus" interfészhez akarjon kapcsolódni, ahol az eszköz valójában van?
Azt valahogy nagyon nehezen tudom megérteni, hogy, ha van egy gép, amihez frissítést adnak ki, és ismert, hogy csak I²C vonalon tud kommunikálni az eszköz, amihez a frissítés készült, akkor miért nem oldják meg magában a programban, hogy legalább valamilyen I²C vonalat keressen és ne csak vakon valami "default" interfészen akarjon adatot küldözgetni?
(Költői kérdés, nyilván univerzális eszköz, valamint így volt egyszerűbb, parancssori kapcsolókat is minek beletenni.)
Van valakinek esetleg ötlete, hogyan lehetne rábeszélni a megfelelő interfészre?
Alapvetően registry-módosításra gondolok, hátha van itt, aki ismeri a rendszer ezen részének a működését.
Esetleges ötleteket köszönöm előre is.