2008/06/09

WMU-6500FS Configuration



Info sources:
[WMU-6500FS product page]
[Original firmware]
[JoKeR's alternative firmware]
[JoKeR's pre-built software]
[Macsat forum]

Related info:
[Howto build the firmware]
[Original fw source]
[WMU-6000 FS build toolchain]
[C library for embedded Linux systems]
[C++ standard library for embedded systems]

Prerequisites

  1. JoKeR's firmware: [FW C009-M Advanced]
  2. First access to device after the (successful) firmware upgrade:

  3. ... use a telnet client (e.g. Putty) to connect to the device:
    box# cd /mnt/C
    box# ls
    
    ... there should be no sys/ directory at the time
    box# wget http://mgb111.pradnik.net/minimal-config.tar
    box# tar xvf minimal-config.tar
    
  4. Configuration
  5. Consider following settings in file "/mnt/C/sys/etc/env-ng":
    # include /etc/rc.nextgen to startup, if RCNG=0, 
    # none of bottom options will work 
    #(excluding CHBACKUP, NOTELNET, NOLOGIN!)
    RCNG=1
    # change root home dir from readonly flash to disk
    ROOTDIR=1
    # change root shell to bash (if exist)
    ROOTSHELL=1
    # change users shell to bash (if exist)
    USERSHELL=1
    
    # if 1 dropbear sshd will start (must exist, and configured!)
    DROPBEAR=1
    
    # if 1 then may use extra shell startup scripts 
    # /mnt/C/sys/etc/rc.d/rc.* and different style /mnt/C/sys/etc/start.d/* 
    # for links to executables.
    RCPLUS=1
    
    # if 1 then kernel module will be unloaded
    NOWIFI=1
    
    ... and creation of following files:
    /mnt/C/sys/etc/rc.d/rc.kill
    ### kill/remove unused#
    killall -9 dhcpd amit_avs amit_tftpd amit_db 2>/dev/null &
    route del -net 224.0.0.0 netmask 240.0.0.0 dev br0
    
    /mnt/C/sys/etc/rc.d/rc.cfg
    ### replace system configs
    # hostname mgb111.host.net
    # cat /mnt/C/sys/etc/smb.conf > /var/config/samba/smb.conf
    # cat /mnt/C/sys/etc/resolv.conf > /etc/resolv.conf
    # cat /mnt/C/sys/etc/hosts > /etc/hosts
    
    # place user dirs at /home directory
    sed -i 's|/tmp/Virtual/|/home/|g' /var/config/passwd
    
  6. X client-server configuration
  7. We need an X server running and accessible for our X client applications. There are plenty of possible configurations, I use the XMing server. For details see XMing notes and XMing intallation guide.

    Download locations: [XMing mesa] [XMing fonts]
    Once we install and run the X server we have to configure X clients properly:
    box# export DISPLAY=<X-server-host-IP>:0
    
    Now we can try to launch one:
    box# /mnt/C/sys/X11/bin/xterm
    Xlib: connection to "<X-server-host-IP>:0.0" refused by server
    Xlib: No protocol specified
    xterm Xt error: Can't open display: <X-server-host-IP>:0
    
    There is a configuration problem. When we look at the XMing log, we see:
    AUDIT: ... Xming: client 4 rejected from IP <X-server-host-IP>
    
    As a quick solution, we can disable the access control:
    Note: -ac is unsafe on public networks, but makes things easier for beginners on private ones.
    C:\Program Files\XMing\Xming.exe :0 -clipboard -multiwindow -ac
    
    ... and problem is solved.

    To make the DISPLAY and other X related settings permanent we have to add the following lines top the /mnt/C/sys/etc/profile:
    # executable library and package paths (both X-based and console apps)
    export PATH=$PATH:/mnt/C/sys/X11/bin/
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/C/sys/lib/:/mnt/C/sys/X11/lib/
    export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/mnt/C/sys/lib/pkgconfig/:/mnt/C/sys/X11/lib/pkgconfig/
    # X server IP (for X-client apps)
    export DISPLAY=<X-server-host-IP>:0
    
  8. Soft & libs installation
  9. Essential and other libs and utils
    box# cd /mnt/C
    box# wget http://mgb111.pradnik.net/addons/libs-essential-20080502.tar.bz2
    box# tar xvjf libs-essential-20080502.tar.bz2
    box# wget http://mgb111.pradnik.net/addons/util-linux.tar
    box# tar xvf util-linux.tar
    box# wget http://mgb111.pradnik.net/addons/soft-system/coreutils-5.96-2.tar.gz
    box# tar xzvf coreutils-5.96-2.tar.gz
    box# wget http://mgb111.pradnik.net/addons/nfs-utils.tar
    box# tar xvf nfs-utils.tar
    box# wget http://mgb111.pradnik.net/addons/busybox2-extended.tar.gz
    box# tar xzvf busybox2-extended.tar.gz
    box# wget http://mgb111.pradnik.net/addons/modules-kernel.tar
    box# tar xvf modules-kernel.tar
    box# wget http://mgb111.pradnik.net/addons/modules-kernel-extra.tar
    box# tar xvf modules-kernel-extra.tar
    
    SSL
    box# cd /mnt/C
    box# wget http://mgb111.pradnik.net/addons/openssl-0.9.tar
    box# tar xvf openssl-0.9.tar
    
    Bash
    box# cd /mnt/C
    box# wget http://mgb111.pradnik.net/addons/soft-shells/bash-3.2.33-3.tar.gz
    box# tar xzvf bash-3.2.33-3.tar.gz
    
    File viewers and editors
    box# cd /mnt/C
    box# wget http://mgb111.pradnik.net/addons/soft-system/less-381.tar
    box# tar xvf less-381.tar
    box# wget http://mgb111.pradnik.net/addons/soft-editors/nano-2.0.7-2.tar
    box# tar xvf nano-2.0.7-2.tar
    box# wget http://mgb111.pradnik.net/addons/soft-editors/zile-2.2.57.tar
    box# tar xvf zile-2.2.57.tar
    
    Archivers/Unpackers
    box# cd /mnt/C
    box# wget http://mgb111.pradnik.net/addons/soft-archive-unpack/unzip-5.52.tar
    box# tar xvf unzip-5.52.tar
    box# wget http://mgb111.pradnik.net/addons/soft-archive-unpack/rar-3.0.tar
    box# tar xvf rar-3.0.tar
    box# wget http://mgb111.pradnik.net/addons/soft-archive-unpack/p7zip_4.57.tar
    box# tar xvf p7zip_4.57.tar
    
    Midnight commander
    box# cd /mnt/C
    box# wget http://mgb111.pradnik.net/addons/soft-file-managers/mc-20070623.tar.gz
    box# wget http://mgb111.pradnik.net/addons/mc-4.6.1.tar
    box# tar xvf mc-4.6.1.tar
    box# wget http://mgb111.pradnik.net/addons/mcedit.tar
    box# tar xvf mcedit.tar
    
    AWK
    box# cd /mnt/C
    box# wget http://mgb111.pradnik.net/addons/soft-system/gawk-3.1.6.tar
    box# tar xvf gawk-3.1.6.tar
    
    HDParm
    box# cd /mnt/C
    box# wget http://mgb111.pradnik.net/addons/soft-system/hdparm-8.6.tar
    box# tar xvf hdparm-8.6.tar
    
    SSH server/client (dropbear)
    Info source: [Public Key Authentication Howto]
    box# cd /mnt/C
    box# wget http://mgb111.pradnik.net/addons/servers-ssh/dropbear-050.3-n-0.tgz
    box# tar xvzf dropbear-050.3-n-0.tgz
    box# dropbearkey -t rsa -f /mnt/C/sys/etc/dropbear_rsa_host_key
    Will output 1024 bit rsa secret key to '/mnt/C/sys/etc/dropbear_rsa_host_key'
    Generating key, this may take a while...
    Public key portion is:
    ssh-rsa AAAA... <user>@<hostname>
    Fingerprint: md5 ... 
    
    ... after reboot you can use SSH access (e.g. via Putty with SSH protocol) to connect to the device

Communication with the box

As far as some communication channel can be established (e.g. via TCP/IP in this case) the fact that input/output devices are not present does not matter so much. There is a whole variety of ways how to communicate with such a device.

For example following (mostly client/server) configurations are possible:
(by building X.Org libraries I am just trying to enable the point 3 - I am interested mainly in X client part - not in server part - but do not know the exact dependencies and so I am building all)
  1. Web browser as a thin client connecting to a HTTP daemon running on the box (examples: built-in webUI, cvstrac, ...)
  2. Telnet/SSH client running on separate machine and connecting to the box with running SSH daemon (example: dropbear + mc)
  3. X-client application running on the box and connecting to X-server running elsewhere (e.g. on a PC). Box serves as an application server and X client, PC serves as X server and app client (examples: x applications)
  4. VNC viewer connecting to VNC server (along with X server) running on the box (examples: X applications) - not sure it this is possible with Airlive.
  5. Some peripherals connected to the box (e.g. via USB). I tried to search the Web and have found some description how to setup USB mouse and keyboard and that there is a USB2SVGA converter and a guide how to set it up. I have no idea what the real possibilities are for the Airlive device and whether it is useful and practical but I think at least in principle it is possible.

23 comments:

Anonymous said...

I want to install MLDonkey. The glibc is required. But there is error when I install glibc 2.3.2. Could you tell me how to install glibc?

filodej said...

Hello,
unfortunately you did not give more details what exactly you are trying to achieve, so I will only guess.

If just to get the MLDonkey working is what you want, then I think the easiest way to achieve it is to download the pre-built version from the JoKeR's site and extract it to your /mnt/C directory.
(The version you get there is compiled against the uClibc instead of GNU C library).

I did not install MLDonkey personally (I am using Deluge client) but I believe that when you follow the instruction from the macsat forum (try to search for MLDonkey) you succeed.

Regards,
Filodej

Anonymous said...

Thank you very much. I bought Airlive WMU-6500FS yesterday. The built-in BT function is too slow, so I want to manual install MLDonkey. I will download pre-built MLDonkey from the JoKeR's site tonight.

Anonymous said...

I download the file and can run MLDonkey. There is a new problem. MLDonkey can't be start when reboot. I find some code in /mnt/C/sys/etc/rc-local

### MLdonkey
# export MLDONKEY_DIR=/mnt/C/ml_global
# echo "ml:!!:100:99:ml:$MLDONKEY_DIR:/bin/ash" >> $PASSWD
# su ml -c 'mlnet >/dev/null 2>&1 &'

The directory of MLDonkey is /mnt/C/sys/root/.mldonkey

husky83 said...

I install your version of Xorg from http://filodej.blogspot.com/2008/06/wmu-6500fs-xorg-71-teaser.html (binary file).
But I can't run xterm - I don't have this file in /mnt/C/sys/X11/bin/..

Where could I find this file?
I'm have firmware 4.00b4.C009-W2.

filodej said...

Hi husky,
as far as I know the xterm is not part of the modular XOrg any longer (see for example this post or this discussion), since there are more possibilities when you choose an terminal emulator for X window system (xterm, rxvt, etc.).

I am happily using ssh access to console and (via terminal running on PC) and so did not compile an X windows terminal for the box. In case you really need it, I could possibly build one, the question is which one to choose...

Regards,
Filodej

filodej said...

Sorry, my fault,

now I can see that I have mentioned it in my examples. It seems that I built it and forgot about it :-(

However it is present neither on my box nor on my mirror system. I cannot remember what happened, most likely it was on previous version of my system. I'll look at it and let you know.

Regards,
Filodej

filodej said...

Hi again,

the xterm-237 package is done and available here.

Regards,
Filodej

Anonymous said...

hello,filodej
I have loggin problem:
1. i upgrated the fw download from your site succesfully.
2. i use putty as login tool ,i put address 192.168.1.102(6500fs),telent port 23,but 6500fs refused my connection in this step.
may you give some help. thank you very much !

Anonymous said...

sorry,i forgort the user name:root, foolish!

Anonymous said...

te link on http://mgb111.pradnik.net seems to be broken, i've to download this file: http://mgb111.pradnik.net/minimal-config.tar where can i get it?

Anonymous said...

Hiya,

I've installed the latest firmware vC009-M2 (4.00b4), then I've downloaded and run the minimal-config.tar and now I've configured both 'rc-local' and 'env-ng' (with a script under /mnt/C/sys/etc/rc.d/rc.cfg) but none of them seem to run after a reboot.

Do I need to do something else to enable the auto execution?

Cheers!!

filodej said...

Hi,
I did not create the startup scripts (it's JoKeR's business ;) so my answer is not necessarily accurate.

After a glance to the scripts I can see the following:

1)
In the /etc/rc.d there is rc.bridge startup script containing (among others) the following code:
...
if [ -r /mnt/C/sys/etc/env-ng ]; then
. /mnt/C/sys/etc/env-ng
fi
...
echo "$(logdate) firmware: C009-M Final - http://mgb111.pradnik.net/" >> $LOGM
#
sleep 7
if [ "$RCNG" = "1" ]; then
. /etc/rc.nextgen
fi
...
if [ -f /mnt/C/sys/etc/rc-local ]; then
/mnt/C/sys/etc/rc-local &
echo "$(logdate) rc-local: executed (HDD)" >> $LOGM
fi
...
2)
The /etc/rc.nextgen file interprets all the variables set up in the /mnt/C/sys/etc/env-ng script ($ROOTDIR, $ROOTSHELL, $USERSHELL, $NOWIFI, ...).
3)
After all the variables are "interpreted" the following code executes all the rc.* scripts in the /mnt/C/sys/etc/rc.d directory and all scripts in the /mnt/C/sys/etc/start.d directory:

