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