Skip to content

Commit

Permalink
Basic braille screen reader support
Browse files Browse the repository at this point in the history
This adds a minimalistic braille screen reader support.  This is meant to
be used by blind people e.g.  on boot failures or when / cannot be mounted
etc and thus the userland screen readers can not work.

[[email protected]: fix exports]
Signed-off-by: Samuel Thibault <[email protected]>
Cc: Jiri Kosina <[email protected]>
Cc: Dmitry Torokhov <[email protected]>
Acked-by: Alan Cox <[email protected]>
Cc: Randy Dunlap <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
sthibaul authored and torvalds committed Apr 30, 2008
1 parent 730f412 commit f7511d5
Show file tree
Hide file tree
Showing 15 changed files with 538 additions and 30 deletions.
34 changes: 34 additions & 0 deletions Documentation/braille-console.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
Linux Braille Console

To get early boot messages on a braille device (before userspace screen
readers can start), you first need to compile the support for the usual serial
console (see serial-console.txt), and for braille device (in Device Drivers -
Accessibility).

Then you need to specify a console=brl, option on the kernel command line, the
format is:

console=brl,serial_options...

where serial_options... are the same as described in serial-console.txt

So for instance you can use console=brl,ttyS0 if the braille device is connected
to the first serial port, and console=brl,ttyS0,115200 to override the baud rate
to 115200, etc.

By default, the braille device will just show the last kernel message (console
mode). To review previous messages, press the Insert key to switch to the VT
review mode. In review mode, the arrow keys permit to browse in the VT content,
page up/down keys go at the top/bottom of the screen, and the home key goes back
to the cursor, hence providing very basic screen reviewing facility.

Sound feedback can be obtained by adding the braille_console.sound=1 kernel
parameter.

For simplicity, only one braille console can be enabled, other uses of
console=brl,... will be discarded. Also note that it does not interfere with
the console selection mecanism described in serial-console.txt

For now, only the VisioBraille device is supported.

Samuel Thibault <[email protected]>
5 changes: 5 additions & 0 deletions Documentation/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -496,6 +496,11 @@ and is between 256 and 4096 characters. It is defined in the file
switching to the matching ttyS device later. The
options are the same as for ttyS, above.

If the device connected to the port is not a TTY but a braille
device, prepend "brl," before the device type, for instance
console=brl,ttyS0
For now, only VisioBraille is supported.

earlycon= [KNL] Output early console device and options.
uart[8250],io,<addr>[,options]
uart[8250],mmio,<addr>[,options]
Expand Down
3 changes: 0 additions & 3 deletions arch/powerpc/kernel/ppc_ksyms.c
Original file line number Diff line number Diff line change
Expand Up @@ -133,9 +133,6 @@ EXPORT_SYMBOL(adb_try_handler_change);
EXPORT_SYMBOL(cuda_request);
EXPORT_SYMBOL(cuda_poll);
#endif /* CONFIG_ADB_CUDA */
#ifdef CONFIG_VT
EXPORT_SYMBOL(kd_mksound);
#endif
EXPORT_SYMBOL(to_tm);

#ifdef CONFIG_PPC32
Expand Down
3 changes: 0 additions & 3 deletions arch/ppc/kernel/ppc_ksyms.c
Original file line number Diff line number Diff line change
Expand Up @@ -183,9 +183,6 @@ EXPORT_SYMBOL(cuda_poll);
#if defined(CONFIG_BOOTX_TEXT)
EXPORT_SYMBOL(btext_update_display);
#endif
#ifdef CONFIG_VT
EXPORT_SYMBOL(kd_mksound);
#endif
EXPORT_SYMBOL(to_tm);

EXPORT_SYMBOL(pm_power_off);
Expand Down
2 changes: 2 additions & 0 deletions drivers/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ source "drivers/memstick/Kconfig"

source "drivers/leds/Kconfig"

source "drivers/accessibility/Kconfig"

source "drivers/infiniband/Kconfig"

source "drivers/edac/Kconfig"
Expand Down
1 change: 1 addition & 0 deletions drivers/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ obj-$(CONFIG_WATCHDOG) += watchdog/
obj-$(CONFIG_PHONE) += telephony/
obj-$(CONFIG_MD) += md/
obj-$(CONFIG_BT) += bluetooth/
obj-$(CONFIG_ACCESSIBILITY) += accessibility/
obj-$(CONFIG_ISDN) += isdn/
obj-$(CONFIG_EDAC) += edac/
obj-$(CONFIG_MCA) += mca/
Expand Down
23 changes: 23 additions & 0 deletions drivers/accessibility/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
menuconfig ACCESSIBILITY
bool "Accessibility support"
---help---
Enable a submenu where accessibility items may be enabled.

If unsure, say N.

if ACCESSIBILITY
config A11Y_BRAILLE_CONSOLE
bool "Console on braille device"
depends on VT
depends on SERIAL_CORE_CONSOLE
---help---
Enables console output on a braille device connected to a 8250
serial port. For now only the VisioBraille device is supported.

To actually enable it, you need to pass option
console=brl,ttyS0
to the kernel. Options are the same as for serial console.

If unsure, say N.

endif # ACCESSIBILITY
1 change: 1 addition & 0 deletions drivers/accessibility/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
obj-y += braille/
1 change: 1 addition & 0 deletions drivers/accessibility/braille/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
obj-$(CONFIG_A11Y_BRAILLE_CONSOLE) += braille_console.o
Loading

0 comments on commit f7511d5

Please sign in to comment.