Git Product home page Git Product logo

dm500-satip's Introduction

dm500-satip

This is an effort to build a firmware image for the Dreambox DM500 set-top-box, that effectively turns it into a fully-operational SAT>IP server, with the only job of streaming the transport stream straight from the DVB tuner.

The SAT>IP server can be accessed directly through various client apps, or can be fed as input to Tvheadend. This last option allows you to:

  • Join multiple SAT>IP servers (and USB tuners) and use them as a pool: feed multiple clients, or watch TV on one while the other records another programme, for instance.

  • Apply DVBCSA descrambling connecting to an oscam server.

  • Schedule programmes for recording.

  • Filter, demux and reencode streams.

And many more.

Install

You can download pre-made images from the Releases page, or you can build them yourself, see BUILDING.md.

Building them yourself gives you full control over the generated image: you can add drivers for more devices, add software (such as an SSH server), change the default root password and more.

Some important things to consider:

  • The firmware is provided without warranty of any kind. It's been tested on multiple DM500S STBs though, and if it doesn't work you should be able to flash another image. It has no time bombs (see last section).

  • This image is currently for DM500S only. Flashing it on a DM500T or DM500C will get you a nice SAT>IP server with 0 tuners, because support for the T/C frontends is missing.

    I've been unable to find a DM500T or DM500C at a decent price. If you have one to spare, you can donate it (contact me) and I'll happily implement the support, it shouldn't take much (not guaranteeing anything though).

If you aren't flashing via DreamUp, make sure you flash to partition 0 (labeled "CramFS + SquashFS" or similar).

The static version

Starting at version 2.3, a 'static' image is distributed along with the regular one.

If the regular one won't boot on your box (probably because of corrupted flash memory) try to flash the static one. It's pretty much the same, but uses a read-only FS so it'll probably work correctly.

Because of the read-only FS, all changes you make through SSH (including changing the root password, firewall, static IP, init script) will go away on the next boot. If you need those changes permanently, build your own image.

Also, a different SSH host key is generated on every boot, so you'll need to revoke the key each time SSH gets mad.

Usage

When powered, DM500 will obtain an IP by DHCP, and the SAT>IP server will start. To verify that it's working, browse to http://<ip of DM500>/, you should see a table listing one tuner.

You then use it like any other SAT>IP server. For instance, to use it with a Tvheadend server, put it on the same network and you should see the DM500 appear in the inputs tab.

Important: The SAT>IP server does not support full TS streaming (aka pids=all)! For Tvheadend users, this means you should untick the "Full Mux Rx mode supported" checkbox if it's ticked, in the SAT>IP server entry.

Important: The SAT>IP server does not support more than 29 concurrent PIDs! For Tvheadend users, this means you should set "Maximum PIDs" to 29, in the SAT>IP server entry.

Important: The SAT>IP server does not support DVB-S2 (aka HD channels)! An option has been added in TVHeadend to restrict the delivery systems for a DVB card, set it.

If you found a bug or have a suggestion for the firmware image, feel free to open an issue on this repo.

The DM500 also has an SSH server running, you can login with root and password dreambox. Thus, make sure the DM500 is behind a firewall.

Design

This image is not based on the official firmware. Instead, it's an effort to build a firmware from scratch, basing on the efforts of the (currently abandoned) stbx25xx-linux project, which ported Linux 2.6.28 to the IBM STBx25xx (the SoC in DM500).

I forked the stbx25xx-linux project and added support for the DM500 and a few of its hardware (reverse engineered some of the closed-source drivers). Currently, the following hardware from the DM500 is usable and has been tested:

  • DVB satellite frontend (STV0299), PLL tuner
  • DVB demuxer
  • GPIO (two LEDs, LNB voltage, etc.)
  • I2C bus
  • RS-232 UART
  • NE2000-based network
  • NOR flash memory

Hardware that has support but has not been tested, is not enabled in config_kernel or isn't finished:

  • DVB video decoder, audio decoder
  • Audio output
  • Video output

Unsupported hardware, or hardware which hasn't been investigated:

  • DVB terrestrial and cable frontends
  • Smartcard reader
  • IR receiver

The files are put into a JFFS2 filesystem, which ends up in the partition next to the CramFS (where a SquashFS would go, in traditional firmwares).

The audio and video decoders need firmware blobs to be supplied, so make sure to enable FW_LOADER and set COPY_FIRMWARE to 1 in build-fs.sh. Support for the video output and audio output are also in the works.

