News Images MP3 Humour Email Us Webmail Links
Stuff from: Debbie Criggie Daniel Luke Katherine Gladys
SkyMedia 200D under linux

Getting an SM200d working under linux

Last Update 20001217 V1.02

This document assumes you have a working linux firewall, and want to upgrade from a sagem telsat satellite card to a telemann skymedia sm200 card, because ihug have told you to.

NOTE: Your IP will change when you change card

Here's some files you might need as a comparison

Here's the files you need to have on your system.

Steps to follow.

  1. Ensure your firewall can find your local network via a ethernet card.
  2. Power off your linux firewall and install the sm200d card. It is just a regular PCI card, and will run in any Pentium with PCI slots. The documentation suggests a P133 is minimum - this is a P75 and works fine. However 486s with PCI could be flakey... some of them are not-quite-standard PCI. YMMV.
  3. Boot it up, and
     cat /proc/pci 
    to test that the card is found, (may not work due to /proc/pci being obsolete - doesn't matter) and
     cat /proc/interrupts 
    to make sure the card has a unique IRQ
  4. Put these commands somewhere into your boot scripts
    echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
    echo 1 > /proc/sys/net/ipv4/ip_forward
  5. Untar the two files above. They contain full directory paths, but untar them into /tmp to avoid overwriting anything.

    NOTE regarding old satellite dishes:

    If you know your dish is comparatively old (we're talking about something that was used for starnet) then you most likely have an Austar LNB

    NOTE from shayol at
    If the LNB on your satellite dish (the box on the end of the arm) is an Austar then you will need the modified SkyData binary. The file above replaces the one in the tarball - BUT ONLY IF YOU HAVE AN AUSTAR LNB

    From Andrew, hawking AT

    NOTE: This is only required if you have an AUSTAR LNB fixed to your dish.
    After having no luck with the ihug supplied drivers I downloaded
    the  sm200d_linux_text_v2.0 tarball from the telemann website and made a
    modification so that the driver would support the Austar LNB
    Edit SkyData.c
    Change the value of #define MAX_LO from 11000 to 11300
    Make (to compile the new binary)
    cp ./SkyData to where you have the drivers installed.
    SkyData.ini should have Local Oscillator set to 11300.
    restart the driver "skymedia restart" (not sure if its necessary.. but I
    expect it is)
    Our LNB used to use 13V with the Telsat Turbo card, so we're using "V" as
    our setting in SkyData.ini
    Everything seems to be working just fine at the moment *touch wood*
  6. MrViper (neil at
    [MrViper(] well, my problem was 
    actually the fact I had the odd LNB that needs to be set to 11300 (as 
    already mentioned on your website)
    How ever, you no longer need to edit the source, just download, 
    compile, install the latest drivers and all goes happy.
  7. Edit usr/local/sm200d/skymedia and make sure that the settings are correct
       DEVICE=sm200d                   #this must be 'sm200' or 'sm200d'
       DRIVERPATH=/usr/local/sm200d/   #path to drivers
       IPADDRESS=         #address of the skymedia card
       LOGGING=on                      #turn logging on or off
       LOG=/var/log/smstats.log        #place to log card diagnostics
  8. Edit usr/local/sm200d/SkyData.ini This file contains settings for frequencies and other settings
    PAS2 (satellite)
    Frequency       = 12450
    SymbolRate      = 20557
    LocalOscillator = 10750
    Alignment       = H
    LNBHigh         = 1
    LNBPower        = 1
    ToneBurst       = 0
    DiseqcPort      = 0
    DataPID         = 8C,3
    DataPID         = 8D,3
    DataPID         = 8C,3
    MACFilter       = 1
    Frequency       = 12266
    SymbolRate      = 27500
    LocalOscillator = 10750
    Alignment       = H
    LNBHigh         = 1
    LNBPower        = 1
    ToneBurst       = 0
    DiseqcPort      = 0
    DataPID         = 88,3
    DataPID         = B4,3
    MACFilter       = 1
    For those of an inquisitive bent, the MACFilter = 1 line tells the sm200 card to filter based on MAC address. This means that the card will ignore data for other users in hardware, exactly the same as an ethernet card. The old telsat cards used to filter on IP, which had to be done in software (in the driver) and was inherently slower. So all this means that MAC filtering is faster being a layer 1 function, rather than up at layer 3 the IP layer.

  9. Try running
    usr/local/sm200d/skymedia start
    I call it from /etc/rc.d/rc.local on a slackware box, but your distro may be different. Debian users can run
    update-rc.d /usr/local/sm200d/skymedia defaults
    to do the good thing.
  10. Run lsmod and you should see
    gumboots:/usr/local/sm200d# lsmod
    Module                  Size  Used by
    sm200d_lnx             18054   1
  11. Run
    You should get something like this
    gumboots:/usr/local/sm200d# ./sm200dstats
    Lock    QPSK    Viterbi Frame   FEC     AGC     Bit Error Rate  kbps    pps
    ----    ----    ------- -----   ---     ---     --------------  -----   -----
    Yes     Yes     Yes     Yes     5/6     199     0               0       0

    The first four are to do with framing and handshaking - if they're not Yes then you are not communicating with the satellite/skytower transmitter. This can be caused by bad weather (our old telsat card failed if there was a cloud in the sky :-) Other causes are incorrect frequencies in SkyData.ini.

  12. Comment from the front-line from Craig Goodenough
    The more stuff you run on your firewall the larger the ping time will be. Try pinging the other end of your connection, then killing all non-essential processes, then pinging it again.

    CF: My ping times dropped by 50 ms when I killed apache on gumboots. The only optional process I run that doesn't affect the ping time is the dnet client, cos it runs at the nicest nice value

    Don't run samba or sendmail or any other such software - I use portforwarding to receive email directly to an internal server (which happens to be an exchange server sadly)

  13. Contents of /proc/sys/net/ipv4/conf/sm200d/*
    gumboots:/etc/rc.d# cat /proc/sys/net/ipv4/conf/sm200d/*
    accept_redirects:         1
    accept_source_route:      1
    bootp_relay:              0
    forwarding:               1
    hidden:                   0
    log_martians:             0
    mc_forwarding:            0
    proxy_arp:                0
    rp_filter:                0
    secure_redirects:         1
    send_redirects:           1
    shared_media:             1
  14. Output of route after dialing up.
    gumboots:/usr/local/sm200d# route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface      *      UH    0      0        0 sl0
    max10.chc.ihug. *      UH    0      0        0 ppp0    *        U     0      0        0 sm200d     *        U     0      0        0 eth0
    loopback        *            U     0      0        0 lo
    default         *              U     0      0        0 ppp0
    default         *              U     1      0        0 sl0

NOTE: Your IP will change when you change card

The Ihug guy is Adam Boileau, or try me, Craig Falconer

NOTE2: To use your ihug account in a place without a satellite dish (maybe you're visiting somewhere) then you can set up a normal connection with pppconfig. The catch is to use "" as your username, and to use your regular password. I know - it looks weird, but it works. Thanks to JSR for that.

This file last modified Sunday January 23, 2005

If you find something here useful, feel free to donate bitcoin: Donations address: 14LHst9s1UEh8NMem87qaEd9tJWSCiNt1x

Valid HTML 4.01!