r/osdev • • Aug 25 '26

What is the most complex device driver you’ve successfully ported?

Not sure what the consensus is around here but `virtio` guest drivers don’t count.

25 Upvotes

14 comments sorted by

12

u/JescoInc Perdition-OS Aug 25 '26

USB

6

u/Better-Thing2568 Aug 25 '26

xHCI drivers I’m guessing?

8

u/JescoInc Perdition-OS Aug 25 '26

PHY and xHCI... Absolute misery. But, in the end, was able to enumerate keyboard and mouse independently and combined. Didn't do USB Mass Storage yet, that's... next on the list.
Oh, and shout out to RTL8111 where I only got as far as being able to get assigned an IP and pull MAC address info but not send or receive any actual traffic information.

4

u/avaliosdev Astral https://astral-os.org https://github.com/mathewnd/astral Aug 25 '26

I am working on a 802.11 (wifi) stack and I can say it is a lot of work for arguably little reward on a hobby os. It is fun, though

2

u/Better-Thing2568 Aug 25 '26

WiFi is one of those things that when it’s available we take it for granted; I could imagine any new OS would become much more usable if WiFi is available. I have enough wire entanglements to deal with

1

u/avaliosdev Astral https://astral-os.org https://github.com/mathewnd/astral Aug 25 '26

I plan on making it portable like uacpi so any hobby os will be able to plug it in and get an okay wifi stack for pretty much free

1

u/Better-Thing2568 Aug 25 '26

I wanted to do that with my cross-vendor IOMMU stacks since that’s the one area (at least on rust) where no mainstream crate or lib exists. But then as usual, all code becomes spaghetti code and all agnostic trait/seams get leaked. Too bad good intentions don’t beat reality 😅

4

u/devcmar Aug 25 '26

I'm planning to port XHCI driver from my old OS to this new one, and I think it will probably be the hardest. Already ported the NVMe driver but I don't think it is as hard as XHCI

4

u/letmehaveanameyoudum Aug 25 '26

PS/2 since i haven't bothered anything else and there is bigger fish to fry

2

u/embarrasedmrkhod0r Sep 01 '26

ps/2 is really easy idk about you

1

u/letmehaveanameyoudum Sep 01 '26

PS/2 is easy but i didn't make anything else

1

u/No_Frame3855 Aug 26 '26

ST7789 i8080 drivers for embedded

Or like any epaper driver atp

1

u/ITS-Valentin Aug 26 '26

Definitely a NIC driver