Updating Brother printer firmware with Linux

I’ve got a network laser printer (Brother DCP-7065DN) in my home office which is only accessible from a Linux desktop …and guest what?; you can only update the firmware from a M$ Windows PC or from a Mac! 😦

After a lot of Googling and talking to the Brother’s support (which is obviously clueless), I’ve found the following blogs:

Resurrecting a Brother HL-2250DN after a failed firmware update
Brother Network Firmware Update with Linux

To get the content of the WebService request, I’ve downloaded a MIB SNMP browser from iReasoning and done a SNMP walk to extract the required values. The printer came with an original firmware version D (22/10/2010) and the latest is version J (06/09/2013).

<REQUESTINFO>
    <FIRMUPDATETOOLINFO>
        <FIRMCATEGORY>MAIN</FIRMCATEGORY>
        <OS>LINUX</OS>
        <INSPECTMODE>1</INSPECTMODE>
    </FIRMUPDATETOOLINFO>

    <FIRMUPDATEINFO>
        <MODELINFO>
            <SELIALNO>E69758E1N499775</SELIALNO>
            <NAME>DCP-7065DN</NAME>
            <SPEC>3004</SPEC>
            <DRIVER></DRIVER>
            <FIRMINFO>
                <FIRM>
                    <ID>MAIN</ID>
                    <VERSION>D1104201307:1B1C</VERSION>
                </FIRM>
            </FIRMINFO>
        </MODELINFO>
        <DRIVERCNT>1</DRIVERCNT>
        <LOGNO>2</LOGNO>
        <ERRBIT></ERRBIT>
        <NEEDRESPONSE>1</NEEDRESPONSE>
    </FIRMUPDATEINFO>
</REQUESTINFO>

…after curling the request to the WebService

curl -X POST -d @request.xml https://firmverup.brother.co.jp/kne_bh7_update_nt_ssl/ifax2.asmx/fileUpdate -H "Content-Type:text/xml" --sslv3

…BOOM!! 😉

<?xml version="1.0" encoding="UTF-8" ?>
<RESPONSEINFO>
  <FIRMUPDATEINFO>
    <VERSIONCHECK>0</VERSIONCHECK>
    <MEMORYVERSION>a</MEMORYVERSION>
    <FIRMID>MAIN</FIRMID>
    <LATESTVERSION>J1307022123</LATESTVERSION>
    <PATH>http://update-akamai.brother.co.jp/CS/LZ3637_J.djf</PATH>
    <DLTIME>129000</DLTIME>
  </FIRMUPDATEINFO>
</RESPONSEINFO>

…finally just need to flash the firmware via FTP

wget http://update-akamai.brother.co.jp/CS/LZ3637_J.djf
ftp <printer IP address> (the user id is the admin password!)
  bin
  hash
  send LZ3637_J.djf
  bye

I can’t believe how easy it’ll be to provide a cross-platform tool to flash the firmware or just providing a direct link to the firmware file! …come on @Brother!!

Advertisements

~ by cedricbompart on February 5, 2014.

One Response to “Updating Brother printer firmware with Linux”

  1. I made a tool to automate this: https://github.com/CauldronDevelopmentLLC/oh-brother

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s