Interest in GSoC project: Add UEFI boot options
hanbings <[email protected]> Sat, 28 Feb 2026 15:41:06 +0800
| Newsgroups | gmane.os.netbsd.devel.installation |
|---|---|
| Message-ID | <[email protected]> |
------=_Part_2201265_1523380196.1772264466632 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi everyone, I found this mailing list through the NetBSD GSoC "Add UEFI boot options" p= roject page, and I'm interested in taking on this work. A bit about me: I'm an undergraduate student. I host my projects and partic= ipate in open-source communities on GitHub =E2=80=94 feel free to check out= my profile: https://github.com/hanbings=20 Before learning about "Add UEFI boot options," I participated in a project = called "arceboot" through OSPP (Open Source Promotion Plan, a GSoC-like pro= gram organized by the Chinese Academy of Sciences). The main goal was to bu= ild a UEFI firmware from scratch (filling the same role as UEFI OVMF). The = repository is at: https://github.com/rustsbi/rustsbi . Through that work, I= gained a solid understanding of the UEFI Spec, as well as the UEFI boot fl= ow and its internal mechanisms. I've also been writing my own operating sys= tem kernel with a custom EFI bootloader: https://github.com/hanbings/canicu= la , which has given me hands-on experience with the full chain from firmwa= re to kernel. Here is my understanding of the "Add UEFI boot options" project: the kernel= has access to SetVariable() for setting EFI variables, but since sysinst i= s a userland tool, it cannot call this function directly. As a result, the = UEFI firmware can only rely on scanning for EFI binaries at default paths w= ith default names. To make this work, we would need to expose a userland in= terface and modify sysinst to use it. Linux achieves this by exposing files= ystem nodes under /sys/firmware/efi/efivars. From my initial research, NetB= SD might prefer exposing this under /dev/efivars, or possibly through somet= hing like sysctl hw.efi.vars. I'd love to hear your thoughts on the preferr= ed approach. In the meantime, I'll continue studying NetBSD's design philos= ophy and digging into the sysinst source code. Thanks, hanbings ------=_Part_2201265_1523380196.1772264466632 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>= <meta content=3D"text/html;charset=3DUTF-8" http-equiv=3D"Content-Type"></h= ead><body ><div style=3D"font-family: Verdana, Arial, Helvetica, sans-serif= ; font-size: 10pt;"><div>Hi everyone,<br></div><div><br></div><div>I found = this mailing list through the NetBSD GSoC "Add UEFI boot options" project p= age, and I'm interested in taking on this work.<br></div><div><br></div><di= v>A bit about me: I'm an undergraduate student. I host my projects and part= icipate in open-source communities on GitHub =E2=80=94 feel free to check o= ut my profile: <a target=3D"_blank" href=3D"https://github.com/hanbings">ht= tps://github.com/hanbings</a><br></div><div>Before learning about "Add UEFI= boot options," I participated in a project called "arceboot" through OSPP = (Open Source Promotion Plan, a GSoC-like program organized by the Chinese A= cademy of Sciences). The main goal was to build a UEFI firmware from scratc= h (filling the same role as UEFI OVMF). The repository is at: <a target=3D"= _blank" href=3D"https://github.com/rustsbi/rustsbi">https://github.com/rust= sbi/rustsbi</a>. Through that work, I gained a solid understanding of the U= EFI Spec, as well as the UEFI boot flow and its internal mechanisms. I've a= lso been writing my own operating system kernel with a custom EFI bootloade= r: <a target=3D"_blank" href=3D"https://github.com/hanbings/canicula">https= ://github.com/hanbings/canicula</a>, which has given me hands-on experience= with the full chain from firmware to kernel.<br></div><div><br></div><div>= Here is my understanding of the "Add UEFI boot options" project: the kernel= has access to SetVariable() for setting EFI variables, but since sysinst i= s a userland tool, it cannot call this function directly. As a result, the = UEFI firmware can only rely on scanning for EFI binaries at default paths w= ith default names. To make this work, we would need to expose a userland in= terface and modify sysinst to use it. Linux achieves this by exposing files= ystem nodes under /sys/firmware/efi/efivars. From my initial research, NetB= SD might prefer exposing this under /dev/efivars, or possibly through somet= hing like sysctl hw.efi.vars. I'd love to hear your thoughts on the preferr= ed approach. In the meantime, I'll continue studying NetBSD's design philos= ophy and digging into the sysinst source code.<br></div><div><br></div><div= >Thanks,<br></div><div>hanbings<br></div></div><br></body></html> ------=_Part_2201265_1523380196.1772264466632--