Tweaking The Official Firmware

1 Get root access using PuTTY:

021%20Tweaking%20001%20putty.jpg

First download PuTTY. Then find out on what ip your moviecube is connected to the network. For example “192.168.2.4”. Open PuTTY and fill in the ip address the EMC-R is using. Choose “Telnet” and click “Open”.

When you click “OK” a command screen will open prompting for a password. Type in: “root” without the quotation marks. You are now logged in as root user. Normal linux commands work. Try for example:

  • ls –all to show the contents of the actual directory
  • cd dir_name to change to the specified directory
  • cd .. to go back one directory
  • mkdir dir_name create a directory with specified name

The commands can be pasted in putty using the right mouseclick (to paste the clipboard content).

If your root filesystem is read only (e.g. you can't modify any files or create new directories) try remounting the root partition in readwrite mode:

  • mount -o remount,rw /

If that won't help then your media player probably stores its firmware in flash memory. In that case getting write access to the root partition is impossible and only changes under /tmp are possible. There are some workarounds where you install software on one of the writeable data partitions and start it manually via netcat. A search in the forums or the linked websites wil give you loads of information on that topic. This behaviour is known to show up on the Ellion HMR Devices.

Back to the read only mount.
To permanently make the root partition writeable you can create an init script that does the remount automatically for you.

Create a new file in /etc/init.d by calling vi /etc/init.d/S99remountrw
Put following content into the file:

#! /bin/sh

# Remount Root Filesystem in Read Write Mode
echo "Remounting / in rw mode..."
mount -o remount,rw /

exit 0

Now make the file executeable:
chmod 755 /etc/init.d/S60remountrw

2 Add password protection for root user

You can add password authentication for user root using this magic commands:

mv /etc/passwd /etc/passwd.old
cat /etc/passwd.old | grep -v root::0 > /etc/passwd
echo root:PqnSB08FmjvCY`cat /etc/passwd.old | grep root::0 | cut -f 2- -d:` >> /etc/passwd

Crypted password is the sequence of chars: PqnSB08FmjvCY
You can use this page: Password Generator to generate sequence for your password.
ATTENTION: If you make a mistake, you are losing the telnet connection. In this case, you can have access to the root directory of the Box via USB an a Linux-PC.

3 Change to predefined desktop

The EMC –R comes with 6 predefined desktops to use. To change the desktop use PuTTY to get root acces. To make things easier later on we first copy the full contents off the “/usr/local/bin/Resource/” directory to the accessible FAT32 partition.

mkdir /usr/local/etc/hdd/volumes/HDD1/sys
cp /usr/local/bin/Resource/* /usr/local/etc/hdd/volumes/HDD1/sys

When you open the fat32 partition using USB2 or the network you can now see all the copied files in the newly created directory “sys”. Search for the file “swconfig.ini”. Open it in notepad. Now look for “sustom_id = 1” below are the descriptions of the selectable desktops. My personal favourite is option 4 (icons move in a circle).Now go back to PuTTY and change the “swconfig.ini” file using these commands:

vi /usr/local/bin/Resource/swconfig.ini

Move the cursor to the line “sustom_id = 1”
move to the “1”

  • press “A”
  • press “4” for example (choice from 0 to 5)
  • Press “esc”
  • press “:”
  • type in “wq”
  • “Enter”

Please be carefull with calling an id, they are numbered from 0 to 5. In firmware version 2.0.9UP there is an extra desktop included, desktop 6, a peekbox theme

More information about Vi (eng)

016%20circle_desktop.jpg
An example of the circle desktop

4 Modify the desktop and bootpicture

In the previous paragraph we copied all the contents of “Resource” to the “sys” directory on the FAT32 partition. The reason for this was the possibility to copy all the elements of a desktop to your PC to edit them. Important about this is that you save all the bitmaps as “16bit R5G6B5” format (I use Gimp for that matter). Also remember to copy the swconfig.ini file to your pc and edit the sustom_id to the appropriate id.
ATTENTION: If the bitmap has not the right format, the box dont start correctly. In this case, you can have access to the root directory of the Box via USB an a Linux-PC.

I made a desktop so you can try to upload a custom desktop:

019%20desk_cust_002.jpg
file custom desktop red: Download

Download the file and unpack it. Copy the contents and the “swconfig.ini” file set to option 5 to a directory on the EMC-R (for example directory “new”). Now open a telnet session and copy the contents of “new” into the “/usr/local/bin/Resource” directory.

cp /usr/local/etc/hdd/volumes/HDD1/new/* /usr/local/bin/Resource/

changing bootpicture

The bootpicture needs to be of these specifications:

  • 24 bit bitmap
  • 720x576 pixel
  • 4 color

Save the 24bit 720x576 4 color bitmap as logo_pal.bmp inside the directory with the downloaded firmware, now flash the cube with the changed firmware. The new logo should be visible next boot…

5 Get Samba acces to the recorded programs

This will work for those boxes, having the operationsystem on harddisk. The Ellions load it from flash and need other technic to tweak the system.
A solution for samba and ftp is found here and discussed here- in german.

First i'd like to refer to the original thread on which this chapter is based gulliThis harddisk recorder has the same internals as the EMC -R. In this community they have managed to get some extra functionality's working. This is only a translation and not my own discovery.

  • first download this Samba config file. (file by Mediastar
  • copy the file to the FAT32 partition.
  • open a Telnet session
  • give this command (if the file was copied to the root of the FAT32 partition)
cp /usr/local/etc/hdd/volumes/HDD1/smb.conf /usr/lib/

now give read and write acces to this partition using this command

chmod 777 -R /usr/local/etc/hdd/dvdvr

and reboot…In Windows you can now select a third partition with all your recorde programs available :)

022%20tweaking%20002%20samba%20access.jpg
The partition is called "DVDR Aufnahmen" you can edit the file (smb.conf) and call the partition whatever you like

The recordings are in a .vro format, all in one file. This is a camcorder/dvdrecorder format. You can change the extension to .mpg, there is no need for any conversion. Anyway, the more comfortable way to get the recordings on to pc is, to copy them, each single film, to a FAT32 medium.

Add root partition to Samba Access

Add these lines to smb.conf:

[root]
guest ok = yes
comment = root partition
path = /
writable = yes
read only = no

Add USB mounts to Samba Access

Add these lines to smb.conf:

[USB & SD] 
guest ok = yes 
comment = USB 
path = /mnt/usbmounts 
writable = yes 
read only = no}}

6 Get FTP functionality

This is also a thread translation from the forum linked to in chapter 4. Thanks Mediastar for sharing his knowledge and files :) . This is only a translation and not my own discovery. (rewritten by bogy thanks :) )

  • copy the files to a directory on the FAT32 partition of the EMC-R (for example FTP)
  • open a telnet session
mkdir ftp 
mkdir /ftp/tmp 
cp /usr/local/etc/hdd/volumes/HDD1/FTP/* /ftp/tmp/ 
cd /ftp/tmp 
chmod +x bftpd 
vi /ftp/tmp/bftpd.conf and replace : 
PATH_BFTPDUTMP="/var/tmp/bftpdutmp" to PATH_BFTPDUTMP="/ftp/tmp/bftpdutmp" 
MOTD_GLOBAL="/var/tmp/ftpmotd" to MOTD_GLOBAL="/ftp/tmp/ftpmotd" 
PATH_FTPUSERS="/var/tmp/ftpusers" to PATH_FTPUSERS="/ftp/tmp/ftpusers"
./bftpd -d -c /ftp/tmp/bftpd.conf
  • init the startscript
vi /etc/inetd.conf

and replace ftp line by:
ftp stream tcp nowait root ./ftp/tmp/bftpd -d -c /ftp/tmp/bftpd.conf
  • reboot

If you change root directory on ftp deamon, edit /ftp/tmp/bftpd.conf and replace ROOTDIR="/" by ROOTDIR="/usr/local/etc/hdd/volumes/HDD1"

7 Get Torrent functionality

Atrotign: I made an ext2 version with ctorrent compiled in it, here is step by step the procedure to use it :

HOWTO install ctorrent with ctcs (HTML control center)

On PC :

1) Get the zip package here:
mirror1
mirror2

2) Unzip the ctorrent_package on your PC

You will find a tree similar to what you will have too install on your MoviCube

3) Connect to the network of your movie cube part1

  • Copy whole "ctorrent_package" directory on the MovieCube part 1
  • Create a TORRENT directory (where .torrent meta file will be saved)
  • Create a DOWNLOADS directory (for downloaded files)

On Moviecube :

1) Connect with telnet to your MoviecCube

2) mount cube part 1 :

mkdir /hdd 
mount /dev/hda7 /hdd

3) Copy package file

cd /hdd/ctorrent_package 
cp -r * /

4) Configure dctcs in order to start each time movie cube is powered on (process not killed when put in standby mode)

Add /usr/local/bin/dctcs line at the end of /etc/init.d/rcS1 file

use vi to edit the file:

vi /etc/init.d/rcS1

go to the end of the file using the arrow keys

  • press "A"
  • type in "/usr/local/bin/dctcs"
  • press "esc"
  • press ":"
  • typ in "wq"
  • press "enter"
  • Reboot

First tests :

1) When connected to the cube via Telnet typing “ctorrent” should display ctorrent help.

2) When connected to the cube via Telnet type :

dctcs 
ps | grep dctcs

if the screen displays something like that : "699 root 36S dctcs" it’s ok

3) On you pc type http://movicube_ip_adress:18000 in your internet explorer
The dctcs login screen should be displayed (login : kite, pwd : kite), after it's all about joy !

Warning :
If you don't use DHCP server detection on your moviecube, you will have to change the /etc/resolv.conf file each time you wake up the movicube.

I didn't find a workaround til now…

For those who want to fine tune :
/etc/dctcs.conf => configuration file of dctcs

8 Stream TV-in to your PC

This is a translation from hBox.pl
author: koczis

Download mplayer and the windows frontend
Log in via Telnet
give this command:

ln -s /usr/local/etc/hdd/livepause /var/www/stream

Now go to input video (on the MovieCube)
Press the "Timeshift" button on the remote-control
After a few seconds press "play"

Now open mPlayer on your pc.

  • open "file"
  • click on "load URL"

input this

http://ip_cube/stream/DVD_RTAV/VR_MOVIE.VRO

where [ip_cube] is the ip adress of your Cube

Now you have streaming tv on your pc :)

9 chroot into Debian Linux

This idea was taken from the Emprex ME1 blog Thank you for the information.

Download al 11 rar files from this site and unrar them using, for example 7zip. The unpacked file will be around 4 Gig (!) and is an ext2 file. Connect your player using the USB connection and copy the file to the first multimedia disk. (this will take around 5 minutes).

When the file is copied disconnect USB and boot the cube. Make a telnet connection.

cd /usr/local/etc/hdd/volumes/HDD1/
mkdir chroot
mount -o loop -w ./debin-4g.ext2 ./chroot
chroot ./chroot
mount -t proc proc /proc
mount /dev/hda1 /mnt/hda
apt-get update

Now you have chroot into Debian. After each reboot you will have to chroot again:

cd /usr/local/etc/hdd/volumes/HDD1/
mount -o loop -w ./debin-4g.ext2 ./chroot
chroot ./chroot
mount -t proc proc /proc
mount /dev/hda1 /mnt/hda

Install mldonkey with sancho frontend

apt-get install mldonkey-server

Now the box will download and install for a while. after a few moments your are prompted:

After unpacking 10.9MB of additional disk space will be used.Do you want to continue [Y/n]?

type "y"

Launch MLDonkey at startup ?

Select Yes to enable it at startup

MLDonkey directory:

Just press Enter to accept default

Maximal download speed:

Just press Enter to accept default

Password of admin user:
Retype Password of admin user:

Fill in as desired.
now give these commands:

/etc/init.d/mldonkey-server stop
vim /var/lib/mldonkey/downloads.ini

find allowed_ips = ["127.0.0.1";]' and rewrite it as 'allowed_ips = ["192.168.1.0/24";]

assuming the Cube and the PC IP are in a range of 192.168.1.X (X=1~254)

/etc/init.d/mldonkey-server start

If MLdonkey doesn't work, you can check /var/lib/mldonkey/mlnet.log for detail message

Now you could use IE and type "http://x.x.x.x:4080/ (x.x.x.x is the Cube's IP address)

click Servers -> Import Server.met ( use google find sever.met and copy and paste link adress )

PS : Sancho is a good GUI connects to MLDonkey core application. (http://sancho-gui.sourceforge.net/download.phtml)

10 Playlists

the playlists are located in

/usr/local/etc/dvdplayer/playlist

You can change the location of the real playlistfile to the FAT32 partition.

ln -b -s /usr/local/etc/hdd/volumes/HDD1/playlist /usr/local/etc/dvdplayer/playlist

It makes a symbolic link to the playlist on HDD1 - it can be edited and changed directly.

For comfortable handling, Yeti45 has built a playlist converter tool - an easy to use Windows program.

The Linux way to understand and edit the playlists

The file consist of "lines" separated by a null byte (hexadecimal 00). You can transform the line-separator from hex "00" to a normal unix newline character (hexadecimal "0A") and vice versa using the build in "tr" command.

Convert playlist from mediacube format to unix format, assuming directory "/var/playlist/" exists (you need a telnet or putty session):

cat /usr/local/etc/dvdplayer/playlist | tr '\0' '\n'  > /var/playlist/playlist.txt

As a result you will get the playlist as "playlist.txt" located in directory "/var/playlist".
This file can now be edited, e.g. by using an unix-fileformat-capable editor. At the moviecube ME2-1000 the converted file looks like this (here one entry in playlist 1):

<Playlist>
1
/tmp/hddmedia/HDD1/Musik/mp3_all/MyLoveSong.mp3
<Playlist>
0
<Playlist>
0
<Playlist>
0
<Playlist>
0
<Playlist>
0
<Bookmark>
0
<Playbreak>
0

Convert playlist from unix format to mediacube format, assuming new playlist in unix format is located in "/var/playlist/playlist_new.txt" (you need a telnet or putty session):

cat /var/playlist/playlist_new.txt | tr '\n' '\0' > /usr/local/etc/dvdplayer/playlist

Please note that the moviecube's playlist is overwritten by this action, if you want to keep the original one, make a backup copy before.

11 FAT32 partitions

The Fat32 partitions are located in:

/usr/local/etc/hdd/volumes/HDD1
/usr/local/etc/hdd/volumes/HDD2

12 Installation NFS-Server on moviecube

1. follow the instructions to chroot the system according to the procedure in chapter 9
2. chroot to the above created installation
3. as prerequisit for nfs you have to start portmap by typing /etc/init.d/portmap start<enter>
4. type apt-get install nfs-user-server<enter>
5. change to /etc (cd /etc<enter>)
6. edit the file exports by typing “vim exports<enter>”
7. add the needed directory to be exported (starting editing mode by typing <i>)
8. in my case I have to add the line “/mnt/hdb 192.168.0.x 192.168.0.y” for allowing host .x and host .y accessing the cube
9. save the file and quit using <esc>:wq<enter>
10. edit the file hosts.allow by typing “vim hosts.allow” <enter>
11. add the line “portmap: ALL” for allowing portmap to point for all hosts in your network towards mountd
12. repeat pt. 9
13. in my environment I was interested in exporting the multimedia-partition. to be able to do this I created a mountpoint in /mnt by typing “mkdir /mnt/hdb<enter>” (this you have to do only once, it creates the directory to be used as mountpoint)
14. type “mount –t vfat /dev/part7 /mnt/hdb<enter>”
15. type “/etc/init.d/nfs-user-server restart” <enter> to pass the changes to the nfs-server
16. type “exit<enter>” to leave the chroot-environment

now you should be able to access the multimedia-partition using nfs.

I am using nfs server for my dreambox dm500 for the best results of recording.

Disadvantage: the nfs-user-server is not able to handle files > 2gb. So you have to change the maximum filesize (i.e. in your dreambox) to 2gb. unfortunately there is recently no nfsd-kernel-module included in the VENUS-dist to activate the nfs-kernel-server. well, we'll see……

For autostart of the nsf-server i’ve figured out the following script, placed in /etc/init.d/ of the original environment of the cube:

mount -o loop -w /usr/local/etc/hdd/volumes/HDD1/debin-4g.ext2 /usr/local/etc/hdd/volumes/chroot
rm /usr/local/etc/hdd/volumes/chroot/etc/mtab
chroot /usr/local/etc/hdd/volumes/chroot mount -t proc proc /proc
chroot /usr/local/etc/hdd/volumes/chroot mount -t vfat /dev/hda7 /mnt/hdb
chroot /usr/local/etc/hdd/volumes/chroot setsid /etc/init.d/portmap start
chroot /usr/local/etc/hdd/volumes/chroot setsid /etc/init.d/nfs-user-server start

to include your script into the boot procedure of the cube it has to be name somewhat like “S80<what-ever-you-want>.sh”. it is case-sensitive!, the prepart “S80” initiates the start at last position of boot-procedure, the extension “.sh” tells linux to handle it as shell-script. don't forget to make the script with "chmod 755 /etc/init.d/S80>what-ever-you-want>.sh<enter>" executable.

have fun, Einsteini

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License