8 ms·
I haven't listened to this podcast yet so I don't know if this comes up, but a particularly scary part of running a custom OS on Apple Silicon machines is that
by jsheard 2y ago
I haven't listened to this podcast yet so I don't know if this comes up, but a particularly scary part of running a custom OS on Apple Silicon machines is that the internal speakers temperature is regulated in software. The Asahi devs have had to painstakingly reverse engineer and reimplement the safety DSP that macOS uses on each device, and add some safety margin, because if they get it wrong they could literally destroy the speakers (and IIRC at least one of their own MacBooks did have its speakers sacrificed along the way).
I wonder if there will be a similar issue with the displays when Asahi gets around to supporting HDR on machines equipped with FALD mini-LED backlights (or XDR, as Apple calls it). HDR displays usually regulate their brightness to keep the panel from getting too hot, and if Apple does that in software too then Asahi will need to replicate it.
- Arch-TK 2y agoThe control loop is handled by the OS? What if the (relatively complex and therefore much more likely to crash) OS crashes? Why would there not at least be some kind of basic thermal throttling implemented in hardware as a fallback? Oh wait, it's Apple, never mind.
- userbinator 2y agoIn the late 2000s I remember hearing of PC laptops which if left in the BIOS setup would overheat and shut down due to the fan control being exclusively done by OS drivers, so this sort of "planned fragility" isn't exclusive to Apple.
- ranger_danger 2y agoHow do you know it was intentional?
- userbinator 2y agoNo one thinks "let the fans stay off and overheat" is a good idea unless they were convinced to do that against their common sense. Other manufacturers' models either had the expected automatic fan control via EC firmware, or defaulted to the fans being on some intermediate speed.
- Narishma 2y agoI had one such laptop. It was always a crapshoot whether Windows updates (the big ones where it rebooted one or more times) would succeed or not before the laptop overheated and shut down. The reason was that the BIOS didn't do any power management and would always run the CPU at maximum power with the fans blowing like a jet engine. It was only once Windows (or Linux) was fully booted that they would take over and do proper power management. But the Windows updates were so slow that they would often spend too much time in that pre-boot environment leading to overheating and shutdown.
- Arch-TK 2y agoIt's not the late 2000s anymore, this is a flagship product.
- kccqzy 2y agoIt's managed by the Linux kernel communicating with a user space daemon (speakersafetyd). If the user land crashes or if the user space daemon is too slow the kernel can still fall back to a ridiculously low limit that will not damage the speakers for any audio. If the kernel crashes, well you get no audio in that case. IIRC the reason they couldn't do it completely in the kernel was because the temperature model uses floating point which is not allowed in the kernel.
- userbinator 2y agoIf the kernel crashes, well you get no audio in that case. More likely to be repeating audio, whatever was last in the buffer.
- wbl 2y agoA floating to fixed conversion is possible but would take some painstaking numerical analysis.
- userbinator 2y agoThe fact that speaker temperature even needs to be considered is something that boggles the mind. I can't find any other references elsewhere on the Internet. Are you sure it's not DC blocking that they've cheaped out on somehow? It somewhat reminds me of this: https://news.ycombinator.com/item?id=7205759 https://news.ycombinator.com/item?id=7205759
- jsheard 2y agohttps://github.com/AsahiLinux/speakersafetyd#some-background-on-smart-amps https://github.com/AsahiLinux/speakersafetyd#some-background... They do it because it lets them drive the speakers much louder than they could do safely with a simple power limiter. Apparently there are amplifier chips which can do that smart regulation internally but Apple decided to do it in software for whatever reason. Maybe they can squeeze out more sound quality with a more complex DSP that way, I doubt it's cost-cutting given their margins.
- adgjlsfhk1 2y agoIt's probably a combo of cost-cutting and control. If you use a hardware chip, the chip itself only costs cents, but space is at a premium, and there assembly costs and reduced flexibility (you have to lock in your design well in advance).
- userbinator 2y agoCost-cutting, control, malicious compliance, and more importantly, plausible deniability. Apple has been caught sabotaging third-party repair multiple times and this sort of design is totally in line with that strategy. Making the design overly complex and fragile (and spending extra $$$ in the process), just to make it harder to correctly use, seems to be a common theme. They will of course come up with plausible arguments why their design is "better", but in reality it's only better for them. https://news.ycombinator.com/item?id=36926276 https://news.ycombinator.com/item?id=36926276 https://news.ycombinator.com/item?id=24955071 https://news.ycombinator.com/item?id=24955071
- neya 2y agoAs someone who builds speakers commercially, there aren't any devices that will actually monitor a speaker's temperature. I think what you mean is perhaps, wattage? The speaker's temperature arises from the coil, which is what moves to produce sound. In large speakers, I've seen manufacturers attach some sort of sensors pointing at the moving coil to produce an estimate, but for the speakers used in the Macbooks, they are so thin that this would be a near impossible feat. Maybe Apple uses an estimation from the DSP based on the watts supplied vs time. But, certainly, you cannot attach any sort of device to the coil without making it distort or non-functional. I know that Apple like to supply the speakers with slightly more power (Watts) than they can deal with to get them loud, but I haven't seen nor heard of this temperature monitoring so far. I couldn't find anything related to it either. Please share citations, if you have.
- mcpherrinm 2y agoThe temperature is modelled based on how much power is put through it. Power, not temperature is measured. https://github.com/AsahiLinux/speakersafetyd https://github.com/AsahiLinux/speakersafetyd has a readme and the code
- rmu09 2y agoI don't know what apple is doing, but in theory, it should be possible to measure ohmic resistance of the coil, and infer temperature via PTC coefficient of coil material. The effect isn't very big at temperature differences you could tolerate in a loudspeaker coil though (~0,5%/K).
- BoingBoomTschak 2y agoYou're probably right. I looked at Neumann ("Independent soft clip, peak and thermo limiters for woofer and tweeter; Woofer excursion limiter; thermo limiter for the electronics and amplifiers") and Genelec (https://www.genelec.com/key-technologies/protection-circuitry https://www.genelec.com/key-technologies/protection-circuitr...) for info - as they're the reference in the monitoring world - and my guess is that it's implemented like Apple, via some simulation function from time-integrated wattage and frequency to bool (limit on/off). Apple isn't the first to use advanced limiters to get the most of loudspeakers, if I remember well, this trick is what allowed Devialet to make the Phantom what it is. Which is why loudspeaker measurements should _always_ include something like this: http://0x0.st/XG1y.png http://0x0.st/XG1y.png