-
-
Couldn't load subscription status.
- Fork 2.7k
Description
Task description
The current status
Currently, 3rd-party wifi drivers cannot be installed on a per-board basis. Although some drivers are restricted to a specific LINUXFAMILY, many drivers are installed across all kernels. This approach leads to challenges because these drivers often require numerous patches (as shown in drivers_network.sh). These patches will frequently fail on new kernel versions and need to be carefully repaired, or new patches have to be crafted/imported.
This issue becomes particularly pronounced when updating to -rc kernel releases, such as those recently seen with the rk3588 family, where drivers may not yet be compatible with the latest kernel version.
Consequently, those who spend their time updating kernels to newer versions face an additional burden of fixing all the 3rd-party wifi drivers that might not be updated by their original maintainers
This ultimately means that the people who do lots of work to update kernels to newer versions are having this additional hurdle to jump over, to try and fix all the 3rd-party wifi drivers that may or may not be updated to the latest kernel version by their creators.
Proposed solution
Fix this by creating DKMS packages for the drivers which can then be installed on a per-board basis for boards with specific wifi chips or on-demand via the Armbian repo.
This approach offers several benefits:
- Board maintainers can directly fix and test the wifi driver for their board.
- Maintainers can see changes immediately and have a stronger incentive to compare the driver with the one potentially included in the mainline kernel.
- From a user's perspective, some users may not want to have 3rd-party kernel modules installed the same way they don't want to trust vendor kernels. This approach won't force all those 3rd-party wifi drivers to be installed the user's device together with the kernel (additional security benefits from a user's perspective).
Task list
- Figure out the best design: Should we package the dkms modules and upload them to the armbian repo to be simply added as package at build time? Or shoudl we use extentions like in this example: https://github.com/armbian/build/blob/main/extensions/radxa-aic8800.sh
- Develop a DKMS package creation mechanism
- Transition all wifi drivers from drivers_network.sh to the new DKMS mechanism
- Enable/install the DKMS packages preinstalled per board that uses the specific wifi chip, in the board config file (either with an extension, a variable like DKMS_MODULE= or with some other config hook)
NB: Anyone is welcome to take up this task and contribute to this description/task list :)
I do not plan to do this all on my own.