2020年08月01日 Brother PRIVIO DCP-J552N with Slackware64-14.2 [長年日記]
_ Brother PRIVIO DCP-J552N with Slackware64-14.2
家のDCP-J552Nは無線接続で利用している(IP=192.168.0.52)。
$ host dcpj552n dcpj552n.artie.or.jp has address 192.168.0.52
Install printer driver
プリンタードライバーのインストール
dcpj552nlpr-3.0.0-1.i386.rpmをダウンロードし、root権限でrpmからtgzに変換する。
# rpm2tgz dcpj552nlpr-3.0.0-1.i386.rpm
dcpj552nlpr-3.0.0-1.i386.tgzをインストールする。
# installpkg dcpj552nlpr-3.0.0-1.i386.tgz
/opt/brother/Printers/dcpj552n/inf/brdcpj552nrcを編集し、既定の用紙タイプをA4に変更する。
*** /opt/brother/Printers/dcpj552n/inf/brdcpj552nrc.ORG 2020-07-26 15:19:23.953998715 +0900 --- /opt/brother/Printers/dcpj552n/inf/brdcpj552nrc 2020-07-26 23:31:06.169810664 +0900 *************** *** 3,9 **** BRResolution=600 BResolution=PlainNormal BiDirPrint=ON ! PaperType=Letter PaperThick=Regular ColorOrMono=Color ColorMatch=Vivid --- 3,9 ---- BRResolution=600 BResolution=PlainNormal BiDirPrint=ON ! PaperType=A4 PaperThick=Regular ColorOrMono=Color ColorMatch=Vivid
/opt/brother/Printers/dcpj552n/lpd/filterdcpj552nを編集し、日本語対応のa2psを利用するように変更する。
*** /opt/brother/Printers/dcpj552n/lpd/filterdcpj552n.ORG 2020-07-26 14:57:13.307761817 +0900
--- /opt/brother/Printers/dcpj552n/lpd/filterdcpj552n 2020-07-26 23:44:28.009693405 +0900
***************
*** 77,84 ****
rm -f $PS_TEMP
;;
* )
! A2PS_OP="--output=- -q -1 --no-header --borders no"
! eval cat $INPUT_TEMP | a2ps $A2PS_OP | $PSCONV $PSCONV_OP | $BRCONV $BRCONV_OP
RET=$?
;;
esac
--- 77,86 ----
rm -f $PS_TEMP
;;
* )
! ## A2PS_OP="--output=- -q -1 --no-header --borders no"
! ## eval cat $INPUT_TEMP | a2ps $A2PS_OP | $PSCONV $PSCONV_OP | $BRCONV $BRCONV_OP
! A2PS_OP=""
! eval cat $INPUT_TEMP | /usr/local/bin/a2ps-j $A2PS_OP | $PSCONV $PSCONV_OP | $BRCONV $BRCONV_OP
RET=$?
;;
esac
a2ps.pl-1.45と日本語 UTF-8 パッチのインストール
a2ps Japanese UTF-8 patch (日本語 UTF-8 パッチ): 十四松のブログからありがたくダウンロードしインストールしa2ps-jにリンクを張る。
# cd /usr/local/bin/ && ln -s a2ps.pl-1.45 a2ps-j
/usr/local/etc/printcap for LPRng
LPRng用のprintcapを編集する。
.common:
:sd=/var/spool/lpd/%P
:sh:mx=0:mc=0
#
lp:rm=dcpj552n:\
:tc=.common:\
:if=/usr/libexec/filters/lp-filter.sh:
#
lpraw|lpr:rm=dcpj552n:\
:tc=.common:\
:filter=/bin/cat:
:ff=:
# written for dcpj552n
dcpj552n:\
:mx=0:\
:sd=/var/spool/lpd/dcpj552n:\
:sh:\
:rm=dcpj552n:\
:if=/opt/brother/Printers/dcpj552n/lpd/filterdcpj552n:
# dcpj552n end
LPRng用のスプールディレクトリを作成する。
# cd /var/spool/lpd && mkdir lp lpraw dcpj552n # chown daemon.daemon lp lpraw dcpj552n # chmod 700 lp lpraw dcpj552n # checkpc
/usr/libexec/filters/lp-filter.sh
LPRng用のフィルタースクリプトを作成する。
#! /bin/sh
# Create rcfile start
#
# Ex. lpr -Zmd=Plain:reso=PlainNormal:bidir=ON
#
md=Plain
reso=PlainNormal
bidir=ON
pt=A4
thick=Regular
corm=Color
cm=Vivid
jpeg=Recommended
ht=Diffusion
ce=OFF
sd=OFF
duplex=None
duplexmode=Normal
brit=0
cont=0
red=0
green=0
blue=0
rcfile=/tmp/brdcpj552nrc.1.$$.tmp
#
for i in `echo $* | sed -e 's/^.* -Z//;s/ *.*$//;s/:/ /g'`
do
key=`echo $i | cut -d= -f1`
value=`echo $i | cut -d= -f2`
case ${key} in
md)
md=${value}
;;
reso)
reso=${value}
;;
bidir)
bidir=${value}
;;
pt)
pt=${value}
;;
thick)
thick=${value}
;;
corm)
corm=${value}
;;
cm)
cm=${value}
;;
jpeg)
jpeg=${value}
;;
ht)
ht=${value}
;;
ce)
ce=${value}
;;
sd)
sd=${value}
;;
duplex)
duplex=${value}
;;
duplexmode)
duplexmode=${value}
;;
brit)
brit=${value}
;;
cont)
cont=${value}
;;
red)
red=${value}
;;
green)
green=${value}
;;
blue)
blue=${value}
;;
*)
;;
esac
done
#
touch ${rcfile}
/usr/bin/brprintconf_dcpj552n -md ${md} \
-reso ${reso} \
-bidir ${bidir} \
-pt ${pt} \
-thick ${thick} \
-corm ${corm} \
-cm ${cm} \
-jpeg ${jpeg} \
-ht ${ht} \
-ce ${ce} \
-sd ${sd} \
-duplex ${duplex} \
-duplexmode ${duplexmode} \
-brit ${brit} \
-cont ${cont} \
-red ${red} \
-green ${green} \
-blue ${blue} \
-rcfile ${rcfile}
BRPRINTERRCFILE=${rcfile}; export BRPRINTERRCFILE
#
#------------------------------------------------------------
/opt/brother/Printers/dcpj552n/lpd/filterdcpj552n $*
RET=$?
#------------------------------------------------------------
#
rm -f ${rcfile}
exit $RET
#
# /usr/bin/brprintconf_dcpj552n <[option command] [setting]>...
# -md : Media
# PlainDuplex : Plain Duplex Paper
# Plain : Plain Paper
# Inkjet : Inkjet Paper
# BrotherGlossyR : Brother BP71 Photo Paper
# BrotherBP60Matte : Brother BP60 Matte Paper
# Glossy : Other Photo Paper
# Transparencies : Transparencies
# HagakiAtena : HagakiAtena
# HagakiUra : HagakiUra
# PrintableDisc : PrintableDisc
# -reso : BResolution
# PlainFast : Plain Fast
# PlainNormal : Plain Normal
# Fast : Fast
# Normal : Normal
# Photo : Photo
# Best : Best
# DiscSlow : Slow Drying
# DiscNormal : Disc Normal
# -bidir : BiDirPrint
# OFF : Off
# ON : On
# -pt : PaperType
# A4 : A4
# BrA4_B : A4 (Borderless)
# Letter : Letter
# BrLetter_B : US Letter (Borderless)
# Legal : Legal
# Executive : Executive
# B5 : JIS B5
# A5 : A5
# A6 : A6
# BrA6_B : A6 (Borderless)
# BrPostC4x6_S : 4 x 6 in
# BrPostC4x6_B : 4 x 6 (Borderless)
# BrIndexC5x8_S : 5 x 8 in
# BrIndexC5x8_B : 5 x 8 in (Borderless)
# BrPhotoL_S : 3.5 x 5 in
# BrPhotoL_B : 3.5 x 5 in (Borderless)
# BrPhoto2L_S : 5 x 7 in
# BrPhoto2L_B : 5 x 7 in (Borderless)
# Postcard : Postcard 1
# BrHagaki_B : Postcard 1 (Borderless)
# DoublePostcardRotated : Postcard 2 (Double)
# EnvC5 : C5 Envelope
# Br12cmDisc_B : 12 cm Disc
# EnvDL : DL Envelope
# Env10 : Com-10
# EnvMonarch : Monarch
# EnvYou4 : Y4 Envelope
# EnvChou3 : N3 Envelope
# EnvChou4 : N4 Envelope
# EnvC6 : C6 Envelope
# -thick : PaperThick
# Regular : Regular
# Thick : Thick
# Env : Envelope
# -corm : ColorOrMono
# Color : Color
# Mono : Grayscale
# -cm : ColorMatch
# Natural : Natural
# Vivid : Vivid
# None : None
# -jpeg : JpegPrinting
# Recommended : Recommended Setting
# QualityPrior : Improved Print Quality
# SpeedPrior : Improved Print Speed
# -ht : HalfTone
# Diffusion : Diffusion
# Dither : Dither
# -ce : ColorEnhance
# OFF : Off
# ON : On
# -sd : SlowDrying
# OFF : Off
# ON : On
# -duplex : BRDuplex
# None : Off
# DuplexNoTumble : Long-Edge Binding
# DuplexTumble : Short-Edge Binding
# -duplexmode : BRDuplexMode
# Normal : Normal
# Duplex1 : Duplex 1 (Slower print speed)
# Duplex2 : Duplex 2 (Slower print speed & less ink)
# -brit : Brightness
# numerical value
# -cont : Contrast
# numerical value
# -red : RedKey
# numerical value
# -green : GreenKey
# numerical value
# -blue : BlueKey
# numerical value
# -rcfile
# The rc file full path
lpr
一般的な設定(A4, 普通紙)で印刷する場合は以下の用に。
$ lpr foo.ps foo.pdf foo.txt
高品質(写真紙)で印刷する場合は以下のように。
$ lpr -Zmd=Glossy:reso=Photo:bidir=OFF:pt=BrPhotoL_B photo.ps
_ DCP-J552Nのスキャナー設定
スキャナードライバーのインストール
以下のドライバーをダウンロードし、root権限でrpmからtgzに変換する。
- brother-udev-rule-type1-1.0.2-0.noarch.rpm
- brscan-skey-0.2.4-1.x86_64.rpm
- brscan4-0.4.9-1.x86_64.rpm
# rpm2tgz brother-udev-rule-type1-1.0.2-0.noarch.rpm # rpm2tgz brscan-skey-0.2.4-1.x86_64.rpm # rpm2tgz brscan4-0.4.9-1.x86_64.rpm
tgzをインストールする。
# installpkg brother-udev-rule-type1-1.0.2-0.noarch.tgz # installpkg brscan-skey-0.2.4-1.x86_64.tgz # installpkg brscan4-0.4.9-1.x86_64.tgz
/opt/brother/scanner/brscan4/brsanenetdevice4.cfgの設定
# /usr/bin/brsaneconfig4 -a name=dcp-j552n model=DCP-J552N ip=192.168.0.52 # cat /opt/brother/scanner/brscan4/brsanenetdevice4.cfg DEVICE=dcp-j552n , "DCP-J552N" , 0x4f9:0x2e3 , IP-ADDRESS=192.168.0.52
/etc/sane.d/net.conf
DCP-J552NのIPアドレスを設定する。
192.168.0.52
/etc/sane.d/dll.conf
スキャナードライバの種類を設定する。
brother4
動作確認
$ scanimage --list-devices device `brother4:net1;dev0' is a Brother dcp-j552n DCP-J552N
スキャンする!
$ xsane &
[ツッコミを入れる]
2020年08月09日 Setting ACPI for suspending machine automatically when battery charge loss [長年日記]
_ ノートPCのバッテリー残量が少なくなったら自動的にサスペンドするためのACPI設定方法
/etc/acpi/acpi_handler.sh
バッテリーに関するイベントを検知したらスクリプト(/etc/acpi/lowbattery.sh)を起動する。
*** acpi_handler.sh.ORG 2020-08-08 23:40:56.530432033 +0900
--- acpi_handler.sh 2020-08-09 01:16:38.793951977 +0900
***************
*** 13,18 ****
--- 13,21 ----
;;
esac
;;
+ battery)
+ /etc/acpi/lowbattery.sh &
+ ;;
*)
logger "ACPI group $1 / action $2 is not defined"
;;
/etc/acpi/lowbattery.sh
バッテリー駆動の間は60秒間隔でバッテリー残量をチェックし、残量が10%を切った場合サスペンドする。ACアダプタ駆動になったら終了する。
#! /bin/sh
trap 'rm -fr /tmp/lowbattery.lock' INT TERM
mkdir /tmp/lowbattery.lock || exit 1
wait=60
threshold_percent=10
while [ X = X ]
do
if [ X`cat /proc/acpi/ac_adapter/ACAD/state | egrep off-line` = "X" ]
then
off_line=no
else
off_line=yes
fi
if [ ${off_line} = yes ]
then
last_full_capacity=`cat /proc/acpi/battery/BAT1/info |\
egrep 'last full capacity' |\
sed -e 's/: */:/;s/ mAh//' |\
cut -d: -f2`
remaining_capacity=`cat /proc/acpi/battery/BAT1/state |\
egrep 'remaining capacity' |\
sed -e 's/: */:/;s/ mAh//' |\
cut -d: -f2`
battery_percent=`expr ${remaining_capacity} \* 100 / ${last_full_capacity}`
if [ ${battery_percent} -le ${threshold_percent} ]
then
logger "ACPI /etc/acpi/lowbattery.sh suspend(${battery_percent}%/${threshold_percent}%)"
sync;sync;sync
echo -n mem > /sys/power/state
fi
else
break
fi
sleep ${wait}
done
rm -fr /tmp/lowbattery.lock
[ツッコミを入れる]