Embedded linux - USB framebuffer device mounting

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
1
down vote

favorite












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.







share|improve this question


















  • 1




    Just a hint: if exists, take a look at /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: unix.stackexchange.com/questions/66901/…
    – ChristophS
    Feb 27 at 9:55











  • I don't know any details about your frame buffer device, its drivers and how udev handles those, but the usually way to deal with changing device names is to make a custom udev rule that creates a symlink, and use the symlink instead. udevadm should help in identifying your device and its attributes.
    – dirkt
    Feb 27 at 10:01










  • @ChristophS That is what i tried at first. It will still appear as fb1 during a ESD event that knocks fb0 out, perhaps because fb0 is still in a timeout state and has not disappeared.
    – Stonie
    Feb 27 at 10:13






  • 1




    I'm not sure how this applies to a framebuffer device, but this discusses how to unbind a device to reset it, and this old code suggests how you might reset it.
    – meuh
    Mar 1 at 19:51














up vote
1
down vote

favorite












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.







share|improve this question


















  • 1




    Just a hint: if exists, take a look at /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: unix.stackexchange.com/questions/66901/…
    – ChristophS
    Feb 27 at 9:55











  • I don't know any details about your frame buffer device, its drivers and how udev handles those, but the usually way to deal with changing device names is to make a custom udev rule that creates a symlink, and use the symlink instead. udevadm should help in identifying your device and its attributes.
    – dirkt
    Feb 27 at 10:01










  • @ChristophS That is what i tried at first. It will still appear as fb1 during a ESD event that knocks fb0 out, perhaps because fb0 is still in a timeout state and has not disappeared.
    – Stonie
    Feb 27 at 10:13






  • 1




    I'm not sure how this applies to a framebuffer device, but this discusses how to unbind a device to reset it, and this old code suggests how you might reset it.
    – meuh
    Mar 1 at 19:51












up vote
1
down vote

favorite









up vote
1
down vote

favorite











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.







share|improve this question














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.









share|improve this question













share|improve this question




share|improve this question








edited Feb 27 at 10:12

























asked Feb 27 at 9:39









Stonie

305




305







  • 1




    Just a hint: if exists, take a look at /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: unix.stackexchange.com/questions/66901/…
    – ChristophS
    Feb 27 at 9:55











  • I don't know any details about your frame buffer device, its drivers and how udev handles those, but the usually way to deal with changing device names is to make a custom udev rule that creates a symlink, and use the symlink instead. udevadm should help in identifying your device and its attributes.
    – dirkt
    Feb 27 at 10:01










  • @ChristophS That is what i tried at first. It will still appear as fb1 during a ESD event that knocks fb0 out, perhaps because fb0 is still in a timeout state and has not disappeared.
    – Stonie
    Feb 27 at 10:13






  • 1




    I'm not sure how this applies to a framebuffer device, but this discusses how to unbind a device to reset it, and this old code suggests how you might reset it.
    – meuh
    Mar 1 at 19:51












  • 1




    Just a hint: if exists, take a look at /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: unix.stackexchange.com/questions/66901/…
    – ChristophS
    Feb 27 at 9:55











  • I don't know any details about your frame buffer device, its drivers and how udev handles those, but the usually way to deal with changing device names is to make a custom udev rule that creates a symlink, and use the symlink instead. udevadm should help in identifying your device and its attributes.
    – dirkt
    Feb 27 at 10:01










  • @ChristophS That is what i tried at first. It will still appear as fb1 during a ESD event that knocks fb0 out, perhaps because fb0 is still in a timeout state and has not disappeared.
    – Stonie
    Feb 27 at 10:13






  • 1




    I'm not sure how this applies to a framebuffer device, but this discusses how to unbind a device to reset it, and this old code suggests how you might reset it.
    – meuh
    Mar 1 at 19:51







1




1




Just a hint: if exists, take a look at /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: unix.stackexchange.com/questions/66901/…
– ChristophS
Feb 27 at 9:55





Just a hint: if exists, take a look at /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: unix.stackexchange.com/questions/66901/…
– ChristophS
Feb 27 at 9:55













I don't know any details about your frame buffer device, its drivers and how udev handles those, but the usually way to deal with changing device names is to make a custom udev rule that creates a symlink, and use the symlink instead. udevadm should help in identifying your device and its attributes.
– dirkt
Feb 27 at 10:01




I don't know any details about your frame buffer device, its drivers and how udev handles those, but the usually way to deal with changing device names is to make a custom udev rule that creates a symlink, and use the symlink instead. udevadm should help in identifying your device and its attributes.
– dirkt
Feb 27 at 10:01












@ChristophS That is what i tried at first. It will still appear as fb1 during a ESD event that knocks fb0 out, perhaps because fb0 is still in a timeout state and has not disappeared.
– Stonie
Feb 27 at 10:13




@ChristophS That is what i tried at first. It will still appear as fb1 during a ESD event that knocks fb0 out, perhaps because fb0 is still in a timeout state and has not disappeared.
– Stonie
Feb 27 at 10:13




1




1




I'm not sure how this applies to a framebuffer device, but this discusses how to unbind a device to reset it, and this old code suggests how you might reset it.
– meuh
Mar 1 at 19:51




I'm not sure how this applies to a framebuffer device, but this discusses how to unbind a device to reset it, and this old code suggests how you might reset it.
– meuh
Mar 1 at 19:51















active

oldest

votes











Your Answer







StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: false,
noModals: false,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);








 

draft saved


draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f426897%2fembedded-linux-usb-framebuffer-device-mounting%23new-answer', 'question_page');

);

Post as a guest



































active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes










 

draft saved


draft discarded


























 


draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f426897%2fembedded-linux-usb-framebuffer-device-mounting%23new-answer', 'question_page');

);

Post as a guest













































































Popular posts from this blog

Peggy Mitchell

Palaiologos

The Forum (Inglewood, California)