Nexcom LCD issue
I'm currently have a Nexcom P4 server including a lcd display with buttons. After installation pfsense 2.0.1 i've added de LCDProc packages.
In the dropdown box the nexcom display is selected. As far i know it is a parralel port. The problem is that nothing appears on the display.
The log files tells me:
LCDd: Could not open driver module /usr/local/lib/lcdproc/nexcom.so: Shared object "libkvm.so.4" not found, required by "nexcom.so"
Does anyone have a solution.
Try the lcdproc-dev package instead (uninstall the old one first). It is newly updated so shouldn't have that problem. Though I don't know if the driver has been recompiled.
You could also get around that problem by symlinking libkvm.so.5 to libkvm.so.4.
[2.0.1-RELEASE][email@example.com]/root(6): cd /lib [2.0.1-RELEASE][firstname.lastname@example.org]/lib(7): ln -s libkvm.so.5 libkvm.so.4 [2.0.1-RELEASE][email@example.com]/lib(8): ls geom libalias_pptp.so libc.so.7 libgeom.so.5 libmd.so.5 libssp.so.0 libalias.so.7 libalias_skinny.so libcam.so.5 libipsec.so.4 libncurses.so.8 libthr.so.3 libalias_cuseeme.so libalias_smedia.so libcrypt.so.5 libjail.so.1 libncursesw.so.8 libufs.so.5 libalias_dummy.so libavl.so.2 libcrypto.so.6 libkiconv.so.4 libnvpair.so.2 libutil.so.8 libalias_ftp.so libbegemot.so.4 libdevstat.so.7 libkvm.so.4 libpcap.so.7 libuutil.so.2 libalias_irc.so libbsdxml.so.4 libedit.so.7 libkvm.so.5 libreadline.so.8 libz.so.5 libalias_nbt.so libbsnmp.so.5 libgcc_s.so.1 libm.so.5 libsbuf.so.5 libzfs.so.2
Currently i tried with both versions, in both version i get the same error.
Your solution for symlinking doesn't solve the problem.
Is there a specific bios setting needed?
I don't have a nexcom display so I can't comment on bios options etc.
Does it give a new error? I'm surprised the symlink didn't work. We used that for a long time with the SDEC display driver.
The display is 2rows 16characters. ls in the lib directory shows following output
ls geom libbsdxml.so.4 libgeom.so.5 libpcap.so.7 libalias.so.7 libbsnmp.so.5 libipsec.so.4 libreadline.so.8 libalias_cuseeme.so libc.so.6 libjail.so.1 libsbuf.so.5 libalias_dummy.so libc.so.7 libkiconv.so.4 libssp.so.0 libalias_ftp.so libcam.so.5 libkvm.so.3 libthr.so.3 libalias_irc.so libcrypt.so.5 libkvm.so.4 libufs.so.5 libalias_nbt.so libcrypto.so.6 libkvm.so.5 libumem.so.2 libalias_pptp.so libctf.so.2 libm.so.5 libutil.so.8 libalias_skinny.so libdevstat.so.7 libmd.so.5 libuutil.so.2 libalias_smedia.so libdtrace.so.2 libncurses.so.8 libz.so.5 libavl.so.2 libedit.so.7 libncursesw.so.8 libzfs.so.2 libbegemot.so.4 libgcc_s.so.1 libnvpair.so.2 libzpool.so.2
The color of libkvm.so.4 is purple, is this ok, of is there a other issue?
The purple colour simply indicates that it's a link not a real file.
I see you also have libkvm.so.3, did you add that?
No other errors in the logs when you try to start it?
Ah, and you also have libc.so.6. Is that something you added?
Before a new sdec driver was written we only had an older driver that had originally been compiled against FreeBSD 7.3 to run on pfSense 1.2.X.
This driver expected to see: libkvm.so.3 and libc.so.6. These files no longer exist in FreeBSD 8.1 (the base fro pfSense 2.0.X) but the driver could be made to work by symlinking to the newer files.
You seem to have the older files on your box. That won't work. You probably need to remove them and symlink to the newer ones. Unless they are already linked. I remember that it gave no error without one of the links. Do you know how they got there?
The nexcom driver was compiled for FreeBSD 7.x and doesn't work on pfSense 2.x. We've been trying to track down the original source of that LCDProc driver but nobody seems to have it, not even nexcom.
Making symlinks between library versions is a good way to break your system. There could be differences between the versions that are not that simple to resolve.
The nexcom driver was compiled for FreeBSD 7.x and doesn't work on pfSense 2.x.
Nothing to be done for the moment then. :(
Making symlinks between library versions is a good way to break your system.
It never caused trouble with the SDEC driver but I can see that may have been just lucky, thanks for the heads up.
If anyone else can manage to locate a copy of the Nexcom LCDProc driver source, we'd love to make an updated module (and one for amd64 and i386)…
But nobody even at Nexcom seems to have any record of their devices ever working on FreeBSD or with LCDProc...
There was a link to the source here on the forum but it's been gone for a while, and the person who had hosted it doesn't have a copy any longer either.
We have some lcm and other code from Nexcom but it's all for Linux, and none of it is for LCDProc.
Hmm, some Googling later…
I could be very wrong about this (I often am!) but it appears at first glance as though the new driver fmertz has written for the firebox LCD is based on an almost identical spec sheet to the lcd referenced by Nexcom in this post:
I'm a nexcom stuff.
I'd like to submit the nexcom lcm driver to lcdproc standard distribution.
The attachment is a tar ball of nexcom lcm that include relational files.
You could download the datasheet from here:
And also in this post, which I'm guessing is where the original driver came from.
I guess the pinout of the connection could be different but not hard to modify.
We have the lcm code that was posted but it's really just a demo program for Linux and doesn't actually have an lcdproc module in it. Though if someone more familiar with the internals of LCDproc wants to give it a shot, it's here:
Seems like this device has history. From reading the spec, I concur that it is basically the same SDEC LCD as in the Watchguard Fireboxes, with the exception of being 16 char wide (instead of 20), and not having a backlight (Can owner confirm?). Even the parallel port interface is the same. The keypad mapping looks different.
Seems like this driver was submitted upstream to lcdproc, and rejected for being too similar to the hd44780 driver:
Then, it seems like someone released code for a parallel port interface for the same hd44780 driver:
Seems like current versions of this hd44780 driver have parallel port support (interface ext8bit).
The Linux tar ball is interesting. There is a kernel module for driving the LCD. This is good documentation for the actual parallel port implementation. Documents the keypad, too. The user-space code is too far off for us to use as it requires the kernel module. This far, lcdproc is all user-space, which is great for portability.
So, it seems like there are a couple of options:
Modify/supplement the existing sdeclcd driver to support this device
Try the parallel interface to this hd44780 driver
Maybe just trying the sdeclcd driver as is might work some. This would be a good test for basic functionality. Also, this hd44780 driver might work, too. Up to the owner of the hardware to report findings at this point.
Some pretty detailed instructions on the lcm-162 connection type for the hd44780 driver can be found here:
The source of that github repo it would seem.