For the controller idea I found this:
USB-CANBus adapter. Apparently the CIC controller has 2 CAN output wires CAN Low and CAN High, not sure if that makes up one CAN channel for purposes of this adapter or two. In any case it seems theoretically possible, though expensive, that we can use our iDrive controllers for input to a Linux box.
From here I would guess we'd need a slick interface design that at the very least accounted for selection via spinning the iDrive wheel, and allowed for selection via the click-down. This would be very involved, but the payoff would be worth it.