                         Ihug Skymedia SM200/SM200D

                  Technical Info - Packaged Drivers Edition

[ Introduction ]

This document outlines the installation, configuration and operation of the
Telemann Skymedia SM200 and SM200D satellite interface cards under the Linux
operating system for use with the Ihug wholesale bandwidth service

[ Author ]

This document is maintained by Adam Boileau
(adam.boileau@staff.ihug.co.nz)).

[ Overview ]

The Telemann Skymedia satellite interface card receives DVB encapsulated IP
from a satellite and delivers them to the host machine's network stack in
the manner of a standard ethernet device.

[ System Requirements ]

You will require the following:

   * A pentium 133 or greater class machine with a free PCI slot. (Note that
     this is a real requirement - there are serious performance issues
     related to PCI bus compatibility with pre-133MHz Pentiums/486s.)
   * A Linux installation witih a version 2.2.x kernel (ihug reccomends
     Debian)
   * A good quality 100mbit network card supported by linux. We reccomend
     the 3com 3c905b.
   * A satellite dish (>=90cm in most areas) pointed towards PAS8 (the dish
     used for the standard Ihug wholesale bandwidth service will work for
     PAS8 customers. PAS2 customers will need a second dish).
   * A cable from the satellite dish to the location of the machine. This
     can be via a splitter from your existing PAS8 dish.
   * A Telemann Skymedia 200 or 200D satellite card. Note that this is not
     the same card as the Sagem Telsat Turbo used for the standard Ihug
     wholesale bandwidth service.
   * The Ihug packaged linux driver tarball for your card, kernel and libc
     version:
        o http://qweb.ihug.co.nz/imp/sm200-ihug-2.2.14-libc6.tar.gz
        o http://qweb.ihug.co.nz/imp/sm200-ihug-2.2.16-libc6.tar.gz
        o http://qweb.ihug.co.nz/imp/sm200d-ihug-2.2.14-libc6.tar.gz
        o http://qweb.ihug.co.nz/imp/sm200d-ihug-2.2.16-libc6.tar.gz

[ Installation ]

This assumes that you have installed your linux distribution, and have basic
functionality configured.

  1. Power down the machine, and insert the Skymedia card into a spare PCI
     slot. Ensure that it is firmly seated in the slot, andt that there is
     adequate airflow for cooling.
  2. Attach the coaxial cable from your satellite dish to the connector on
     the back of the card. Ensure that it is firmly connected, and screwed
     in.
  3. Boot the machine, and check the PCI Plug and Play device list reported
     by the bios. (Hit pause so you have time to see it). Ensure that your
     Skymedia is present (as a Network Adapter) and has been assigned a
     unique IRQ line.
  4. Continue to boot your machine. Log in as root, and check for the
     existance of the Skymedia in /proc/pci. (type cat /proc/pci).
  5. Untar the driver tarball in /usr/local (type cd /usr/local; tar xvfz
     sm200d-ihug-2.2.14-glibc.tar.gz)
  6. Change to /usr/local/sm200d-ihug-2.2.14-glibc, and check the README
     file for any last minute changes
  7. Edit the /usr/local/sm200d-ihug-2.2.14-glibc/skymedia init script and
     change the following settings (type vi skymedia) :

                             # Modify these for your installation
                             DEVICE=sm200d                   #this must be 'sm200' or 'sm200d'
                             DRIVERPATH=/usr/local/sm200d-ihug-2.2.14-libc6/ #path to drivers
                             IPADDRESS=192.168.0.1           #address of the skymedia card
                             LOGGING=on                      #turn logging on or off
                             LOG=/var/log/smstats.log        #place to log card diagnostics


  8. Copy this into your init script location. On a debian system this is
     /etc/init.d, on others (such as Redhat) it may be /etc/rc.d/init.d.
  9. Link it into your startup scripts at the appropriate runlevel. On a
     debian system you can use update-rc.d skymedia defaults 50.
 10. Edit the SkyData.ini file (type vi SkyData.ini) so that it has the
     following settings.

        o New Zealand PAS2 DBS MPE
        o New Zealand Skytower MPE
        o Australian PAS8 DBS MPE

 11. If you've got an SM200D and this is the first it has been used, then
     run ./SkyUpgrade to ensure that the firmware is the latest revision
 12. Run the script to load the card: /etc/init.d/skymedia start
 13. Note that the module 'sm200_lnx' or 'sm200d_lnx' is now visible when
     you do an lsmod
 14. Run the sm200dstats program (or sm200stats). This will show the output
     from the skymedia stats program, which ouputs status information from
     the card. If everything is correct, you will see ouput similar to this:

             Lock    QPSK    Viterbi Frame   FEC     AGC     Bit Error Rate  kbps    pps
             ----    ----    ------- -----   ---     ---     --------------  -----   -----
             Yes     Yes     Yes     Yes     5/6     199     0                   0       0


     If SkyData fails with a

             SM200D open failed


     then check that the card is seated and that the module loaded
     correctly.

     If SkyData fails during the QPSK, Frame, Viterbi or Lock tests, then
     double check your SkyData.ini settings. If they are correct, then have
     your dish and cable checked by your satellite installer. Adverse
     conditions such as heavy rain or snow may also affect this.

     Upon successful carrier lock, smstats will print information about the
     quality of signal. It will also print packet and bit throughput rates,
     and optionally, raw byte and packet counts. It will also note loss and
     reacquisition of lock. If you have logging turned on in the init
     script, this output will be logged every minute to the logfile. For
     more information about smstats, read the smstats documentation.

