You are not logged in.

#1 2015-08-14 00:12:32

rehono
Member
Registered: 2015-06-15
Posts: 16

Brother HL-L2380DW drivers

Hey guys I was able to get brother driver working with following instructions:
https://bbs.archlinux.org/viewtopic.php … 7#p1502597

But I noticed that the quality of printed text/images is not very clear.
I changed dpi to 600 from 300 and it helps but still looks terrible.

EDIT:
You can ignore the rest of the post.
I was easily able to get printer working.
1. install cups
2. Install brother-brgenml1
3. add the user you want to add/remove printer to sys group
4. logoff and login as the user
5. enable and start org.cups.cupsd.service
6. go to http://localhost:631/ and click add printer on admin tab, enter user's username and password and it will guide you through the setups. make sure you select ipp
7. when asked enter printer address use: ipp://printer_ip/ipp/port1 make sure you enter correct printer ip address.
8. when asked for drivers select brother and then select brother-brgenml1
9. it should work now, try printing a test page


EDIT:
I searched aur for similar packages like:
hll2340dw
hll2320d

and modified them for my printer, it installed fine but the driver didn't work.

any help is appreciated.

edit:
looking at ppd files, they are closest to mfc-l2700dw
I am going to try it out with modifications for l2380dw

I looked at INF files for l2380dw windows drivers and they work for these printers. I assume they are similar, i will check out any aur that exist for these printers. edit: only other printer that exists is mfc-l2720dw


edit:
so i modified both the PKGBUILD and they both give out exact same ppd files and lpdwrapper perl script but the 2nd one won't show up in cups (i am thinking file permission issue).

PKGBUILD that sort of works (from mfc-l7020dw):

# Maintainer: no one <example at example dot com>
pkgname="brother-hl-l2380dw"
pkgver="3.2.0"
pkgrel=1
pkgdesc="LPR and CUPS driver for the Brother HL-L2380DW"
url="http://solutions.brother.com/linux/en_us/"
arch=("i686" "x86_64")
license=('custom:brother commercial license')
depends=("cups")
depends_x86_64=('lib32-glibc')
install="$pkgname.install"
source=(
	"http://download.brother.com/welcome/dlf101769/hll2380dwlpr-$pkgver-$pkgrel.i386.rpm"
	"http://download.brother.com/welcome/dlf101770/hll2380dwcupswrapper-$pkgver-$pkgrel.i386.rpm"
)
md5sums=(
	'1cf4aa246d05da5e8d3bc280d000695e'
	'3fe2c6b93ec0acc7886beaa314212fca'
)
prepare() {
  #  do not install in '/usr/local'
  if [ -d $srcdir/usr/local/Brother ]; then
    install -dm755 "$srcdir/usr/share"
    mv "$srcdir/usr/local/Brother/" "$srcdir/usr/share/brother"
    rm -rf "$srcdir/usr/local"
    sed -i 's|/usr/local/Brother|/usr/share/brother|g' `grep -lr '/usr/local/Brother' ./`
  fi
  
  # create cups-directories
  install -dm755 "$srcdir/usr/share/cups/model"
  install -dm755 "$srcdir/usr/lib/cups/filter"
  
  # copy ppd and filter file to their destination dirs
  cd `find . -type d -name 'cupswrapper'`
  cp *lpdwrapper* "$srcdir/usr/lib/cups/filter/"
  cp *.ppd "$srcdir/usr/share/cups/model/"

  # set the basedir to an absolute path in the perl-lpdwrapper-script
  # the relative path,generated on the basis of the caller, does not work in this case
  cd "$srcdir"
  # get absolute printer path
  _baseDir="\"/$(find opt -maxdepth 3 -depth -print -quit -type d)\""
  # replace the dynamic basedir var with the absolute path
  sed -i "s|\`readlink\ \$0\`|$_baseDir|" $srcdir/usr/lib/cups/filter/*lpdwrapper*

  # /etc/printcap is managed by cups
   rm "$(find $srcdir -type f -name 'setupPrintcap*')"
  }

  package() {
    cp -R "$srcdir/usr" "$pkgdir"
    cp -R "$srcdir/opt" "$pkgdir"
  }

can't get it to show up in cups even after service restart(from mfc-l7000dw):

# Maintainer: no one <example at example dot com>
pkgname="brother-hl-l2380dw"
pkgver="3.2.0"
pkgrel=1
pkgdesc="LPR and CUPS driver for the Brother HL-L2700DW"
arch=('i686' 'x86_64')
url="http://solutions.brother.com/linux/en_us/"
license=('custom:brother commercial license')
depends=('cups')
install="$pkgname.install"
source=(
	"http://download.brother.com/welcome/dlf101769/hll2380dwlpr-$pkgver-$pkgrel.i386.rpm"
	"http://download.brother.com/welcome/dlf101770/hll2380dwcupswrapper-$pkgver-$pkgrel.i386.rpm"
	'cupswrapper-license.txt'
	'lpr-license.txt'
)
md5sums=('1cf4aa246d05da5e8d3bc280d000695e'
         '3fe2c6b93ec0acc7886beaa314212fca'
         '97ad0cffd216059e9d1d3121899d8646'
         '5e87a3dc0f3e3438c088eda0f3565f0d'
)
prepare() {
#  do not install in '/usr/local'
	if [ -d $srcdir/usr/local/Brother ]; then
		install -d $srcdir/usr/share
		mv $srcdir/usr/local/Brother/ $srcdir/usr/share/brother
		rm -rf $srcdir/usr/local
	        sed -i 's|/usr/local/Brother|/usr/share/brother|g' `grep -lr '/usr/local/Brother' ./`
        fi
# setup cups-directories
	install -d $srcdir/usr/share/cups/model
	install -d $srcdir/usr/lib/cups/filter
#  go to the cupswrapper directory and find the source file from wich to generate a ppd- and wrapper-file
	cd `find . -type d -name 'cupswrapper'`
	if [ -f cupswrapper* ]; then
		_wrapper_source=`ls cupswrapper*`
		sed -i '/^\/etc\/init.d\/cups/d' $_wrapper_source
		sed -i '/^sleep/d' $_wrapper_source
		sed -i '/^lpadmin/d' $_wrapper_source
		sed -i 's|/usr|$srcdir/usr|g' $_wrapper_source
		sed -i 's|/opt|$srcdir/opt|g' $_wrapper_source
		sed -i 's|/model/Brother|/model|g' $_wrapper_source
		sed -i 's|lpinfo|echo|g' $_wrapper_source
		export srcdir=$srcdir
		./$_wrapper_source
		sed -i 's|$srcdir||' $srcdir/usr/lib/cups/filter/*lpdwrapper*
		sed -i "s|$srcdir||" $srcdir/usr/lib/cups/filter/*lpdwrapper*
		rm $_wrapper_source
	fi
#  /etc/printcap is managed by cups
	rm `find $srcdir -type f -name 'setupPrintcap*'`
}
package() {
	cp -R $srcdir/usr $pkgdir
	if [ -d $srcdir/opt ]; then cp -R $srcdir/opt $pkgdir; fi
	install -m 644 -D cupswrapper-license.txt $pkgdir/usr/share/licenses/${pkgname}/cupswrapper-licence.txt
	install -m 644 -D lpr-license.txt $pkgdir/usr/share/licenses/${pkgname}/lpr-licence.txt
}

Last edited by rehono (2015-10-25 22:30:26)

Offline

Board footer

Powered by FluxBB