ports/137793: [NEW PORT] sysutils/uhidd: Userland USB HID device driver using libusb20

Kai Wang kaiwang27 at gmail.com
Sat Aug 15 10:00:17 UTC 2009


>Number:         137793
>Category:       ports
>Synopsis:       [NEW PORT] sysutils/uhidd: Userland USB HID device driver using libusb20
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat Aug 15 10:00:16 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Kai Wang
>Release:        FreeBSD 8.0-CURRENT amd64
>Organization:
>Environment:
System: FreeBSD viskning 8.0-CURRENT FreeBSD 8.0-CURRENT #1: Thu Jul  2 17:09:59 CEST
>Description:
uhidd is a userland driver/daemon for USB HID devices (e.g. mouse,
keyboard) using libusb20. The driver aims to support USB HID devices
with multiple Top-Level application collections in one interface, i.e,
HID devices with multiple logical device sharing one endpoint.

WWW:	http://wiki.FreeBSD.org/uhidd

Generated with FreeBSD Port Tools 0.77
>How-To-Repeat:
>Fix:

--- uhidd-0.1.4.shar begins here ---
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	uhidd
#	uhidd/pkg-descr
#	uhidd/Makefile
#	uhidd/pkg-plist
#	uhidd/distinfo
#	uhidd/files
#	uhidd/files/uhidd.in
#	uhidd/files/pkg-message.in
#
echo c - uhidd
mkdir -p uhidd > /dev/null 2>&1
echo x - uhidd/pkg-descr
sed 's/^X//' >uhidd/pkg-descr << '3be30e8198dbe500c7aae0ca5e48e5f7'
Xuhidd is a userland driver/daemon for USB HID devices (e.g. mouse,
Xkeyboard) using libusb20. The driver aims to support USB HID devices
Xwith multiple Top-Level application collections in one interface, i.e,
XHID devices with multiple logical device sharing one endpoint.
X
XWWW:	http://wiki.FreeBSD.org/uhidd
3be30e8198dbe500c7aae0ca5e48e5f7
echo x - uhidd/Makefile
sed 's/^X//' >uhidd/Makefile << '29caa69ac551a836c9f82da435d2286b'
X# New ports collection makefile for:	uhidd
X# Date created:		2009-08-07
X# Whom:			Kai Wang <kaiwang27 at gmail.com>
X#
X# $FreeBSD$
X#
X
XPORTNAME=	uhidd
XPORTVERSION=	0.1.4
XCATEGORIES=	sysutils
XMASTER_SITES=	http://people.freebsd.org/~kaiw/distfiles/
X
XMAINTAINER=	kaiwang27 at gmail.com
XCOMMENT=	Userland USB HID device driver using libusb20
X
XNO_PACKAGE=	should be recompiled for a particular FreeBSD kernel
X
XOPTIONS=	DEVD "Install devd files" on
X
XKMODDIR?=	/boot/modules
X
XUSE_RC_SUBR=	uhidd
X
XMAN4=		uvhid.4
XMAN8=		uhidd.8
X
X.include <bsd.port.pre.mk>
X
X.if ${OSVERSION} < 800069
XBROKEN=		Does not build with the old USB stack
X.endif
X
X.if !exists(/usr/src/sys/Makefile)
XIGNORE=		requires kernel source files
X.endif
X
X.if !defined(WITHOUT_DEVD)
XPLIST_SUB+=	PL_DEVD=""
X.else
XPLIST_SUB+=	PL_DEVD="@comment "
X.endif
X
XSUB_FILES+=	pkg-message
X
Xdo-install:
X	${INSTALL_PROGRAM} ${WRKSRC}/uhidd/uhidd ${PREFIX}/sbin/uhidd
X	${INSTALL_KLD} ${WRKSRC}/uvhid/uvhid.ko ${KMODDIR}/uvhid.ko
X	${INSTALL_MAN} ${WRKSRC}/uhidd/uhidd.8 ${PREFIX}/man/man8/uhidd.8
X	${INSTALL_MAN} ${WRKSRC}/uvhid/uvhid.4 ${PREFIX}/man/man4/uvhid.4
X.if !defined(WITHOUT_DEVD)
X	${MKDIR} ${PREFIX}/etc/devd
X	${REINPLACE_CMD} -Ee \
X		"s%/usr/local%${PREFIX}%" ${WRKSRC}/uhidd/uhidd-devd.conf.sample
X	${INSTALL_DATA} ${WRKSRC}/uhidd/uhidd-devd.conf.sample ${PREFIX}/etc/devd/
X	@if [ ! -f ${PREFIX}/etc/devd/uhidd-devd.conf ]; then \
X		${CP} -p ${PREFIX}/etc/devd/uhidd-devd.conf.sample \
X			${PREFIX}/etc/devd/uhidd-devd.conf; \
X	fi
X.endif
X
Xpost-install:
X	@${ECHO_CMD}; ${CAT} ${PKGMESSAGE}; ${ECHO_CMD}
X
X.include <bsd.port.post.mk>
29caa69ac551a836c9f82da435d2286b
echo x - uhidd/pkg-plist
sed 's/^X//' >uhidd/pkg-plist << '35ca6e81a0c4eecf7d825f7aa361140a'
X%%PL_DEVD%%@unexec if cmp -s %D/etc/devd/uhidd-devd.conf.sample %D/etc/devd/uhidd-devd.conf; then rm -f %D/etc/devd/uhidd-devd.conf; fi
X%%PL_DEVD%%etc/devd/uhidd-devd.conf.sample
X%%PL_DEVD%%@exec if [ ! -f %D/etc/devd/uhidd-devd.conf ]; then mkdir -p %B; cp -p %D/%F %B/uhidd-devd.conf; fi
X%%PL_DEVD%%@dirrmtry etc/devd
Xsbin/uhidd
X at cwd /boot/modules
Xuvhid.ko
X at exec kldxref %D
X at unexec kldxref %D
35ca6e81a0c4eecf7d825f7aa361140a
echo x - uhidd/distinfo
sed 's/^X//' >uhidd/distinfo << 'ffee9c2b87eb38e682a28fcc45f2fc42'
XMD5 (uhidd-0.1.4.tar.gz) = 3e026f0b29b6b9b60766cb7c16a7bffb
XSHA256 (uhidd-0.1.4.tar.gz) = 8c19ba127af58843b703a2b5fa91aa26817f179fb24bf20b4cb3c6c8dd40f022
XSIZE (uhidd-0.1.4.tar.gz) = 44160
ffee9c2b87eb38e682a28fcc45f2fc42
echo c - uhidd/files
mkdir -p uhidd/files > /dev/null 2>&1
echo x - uhidd/files/uhidd.in
sed 's/^X//' >uhidd/files/uhidd.in << 'ec57cf04e204289e411581bab53cc21d'
X#!/bin/sh
X#
X# $FreeBSD$
X#
X
X# PROVIDE: uhidd
X# REQUIRE: DAEMON cleanvar
X# KEYWORD: nojail shutdown
X
X. %%RC_SUBR%%
X
X# Usage:
X#	uhidd start ugenX.Y	# start uhidd on device 'ugenX.Y'
X#	uhidd stop ugenX.Y	# stop uhidd on device 'ugenX.Y'
X#	uhidd start		# start uhidd on all ugen device.
X#	uhidd stop		# stop all uhidd instances.
X
Xname="uhidd"
Xrcvar=`set_rcvar`
Xcommand="%%PREFIX%%/sbin/${name}"
Xstart_cmd="uhidd_start"
Xrequired_modules="uvhid vkbd"
Xpidprefix="/var/run/uhidd"
X
Xload_rc_config $name
X
Xif [ -n "$2" ]; then
X	pidfile="${pidprefix}.`basename $2`.pid"
Xelse
X	pidfile=
Xfi
X
Xuhidd_start()
X{
X	local dev pf
X
X	if [ -n "$1" ]; then
X		${command} ${uhidd_flags} $1
X	else
X		for dev in /dev/ugen*; do
X			pf="${pidprefix}.`basename ${dev}`.pid"
X			if [ ! -f ${pf} ]; then
X				${command} ${uhidd_flags} ${dev}
X			fi
X		done
X	fi
X}
X
Xrun_rc_command $*
ec57cf04e204289e411581bab53cc21d
echo x - uhidd/files/pkg-message.in
sed 's/^X//' >uhidd/files/pkg-message.in << '70f0b23dbd43517f4fc9388e64cd0825'
X==============================================================================
X
XTo use uhidd daemon for USB hid devices, you need to remove 'device ums',
X'device ukbd', and 'device uhid' from your kernel config file and recompile
Xthe kernel. Or if these drivers are loaded as kernel modules, kldunload them.
X
XIf you want to run uhidd deamon at the startup, add the following lines to
X/etc/rc.conf:
X
X	uhidd_flags="-kmhs"
X	uhidd_enable="YES"
X
XTo manually start/stop uhidd daemon on certain device, run:
X
X	%%PREFIX%%/etc/rc.d/uhidd [start|stop] /dev/ugen.X.Y
X
XSee http://wiki.freebsd.org/uhidd for more details about how to install and
Xsetup the daemon.
X
X==============================================================================
70f0b23dbd43517f4fc9388e64cd0825
exit
--- uhidd-0.1.4.shar ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list