LCDProc package update
-
i was checking my notes and there is another file that needs to be uploaded for the display to work. After it compiles the picolcd.so driver, can you also upload /usr/local/lib/libusb.so.2? This lib is needed for picolcd.so to work.
I also had to add references so i can pick the Com Port. I added this to lcdproc.xml, lcdproc.inc:
ugen0.2(/dev/ugen0.2)
ugen1.2(/dev/ugen1.2)
ugen2.2(/dec/ugen2.2)and added after "case "bayrad":" in lcdproc.inc
case "picolcd": $config_text .= "[{$lcdproc_config['driver']}]\n"; $config_text .= "driverpath=/usr/local/lib/lcdproc/\n"; $config_text .= "Device={$realport}\n"; $config_text .= "Size={$lcdproc_config['size']}\n"; $config_text .= "KeyTimeout=500\n"; $config_text .= "Brightness=1000\n"; $config_text .= "Blacklight_Timer=60\n"; $config_text .= "Contrast=1000\n"; $config_text .= "Keylights=on\n"; $config_text .= "Key0Light=on\n"; $config_text .= "Key1Light=off\n"; $config_text .= "Key2Light=off\n"; $config_text .= "Key3Light=off\n"; $config_text .= "Key4Light=off\n"; $config_text .= "Key5Light=off\n"; break;
I just checked my box and I have it configured to use ugen2.2. When I ran usbconfig on the box, its on ugen0.2. Doesn't make sense but it works.
Here is a copy of all the files that i copy over after installing the lcdproc package if you want to reference:
http://dl.dropbox.com/u/11597356/pfSense/lcdpro%20files/lcdproc-picolcd.tar.gz
-
I don't know much about the the backend of the pfsense packaging system but once you update the xmls, does it compile everything on their servers or do you have update pre-compile binaries?
That's not how the package system works. It's independent of the pfSense build system. It's up to the package maintainer to keep it working if something big is changed in pfSense. There's quite a lot of good infomation over in the dev wiki but it's a bit spread out. I've been trying to assimilate it over the past few months! ::)
Mostly the package system gives you an easy way to have a nice GUI for your package that's all tied in with the main pfSense GUI. It also handles installing and uninstalling the package and reinstalling after a firmware update.@mdima, I'm interested in the exact syntax you have used for compiling the driver for lcdproc as I've been struggling to do the same for some time. :-\
Steve
-
Thanks Steve! I've done some reading also and not there yet to create my own.
@mdima Take a look here, looks like you need to open a ticket http://forum.pfsense.org/index.php/topic,25519.msg132491.html#msg132491
-
@mdima, I'm interested in the exact syntax you have used for compiling the driver for lcdproc as I've been struggling to do the same for some time. :-\
Steve
Hi, I was using the syntax I got from the instructions, with the parameter –enable-drivers=all
I just run:./configure --enable-drivers=all make
and it made the job…
-
Thanks for that. :)
I managed to get it to compile in the end. My biggest problem was a typo I made in the config files while adding the driver. :-[Actually I might take this opportunity to document the process if you don't mind me hi-jacking your thread.
Steve
-
Thanks Steve! I've done some reading also and not there yet to create my own.
@mdima Take a look here, looks like you need to open a ticket http://forum.pfsense.org/index.php/topic,25519.msg132491.html#msg132491
OK! Sorry for the delay but I just got back from my "summer break" and the urgent stuff was stucking me…
Also, it took a lot of time because I wanted to compile also the picolcd driver, but it's really hard, at least for me, since I should install also the libusb library that is needed but I don't know where to install them... btw, in the end I was using the drivers from your dropbox, and I used the x86 version...
At this address (http://staff.nt2.it/lcdproc.zip) you can download the files to install on the pfSense box. The files in the /bin directory should be copied on the box in the directory /usr/local/lib/lcdproc, the others in the directory /usr/local/pkg.
This files are the "merge" of the files I changed + your changes (serial ports, parameters of the picolcd, and so on) + the driver binary files for picolcd... on my system the package works, if it works on your system also I update my git branch and will ask again to update the main repository with the files from my branch in order to install the updated package directly from the webconfigurator... ok?
Thanks,
Michele -
Thanks for that. :)
I managed to get it to compile in the end. My biggest problem was a typo I made in the config files while adding the driver. :-[Actually I might take this opportunity to document the process if you don't mind me hi-jacking your thread.
Steve
[/quote]no, it's fine! I really thought that the LCDProc package was kind of dead, because it was not updated since a lot of time, and the mantainer's email is not reachable anymore… but as I see everyone is implementing his own changes by himself and this can lead to a mess...
Now I was "merging" the changes that Cino and I did to the package, if you want we can merge also yours, in order to update the package in the repository... what do you think about that?
-
Michele, I wont be able to see my display until later this evening but I'll let you know how it turns out… And thank you very much!!
-
Michele, I wont be able to see my display until later this evening but I'll let you know how it turns out… And thank you very much!!
Don't worry, it's fine! I look forward to hearing a feedback from you!
-
Also, it took a lot of time because I wanted to compile also the picolcd driver, but it's really hard, at least for me, since I should install also the libusb library that is needed but I don't know where to install them… btw, in the end I was using the drivers from your dropbox, and I used the x86 version...
the libusb library, a full install of FreeBSD includes this lib. Don't know if it makes a difference, but I've put libusb.so.5 in the /usr/local/lib directory. We don't need libkvm.so.5 lib anymore. This is included with the current snapshots of pfsense.
I had problems trying to compile all the drivers for lcdproc from source-code using ./configure –enable-drivers=all. I signed up for the lcdproc mailing list and was told instead of compiling from SC, use the Port from the package system and tell that to configure all the drivers... Doing this, I was able to get all the drivers for with no errors since the package knew where all the libs that were needed.
-
Mostly to remind myself how I did it here are the steps I took to compile a new driver for LCDproc for the package under 2.0.
I started with an install of FreeBSD 8.1_release.
First install the FreeBSD port of LCDproc. Goto /usr/ports/sysutils/lcdproc and type make. This will download all the sources and dependencies for LCDproc 0.5.3 and build them.
Then follow the instructions from the LCDproc site, here, to add your new driver. There are some parts of these that are unclear. ;)
The driver I'm adding is specific to the Watchguard Firebox, which causes problems later, named sdeclcd.
Editing acinclude.m4 is as per the instructions, as long as you don't make a typo! Editing Makefile.am was more involved.
For step 2 I needed:```
sdeclcd_LDADD = libLCD.a libbignum.aAnd for step 3 I needed:``` sdeclcd_SOURCES = lcd.h lcd_lib.h sdeclcd.c sdeclcd.h report.h
Next you need to run autogen.sh but that's not included in the FreeBSD port so download it from here to /usr/ports/sysutils/lcdproc/work/lcdproc-0.5.3.
Then you can run ./configure –enable-drivers=sdeclcd (or whatever your driver is or all to build every driver) and then make to build the driver. sdeclcd.ko in my case.You then need to edit the files from the lcdproc package to allow the new driver to be selected and loaded. This is still a work in progress for me as the driver is a special case.
Steve
-
i copied the package files over and it worked for me. I did leave the libusb in the /usr/local/lib directory tho.
reading steve's post, i believe that was the same thing i did when i trying to get the driver i needed.
-
i copied the package files over and it worked for me. I did leave the libusb in the /usr/local/lib directory tho.
ok, I updated the files in my git clone… today I will mail Jim and ask how to do that... I keep you updated!
Ciao,
Michele -
Thanks Michele!
-
Assides from having to add your driver are either of having problems with the lcdproc package?
Because I intended to modify the package I first setup my own local repo as detailed here.
I have had a lot of trouble getting the package up and running. A lot of my problems were caused by the fact that, despite putting the .htaccess file in every directory I could, the php files from the package are being executed by my server rather than served. >:(
However even having moved the php file manually I am getting errors. The lcdproc_client.php file will not run such that I just see the output of LCDd on the LCD. Running /tmp/lcdclient.sh manually gives:Fatal error: Cannot redeclare array_combine() in /usr/local/pkg/lcdproc_client.php on line 84
Commenting out the array_combine function and the CPU usage function which depends on it allows it to run.
I have no idea why this won't run for me yet other people aren't complaining. ???Steve
-
@stephenw10: this is a bug I fixed on my version of LCDProc… you can use my version of LCDProc (in this thread in a previous post there's the link) or wait that I try to merge the changes I made in the main repository...
-
Ok thanks, not just me then! ::)
Solved the php parsing problem. By default Apache ignores .htaccess files unless you allow it. I added the following to httpd.conf:
<directory "="" usr="" local="" www="" apache22="" data="" packages"="">AllowOverride All</directory>
Allowing 'all' is more than what is required but solves the problem.
Steve
Edit: I see you commented out the function but left it in CPU Usage. Do you have a list of changes?
Edit: If you're merging stuff then there should be a description line in the service section of lcdproc.xml like so:
<service><name>lcdproc</name> <description>LCD Driver</description> <rcfile>lcdproc.sh</rcfile> <executable>LCDd</executable></service>
This fills in the empty box on Status: Services:
-
Thanks Michele!
ok, I committed all the changed in the new repository… I hope that soon all this changed will be torned in production, in the real distributed package!
Ciao,
Michele -
@stephenw10: well, I made so many changes from may that I lost the track… the most important I remember are: added mbuf screen, added support for panels 4x20 and 4x16, also now the screen size is considered by the application (before was anyway fixed 16x2), added some comports, added a parameter for the refresh frequency, added the states screen (think I did, not sure about that), added the cpu frequency screen. After 1 month I made also some optimizations to all the above code.
I committed my changed with my clone on rcs.pfsense.org only a couple of times, but I think that if you need to make some changes it worths to start from my files...
I just added the description to the LCDProc service and I committed it... ;)
-
Com 1 seems to have vanished from lcdproc.xml ;)
Steve
Edit: Ah so com1 is default if you don't select anything?