3 ms·
> Apple has requested and obtained semi-custom hardware from vendors before. Their Boradcom wireless cards (around 2006-2012 IIRC) are almost produced only for
by marcan_42 5y ago
> Apple has requested and obtained semi-custom hardware from vendors before. Their Boradcom wireless cards (around 2006-2012 IIRC) are almost produced only for them, and getting it run on Linux was a long endeavor.
I just sent in a patch series to Linux a few days ago to get all custom Broadcom cards for T2 and M1 Macs working (~2017-present), with the right firmware selection logic. Took a week or so to develop and test on both ARM64 and x86. (There was some prior art but certainly nothing that would've taken more than a few more weeks to work out from scratch; besides, I found a Broadcom source dump for Android that contained most of the interesting knowledge excluding the Apple-only bits, since some of it is relevant to newer non-Apple chips too).
Once you have a team of the right people and enough motivation, getting reverse engineered hardware working on Linux doesn't take as long as everyone thinks :-)
- bayindirh 5y agoI remember many people have bruised themselves by banging their heads to their peripherals and desks while trying to reverse these BCM chips and trying to make them work with Linux, however back in the day BCM was hostile towards Linux, and NDIS_wrapper was a thing... OTOH, kudos for all the hard work you're doing on the kernel. Maybe one day I'd have enough spare time to work on that marvelous beast. > Once you have a team of the right people and enough motivation, getting reverse engineered hardware working on Linux doesn't take as long as everyone thinks :-) As long as the hardware (or the vendor) is not intentionally malicious towards Linux or being reverse engineered. I've seen my fair share. :-)
- marcan_42 5y ago> I remember many people have bruised themselves by banging their heads to their peripherals and desks while trying to reverse these BCM chips and trying to make them work with Linux, however back in the day BCM was hostile towards Linux, and NDIS_wrapper was a thing... The b43 days were definitely special, and that was a full from scratch reverse engineered driver plus open firmware, which is a crazy accomplishment. These days though, we just accept that we're going to have to run vendor firmware, either because there's signing involved or because it's a huge amount of work to attempt to reverse engineer and reimplement that bit. Firmwares have grown from dozens of kilobytes to megabytes and it's just not viable to rewrite all that any more, if it's even possible. OTOH, we also have better tools for and experience reverse engineering now than we did back then. Ghidra has made "proper" disassembly and decompilation accessible to anyone, and we can run proprietary OSes in VMs to study how they interact with hardware. > As long as the hardware (or the vendor) is not intentionally malicious towards Linux or being reverse engineered. I've seen my fair share. :-) Well, it doesn't happen that often outside of closed platforms (i.e. needing an exploit to do anything) and Nvidia ;-)