Why are the driver objects installed in /usr/local/lib/modules instead of /lib/modules?
For a long time I struggled with why the PowerLinc USB drivers would always say “initializing” when you did an lsmod command. I combed over the code over and over to try to figure it out. Then I discovered that the problem was a conflict in the USB system. Since the system automatically loads the drivers when the device is found, the USB system was loading HID and PLUSB simultaneously. HID would get the port first and when my scripts removed HID (rmmod hid), the PLUSB drivers would take over and bind to the port. Although they were fully active and working, they would stick in the initializing state. So, to avoid the conflict, the installation scripts put the drivers in /usr/local/lib/modules. This is just fine since to load all of the modules, you have to do a manual “insmod”. If I can resolve the conflicts between HID and PLUSB, I will consider moving them back to the normal modules area.