At this point, your Skymedia card is configured. If you have standard satnet
IP service (and it has been activated at the Ihug end), you should now be
able to ping the box via its satellite routed IP address. If you have
multicast service, configure your multicast application.

[ Operation ]

You can stop and start the Skymedia with the init script
/etc/init.d/skymedia.

                Usage: /etc/init.d/skymedia {start|stop|restart}


The /var/log/smstats.log contains useful information, and logs the status of
the card. If you loose lock due to bad weather or dish problems, this will
be logged. When signal is restored, it will log this also. You may wish to
add a watch and/or alarms on this to your monitoring.

[ Troubleshooting ]

If you can see data arriving on the interface (with tcpdump -p -i sm200) but
are getting no packets to your application or external interface, then
check:

   * That you have kernel reverse path filtering turned off:
     cat /proc/sys/net/ipv4/conf/all/rp_filter
     If this is 1, then
     echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
   * If you are attempting to forward traffic out another interface, that
     you have ip_forwarding compiled into your kernel and turned on:
     cat /proc/sys/net/ipv4/ip_forward
     If this is 0, then
     echo 1 > /proc/sys/net/ipv4/ip_forward
   * That you have your firewalling configuration set up to allow
     forwarding. Consult the IPChains-HOWTO if you are unfamiliar with Linux
     2.2.x firewalling.

[ Carrier Specific Settings ]

New Zealand PAS2 DBS MPE

        Frequency       = 12450
        SymbolRate      = 20557
        LocalOscillator = 10750 #or 11300
        Alignment       = H
        LNBHigh         = 1
        LNBPower        = 1
        ToneBurst       = 0
        DiseqcPort      = 0
        DataPID         = 88,3
        MACFilter       = 1
        IPAddress       = 3.1.33.7


New Zealand Skytower MPE

        Frequency       = 12266
        SymbolRate      = 27500
        LocalOscillator = 10750 #or 11300
        Alignment       = H
        LNBHigh         = 1
        LNBPower        = 1
        ToneBurst       = 0
        DiseqcPort      = 0
        DataPID         = 88,3  #data pid
        DataPID         = B4,3  #multicast pid
        MACFilter       = 1
        IPAddress       = 3.1.33.7


Australian PAS8 DBS/Bandwidth MPE

        Frequency       = 12016
        SymbolRate      = 23999
        LocalOscillator = 10750 #or 11300
        Alignment       = H
        LNBHigh         = 1
        LNBPower        = 1
        ToneBurst       = 0
        DiseqcPort      = 0
        DataPID         = 92,3  #data pid
        DataPID         = 96,3  #multicast pid
        MACFilter       = 1
        IPAddress       = 3.1.33.7
