I am using the FTDI to SPI Bridge and need to remove ftdi_sio and usbserial kernel modules. I believe I have to do that in the kernel and create a new image itself? Is that correct? If so, which file do I that in?


Can you identify which kernel features you need to remove by the kernel’s config? The running kernel’s current configuration will be given if you run this command (but it returns everything, expect a lot of scroll):
zcat /proc/config.gz

You could then filter by anything containing “ftdi” or “usb_serial” via a regular expression:
cat /proc/config.gz | egrep -i '(ftdi|usb_serial)'

And if you want this in a pager for scrolling through:
cat /proc/config.gz | egrep -i '(ftdi|usb_serial)' | less -i
(note that in regular expressions a pipe | is logical “OR”)

From the above you might for example determine this feature is important:
cat /proc/config.gz | egrep -i '(usb_serial_ftdi)'

Once you’ve identified the features needing removal, post which config item it is you are interested in removing. In the case of a module feature ("=m") you won’t need to recompile anything…you’ll just deactivate or move the module providing this when the module is not loaded. If the feature is integrated ("=y"), then you would need to build a new kernel to eliminate that option.