Cromarty
Posts: 64
Joined: Thu Jan 03, 2013 5:03 pm
Location: Godalming, South-east UK
Contact: Website

SpeakUp screen-reader fails in VCHIQ-0

Mon May 27, 2013 1:53 am

Hello,

I have been trying for several weeks to get the SpeakUp console-mode screen-reader to run in Raspbian with any degree of reliability. I have been at this for a while because until I started this I knew nothing about kernel hacking.

It has taken me this long to understand that the kernel oops that is happening is in the vchiq_util code.





I post the kernel oops below. My apologies for not commenting this block of text as code but as a blind user the forum interface is not easy to use. When I highlight a block of text and go looking for the 'code' button I lose the selected text.

Recently the foundation have begun to include the speakup modules in their kernel builds but it is still broken in their kernel as well.

Also, some recent changes to firmware or kernel has caused text-to-speech to stutter very badly.

Here is the kernel oops:


pi@raspberrypi:~$ [ 2800.108144] Unable to handle kernel NULL pointer dereference at virtual address 00000008
[ 2800.117443] pgd = c0004000
[ 2800.120278] [00000008] *pgd=00000000
[ 2800.123972] Internal error: Oops: 5 [#1] PREEMPT ARM

Entering kdb (current=0xda9481c0, pid 28) Oops: (null)
due to oops @ 0xc024b634

Pid: 28, comm: VCHIQ-0
CPU: 0 Tainted: G C (3.6.11-su+ #1)
PC is at vchiu_queue_is_empty+0x0/0x18
LR is at vchi_msg_dequeue+0x34/0xa0
pc : [<c024b634>] lr : [<c024afe8>] psr: 60000013
sp : da989f00 ip : 00000000 fp : c05be070
r10: 00000020 r9 : db000194 r8 : da989f24
r7 : 00000014 r6 : da989f20 r5 : 00000000 r4 : 00000004
r3 : da989f20 r2 : 00000014 r1 : da989f24 r0 : 00000004
Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 00c5387d Table: 19c1c008 DAC: 00000017
[<c0013b7c>] (unwind_backtrace+0x0/0xf0) from [<c0073168>] (kdb_dumpregs+0x28/0x50)
[<c0073168>] (kdb_dumpregs+0x28/0x50) from [<c00754ec>] (kdb_main_loop+0x3a8/0x6fc)
[<c00754ec>] (kdb_main_loop+0x3a8/0x6fc) from [<c0077bd0>] (kdb_stub+0x154/0x380)
[<c0077bd0>] (kdb_stub+0x154/0x380) from [<c006ed0c>] (kgdb_handle_exception+0x1f8/0x668)
[<c006ed0c>] (kgdb_handle_exception+0x1f8/0x668) from [<c00132fc>] (kgdb_notify+0x24/0x40)
[<c00132fc>] (kgdb_notify+0x24/0x40) from [<c0396c34>] (notifier_call_chain+0x44/0x84)
[<c0396c34>] (notifier_call_chain+0x44/0x84) from [<c0396cac>] (__atomic_notifier_call_chain+0x38/0x4c)
[<c0396cac>] (__atomic_notifier_call_chain+0x38/0x4c) from [<c0396cd8>] (atomic_notifier_call_chain+0x18/0x20)
[<c0396cd8>] (atomic_notifier_call_chain+0x18/0x20) from [<c0396d18>] (notify_die+0x38/0x44)
[<c0396d18>] (notify_die+0x38/0x44) from [<c0011138>] (die+0xc4/0x39c)
[<c0011138>] (die+0xc4/0x39c) from [<c038fa50>] (__do_kernel_fault.part.9+0x54/0x74)
[<c038fa50>] (__do_kernel_fault.part.9+0x54/0x74) from [<c0396944>] (do_page_fault+0x1e8/0x3ec)
[<c0396944>] (do_page_fault+0x1e8/0x3ec) from [<c000832c>] (do_DataAbort+0x34/0x98)
[<c000832c>] (do_DataAbort+0x34/0x98) from [<c0395138>] (__dabt_svc+0x38/0x60)
Exception stack(0xda989eb8 to 0xda989f00)
9ea0: 00000004 da989f24
9ec0: 00000014 da989f20 00000004 00000000 da989f20 00000014 da989f24 db000194
9ee0: 00000020 c05be070 00000000 da989f00 c024afe8 c024b634 60000013 ffffffff
[<c0395138>] (__dabt_svc+0x38/0x60) from [<c024b634>] (vchiu_queue_is_empty+0x0/0x18)
[<c024b634>] (vchiu_queue_is_empty+0x0/0x18) from [<c024afe8>] (vchi_msg_dequeue+0x34/0xa0)
[<c024afe8>] (vchi_msg_dequeue+0x34/0xa0) from [<bf075a94>] (audio_vchi_callback+0x48/0xac [snd_bcm2835])
[<bf075a94>] (audio_vchi_callback+0x48/0xac [snd_bcm2835]) from [<c024ae48>] (shim_callback+0x6c/0x138)
[<c024ae48>] (shim_callback+0x6c/0x138) from [<c0244bf8>] (slot_handler_func+0xdfc/0x1728)
[<c0244bf8>] (slot_handler_func+0xdfc/0x1728) from [<c003a914>] (kthread+0x88/0x94)
[<c003a914>] (kthread+0x88/0x94) from [<c000eafc>] (kernel_thread_exit+0x0/0x8)

kdb>
--
Michael Ray
Analyst/Programmer
Surrey, UK
4xB, 1xB+,
Creator and admin of:
raspberry-vi@freelists.org
Ham radio call: G4XBF
'Suddenly I am become death, destroyer of SD cards'

Return to “Linux Kernel”