4 ms·
Video device initialization is intimately intertwined and a dependency for all this early boot stuff. I was hoping to learn more but it's not even mentioned. St
by superkuh 1y ago
Video device initialization is intimately intertwined and a dependency for all this early boot stuff. I was hoping to learn more but it's not even mentioned. Still, neat.
- megous 1y agoIt's not a dependency for Linux boot at all. You can do well with serial port alone, as anyone who brought up eg. an ARM SoC in Linux will attest to. Also it's not very interesting either. At simplest, Linux just needs to take a pointer to a beginning of a framebuffer and some metadata, and will write to the framebuffer whenever there's something to update.
- superkuh 1y agoMaybe not linux specifically, but POST requires a video device software (BIOS Option ROM or UEFI GOP Drivers) of some sort does it not? That's been my experience with all PCs for 30 years. But maybe there are cases where it doesn't? edit: Apparently it's a desktop motherboard firmware thing. Ubiquitous but not technically a requirement for POSTing a computer.
- GreenVulpine 1y agoI've found AM4/AM5 boards will still boot Linux without a discrete or integrated GPU, running a GPUless CPU, not an APU.
- p_l 1y agoIt was sorta required by IBM PC compatibles, but is not required by UEFI which supports serial console (or other interfaces). IBM PC assumed existence of graphic output and sometimes Option ROMs did really too crazy things with it, I still have shivers when I hear "intel raid card" because of that one with possibly Win3.x in ROM...
- edoceo 1y agoSoekris (rip) had an x86 network device. Four 10/100s and the disk was a CF. Could only serial console that thing - or SSH once it's running. Best router I ever had. Also, in 2000 when Windows crashed you could get a serial debugger. Wonder if they still do that?
- okanat 1y agoPeople still need to do driver ddvelopement. So you can still set up a Windows PC to expose kernel debug interface over serial port: https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/setting-up-a-null-modem-cable-connection https://learn.microsoft.com/en-us/windows-hardware/drivers/d...
- okanat 1y agoIf you would like to see an actually "interesting" boot, I recommend checking out how Raspberry Pi's boot. It is a unique monstrosity that boots from the video / GPU core instead of one of the ARM cores. It has an arcane undocumented architecture.
- megous 1y agoWhen I realized that, after buying my first Rpi (2B), that was the last Rpi I ever bought. :) Thankfully, pretty much everyone else just uses U-Boot.
- qingcharles 1y agoIf you can find a copy of this on the high seas, it's a great resource. I wrote my own OS by starting with this and the Linux source in the mid-90s: https://www.amazon.com/-/he/Developing-32-Bit-Operating-System-Cd-Rom/dp/0672306557 https://www.amazon.com/-/he/Developing-32-Bit-Operating-Syst...
- phendrenad2 1y agoIt's because on a brief period of old PC hardware (1994-1998), when Linux was starting off, high-resolution video initialization (SVGA+) was easier to do in 16-bit mode, before the bootloader switched the CPU over to 32-bit mode. Because GRUB handled this transition, GRUB became responsible for video initialization. After 1998 GPU manufacturers added 32-bit support for initialization, but the long tail of users with hardware with that limitation really entrenched this responsibility in GRUB.
- p_l 1y agoOnly on IBM PC because it essentially always assumed presence of either MDA or CGA, and over time evolved to assume presence of VGA. UEFI does not require at all and supports and UI framework to enable work in both graphical and textual (with so-called VT-UTF8) mode.