3 ms·
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?
by OsrsNeedsf2P 2y ago
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?
- biorach 2y agoLinux does not have a stable internal kernel API
- ahoka 2y agoThere was one for Windows network drivers.
- skydhash 2y agoMost 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.
- mmsc 2y agoSome 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-broadcom-1570 https://joshua.hu/facetimehd-webcam-linux-vm-macbook-freebsd...
- sunshine-o 2y agoActually 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.
- mmsc 2y agoThe 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.
- rjsw 2y agoThere is, for the DRM GPU drivers.