Earlier quoted context omitted.
With clean room you just have access to the api specifications, not the internals.
Yep. An entity in the "dirty room" reads the thing to be reimplemented and produces a document that thoroughly describes its behavior. That document is passed to the entity in the "clean room" whose only knowledge of that system is through that document. Reverse engineering is legal, plagiarism is not. Despite the fact that the raw output of the system is incomprehensible to humans, scanning a photograph of Mickey Mo…
Building a Linux GPU Driver for the M4 Mac Mini in One Month
271–280 of 292 posts
Re: Building a Linux GPU Driver for the M4 Mac Mini in One Month
#272Earlier quoted context omitted.
AI reverse engineering can be an amazing jumping off point. It's not production ready and someone still has to go over it with a fine tooth comb before it can be called production ready. It is okay to publish things that aren't production ready and they are much better than nothing at all, and we shouldn't harshly criticise the best thing in a category unless we make something better. The difference between AI RE and…
> before it can be called production ready Define "production ready." Can any driver developed without official specifications, corporate approval, or long-term support plan, ever be properly considered production ready? At this scale, the only question is if it gets merged upstream. Outside of that it's a "nuh uh, you didn't design it my way."
Re: Building a Linux GPU Driver for the M4 Mac Mini in One Month
#273Earlier quoted context omitted.
> And yet we have proof right in front of us that e.g. Apple will not port their GPU drivers to Linux, and people had to reverse engineer it, so clearly the evidence says it does not create that incentive On the contrary, Apple engineers--paid professionals--wrote the driver to make MacOS work with the integrated GPU. I don't know why you think not writing a driver for Linux is proof of anything, other than that Appl…
Okay, but nobody can pay a random software engineer to go take the Apple driver's code and use it to make a working Linux driver that they can use on the hardware they purchased. So Apple's monopoly on their source code is not incentivizing any creation (they had to write it anyway to make the hardware useful), and is in fact disincentivizing it (now if someone wants e.g. a Linux or Windows driver, they need to under…
The thing is, you're suggesting imposing that choice on the unwilling. What if I, as a creator, don't want to see the software I put my blood, sweat, and tears into running on inferior (or less capable) hardware, or vice versa? Whether that is "better" for the world isn't obvious to me.
> Society gains literally nothing from letting them have a monopoly on software necessary for their hardware to run, so why give it to them?
I think it comes down to whether you believe hardware and software are always severable things, or whether you believe they comprise an integrated product. If you think like a hacker, they are the former. If you think like a product person, they are the latter. Woz was a hacker. Jobs was a product guy.
Re: Building a Linux GPU Driver for the M4 Mac Mini in One Month
#274Earlier quoted context omitted.
I detail most of the development process in part 1: https://codyho.dev/blog/hypervisor-macbook-neo/ tl;dr you reboot the device with `macvdmtool`, you install m1n1 as the boot object, you talk to the m1n1 proxy over a python shell. I'm documenting the process as I go also (see: the blog posts, also my github repos) both so others can do it and as record of the clean room nature, but this really is just GPT go brrrrr
> but this really is just GPT go brrrrr I guess its a good reason to try it with M6 mac mini or Vision Pro then (yeah I know AVP has locked bootloader). Thanks.
- boot macos under hypervisor (detailed guide in my part 1) into single user mode
- write your own metal program and run it as early in boot as you can
- trace all relevant graphics regions
- once you see the first kick, intercept that kick, then capture the full uat state
- reboot the device, then copy that whole uat state back into the machine, every bit exactly where it was
- perform the kick, verify the output page changes as expected
- have the LLM build all the objects itself in python
- repeat with different metal programs until we have all the behavior you want
- for a list of all behaviors you want, just look at the m1/m2 kernel driver and make sure everything they do has an analogue in your codebase
- if there's every any problems, there's a very simple debugging loop: 1. MAKE SURE YOU HAVE A REPLAYABLE CAPTURE. if you don't then priority #1 is to get that capture. once you have that capture, it's only a matter of time until it works
Re: Building a Linux GPU Driver for the M4 Mac Mini in One Month
#275Earlier quoted context omitted.
Okay, but nobody can pay a random software engineer to go take the Apple driver's code and use it to make a working Linux driver that they can use on the hardware they purchased. So Apple's monopoly on their source code is not incentivizing any creation (they had to write it anyway to make the hardware useful), and is in fact disincentivizing it (now if someone wants e.g. a Linux or Windows driver, they need to under…
> The world is a better place when you can plug your Dell monitor into your Apple computer and it just works. It's also a better place when you can buy your operating system from Canonical if you'd like to run on your Apple computer. It means we all have more choice. The thing is, you're suggesting imposing that choice on the unwilling. What if I, as a creator, don't want to see the software I put my blood, sweat, an…
Programmable hardware and software are obviously always severable. This is not up for debate, but is a basic fact. You can always sell the product you want. That doesn't mean you have the right to control how the owner uses it. If they want to install Linux on it, that's their prerogative. If they want to shoot it out of a cannon or detonate it with an M-80, also their prerogative. If someone wants to sell an emulator for your hardware that runs your software, also fine (and explicitly ruled legal).
Re: Building a Linux GPU Driver for the M4 Mac Mini in One Month
#276Earlier quoted context omitted.
Yep. An entity in the "dirty room" reads the thing to be reimplemented and produces a document that thoroughly describes its behavior. That document is passed to the entity in the "clean room" whose only knowledge of that system is through that document. Reverse engineering is legal, plagiarism is not. Despite the fact that the raw output of the system is incomprehensible to humans, scanning a photograph of Mickey Mo…
Plagiarism is legal, actually. Copyright infringement is not.
I'd also rephrase your first sentence as "Plagiarism isn't illegal, actually.". Unless you're rich and/or very influential, plagiarism is a seriously bad thing to do.
Re: Building a Linux GPU Driver for the M4 Mac Mini in One Month
#277Earlier quoted context omitted.
> The world is a better place when you can plug your Dell monitor into your Apple computer and it just works. It's also a better place when you can buy your operating system from Canonical if you'd like to run on your Apple computer. It means we all have more choice. The thing is, you're suggesting imposing that choice on the unwilling. What if I, as a creator, don't want to see the software I put my blood, sweat, an…
What if I, the owner of Standard Oil, don't want my oil in inferior cars? Or if I, the owner of AT&T, don't want inferior phones on my network? Too bad. The correct course of action to take with companies that try that is to dissolve them. Programmable hardware and software are obviously always severable. This is not up for debate, but is a basic fact. You can always sell the product you want. That doesn't mean you h…
That makes no sense, either as a hypothetical or a historical reference.
> Programmable hardware and software are obviously always severable. This is not up for debate, but is a basic fact.
That's a fact you made up that sounds "truthy". It's an opinion. You're entitled to your opinion, but you're not entitled to make up your own facts. And yeah, it’s up for debate. You know how? Because people have been debating this for decades.
Think about all the gazillion pieces of hardware out there that have dedicated control software that works closely in tandem with the hardware. Practically nobody is clamoring for the absolute freedom to replace the hardware in the stability control systems for for their vehicles or the autopilot systems in airplanes.
> You can always sell the product you want. That doesn't mean you have the right to control how the owner uses it.
You must be unfamiliar with this thing called "the law." You don't "own" the software component of an object when it's purchased. What you do "own" is a limited transferable license to use it, which conveys with the physical object. Same with all forms of physical prerecorded media.
Perhaps you are arguing for how something should be. And that's fine, but that's different from what is.
Re: Building a Linux GPU Driver for the M4 Mac Mini in One Month
#278Earlier quoted context omitted.
>you are supposed to bring your own keys Just because you have to bring your own keys that doesn't make it not a circumvention measure.
There's no "circumvention mesure" in there, the emulator can only read unencrypted games by default. You won't find anything in the source code, if the game is encrypted, it cannot read it.
Here's the code that breaks the DRM.
https://github.com/Fabi/yuzu-mirror-mirror/blob/master/src/c...
Re: Building a Linux GPU Driver for the M4 Mac Mini in One Month
#279Dear fellow humans from "Hacker News". Hacking a driver that in itself documentation to black box Apple hardware is not any different from hacking $10 4G LTE modem. Fact that a person who was not previously driver developer can achieve this in a few weeks is pure wonder. No matter what tools are used. Leave legal questions to Linux Foundation laywers or whoever is responsible to accept or not accept the patches. If A…
Please don't lump HN users together to attack them. This is "sneering at the community", which is explicitly forbidden in the guidelines:
> Please don't sneer, including at the rest of the community.
If you have a specific comment to respond to, then respond to it.
Re: Building a Linux GPU Driver for the M4 Mac Mini in One Month
#280Earlier quoted context omitted.
Probably not. Clean room RE is serious business, projects like Dolphin have to carefully vet contributors to remain legal.
Everyone says this, and then exactly zero cases are cited in support of or against this creative legal theory known as "clean room RE." No statute defines "clean room RE" and there's basically no relevant litigation establishing case law.
It doesn't really make sense for it to be in a statute or in case law.
When you are a copyright infringement defendant the plaintiff has the burden of proving two things: (1) that they have valid and enforceable copyright rights, and (2) that you infringed those rights.
Direct proof of the later is rare, so they usually prove infringement by showing you had access to the work and that your alleged infringing work is substantially similar.
There are some defenses in the statute, such as fair use. With these defenses you are basically saying "Even if they prove everything that normally would prove they case, there is this exception that says in these circumstances I'm allowed to do that". (That's called an affirmative defense).
There are also affirmative defenses that were developed in case law. First sale doctrine was originally a case law developed affirmative defense, but was later incorporated in the statute. Copyright misuse is another case law affirmative defense. That one has not been incorporated into statute.
There are also non-affirmative defenses, often called negative defenses or failure-of-proof defenses. With these your defense it "They can't prove I did this thing that is necessary for them to win".
Clean room implementations are not technically a defense. They are a development methodology designed to provide rebuttal evidence to support a future failure-of-proof defense if you are accused of infringement.
How would you even put that in a statute? As far as case law goes all the case law you'd expect to see is around the particular evidence offered to show the implementers really did not have access to copyrighted elements of plaintiff's work, like record keeping and proof of authenticity and things like that.
An analogy would be like not having alcohol at an event you are hosting that is open to families because you want to make sure you don't violate laws against serving alcohol to minors. You aren't going to find a statute that says "Not having served alcohol to children is a defense to a charge violating the not serving alcohol to children statute". It is implicit in the not serving alcohol to children statute.
Any case law you find on this will not be about whether not serving alcohol to children is a valid way to avoid violating the not serving alcohol to children law. It will be about whether or not some kid that had alcohol got it from you or snuck it in from outside or about whether you took care to make sure your caterer adhered to you no alcohol policy or things like that.