Homepage Johann Hanne 
Valid XHTML 1.0 Strict
About | Projects | Gadgets | Photos | Links
Projects - Actiontec DPCM stuff - GPL firmware 

Warning: This firmware has the potential to destroy your Dual PC modem or make it otherwise unusable. Neither me nor anybody who has pointed you to this website is responsible if this happens, you always use this firmware at your own risk. Installing this firmware will also destroy your configuration, so make sure you back it up first.

Download: DPCM GPL firmware 0.1.1

The DPCM firmware consists of three parts:

  • The bootloader (boot-ldr.bin)
  • The gzip-compressed kernel (linuz)
  • The romdisk (romdisk.bin)

To install this firmware, put the three files (boot-ldr.bin, linuz, romdisk.bin) and an empty file called tiburon.rbt onto your DPCM via tftp. Then wait for about 2 minutes and connect to it (point your webbrowser to to see if it worked. It might be possible to use the Windows tool which is provided by Actiontec for firmware upgrades (just replace the three files mentioned above), but I have not tested it. Reports on this are welcome.

Changes from version 0.0.0 (0.1.0 has not been publically released):

  • The driver for the internal modem should now be stable thanks to Steven Clark
  • The GPL firmware is now largely based on the uClinux-dist, version 0.0.0 was mostly compiled of seperate software packages
  • Both flash chips used by Actiontec (Intel 28F160B3B and ST M29W160DB) are now supported

Functional disadvantages:

  • No web interface - at the moment you have to edit configuration files via telnet/vi

Functional advantages:

  • 16 kB of flash is available for configuration files (files will be gzip compressed, i.e. you can actually have more than 16 kB of text)
  • root password can be changed (use the 'passwd' shell command)
  • supports PPPoE

Technical advantages:

  • Uses a recent uClinux kernel (2.4.31 as of writing, the original firmware uses 2.4.6)
  • Uses the standard Linux MTD subsystem (giving access to flash via /dev/mtd*)
  • Uses a current dnsmasq (2.22 as of writing), original firmware using the ancient version 1.8
  • The modem LED (plus the LEDs which are not mounted on the original hardware) are controlled via the standard uClinux ledman interface, a program called 'ledctl' is included for it

Using it:

  • Default IP address is (with subnet mask
  • Default root password is 'mydpcm'
  • To configure PPP over analog modem (without dial-on-demand), edit the following files (read the comments in every file!):
    • /etc/sysconfig/ppp: Make sure the correct command is there; the default is PPP over analog modem, so if you have the default configuration, you don't need to change it
    • /etc/ppp/phone_number: Put "ATDT" plus the phone number of your ISP there; don't leave out the "ATDT" and don't put any additional lines there, the file must be "ATDTphonenumber" in one line!
    • /etc/ppp/ppp_username: Put your PPP username there
    • /etc/ppp/pap-secrets and /etc/ppp/chap-secrets: Put your PPP username and password there
    • /etc/ppp/chat-script: Only edit this file if you have some special requirements (e.g. if you are connected to a PBX or if you don't want to hear dialing and the initial modem noise)
    • Save your configuration with 'save_config' and reboot your DPCM with 'reboot'
    • Run 'connect_to_isp' to actually connect to your ISP
  • To configure PPP over analog modem with dial-on-demand do the same as without dial-on-demand, but put the according command ('diald &') in /etc/sysconfig/ppp (and comment out/delete the other command)
  • To configure PPPoE, edit the following files (read the comments in every file!):
    • /etc/sysconfig/ethernet_interfaces: Remove the bridge and only configure an IP address for one ethernet interface; for the PPPoE interface only start the ethernet interface; the recommended configuration is to use eth0 (Labeled "2" on the box) as LAN interface (with an IP address assigned) and eth1 (Labeled "1" on the box) as PPPoE/WAN interface (with no IP address assigned)
    • /etc/sysconfig/ppp: Make sure the correct command is there (see the comments)
    • /etc/ppp/ppp_username: Put your PPP username there
    • /etc/ppp/pap-secrets and /etc/ppp/chap-secrets: Put your PPP username and password there
    • Save your configuration with 'save_config' and reboot your DPCM with 'reboot'
    • Run 'connect_to_isp' to actually connect to your ISP
  • You can reset the configuration to the defaults by pressing the reset button for more than 5 seconds while the DPCM is already running, i.e. after powering it and waiting at least 30 seconds (This is not the recovery procedure where the button must be pressed while powering the device!)
  • To change the configuration edit the configuration files in /var/etc, run 'save_config' and reboot the device; you can of course use the standard shell commands (ifconfig, route, etc.) to change the live configuration, but these changes won't be permanent!
  • You can change the root password with the 'passwd' shell command; you must also run 'save_config' to make this change permanent
  • To upgrade the firmware, upload a file named 'linuz' (which must contain a gzip-compressed Linux kernel) and a file name 'romdisk.img' (which must contain a romfs image) via tftp; then either upload an empty file named 'tiburon.rbt' (which will start the flash upgrade in the background) or log into the DPCM via telnet and run 'upgrade_firmware' (which will give some progress feedback); in either case the device will be rebooted after the firmware has been flashed.
  • To control the modem LED, use the 'ledctl' command line tool:
    • To turn it on briefly: ledctl 2 1
    • To turn it on permanently: ledctl 2 2
    • To turn it off permanently: ledctl 2 3
    • To let it flash: ledctl 2 4
    • To reset it to the default behavior (it's off by default): ledctl 2 5
  • To control the three LEDs which are not mounted when shipped (you can see the prepared solder points if you open your DPCM), use the same commands as for the modem LED, but a different first parameter: This is actually the LED number and these three additional LEDs are number 5, 6 and 7
  • You cannot control the power and ethernet LEDs as these are hardware controlled (although they have LED numbers 1, 3 and 4 assigned - this is only to make the numbering of the other LEDs non-confusing)
  • You can reset the internal analog modem with "ledctl 8 2" (not normally required)