Just thought I'd post this here since there are a few threads with people having trouble installing this printer and the [SOLVED] ones are using 11.04.. I tried following suggestions from this thread, this thread, and this blog post but couldn't get it to work in 12.04 (printer showed in cups but just hung, didn't print). I also use arch linux and the install script I use for arch also worked for me on 12.04. I connect through usb though I imagine connecting over the network would work by changing he device URI in /etc/cups/pritners.conf to use an IP address as mentioned in the above threads.
# Brother HL-2270DW printer install tested on arch and ubuntu 12.04
[[ $UID -ne 0 ]] && echo "Must run as root" && exit 1
which bsdtar > /dev/null
if [ $? == 1 ]; then
echo "you need to install bsdtar before running this script"
which perl > /dev/null
if [ $? == 1 ]; then
echo "you need to install perl before running this script"
echo -e "\nMake sure cups is running before proceeding...\n"
read -p "Hit any button to continue." -n 1
echo -e "\n\nWhere's your init script directory?"
echo -e "1. /etc/init.d/\n2. /etc/rc.d/"
read -p "(Select 1 or 2): " INIT_DIR
while [[ $INIT_DIR != 1 && $INIT_DIR != 2 ]]; do
read -p "Where's your init script directory? (choose 1 or 2): " INIT_DIR
mkdir br_tmp && cd br_tmp
if [[ ! -f hl2270dwlpr-2.1.0-1.i386.rpm || ! -f cupswrapperHL2270DW-2.0.4-2.i386.rpm ]]; then
echo -e "One or both files not found: \n hl2270dwlpr-2.1.0-1.i386.rpm \n cupswrapperHL2270DW-2.0.4-2.i386.rpm \n\n Was there a problem with the download?"
# extract and check directories exist
bsdtar -xf hl2270dwlpr-2.1.0-1.i386.rpm
bsdtar -xf cupswrapperHL2270DW-2.0.4-2.i386.rpm
if [[ ! -d "$HL_DIR" || ! -d "$CUPS_DIR" ]]; then
echo "rpm extraction failed"
# in-place edit files
perl -pi -e 's/printcap.local/printcap/g' setupPrintcap2
if [ "$INIT_DIR" == "2" ]; then
perl -pi -e 's/init.d/rc.d/g' cupswrapperHL2270DW-2.0.4
# copy files to system and install cupswrapper
cp -ri usr/* /usr/
cp -ri var/* /var/
cd ../ && rm -rf br_tmp
echo -e "If I hang here, be patient....\n"
/usr/local/Brother/Printer/HL2270DW/cupswrapper/cupswrapperHL2270DW-2.0.4 || exit 1
echo -e "\nNext steps: "
echo "Make sure printer shows up in cups config @ http://127.0.0.1:631"
echo "Edit /etc/cups/printers.conf and change the DeviceURI from ‘usb:xxxxx’ to ‘file:///dev/usb/lp0′ (or usb/lp1 or whatever exists, no quotes)."
echo -e "Restart cups\n"