Date: Tue, 20 Jan 2009 16:26:51 -0700 From: Adrian Owen <adrian@hostonfiber.com> To: freebsd-embedded@freebsd.org Subject: ITuner picoLCD 20x2 Message-ID: <D5FD831C-1CEE-47A5-8D6A-982876DBCF56@hostonfiber.com>
next in thread | raw e-mail | index | archive | help
Hello. I build the attached port and have the LCD things all working as expected. Unfortunately I have very sporadic and seemingly random response to the buttons on the M200 keypad. Using a windows machine I did verify that the hardware functioned as expected. Has anyone gotten this to work and if so how? I can certainly spend some time on this, but I am not familiar with driver or kernel programming whatsoever. Thanks, Adrian > Hi all, > > I'm looking at building a wi-fi point using an ALIX.1c board and I'm > currently evaluating cases for it. I noticed this fine case but I'm > wondering if anyone has any experience getting the LCD display working on > it which is an ITuner picoLCD 20x2: > > http://www.mini-box.com/M200-LCD-Enclosure > > A quick look through usbdevs shows an entry that should recognize it. We > have lcdproc in ports which has a driver (though, not built by the port > currently) for it but it relies on the vendor supplied usblcd library > which is at least available via source. Before I spend twice as much as > the model below it I'd like to know if anyone has had any luck with it. Okay, attached is a port for the driver. I had to "work around" our lack usb_get_driver_np() and usb_detach_kernel_driver_np() in libusb. By "work around" I mean "comment out" since I couldn't find any patches in the ports tree as an example of how to patch this correctly, only googled comments about doing that to get other devices to work on FreeBSD. I'd like to fix this correctly though. If anyone has one of these hanging around please let me know if it works. Thanks. tom -- | tmclaugh at sdf.lonestar.org tmclaugh at FreeBSD.org | | FreeBSD http://www.FreeBSD.org | -------------- next part -------------- # 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: # # ./usblcd # ./usblcd/Makefile # ./usblcd/distinfo # ./usblcd/pkg-descr # ./usblcd/files # ./usblcd/files/patch-lib_hid.c # ./usblcd/files/patch-autogen.c # ./usblcd/pkg-plist # echo c - ./usblcd mkdir -p ./usblcd > /dev/null 2>&1 echo x - ./usblcd/Makefile sed 's/^X//' >./usblcd/Makefile << 'END-of-./usblcd/Makefile' X# New ports collection makefile for: usblcd X# Date created: 10 November 2007 X# Whom: tom McLaughlin <tmclaugh at FreeBSD.org> X# X# $FreeBSD$ X# X XPORTNAME= usblcd XPORTVERSION= 0.1.4 XCATEGORIES= devel XMASTER_SITES= http://resources.mini-box.com/online/picoLCD%2020x2%20(OEM)/Software/Linux/Binaries/ XDISTNAME= ${PORTNAME}-src-${PORTVERSION} XEXTRACT_SUFX= .tgz X XWRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION} X XMAINTAINER= tmclaugh at FreeBSD.org XCOMMENT= Library for the Mini-Box picoLCD 2x20 USB display X XLIB_DEPENDS= usb:${PORTSDIR}/devel/libusb X XUSE_LDCONFIG= yes XUSE_AUTOTOOLS= libtool:15 automake:19 autoconf:261 XGNU_CONFIGURE= yes XCONFIGURE_TARGET= --build=${MACHINE_ARCH}-portbld-freebsd${OSREL} XCONFIGURE_ENV+= CPPFLAGS="-I${LOCALBASE}/include" \ X LDFLAGS="-L${LOCALBASE}/lib" X Xpost-patch: X @${REINPLACE_CMD} 's|[(]libdir[)]/pkgconfig|(prefix)/libdata/ pkgconfig|g' ${WRKSRC}/Makefile.am X Xpre-configure: X @cd ${WRKSRC}; ${AUTOTOOLS_ENV} ${SH} ./autogen.sh X X.include <bsd.port.mk> END-of-./usblcd/Makefile echo x - ./usblcd/distinfo sed 's/^X//' >./usblcd/distinfo << 'END-of-./usblcd/distinfo' XMD5 (usblcd-src-0.1.4.tgz) = d4b6e4fca4006dab3fca99c948756880 XSHA256 (usblcd-src-0.1.4.tgz) = e3a37fda1145d41998385dfd34d55793ff2788e33c220e5882c487369d9af4d9 XSIZE (usblcd-src-0.1.4.tgz) = 76712 END-of-./usblcd/distinfo echo x - ./usblcd/pkg-descr sed 's/^X//' >./usblcd/pkg-descr << 'END-of-./usblcd/pkg-descr' XThe Mini-Box USB LCD is an intelligent 2x20 character USB LCD display Xmodule with InfraRed receiver and keypad interface. It has a built in X8x5 dots ASCII character font with 8 used definable characters and Xprovides 8 GPO (General Purpose Output) pins. Internal EEPROM allows Xfirmware upgrading and splash screen definition. On power on XMini-Box USB LCD is able to show up to 10 user defined splash screns Xwith custom timing, order and led/gpo status. X XWWW: http://www.mini-box.com/picoLCD-20x2-OEM END-of-./usblcd/pkg-descr echo c - ./usblcd/files mkdir -p ./usblcd/files > /dev/null 2>&1 echo x - ./usblcd/files/patch-lib_hid.c sed 's/^X//' >./usblcd/files/patch-lib_hid.c << 'END-of-./usblcd/files/ patch-lib_hid.c' X--- lib/hid.c.orig 2006-12-07 15:30:30.000000000 -0500 X+++ lib/hid.c 2007-11-10 10:46:24.621463000 -0500 X@@ -140,13 +140,13 @@ X X signal(SIGTERM, release_usb_device); X X- ret = usb_get_driver_np((*hiddev)->handle, 0, buf, sizeof(buf)); X+/* ret = usb_get_driver_np((*hiddev)->handle, 0, buf, sizeof(buf)); X X if (ret == 0) { X printf("interface 0 already claimed by driver \"%s\", attempting to detach it\n", buf); X ret = usb_detach_kernel_driver_np((*hiddev)->handle, 0); X printf("usb_detach_kernel_driver_np returned %d\n", ret); X- } X+ }*/ X ret = usb_claim_interface((*hiddev)->handle, 0); X if (ret != 0) { X printf("claim failed with error %d\n", ret); END-of-./usblcd/files/patch-lib_hid.c echo x - ./usblcd/files/patch-autogen.c sed 's/^X//' >./usblcd/files/patch-autogen.c << 'END-of-./usblcd/files/ patch-autogen.c' X--- autogen.sh.orig 2006-01-08 23:03:23.000000000 -0500 X+++ autogen.sh 2007-11-10 11:57:45.181418000 -0500 X@@ -58,15 +58,15 @@ X echo "Generating configuration files for $package, please wait...." X X echo " aclocal $ACLOCAL_FLAGS" X-aclocal $ACLOCAL_FLAGS X+$ACLOCAL $ACLOCAL_FLAGS X echo " autoheader" X-autoheader X+$AUTOHEADER X echo " libtoolize --automake" X-libtoolize --automake X+$LIBTOOLIZE --automake X echo " automake --add-missing" X-automake --add-missing X+$AUTOMAKE --add-missing X echo " autoconf" X-autoconf X+$AUTOCONF X X cd $olddir X-$srcdir/configure "$@" && echo X+#$srcdir/configure "$@" && echo END-of-./usblcd/files/patch-autogen.c echo x - ./usblcd/pkg-plist sed 's/^X//' >./usblcd/pkg-plist << 'END-of-./usblcd/pkg-plist' Xbin/usblcd Xinclude/driver.h Xinclude/usblcd.h Xinclude/usblcd_util.h Xinclude/widgets.h Xlib/libusblcd.a Xlib/libusblcd.la Xlib/libusblcd.so Xlib/libusblcd.so.0 Xlibdata/pkgconfig/libusblcd.pc END-of-./usblcd/pkg-plist exit
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D5FD831C-1CEE-47A5-8D6A-982876DBCF56>