From the Linmodem-Howto

4.1 Fixscripting

Mark Spieth has contributed a progressively improved series of "fixscripts"
for editing a binary module so that version
mismatch warnings are eliminated. Insertion of the "fixed" module then
proceeds without the forcing flag, i.e. simply
insmod module_name. Later versions also rename module symbols to match those
exported by the kernel, so that
"Unresolved symbols" errors are not returned by the test depmod -e. It must
be emphasized that this change is almost
entirely cosmetic - it is still recommended that the module be used
minimally. 

To use the fixscript on, for example, the (now-deprecated) binary Lucent
module ltmodem.o, make a working directory
such as /root/modem. Obtain the latest fixscript from here . Save the file
as fixscript. View it with less or
your favorite text editor to check that DOS hard stops were not accidentally
acquired. They look like bold M, underlined M,
or ^M depending upon your viewer/editor. NOTE: the viewer more does NOT
display these DOS newlines. 

Make the file executable with chmod +x fixscript. Generate a "fixed" module
with, i.e., 

    ./fixscript ltmodem.o ltmodem2217.o

No errors should be generated by testing the module dependencies with 

    depmod -e ltmodem2217.o

and insertion should succeed with a simple, non-forced, 

    insmod ltmodem2217.o

The "source code" supplied with some PCTel modules (a small C file) performs
similar masquerading when compiled and
linked with the binary libraries in those packages; unlike the
partially-open-source Lucent driver, it does not compensate
for any actual changes to the kernel interface. 

