Hallo allemaal,
Ik ben nu in staat om 2 printers aan te sturen via de DS106e. Dit wilde ik graag met jullie delen. Het werkt nog niet helemaal perfect en ik hoop dat jullie een aantal antwoorden hebben.
Wat ik gedaan heb is het volgende:
1) In /etc/synoinfo.conf staat MaxPrinters nu op 2.
2) aanpassen van /usr/syno/hotplug/usb.agent:
Het gedeelte onder add ziet er alsvolgt uit:
lp*)
MaxPrinters=`grep maxprinter /etc/synoinfo.conf|cut -d " -f 2`
if [ -z "${MaxPrinters}" ]; then
# DS default max printer
MaxPrinters=1
fi
# cannot mount more than 1 USB printer
if [ "${MaxPrinters}" = "0" ]; then
echo "DEVNAME=${DEVNAME} DEVICE=${DEVICE} DEVGUID=${DEVGUID} is added. (0)" >> /tmp/usbdebug
ln -sf /dev/usb/${DEVNAME} /dev/usb/usbprn_${usb_idVendor}_${usb_idProduct}
mkdir /volume1/spool/usbprn_${usb_idVendor}_${usb_idProduct}
/usr/syno/bin/synoprint --hpenable $DEVNAME $DEVICE
else
/usr/syno/bin/synousbdisk -enumusbprinters
usbPrinterNum=$?
if [ $usbPrinterNum -lt $MaxPrinters ]; then
echo "DEVNAME=${DEVNAME} DEVICE=${DEVICE} DEVGUID=${DEVGUID} is added. ($usbPrinterNum)" >> /tmp/usbdebug
ln -sf /dev/usb/${DEVNAME} /dev/usb/usbprn_${usb_idVendor}_${usb_idProduct}
mkdir /volume1/spool/usbprn_${usb_idVendor}_${usb_idProduct}
/usr/syno/bin/synoprint --hpenable $DEVNAME $DEVICE
fi
fi
;;
Het gedeelte onder remove ziet er alsvolgt uit:
lp*)
echo "DEVNAME=${DEVNAME} is removed." >> /tmp/usbdebug
rm -f /dev/usb/usbprn_${usb_idVendor}_${usb_idProduct}
/usr/syno/bin/synoprint --hpdisable $DEVNAME
;;
De reden voor deze aanpassingen is om een naam in de /dev/usb namespace te creeren die ik kan gebruiken in de printcap
3) Ik heb een aanpassing gemaakt in /etc/printcap.local, de mijne ziet er alsvolgt uit:
laser:
:done_jobs=0
:ml#0:
:mx#0:
:sd=/volume1/spool/usbprn_0x4e8_0x3268:
:af=/volume1/spool/usbprn_0x4e8_0x3268/usblp.acct:
:sh:
:lp=/dev/usb/usbprn_0x4e8_0x3268:
deskjet:
:done_jobs=0
:ml#0:
:mx#0:
:sd=/volume1/spool/usbprn_0x3f0_0x1004:
:af=/volume1/spool/usbprn_0x3f0_0x1004/usblp.acct:
:sh:
:lp=/dev/usb/usbprn_0x3f0_0x1004:
4) met de instructie 'cat /etc/printcap.local >> /usr/syno/etc/printcap' voeg ik de lokale printcap toe aan die van Synology.
Dit alles werkt wel aardig, stap 2 maakt altijd een spool directory en dit blijft bestaan na een herstart. Ik zit nu nog met de volgende uitdagingen:
a) Als ik '@spool' gebruik in stap 2, dan worden deze folders niet op tijd aangemaakt, @spool wordt door iemand aangemaakt na het herstarten van de DS106e, kunnen jullie me zeggen welk proces deze folders aan maakt?
b) De web interface laat alleen de printer zien die op /dev/usb/lp0 aangesloten is, hoe kan ik alle printers laten zien?
c) Heeft iemand nog ideeen ter verbetering?
Ik denk dat het hierboven beschrevene ook zal werken op de andere modellen, alleen de printcap is apparaat specifiek. Verder kun je van ieder type printer maar 1 aansluiten, anders gaat het mank.
Ik hoop dat ik met bovenstaande info een aantal mensen gelukkig heb kunnen maken.
Met vriendelijke groet,
Freddy Martens