"Du hast ja Alles" - hmmm vielleicht, wenn ich einen Laptop habe.

  • Ich freu mich sehr auf die Taschenbuchausgabe


    meine buchbindewerkstatt steht zur verfügung... 8o

    ersthilfe vor ort für altes zeugs (-> laptops) 8)

    berliner häckinTosh.stammTisch am 3.monatsmittwoch im maxFish/kunsthaus ACUD

    der stammtisch in berlin ist WIEDER DA!! nächster termin voraussichtlich: mittwoch 15.9.21, 19.00 uhr

  • ich würde sagen Zeitverschwendung (oder du hast ja nichts anderes weiter vor, da kann man das ja tun) das Laptop wird nie wie ein anderes vergleichbares Hack-Book laufen, bei der fast 80% igen inkompatiblen Hardware.

  • ja freilich, kann ja jeder selber tun was er möchte.. war doch nur meine persönliche Meinung dazu.

  • Wäre dafür, die letzten vier Einträge inkl. meinem hier zu löschen. Ich werde richtig sauer, wenn ein so schöner Artikel mit so xxxxxxxxxx und respektlosen Gesülze, was nichts zum Thema beiträgt, verunstaltet wird. Hoffentlich folgen noch weitere Parts von Brumbaer. Richtig großes Kino!

    ASUS PRIME X299-DELUXE i9-9940X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64 • BMD Intensity Pro 4K

    ASUS WS X299 SAGE/10G i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • BMD DeckLink 4K Extreme 12G


    Ordnung ist die primitivste Form von Chaos. (Hans-Jürgen Quadbeck-Seeger)

  • apfelnico.. meinst ALLE Post sollten zensiert werden, wir sind nicht in der Ex-DDR, hier ist freie Meinungsäusserung möglich !

  • Hatte ich befürchtet, dass der Mist weitergeht. Schau dir noch mal deinen "Beitrag" zum Thema an. Ich denke das "respektlos" recht passend ist. Mit Zensur tue ich mich schwer, gerade weil ich die DDR auch miterlebt habe. Freie Meinungsäusserung ist ein hohes Gut, ist aber auch keine Pflichtübung.

    ASUS PRIME X299-DELUXE i9-9940X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64 • BMD Intensity Pro 4K

    ASUS WS X299 SAGE/10G i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • BMD DeckLink 4K Extreme 12G


    Ordnung ist die primitivste Form von Chaos. (Hans-Jürgen Quadbeck-Seeger)

  • apfelnico.. man sollte doch nicht immer bei jeder Kleinigkeit die dir persönlich nicht passt streiten.. immer die Ruhe bewahren.
    Es war doch nur eine Meinung, das man so viel Energie UND Zeit reinbringt in ein Laptop, was aller Wahrscheinlichkeit viel inkomp. Hardware hat,
    eben aus rein technischer Interesse, versucht es zum laufen zu bekommen. Ich hätte die Zeit, 1. für das lange schreiben hier und 2. für die vielen Tests nicht.
    Und bitte lies das doch dann nicht, was dich NICHT interessiert und gut ist und alle leben in Ruhe.
    Und abwarten wie @umax1980 schrieb.. ich verfolge den Thread auch nur aus technischer Neugier mit und tippe darauf,
    das Brumbaer irgend wann das Sache aufgibt.

  • Wer bin denn du ?
    Über den Mac ist als Informationsquelle wirklich hilfreich. Schon auf der Titelseite nennt es einem z.B. den Prozessortyp. Da Apple keine 8250U verbaut könnte man mit einem Unbekannt rechnen, aber weit gefehlt, "Intel Core i5" sei der Name des Prozessors. So sei es, das langt mir.


    Wenn's scheh macht
    Ein Durchclicken der Optionen liefert keine bunten, aber dafür die erwarteten Ergebnisse. Das heißt unter PCI erfahre ich, dass der Miix keine PCI Geräte hat. Hätt' man mir das 'mal vorhergesagt.
    Mit PropertyInjector kann man der Anzeige auf die Sprünge helfen. WLan und IGPU habe ich eingetragen, damit man was sieht. Alles nur Kosmetik.


    Rest in peace
    Da war noch was - mit dem Ruhezustand. Habe ich nur vergessen, weil ich die ganze Zeit über mit Bildschirmfreigabe gearbeitet habe. Nach dem Wake gehen die internen USB Geräte nicht.
    Die üblichen Verdächtigen hatte ich schon durch, also mal das Internet fragen. Die Ausbeute war eher mager und die Lösung, falls es denn eine gab, war ein Verändern von Optionen der CPU PLL Spannung. Probiere ich gleich an dem Tag aus, an dem Lenovo ein BIOS zur Verfügung stellt, das den Namen verdient und Optionen zur CPU PLL Spannung anbietet. Ich befürchte die Chancen dafür stehen nicht gut, nicht einmal wenn man eine Wiedergeburt in Betracht zieht.
    Die Geräte sind noch in der Registry zu sehen. Warum geht dann nichts ?


    Kahlschlag, Holz weg, Holzweg
    Ich tippe auf ein Problem, das darauf zurückzuführen ist, dass USB Gerät und USB Controller aus der selben Spannungsquelle versorgt werden. Ich hatte mit einem extern mit Spannung versorgtem USB Gerät am externen Port getestet und das funktionierte. Nun mit einem vom Rechner mit Spannung versorgtem USB Gerät am externen Port getestet und funktioniert - auch. "Mist". Nicht im Sinne eines landwirtschaftlichen Abfallproduktes, sondern als Ausdruck eines Gefühles, das sich bei Gelegenheiten bei denen sich etwas nicht so entwickelt wie man es erwartet, einstellt.
    Also gut, zweiter Test: BT. BT scheint zu funktionieren, obwohl es intern verbaut ist, wie Touchpad und Tastatur.


    Leichte Schläge auf den Hinterkopf fördern das Kommunikationsvermögen
    Es scheint also was persönliches zu sein zwischen Touchpad, Tastatur und mir, allerdings wollen T&T nicht damit rausrücken was sie wollen. Genau genommen wollen sie mit gar nichts rausrücken. Wenn wir aus tausend Folgen NCIS etwas gelernt haben, dann dass in solchen Situationen leichte Schläge auf den Hinterkopf helfen.
    In Computersprache nennt man leichte Schläge auf den Hinterkopf Reset, schwere Schläge übrigens auch, da gilt es das richtige Maß zu finden. IORegistryEditor sagt uns, dass T&T Instanzen von IOUSBDevice (neumacosisch IOUSBHostDevice) sind. IOUSB(Host)Device hat eine Methode, die die Kommunikation zurücksetzt, dafür gedacht neu anzufangen, wenn die Platte hängt. Das ist nicht brutal, tut nicht weh und sorgt dafür, dass das Device noch eine Chance bekommt es richtig zu machen. Es sei an dieser Stelle erwähnt, dass ein IOUSBDevice durch Resets weder körperlich noch seelisch Schäden erleidet und dass beim Schreiben dieses Artikels keinem Device, egal von welcher Art, körperlicher oder seelischer Schaden zugefügt wurde.


    Im Zweifelsfall ein kext
    Um ein USBDevice in den Genuss eines Resets kommen zu lassen, braucht man eine App oder ein Kext. Ein Kext ist praktischer, weil man es nicht starten muss und es unauffällig seinen Dienst tut. Zuerst ein Testkext namens Sleeper geschrieben, um rauszubekommen, wie ein Kext Sleep und Wake Events erkennt.
    Dann die Erkennung der USB Devices hinzugefügt und beim Wake für diese ein Reset eingefügt. Die Möglichkeit den Reset zu verzögern vorgesehen und das war's auch schon.
    Wort mit vier Buchstaben, dass oben schon mal verwendet wurde. Ich wollte das doch in ein eigenes Kext packen. jetzt heiß das Ding Sleeper und macht ganz was anderes, Wecker wäre viel treffender.
    Wort mit vier Buchstaben, dass oben noch nicht verwendet wurde und Gleichgültigkeit ausdrückt.
    Verzögerung auf 10 Sekunden eingestellt, Other Ordner, Neustart, Ruhezustand, Wake, T&T gehen nicht, ein paar Sekunden später, T&T gehen. Ein Fremdwort mit vier Buchstaben und Bezug zu niedrigen Temperaturen.


    Zwei Seiten einer Medaille
    Da wir gerade von Ruhezustand sprechen. Die Optionen für den Ruhezustand im Energie sparen Kontrollfeld hängen vom gewählten Platform Plugin ab. Für gewöhnlich lässt man das das System wählen. Bei einer nicht unterstützen CPU wird das das ACPI_SMC_PlatformPlugin sein. Bei einer unterstützten Intel CPU wird es das X86PlatformPlugin sein.
    Da wir eine X86 CPU haben macht es Sinn das X86PlatformPlugin zu verwenden. Wird es aber nicht, weil macos die CPU nicht kennt. Macos entscheidet anhand der plugin-type Eigenschaft seiner ersten CPU welches Platform Plugin verwendet wird.
    Ist der plugin-type 1, so ist es das X86PlatformPlugin. Wir können den plugin-type über das PropertyInjector Kext oder die config.plist setzen. Im Clover Configurator unter ACPI, ein Häkchen zum Einschalten und ein Feld für den Wert. Ein Wort mit vier Buchstaben, "fortbewegen".


    Zeig mal was du kannst
    Zeit für ein paar Benchmarks.
    LuxBall GPU: 1764, LuxBall CPU: 1415.
    Geekbench Single: 4242, Multi: 12625.
    Cinebench OpenGL: 29FPS, CPU: 500.


    Würgemale



    IntelPowerGadget zeigt uns bei allen Tests, dass bessere Ergebnisse durch Throttling verhindert werden. Man sieht in dem Screenshot sehr schön wo das Throttling einsetzt.
    Man kann im BI verschiedene Stromsparmodi einstellen. Die oben angegebenen Werte sind für "höchste Performance".


    Träume, Wünsche, Hoffnungen
    Wenn ich einen Hack aufsetzte, habe ich bestimmte Erwartungen. Sachen die laufen müssen und einige Dinge, die ich zu schätzen weiß aber nicht unbedingt brauche.
    Einige Sachen sind offensichtlich und nur in der Liste damit ich sie abhaken kann :)
    Andere Sachen wie Shiki, tauchen bei mir nicht auf oder finde ich nicht essentiell wie 32 State PM, da ich sie nicht brauche, obwohl sie für andere rechnernotwendig sind.
    Und wieder andere Dinge tauchen nicht in der Liste auf, weil ich sie vergessen habe.
    Nur weil etwas nicht wichtig ist, bedeutet es nicht, dass ich nicht u.U. viel Zeit investiere, um es zum Laufen zu bekommen; aus Interesse halt.


    Wichtig für alle Rechner

    • Prozessor √
    • Prozessor rudimentäre 2 State PM notfalls über C-States √
    • Grafikbeschleunigung √
    • Speicher √
    • Sound √
    • USB √
    • NVMe √
    • SATA - hat Miix nicht
    • LAN - hat Miix nicht
    • ITunes/Appstore √


    Gerne gesehen bei allen Rechnern.

    • Prozessor PM z.B. XCPM √ ersetzt die rudimentäre PM
    • WiFi √
    • BT √
    • Micro √
    • AirDrop √
    • Continuity √
    • Messages √
    • Ruhezustand √


    Bei Laptops kommen zu den wichtigen Dingen folgende hinzu bzw. werden von gern gesehen zu wichtig:

    • Prozessor PM √
    • WiFi √
    • BT √
    • Eingebaute Tastatur √
    • Eingebautes Touchpad ~ Keine Gesten außer Scrollen
    • Batterieanzeige √
    • Ruhezustand √


    Zusätzlich bei Laptops gern gesehen:

    • Einstellbare Hintergrundbeleuchtung √
    • Tastaturbeleuchtung √
    • Klappenerkennung √


    Speziell für den Miix kämen zusätzlich in die erste Kategorie:

    • LTE
    • Touchscreen


    Und in die zweite:

    • Kameras
    • Fingerabdruckscanner,
    • Accelerometer
    • Was auch immer


    Es ist doch gar nicht schlimm ...
    Wenn man sich von den ganzen Problembeschreibungen löst und realisiert, dass es auch für jedes beschriebene Problem eine Lösung gab und sich die Häkchen in der Liste anschaut, dann sind das eine ganze Menge. Genau genommen haben alle für einen Laptop gewählten Features ein Häkchen. Das Touchpad funktioniert zu meiner Zufriedenheit. Es unterstützt halt keine Gesten außer Scrollen und wird über das Mauskontrollfeld gesteuert. Für mich nicht schlimm, aber auch nicht ideal.
    Selbst Handoff funktioniert, übrigens ohne 2FA.
    Das HackBook scheint fertig, ob es versteckte Fehler gibt oder ich ein Feature vergessen habe, wird die Zeit zeigen.


    ... kann es aber noch werden.
    Das Dumme ist, dass ich den Miix nicht als Laptop gekauft habe, sondern als 2 in 1. Präziser als MacBook und iPad Ersatz. Und dazu fehlen mir Touchscreen und LTE.
    Ich weiß, dass es sich um einen über I2C angebundenen Touchscreen von Wacom und ein über USB angebundenes LTE Modul handelt.
    Spannenderweise funktioniert die Netzwerkkomponente des LTE Moduls mit macos eigenen Treibern. Ich muss das Modem vermutlich nur noch dazu bringen anzurufen.
    Es gibt ein VoodooI2C Kext mit Support Kexten, die wohl auch Touchscreens unterstützen. Ob und wie einfach die funktionieren werde ich bald wissen.
    Man wird sehen ob ich aus einem HackBook einen 2 in 1 machen kann.


    Die Zeit verfliegt, wenn man sich amüsiert
    Der bisherige Zeitverbrauch für das Projekt ist schwer abzuschätzen. Einige Problemlösungen waren schneller erarbeitet als beschrieben und bei anderen war es genau andersherum. Das langwierigste Einzelproblem war das _LID Problem zu erkennen. Im Nachhinein ist es ganz einfach und hätte in 20 Minuten entdeckt sein können, aber es hat letztendlich über eine Woche gedauert.
    Die Probleme habe ich nicht so geradlinig nacheinander abgehandelt wie beschrieben, sie und ihre Lösungen haben sich zum Teil gegenseitig beeinflusst. Aber die Artikel sind wirr genug ohne die Probleme, die die Beschreibung von Problemen, die in anderen Problemen .... Als ich die Artikel geschrieben habe, waren die meisten Taten schon vollbracht. Man kann also nicht von den Erscheinungsdaten auf die Komplexität der einzelnen Probleme schließen. Ich habe die Gelegenheit genutzt beim Beschreiben die einzelnen Schritte nach zu vollziehen, um zu sehen, dass ich auch nichts ausgelassen habe.


    Ruhezustand
    Jetzt begebe ich mich erst mal in selbigen und lasse das Projekt eine Woche ruhen und widme mich dann dem Touchscreen, schau ma mal, dann seh ma scho.


    Vielen Dank fürs Lesen.
    Ein Wort des Abschieds mit vier Buchstaben.

    2 Mal editiert, zuletzt von Brumbaer ()

  • Und wieder einmal großartig geschrieben und nebenbei den Beweis erbracht das mit dem notwendigen Hintergrundwissen und einer gewissen Bereitschaft die Dinge auch anzugehen sich selbst ein scheinbar aussichtsloser Kandidat in ein HackBook verwandeln lässt das in vielen Disziplinen angeblich sehr kompatiblen Geräten in nichts nachsteht bzw. diese sogar übertrifft. Ich bin mir ziemlich sicher das Du den Touchscreen auch noch dazu überreden kannst seinen Zweck zu erfüllen :D


    Was ich aber besonders bewundere ist Deine Bereitschaft Dich solchen Problemen zu stellen und Deinen Elan solche Projekte auch umzusetzen. Egal ob es ein MIXX ist oder eine Tardis oder die Bärenbrüder alle Deine Projekte sind durchdacht und liebevoll ausgeführt. Da wo es an fertigen Lösungen hapert werden eben welche geschaffen und genau das ist der Spirit den es braucht im kleinen wie im großen. Ohne Leute die einen solchen Willen und eine solche Einstellung haben würde es keine Hackintoshes geben denn auch da haben die Leute gesagt macOS auf einem PC, nee das geht nicht das ist nicht kompatibel, das ist Zeitverschwendung.

  • ich würde sagen Zeitverschwendung (oder du hast ja nichts anderes weiter vor, da kann man das ja tun) das Laptop wird nie wie ein anderes vergleichbares Hack-Book laufen, bei der fast 80% igen inkompatiblen Hardware.


    Wo ist das Ding den bitte zu 80% inkompatibel?
    Generell ist es sehr wohl möglich aus nem Notebook ein anständiges Hackbook zu machen. Das Beweist der @Brumbaer hier super, auch wenn das Miix zickiger ist als mein Dell.


    Im Fall von meinem Dell 7773 zum Beispiel
    Funktioniert alles bis auf Kamera und Kartenleser. Liegt aber auch nicht in meinem Interesse diese in Betrieb zu nehmen, da eh nicht benötigt.


    Ich bin mir sicher Brumbaer kriegt das schon geschaukelt.


    Bei solchen Kommentaren von dir wie “Zeitverschwendung“ krieg ich die Krise...
    Weil du es nicht hibekommen hättest, kriegt es niemand hin oder was ?



    EDIT: Gut das zuklappen habe ich noch vergessen, sprich das Display bleibt an, wenn ich es zuklappe. Aktuell ebenfalls nebensächlich, kann ich in den Angriff nehmen sobald sich der Umzugs Stress gelegt hat...

    Einmal editiert, zuletzt von DSM2 ()

  • @DSM2 ach ja das und dies und Jenes „interessiert mich nicht“ alles klar, dann brauch es nicht zu Funktionieren... ja war gut zum lachen diese Einstellung. Also auch viele Komponenten inkompatibel... ja aber brauch man dann ja nicht. Oh oh was sind das für Aussagen.


    und den Satz „weil du es nicht hinbekommst kriegen andere es auch nicht hin“ hättest du dir ersparen können, denn so ein exotisches Ding Miix hätte ich bei Kenntnis über die Hardwarekomponenten NIE für ein Hackbook ausgewählt.

  • ich freu mich auch jedesmal, wenn @Brumbaer eine fortsetzung schreibt.
    bin besonders gespannt auf die touchfunktion - und auf den stammtisch wenn wir uns das geräterchen live ankieken können.

    ersthilfe vor ort für altes zeugs (-> laptops) 8)

    berliner häckinTosh.stammTisch am 3.monatsmittwoch im maxFish/kunsthaus ACUD

    der stammtisch in berlin ist WIEDER DA!! nächster termin voraussichtlich: mittwoch 15.9.21, 19.00 uhr

  • Leute....
    kommt wieder runter... der Thread ist zu gut, um hier unnötigen Ärger zu fabrizieren...

    Gruß
    Al6042

    Keine Unterstützung per PN oder Pinnwand... Eure Anfragen gehören ins Forum, nicht in mein Postfach!

  • Beide Beiträge wurden soeben gelöscht...


    Macht einer von Euch beiden noch mal eine Text zu diesem Vorfall hinterher, ist er für die nächsten Wochen gebannt...

    Gruß
    Al6042

    Keine Unterstützung per PN oder Pinnwand... Eure Anfragen gehören ins Forum, nicht in mein Postfach!

  • Man hat mich gefragt, wie es weiterging, wie nicht anders zu erwarten mühsam:


    Zwei für den Preis von einem
    Der eine, der Laptop, läuft. Zeit für den zweiten. Das wichtigste Tablet-Feature ist der Touchscreen.


    Da stelle me uns e mal janz dumm
    Ein Touchscreen dient vornehmlich als Ersatz für eine Maus abzüglich der ständigen Bedrohung des Käsebestandes.
    Damit der Touchscreen als Eingabegerät funktioniert braucht man einen Treiber.
    Der Touchscreen schickt irgendwelche Signale über eine Schnittstelle an den Treiber und der fügt große Ohren, einen langen Schwanz und ein Gespür für Käse hinzu und schon denkt das System es hätte eine Maus.
    Man kann allerdings auch Touchscreens bauen, die ein Mauskostüm tragen, so dass die Katze (aka Maustreiber) denkt, da sei eine Maus.
    Welcher Fall liegt hier wohl vor ?


    Kein Anschluss unter dieser Nummer
    Ich hatte beim Kauf des Miix gehoffte, der Touchscreen sei über USB angeschlossen. Spätestens seit dem Erstellen des USB Kextes ist klar, dass dem nicht so ist. Es gibt zwar zwei USB Eingabegeräte, aber dabei handelt es sich um Tastatur und Maus.
    Wo bist du, mein Schatzzzzz ?


    Dummerweise
    Dummerweise ist der einfachste Weg Windows zu starten und im Gerätemanager nach dem Gerät zu suchen.
    Dummerweise habe ich Windows überschrieben, als ich verzweifelt gehofft habe meine NVMe sei inkompatibel und alles würde mit der Original NVMe sofort und ohne Probleme funktionieren.
    Da ich bekanntermaßen fast alles habe, habe ich auch ein Windows 10 - auf einer 2,5" SSD, fertig installiert und einsatzbereit.
    Dummerweise hat der Miix keinen SATA Anschluss.
    Da ich bekanntermaßen fast alles habe, habe ich auch einen USB SATA Adapter.
    Dummerweise komme ich nicht darum herum, Windows starten zu müssen.


    Fensterln tut man nicht nur in Bayern
    Also setzen wir uns bequem hin, sammeln uns, atmen gleichmäßig und ruhig, suchen unsere Mitte, und nehmen unseren ganzen Mut zusammen. Die Engländer kennen das Konzept "Mut aus der Flasche", wenn es denn nicht anders geht, so sei in diesem Falle auch dies gestattet.
    So gewappnet starten wir Windows. Die Augen zu Schlitzen verengt, konzentrieren wir uns auf das Such-Text-Feld und geben Geräte Manager ein und starten diesen.
    Die ersten beginnen nun zu vermuten, dass sie nicht vom Teufel geholt werden, nur weil sie Windows gestartet haben. Den anderen geben wir noch 5 Minuten, sich an den Gedanken zu gewöhnen und von denen, die der Teufel doch geholt hat, verabschieden wir uns in stiller Trauer.
    Wir schauen uns die List der Geräte an und finden Mäuse und andere Zeigegeräte. Es müsste schon mit dem Teufel zugehen, wenn wir unseren Touchscreen dort nicht finden. Kein beruhigender Gedanke für die die immer noch in Erwartung von ihm geholt zu werden, hin und wieder ängstlich über ihre Schulter schauen.
    Da gibt es zwei Geräte, beide haben das selbe Icon und beide heißen HID-konforme Maus. Welches wir uns zuerst anschauen ist egal, denn sollten wir finden, was wir suchen, wird es immer beim zweiten Gerät sein.
    Das erste Gerät ist über USB angeschlossen also nichts für uns, hol's der Teufel
    Das andere Gerät ist ein I2C HID-Gerät und unter Details/Hardware-IDs kommt unter anderem WCOM513B zum Vorschein.
    "WCOM hallo, WCOM", und da steht auch "VID_056A". "VID_056A hallo, VID_056A".
    Es ist ein Gerät der Firma Wacom (Vendor Id 056A) und über I2C angeschlossen und ein HID Gerät.
    Wacom ist der wohl bekannteste Hersteller von Touchscreens und Digitizern, also ist das vermutlich unsere Touchscreen.
    Es handelt sich um ein HID Gerät, d.h. die Befehle, die an die Hardware geschickt werden, folgen dem HID Standard.
    Alles toll soweit, aber bekanntermaßen steckt der Teufel im Detail. In diesem Falle I2C. Wie bekommt man den zum Laufen ? Problem für später. Bevor der Teufel sich aus dem Detail befreit und uns doch noch holt, beenden wir erst mal Windows.
    Puhh, überstanden. Windows ist doch gar nicht so schlimm. Mag aber auch am Weihwasser liegen, mit dem ich den Luftbefeuchter befüllt habe.


    I2C, ein alter Bekannter, aus Controller Tagen. Ein einfaches Zwei-Leiter-Bussystem für Kommunikation innerhalb eines Gerätes. Ursprünglich für das Kommunizieren von ICs untereinander in Fernsehern von Philips entwickelt. Unsere Atmel/Arduino Freunde kennen I2C aus Lizenzgründen als TWI.
    Am Atmel-Controller ist das Programmieren des I2C Controllers kein Problem, aber wie sieht es unter macos aus ?


    Google ist prima, Google ist ne Wucht, mit Google macht das suchen Spass
    Ich persönlich finde "Suchen" überbewertet, "Finden" ist mir wichtiger.
    Und siehe da Google findet was und zwar VoodooI2C, einen I2C Treiber. Und er kommt nicht allein, sondern bringt Kexte zur Unterstützung von HID Geräten mit.
    Das ist ja schon fast magisch, wie das passt.


    Fauler Zauber
    VoodooI2C.kext und VoodooI2CHID.kext in den System Ordner und ... nix.
    Na ja, fast nix. Im IORegistryExplorer kann man sehen, dass zumindest der VoodooI2C Treiber installiert wird. Bei den Geräten I2C0 und I2C1.


    Laut Google gibt es ein paar Threads in amerikanischen Foren zu dem Thema. Schnelles Überfliegen - ggf. Nachtflugverbot beachten - führt zu folgender Zusammenfassung: RTFM.
    Also das FM aufgerufen.


    VoodooI2C is for "advanced tinkerers"
    "Fortgeschrittene Fummler", manche Dinge übersetzt man besser nicht.
    Es geht los mit einer Checkliste:


    Prozessortyp, Haswell oder neuer - Check
    Maschine kommt mit Win7 oder neuer - Check
    Unterstützter I2C Controller - Check
    I2C Gerät - Check
    OS X 10.10 oder neuer - Check
    Clover Bootloader - Check


    Alle 5 Bedingungen erfüllt ? - Äh sind aber 6 Bedingungen.


    Und gleich geht's los mit der Fummelei, DSDT Fummelei.


    Die 5 Bedingungen, die 6 sind, sind symptomatisch für den Stand der Anleitung.
    Es gab immer mal Änderungen, aber die Anleitung hat nicht alle mitgemacht. Im Endeffekt kein echtes Problem, aber etwas das seinen Weg in die Flüche findet, wenn gar nichts funktioniert.
    Und die Krönung ist, dass die Probleme gar nichts damit zu tun hatten, sondern mit einer fehlerhaften Datei. Nachdem ich die Software erneut heruntergeladen hatte, funktionierte es laut Anleitung unter Berücksichtigung der Änderungen.
    Die Lösung besteht laut Anleitung aus einer Handvoll Patches (240+ Zeilen Patchcode) in der DSDT. Klassischer Rundum-Schlag-Patch.


    Es geht auch anders
    Die Miix Lösung berührt die DSDT nicht, sondern kommt mit einem Eintrag in der config.plist (_OSI in XOSI umbenennen) und einem Zusatz in der SSDT, die ich für das Batteriemanagement angelegt hatte, aus:



    Der _OSI Befehl fragt beim Betriebssystem an, ob ein bestimmter Text ihm was sagt. Das wird meist zur Abfrage des Betriebssystems benutzt. Es gibt keinen Befehl der fragt "Welches Betriebssystem bist du denn ?". Stattdessen wird gefragt "Kennst du den Text Windows2015 ?". Wenn de Antwort ja lautet handelt es sich um Windows 10. Der Mechanismus ist für die Abfrage des Betriebssystems etwas umständlich, aber äußerst flexibel und kann auch noch für andere Dinge verwendet werden.
    Der Betriebssystempatch des Originals ersetzt _OSI ("Windows2015") durch LOr (_OSI ("Darwin"), _OSI ("Windows2015")). Das bedeutet jedesmal, wenn gefragt wird "Bist du Windows 10", wird ein "oder macos" angehängt. Dadurch werden macos und Windows 10 von der DSDT gleichbehandelt. Wenn man ein altes "OS X" benutzt kann es sein, dass man es besser nicht mit Windows 10, sondern einem älteren Windows verbindet.
    Die gewählte Variante macht das Gleiche, braucht aber mehr Worte. Ich habe sie trotzdem gewählt, denn ich kann diese Variante ohne DSDT.aml verwenden. Die XOSI Methode wird in einer SSDT gespeichert bzw. einer existierenden SSDT hinzugefügt und durch einen ACPI Patch in der config.plist, werden die _OSI Aufrufe auf XOSI umgeleitet.


    Min to the Max
    Die wahre Patchorgie von 241 Zeilen Patchcode wird in der Miix Variante zu


    Code
    1. Name (_SB.PCI0.I2C1.TPL1.SDM1, Zero)


    Die Zeile wird in der SSDT mit dem XOSI Gedöns - oder irgendeiner anderen oder einer eigenen SSDT - gespeichert.


    Warum genügt die SDM1 Zeile ?
    Wenn man sich die Ziele der Original Patcherei ansieht (in der Dokumentation oder einer gepatchten DSDT), erkennt man, dass das alles schon in der DSDT stand, es wurde nur nicht verwendet.
    DSDTs sind häufig so ausgelegt, dass sie verschiedene Konfigurationen enthalten und anhand von Betriebssystem und verschiedenen Objekten/Flags entscheiden welche Konfiguration verwendet werden soll.
    Hat man ein WIndows 10 und hat das SDM1 Objekt den Wert 0, so baut die DSDT genau die Hardwarebeschreibung für I2C zusammen, die wir brauchen.
    Dass macos als Windows 10 erkannt wird, haben wir mit der XOSI Methode sichergestellt und SDM1 ?
    SDM1 ist ein Feld in GNVS:



    GNVS steht vermutlich für Global Non Volatile Storage und bietet Infos für was weiß ich nicht alles.
    Man könnte nun SDM1 auf 0 setzen und unser I2C Bus sollte funktionieren.
    Aber wie beim blinden Rumgepatche weiß man nicht, wo das überall Auswirkungen zeigt. Deshalb wollen wir SDM1 in GNVS nicht verändern.


    Weltweite Kette oder Kneipe an der Ecke
    Die Überprüfungen von SDM1 innerhalb vom TPL1 folgen alle dem selben Muster:

    Code
    1. If (LEqual (SDM1, Zero))


    Unsere Abfrage befindet sich in einer Methode des Gerätes TPL1, das Teil von I2C1, das Teil von PCI0, das Teil von _SB, das Teil von / ist.
    Wenn der Interpreter nun auf SDM1 trifft, versucht es dessen Wert zu bestimmen.
    Dazu sucht es in der näheren Umgebung (sprich in TPL1) nach einem SDM1, findet aber keins. Also schaut der Interpreter in I2C1 und dann in PCI0 und in _SB und findet nirgendwo eins.
    In / (die oberste Ebene der Objekthierarchie) findet der Interpreter letztendlich das SDM1 in GNVS und verwendet dessen Wert. SDM1 in GNVS ist in der obersten Hierarchiestufe und kann immer und überall gefunden werden. Wegen des überall, heißt es globales Objekt.


    Wenn wir nun dafür sorgen, dass ein anderes SDM1, dass nur von TPL1 gesehen gefunden werden kann, schon früher gefunden wird, dann können wir dessen Wert ändern, ohne dass Methoden außerhalb von TPL1 beeinflusst werden.
    Also erzeugen wir ein SDM1 in TPL1. Das kann ohne volle Angabe der Adresse von anderen Methoden und Objekten nicht gefunden werden. Da das Objekt bisher nicht existierte, gibt es auch keine Zugriffe mit voller Adresse auf auf SDM1 in TPL1, kann also auch keine Probleme außerhalb erzeugen.
    Mit Name (SDM1, Zero) erzeugen wir das Objekt mit dem Namen SDM1 und dem Wert 0. Da unser SDM1 zu TPL1 gehören soll muss die komplette Adresse angegeben werden:


    Code
    1. Name (_SB.PCI0.I2C1.TPL1.SDM1, Zero)


    Da unser SDM1 in TPL1 liegt wird es ohne Angabe der Adresse nur bei Aufrufen aus TPL1 - aus der näheren Umgebung - heraus gefunden. Man nennt so etwas ein lokales Objekt. Im Gegensatz zu einem globalen Objekt, dass von überall aus gefunden werden kann.



    Man könnte die Lösung auch mit einem Scope Befehl und dem Name Befehl realisieren. Wie das dann aussehen würde mag sich jeder selbst überlegen.


    Und schon erscheint der VodooI2C Treiber mit seinen Untertreibern und dem TPL1 Gerät im IORegistryExplorer.

    Lass uns miteinander reden
    Jetzt haben wir einen Treiber der die I2C Schnittstelle unterstützt und es macos erlaubt mit dem Touchscreen zu reden.
    Jetzt müssen sie sich nur noch verstehen.


    Windows hat uns verraten, dass der Touchscreen HID kompatibel ist.
    Macos hat HID Treiber, es fehlt nur etwas, was den macos HID Treiber und unseren I2C Treiber verbindet und dabei die Daten passend aufbereitet.


    Das VoodooI2C Paket bietet mehrere solche Treiber an. VoodooI2CHID.kext klingt vielversprechend - HID ohne Schnörkel.
    Und siehe da, VoddooI2CHID hängt sich an das Gerät und stellt Verbindung mit dem macos' HID Treiber her.



    VoodooI2CHID unterstützt mit Hilfe des macos HID Treibers:


    Klicken durch Zeigen auf eine Stelle
    Drag durch Klicken auf eine Stelle und Bewegen des Fingers
    RechstKlick durch Klicken und Gedrückt-Halten.
    Scrollen mit zwei Fingern.
    Doppelklick funktioniert etwas unzuverlässig, da es schwer ist zweimal kurz hintereinander die selbe Stelle zu treffen. Das hat weniger mit einem ruhigen Händchen, als der Größe und Weichheit der Fingerkuppe zu tun.


    Damit kann ich erst einmal leben. Es zeigt mir dass man den Touchscreen ansprechen kann, dass er eine "bekannte" Schnittstelle zum System hat. Und somit kann man mit entsprechendem Aufwand die Funktionalität hinzufügen die man braucht bzw. zu brauchen glaubt.
    Aber vielleicht muss man nicht einmal mehr Aufwand reinstecken, denn es gibt noch weitere Module und Optionen für Gesten und sogar für Stifte - die Frage ist ob die auch funktionieren.
    Die grundsätzliche Funktion des Touchscreens ist hergestellt, erst einmal weiter zum nächsten Grundsatzproblem.

    Einmal editiert, zuletzt von al6042 ()

  • @Brumbaer hast du mal betrieb mit wacomstiften probiert?

    ersthilfe vor ort für altes zeugs (-> laptops) 8)

    berliner häckinTosh.stammTisch am 3.monatsmittwoch im maxFish/kunsthaus ACUD

    der stammtisch in berlin ist WIEDER DA!! nächster termin voraussichtlich: mittwoch 15.9.21, 19.00 uhr