Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Given no one has done it, I assume it's hard, but why can't there be a translation layer for Linux drivers to work on BSD?


Linux does not have a stable internal kernel API


Most drivers relies on being able to do their job unencumbered. Which means giving them information they need, and relaying their messages to the material. And that usually means tight coupling to the kernel. Creating a translation layer is maintaining the Linux API (aka all current functions). And BSDs have different submodules for some stuff.

Most drivers issue stems from the hardware being undocumented. Not knowing the initialization parameters, not knowing the protocol, and the functions,as well as the various settings that influence each other. And Linux allows for binary blobs, which means things are opaque even when working.


Some people use tiny Linux VMs to interact with some devices, and then relay whatever they need back to the FreeBSD host. For example wifibox or https://joshua.hu/facetimehd-webcam-linux-vm-macbook-freebsd...


Actually I believe this is the smart way to "fix" the problem.

We could even imagine building those tiny VMs based on bsd-hardware.info for popular hardware profiles.

Keep FreeBSD small and clean, focus on innovation and performance, leverage virtualization and the good work done by Linux devs.

Then, if we get decent podman support I am more than happy.


The problem is that this only works if your hardware supports emulation and you can actually use PCI pass through - for USB devices, you'd need to pass the whole USB hub, for example.


There is, for the DRM GPU drivers.


There was one for Windows network drivers.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: