Embedded linux - USB framebuffer device mounting

Clash 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.
linux usb embedded framebuffer
add a comment |Â
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.
linux usb embedded framebuffer
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.udevadmshould 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
add a comment |Â
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.
linux usb embedded framebuffer
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.
linux usb embedded framebuffer
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.udevadmshould 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
add a comment |Â
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.udevadmshould 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
add a comment |Â
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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.
udevadmshould 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