Buildroot is what builds the toolchain, software, kernel, filesystem, and calls build-img.sh to produce the final firmware image.

minisatip is the SAT>IP server implementation used by this image. It's version 0.4 with the modifications at the dm500-satip-2.3 branch in my fork.

dm500-satip's People

Contributors

mildsunrise avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dm500-satip's Issues

Are DiSEqC 1.0 commands supported?

Doing some quick testing using a Technisat Multitenne Dish which integrates a DiSEqC 1.0 switch and 4 LNB satellite positions will only give Astra 1 19,2:

AA Astra1 19,2 #dvb-s mux fr: 11953500, sr: 27500000, fe: "3/4", p: "Horizontal", m: "QPSK", ds: "SYS_DVBS"
AB Hotbird 13,0
BA Astra 3 23,5
BB Astra 2 28,2

Playing around with the minisatip arguments/switches -d 0:1-0, -d 0:1-1, -d 0:0-1 for commited/uncommited diseqc won't change anything and Tvheadend is only able to tune Astra 1. Is any diseqc feature implemented in your dm500-satip?

The outcome of scanning for instance BB Astra2 28,2 is that it will find services from Astra1 19,2 but only the ones that resamble the transponder frequencies/parameters that match between Astra2 28,2 and Astra1 19,2.

With other minisatip based 'satip-axe' tuner Telestar Digibit R1 device, I have used Tvheadend successfull tuning other satelites using diseqc but is offcourse complete other hardware: https://github.com/perexg/satip-axe

linking issue

Hello
I try to get my dreambox 500s sat ip to work with tvheadend 4.0.9 on opnewrt
the sat ip doesnt show up in tv adapters
Thank you

signal issues

i have flashed the latest image to a dm500s, i can see the tuner in tvheadend server, have added the muxes, even tried adding muxes individually, but no matter what i scan only 3 transponders

i am aimed at 91W, i see no option on setting the lnb type, my setup is a NA standard LNB connected directly to dm500s

i do get some services, about 100 in total i can stream in vlc thses ones, so its partially working

thanks in advance

How to install ?

i read all of file in this github but i can't find the way to install this image ?

sorry for stupid question.

Error: No tuner is available. Please file an issue on dm500-satip.

Dear Xavi.

