pfSense Gold Subscription

Author Topic: LCDProc 0.5.4-dev  (Read 70569 times)

0 Members and 1 Guest are viewing this topic.

Offline mdima

  • Sr. Member
  • ****
  • Posts: 384
    • View Profile
Re: LCDProc 0.5.4-dev
« Reply #285 on: February 22, 2012, 04:17:18 pm »
Hi Steve,
mmhhh... can you send me your config.xml file? (of course, hide the password, public ips, and so on)

Ciao,
Michele

Offline stephenw10

  • Hero Member
  • *****
  • Posts: 8084
    • View Profile
Re: LCDProc 0.5.4-dev
« Reply #286 on: February 23, 2012, 07:30:12 am »
Here's my config file, password redacted, it's test box so it doesn't have a public IP.
I don't see it in my logs any more, possibly because the logging level is now back at 3 or I was using the 'debug' version of LCDd, but previously there was a line at boot something like:
Quote
LCDd: Could not open 13666, aborting
There is still a log line:
Quote
LCDd: Connect from host 127.0.0.1:58234 on socket 12
This implies that at some point there are two clients running.

Steve

Offline stephenw10

  • Hero Member
  • *****
  • Posts: 8084
    • View Profile
Re: LCDProc 0.5.4-dev
« Reply #287 on: February 23, 2012, 07:53:06 am »
I have replicated some of my previous testing for reference.
Editing lcdproc.inc so that the resulting lcdproc.sh is:
Code: [Select]
#!/bin/sh
# This file was automatically generated
# by the pfSense service handler.

rc_start() {

ps auxw |awk '/lcdproc_client.ph[p]/ {print $2}'|xargs kill
ps auxw |awk '/LCD[d]/ {print $2}'|xargs kill
/usr/bin/nice -20 /usr/local/sbin/LCDd -u nobody -c /usr/local/etc/LCDd.conf
/usr/bin/nice -20 /usr/local/bin/php -f /usr/local/pkg/lcdproc_client.php &

}

rc_stop() {

ps auxw |awk '/lcdproc_client.ph[p]/ {print $2}'|xargs kill
ps auxw |awk '/LCD[d]/ {print $2}'|xargs kill
}

case $1 in
start)
rc_start
;;
stop)
rc_stop
;;
restart)
rc_stop
rc_start
;;
esac
Results in after boot:
Code: [Select]
[2.0.1-RELEASE][root@x-core.localdomain]/root(1): ps aux|grep lcd
root   16096  3.0  6.9 36188 16980  ??  SN    1:41PM   0:00.27 /usr/local/bin/php -f /usr/local/pkg/lcdproc_client.php
root   16748  3.0  6.9 36188 16980  ??  SN    1:41PM   0:00.27 /usr/local/bin/php -f /usr/local/pkg/lcdproc_client.php
[2.0.1-RELEASE][root@x-core.localdomain]/root(2): ps aux | grep LCD
And in the system log:
Code: [Select]
Feb 23 13:41:31 LCDd: Critical error while initializing, abort.
Feb 23 13:41:31 LCDd: sock_init: error creating socket - Address already in use
Feb 23 13:41:31 LCDd: sock_create_inet_socket: cannot bind to port 13666 at address 127.0.0.1 - Address already in use
Which implies this wasn't happening before.

Steve

Offline mdima

  • Sr. Member
  • ****
  • Posts: 384
    • View Profile
Re: LCDProc 0.5.4-dev
« Reply #288 on: February 23, 2012, 11:44:09 am »
mmhhh... Steve, stupid question.

Are you sure that somewhere there is a script that runs the package at the startup, as a surplus of the times where you had to run LCDproc manually because it was not compatible with the sdelcd driver?

Did you start from scratch with this test box?

Thanks,
Michele

Offline mdima

  • Sr. Member
  • ****
  • Posts: 384
    • View Profile
Re: LCDProc 0.5.4-dev
« Reply #289 on: February 29, 2012, 12:39:54 am »
Hello everybody,
    any update on this package? None is using it or it's considered running and stable?

Thanks for any feedback,
Michele

Offline stephenw10

  • Hero Member
  • *****
  • Posts: 8084
    • View Profile
Re: LCDProc 0.5.4-dev
« Reply #290 on: February 29, 2012, 06:11:09 am »
Sorry, not much spare time for testing.
As it stands, although it doesn't start cleanly, it is fully functional on the X-Core. The additional LCDd hardly uses much by way of resources and it sorts itself out the first time one of the interfaces changes. So if you are using a ppp WAN then when the address changes all packages are restarted and it come up clean.

My test box is a new install of 2.0.1 with no changes other than adding lcdproc-dev and some firewall rules so I can access it via the WAN interface for convenience.

Steve

Offline Brak

  • Jr. Member
  • **
  • Posts: 71
    • View Profile
Re: LCDProc 0.5.4-dev
« Reply #291 on: March 01, 2012, 09:02:15 am »
I can only get lcdproc-dev to not crash-loop on my Firebox X Core when I spam the left arrow button and hope I can get the lcdproc menu to open up. I do this right after I restart/start the service. If I get the menu open, everything then works fine when I exit the menu.

