NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/47142: usbhidctl vs. SDL et al.
>Number: 47142
>Category: kern
>Synopsis: usbhidctl vs. SDL et al.
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Oct 30 17:05:00 +0000 2012
>Originator: Thomas Klausner
>Release: NetBSD 6.99.14
>Organization:
Curiosity is the very basis of education and if you tell me that
curiosity killed the cat, I say only that the cat died nobly.
- Arnold Edinborough
>Environment:
System: NetBSD yt.nih.at 6.99.14 NetBSD 6.99.14 (YT) #27: Sat Oct 20 15:01:54
CEST 2012
wiz%yt.nih.at@localhost:/archive/cvs/src/sys/arch/amd64/compile/obj/YT amd64
Architecture: x86_64
Machine: amd64
>Description:
Programs using SDL and some others would hang during startup.
I've tracked it down to the reason that usbhidctl is started together with
my X session (.xinitrc). If that is still running, SDL hangs when trying
to access /dev/uhid0. Such a program can't even be killed with -9.
When I kill usbhidctl first, SDL-using programs start fine.
When I kill usbhidctl after starting an SDL-using programs (which hangs
trying to access /dev/uhid0), I get a kernel panic.
I don't see the panic, since I'm in X, but in the next boot's log I see
Oct 16 21:28:41 yt savecore: reboot after panic: 836 1835 1834 1833 1832 1831
1830 1829 1828 1827 1826 1825 1824 1823 1822 1821 1820 1819 1818 1817 1816 1815
-rw------- 1 root wheel 8292230744 Oct 16 21:35 netbsd.2.core.gz
-rw------- 1 root wheel 372043 Oct 16 21:35 netbsd.2.gz
exist, but netbsd.2.gz looks too small to be useful (separate issue).
This leaves me with some questions:
Why is /dev/uhid0 blocked when usbhidctl is active?
Why does SDL care, and not just try opening non-blocking?
Why can't I kill -9 such programs?
Why do I get a kernel panic (see above)?
>How-To-Repeat:
cat > .usbhidconf << EOF
Consumer:Play/Pause 1 mpc toggle
Consumer:Scan_Next_Track 1 mpc next
Consumer:Scan_Previous_Track 1 mpc prev
Consumer:Volume_Up 1 mixerctl -w outputs.master2++
Consumer:Volume_Down 1 mixerctl -w outputs.master2--
Consumer:Mute 1 mixerctl -w outputs.master7.mute--
EOF
usbhidctl -f 0 -c $(pwd)/.usbhidconf
cd /usr/pkgsrc/games/monsterz
make install
monsterz
(other SDL-using programs should be fine too)
>Fix:
Yes, please.
>Unformatted:
Home |
Main Index |
Thread Index |
Old Index