I recently noticed that driver ucb1400_gpio was built into all openSUSE
kernels while most systems did not need it. Now that I fixed this
specific issue, I decided to check if there were other drivers like
that. I used the following script to test my running systems:
find /sys/bus -path "*/drivers/*/uevent" | sed -e 's/\/sys\/bus\/\(.*\)\/uevent$/\1/' | sort > /tmp/drivers
find /sys/bus -type l -path "*/drivers/*" | sed -e 's/\/sys\/bus\/\(.*\)\/[^/]*$/\1/' | sort -u > /tmp/drivers_with_devices
diff -u /tmp/drivers_with_devices /tmp/drivers | grep '^+[^+]' | cut -c 2-
OK, this is a somewhat crude heuristic but it seems to work. I ran this
script on 3 different machines running openSUSE 12.2 or 12.3, and took
the common results. This led me to the following driver list:
This is a rather long list, 41 drivers. While I am certain that there
are false positives, either common hardware which I just happen to not
have on any of my machines (most of pci and acpi), or drivers we may
need very early (pci/serial?), or pseudo-drivers which are in fact part
of their subsystem core (i2c/dummy, pci_express/aer, pcie_pme), it still
seems to me that many of these should be modularized, to make our kernel
smaller in size and faster to boot.
More than half of the drivers are HID drivers. They are only built-in in
4 kernel flavors: i386/desktop, x86_64/desktop, ppc/default and
ppc/vanilla. Jeff, Jiri, is this on purpose? If not, can I change all
these to modular?
Then we have mdio_bus/Generic PHY (what a driver name is that? <sigh>),
pci/tsi721 and platform/dsa left.
mdio_bus/Generic PHY is part of PHYLIB, I think we could build that as a
module? It was accidentally made a bool in kernel v3.2-rc1 but was
reverted to tristate in v3.2-rc5. Jeff, you made it build-in in commit
455827126, no objection to me making it a module again?
pci/tsi721 is part of RapidIO. None of RapidIO support being built as
modules. Which is a shame really, because I suspect most users don't
need that and it isn't small - 165 kB on x86-64. This needs to be
discussed with upstream.
And finally platform/dsa is already dealt with in Factory. By me,
To unsubscribe, e-mail: opensuse-kernel+unsubscribe(a)opensuse.org
To contact the owner, e-mail: opensuse-kernel+owner(a)opensuse.org