How to Convert Legacy Kernel Modules for modern Kernels

Tianrui Wei tianrui at tianruiwei.com
Fri Jan 21 03:21:18 EST 2022


Hi Greg,

On 21 Jan 2022, at 15:51, Greg KH wrote:

> On Thu, Jan 20, 2022 at 06:10:31PM +0800, Tianrui Wei wrote:
>> Hi,
>>
>> I was wondering if there're any tools/scripts in Linux that'd help me
>> to convert legacy kernel modules for using on a modern Linux (Kernel >
>> 5.0) system?
>
> It depends on the driver you wish to convert.  For wireless drivers,
> there was the "linux backport project" that provided scripts and tools
> to do this type of work.  For other subsystems, I do not think anyone
> ever did so as it's both not that hard, and also very specific to the
> code that you are trying to convert.

Thanks for telling me about the Linux back port project. It does seem very interesting.

>
>> If there're not out of box solutions, is there a way I could view the
>> API changes in every subsystem clearly? For example, this particular
>> commit[^1] shows the second return argument is being removed from
>> ki_complete, and it took a lot of fishing down the lkml to do. Perhaps
>> there is a simpler way?
>
> Use git itself to track the changes in apis.  You can see all changes to
> a .h file by doing:
>     git log -p path/to/file
> and then see where the api got changed.

This is a really good suggestion, and it's also the way I approach recent kernel modules. However some specifically ancient kernel modules is rather difficult to use this approach.

>
> It usually isn't that difficult to forward port a driver, but it all
> depends on the age of the code, and what it actually does.  Do you have
> a link to the code you wish to drag forward?

The specific driver I had in mind is a PCIE driver for a Xilinx IP block. It's under https://www.xilinx.com/products/boards-and-kits/ek-k7-kc705-g.html#resources in a zip folder called rdf0281-kc705-base-trd-2014-3.zip. Everyone with a xilinx account could download the folder. Unfortunately its header claims it contains confidential information from Xilinx, as such I'm a bit wary to post it online.

> You can also always add it to the in-kernel drivers/staging/ area and have others help out with this effort.

Thanks for giving me information about the drivers/staging area! I'll try to upstream my future work there.

>
> good luck!
>
> greg k-h

Best Regards,
Tianrui
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 866 bytes
Desc: OpenPGP digital signature
URL: <http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20220121/e76d3e5a/attachment.sig>


More information about the Kernelnewbies mailing list