-
Headphone repair and upgrades
For the past few years, I’ve been using Senheiser HD 202s as my headphones (I found them lying unused in a cupboard – yay free stuff). So far they’ve been pretty good in my opinion, having never devled into the rabbithole that is audio at any point. Unfortunately, a couple weeks ago, one of the…
-
Writing a UEFI bootloader – Part 4
It’s been a while since I’ve written a post in this series, but not to worry, because stuff has been happening. The bootloader has significantly progressed since the last post, I just haven’t had the want or time to write another blog post until now. So the big change for this post is that the…
-
Random bits – edition 1
Sometimes the IDE breaks stuff trying to be helpful For anyone who’s never dabbled with Arduinos, there are two default functions in any Arduino project – setup and loop. setup runs on boot, and then loop is repeatedly called as one would expect in a loop. At some point I wrote some initialisation error handling…
-
Unwinding followup
In the last post I managed to get unwinding working within the kernel, but there was the small issue that it would only print out addresses, and each one would need to be converted with a tool like addr2line to get any useful debugging information out. The best solution would probably be to get the…
-
Stress relief in a no_std environment
aka unwinding after a panicApparently it’s been nearly two months since the previous post. Not to worry though, because (after A levels finished) I’ve been busy with more Popcorn, and made significant progress in both the design and implentation. There’s a couple of UEFI posts still to come (one currently in the pipeline) but I thought it might be…
-
Writing a UEFI bootloader – Part 3
aka GUI timeWith filesystem access in place, we can start working on loading images from the disk, and putting together a basic UI. Once that’s in place, we should be able to load a kernel image from disk, and boot into it. The Targa image format Having messed around with BMP images a few times before (including…
-
Writing a UEFI bootloader – Part 2
aka EFI/blog_text.txtAt the end of the last post, I said that I’d probably start working on filesystems and image rendering. And I’m pleased to say that both of those have been a success. I started writing this as a single post, but when trying to arrange it into something actually readable, realised it made more sense…
-
Writing a UEFI bootloader – Part 1
aka who needs GRUB?For some reason, I decided that for this attempt, it would be fun trying to write a bootloader myself rather then relying on GRUB. I could make up probably-untrue excuse about easier access to hardware control, like the GOP, but the real reason is likely closer to “why not?”. I discovered that there’s a uefi-rs…
-
Popcorn – Attempt 2
aka this time it might workHaving been demotivated from continuing with Popcorn attempt 1 with all the strange, hard to track down memory bugs, I decided to start again (and write this series of blog posts alongside) but in Rust. I technically have already done some OS development in Rust, in the experimental pre-Popcorn times, but at that point had…