Tehuti Networks, company manufacturing the Tehuti TN40xx chipset (for Promise SANLink3 T1, and other Thunderbolt 10GbE network adapters) went out of business, resulting in no further driver development. There is work on a Linux driver (see github tn40xx) and it has not been upstreamed to Linux kernel yet. I have come across multiple such user-run initiatives to support legacy hardware (or in this case: not legacy, but vendor going out of business).
Since there was a lot of media attention about Rust for Linux recently, I wanted to ask a few questions in regards to driver development, and understand how to go about developing and scoping for a project
-
Can anyone elaborate on the status on Rust for Linux, and what is missing at this point to implement the first Rust based driver (Asahi Lina was working on something, but there are possibly some blockers )
-
Would the Tehuti TN4010 driver be suitable for Rust kernel development? (Please elaborate if you think it is not)?
-
How would one go about planning and estimation of such a project? In the case of the Tehuti TN40xx driver (but also more generally) there would be c and cpp codebase to start off from. Working with FFI a good idea in these cases?
-
Are there any best-practices? (here is the link to another thread on r/rust, discussing a tutorial how to create a linux kernel module using rust; any other good pointers?)