( YleGreg | 2020. 07. 02., cs - 14:33 )

Nabazz. Lazán kapcsolódik, de éppen tegnap este küldtem egy levelet a céges közösbe, hogy kisírjam magam.

Bekopizom ide is, hogy nektek se legyen jó.

Nem hiszem, hogy a benne leírt megoldás lesz a legjobb neked, de ha nem találsz jobbat, ez legalább működik.

 

windows 10 versus KVM switch - avagy seggfejek kezében a popszakma

Sziasztok!

Belerongyoltam egy kiadós pofonba, bár inkább tátott szájjal.. az erdőben... De leírom a horrort.

Szóval, szerettem volna a KVM switch nevű űrtechnikát egyszerűen használni. 
De tényleg! Összesen ennyit szerettem volna! Semmi többet!

A céges KVM switch korábban, Windows 7 alatt tök jól ment. Ezért álmomban sem gondoltam volna, hogy a tökjó Windows 10 alatt ezzel bármi gond lehet. Muhahaha! - gondolta erre Murphy, és megjelent.

Van egy ismert jelenség, miszerint a KVM switch úgy működik, hogy arról a csatlakozóról ahonnan éppen NEM továbbít képet a monitorra, onnan elveszi a (DDC/EDID néven ismert) jelet.

Erre a Windows 7 még meglepően jól reagált, merthogy nagyívben tett rá. Ez alatt azt értem, hogy az azon a desktopon lévő ablakok amelyik éppen nem voltak láthatóak, - merthogy a KVM switch a másik bemenetről táplálta a monitort, - azok szépen nem látszottak. Ott maradtak a halott kijelzős monitoron, és türelmesen várták, hogy visszakapcsolva rájuk vethessem vigyázó tekintetemet. Én ezzel a viselkedéssel boldog voltam.

Most, hogy jött a Windows 10, ugyanezt szerettem volna. Csakhogy! Csakhogy, először is a kékhalál gyógypedagógiai formájával szembesültem, mert a Display Port --> DVI  átalakítós KVM switch váltása során hirtelen egy szomorú smiley jelent meg, és nagyon kulturáltan közölte, hogy SYSTEM THREAD EXCEPTION NOT HANDLED. Ez meglátásom szerint elég ciki, mert egy rendszer folyamatban a kódoló szakmunkások által beleheggesztett kivételt nem lekezelni, háát... Hé, gyógyegerek, volt azon a kódbázison statikus teszt? Mondjuk egy párosítása az eldobott (thrown) és az elkaptt (catch) kivételeknek? Nos. Van egy olyan sanda gyanúm, hogy ez elmaradt. De lépjünk tovább, a megoldás a lényeg, nem a mocsár.

Szóval, addig-addig döfködtem szerencsétlen gép 3 DP lukát a megfelelő kábelekkel, hogy végül a sikerült előhozni egy olyan állapotot, ami működőnek látszik. Remélem, így marad! Sajnos tényleg csak remélni tudom.

Eljutottam hát oda, hogy látszólag minden stabil és működik. Hahaha! Na persze. A Windows 10 -ben annyira, de annyira okosak akartak lenni (nem sikerült) hogy eldöntötték helyettem, hogy nekem mi a jó. Szerintük nekem az a jó, hogy ha galvanikusan még ott a csatlakozó, de a DDC/EDID jel elmegy róla, akkor sürgegyorsan minden ott lévő ablakot elrántanak onnan, és a fő képernyőre zúdítják az összeset. Ez még jó is lehetne, ha lenne annyi esze, hogy amikor visszajön a jel, akkor visszadobja oda ahonnan elvette, de persze nincs annyi esze. Ergo, minden egyes KVM switch váltáskor üres desktop fogad az egyik, és egy túlzsúfolt desktop a másik monitoron. Mert ez nekem jó! Ja. Marhára jó, pont erre való, nem?

Arról persze álmodni se merjek, hogy ezt egy egyszerű beállítással ki lehessen kapcsolni, mert az túl egyszerű lenne. Azt nem szabad a felhasználónak, mégis, mit képzel, kié a gép?

Na, de ez így mégsem jó, szóval jó lenne a sírás-rívás (itt kérek bocsánatot mindenkitől aki még tanúja volt az irodában a khmm.. szomorúságomnak..) és a tettlegesség (mármint Redmont hirtelen haragból származó felgyújtása) helyett megoldást találni. Alapvetően szeretek megoldást keresni a legelborultabb problémára is, szóval itt is pozitívan álltam a dologhoz: Csak megszívta már más is ezt!

Némi Guglis kárörvendés után (haha, nem vagyok egyedül a kakiban) azonban elkezdtem rosszul érezni magamat. Na, persze nem a lelkiismeretem szólalt meg, az ilyenkor alszik. A kínos dolog az interneten volt olvasható, miszerint:

2015 november 4: Windows 10 issue with multiple monitors and KVM https://answers.microsoft.com/en-us/windows/forum/all/windows-10-issue-…

Itt az volt a rémisztő, hogy a jól leírt bejelentés ellenére a hivatalos MS support először mellébeszélt, aztán persze nem is adott működő választ a problémára. Legalábbis ez a válasz: "This might occur when  some of the settings not configured properly" IMHO nem valami egzakt. Később kiderült ebben a szálban, hogy honnan fúj a szél, és így legalább tovább kereshettem megoldást.

