SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Current: Since the May 20 upgrade of hplip from 3.13.3/2 to 3.13.5/1 I experience a longish hiccup at system boot, after which the following text is displayed on the console:
This command comes from /lib/udev/rules.d/56-hpmud.rules; commenting out the pertinent line therein eliminates the hiccup, while printing and scanning are not affected.
I think the problem really isn't directly to do with systemd, although changes made to support systemd may have brought it about. When exactly does this "hiccup" occur? Is it possibly during the initrd execution? If that's the case the fix will be blacklisting that rule from being copied to an initrd.
A good test to see if this is the case would be to leave the rule on the main system, but delete it from under /boot/initrd-tree, and then use mkinitrd (with no options) to rebuild the initrd without the rule. Reinstall lilo, reboot, and if it doesn't happen we know what the deal was.
I'm wondering where /etc/udev/rules.d/56-hpmud.rules came from. My hplip on 14.0 installed /etc/udev/rules.d/86-hpmud-hp_laserjet_*.rules files (as I'm using an old P1505n here at $WORK,) so I suspect the proprietary stuff that one downloads upon installing the printerr may be the culprit.
The hiccup occurs on the main system, not in the initrd.
Actually this specific rule would make no sense in an initrd - not only is there no /usr/bin/systemctl but there is no /usr/bin/hp-config_usb_printer as well.
Things bring me to the more fundamental observation that udev does not seem to run at all in the initrd. I have an "all modules" kernel and if I do not specify the block and filesystem drivers via "mkinitrd -c -m ahci:ata_piix:ext3 -k 3.9.2-burdi64" booting will fail.
Things bring me to the more fundamental observation that udev does not seem to run at all in the initrd. I have an "all modules" kernel and if I do not specify the block and filesystem drivers via "mkinitrd -c -m ahci:ata_piix:ext3 -k 3.9.2-burdi64" booting will fail.
Of course the modules cannot be loaded when they are not there. The "/lib/modules/" directory on the main system is not available before the main system is mounted.
Udev is run indeed. You can open "/boot/initrd-tree/init" with a text editor and see.
As a longtime Slacker using an initrd I opened "/boot/initrd-tree/init" with a text editor to see many, many times. Of course udevd is run, but in my opinion it does not do anything:
-- setting /etc/udev/udev.conf > udev_log="debug" shows output
-- in /init commenting out the /load_kernel_modules invocation makes booting fail
-- in /init commenting out the udevd invocation instead makes booting successful.
In other words: (At least in my use case) including udev in the initrd is superfluous.
To recap: This thread has two subthreads:
a. The hiccup at boot;
b. Udev in the initrd.
Ad a:
I am still running with the pertinent line in /lib/udev/rules.d/56-hpmud.rules commented out. I have not seen any effects on printing and/or scanning.
Ad b:
To me it seems that udev in the initrd does run, but does not do anything. At least in my use case this has no consequences.
Last edited by burdi01; 06-01-2013 at 04:55 AM.
Reason: Corrected typo.
I just got finished troubleshooting this for a package for MEPIS 12 (now in beta).
If your system was using systemd instead of some version of sysvinit, the hplip udev rule wouldn't block udev on startup causing the delay. The second branch launching hp-config_usb_printer does block. It sits in a 12x loop with a wait(5) in each trying to delete extraneous printer queues, so it blocks udev for 1:05
If your printer doesn't use a plugin, commenting out the line works fine. If your HP does use a plugin you may need hp-config_usb_printer to run.
I solved the issue by detaching hp-config_usb_printer from udev by starting it with nohup like so:
Code:
# This rule will add the printer and install plugin
ENV{hp_test}=="yes", PROGRAM="/bin/sh -c 'logger -p user.info loading HP Device $env{BUSNUM} $env{DEVNUM}'", RUN+="/bin/sh -c 'if [ -f /usr/bin/systemctl ]; then /usr/bin/systemctl --no-block start hplip-printer@$env{BUSNUM}:$env{DEVNUM}.service; else /usr/bin/nohup /usr/bin/hp-config_usb_printer $env{BUSNUM}:$env{DEVNUM} 2>/var/log/hp/hplip_config_usb_printer.err &; fi'"
Redirecting the error messages with the 2> was necessary to keep it from blocking even though none are produced...
There's also a typo in line 260 of hplip3.13.5/config_usb_printer.py where they spelled utils as utlis. This will keep some printers from loading their plugins. If you rebuild might as well fix this too
And there are added debugging messages left in HPCupsFilter.cpp that flood the syslog with
Code:
prnt/hpcups/HPCupsFilter.cpp 157: ERROR: File pointer is NULL!
messages when you print...
Last edited by timkb4cq; 05-31-2013 at 10:26 AM.
Reason: p.s.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.