I have a embedded system which consists of a usb framebuffer display, and a customized embedded linux (3.10.59) box running Busybox (1.21.1).
There is software running a application which utilizes the display which usually gets mounted on fb0. But occasionally it gets mounted on fb1 and the quick-hack solution was to reboot, as when it got mounted on fb1 the framebuffer didn't work for some reason. When a cable was changed in the system recently ESD strikes would also cause the USB to remount to fb1 (likely due to a timeout on fb0).
Lets say that this event happens where the device jumps from fb0 to fb1, is it possible to forcibly remove both the device registrations, and re-enumerate so that it gets allocated back to fb0.
I have tried some udev tinkering by matching my device parameters to map it specificly to fb0 (as a symlink), but it does not appear to help in the case where the USB link is disturbed and fb0 is still in a timeout when it re-appears and subsequently gets mounted to fb1.
/etc/udev/rules.d
. I.e. you bind an NIC to a device name by mac-addres (70-persistent-net.rules). I can imagine there is an comparable way for your fb device? Just found this: https://unix.stackexchange.com/questions/66901/how-to-bind-usb-device-under-a-static-name – ChristophS Feb 27 '18 at 09:55udevadm
should help in identifying your device and its attributes. – dirkt Feb 27 '18 at 10:01