I've seen only up to this stream (inclusively) and only at the end of the stream, I get the problem is the code of MacOS is compiled to use registers for el0 (el1, I didn't get it clear) but @marcan would like to run the code (the OS actually) under el2 and should use another set of complimentary registers; therefore, he has to detect the complimentary registers for another el level and trap the original ones to workaround the correct ones for the deserved el. What makes the problem, as I get it.
I missed this but what do HW and SW used trough the code and memory mapping mean? I get this as software and hardware but cannot catch the meaning in this context. Thank you very much if someone can answer.
I haven't seen the whole video yet but how @marcan make macOS to load the hacked device tree? Did he load it by the same addresses as the original one?
Can the tso support be used in the microvm currently. Or is there still work need to be done in kvm/libkrun for it to work? Doesn’t seem to work for me currently.
Hi Marcan!! Taking a shot in the dark here… I am in search of a motherboard for an old X-Men 6-player 2-screen Arcade game. Could you point me in the right direction?
What does the information that Apple has been used DWC3 from Synopsys in their devices for years come from? I saw this on Corellium's website but cannot figure out whether this information is official or got by some reverse engineering and if the latter by whom, you, corellium or someone else? P.S. I see there are not so many dual-role USB controllers on the market what let's not many choices indeed.
@marcan, Thank you very much for the streams, they are amazing! What I get from this one, you are going to design and build a board to send USB signals what you want to your Mac in order to debug how the Mac will react on them and debug the driver for USB PD and maybe display port and other USB stuff. You numerous times used the word "debug" in the stream but didn't said what this actually means. What you told us this is not a MITM stuff, so I have got this is not a USB sniffer or something like this, but a device to generate signals. I'm sorry but this part was unclear. Happy new year!
a good way to skip long cutscenes btw, you better don't try to play gameboy tetris at level 20 with 40 MHz of overclocking, it'll become harder than TGM3 Shirase level 1300 (well, the 3 sections before it (1000-1299), those have the same difficulty, lvl 1300 is the staff roll)
I see, in the device tree you write something like "compatible", then you put a magic string in your driver with his name and if I'm not wrong, this should be the same value as in the device tree. My question is how the kernel dispatches which driver (module?) to activate to handle the cirtain device? So, what happens when you enable two different irq or timer drivers in your kernel configuration, who will be responsible to solve any conflicts between the drivers and how the conflicts will be solved by interrupt numbers or something else mechanism? Thank you for the answer.
In short, the goal is to make Linux run, but run as in "we have serial", here is what happens in the video, which i am extremely happy to see in full, as this is how reality is, and not some kind of movie supercut. . Plan is to use the same Samsung tty as Apple is usually shipping to send over a minimal kernel to boot from . Marcan is using a HW device called Glasgow as the way to connect. . He spends almost 3 hours integrating and solving compilation issues of a compress/decompress lib . He tries to debug ( blindly since tty is not working ) why there is no serial but also is affected by a Glasgow cache limit, which he fixes . He has an idea to use framebuffers to show the progress of the kernel booting as colors on top of the screen, one boot step at a time, as there is still no kernel output on serial . After he literally reaches the point of writing code that there is no way that cannot work on a functioning device, at around 7:15:00 mark Marcan has a discussion with a Friend that was poking on a Corellium Linux release and found that in Apple Silicon a hardware bug exists that will kill register ops on a perfectly valid and normal armv8 memory type. . At around 7:28:00 he starts testing the new memory type attributes on fixmap as a hotfix, serial output finally shows up . 7:32:00 - Bug explanation - Lesson. Next video will be about writing code to avoid reaching the all "mmio writes sent to null" bug correctly. Marcan points out that this is possibly the worst HW bug he has ever seen, expecting that it would have eventually made him have to do all the mmu and page mapping he did on the original target of nintendo ( and had avoided doing on the Mac Mini ), after spending 3 days in debug hell.
How are you using your linux keyboard/mouse on the mac whilst also capturing video? I see it looks like you're just using an HDMI capture card but was curious about the keyboard mouse...
Hello, could this combination work live? How did you solve a camera delay problem? I am trying to do something similar, but it takes 200ms (6 frames) until the image of certain action is available for OpenCV processing.
If you do respond to comments is the any way to improve performance on asahi fedora I have a base m1 air and asahi arch performs way better then asahi fedora when it comes to gaming
I have been administering linux for about 20 years and have used many different distributions and fedora is the worst, starting with rpm packages and ending with constant bugs.@@vslow4795
listening to this at work, so interesting!! my heart goes out to you and every other contributor. cant wait for this to get to a point where i can daily drive it on my personal m1 pro ^^
Why are the volume knobs in alsamixer so high by default that it realistically blows the speakers out right away? Like why does ALSA apply an 18dB gain to a tiny laptop speaker. I understand that it needs more development to fix this, but why is this the driver or ALSA default?
The defaults don't really matter, anything can change the volumes anyway. The whole system is designed to require the safety model. It's not 18dB gain, that's the amp output level which is an absolute value, not relative. There's no way for ALSA to know what values are reasonable limits or defaults. That is the job of the machine driver, which is what we're developing here. On our production version we force a -20dB max volume when the safety subsystem is not active or not responding, and the amp output gains are set to the same maximums as macOS or a bit lower for safety.
I was surprised to see that the initial ram is compressed in the rom, very compact decompressor too! Btw, quite funny that you have a smart disassembler with access to the data showing you the code, but you have to manually rewrite it from scratch in python to run it