udev firmware handler needs to support multiple firmware sources for Ubuntu Touch
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
systemd (Ubuntu) |
Fix Released
|
Undecided
|
Martin Pitt |
Bug Description
Currently, udev has a hardcoded firmware search path of /lib/firmware. This prevents it from being usable to load all firmware on ubuntu touch images, which necessarily have separate partitions for vendor-provided firmware vs. system-provided firmware - we can't expose both of these sets of firmware in /lib/firmware. So to address this, udev would need to be configured to search more than one firmware path. This appears to be supported using a space-separated list of directories as the argument to --with-
The logical directories to search in an Ubuntu Touch context would be /lib/firmware, /system/firmware, and /vendor/firmware. If we want to avoid the latter two as being non-standard directories, we can use bind mounts or symlinks to the appropriate places and only search "standard" directories like /lib/firmware and /usr/local/
There is nothing wrong with adding these two to the search path but they don't actually exist on disk, so I committed that for now. These are certainly not LSB-blessed directories (something you were adamant about in other cases, incidentally :-) ), but if the underlying Android system puts the files there anyway, we shouldn't make it even more complicated by adding symlinks on top of that structure.