I also have the issue of if an interface goes down, lcdproc crashes and attempts to restart.


Offline mdima

  • Sr. Member
  • ****
  • Posts: 384
    • View Profile
Re: LCDProc 0.5.4-dev
« Reply #292 on: March 01, 2012, 10:05:10 am »
mmhhh... what about all the people with non watchguard products?

eventually, do anybody has a firebox to lend me? I promise I send back after I check/fix/give it up...

Offline stephenw10

  • Hero Member
  • *****
  • Posts: 8084
    • View Profile
Re: LCDProc 0.5.4-dev
« Reply #293 on: March 01, 2012, 10:55:28 am »
Hmm, expensive shipping to Milan. Might be cheaper to just buy you one from Ebay!  ::)

Steve

Offline mdima

  • Sr. Member
  • ****
  • Posts: 384
    • View Profile
Re: LCDProc 0.5.4-dev
« Reply #294 on: March 01, 2012, 11:03:27 am »
Well, yes, but the shipping would be expensive anyway, plus I get a firebox I don't need... :D

really, this for me is a kind of hobby, and spending (the cheapest I found from Australia) 250 Euro to fix this is really a challenge... :D

Do you think we could involve watchguard for this? Or someone to share the send/return shipping costs...
« Last Edit: March 01, 2012, 11:08:22 am by mdima »

Offline stephenw10

  • Hero Member
  • *****
  • Posts: 8084
    • View Profile
Re: LCDProc 0.5.4-dev
« Reply #295 on: March 01, 2012, 02:34:01 pm »
We can definitely get one cheaper than that. The X-Core box I have here has become a bit temperamental. I'll keep a look out for another one.

Steve

Offline stephenw10

  • Hero Member
  • *****
  • Posts: 8084
    • View Profile
Re: LCDProc 0.5.4-dev
« Reply #296 on: March 05, 2012, 01:07:38 pm »
Here's a suggestion, while reading through some other bootup scripts I found this:
Code: [Select]
// Do not process while booting
if($g['booting'])
exit;
Perhaps we could use this somehow to limit the number of reloads? Of course it could easily stop it loading at all.  ::)

Steve

Offline mdima

  • Sr. Member
  • ****
  • Posts: 384
    • View Profile
Re: LCDProc 0.5.4-dev
« Reply #297 on: March 06, 2012, 12:32:34 am »
Good hint, thanks!! I will make some experiments with it and let you know...

Ciao,
Michele

Offline marcelloc

  • Hero Member
  • *****
  • Posts: 9930
    • View Profile
Re: LCDProc 0.5.4-dev
« Reply #298 on: March 06, 2012, 12:42:04 am »
Here's a suggestion, while reading through some other bootup scripts I found this:
Code: [Select]
// Do not process while booting
if($g['booting'])
exit;
Perhaps we could use this somehow to limit the number of reloads? Of course it could easily stop it loading at all.  ::)

Steve

It's on dansguardian as well but I did not saw changes on bootup time or times it tries to restart daemon.

What I did was changing reload option to stop and start.

I'm not sure about That but it looks like pfsense bootup script calls sync_package function for every xml file on package. Dansguardian has about 20 XML files and It's boot takes more then a minute in start / stop calls.

Something I'll try is to do not stop/start daemon if uptime is less then 01 minute for example or check if last stop/start call has less then x seconds.
« Last Edit: March 06, 2012, 12:45:42 am by marcelloc »

Offline fmertz

  • Jr. Member
  • **
  • Posts: 97
    • View Profile
    • Github
SDEC LCD Driver with LED support
« Reply #299 on: March 08, 2012, 11:06:22 am »
I have a test driver with LED support. It's been tested some on X-Peak and X-Core-e models, but there is code for X-Core as well. The updated FreeBSD driver is here:

https://github.com/downloads/fmertz/sdeclcd/sdeclcd.so

Once up and running, telnet to lcdproc (pretend to be a client) and type
 
telnet localhost 13666
hello
connect LCDproc 0.5.5 protocol 0.3 lcd wid 20 hgt 2 cellwid 5 cellhgt 8
output 1 <—Short red blink about every 4 seconds
success
output 2 <—Short green blink about every 4 seconds
success
 
The output logic is this: we have 32 bit to work with, and we need 3 states (Red, Green and off). This is 2 bits. So, in 32 bits, I have 16 time slots to work with. So, basically, code in the LED sequence of colors you want to see (Red, Green or off) and keep filling in the groups of 2 bits by shifting. the sequence just repeats indefinitely.
 
Worksheet:
XXXX XXXX XXXX XXXX, X is 0,1, or 2, and represents 2 bits
 
0000 0000 0000 0001 is slow short blink red
0101 0101 0101 0101 is fast short blink red
0011 0011 0011 0011 is medium medium blink red
0000 1111 0000 1111 is slow long blink red
0000 2222 0000 1111 is slow blink alternating between red and green, and off in between
 
The representation above needs to be made decimal for the “output” command. Sequence is about 4 seconds.

Thanks for letting me know if this works out for everyone. Would be nice to work this out into the PHP client, too.