Last year I purchased a Dane-Elec SoSmart media
player. It has 1TB disc in it and numerous outputs, including HDMI. As a media player I can’t really
fault it. The only problem that I had was that it uses the NDAS protocol to share the disc, it doesn’t
use SMB or any other sane protocol.
For those that don’t know what the NDAS is, and I didn’t until I got this, rather than using a protocol
to share/transfer files it uses the NDAS protocol to share the physical disc. There are drivers for
Linux as well as Windows, but the speeds it got were terrible. Was there a solution?
Kind of, Sir Dekonass had produced a custom firmware build that
would let you access the device using both telnet and ftp. Not exactly secure but on my little home
network not much of a problem. Great, except I didn’t have write access to the disc, I only had read
only access. I telnet in, root didn’t have a password and I couldn’t set one either.
I then tried to unmount the drive and remount it, but it came back as read only again. I assumed this was
due to it being ntfs and the driver being used. I connected to the device using a USB cable and I found
that I could use fdisk to recreate the partition on the disk as a Linux partition and then use mkfs.ext3
to create a new file system on this. Restarting it I then discovered that it had mounted it as read only
again even though it was now an ext3 partition. I tried unmounting it and mounting it again and this time
I could write to the disc. Great except I had to log in each time I turned it on and remount the disk,
which I really didn’t want to do.
It took a while of digging through the start up scripts on the SoSmart but I discovered that in the startup
sequence it looks at each disc it has mounted for a file called
mvix_init_script and if it exists execute it.
I knew I couldn’t easily put it on the disc in the machine as I wanted to unmount it. To get around this problem
I got an old USB flash drive and repartitioned it into two new partitions and formated them both as ext3.
On the first partition I created my custom
mvix_init_script. On the second I copied the contents of the
directory. Inside my
mvix_init_script I effectively have 3 sections.
The first unmounts the second partition on the USB and remounts it over
/etc. This lets me add passwords and
new users to the setup, so I now only have a passwordless root account for a very short period on startup.
The second section unmounts the internal hard disk and remounts it, making sure it is writeable. This lets me
use ftp to transfer files over to the disk, which is a lot faster and easier than maintaining the NDAS setup.
The thrid section kills the shttpd processes and restarts them with a document root of just the internal hard
disk. This stops people viewing things like
/etc/passwd with it which really wouldn’t be a good thing.
Is this a perfect setup? Not really I would like to have SSH on it rather than telnet but then copying files
over SSH would take longer than the simple ftp method.
It turns out that after googling “mvix_init_script”, the system is actually the mvix built for the sosmart
and a lot of good information it available at http://mvixcommunity.com/.