I had an dm500 which has been working without any problem for years. Now after an current problem (in the house) it is rebooted, and now it is not working :(. I tried with a new image an a backup as well, but no success :(.

Here is the dmesg:

--- STBx25xx Digital Video Broadcasting drivers ---
GPIO-253 autorequested
Using interrupts: 17 18 19 23
--- STBx25xx MPEG-2 Transport Demultiplexer driver ---
dvb-stbx25xx: resetting demux... done (took 1 ms)
dvb-stbx25xx: Mapped 2097152 bytes of demux memory at 0xc3900000
DVB: registering new adapter (STBx25xx Digital TV device)
GPIO-238 autorequested
ibm-iic0: xfer error, EXTSTS = 0x43
ibm-iic0: xfer error, EXTSTS = 0x73
ibm-iic0: bus is stuck, resetting
ibm-iic0: soft reset
ibm-iic0: init
stbx25xx-dvb dvb.2: could not attach frontend
dvb-stbx25xx: Front-end initialization failed: error -19
dvb-stbx25xx: IBM STBx25xx digital TV hardware driver loaded successfully

What happened? It is died?

Thanks

Dreambox 500 C - Tuner Problems ;D

Hello, ive got a problem.
I want to use your image with the dm500 C but it sayd "
Error: No tuner is available. Please file an issue on dm500-satip."
Can you help me in anyway?
Best regards
Jan 1 00:00:02 dreambox syslog.info syslogd started: BusyBox v1.26.2
Jan 1 00:00:02 dreambox kern.notice kernel: klogd started: BusyBox v1.26.2 (2017-05-30 16:01:48 CEST)
Jan 1 00:00:02 dreambox kern.info kernel: Using Dreambox DM500 machine description
Jan 1 00:00:02 dreambox kern.notice kernel: Linux version 2.6.28-tm0-s4 (xavier@xavier-pad) (gcc version 4.9.4 (Buildroot 2017.05-rc3-g852faa4) ) #1 Tue May 30 16:03:45 CEST 2017
Jan 1 00:00:02 dreambox kern.debug kernel: Found legacy serial port 0 for /plb/opb/serial@40000
Jan 1 00:00:02 dreambox kern.debug kernel: mem=40040000, taddr=40040000, irq=0, clk=21000000, speed=0
Jan 1 00:00:02 dreambox kern.debug kernel: Found legacy serial port 1 for /plb/opb/serial@00000
Jan 1 00:00:02 dreambox kern.debug kernel: mem=40000000, taddr=40000000, irq=0, clk=21000000, speed=0
Jan 1 00:00:02 dreambox kern.debug kernel: Found legacy serial port 2 for /plb/opb/serial@10000
Jan 1 00:00:02 dreambox kern.debug kernel: mem=40010000, taddr=40010000, irq=0, clk=21000000, speed=115200
Jan 1 00:00:02 dreambox kern.info kernel: console [udbg0] enabled
Jan 1 00:00:02 dreambox kern.debug kernel: Top of RAM: 0x2000000, Total RAM: 0x2000000
Jan 1 00:00:02 dreambox kern.debug kernel: Memory hole size: 0MB
Jan 1 00:00:02 dreambox kern.warn kernel: Zone PFN ranges:
Jan 1 00:00:02 dreambox kern.warn kernel: DMA 0x00000000 -> 0x00002000
Jan 1 00:00:02 dreambox kern.warn kernel: Normal 0x00002000 -> 0x00002000
Jan 1 00:00:02 dreambox kern.warn kernel: Movable zone start PFN for each node
Jan 1 00:00:02 dreambox kern.warn kernel: early_node_map[1] active PFN ranges
Jan 1 00:00:02 dreambox kern.warn kernel: 0: 0x00000000 -> 0x00002000
Jan 1 00:00:02 dreambox kern.debug kernel: On node 0 totalpages: 8192
Jan 1 00:00:02 dreambox kern.debug kernel: free_area_init_node: node 0, pgdat c0201224, node_mem_map c023f000
Jan 1 00:00:02 dreambox kern.debug kernel: DMA zone: 64 pages used for memmap
Jan 1 00:00:02 dreambox kern.debug kernel: DMA zone: 0 pages reserved
Jan 1 00:00:02 dreambox kern.debug kernel: DMA zone: 8128 pages, LIFO batch:0
Jan 1 00:00:02 dreambox kern.debug kernel: Normal zone: 0 pages used for memmap
Jan 1 00:00:02 dreambox kern.debug kernel: Movable zone: 0 pages used for memmap
Jan 1 00:00:02 dreambox kern.warn kernel: Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128
Jan 1 00:00:02 dreambox kern.notice kernel: Kernel command line: root=/dev/mtdblock5 rootfstype=jffs2
Jan 1 00:00:02 dreambox kern.warn kernel: UIC0 (32 IRQ sources) at DCR 0x40
Jan 1 00:00:02 dreambox kern.warn kernel: PID hash table entries: 128 (order: 7, 512 bytes)
Jan 1 00:00:02 dreambox kern.debug kernel: time_init: decrementer frequency = 27.000000 MHz
Jan 1 00:00:02 dreambox kern.debug kernel: time_init: processor frequency = 252.000000 MHz
Jan 1 00:00:02 dreambox kern.info kernel: clocksource: timebase mult[9425ed1] shift[22] registered
Jan 1 00:00:02 dreambox kern.debug kernel: clockevent: decrementer mult[6e9] shift[16] cpu[0]
Jan 1 00:00:02 dreambox kern.info kernel: Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Jan 1 00:00:02 dreambox kern.info kernel: Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Jan 1 00:00:02 dreambox kern.info kernel: Memory: 30160k/32768k available (1976k kernel code, 2608k reserved, 80k data, 214k bss, 100k init)
Jan 1 00:00:02 dreambox kern.info kernel: SLUB: Genslabs=10, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Jan 1 00:00:02 dreambox kern.info kernel: Calibrating delay loop... 53.88 BogoMIPS (lpj=107776)
Jan 1 00:00:02 dreambox kern.warn kernel: Mount-cache hash table entries: 512
Jan 1 00:00:02 dreambox kern.info kernel: net_namespace: 288 bytes
Jan 1 00:00:02 dreambox kern.info kernel: NET: Registered protocol family 16
Jan 1 00:00:02 dreambox kern.info kernel: NET: Registered protocol family 2
Jan 1 00:00:02 dreambox kern.info kernel: IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
Jan 1 00:00:02 dreambox kern.info kernel: TCP established hash table entries: 1024 (order: 1, 8192 bytes)
Jan 1 00:00:02 dreambox kern.info kernel: TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
Jan 1 00:00:02 dreambox kern.info kernel: TCP: Hash tables configured (established 1024 bind 1024)
Jan 1 00:00:02 dreambox kern.info kernel: TCP reno registered
Jan 1 00:00:02 dreambox kern.info kernel: NET: Registered protocol family 1
Jan 1 00:00:02 dreambox kern.warn kernel: GPIO-236 autorequested
Jan 1 00:00:02 dreambox kern.info kernel: JFFS2 version 2.2. (NAND) (SUMMARY) ยฉ 2001-2006 Red Hat, Inc.
Jan 1 00:00:02 dreambox kern.info kernel: msgmni has been set to 58
Jan 1 00:00:02 dreambox kern.info kernel: io scheduler noop registered (default)
Jan 1 00:00:02 dreambox kern.info kernel: Serial: 8250/16550 driver3 ports, IRQ sharing disabled
Jan 1 00:00:02 dreambox kern.info kernel: serial8250.0: ttyS0 at MMIO 0x40040000 (irq = 20) is a 16550A
Jan 1 00:00:02 dreambox kern.info kernel: console handover: boot [udbg0] -> real [ttyS0]
Jan 1 00:00:02 dreambox kern.info kernel: serial8250.0: ttyS1 at MMIO 0x40000000 (irq = 21) is a 16550A
Jan 1 00:00:02 dreambox kern.info kernel: serial8250.0: ttyS2 at MMIO 0x40010000 (irq = 22) is a 16550A
Jan 1 00:00:02 dreambox kern.info kernel: brd: module loaded
Jan 1 00:00:02 dreambox kern.info kernel: loop: module loaded
Jan 1 00:00:02 dreambox kern.info kernel: nbd: registered device at major 43
Jan 1 00:00:02 dreambox kern.info kernel: ne.c:v1.10 9/23/94 Donald Becker ([email protected])
Jan 1 00:00:02 dreambox kern.info kernel: Last modified Nov 1, 2000 by Paul Gortmaker
Jan 1 00:00:02 dreambox kern.info kernel: NE*000 ethercard probe at 0xc3010600:00:09:34:22:52:11
Jan 1 00:00:02 dreambox kern.info kernel: eth0: NE2000 found at 0xc3010600, using IRQ 25.
Jan 1 00:00:02 dreambox kern.info kernel: 7f800000.flash: Found 1 x16 devices at 0x0 in 16-bit bank
Jan 1 00:00:02 dreambox kern.warn kernel: Intel/Sharp Extended Query Table at 0x0031
Jan 1 00:00:02 dreambox kern.info kernel: Using buffer write method
Jan 1 00:00:02 dreambox kern.notice kernel: cfi_cmdset_0001: Erase suspend on write enabled
Jan 1 00:00:02 dreambox kern.debug kernel: erase region 0: offset=0x0,size=0x20000,blocks=64
Jan 1 00:00:02 dreambox kern.notice kernel: cmdlinepart partition parsing not available
Jan 1 00:00:02 dreambox kern.notice kernel: RedBoot partition parsing not available
Jan 1 00:00:02 dreambox kern.notice kernel: Creating 7 MTD partitions on "7f800000.flash":
Jan 1 00:00:02 dreambox kern.notice kernel: 0x00000000-0x00600000 : "DreamBOX CramFS + SquashFS"
Jan 1 00:00:02 dreambox kern.notice kernel: 0x00600000-0x007c0000 : "JFFS2"
Jan 1 00:00:02 dreambox kern.notice kernel: 0x007c0000-0x00800000 : "OpenBIOS"
Jan 1 00:00:02 dreambox kern.notice kernel: 0x00000000-0x007c0000 : "DreamBOX CramFS + SquashFS + JFFS2"
Jan 1 00:00:02 dreambox kern.notice kernel: 0x00000000-0x00800000 : "DreamBOX (with bootloader)"
Jan 1 00:00:02 dreambox kern.notice kernel: 0x00120000-0x00600000 : "SquashFS"
Jan 1 00:00:02 dreambox kern.notice kernel: 0x00000000-0x00120000 : "CramFS"
Jan 1 00:00:02 dreambox kern.info kernel: i2c /dev entries driver
Jan 1 00:00:02 dreambox kern.debug kernel: ibm-iic0: init
Jan 1 00:00:02 dreambox kern.info kernel: stbx25xx-i2c 40030000.i2c: using standard (100 kHz) mode
Jan 1 00:00:02 dreambox kern.info kernel: Registered led device: green
Jan 1 00:00:02 dreambox kern.info kernel: Registered led device: red
Jan 1 00:00:02 dreambox kern.info kernel: TCP cubic registered
Jan 1 00:00:02 dreambox kern.info kernel: NET: Registered protocol family 17
Jan 1 00:00:02 dreambox kern.warn kernel: VFS: Mounted root (jffs2 filesystem) readonly.
Jan 1 00:00:02 dreambox kern.warn kernel: Freeing unused kernel memory: 100k init
Jan 1 00:00:02 dreambox kern.err kernel: devpts: called with bogus options
Jan 1 00:00:03 dreambox authpriv.info dropbear[882]: Running in background
Jan 1 00:00:04 dreambox kern.info kernel: --- STBx25xx Digital Video Broadcasting drivers ---
Jan 1 00:00:04 dreambox kern.warn kernel: GPIO-253 autorequested
Jan 1 00:00:04 dreambox kern.info kernel: Using interrupts: 17 18 19 23
Jan 1 00:00:04 dreambox kern.info kernel: --- STBx25xx MPEG-2 Transport Demultiplexer driver ---
Jan 1 00:00:04 dreambox kern.info kernel: dvb-stbx25xx: resetting demux... done (took 1 ms)
Jan 1 00:00:04 dreambox kern.info kernel: dvb-stbx25xx: Mapped 2097152 bytes of demux memory at 0xc3900000
Jan 1 00:00:04 dreambox kern.info kernel: DVB: registering new adapter (STBx25xx Digital TV device)
Jan 1 00:00:04 dreambox kern.warn kernel: GPIO-238 autorequested
Jan 1 00:00:04 dreambox kern.debug kernel: ibm-iic0: xfer error, EXTSTS = 0x43
Jan 1 00:00:04 dreambox kern.debug kernel: ibm-iic0: xfer error, EXTSTS = 0x73
Jan 1 00:00:04 dreambox kern.debug kernel: ibm-iic0: bus is stuck, resetting
Jan 1 00:00:04 dreambox kern.debug kernel: ibm-iic0: soft reset
Jan 1 00:00:04 dreambox kern.debug kernel: ibm-iic0: init
Jan 1 00:00:04 dreambox kern.err kernel: stbx25xx-dvb dvb.2: could not attach frontend
Jan 1 00:00:04 dreambox kern.err kernel: dvb-stbx25xx: Front-end initialization failed: error -19
Jan 1 00:00:04 dreambox kern.info kernel: dvb-stbx25xx: IBM STBx25xx digital TV hardware driver loaded successfully
Jan 1 00:00:04 dreambox daemon.info : starting pid 897, tty '/dev/console': '/sbin/getty -L console 0 vt100 '

not all TP have signal

is there a way to change the lnb type for tvheadend? as i mentioned before, i switched to a dpp lnb and dpp switch to feed my server, weird thing is i only get signal on some transponders, pointed at 91W

how to get it to scan all?

DM500 Satip not found by Tvheadend

I have a dm500 that has been working without any problem with this satip image, after a few months with the device turned off, now I have turned it on but it cannot be found by tvheadend or another satip client, although I have tried it with vlc, it works perfectly, but it does not appear now on tvheadend, can it be that the dm500 does not advertise the service over the network?
Sorry my english & Thanks

How to install on DM500+ ?

Dm500+ uses NFI image file. I tried to install the image provided here but did not work. Can you please provide NFI image for DM500+?

Revert back to normal stb image

Dear jmendeth..
im a noob.. need help to revert back to normal stb image (gemini, openpli etc)
dunno how do it as my dm500s refuse a telnet and FTP session.
Fortunately it can be SSH and SCP

How do i use command in SSH to reflash a gemini image for instance.. thanx for your help..

Dm500 not working.

I have following setup:

1- Dreambox 500
2- Flashed image dm500-satip-2.0.img
3- Got IP + Signal
4- untick the "Full Mux Rx mode supported" checkbox if it's ticked, in the SAT>IP server entry. (DONE)
5- set "Maximum PIDs" to 29, in the SAT>IP server entry (DONE)
6- No channel after scanning
Signal & SNR is ok.

Can you please help?

Regards
Armaghan

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.