Description of problem: Version-Release number of selected component (if applicable): Lcdproc 0.5.4 .fc15 How reproducible: I have a Fedora 14 with Lcdproc installed working with a LCD 4x20 display (lcd2usb) without problem, after upgrade to Fedora 15 the LCDd service failed to start. I unistall and reinstall the lcdproc for fc15 with the same result. If i run LCDd & lcdproc from a terminal they start without problem but when i try to start LCDd service i saw the following at the Log: systemd[1]: LCDd.service: control process exited, code=exited status=1 systemd[1]: Unit LCDd.service entered failed state. [systemctl status LCDd.service LCDd.service - LSB: LCDproc Server Daemon Loaded: loaded (/etc/rc.d/init.d/LCDd) Active: failed since Mon, 13 Jun 2011 09:23:20 +0300; 19s ago Process: 4675 ExecStart=/etc/rc.d/init.d/LCDd start (code=exited, status=1/FAILURE) CGroup: name=systemd:/system/LCDd.service] Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
Can you do the following (when the process isn't running): bash -x /etc/init.d/lcdproc start Thx
# bash -x /etc/init.d/lcdproc start + prog=lcdproc + lockfile=/var/lock/subsys/lcdproc + configfile=/etc/sysconfig/lcdproc/lcdproc.conf + RETVAL=0 + '[' -e /lib/lsb/init-functions ']' + . /lib/lsb/init-functions + '[' -e /etc/rc.d/init.d/functions ']' + . /etc/rc.d/init.d/functions ++ TEXTDOMAIN=initscripts ++ umask 022 ++ PATH=/sbin:/usr/sbin:/bin:/usr/bin ++ export PATH ++ '[' 9143 -ne 1 -a -z '' ']' ++ /bin/mountpoint -q /cgroup/systemd ++ /bin/mountpoint -q /sys/fs/cgroup/systemd ++ case "$0" in ++ _use_systemctl=1 ++ '[' -z '' ']' ++ COLUMNS=80 ++ '[' -z '' ']' ++ '[' -r /dev/stderr ']' +++ /sbin/consoletype ++ CONSOLETYPE=pty ++ '[' -z '' ']' ++ '[' -z '' ']' ++ '[' -f /etc/sysconfig/i18n ']' ++ . /etc/profile.d/lang.sh ++ unset LANGSH_SOURCED ++ '[' -z '' ']' ++ '[' -f /etc/sysconfig/init ']' ++ . /etc/sysconfig/init +++ BOOTUP=color +++ RES_COL=60 +++ MOVE_TO_COL='echo -en \033[60G' +++ SETCOLOR_SUCCESS='echo -en \033[0;32m' +++ SETCOLOR_FAILURE='echo -en \033[0;31m' +++ SETCOLOR_WARNING='echo -en \033[0;33m' +++ SETCOLOR_NORMAL='echo -en \033[0;39m' +++ AUTOSWAP=no +++ ACTIVE_CONSOLES='/dev/tty[1-6]' +++ SINGLE=/sbin/sushell ++ '[' pty = serial ']' ++ __sed_discard_ignored_files='/\(~\|\.bak\|\.orig\|\.rpmnew\|\.rpmorig\|\.rpmsave\)$/d' ++ '[' 1 = 1 ']' ++ '[' xstart = xstart -o xstart = xstop -o xstart = xrestart -o xstart = xreload -o xstart = xtry-restart -o xstart = xforce-reload -o xstart = xcondrestart ']' ++ systemctl_redirect /etc/init.d/lcdproc start ++ local s ++ local prog=lcdproc ++ local command=start ++ local options= ++ case "$command" in ++ s='Starting lcdproc (via systemctl): ' ++ '[' -n '' ']' ++ action 'Starting lcdproc (via systemctl): ' /bin/systemctl start lcdproc.service ++ local STRING rc ++ STRING='Starting lcdproc (via systemctl): ' ++ echo -n 'Starting lcdproc (via systemctl): ' Starting lcdproc (via systemctl): ++ shift ++ /bin/systemctl start lcdproc.service Job failed. See system logs and 'systemctl status' for details. ++ failure 'Starting lcdproc (via systemctl): ' ++ local rc=1 ++ '[' color '!=' verbose -a -z '' ']' ++ echo_failure ++ '[' color = color ']' ++ echo -en '\033[60G' ++ echo -n '[' [++ '[' color = color ']' ++ echo -en '\033[0;31m' ++ echo -n FAILED FAILED++ '[' color = color ']' ++ echo -en '\033[0;39m' ++ echo -n ']' ]++ echo -ne '\r' ++ return 1 ++ '[' -x /usr/bin/plymouth ']' ++ /usr/bin/plymouth --details ++ return 1 ++ rc=1 ++ echo ++ return 1 ++ exit 1
Any news on this ?
I have the exact same problem, would love to see a fix.
It could be related to a unappropriate error code of the LCDd init-script or something else. But it was working before F15. I think that would help to have a native systemd units there. Is it possible for someone affected by the bug to have a look? http://fedoraproject.org/wiki/Packaging:Guidelines:Systemd Thx
At the script /etc/rc.d/init.d/LCDd the error occurred at this section : # Source function library. if [ -e /etc/rc.d/init.d/functions ]; then . /etc/rc.d/init.d/functions fi i don't know if this help you.
I can start the LCDd binary via the command, /usr/sbin/LCDd and even with, . /etc/rc.d/init.d/functions; daemon /usr/sbin/LCDd but with, systemctl start LCDd.service I get this, Job failed. See system logs and 'systemctl status' for details. And in the logs, Nov 9 20:20:34 mythfrt LCDd: lis: cannot initialise delay timing Nov 9 20:20:34 mythfrt LCDd: Driver [lis] init failed, return code -1 Nov 9 20:20:34 mythfrt LCDd: Could not load driver lis Nov 9 20:20:34 mythfrt LCDd: There is no output driver Nov 9 20:20:34 mythfrt LCDd: Critical error while initializing, abort. And all o these are satisfied, "LCDd.service"->"basic.target" [color="black"]; "LCDd.service"->"shutdown.target" [color="red"]; "LCDd.service"->"syslog.target" [color="green"]; "LCDd.service"->"local-fs.target" [color="green"]; "LCDd.service"->"network.target" [color="green"]; "LCDd.service"->"remote-fs.target" [color="green"]; "LCDd.service"->"udev.service" [color="green"]; "LCDd.service"->"speech-dispatcherd.service" [color="green"]; "LCDd.service"->"rpcbind.service" [color="green"]; "LCDd.service"->"auditd.service" [color="green"]; "LCDd.service"->"dnsmasq.service" [color="green"]; "LCDd.service"->"basic.target" [color="green"]; "LCDd.service"->"bttrack.service" [color="green"]; "LCDd.service"->"btseed.service" [color="green"]; "LCDd.service"->"sandbox.service" [color="green"]; "LCDd.service"->"irda.service" [color="green"]; "LCDd.service"->"restorecond.service" [color="green"]; "LCDd.service"->"netconsole.service" [color="green"];
The problem exist in Fedora 16 also !
I spend some time yesterday investigating this bug. Without the LCDd.conf in /etc/sysconfig/ the service started without problem, giving [OK]. With dummy or properly setup LCDd.conf failed to start as service. At the same time if i run in the terminal the LCDd, starts without problem with the settings from LCDd.conf ! I also tried to create a systemd service for LCDd with the some result, failed to start as service [http://fedoraproject.org/wiki/Packaging:Guidelines:Systemd] I don't understand where the problem is, as it works until Fedora 14. I found that there is a new version of Lcdproc (http://sourceforge.net/projects/lcdproc/files/lcdproc/0.5.5/) with release note: Known bugs: =========== - If vBars are used together with ICON_BLOCK_FILLED on the same screen and that icon is implemented as a custom char, it sometimes is replaced with a non full block from the vBar. - On Solaris the mtc_s16209x driver fails to compile. Configure LCDproc to exclude this driver. - The server config file LCDd.conf is not installed if 'make install-server' is used to install only the server without the clients. Changes: ======== Key: - Something removed + Something added * Something changed / fixed Updated drivers --------------- + New common 5x8 font for t6963, sed1520, mdm166a and i2500vfd drivers * CFontz: Fix display of bars + sed1330: Add support for HG25504 * sed1520: Make it work with 68-family style interface * picolcd: Add OffBrightness, more icons and fix bignum * SureElec: Change port initialization (SF 3212891) * imonlcd: Fix spinning of disc icon + imon: Add bignum support * hd44780: * New (possibly faster) screen update algorithm * hd44780-imon: Add charmap for NEC uPD16314 and make it configurable * hd44780-ethlcd: fix LCDd hang up on network error (it exits now) * pyramid: Fix several problems making it more reliable * CFontzPacket: Use cellwidth = 5 on CFA-631 and CFA-635 * t6963: Rewrite this driver fixing several problems Build system ------------ * Fix xosd detection * enable-extra-charmaps adds language specific charmaps (currently russian) lcdproc client -------------- * Fix a single dot appearing on line 5 of the D screen * Make the iface screen more readable on 2x16 displays Server core (LCDd) ------------------ + Add an option to start LCDd with screen rotation disabled * Update LCDd.conf to be better understood by Config::Model
Any update on this?
lcdproc-0.5.5-1.fc16 has been submitted as an update for Fedora 16. https://admin.fedoraproject.org/updates/lcdproc-0.5.5-1.fc16
lcdproc-0.5.5-1.fc15 has been submitted as an update for Fedora 15. https://admin.fedoraproject.org/updates/lcdproc-0.5.5-1.fc15
The update for Fedora 16 (x86_64) does not make a difference for me. The service fails with the same errors as above. Starting manually does work as before as well. Using the lis driver.
Package lcdproc-0.5.5-1.fc15: * should fix your issue, * was pushed to the Fedora 15 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing lcdproc-0.5.5-1.fc15' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2011-17374/lcdproc-0.5.5-1.fc15 then log in and leave karma (feedback).
The problem exist with this update in my Fedora 16 (x86_64). The service fails but i can started manually (HD4480 driver).
From the bash -x output, systemd seems to catch the start call starting from sourcing the functions script. But maybe it miss some elements to start LCDd from the emulated init script (such as configuration or something else)... I will try to investigate more next Wednesday, but help welcomed.
There seem to be a few problems with lcdproc-0.5.4-1.fc16.x86_64 on Fedora 16 x86_64. 1) It's looking for drivers in /usr/lib instead of /usr/lib64: Jan 1 16:24:51 cihi LCDd: Could not open driver module /usr/lib/lcdproc/lis.so: /usr/lib/lcdproc/lis.so: cannot open shared object file: No such file or directory Jan 1 16:24:51 cihi LCDd: Driver [lis] binding failed Jan 1 16:24:51 cihi LCDd: Could not load driver lis Jan 1 16:24:51 cihi LCDd: There is no output driver Jan 1 16:24:51 cihi LCDd: Critical error while initializing, abort. Jan 1 16:24:51 cihi LCDd[2853]: Starting LCDd service: [FAILED] Jan 1 16:24:51 cihi systemd[1]: LCDd.service: control process exited, code=exited status=1 Jan 1 16:24:51 cihi systemd[1]: Unit LCDd.service entered failed state. I worked around this on my system by doing: $ cd /usr/lib $ ln -s ../lib64/lcdproc 2) I can confirm what umproko5 has reported: Jan 1 16:26:19 cihi LCDd: lis: cannot initialise delay timing Jan 1 16:26:19 cihi LCDd: Driver [lis] init failed, return code -1 Jan 1 16:26:19 cihi LCDd: Could not load driver lis Jan 1 16:26:19 cihi LCDd: There is no output driver Jan 1 16:26:19 cihi LCDd: Critical error while initializing, abort. Jan 1 16:26:19 cihi LCDd[2948]: Starting LCDd service: [FAILED] And sure enough, with my workaround for #1 I can run /usr/sbin/LCDd as root from the command line and it works just fine.
(In reply to comment #17) .. > Jan 1 16:24:51 cihi LCDd: Could not open driver module > /usr/lib/lcdproc/lis.so: /usr/lib/lcdproc/lis.so: cannot open shared object ... > $ cd /usr/lib > $ ln -s ../lib64/lcdproc Can you verify the setting in LCDd.conf about DriverPath ? (pointing to /usr/lib64/lcdproc ?) > 2) I can confirm what umproko5 has reported: . > And sure enough, with my workaround for #1 I can run /usr/sbin/LCDd as root > from the command line and it works just fine. How this behave since your workaround #1 with service LCDd start ?
(In reply to comment #18) > (In reply to comment #17) > .. > > Jan 1 16:24:51 cihi LCDd: Could not open driver module > > /usr/lib/lcdproc/lis.so: /usr/lib/lcdproc/lis.so: cannot open shared object > ... > > $ cd /usr/lib > > $ ln -s ../lib64/lcdproc > > > Can you verify the setting in LCDd.conf about DriverPath ? (pointing to > /usr/lib64/lcdproc ?) > Ugh. My bad, I had copied an LCDd.conf from a previous, non 64bit install. Sure enough, the LCDd.conf.example included properly points to /usr/lib64/lcdproc. > > > 2) I can confirm what umproko5 has reported: > . > > And sure enough, with my workaround for #1 I can run /usr/sbin/LCDd as root > > from the command line and it works just fine. > > How this behave since your workaround #1 with service LCDd start ? This yields the same result as systemctl start LCD.service: Jan 3 17:39:47 cihi LCDd: lis: cannot initialise delay timing Jan 3 17:39:47 cihi LCDd: Driver [lis] init failed, return code -1 Jan 3 17:39:47 cihi LCDd: Could not load driver lis Jan 3 17:39:47 cihi LCDd: There is no output driver Jan 3 17:39:47 cihi LCDd: Critical error while initializing, abort. Jan 3 17:39:47 cihi LCDd[4555]: Starting LCDd service: [FAILED] Jan 3 17:39:47 cihi systemd[1]: LCDd.service: control process exited, code=exited status=1 Jan 3 17:39:47 cihi systemd[1]: Unit LCDd.service entered failed state.
I happened to see comments in bodhi, so I just tried to look at this (Note that I don't use LCD). Then: (In reply to comment #7) > but with, > systemctl start LCDd.service > > I get this, > Job failed. See system logs and 'systemctl status' for details. > > And in the logs, > Nov 9 20:20:34 mythfrt LCDd: lis: cannot initialise delay timing <======= > Nov 9 20:20:34 mythfrt LCDd: Driver [lis] init failed, return code -1 > Nov 9 20:20:34 mythfrt LCDd: Could not load driver lis > Nov 9 20:20:34 mythfrt LCDd: There is no output driver > Nov 9 20:20:34 mythfrt LCDd: Critical error while initializing, abort. > This means that the following is failing: server/drivers/lis.c: 367 MODULE_EXPORT int 368 lis_init(Driver *drvthis) 369 { 425 // initialise delay timing 426 if (timing_init()) { 427 report(RPT_ERR, "%s: cannot initialise delay timing", drvthis->name); 428 return -1; 429 } Then server/drivers/timing.h: 126 /** 127 * Do necessary initialization for the selected waiting method. 128 * \return 0 if successful, -1 on error. 129 */ 130 static inline int 131 timing_init() 132 { 133 #if defined DELAY_NANOSLEEP 134 /* Change to Round-Robin scheduling for nanosleep */ 135 { 136 /* Set priority to 1 */ 137 struct sched_param param; 138 param.sched_priority=1; 139 if (( sched_setscheduler(0, SCHED_RR, ¶m)) == -1) { <=============================== 140 return -1; 141 } 142 } 143 #elif defined DELAY_IOCALLS 144 if (port_access(0x3BD) == -1) { 145 return -1; 146 } 147 #endif 148 return 0; 149 } And strace shows: Jan 12 13:09:34 localhost LCDd[32018]: [pid 32025] sched_setscheduler(0, SCHED_RR, { 1 }) = -1 EPERM (Operation not permitted) Jan 12 13:09:34 localhost LCDd[32018]: [pid 32025] write(2, "lis: cannot initialise delay tim"..., 35lis: cannot initialise delay timing) = 35 With this bug report: https://www.libreoffice.org/bugzilla/show_bug.cgi?id=38383 it seems there is no way to use sched_setscheduler() under systemd (cgroup). Perhaps timing_init() has to be patched to just return 0 without do anything.
(In reply to comment #20) > Perhaps timing_init() has to be patched to just return 0 without do > anything. Or lcdproc has to really provide native unit file for LCDd.service (but this method can be applied only for F-17)
Created attachment 552337 [details] Working systemd service file Drop this in /lib/systemd/system and it will override the SystemV init script.
What's the rational for *not* wanting to provide a native unit file in F15/16? We're still months away from F17 and this service is completely broken without it!
(In reply to comment #23) > What's the rational for *not* wanting to provide a native unit file in F15/16? Because of this (Fedora's policy) http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Packages_migrating_to_a_systemd_unit_file_from_a_SysV_initscript If some Fedora authority (perhaps FESCo, not me) gives special permission to provide native unit file in F16/15, we can ship it. > We're still months away from F17 and this service is completely broken without > it!
(In reply to comment #22) > Created attachment 552337 [details] > Working systemd service file > > Drop this in /lib/systemd/system and it will override the SystemV init script. This works for me ! Enable to load at startup with systemd and works without problem ! I will try to create a working systemd service file for lcdproc also ... (based on this file)
(In reply to comment #24) > (In reply to comment #23) > > What's the rational for *not* wanting to provide a native unit file in F15/16? > > Because of this (Fedora's policy) > http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Packages_migrating_to_a_systemd_unit_file_from_a_SysV_initscript > > If some Fedora authority (perhaps FESCo, not me) gives special permission > to provide native unit file in F16/15, we can ship it. > > > We're still months away from F17 and this service is completely broken without > > it! An alternative idea would be to provide systemd native unit file on F-16/15, with its file name slightly altered (e.g. LCDd-systemd.service), and with not changing file name on F-17 (i.e. LCDd.service). This way does not conflict with Fedora's policy.
(In reply to comment #22) > Created attachment 552337 [details] > Working systemd service file > > Drop this in /lib/systemd/system and it will override the SystemV init script. I've imported it in F-17 but wondered if ControlGroup=cpu:/ is really needed ?
(In reply to comment #27) > (In reply to comment #22) > > Created attachment 552337 [details] > > Working systemd service file > > > > Drop this in /lib/systemd/system and it will override the SystemV init script. > > I've imported it in F-17 but wondered if ControlGroup=cpu:/ is really needed ? If you read through this bug report provided by Mamoru above it explains why this is required currently. It's how I figured out this line was needed: https://www.libreoffice.org/bugzilla/show_bug.cgi?id=38383 So for it to not be required it appears the either lcdproc needs to be patched to not call the sched_setscheduler kernel function or that function needs to be patched in the kernel. At least that is how I understand it, someone else that knows a whole lot more about it then me may be able to elaborate further. I don't think it hurts to leave that line in there, at least until someone has a chance to test this on a F17 build to be sure one way or another.
Please test with lcdproc-0.5.5-3.fc17 ? (on fedora 17).
After upgrading to Fedora 17 i have the following problem : When Fedora starts i saw in the LCD display the message " Welcome to lcdproc!" but the service dont start with the following message from the log : systemd[1]: PID file /run/LCDd.pid not readable (yet?) after start. systemd[1]: LCDd.service operation timed out. Terminating. systemd[1]: Unit LCDd.service entered failed state. If i try : systemctl start LCDd.service Job failed. See system journal and 'systemctl status' for details. When i run : systemctl status LCDd.service LCDd.service - LCDd Service Loaded: loaded (/usr/lib/systemd/system/LCDd.service; enabled) Active: failed (Result: timeout) since Sun, 17 Jun 2012 08:38:52 +0300; 1min 1s ago Process: 2774 ExecStart=/usr/sbin/LCDd -c /etc/lcdproc/LCDd.conf (code=exited, status=0/SUCCESS) CGroup: name=systemd:/system/LCDd.service Also when i try : /usr/sbin/LCDd -c /etc/lcdproc/LCDd.conf # systemctl start lcdproc.service The Lcdproc start without problem !