...
if [ "$RCPLUS" = "1" ]; then
for i in /mnt/C/sys/etc/rc.d/rc.*
do
if [ -r "${i}" ]; then
. ${i}
echo "$(logdate) rc.nextgen: ${i} loaded" >> $LOGM
fi
done
#*
for i in /mnt/C/sys/etc/start.d/*
do
if [ -x "${i}" ]; then
${i} &
echo "$(logdate) rc.nextgen: ${i} maybe running" >> $LOGM
fi
done
fi
...

4)
Then the /mnt/C/sys/etc/rc-local script is executed.


So I can see the following preconditions:
1) your HDD is properly mounted to /mnt/C directory and contains "next generation environment" file (/mnt/C/sys/etc/env-ng)
2) $RCNG environment variable is set to 1 in your /mnt/C/sys/etc/env-ng
3) $RCPLUS environment variable is set to 1 in your /mnt/C/sys/etc/env-ng in case you want to execute the /mnt/C/sys/etc/rc.d/rc.* and /mnt/C/sys/etc/start.d/* scripts.

Hope this description helps.

Regards,
Filodej

Jo said...

Many thanks Filodej!!!!

After reading your explanation and checking the files under my /etc folder I noticed that they really differ from what you explained in your last post. It seems thad somehow they were not created.

I re-downloaded the firmware again, installed it again and this time they were created successfully.

Perfect, rc-local and /mnt/C/sys/etc/rc.d/* scripts are now running.

I own you a beer - if you're around London let me know heehehe

Really appreciated man, your explanations are as useful as the firmware itself :)

Anonymous said...

Hi,

I have brought an AirLive WMU-6500FS box (http://www.airlive.com/product/product_3.jsp?pdid=PD1217466585289).
I want to flash it so I can use MLdonkey.
I downloaded all firmwares from http://mgb111.pradnik.net/.
Can I use any of them to put some addons like transmission-1.75+ [19.10]?
When I try to update other firmware like FW C009 via WebUI I got the error “Unallowable upgrade file!”.
If I try to update it via repair/recovery mode:
tftp -i 192.168.123.254 put C009M.BIN
Transfer successful: 3629307 bytes in 2 seconds, 1814653 bytes/s
I got a message as it was transferred immediate, but it’s not transferred.
The only firmware that I’m able to flash are Ovislink FW 4.00b4 and Ovislink FW 4.00b2.
Thank you,
Darius

Unknown said...

Ahoh Filodej, prosim Ta, vies mi poslat na seba nejaky mail? Som novacik v Linuxe a mam problem rozbehnut viacero veci, dakujem...

Unknown said...

Can someone plz send mi whole etc directory? I´m trying again and again but system don´t create some script files (rc.nextgen, rc.bridge ...)

borbas.igor@gmail.com

THX

Unknown said...

It´s OK, everything work just fine ;-)

JPLB said...

Do u know how to swich the wireless to wpa2?

filodej said...

Sorry, I have a router and so I do not use wireless on the box at all, I have it disabled.

Please, if you find anything out, leave a link here (if you do not mind).

Thanks.

Regards,
Filodej

JPLB said...

Hi, the wpa config is in the same WEBUI
sorry but i din't see it

Anonymous said...

Great writeup!
the dropbear file on the mgb111 site is now renamved to dropbear-050.3-n-0.tgz

filodej said...

Thanks. Corrected.
Regards,
Filodej