Issue if both speakup_soft and speakup-apollo are loaded in initrd, system on an USB drive
Didier Spaier
didier at slint.fr
Thu Oct 25 08:44:13 EDT 2018
Hello,
to allow usage of a Slackware or Slint system on an USB hard disk
plugged in on any PC, I have built an initrd with lot of USB drivers
loaded early, tested with a kernel 4.4.157 with no speakup drivers
built in.
If I include just speakup-soft (modprobe loading also speakup), I get
speech from espeak-ng just before login, as expected
If I also include speakup-apollo I get the weird output in attached
'newbug' report, when trying to start espeakup, after these lines in
/etc/rc.c/rc. espakup (also attached):
# Create '/dev/(soft)synth' if not present
(cd /dev
if [ ! -c /dev/softsynth ]; then
echo "Creating '/dev/softsynth'"
mknod softsynth c 10 26
fi
I attach the script 'load_kernel_modules' that loads the modules in the
initrd, and the output of lsmod just after booting.
Is this a known issue that could be solved just upgrading the kernel?
However, a quick look at these logs didn't allow me to find a clue:
https://github.com/torvalds/linux/commits/master/drivers/staging/speakup/speakup_soft.c
https://github.com/torvalds/linux/commits/master/drivers/staging/speakup/speakup_apollo.c
knowing that kernel 4.4 was released on 10 January 2016.
Should I build some speakup drivers in the kernel, then which ones?
Do you need additional information?
Cheers,
Didier
-------------- next part --------------
# This is a script used to load the kernel modules.
# To use it, chmod it 755, and then add the insmod
# lines needed to load your modules, like this:
modprobe -v mmc_core
modprobe -v pcmcia_core
modprobe -v pcmcia
modprobe -v ssb
modprobe -v ehci-hcd
modprobe -v ehci-pci
modprobe -v ehci-platform
modprobe -v fotg210-hcd
modprobe -v isp116x-hcd
modprobe -v isp1362-hcd
modprobe -v ohci-hcd
modprobe -v ohci-pci
modprobe -v ohci-platform
modprobe -v oxu210hp-hcd
modprobe -v r8a66597-hcd
modprobe -v sl811-hcd
modprobe -v sl811_cs
modprobe -v ssb-hcd
modprobe -v uhci-hcd
modprobe -v uwb
modprobe -v wusbcore
modprobe -v umc
modprobe -v whci
modprobe -v whci-hcd
modprobe -v xhci-hcd
modprobe -v xhci-pci
modprobe -v xhci-plat-hcd
modprobe -v usb-storage
modprobe -v uas
modprobe -v ums-freecom
modprobe -v speakup
modprobe -v speakup_soft
modprobe -v speakup_apollo
modprobe -v hid
modprobe -v usbhid
modprobe -v hid-generic
modprobe -v jbd2
modprobe -v mbcache
modprobe -v ext4
-------------- next part --------------
Module Size Used by
ipv6 337574 32
bnep 11487 2
nls_iso8859_1 4905 1
nls_cp437 6623 1
vfat 10564 1
fat 56349 1 vfat
fuse 85094 1
uinput 8794 1
joydev 10496 0
btusb 30305 0
i2c_dev 6252 0
btrtl 4402 1 btusb
btbcm 7234 1 btusb
btintel 8007 1 btusb
bluetooth 315713 24 bnep,btbcm,btrtl,btusb,btintel
coretemp 6780 0
intel_rapl 11044 0
iosf_mbi 3821 1 intel_rapl
x86_pkg_temp_thermal 5665 0
intel_powerclamp 8978 0
kvm_intel 161137 0
iwldvm 128424 0
mac80211 612361 1 iwldvm
kvm 510755 1 kvm_intel
irqbypass 3583 1 kvm
crct10dif_pclmul 5461 0
crc32_pclmul 3238 0
crc32c_intel 13583 0
firewire_ohci 32793 0
nouveau 1474958 0
evdev 13220 12
i915 1195903 1
mxm_wmi 2049 1 nouveau
ttm 82705 1 nouveau
psmouse 113450 0
i2c_i801 16973 0
drm_kms_helper 119698 2 i915,nouveau
ghash_clmulni_intel 4701 0
serio_raw 5146 0
firewire_core 56655 1 firewire_ohci
thinkpad_acpi 73546 1
wmi 9259 2 mxm_wmi,nouveau
iwlwifi 119806 1 iwldvm
e1000e 178316 0
drm 323926 5 ttm,i915,drm_kms_helper,nouveau
cfg80211 527411 3 iwlwifi,mac80211,iwldvm
fjes 21479 0
intel_gtt 14002 1 i915
agpgart 31988 4 drm,ttm,nouveau,intel_gtt
i2c_algo_bit 6154 2 i915,nouveau
fb_sys_fops 1730 1 drm_kms_helper
syscopyarea 3458 1 drm_kms_helper
sysfillrect 3950 1 drm_kms_helper
sysimgblt 2608 1 drm_kms_helper
sdhci_pci 17993 0
i2c_core 48117 7 drm,i915,i2c_i801,i2c_dev,drm_kms_helper,i2c_algo_bit,nouveau
sdhci 29068 1 sdhci_pci
nvram 6828 1 thinkpad_acpi
hwmon 4199 3 coretemp,thinkpad_acpi,nouveau
rfkill 18649 4 cfg80211,thinkpad_acpi,bluetooth
video 30072 3 i915,thinkpad_acpi,nouveau
snd_hda_codec_conexant 12549 1
snd_hda_codec_generic 61252 1 snd_hda_codec_conexant
snd_hda_intel 30219 0
snd_hda_codec 108525 3 snd_hda_codec_conexant,snd_hda_codec_generic,snd_hda_intel
snd_hda_core 53138 4 snd_hda_codec_conexant,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel
snd_hwdep 6656 1 snd_hda_codec
snd_pcm 93250 3 snd_hda_codec,snd_hda_intel,snd_hda_core
mei_me 19075 0
mei 62863 1 mei_me
battery 14760 0
ac 5440 0
thermal 11441 0
shpchp 26680 0
button 5943 2 i915,nouveau
snd_timer 22402 1 snd_pcm
ptp 12164 1 e1000e
pps_core 7902 1 ptp
snd 69563 8 snd_hwdep,snd_timer,snd_hda_codec_conexant,snd_pcm,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,thinkpad_acpi
lpc_ich 14738 0
soundcore 6876 1 snd
tpm_tis 11588 0
tpm 36580 1 tpm_tis
processor 29079 0
loop 21505 0
ext4 578159 1
mbcache 8563 1 ext4
jbd2 92882 1 ext4
hid_generic 1551 0
usbhid 38863 0
hid 108027 2 hid_generic,usbhid
speakup_soft 5979 0
speakup 92695 1 speakup_soft
ums_freecom 3444 0
uas 14162 0
usb_storage 56102 4 uas,ums_freecom
xhci_plat_hcd 4056 0
xhci_pci 5065 0
xhci_hcd 118009 2 xhci_plat_hcd,xhci_pci
whci_hcd 26890 0
whci 3620 1 whci_hcd
umc 4876 2 whci,whci_hcd
wusbcore 35287 1 whci_hcd
uwb 65331 2 whci_hcd,wusbcore
uhci_hcd 23452 0
ssb_hcd 3021 0
sl811_cs 3377 0
sl811_hcd 13515 1 sl811_cs
r8a66597_hcd 26281 0
oxu210hp_hcd 24333 0
ohci_platform 5281 0
ohci_pci 3618 0
ohci_hcd 29428 2 ohci_platform,ohci_pci
isp1362_hcd 32094 0
isp116x_hcd 19926 0
fotg210_hcd 36736 0
ehci_platform 6130 0
ehci_pci 4285 0
ehci_hcd 44114 2 ehci_pci,ehci_platform
ssb 58527 1 ssb_hcd
pcmcia 37397 2 ssb,sl811_cs
pcmcia_core 16039 1 pcmcia
mmc_core 107040 3 ssb,sdhci,sdhci_pci
-------------- next part --------------
Creating '/dev/softsynth'
[ 38.345699] BUG: unable to handle kernel NULL pointer dereference at (null)
[ 38.349137] IP: [<ffffffff8132077e>] strcmp+0xe/0x30
[ 38.352537] PGD 8000000234729067 PUD 23e098067 PMD 0
[ 38.355946] Oops: 0000 [#1] SMP
[ 38.359331] Modules linked in: ipv6 bnep nls_iso8859_1 nls_cp437 vfat fat fuse uinput joydev btusb i2c_dev btrtl btbcm btintel bluetooth coretemp intel_rapl iosf_mbi x86_pkg_temp_thermal intel_powerclamp kvm_intel iwldvm mac80211
kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel firewire_ohci nouveau evdev i915 mxm_wmi ttm psmouse i2c_i801 drm_kms_helper ghash_clmulni_intel serio_raw firewire_core thinkpad_acpi wmi iwlwifi e1000e drm cfg80211 fjes
intel_gtt agpgart
i2c_algo_bit fb_sys_fops syscopyarea sysfillrect sysimgblt sdhci_pci i2c_core sdhci nvram hwmon rfkill video snd_hda_codec_conexant snd_hda_codec_generic snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep snd_pcm mei_me mei mbcache
jbd2 hid_generic usbhid hid speakup_soft(C) speakup(C) ums_freecom uas usb_storage xhci_plat_hcd xhci_pci xhci_hcd whci_hcd whci umc wusbcore uwb uhci_hcd ssb_hcd sl811_cs sl811_hcd r8a66597_hcd oxu210hp_hcd ohci_platform ohci_pci
ohci_hcd isp1362_hcd isp116x_hcd fotg210_hcd ehci_platform ehci_pci ehci_hcd ssb pcmcia pcmcia_core mmc_core
[ 38.359441] CPU: 0 PID: 981 Comm: rc.M Tainted: G C 4.4.157 #1
[ 38.359443] Hardware name: LENOVO 4284CY1/4284CY1, BIOS 8BET62WW (1.42 ) 07/26/2013
[ 38.359445] task: ffff88006c0055c0 ti: ffff88023e324000 task.ti: ffff88023e324000
[ 38.359447] RIP: 0010:[<ffffffff8132077e>] [<ffffffff8132077e>] strcmp+0xe/0x30
[ 38.359452] RSP: 0018:ffff88023e327d70 EFLAGS: 00010202
[ 38.359454] RAX: 0000000000000000 RBX: ffffffffc0171a08 RCX: 0000000000000004
[ 38.359455] RDX: 0000000080000000 RSI: ffff88023e327db6 RDI: 0000000000000001
[ 38.359457] RBP: ffff88023e327d70 R08: 0000000000000074 R09: ffffffff818628d0
[ 38.359458] R10: 0000000000000004 R11: 0000000000000246 R12: ffffffffc01833a0
[ 38.359460] R13: ffffffffc017e860 R14: ffff88023e327db6 R15: ffff88006b85d218
[ 38.359462] FS: 00007f05a3db0700(0000) GS:ffff88023dc00000(0000) knlGS:0000000000000000
[ 38.359464] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 38.359466] CR2: 0000000000000000 CR3: 0000000233352000 CR4: 0000000000060670
[ 38.359466] Stack:
[ 38.359468] ffff88023e327da0 ffffffffc0167151 0000000000000004 0000000000000004
[ 38.359471] 0000000000000005 ffff88006bb99618 ffff88023e327de8 ffffffffc016520b
[ 38.359474] 6f73880234653c00 0000000000007466 0c56aa035622d2a4 ffff88006b85d200
[ 38.359478] Call Trace:
[ 38.359492] [<ffffffffc0167151>] synth_init+0x91/0xd0 [speakup]
[ 38.359499] [<ffffffffc016520b>] synth_store+0x9b/0xf0 [speakup]
[ 38.359503] [<ffffffff8131a912>] kobj_attr_store+0x12/0x20
[ 38.359509] [<ffffffff81241bfc>] sysfs_kf_write+0x3c/0x50
[ 38.359513] [<ffffffff812411d3>] kernfs_fop_write+0x143/0x180
[ 38.359519] [<ffffffff811c99bb>] __vfs_write+0x2b/0x100
[ 38.359523] [<ffffffff811e6544>] ? __fd_install+0x24/0xc0
[ 38.359529] [<ffffffff810d2272>] ? percpu_down_read+0x12/0x50
[ 38.359533] [<ffffffff811ca099>] vfs_write+0xa9/0x1a0
[ 38.359536] [<ffffffff811c7599>] ? filp_close+0x59/0x80
[ 38.359541] [<ffffffff811cac96>] SyS_write+0x46/0xa0
[ 38.359547] [<ffffffff8169048e>] entry_SYSCALL_64_fastpath+0x22/0x92
[ 38.359548] Code: 80 3a 00 75 f7 48 83 c6 01 0f b6 4e ff 48 83 c2 01 84 c9 88 4a ff 75 ed 5d c3 0f 1f 00 55 48 89 e5 eb 04 84 c0 74 18 48 83 c7 01 <0f> b6 47 ff 48 83 c6 01 3a 46 ff 74 eb 19 c0 83 c8 01 5d c3 31
[ 38.359586] RIP [<ffffffff8132077e>] strcmp+0xe/0x30
[ 38.359590] RSP <ffff88023e327d70>
[ 38.359591] CR2: 0000000000000000
[ 38.359611] ---[ end trace e86fcb21a80bd6f9 ]---
battery ac thermal shpchp button snd_timer ptp pps_core snd lpc_ich soundcore tpm_tis tpm processor loop ext4
Welcome to Linux 4.4.157 (tty1)
USB4 login:
-------------- next part --------------
#!/bin/sh
# Create '/dev/(soft)synth' if not present
(cd /dev
if [ ! -c /dev/softsynth ]; then
echo "Creating '/dev/softsynth'"
mknod softsynth c 10 26
fi
if [ ! -c /dev/synth ]; then
echo "Creating '/dev/synth'"
mknod synth c 10 25
fi
)
# Load the software synthesizer
echo "soft" > /sys/accessibility/speakup/synth
sleep 1
# Permissions
chmod 666 /sys/accessibility/speakup/soft/*
echo 1 > /sys/accessibility/speakup/soft/direct
[ "$LANG" = "" ] && . /etc/profile.d/lang.sh
if [ -f /etc/espeakup.conf ]; then
. /etc/espeakup.conf
[ ! "$rate" = "" ] && echo $rate > /sys/accessibility/speakup/soft/rate
[ ! "$vol" = "" ] && echo $vol > /sys/accessibility/speakup/soft/vol
[ ! "$pitch" = "" ] && echo $pitch > /sys/accessibility/speakup/soft/pitch
if [ ! "$language" = "" ]; then
setlanguage="$language"
else
setlanguage=${LANG%_*}
fi
else
setlanguage=${LANG%_*}
fi
# Starts/stops/restarts espeakup
espeakup_start() {
if [ ! "`ps -C espeakup --noheaders|wc -l`" = "0" ]; then
echo "espeakup is already started."
espeakup_status
exit
fi
if [ -x /usr/bin/espeakup ]; then
echo "Starting espeakup"
/usr/bin/espeakup -V $setlanguage
else
echo "/usr/bin/espeakup not found or non executable"
fi
}
espeakup_stop() {
NBPROC="`ps -C espeakup --noheaders|wc -l`"
if [ ! "$NBPROC" = "0" ]; then
echo "Stopping espeakup..."
PID="`ps -C espeakup --noheaders -o pid`"
kill $PID
# Restore the defaults
echo 2 > /sys/accessibility/speakup/soft/rate
echo 5 > /sys/accessibility/speakup/soft/vol
echo 5 > /sys/accessibility/speakup/soft/pitch
fi
}
espeakup_restart() {
espeakup_stop
sleep 2
espeakup_start
}
espeakup_status() {
NBPROC="`ps -C espeakup --noheaders|wc -l`"
if [ "$NBPROC" = "0" ]; then
echo "espeakup is not started"
elif [ "$NBPROC" = "1" ]; then
echo "An espeakup daemon is running, PID: `ps -C espeakup --no-headers -o pid`"
else
ps -C espeakup -o pid,args
fi
}
case "$1" in
start)
espeakup_start;;
stop)
espeakup_stop;;
restart)
espeakup_restart;;
status)
espeakup_status;;
*)
echo "Usage: $0 {start|stop|restart|status}";;
esac
More information about the Speakup
mailing list