Could Nerves be used for a blind-accessible boot manager?

I may actually be closing in on a Nerves project that could be useful for blind users. I apologize in advance for the long-winded problem definition, but here goes…

The VOISS (formerly F123) folks have put together a blind-friendly variant of Arch Linux that runs on a Raspberry Pi 3 Model B. Like most RasPi systems, it boots and runs from a microSD card.

Manipulating these cards isn’t going to be an easy task for a blind user, so I’d like to find a more convenient approach. Part of the challenge is device selection. Although a 3B+ (or a modified 3B) is willing to boot from selected USB flash drives, selecting among multiple drives (let alone partitions) isn’t supported.

NOOBS can do this sort of thing, of course, but it’s not something I’d want to spring on a naive end user. Also, its GUI-based user interface would be completely inaccessible to a blind user. So, I’m wondering whether Nerves could play a useful role here.

A Nerves-based boot manager could scan for boot devices, listen for keypresses, etc. Using a limited repertoire of tones and keyboard actions (TBD), it could allow the user to identify and select among the available boot volumes.

I realize that this description includes a lot of hand-waving and outright science fiction. That said, I’d like to know whether there are any obvious show-stoppers on the Nerves side.

1 Like

While it’s possible to implement this with Nerves, it seems like a lot of work to implement and maintain. For one, I’m not aware of anyone having written a Nerves-based boot manager so there will be some non-Elixir work to create that.

I took a quick look at the NOOBS GitHub repository. I wonder if it would be easier to add accessibility features to the NOOBS UI and contribute them back upstream. Given how large the Raspberry Pi community is, I think that you may find collaborators in the Raspberry Pi Forums.

1 Like

Thanks for the comments and suggestions. I’ll try posting on a couple of forums and issue pages…