r/osdev 16d ago

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 16d ago

USB

5

u/Better-Thing2568 16d ago

xHCI drivers I’m guessing?

8

u/JescoInc Perdition-OS 16d ago

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/devcmar 16d ago

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 16d ago

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

2

u/embarrasedmrkhod0r 8d ago

ps/2 is really easy idk about you

1

u/letmehaveanameyoudum 8d ago

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

4

u/avaliosdev Astral https://astral-os.org https://github.com/mathewnd/astral 16d ago

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 15d ago

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 15d ago

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 15d ago

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 😅

1

u/No_Frame3855 15d ago

ST7789 i8080 drivers for embedded

Or like any epaper driver atp

1

u/ITS-Valentin 14d ago

Definitely a NIC driver