De azért had hívjam fel a figyelmeteket a dátumra: 2015! Azóta nincs erre a problémára hivatalos megoldás!  Köszi Microsoft! Jók vagytok! Légyszi, törődjetek többet a Paint 3D -vel, mert az kell mint a falat kenyér, a video driver körüli gondokat meg hagyjátok a fenébe, elvégre azt javítani olybá tűnne, mintha operációs rendszert fejlesztenétek...

Bocs, elragadtattam magam. 

Szóval, ott tartottam, hogy tovább bújva az internetet találtam egy Windows 7 korabeli híradást erről a hibáról: 2009 oktober 29: KVM switch + Windows 7 creates monitor switching nightmare https://answers.microsoft.com/en-us/windows/forum/windows_7-hardware/kv…

Itt már sírva zokogtam, ugyanis a hivatalos MS Support válasz: "To solve this issue, just replace the KVM switch with those KVM switches supporting FULL TIME/ Active DDC function."

Ez a hozzáállás nem csak nekem emelte meg a szemöldököm. Érdekes, hogy ez nekem nem jött elő Windows 7 -el, bizonyára kapitális mázlista vagyok, vagy nem tudom. Lehet, hogy hibásan implementálták ezt az agresszív ablakozósdit, és ezt a hibát a Windows 10 -ben javították, így már nekem is szétpakol mindig mindent, mintha csak muszáj lenne neki.

Ismét felhívnám a figyelmet a dátumra: 2009! Egy évtizede ott a hiba, és nem hajlandóak egy nyomorult "Ne pakold szét, te k..csög!" feliratú kapcsolót berakni a Settingsbe. Gépházba. Personalize -ba. Akárhova!

Jó, hát ha a MS tojik a fejemre, akkor keresünk más utat. Mit lehet itt tenni?

1, a Registry finom módosítása. Állítólag van akinek működik, bizonyos esetekben. Máskor meg nem annyira. Sajnos én nem szívesen gyengíteném az amúgy sem acélos Windows 10 frissítések konzisztenciáját egy magánúton széthekkelt registryvel, igazból már annak örülök, hogy egyáltalán van kép. Tudod, a nap elején még a BSOD -ba eső bootloop -ból kellett kihúzni a gépet, szóval nem taszigáljuk azt ami egyébként is dülöngél.

2, Valami jó kis warez cucc felrakása, ami azt ígéri, hogy majd ezt megoldja. Aham, a BI biztosan örülne, ha random exéket töltenék le mindenféle .ru szerverekről, hátha jó lesz valamelyik... Szóval ez sem járható.

Mi van még lehetőség? Az erőszak. Az mindig bejön! Amit a Windows 10 elrak, azt majd én visszarakom. Oké, ez sem bonyolult, lévén a Windows API hozzáférhető (beb4szna ha nem így lenne...) ergo ennek nem lehet akadálya.

Jól van, elővettem egy Pythont, mert az kényelmesen be tud tölteni bármilyen C/C++ -ban írt DLL -t.  Tök jó, megvan a Windows API, kezdenek csorogni az ablakok handler azonosítói, csakhogy.. csakhogy... Hát ezt nem hiszem el. Mintha bugos lenne az API. Ami azért ciki, mert ez a Windows nevű operációs rendszer ablakainak a kezelésére szolgál. Állati, elértük azt, hogy már a rendszer nevében hordozott funkcionalitás sem százas. Egyik ablakot megtalálja, a másikat nem. Ugyanaz a kód, és a betűhelyes hivatkozás.

Óapám, már el is felejtettem, hogy mekkora trágyadombon kell átgázolni ha natívan akarja a Windowst programozni az ember! Mert régen, az MFC korában ez az API még nem volt a helyzet magaslatán, de nagyjából mindenki tudta, hogy mely függvények és callback -ek azok amiket jobb elkerülni, mert random törnek. Én kis naív azt hittem, hogy mostanra már jól működik az ablakozó rész a Windowsban. Hát nem! :-)

Na jó, hát akkor vegyük elő a programozó fegyvertárából az "ellenséges környezet esetén használandó" eszközt, a heurisztikát. Ha a pontos ablak név megadására nem mindig találja meg a rendszer az ablakot, akkor inkább ne keresse meg. Majd én megkeresem helyette. Ide nekem az összes ablakot! Aztán majd kidobom ami nekem nem kell, és a maradékból választok egy szimpatikusat. Hátha.

Na, ez a módszer bejött, végre van egy scriptem amiben felvehetek ablakokat (névvel) és hozzá társíthatok olyan értékeket, hogy hova tegye, és mekkorába. És az oda teszi. Kicsit olyan mint amit a KDE alapból tud, de persze nem fair az ingyenes KDE Desktop Environment beállítási lehetőségeit a fizetős, Windows operációs rendszer GUI -jával, mert hát a KDE -ben nagyjából minden IS beállítható (de tényleg!), a  Windowsban meg lassan már semmi.

Szóval győztem! Fél nap alatt lefejlesztettem egy workaround -ot arra a ma is létező problémára, amit a Microsoft egy évtizeden keresztül nem érzett fontosnak megoldani. Pedig még ma is fáj a népeknek...

Én most boldog vagyok, kiadtam magamból a feszültséget, megyek haza.

Üdv:
Greg

ps: A Microsoft akkor is kapja be!