Skip to content

codyd51/uefirc

Repository files navigation

UEFIRC is a graphical UEFI IRC client. Connect to an IRC server, chat and read messages, all from the comfort of your motherboard's pre-boot environment.

50 years of computing, yet no solution for IRC software that can also fry your motherboard. Until now.

UEFIRC is written in Rust and leverages uefi-rs.

The GUI toolkit comes from axle OS. I think that this is the first time anyone has put TrueType in UEFI.

NO kernel. NO scheduler. NO memory protection. Just you, the motherboard firmware, and all your pals across the internet.

screenshot-2024-04-05-10.23.10.mp4

UEFIRC comes with keyboard and mouse support by leveraging UEFI's Simple Text Protocol and Simple Pointer Protocol.

Most notably, UEFIRC implements a memory-safe wrapper around UEFI's TCP implementation.

Here's me saying hello to the UEFI development chat from UEFI itself.

UEFIRC comes with a blog post with fun animations showing some of the tricky bits it took to get this working. Check it out!

Configuration

The IRC server, and the identity of the user, are controlled by a configuration file in the EFI filesystem.

Modify config.toml to change these values.

Running

NOTE: If you are not running macOS, you'll be unable to use QEMU's vmnet network backend, and will need to set up a network backend that can bridge packets into the guest.

Precompiled release

Download the latest release. Run this command:

qemu-system-x86_64 -bios ./OVMF_with_mouse_support.fd -monitor stdio -m 4G -vga virtio -device virtio-rng-pci -device virtio-mouse-pci -usb "device usb-mouse" -drive format=raw,file=fat:rw:./efi_filesystem/

Compile at home

UEFIRC uses a small (no-dependency) Python 3.7+ script to coordinate the build. Build and run:

$ python3 scripts/build.py

Should I use this?

This should not exist.

License

MIT license.