BCM94360CD/CS baut keine BT Verbindung auf
-
- Erledigt
- the_viking90
- Erledigt
-
-
ALSO, Original Apple macht er mit (also Mouse 2 und Tastatur), meine AirPods nimmt er auch, sowie meine Samsung soundbar. So kann ich auch vom Server aus mal videos abspielen lassen (ist auf 65 zoll äußerst angenehm).
Wecken lässt er sich auch soweit.
-
oook, dann bin ich auch bisschen erleichtert, in dem fall weiss ich jetzt das man unter
IOKitPersonalities / idProduct immer mit anpassen muss.Freut mich das es geklappt hat, hab sogar noch bisschen dazu gelernt wie vorzugehen ist bei bestimmten problemen.
Danke Jungs.
-
ICH habe zu danken sehr sehr geile Sache.
-
Echt Klasse Sache, Respekt an dich @cobanramo!
Wenn du willst kannst du ja noch einen kleinen Guide verfassen für alle die wissen wollen, wie man seine eigene Firmware in die Kexts bekommt
-
So, da wir das Problem von nicht verbinden von Bluetooth Geräten im Thread gelöst haben
will ich hier mal kurz zusammenfassen wie so eine Bluetooth Firmware in den Injektor vom Rehabman kommt.
Vorne weg, wir erfinden den Rad nicht neu, bauen einfach eine neue dem "BrcmPatchRAM2 Injektor" nicht bekannte Firmware ein.
Muss ehrlich zugeben das ich bis vor kurzem nicht wusste das die meisten Bluetooth Kontroller mit 2 Stufen Firmware ausgestattet sind.
Da ist eine Core Firmware fest auf dem Baustein und zu dem wird immer bei jedem Kaltstart der PC eine Zusatz Firmware per Treiber injiziert.
Auf diese weise können die Komponenten Hersteller (Bsp. Broadcom) Produkte mit Stock Firmware absetzen und die
Systembauer (Dell, HP, Lenovo, Sony usw.) mit einem Treiber update den Modul an Ihre Produkte anpassen.
Wie dem auch sei, hier geht es genau um den 2. teil der Firmware, wie wir den MacOS mittels einem Injektor unterjubeln.
Hier in unserem Beispiel Fall haben wir eine BCM94360CD/CS PCIe Modul bei dem wir zunächst mal alle Informationen sammeln müssen,
die brauchen wir im Injektor um anzusteuern welche Firmware geladen werden soll.
Das ist eine Wifi/Bluetooth Kombi Modul bei dem die Wifi Chip > BCM4360 & Bluetooth Chip > BCM20703 heißt,
den Wifi teil werde ich da nicht eingehen.
Den Hersteller & Produkt ID der Bluetooth teil könnt ihr im MacOS SystemProfiler unter Bluetooth & USB holen.Hersteller-ID: 0x0A5C Produkt-ID: 0x21FF
Zunächst besorgen wir uns den Rehabman's aktuellsten Brcm Injektor von seinem Bitbucket.
Darin haben wir 6 Kext file's die unterschiedliche Funktionen haben; Ausführliche Informationen zu deren funktion könnt Ihr auf seinem
Github BrcmPatchRam lesen. Wir nehmen den teil den wir brauchen.BrcmFirmwareData.kext
BrcmFirmwareRepo.kext
BrcmPatchRAM2.kextJetzt können wir auf die schnelle mal kontrollieren ob unser Bluetooth modul hier überhaupt vertreten ist,
Dazu öffnen wir den Info.plist vom BrcmPatchRAM2.kext mit "Paketinhalt Zeigen" unter Contents mit einem plist editor unserer Wahl,
ich benütze Xcode dazu.
Unter IOKitPersonalities Schlüssel haben wir alle Karten die von dem Kext unterstütz werden.
Wir stellen fest das unsere Karte 0A5C_21FF hier nicht dabei ist. Also erstellen wir einen neuen Karten Schlüssel oder ändern einen bestehenden Karten Schlüssel. Ich persönlich lösche alle anderen weg damit es übersichtlicher wird.
Der erste Unterschlüssel ist vom IOKitPersonalities ist der Karten Identifikations Schlüssel.
Da kommt unsere 0a5c_21ff rein.
DisplayName > Da kommt die Anzeige Name des Produktes
FirmwareKey > Wichtig! Hier kommt die Firmware hin, dazu etwas später, den müssen wir besorgen.
idProduct > Dieser Wert ist Dezimalwert Hersteller-ID 8703
idVendor > Dieser Wert ist Dezimalwert Produkt-ID 2652Wie Ihr feststellen könnt sind unsere Hersteller & Produkt ID's die wir vom SystemProfiler haben Hexadezimal Werte, einfach den Rechner vom MacOs nehmen und in Dezimal umwandeln.
Voila, den Injector haben wir schon fast fertig, uns fehlt nur noch der Firmware selber, sobald wir den haben müssen den nur noch hier eintragen.Jetzt machen wir uns dran einen passende Firmware für unsere karte zu finden.
Normal ist ja so dass für diese Karten Unmengen an Windows Treiber gibt, meistens auch Linux Treiber, für MacOS findet man fast nie was.
Wenn unsere Karte einen Windows Treiber hat dann ist schon mal gut, in dem Paket ist auch unser Firmware.
Dazu den einfach mit 7-Zip entpacken darin nach .HEX files suchen, wenn mehrere vorhanden ist sehr gut wenn nicht nach einem anderen Paket suchen.
Ich zum Beispiel hol die direkt vom Microsoft Update Server ab, dort sind die immer aktuell und herrlich sortiert
Hier einfach nach "Broadcom Bluetooth" suchen, schon wird alles aufgelistet.
Wir wissen ja dass unsere Bluetooth Modul BCM20703 heisst, also laden wir den neuesten Windows Treiber dazu.Da bekommen wir einen .CAB Paket, den können wir auch unter Linux oder Windows 7-Zip entpacken, darin sind jede menge .Hex Firmwares.
In dieser liste müssen wir gucken das wir den richtigen erwischen, hier wieder wie vorher, Wie hiess nochmal unser Chip? BCM20703
Wir werden sofort erkennen dass all die Firmware Dateinamen auch nach Chip's benannt sind. 4 habe ich gefunden.
BCM20703A1_001.001.005.0214.0414.hex
BCM20703A1_001.001.005.0214.0422.hex
BCM20703A1_001.001.005.0214.0473.hex
BCM20703A1_001.001.005.0214.0481.hex
Welcher von denen das richtige ist wie ich die identifiziere entnehme ich von Rehabman's Anleitung.Hier mal ein beispiel.
Der Firmware wird mit seiner Injektor unter MacOS; das Bios Vers. - letzte zahlenfolge plus 4096 angezeigt.
BCM20703A1_001.001.005.0214.0481.hex wird angezeigt als "v5 c4577".
Das heisst umgekehrt, wenn uns unter Bleutooth v4096 auftaucht das keine Firmware geladen wurde.So zurück zu unser Firmware, an unserer 4 Dateien sehe ich jetzt, das alle BiosVersion 5 haben der letzte den höchsten Build(0481) ist.
Also nehme ich den. Laut Rehabman kann ich den File direkt weiterverwenden oder komprimieren.
Komprimieren kann ich mit folgendem zlib Script & Befehl,
stellt einfach den zlib.pl script vom Archiv in den gleichen Ordner wo die .Hex Datei ist.
schon haben wir einen komprimierten Firmware wie die anderen im BrcmFirmwareRepo.kext drin sind.
Wenn man jetzt den BrcmFirmwareRepo.kext verwenden will müssen wir den erhaltenen Firmware zu den anderen unter Recources hinzufügen.Zuletzt fehlt ein Punkt, da wir jetzt unsere Firmware haben müssen wir den auch im Injector eintragen !
Wir öffnen wieder unser info.plist vom BrcmPatchRAM2.kext und tragen den File Name unserer Firmware
unter FirmwareKey ohne Dateinamensuffix ein;
FirmwareKey > BCM20703A1_001.001.005.0214.0481_v4577
Eigentlich ist unser Injektor schon einsatzbereit und kann getestet werden.
Die beiden Dateien BrcmFirmwareRepo.kext & BrcmPatchRAM2.kext kann man jetzt ins Efi oder L/E stellen Cache erneuern und neustarten.
Wenn die Repo im Efi erwüscht ist sollte man Rehabman's Anleitung gut durchlesen,
Im Info.plist vom BrcmFirmwareRepo.kext muss "disabled_IOResources" zu "IOResources"
geändert werden damit es auch im Efi eingesetzt werden kann.Es gib noch den anderen weg, in dem man den .Hex dumpen kann und direkt ins Injektor FirmwareKey über Zwischenablage einfügt.
Den teil kann ich hoffentlich demnächst nachliefern.
Ich hoffe das ich das einigermassen verständlich erklären konnte, wie Ihr sicherlich gelesen habt ist Deutsch eindeutig nicht meine stärkeGruss Cobanramo
Edit: soviel zur kurzer Anleitung, man bin selber erschrocken wieviel arbeit eigentlich das schreiben ist
-
Geile Anleitung und eigentlich wirklich auch ein Aspirant für die WIKI. Wenn Du also nichts dagegen hast wäre es uns eine Ehre diesen Guide da zu verewigen
-
Ach was, warum sollte ich da was dagegen haben griven, in einer Gemeinschaft sollte man ja nicht nur nehmen auch mal was geben nicht
Das würde mich Ehren einem tollen Forum hier was beigetragen zu haben, auch wenn es was kleines ist
Das mit besser schreiben muss ich wohl noch lernen -
@cobanramo Hier hasst du echt ausgezeichnete Arbeit geleisted. Hut ab von mir wo ich auch Deutsch im laufe der Zeit mir angelernt habe. Alles sehr verstaendlich und uebersichtlich.
Gruesse henties -
Hab meinen Post entfernt, da komischerweise jetzt alles wieder geht.