Pluto.php. Modified and updated for new DATV channels and other features (IS0GRB)

  • Hi Robert yes possible.

    In fact i do not have the USB / Ethernet adapter so the insertion of that default gateway is important and is associated with the default USB network, while with the adapter the ethernet network configuration present in the config.txt file is different, so the first line of my file commands file in this case must be removed.

    I hope now is ok


  • Hello Roberto,

    Still not possible to stream.

    I have access to your Pluto.php, can use it, but still stream failure....

    I try still to stream to the Ethernet ip in which pluto.php is running (

    73s de Robert

  • Hi Robert the problem should be solved.

    Reboot the Pluto and reload the package with the usual txt file commands and it should work fine.

    In your configuration you must remove the first line of the commands list, using the USB-Ethenet adapter you don't need to configure other gateways.

    Thanks for your patience


  • Thanks in contributing to the project with your patches. Right now, the only easy method is by using an USB dongle. The next firmware will be based on official 0.32 firmware which have 1M of permanent memory.

    This partition is shared by network (NFS and maybe Samba for windows users) and if you put a "", it extracts it and patch the everyone could easily modify the datv firmware for testing.

    73 EVariste F5OEO

  • Hello Evariste, i confirm that the firmware 0.32 is much more efficient and integrates a series of new commands that solve many problems. Also having the possibility to write on the 1M mtd2 jffs2 partition is very convenient.

    Thank you for the great job and happy to participate in the project.


    Roberto IS0GRB

  • An alpha version is available at

    As I rebuild completely the toolchain, some regression could appear. This is only for development testing and to help contributors to patch.

    It is based on v0.32 original AD firmware.

    To apply a patch, make a zip : all files will be extracted at / of pluto. Patch is done at every reboot. (see zip attached for example)

    The easiest method to apply patch is by using web interface.

    Thanks for feedbacks.

    73 Evariste F5OEO

  • Hello Evariste, i've seen the changes and thank you.

    I would like to ask you if it is possible to insert the static route already in the firmware to make sure that the Pluto, through the internet sharing configured on the computer, can be connected to the internet without the aid of a USB-Ethernet converter.

    The static route, being on a different ip class, does not collide with that possibly configured on the Ethernet part as it is considered a secondary gateway not being on the same / 24 network.

    See my procedure: ( How to connect Adalm Pluto to the Internet without using the USB / Ethernet adapter )


    Roberto IS0GRB

  • OK Evariste i'm testing the insertion of the static route in the S40network file, via, inserted via GUI (pluto.php) and / or with direct modification inside the Pluto to see if work correctly with a boot and after a reboot, the case $1 is different


    Roberto IS0GRB

  • Hello Evariste, i'm looking for the best and least invasive method to make him load the static route.

    Even putting it in the S40 script .. doesn't load it.

    The best syntax would be:
    route add default gw usb0

    so that the interface is specified without colliding with others.
    I'll update you as soon as i've finished the tests.

    My Pluto is asking pity for all these reboots :)
    Have you done any tests with the static route?


    Roberto IS0GRB

  • Hello Evariste, it seems that the Pluto on boot does not start the rcS .. scripts in the /etc/init.d directory.

    Yet in /etc/inittab it is specified that it must execute /etc/init.d/rcS, in fact by manually executing rcS script it starts all the rcS scripts .. and also activates the static route.

    The problem is this.

    Runnng manually the rcS script:

    # ./rcS

    Starting syslogd: FAIL

    Starting klogd: FAIL

    Starting mdev: OK

    Starting watchdog: OK

    Starting initializing random number generator: OK

    Starting miscellaneous setup: md5sum: password.md5: No such file or directory


    Starting UDC Gadgets: sh: write error: Device or resource busy

    sh: write error: Device or resource busy

    ln: /sys/kernel/config/usb_gadget/composite_gadget/configs/c.1/rndis.0: File exi sts

    ln: /sys/kernel/config/usb_gadget/composite_gadget/configs/c.1/mass_storage.0: F ile exists

    ln: /sys/kernel/config/usb_gadget/composite_gadget/configs/c.1/acm.usb0: File ex ists

    ln: /sys/kernel/config/usb_gadget/composite_gadget/configs/c.1/ffs.iio_ffs/ffs.i io_ffs: Operation not permitted

    sh: write error: Device or resource busy


    Starting system message bus: dbus-daemon[2911]: Failed to start message bus: The pid file "/var/run/" exists, if the message bus is not running, r emove this file


    Starting rpcbind: rpcbind: another rpcbind is already running. Aborting


    Starting network: OK

    Starting dhcpd Daemon & httpd Server: httpd: bind: Address already in use


    Starting MSD Daemon: losetup: /opt/vfat.img


    Starting ntpd: FAIL

    Starting dropbear sshd: FAIL

    Starting gpsd: OK

    Starting mosquitto: FAIL

    Starting NFS statd: Statd service already running!


    Starting NFS services: OK

    Starting NFS daemon: OK

    Starting NFS mountd: OK

    Archive: /mnt/jffs2/

    inflating: etc/init.d/S40network

    mounting NFS volume : on /remote

    mount: can't find /remote in /etc/fstab

    Checking for maxcpus and ad9364 mods...

    ## Error: "maxcpus" not defined

    export EDITOR='/bin/vi'

    export HOME='/root'

    export LOGNAME='root'

    export OLDPWD='/mnt/jffs2'

    export PAGER='/bin/more'

    export PATH='/bin:/sbin:/usr/bin:/usr/sbin'

    export PS1='# '

    export PWD='/etc/init.d'

    export SHELL='/bin/sh'

    export SHLVL='3'

    export SSH_CLIENT=' 53846 22'

    export SSH_CONNECTION=' 53846 22'

    export SSH_TTY='/dev/pts/0'

    export TERM='xterm'

    export USER='root'

    sh: 1: unknown operand

    Mods already in place, continuing.

    Starting input-event-daemon: done

    # route

    Kernel IP routing table

    Destination Gateway Genmask Flags Metric Ref Use Iface

    default UG 0 0 0 usb0 * U 0 0 0 usb0


    I'm trying to figure out what happens on boot

  • Thanks for these details...I just break my toolchain , so remake all. My firmware is now wierd : it's booting and after few seconds start blinking. It seeems that you have a hardware serial to see kernel message. If so you could maybe help me debugging it ?

    For your issue, that is my fault : patch is done on S89..all scripts before (S21 for example) is not updatable.

    Further more jffs2 is done on S23udc so nothing could be read/write before that.

  • Hello Evariste, i'm working on some implementations on the pluto.php page that have been requested to make DATV operation easier by calling another php page that displays the WB spectrum on the iframe, and other useful things during operation and the possibility of clipping the spectrum to easily insert a camera with the Chromacam program.
    I will update you on this.
    I would like to ask if in the meantime you have done something about yesterday's errors on the firmware.
    If you need to debug let me know or write me an email so that you can contact us by other faster ways


    Roberto IS0GRB

  • Hello Evariste, great job i did some tests and I saw that it works well.

    I saw the change in /etc/init.d/S40network:

    case "$ 1" in



    printf "Starting network:"

    / sbin / route add default gw usb0

    / bin / hostname -F / etc / hostname

    / sbin / ifup -a 2> & 1 | logger

    [$? = 0] && echo "OK" echo "FAIL"



    printf "Stopping network:"

    / sbin / ifdown -a

    [$? = 0] && echo "OK" echo "FAIL"


    restart | reload)

    "$ 0" stop

    "$ 0" start



    echo "Usage: $ 0 {start | stop | restart}"

    exit 1

    I would like to ask if we can implement h265 encoding with ffmpeg.
    I saw that it is supported by a special library and it would be convenient to use it without the aid of an external box, what do you think?
    See this site:

    Furthermore, an interesting thing that can be done is to insert in the pluto.php form the selection of the TCP and/or UDP port on which ffmpeg must listen.

    At the moment, as you know, it leaves 3 ports listening rtmp 7272, 7373 and udp 8282, even if they are not used because maybe you are using UDP mode (Recording mode on OBS) or for direct and vice versa, in this way, however, the ffmpeg daemons occupy memory resources unnecessarily also decreasing the value of free CPU, in fact, from the tests made, even using the udp 8282 port the cpu drops to 40/50% and it is not possible to use the Pluto for example in reception at the same time because is intermittent due to the few resources of the cpu, which would help to spend less and use the same hardware also to receive, perhaps even with the excellent DVBS-GUI or with sdrconsole

    For the other updates we feel and we can integrate other functions in the web part as previously mentioned.

    Roberto IS0GRB