Some HP LaserJets (maybe also other printers - if yes, please note in reply) need to send firmware form PC first. This is working when they are connected thru USB cable, but not thru DiskStation (probably any of them). In this case, if you connect this printer (In my case LaserJet 1020, but same situation is with 1005, 1018, 1022 and others), it simply didn't print.
If you want to test that this HOWTO can help you, try this:
1) Install printer connected with USB cable directly to PC. Install driver, test print.
2) Install printer connected thru diskstation with proper driver in Windows too.
3) Connect printer thru USB directly to PC, print one page
4) Reconnectprinter to DS wihtout powering off printer.
If you are now able to print, this HOWTO can help you.
1.) find proper firmware file on net. Filename should be sihp10xx.dl (for LJ1020 it is sihp1020.dl and I found it here: http://oleg.wl500g.info/hplj/sihp1020.dl)
2.) Go to DS management settings and allow Telnet or SSH
3.) Copy sihp10xx.dl file to some of your shares on DS (for example "Share" root)
4.) connect to DS with telnet or SSH client (you can use putty client for example)
5.) Login as "root", as password put your admin password
6.) copy your firmware file to folder /usr/syno/hotplug/fimrware with command mv /volume1/Share/sihp1020.dl /usr/syno/hotplug/firmware
7.) you need to edit file /usr/syno/hotplug/usb.agent. First make a backup: cp /usr/syno/hotplug/usb.agent /usr/syno/hotplug/usb.agent.old
8.) now copy it to Share to edit it mv /usr/syno/hotplug/usb.agent /volume1/Share/
9.) now open file usb.agent in your Share folder (on File explorer) with notepad or similar editor. You will need to add this lines to end of file:
- Code: Select all
# Upload the firmware to the printer
if [ "$PRODUCT" = "3f0/2b17/100" ]
if [ "$ACTION" = "add" ]
echo "`date` : Sending firmware to printer..." >> /var/log/hp
cat $FIRMWARE > /dev/usb/lp0
echo "`date` : done." >> /var/log/hp
You will need to change name of file from sihp1020.dl to yours. Similar situation is in case of $PRODUCT. Try to search the net to find proper one. For LJ1018 it is "3f0/4117/100" for example...
Save the file back to Share. BE SURE TO SAVE IT WITH LINUX END-OF-LINES (LF only, not CR+LF)!!!
10.) go back to telnet and return edited file to proper place: mv /volume1/Share/usb.agent /usr/syno/hotplug/
11.) change back file attributes to make it working (this took me while to find it): chmod 755 /usr/syno/hotplug/usb.agent
Now just replug your printer and it should work.
Please test. add links to firmware files, $PRODUCT codes and other prooved printers to help others.
WARNING! After DSM update you need to repeat all the steps!!!!