Saturday, September 3, 2011

Notes on my Patriot Box Office (PBO)

  1. Flush lastest yaffs2 firmware (official SquashFS firmware image is NOT moddable):
    One must downgrade to P02 official firmware first before flashing the following moddable firmware. Otherwise it may brick the PBO with a small PBO logo shown on the TV after booting. 
  2. Debrick PBO without a USB-TTL cable:
    There's a reset switch SW3 on the circuit board of PBO without any physical connector soldered onto it. The switch SW3 can be used to initiate an emergency flashing after the PBO is bricked without using a USB-TTL cable.

    • Detach the PCB from the box and expose the reset switch SW3. I had to unscrew about 10 screws.
    • Put the PCB assembly on a piece of plastic bag and power it on.
    • Plug in a USB flash drive with official P02 install.img into the front panel USB port
    • Short the two soldering pads of SW3 circled in the picture above briefly. I shorted the two pads with a metal wire very briefly and I can see PBO reboots immediately and starts to read the firmware from the flash drive. 
    • Firmware flashing will be completed after rebooting twice.
  3. Latest moddable megapack firmware

    BETA.P70R2(BCN).megapack Moddable bootcode neutral

    Only the megapack has ipkg-cl for optware installation so get the megapack. It may take 10-15 minutes to flash a moddable firmware so be patient and don't turn off PBO until the flashing is completed.
  4. Install ipkg
    mkdir /tmp/hdd/root/opt
    mount -o remount,rw /
    ln -sf /tmp/hdd/root/opt /opt
    mount -o remount,r /
    mkdir /opt/tmp
    cd /opt/tmp
    wget http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/uclibc-opt_0.9.28-13_mipsel.ipk
    ipkg-cl install uclibc-opt_0.9.28-13_mipsel.ipk
    wget http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/ipkg-opt_0.99.163-10_mipsel.ipk
    ipkg-cl install ipkg-opt_0.99.163-10_mipsel.ipk
    rm *.ipk
  5. Install Vsftpd
    cd /opt/tmp
    wget http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/vsftpd_2.3.4-1_mipsel.ipk
    ipkg-cl install vsftpd_
    2.3.4-1_mipsel.ipk
    rm *.ipk
    cd /opt/etc
    mv vsftpd.conf vsftpd.conf.orig

     Create my own vsftpd.conf to allow root user login
    cat vsftpd.conf
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    vsftpd_log_file=/opt/var/log/vsftpd.log
    ascii_upload_enable=YES
    ascii_download_enable=YES
    ftpd_banner=Welcome to My PBO.
    ls_recurse_enable=YES
    listen=YES
    ftp_username=root

    Now create the log folder and set up root directory
    mkdir -p /opt/var/log
    mount -o remount,rw /

    modify /etc/passwd and change the home directory for root user to be / (from empty)
    cat /etc/passwd | grep root:
    root::0:0:root:/:/bin/sh
    mount -o remount,r /
    /opt/sbin/vsftpd /opt/etc/vsftpd.conf &

    Now ftp login as user root (empty password).
    I also start vsftpd at boot by adding this line to the end of /usr/local/etc/rcS
    /opt/sbin/vsftpd /opt/etc/vsftpd.conf &
  6. Customize IMS feeds
    Modify the file /usr/local/etc/dvdplayer/savedrss/scripts/menu.rss or wget from a web server hosting the modified menu.rss. (Power cycle the PBO by the remote if the root IMS menu is not refreshed after the modification.)

1 comment:

David H said...

Thanks for this. Really useful.
I followed all of these steps and everything work 100%.

I did have to go into

http://192.168.1.203/cgi-bin/services.cgi

and delete the RssEx and Rss packages in order to get enough room on my PBO to do this, but other than that everything went without a hitch.