Jump to content

maxlinux2000

Members
  • Posts

    50
  • Joined

  • Last visited

Posts posted by maxlinux2000

  1. root@w2:~# apt update
    Hit:1 http://deb.debian.org/debian buster InRelease
    Hit:2 http://security.debian.org buster/updates InRelease
    Hit:3 http://deb.debian.org/debian buster-updates InRelease
    Hit:4 http://deb.debian.org/debian buster-backports InRelease
    Hit:5 https://apt.armbian.com buster InRelease
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    All packages are up to date.
    root@w2:~# apt install wireguard
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:

    The following packages have unmet dependencies:
     wireguard : Depends: wireguard-tools (>= 1.0.20200513-1~bpo10+1) but 1.0.20200319-1~bpo10+1 is to be installed
    E: Unable to correct problems, you have held broken packages.
    root@w2:~# uname -a
    Linux w2 5.4.43-sunxi64 #20.05.2 SMP Tue Jun 2 17:20:17 CEST 2020 aarch64 GNU/Linux

     

  2. without network-manager eth0 can't up and works....

    I'm using the wifi only in order to setup OMV, bul then the connection will be with ethernet.

    For the moment i'm installed ONV and reinstalled half system in order to have back the networking capacity of debian.... but this is a workaround.

    I'm thinking to remove armbian-config package, for the moment, waiting the fix. I have 6 server running far of my house.

  3. Strange problem with armbian-config/softy/OMV
    But something similar has happened to me also with a simple update from armbian-config

     

    Steps to reproduce:
    1. clean install of Armbian_20.02.1_Orangepi3_buster_current_5.4.20 using uart-ttl usb adapter as interface
    2. I configure the network by wifi
    3. apt update && apt upgrade -y
    4. after the terminal update everything is still perfect and I can connect to ssh with WIFI and launch armbian-config
    5. armbian-config/software/softy/OMV -> Install

     

    Results:
    After a coffee or two, I go back and find that the ssh connection has been closed and I can't connect.

     

    Notes: Entering with minicom by uart-ttl and I discover that wlan0 has disappeared, but also the command nmtui and launching it, the system tells me that network-manager must be installed ...

    I have re-tested this bug 3 times, even marking the network-manager package as "manual" with

    sudo apt-mark manual network-manager


    But nothing has worked.
    Something similar has happened to me on another server (OrangePi PC2) ... when updating with armbian-config the network-manager package has also disappeared there.
    So I think the problem is generated by armbian-config and not by the softy program.

    I suggest you to test the network manager's .deb and its dependencies before downloading and then recover the installation with "dpkg -i * .deb"

     mkdir network-manager

     

    mkdir network-manager
    
    cd network-manager
    
    sudo apt-get download network-manager 
    
    for i in $(apt-cache depends network-manager | grep -E 'Depends|Recommends|Suggests' | cut -d ':' -f 2,3 | sed -e s/'<'/''/ -e s/'>'/''/); do sudo apt-get download $i 2>>errors.txt; done

     

  4.  

    Hello everyone,
    I give you a 2017 discussion about a modified version of ffmpeg called Cedrus for H3 processors at 32bit.

     

    Since the h5 is 64 bit and the code they speak is quite old, therefore I cannot use it, I wonder if there is any version of ffmpeg that takes advantage of the HW acceleration of the H5 processors.

     

    Thank you
    Max

  5. below the traduction in spanish language of previous post.

     

    Solución al problema de tener soporte SSL en Icecast bajo Armbian.
    al parecer en Ubuntu el paquete icecast2, no está compilado con soporte ssl, así que tenemos que volver a compilarlo nosotros mismo.
    Comparto aquí mis notas, por la posteridad y para mi futura referencia en el caso lo necesite.


    Voy a asumir que ya tines instalado ispConfig en tu armbian (OrangePi Pc2 en mi caso), de que tienes IP fija y pública (123.123.123.100) de que tienes un subdominio asignado desde tu registar con un record A, por ejemplo así:

    radio.example.org -> 123.123.123.100

    1) Crea una web en ispConfig con SSL y Let's Encrypt al subdominio radio.example.org con IP 123.123.123.100.
    No hace falsta nada mas. Esta pagina web en realidad no se va a usar si fuera para los cerfiticados SSL.

    2) Ahora vamos a desistalar si aúno no lo has hecho eventuales isntalaciones de icecast2

    # apt remove --purge icecast2

    3) vamos preparar el entorno de compilación para icecast:

    # apt install git gcc build-essential libcurl4-openssl-dev libxslt1-dev libxml2-dev libogg-dev libvorbis-dev libflac-dev libtheora-dev libssl-dev libspeex-dev

    4) ahora bajamo el último código fuente disponible de icecast

    # git clone --recursive https://git.xiph.org/icecast-server.git  (tarda un poco a mostrar algo... espera)
    # cd icecast-server
    # ./autogen.sh
    # ./configure --with-curl --with-openssl
    # make -j4  (si tu placa tiene 8 núcleos, pon -j8 ... y si solo quieres usar 2 pon -j2)
    # make install

    5) ahora hay que crear un usuario para icecast

    # adduser --disabled-password --gecos "" icecast

    6) crear logs

    # mkdir -p /var/log/icecast/  
    # touch /var/log/icecast/error.log
    # touch /var/log/icecast/access.log
    # chown -R icecast.icecast /var/log/icecast
    # chown -R icecast.icecast /etc/icecast

    7) ahora el certificado SSL ya creado en ispconfig para la pagina web radio.example.org

    # mkdir /etc/icecast/ssl/
    # touch /usr/local/bin/icecastLetEncrypt.sh
    # chmod 755 /usr/local/bin/icecastLetEncrypt.sh
    # mcedit /usr/local/bin/icecastLetEncrypt.sh

    ...y escribe algo así:
    ---------------------------------------------------------------
    #!/bin/bash
    cat /etc/letsencrypt/live/radio.example.org/cert.pem \
    /etc/letsencrypt/live/radio.example.org/privkey.pem \
    > /usr/share/icecast/icecast.pem
    chown icecast.icecast /etc/icecast/ssl/icecast.pem
    chmod go-r /etc/icecast/ssl/icecast.pem
    ---------------------------------------------------------------

    8) ahora la configuración de icecast:

    ---------------------------------------------------------------

    <icecast>
        <!-- location and admin are two arbitrary strings that are e.g. visible
             on the server info page of the icecast web interface
             (server_version.xsl). -->
        <location>ESpaña</location>
        <admin>maxlinux2000@gmail.com</admin>

        <!-- IMPORTANT!
             Especially for inexperienced users:
             Start out by ONLY changing all passwords and restarting Icecast.
             For detailed setup instructions please refer to the documentation.
             It's also available here: http://icecast.org/docs/
        -->

        <limits>
            <clients>100</clients>
            <sources>2</sources>
            <queue-size>524288</queue-size>
            <client-timeout>30</client-timeout>
            <header-timeout>15</header-timeout>
            <source-timeout>10</source-timeout>
            <!-- If enabled, this will provide a burst of data when a client 
                 first connects, thereby significantly reducing the startup 
                 time for listeners that do substantial buffering. However,
                 it also significantly increases latency between the source
                 client and listening client.  For low-latency setups, you
                 might want to disable this. -->
            <burst-on-connect>1</burst-on-connect>
            <!-- same as burst-on-connect, but this allows for being more
                 specific on how much to burst. Most people won't need to
                 change from the default 64k. Applies to all mountpoints  -->
            <burst-size>65535</burst-size>
        </limits>

        <authentication>
            <!-- Sources log in with username 'source' -->
            <source-password>MySecretPasswd</source-password>
            <!-- Relays log in with username 'relay' -->
            <relay-password>MySecretPasswd</relay-password>

            <!-- Admin logs in with the username given below -->
            <admin-user>admin</admin-user>
            <admin-password>MySecretPasswd</admin-password>
        </authentication>

        <!-- set the mountpoint for a shoutcast source to use, the default if not
             specified is     /stream but you can change it here if an alternative is
             wanted or an extension is required
        <shoutcast-mount>/live.nsv</shoutcast-mount>
        -->

        <!-- Uncomment this if you want directory listings -->
        <!--
        <directory>
            <yp-url-timeout>15</yp-url-timeout>
            <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
        </directory>
        -->

        <!-- This is the hostname other people will use to connect to your server.
             It affects mainly the urls generated by Icecast for playlists and yp
             listings. You MUST configure it properly for YP listings to work!
        -->
        <hostname>radio.example.org</hostname>

        <!-- You may have multiple <listener> elements -->
        <listen-socket>
            <port>8000</port>
            <!-- <bind-address>127.0.0.1</bind-address> -->
            <!-- <shoutcast-mount>/stream</shoutcast-mount> -->
        </listen-socket>
        <!--
        <listen-socket>
            <port>8080</port>
        </listen-socket>
        -->

        <listen-socket>
            <port>8443</port>
            <ssl>1</ssl>
        </listen-socket>


        <!-- Global header settings 
             Headers defined here will be returned for every HTTP request to Icecast.

             The ACAO header makes Icecast public content/API by default
             This will make streams easier embeddable (some HTML5 functionality needs it).
             Also it allows direct access to e.g. /status-json.xsl from other sites.
             If you don't want this, comment out the following line or read up on CORS. 
        -->
        <http-headers>
            <header name="Access-Control-Allow-Origin" value="*" />
        </http-headers>


        <!-- Relaying
             You don't need this if you only have one server.
             Please refer to the config for a detailed explanation.
        -->
        <!--<master-server>127.0.0.1</master-server>-->
        <!--<master-server-port>8001</master-server-port>-->
        <!--<master-update-interval>120</master-update-interval>-->
        <!--<master-password>hackme</master-password>-->

        <!-- setting this makes all relays on-demand unless overridden, this is
             useful for master relays which do not have <relay> definitions here.
             The default is 0 -->
        <!--<relays-on-demand>1</relays-on-demand>-->

        <!--
        <relay>
            <server>127.0.0.1</server>
            <port>8080</port>
            <mount>/example.ogg</mount>
            <local-mount>/different.ogg</local-mount>
            <on-demand>0</on-demand>

            <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
        </relay>
        -->


        <!-- Mountpoints
             Only define <mount> sections if you want to use advanced options,
             like alternative usernames or passwords
        -->

        <!-- Default settings for all mounts that don't have a specific <mount type="normal">.
        -->
        <!--
        <mount type="default">
            <public>0</public>
            <intro>/server-wide-intro.ogg</intro>
            <max-listener-duration>3600</max-listener-duration>
            <authentication type="url">
                    <option name="mount_add" value="http://auth.example.org/stream_start.php"/>
            </authentication>
            <http-headers>
                    <header name="foo" value="bar" />
            </http-headers>
        </mount>
        -->

        <!-- Normal mounts -->

        <mount type="normal">
            <mount-name>/stream2.mp3</mount-name>

            <username>Tester</username>
            <password>MySecretPasswd</password>

            <max-listeners>1</max-listeners>
            <!--dump-file>/tmp/dump-example1.ogg</dump-file-->
            <burst-size>65536</burst-size>
            <!--fallback-mount>/example2.ogg</fallback-mount>
            <fallback-override>1</fallback-override>
            <fallback-when-full>1</fallback-when-full>
            <intro>/example_intro.ogg</intro-->
            <hidden>1</hidden>
            <public>1</public>
            <!--authentication type="htpasswd">
                    <option name="filename" value="myauth"/>
                    <option name="allow_duplicate_users" value="0"/>
            </authentication-->
            <http-headers>
                    <header name="Access-Control-Allow-Origin" value="http://webplayer.example.org" />
            </http-headers>
            <!--on-connect>/home/icecast/bin/stream-start</on-connect>
            <on-disconnect>/home/icecast/bin/stream-stop</on-disconnect-->
        </mount>


        <!--
        <mount type="normal">
            <mount-name>/example-complex.ogg</mount-name>

            <username>othersource</username>
            <password>hackmemore</password>

            <max-listeners>1</max-listeners>
            <dump-file>/tmp/dump-example1.ogg</dump-file>
            <burst-size>65536</burst-size>
            <fallback-mount>/example2.ogg</fallback-mount>
            <fallback-override>1</fallback-override>
            <fallback-when-full>1</fallback-when-full>
            <intro>/example_intro.ogg</intro>
            <hidden>1</hidden>
            <public>1</public>
            <authentication type="htpasswd">
                    <option name="filename" value="myauth"/>
                    <option name="allow_duplicate_users" value="0"/>
            </authentication>
            <http-headers>
                    <header name="Access-Control-Allow-Origin" value="http://webplayer.example.org" />
                    <header name="baz" value="quux" />
            </http-headers>
            <on-connect>/home/icecast/bin/stream-start</on-connect>
            <on-disconnect>/home/icecast/bin/stream-stop</on-disconnect>
        </mount>
        -->

        <!--
        <mount type="normal">
            <mount-name>/auth_example.ogg</mount-name>
            <authentication type="url">
                <option name="mount_add"       value="http://myauthserver.net/notify_mount.php"/>
                <option name="mount_remove"    value="http://myauthserver.net/notify_mount.php"/>
                <option name="listener_add"    value="http://myauthserver.net/notify_listener.php"/>
                <option name="listener_remove" value="http://myauthserver.net/notify_listener.php"/>
                <option name="headers"         value="x-pragma,x-token"/>
                <option name="header_prefix"   value="ClientHeader."/>
            </authentication>
        </mount>
        -->

        <fileserve>1</fileserve>

        <paths>
            <!-- basedir is only used if chroot is enabled -->
            <basedir>/usr/share/icecast</basedir>

            <!-- Note that if <chroot> is turned on below, these paths must both
                 be relative to the new root, not the original root -->
            <logdir>/var/log/icecast</logdir>
            <webroot>/usr/share/icecast/web</webroot>
            <adminroot>/usr/share/icecast/admin</adminroot>
            <!-- <pidfile>/usr/share/icecast/icecast.pid</pidfile> -->

            <!-- Aliases: treat requests for 'source' path as being for 'dest' path
                 May be made specific to a port or bound address using the "port"
                 and "bind-address" attributes.
              -->
            <!--
            <alias source="/foo" destination="/bar"/>
            -->
            <!-- Aliases: can also be used for simple redirections as well,
                 this example will redirect all requests for http://server:port/ to
                 the status page
            -->
            <alias source="/" destination="/status.xsl"/>
            <!-- The certificate file needs to contain both public and private part.
                 Both should be PEM encoded.
        -->
            <ssl-certificate>/etc/icecast/ssl/icecast.pem</ssl-certificate>
        </paths>

        <logging>
            <accesslog>access.log</accesslog>
            <errorlog>error.log</errorlog>
            <!-- <playlistlog>playlist.log</playlistlog> -->
            <loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
            <logsize>10000</logsize> <!-- Max size of a logfile -->
            <!-- If logarchive is enabled (1), then when logsize is reached
                 the logfile will be moved to [error|access|playlist].log.DATESTAMP,
                 otherwise it will be moved to [error|access|playlist].log.old.
                 Default is non-archive mode (i.e. overwrite)
            -->
            <!-- <logarchive>1</logarchive> -->
        </logging>

        <security>
            <chroot>0</chroot>
            <!--
            <changeowner>
                <user>nobody</user>
                <group>nogroup</group>
            </changeowner>
            -->
        </security>
    </icecast>

    ---------------------------------------------------------------

    9) ahora probamos si funciona con

    # sudo -H -u icecast /usr/local/bin/icecast -b -c /etc/icecast/icecast.xml

    si hay errores hay que corregirlos. 
    El motivo del error aparece en la pantalla. 
    En normalidad son problemas de permisos o de que no encuentra un archivo o una carpeta.


    10) creación de un servicio systemd

    # mcedit /etc/systemd/system/icecast.service

    y pega dentro al fichero:

    ----------------------
    [Unit]
    Description=icecast service
    After=multi-user.target

    [Service]
    Type=forking
    Restart=on-failure
    User=icecast
    ExecStart=/usr/local/bin/icecast -b -c /etc/icecast/icecast.xml
    WorkingDirectory=/home/icecast
    StandardOutput=syslog
    StandardError=syslog

    [Install]
    WantedBy=multi-user.target

    ----------------------

    11) mata a icecast si es eventualmente activo. Para mirar el PID, puedes dar este comando:

    # ps -A | grep icecast 

    y te sale ago así:

      PID TTY          TIME CMD
    22780 pts/0    00:00:04 icecast

    Para matar icecast dale un 

    # kill -9 22780  (el pid no será lo mismo)

    y luego

    systemctl daemon-reload
    systemctl enable icecast.service
    systemctl start icecast.service

    ahora tienes icecast activo y con SSL

    vete a la pagina https://radio.example.org:8443 y verás que se abre icecast con soporte para SSL

    Notas:
    Esta configuración de icecast.xml, permite 2 trasmisiones simultáneas a la vez. Una en el punto de montaje: 
    https://radio.example.org:8443/stream  (source/MySecretPasswd)
    y el otro en
    https://radio.example.org:8443/stream2.mp3 (Tester/MySecretPasswd)


    la trasmisión de Source (cool mic desde android o ffmpeg desde linux u otra app que soporte icecast) hay que ponerle:


    servidor: radio.example.org
    Mount: stream
    puerto: 8000
    usuario: source
    contraseña: MySecretePasswd


    servidor: radio.example.org
    Mount: stream2.mp3
    puerto: 8000
    usuario: Tester
    contraseña: MySecretePasswd


    Segunda nota. Aún falta la regla de cron para el crtificato ssl. La podrá más adelante.


     

  6. OK I solved the problem by myself. 

     

    Solution to the problem of having SSL support in Icecast on Armbian.
    Apparently in Ubuntu the icecast2 package is not compiled with ssl support, so we have to recompile it ourselves.


    I will share my notes here, for posterity and for my future reference in the case I need it.


    I will assume that you already have ispConfig installed in your armbian (OrangePi Pc2 in my case), that you have a fixed and public IP (123.123.123.100) that you have a subdomain assigned from your register with an A record, for example like this:

     

    radio.example.org -> 123.123.123.100

     

    1) Create a website in ispConfig with SSL and Let's Encrypt to the subdomain radio.example.org with IP 123.123.123.100.
    Nothing is missing. This web page is not really going to be used if it were for SSL certificates.

     

    2) Now we are going to desistalar if still you have not done it eventual installations of icecast2

     

    # apt remove --purge icecast2

     

    3) Let's prepare the compilation environment for icecast:

     

    # apt install git gcc build-essential libcurl4-openssl-dev libxslt1-dev libxml2-dev libogg-dev libvorbis-dev libflac-dev libtheora-dev libssl-dev libspeex-dev

     

    4) now download the latest available icecast source code

     

    # git clone --recursive https://git.xiph.org/icecast-server.git  (tarda un poco a mostrar algo... espera)
    # cd icecast-server
    # ./autogen.sh
    # ./configure --with-curl --with-openssl
    # make -j4  (if your board has 8 cores, put -j8 ... and if you only want to use 2 cores put -j2)
    # make install

     

    5) Now you have to create a user for icecast

     

    # adduser --disabled-password --gecos "" icecast

     

    6) create logs

     

    # mkdir -p /var/log/icecast/  
    # touch /var/log/icecast/error.log
    # touch /var/log/icecast/access.log
    # chown -R icecast.icecast /var/log/icecast
    # chown -R icecast.icecast /etc/icecast

     

    7) now the SSL certificate already created in ispconfig for the radio.example.org website

     

    # mkdir /etc/icecast/ssl/
    # touch /usr/local/bin/icecastLetEncrypt.sh
    # chmod 755 /usr/local/bin/icecastLetEncrypt.sh
    # mcedit /usr/local/bin/icecastLetEncrypt.sh

    ...and write on it something like:

     

    ---------------------------------------------------------------
    #!/bin/bash
    cat /etc/letsencrypt/live/radio.example.org/cert.pem \
    /etc/letsencrypt/live/radio.example.org/privkey.pem \
    > /usr/share/icecast/icecast.pem
    chown icecast.icecast /etc/icecast/ssl/icecast.pem
    chmod go-r /etc/icecast/ssl/icecast.pem
    ---------------------------------------------------------------


    8) Now the icecast settings:

     

    ---------------------------------------------------------------

    <icecast>
        <!-- location and admin are two arbitrary strings that are e.g. visible
             on the server info page of the icecast web interface
             (server_version.xsl). -->
        <location>ESpaña</location>
        <admin>maxlinux2000@gmail.com</admin>

        <!-- IMPORTANT!
             Especially for inexperienced users:
             Start out by ONLY changing all passwords and restarting Icecast.
             For detailed setup instructions please refer to the documentation.
             It's also available here: http://icecast.org/docs/
        -->

        <limits>
            <clients>100</clients>
            <sources>2</sources>
            <queue-size>524288</queue-size>
            <client-timeout>30</client-timeout>
            <header-timeout>15</header-timeout>
            <source-timeout>10</source-timeout>
            <!-- If enabled, this will provide a burst of data when a client 
                 first connects, thereby significantly reducing the startup 
                 time for listeners that do substantial buffering. However,
                 it also significantly increases latency between the source
                 client and listening client.  For low-latency setups, you
                 might want to disable this. -->
            <burst-on-connect>1</burst-on-connect>
            <!-- same as burst-on-connect, but this allows for being more
                 specific on how much to burst. Most people won't need to
                 change from the default 64k. Applies to all mountpoints  -->
            <burst-size>65535</burst-size>
        </limits>

        <authentication>
            <!-- Sources log in with username 'source' -->
            <source-password>MySecretPasswd</source-password>
            <!-- Relays log in with username 'relay' -->
            <relay-password>MySecretPasswd</relay-password>

            <!-- Admin logs in with the username given below -->
            <admin-user>admin</admin-user>
            <admin-password>MySecretPasswd</admin-password>
        </authentication>

        <!-- set the mountpoint for a shoutcast source to use, the default if not
             specified is     /stream but you can change it here if an alternative is
             wanted or an extension is required
        <shoutcast-mount>/live.nsv</shoutcast-mount>
        -->

        <!-- Uncomment this if you want directory listings -->
        <!--
        <directory>
            <yp-url-timeout>15</yp-url-timeout>
            <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
        </directory>
        -->

        <!-- This is the hostname other people will use to connect to your server.
             It affects mainly the urls generated by Icecast for playlists and yp
             listings. You MUST configure it properly for YP listings to work!
        -->
        <hostname>radio.example.org</hostname>

        <!-- You may have multiple <listener> elements -->
        <listen-socket>
            <port>8000</port>
            <!-- <bind-address>127.0.0.1</bind-address> -->
            <!-- <shoutcast-mount>/stream</shoutcast-mount> -->
        </listen-socket>
        <!--
        <listen-socket>
            <port>8080</port>
        </listen-socket>
        -->

        <listen-socket>
            <port>8443</port>
            <ssl>1</ssl>
        </listen-socket>


        <!-- Global header settings 
             Headers defined here will be returned for every HTTP request to Icecast.

             The ACAO header makes Icecast public content/API by default
             This will make streams easier embeddable (some HTML5 functionality needs it).
             Also it allows direct access to e.g. /status-json.xsl from other sites.
             If you don't want this, comment out the following line or read up on CORS. 
        -->
        <http-headers>
            <header name="Access-Control-Allow-Origin" value="*" />
        </http-headers>


        <!-- Relaying
             You don't need this if you only have one server.
             Please refer to the config for a detailed explanation.
        -->
        <!--<master-server>127.0.0.1</master-server>-->
        <!--<master-server-port>8001</master-server-port>-->
        <!--<master-update-interval>120</master-update-interval>-->
        <!--<master-password>hackme</master-password>-->

        <!-- setting this makes all relays on-demand unless overridden, this is
             useful for master relays which do not have <relay> definitions here.
             The default is 0 -->
        <!--<relays-on-demand>1</relays-on-demand>-->

        <!--
        <relay>
            <server>127.0.0.1</server>
            <port>8080</port>
            <mount>/example.ogg</mount>
            <local-mount>/different.ogg</local-mount>
            <on-demand>0</on-demand>

            <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
        </relay>
        -->


        <!-- Mountpoints
             Only define <mount> sections if you want to use advanced options,
             like alternative usernames or passwords
        -->

        <!-- Default settings for all mounts that don't have a specific <mount type="normal">.
        -->
        <!--
        <mount type="default">
            <public>0</public>
            <intro>/server-wide-intro.ogg</intro>
            <max-listener-duration>3600</max-listener-duration>
            <authentication type="url">
                    <option name="mount_add" value="http://auth.example.org/stream_start.php"/>
            </authentication>
            <http-headers>
                    <header name="foo" value="bar" />
            </http-headers>
        </mount>
        -->

        <!-- Normal mounts -->

        <mount type="normal">
            <mount-name>/stream2.mp3</mount-name>

            <username>Tester</username>
            <password>MySecretPasswd</password>

            <max-listeners>1</max-listeners>
            <!--dump-file>/tmp/dump-example1.ogg</dump-file-->
            <burst-size>65536</burst-size>
            <!--fallback-mount>/example2.ogg</fallback-mount>
            <fallback-override>1</fallback-override>
            <fallback-when-full>1</fallback-when-full>
            <intro>/example_intro.ogg</intro-->
            <hidden>1</hidden>
            <public>1</public>
            <!--authentication type="htpasswd">
                    <option name="filename" value="myauth"/>
                    <option name="allow_duplicate_users" value="0"/>
            </authentication-->
            <http-headers>
                    <header name="Access-Control-Allow-Origin" value="http://webplayer.example.org" />
            </http-headers>
            <!--on-connect>/home/icecast/bin/stream-start</on-connect>
            <on-disconnect>/home/icecast/bin/stream-stop</on-disconnect-->
        </mount>


        <!--
        <mount type="normal">
            <mount-name>/example-complex.ogg</mount-name>

            <username>othersource</username>
            <password>hackmemore</password>

            <max-listeners>1</max-listeners>
            <dump-file>/tmp/dump-example1.ogg</dump-file>
            <burst-size>65536</burst-size>
            <fallback-mount>/example2.ogg</fallback-mount>
            <fallback-override>1</fallback-override>
            <fallback-when-full>1</fallback-when-full>
            <intro>/example_intro.ogg</intro>
            <hidden>1</hidden>
            <public>1</public>
            <authentication type="htpasswd">
                    <option name="filename" value="myauth"/>
                    <option name="allow_duplicate_users" value="0"/>
            </authentication>
            <http-headers>
                    <header name="Access-Control-Allow-Origin" value="http://webplayer.example.org" />
                    <header name="baz" value="quux" />
            </http-headers>
            <on-connect>/home/icecast/bin/stream-start</on-connect>
            <on-disconnect>/home/icecast/bin/stream-stop</on-disconnect>
        </mount>
        -->

        <!--
        <mount type="normal">
            <mount-name>/auth_example.ogg</mount-name>
            <authentication type="url">
                <option name="mount_add"       value="http://myauthserver.net/notify_mount.php"/>
                <option name="mount_remove"    value="http://myauthserver.net/notify_mount.php"/>
                <option name="listener_add"    value="http://myauthserver.net/notify_listener.php"/>
                <option name="listener_remove" value="http://myauthserver.net/notify_listener.php"/>
                <option name="headers"         value="x-pragma,x-token"/>
                <option name="header_prefix"   value="ClientHeader."/>
            </authentication>
        </mount>
        -->

        <fileserve>1</fileserve>

        <paths>
            <!-- basedir is only used if chroot is enabled -->
            <basedir>/usr/share/icecast</basedir>

            <!-- Note that if <chroot> is turned on below, these paths must both
                 be relative to the new root, not the original root -->
            <logdir>/var/log/icecast</logdir>
            <webroot>/usr/share/icecast/web</webroot>
            <adminroot>/usr/share/icecast/admin</adminroot>
            <!-- <pidfile>/usr/share/icecast/icecast.pid</pidfile> -->

            <!-- Aliases: treat requests for 'source' path as being for 'dest' path
                 May be made specific to a port or bound address using the "port"
                 and "bind-address" attributes.
              -->
            <!--
            <alias source="/foo" destination="/bar"/>
            -->
            <!-- Aliases: can also be used for simple redirections as well,
                 this example will redirect all requests for http://server:port/ to
                 the status page
            -->
            <alias source="/" destination="/status.xsl"/>
            <!-- The certificate file needs to contain both public and private part.
                 Both should be PEM encoded.
        -->
            <ssl-certificate>/etc/icecast/ssl/icecast.pem</ssl-certificate>
        </paths>

        <logging>
            <accesslog>access.log</accesslog>
            <errorlog>error.log</errorlog>
            <!-- <playlistlog>playlist.log</playlistlog> -->
            <loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
            <logsize>10000</logsize> <!-- Max size of a logfile -->
            <!-- If logarchive is enabled (1), then when logsize is reached
                 the logfile will be moved to [error|access|playlist].log.DATESTAMP,
                 otherwise it will be moved to [error|access|playlist].log.old.
                 Default is non-archive mode (i.e. overwrite)
            -->
            <!-- <logarchive>1</logarchive> -->
        </logging>

        <security>
            <chroot>0</chroot>
            <!--
            <changeowner>
                <user>nobody</user>
                <group>nogroup</group>
            </changeowner>
            -->
        </security>
    </icecast>

    ---------------------------------------------------------------

     

    9) Now we test if it works with:

     

    # sudo -H -u icecast /usr/local/bin/icecast -b -c /etc/icecast/icecast.xml

     

    If there are errors, they must be corrected.
    The reason for the error appears on the screen.
    Normally they are permission problems or you cannot find a file or a folder.


    10) creation of a systemd service

     

    # mcedit /etc/systemd/system/icecast.service

    ...and copy/paste on it:

     

    ----------------------
    [Unit]
    Description=icecast service
    After=multi-user.target

    [Service]
    Type=forking
    Restart=on-failure
    User=icecast
    ExecStart=/usr/local/bin/icecast -b -c /etc/icecast/icecast.xml
    WorkingDirectory=/home/icecast
    StandardOutput=syslog
    StandardError=syslog

    [Install]
    WantedBy=multi-user.target

    ----------------------

     

    11) kill icecast if it is eventually active. To look the PID number, you can give this command:

     

    # ps -A | grep icecast 

     

    and the console show something like that:

     

      PID TTY          TIME CMD
    22780 pts/0    00:00:04 icecast

     

    To kill the process do 

     

    # kill -9 22780  (yo must to put your PID number)

     

    and then:

     

    # systemctl daemon-reload
    # systemctl enable icecast.service
    # systemctl start icecast.service

     

    Now you have icecast active and with SSL support!!

     

    Go to https://radio.example.org:8443 and you will see that icecast opens with SSL support

     

    Notes:
    This configuration of icecast.xml, allows 2 simultaneous transmissions at the same time. One at the mount point:
    https://radio.example.org:8443/stream (source/MySecretPasswd)
    and the other in
    https://radio.example.org:8443/stream2.mp3 (Tester/MySecretPasswd)


    Source transmission (like Cool Mic in android or ffmpeg in linux or another app that supports icecast), you should be put:


    icecast server: radio.example.org
    Mount: stream
    port: 8000
    user: source
    passwd: MySecretePasswd


    icecast server: radio.example.org
    Mount: stream2.mp3
    port: 8000
    user: Tester
    passwd: MySecretePasswd


    Second note.... the cron rule for the ssl certificate still missing. I have to do it and add here.


     

  7. Hello everyone
    I have a problem with icecast because I can't get the let's encrypt ssl certificate to work.
    I have followed several tutorials online, but in the end they were all the same, so I explain what I am doing, to see if someone tells me where I am wrong.

     

    I have created a script to concatenate certificates, change ownership and permissions, so that I can run it with cron along with the let's encrypt certbot. Here the script
    ----------------------
    #!/bin/bash

    cat /etc/letsencrypt/live/radio.example.org/cert.pem \
    /etc/letsencrypt/live/radio.example.org/privkey.pem \
    > /usr/share/icecast2/icecast.pem

    chown icecast2.icecast /usr/share/icecast2/icecast.pem
    chmod go-r /usr/share/icecast2/icecast.pem
    ----------------------

    Then I modified /etc/icecast2/icecast.xml like this:


    <icecast>

        <location>Earth</location>
        <admin>icemaster@localhost</admin>
        <limits>
            <clients>100</clients>
            <sources>2</sources>
            <queue-size>524288</queue-size>
            <client-timeout>30</client-timeout>
            <header-timeout>15</header-timeout>
            <source-timeout>10</source-timeout>

            <burst-on-connect>1</burst-on-connect>
            <burst-size>65535</burst-size>
        </limits>

        <authentication>
               <source-password>MySecretPasswd</source-password>
            <relay-password>MySecretPasswd</relay-password>

            <admin-user>admin</admin-user>
            <admin-password>MySecretPasswd</admin-password>
        </authentication>
        <hostname>radio.example.org</hostname>
        </listen-socket>
    <listen-socket>
         <port>8002</port>
         <ssl>1</ssl>
    </listen-socket>

        <http-headers>
            <header name="Access-Control-Allow-Origin" value="*" />
        </http-headers>

        <!-- Normal mounts -->
        <mount type="normal">
            <mount-name>/radio</mount-name>

            <username>source</username>
            <password>MySecretPasswd</password>

            <max-listeners>500</max-listeners>
            <dump-file>/mnt/1TB/podcast/dump-example1.mp3</dump-file>
            <burst-size>65536</burst-size>
            <!--fallback-mount>/example2.ogg</fallback-mount>
            <fallback-override>1</fallback-override>
            <fallback-when-full>1</fallback-when-full>
            <intro>/example_intro.ogg</intro-->
            <hidden>1</hidden>
            <public>1</public>
            <http-headers>
                    <header name="Access-Control-Allow-Origin" value="http://webplayer.example.org" />
                    <header name="baz" value="quux" />
            </http-headers>
        </mount>
        <fileserve>1</fileserve>

        <paths>
            <basedir>/usr/share/icecast2</basedir>
            <logdir>/var/log/icecast2</logdir>
            <webroot>/usr/share/icecast2/web</webroot>
            <adminroot>/usr/share/icecast2/admin</adminroot>
            <alias source="/" destination="/status.xsl"/>

        </paths>

        <paths>
             <ssl-certificate>/usr/share/icecast2/icecast.pem</ssl-certificate>
        </paths>

        <logging>
            <accesslog>access.log</accesslog>
            <errorlog>error.log</errorlog>
            <!-- <playlistlog>playlist.log</playlistlog> -->
            <loglevel>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
            <logsize>10000</logsize> <!-- Max size of a logfile -->
        </logging>

        <security>
            <chroot>0</chroot>
        </security>
    </icecast>


    ... but the log at each restart of the icecast2 service, shows me:

    "INFO connection /get_ssl_certificate No SSL capability", and of course on port 8002 I can't connect to https

     

     

    [2019-08-29  20:25:31] INFO stats/stats_shutdown stats thread finished
    [2019-08-29  20:25:31] INFO main/main Icecast 2.4.3 server started
    [2019-08-29  20:25:31] DBUG yp/yp_recheck_config Updating YP configuration
    [2019-08-29  20:25:31] INFO connection/get_ssl_certificate No SSL capability
    [2019-08-29  20:25:31] INFO yp/yp_update_thread YP update thread started
    [2019-08-29  20:25:32] DBUG slave/_slave_thread checking master stream list

     

    Anyone have any idea where I am wrong?


     

  8. Most of the time our Arm computer does nothing and the CPU is around 40º, and therefore no fan is needed.
    But sometimes they work a lot and the fan is really necessary.

    So I wonder if a 5V fan connected to the gpio pins can be used and that the same board sends power to the fan when for example the CPU exceeds 60 °.

    And below 60º the orangepi that cuts the current to the fan.

    Can it be done without external components?

  9. I think we will have to modify Armbian Server a bit so that it works correctly with SSD and HDD drives.
    In my case I have a server with public Ip, primary disk of 120GB SSD and another secondary of 320GB type HDD.
    On the server I installed ispConfig, wordpress, nextcloud and icecast2
    I think it would be best to move all the Logs on the HDD disk so as not to damage the SSD disk over time ... and of course remove the /var/log and /tmp partitions.
    What do you think?

  10. Ok, I have a workaround! 

    I have created a simple script that analize, compare and corrects the length of audio file in order to match the video length.

     

    This script can create a video files with audio in HD (720p) using a Logitech C310 webcam on a OrangePi PC or OrangePi Pc2.

    (tested on both)

    As optional feature this script can automatically upload the video to youtube

    Fell free tu use and adapt to your hardware.

     

    Note for the programmers: FFMPEF and ARECORD have a bug that random caputure from mic (via usb2) at wrong frequency... so the file will be reproduced x 3 fastest. I don't know if is an hardware problem o software... but this occurs on both H3 and H5 processors, so I propend for a software problem. In order to reproduce, please do this simple command varios times:

    # ffmpeg -f alsa -i default:CARD=U0x46d0x81b -t 10 out1.wav

    and hear they.

     

    below the script

     

    #!/bin/bash
    
    
    # Simple audio/video capture from Logitech C310 Webcam
    # tested on OrangePi PC and OrangePi Pc2.
    # Ubuntu Bionic with Armbian Linux 4.19.62-sunxi
    # 2019/08/28 by Massimo Biffi
    # Fell free to use and edit this script.
    # save this script on lc310-capture.sh
    # change the path as you needs
    
    ####################################################################
    # set audio/video filenames, video size
    aud="aud.wav"
    vid="vid.mp4"
    Vsize="1280x720"
    ####################################################################
    #Optional. auto submit video to youtube using this script:
    # https://www.atareao.es/como/subir-videos-a-youtube-con-un-script/
    # https://github.com/tokland/youtube-upload
    # Put youtube=1 in order to activate it
    youtube=0
    ####################################################################
    
    # check id ffmpeg and rubberband are present
    if [ -f /usr/bin/ffmpeg ]; then
        echo "Ok, rubberband installed"
    else
        echo "FFMPEG missing. Please install with
        sudo apt install ffmpeg"
        exit 1
    fi
    if [ -f /usr/bin/rubberband ]; then
        echo "Ok, rubberband installed"
    else
        echo " Rubberband missing. Please install with
        sudo apt install rubberband-cli"
        exit 1
    fi
    
    DATE=$(date +"%Y-%m-%d_%H-%M")
    DATE2=$(date +"%d/%b/%Y")
    echo DATE=$DATE
    #echo DATE2=$DATE2
    
    # Detect Logictec c310 device
    DEVICE=$(v4l2-ctl --list-devices | grep -A1 "UVC"  | tail -n1 | tr -d '\t')
    
    echo "capturing video"
    ffmpeg \
    -hide_banner \
    -loglevel panic \
    -f v4l2 \
    -video_size $Vsize \
    -i $DEVICE \
    -pix_fmt nv12  \
    -c:v libx264 \
    -b:v 4M \
    -maxrate 4M \
    -bufsize 1M \
    -preset ultrafast \
    -vsync 0  \
    -f mp4 $vid -y &
    vidPID=$!
    
    echo "capturing audio,
    ...press Enter to stop..."
    #grab audio
    ffmpeg \
    -hide_banner \
    -loglevel panic \
    -f alsa \
    -ar 48000 \
    -ac 1 \
    -i hw:CARD=U0x46d0x81b,DEV=0 $aud -y &
    audPID=$!
    # Enter to Stop
    read  stop
    
    #stop audio and video with pids
    echo "Stop recording"
    kill -n 2 $audPID
    kill -n 2 $vidPID
    
    # check audio and video Length
    echo "checking audio and video Length"
    Vtime=$(ffprobe -v error -select_streams v:0 -show_entries stream=duration -of default=noprint_wrappers=1:nokey=1 vid.mp4)
    Atime=$(ffprobe -v error -select_streams a:0 -show_entries stream=duration -of default=noprint_wrappers=1:nokey=1 aud.wav)
    echo Vtime=$Vtime - Atime=$Atime
    
    # compare audio/video Length
    tVtime=$(echo $Vtime | tr -d '.')
    tAtime=$(echo $Atime | tr -d '.')
    if [ "$tAtime" -lt "$tVtime" ]; then
        echo "Lengths differents!"
        # if not equal calculate new frequency
        Freq=$( echo "scale=1; 48000*$Atime/$Vtime " | bc)
        echo "New Freq=$Freq"
        # change frequency and resample ar 48k
        echo "change the freq at $Freq and resample to 48k"
        ffmpeg \
        -hide_banner \
        -loglevel panic \
        -i aud.wav \
        -af asetrate=$Freq,aresample=48000 aud2.wav -y
        echo "checking audio and video Length again"
        Atime2=$(ffprobe -v error -select_streams a:0 -show_entries stream=duration -of default=noprint_wrappers=1:nokey=1 aud2.wav)
        echo Vtime=$Vtime - Atime2=$Atime2
        # fine tune Length of audio file
        echo "fine tune Length of audio file with rubberband"
        rubberband -q -D $Vtime aud2.wav aud3.wav
        Atime3=$(ffprobe -v error -select_streams a:0 -show_entries stream=duration -of default=noprint_wrappers=1:nokey=1 aud3.wav)
        echo Vtime=$Vtime - Atime3=$Atime3
        # clean and replace audio
        mv aud3.wav $aud
        rm aud2.wav
    else 
        echo "calculate time difference"
        Diff=$(echo "scale=1; $Atime-$Vtime " | bc)
        echo Diff=$Diff
        echo "cutting last $Diff seconds"
        ffmpeg -hide_banner -loglevel panic -ss 00:00:00.0  -i $aud -t $Vtime aud2.wav
        echo "checking audio and video Length again..."
        Atime2=$(ffprobe -v error -select_streams a:0 -show_entries stream=duration -of default=noprint_wrappers=1:nokey=1 aud2.wav)
        echo Vtime=$Vtime - Atime2=$Atime2
        mv aud2.wav $aud
    fi
    
    # merge audio/video in mp4 and aac audio codec
    echo "merging audio and video..."
    ffmpeg \
    -hide_banner \
    -loglevel panic \
    -i $vid \
    -i $aud \
    -c:v copy \
    -c:a aac \
    -ac 2 \
    video_$DATE.mp4 -y
    
    # clean
    rm $aud $vid
    
    if [ youtube = 1 ]; then
        youtube-upload video_$DATE.mp4  --title "Vídeo del $DATE2" \
        && rm video_$DATE.mp4
    fi

     

     

  11. Hi Tido, the temperature is not the problem (64º without fan, only a little heatsink, but I will put a fan in the production)

    692204116_Capturadepantallade2019-08-2718-16-56.png.1cf45cde9cdbecf9880fa6437775acc9.png

     

     

    I have done several tests and it turns out that the problem is in the audio recording. Sometimes it is correct and other times it is X3 faster. So if I record an audio of 10 seconds, it actually lasts 3 seconds increasing the frequency.
    Clearly in these conditions ffmpeg can't do much .... well, something could be done ... you could see how many seconds the video takes and stretch the audio until it is the same and can be coupled.
    But this means recording audio and video separately and then putting them together.

    I put here a 10 second wav file for you to understand the problem.

     

    out1x3.wav

     

    Something similar had never happened to me.
    The strange thing is that if I execute the same command several times, it gives me different results.
    Sometimes the speed is normal and sometimes it is X3

    I do not know if it is the fault of the Logitech c310 webcam or OrangePi pc2 or the set of these two pieces of hardware.

      Anyone have a solution for this problem?

    I put here the simple examples I am using for this.

     

    #!/bin/bash
    
    # arecord -L
    
    #ffmpeg -f alsa -ar 48000 -i plughw:CARD=U0x46d0x81b,DEV=0 -ac 2 -c:a aac -r 48000 -b:a 128k -y out.aac
    
    ffmpeg -f alsa -i default:CARD=U0x46d0x81b -t 10 out1.wav
    ffmpeg -f alsa -ac 1 -i default:CARD=U0x46d0x81b -t 10 out2.wav
    ffmpeg -f alsa -ac 1 -ar 16000 -i default:CARD=U0x46d0x81b -t 10 out3.wav
    ffmpeg -f alsa -ac 1 -ar 16000 -i default:CARD=U0x46d0x81b -t 10 -r 16000 out4.wav

    Sometime the first is X3, the second is X1 and so on... strange.

     

    I will try with another webcam microphone...

     

     

  12. Hello everyone
    I need to record events using a webcam from the console via ssh connection.
    So I bought an orangepipc2 and a logitech c310 webcam and I started experimenting with ffmpeg and also cvlc.

    I need to record in HD (1280x720) with audio and minimum 10 frames per second for a duration of an hour or so and if possible in mp4 format with video in libx264 and audio in acc.

    Disk space is not a problem because I installed armbian (ubuntu 18.04) on an external ssd by usb.

    The problem is that audio and video are out of sync in cvlc and, in the case of ffmpeg, it gives me several errors and the audio is cut.

    I have also tried to record audio and video separately, but audio / video sync errors increase.

     

    Has anyone turned out the problem?

     

    I put you under the example commands I am using ... and they give me errors

     

    #!/bin/bash
    # Detect Logictec c310 device
    DEVICE=$(v4l2-ctl --list-devices | grep -A1 "UVC"  | tail -n1 | tr -d '\t')
    
    
    vid="vid.mp4"
    
    ffmpeg  -f alsa -r 16000 -i default:CARD=U0x46d0x81b  -f v4l2 -video_size 1280x720 -i $DEVICE -pix_fmt nv12  -c:v libx264 -b:v 4M -maxrate 4M -bufsize 1M -preset ultrafast  -f mp4 -strict -2 -acodec mp2  $vid -y &
    vidPID=$!
    
    echo "Press 'Enter' to exit"
    read  out
    #stop audio and video with pids
    
    kill -n 2 $vidPID
    
    exit
    #!/bin/bash
    aud="aud.wav"
    vid="vid.mp4"
    
    DATE=$(date +"%Y-%m-%d_%H-%M")
    DATE2=$(date +"%d/%b/%Y")
    echo DATE=$DATE
    echo DATE2=$DATE2
    
    # Detect Logictec c310 device
    DEVICE=$(v4l2-ctl --list-devices | grep -A1 "UVC"  | tail -n1 | tr -d '\t')
    
    ffmpeg -hide_banner  -f v4l2 -video_size 1280x720 -i $DEVICE -pix_fmt nv12  -c:v libx264 -b:v 4M -maxrate 4M -bufsize 1M -preset ultrafast -vsync 0  -f mp4 $vid -y &
    vidPID=$!
    
    #grab audio & pid
    ffmpeg -hide_banner -f alsa -ac 1 -i hw:CARD=U0x46d0x81b,DEV=0 $aud -y &
    audPID=$!
    #wait, till name given (that means stop)
    read  out
    
    #stop audio and video with pids
    kill -n 2 $audPID 
    kill -n 2 $vidPID 
    echo "Saving to test.mp4" 
    sleep 2
    
    #combine to the target output file
    ffmpeg \
    -i vid.mp4 \
    -i aud.wav \
    -c:v copy \
    -c:a aac \
    -ac 2 \
    video_$DATE.mp4 -y
    #!/bin/bash
    
    
    cvlc -v  v4l2:///dev/video0:width=640:height=480 :input-slave=alsa:/sysdefault:CARD=U0x46d0x81b --sout="#transcode{vcodec=h264,vb=2000,fps=10,scale=1.0,acodec=aac,ab=90,channels=1,samplerate=24000,audio-sync}:standard{access=file,mux=mp4,dst=output.mp4}" &
    PID=$!
    
    read stop
    kill -2 $PID

     

  13. Hi Werner,
    by chance, do you know how to tell the Armbian build script, to prepare for example an Armbian 5.88 with kernel 5.0.x for OPI3?

    Now we are at 5.93 with kernel 5.2.6 but I would like to be able to compile builds with kernel of the 5.0.x series, because although sometimes they were hung and the audio does not work, at least they can be used.
    Right now I'm using an old build to write to you, but I don't dare to update it in case something breaks.

  14. Hi Verner,

    I tried this one on muy opi3

     

    https://laet.pw/index.php/s/M2eXJKll5sdnlBN/download?path=%2F0808&files=Armbian_5.93_Orangepi3_Debian_buster_dev_5.2.6.img.gz

     

    but it can't start. 

    there is a kernel panic:

     

    U-Boot 2019.04-armbian (Aug 08 2019 - 07:28:48 +0000) Allwinner Technology      
                                                                                    
    CPU:   Allwinner H6 (SUN50I)                                                    
    Model: OrangePi 3                                                               
    DRAM:  2 GiB                                                                    
    MMC:   mmc@4020000: 0, mmc@4022000: 1                                           
    Loading Environment from EXT4... ** File not found /boot/boot.env **            
                                                                                    
    ** Unable to read "/boot/boot.env" from mmc0:1 **                               
    In:    serial@5000000                                                           
    Out:   serial@5000000                                                           
    Err:   serial@5000000                                                           
    Net:   No ethernet found.                                                       
    starting USB...                                                                 
    No controllers found                                                            
    Hit any key to stop autoboot:  0                                                
    switch to partitions #0, OK                                                     
    mmc0 is current device                                                          
    Scanning mmc 0:1...                                                             
    Found U-Boot script /boot/boot.scr                                              
    3042 bytes read in 2 ms (1.5 MiB/s)                                             
    ## Executing script at 4fc00000                                                 
    U-boot loaded from SD                                                           
    Boot script loaded from mmc                                                     
    181 bytes read in 1 ms (176.8 KiB/s)                                            
    27919 bytes read in 9 ms (3 MiB/s)                                              
    4161 bytes read in 5 ms (812.5 KiB/s)                                           
    Applying kernel provided DT fixup script (sun50i-h6-fixup.scr)                  
    ## Executing script at 44000000                                                 
    8244348 bytes read in 835 ms (9.4 MiB/s)                                        
    14954504 bytes read in 1514 ms (9.4 MiB/s)                                      
    ## Loading init Ramdisk from Legacy Image at 4fe00000 ...                       
       Image Name:   uInitrd                                                        
       Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)                  
       Data Size:    8244284 Bytes = 7.9 MiB                                        
       Load Address: 00000000                                                       
       Entry Point:  00000000                                                       
       Verifying Checksum ... OK                                                    
    ## Flattened Device Tree blob at 4fa00000                                       
       Booting using the fdt blob at 0x4fa00000                                     
       Loading Ramdisk to 49823000, end 49fffc3c ... OK                             
       Loading Device Tree to 00000000497b3000, end 0000000049822fff ... OK         
                                                                                    
    Starting kernel ...                                                             
                                                                                    
    [    6.356324] Unable to handle kernel NULL pointer dereference at virtual addr1
    [    6.365113] Mem abort info:                                                  
    [    6.367901]   ESR = 0x96000004                                               
    [    6.370951]   Exception class = DABT (current EL), IL = 32 bits              
    [    6.376861]   SET = 0, FnV = 0                                               
    [    6.379909]   EA = 0, S1PTW = 0                                              
    [    6.383043] Data abort info:                                                 
    [    6.385918]   ISV = 0, ISS = 0x00000004                                      
    [    6.389746]   CM = 0, WnR = 0                                                
    [    6.392709] user pgtable: 4k pages, 48-bit VAs, pgdp=00000000b4bed000        
    [    6.399138] [0000000000000501] pgd=0000000000000000                          
    [    6.404009] Internal error: Oops: 96000004 [#1] SMP                          
    [    6.408877] Modules linked in: snd_soc_hdmi_codec snd_soc_core snd_pcm_dmaenx
    [    6.428770] CPU: 2 PID: 514 Comm: haveged Not tainted 5.2.6-sunxi64 #5.93    
    [    6.435547] Hardware name: OrangePi 3 (DT)                                   
    [    6.439637] pstate: 40000085 (nZcv daIf -PAN -UAO)                           
    [    6.444431] pc : account_user_time+0x18/0xd8                                 
    [    6.448695] lr : account_process_tick+0xf8/0x118                             
    [    6.453304] sp : ffff000010013d80                                            
    [    6.456612] x29: ffff000010013d80 x28: ffff800077bb0228                      
    [    6.461916] x27: ffff800077bafd00 x26: 0000000000000040                      
    [    6.467220] x25: 0000000000000080 x24: 000000017a9bdad6                      
    [    6.472524] x23: 0000000000000001 x22: 0000000000000001                      
    [    6.477827] x21: 0000800066db4000 x20: 00000000003d0900                      
    [    6.483131] x19: 0000000000000001 x18: 0000000000000000                      
    [    6.488435] x17: 0000000000000000 x16: 0000000000000000                      
    [    6.493739] x15: 0000000000000000 x14: 0000000000000000                      
    [    6.499043] x13: 0000000000000000 x12: 0000000000000000                      
    [    6.504346] x11: 0000000000000000 x10: 0000000000000040                      
    [    6.509650] x9 : ffff000010e32a78 x8 : ffff000010e32a70                      
    [    6.514954] x7 : ffff800075000290 x6 : 0000000010b2a35f                      
    [    6.520258] x5 : 0000800066db4000 x4 : ffff000010e18000                      
    [    6.525562] x3 : 0000000000000000 x2 : 00000000003d0900                      
    [    6.530865] x1 : 00000000003d0900 x0 : 0000000000000001                      
    [    6.536170] Call trace:                                                      
    [    6.538614]  account_user_time+0x18/0xd8                                     
    [    6.542531]  account_process_tick+0xf8/0x118                                 
    [    6.546797]  update_process_times+0x20/0x58                                  
    [    6.550977]  tick_sched_handle.isra.5+0x30/0x48                              
    [    6.555501]  tick_sched_timer+0x48/0x98                                      
    [    6.559331]  __hrtimer_run_queues+0xfc/0x218                                 
    [    6.563593]  hrtimer_interrupt+0xf8/0x2d0                                    
    [    6.567599]  arch_timer_handler_phys+0x28/0x40                               
    [    6.572038]  handle_percpu_devid_irq+0x80/0x140                              
    [    6.576564]  generic_handle_irq+0x24/0x38                                    
    [    6.580567]  __handle_domain_irq+0x5c/0xb0                                   
    [    6.584658]  gic_handle_irq+0x58/0xa8                                        
    [    6.588315]  el0_irq_naked+0x4c/0x54                                         
    [    6.591887] Code: a90153f3 aa0003f3 f90013f5 aa0103f4 (f9428000)             
    [    6.597972] ---[ end trace 51151885df76d1d1 ]---                             
    [    6.602582] Kernel panic - not syncing: Fatal exception in interrupt         
    [    6.608929] SMP: stopping secondary CPUs                                     
    [    6.612846] Kernel Offset: disabled                                          
    [    6.616328] CPU features: 0x0002,20002004                                    
    [    6.620330] Memory Limit: none                                               
    [    6.623382] Rebooting in 10 seconds..          

    sorry... :(

  15. ...as title. I've installed ispConfig using Armbian-Config, but now I want to remove it. How to do it?

    Googling I've see that there is a unistall.php or /root/ispconfig/uninstall script that do that, but there is no trace in armbian.

     

     

  16. hello, it would be nice to have OctoPrint + Motion in armbian-config/Software/Softy

     

    In case someone does not know what I am talking about, I explain:

     

    All low-cost 3D printers are based on the opensource RepRap project, which has developed a firmware called Marlin that runs in Arduino.
    The problem of Arduino is that it is perfect for repetitive tasks, but it is lacking in other things, such as using the TCP-IP protocol, networks, it has very, very little memory, it does not support webcams, ect.
    So a project called OctoPrint was born that runs on ARM boards, and allows us to control our 3D printer, from a networked computer or from our mobile.

     

    If there is a need to create a script to integrate a module, I can try

    Where there is the necessary documentation about these modules?


    Another way is that the armbian-config manteiner does it, and in this case, he can use this article that I have written in a Spanish forum ...

    google-traslate is your friend :)
    https://www.spainlabs.com/foros/tema-Octoprint-en-orange-pi-pc-webcam-usb

  17. On 6/13/2019 at 6:20 PM, GeorgeP said:

    ....

     

    I have an "old" Armbian_5.78_Orangepi3_Debian_stretch_dev_5.0.7.img that runs just fine (as long as I don't upgrade it!) but I don't have any similar Ubuntu versions. Does anyone happen to know of an archive of old versions, or maybe have something that I could download direct?

     

    Many thanks!
    George

     

    Hi George

     

    you can download this one. I hope that this help you.

    http://io.mrobot.eu/deposito/Armbian_5.82.190423_Orangepi3_Ubuntu_bionic_dev_5.0.7.7z

     

    This one it's usable, and you can use with a complete desktop.  It's far to be perfect, but usable.

    (I'm writing from armbiam 5.82 - 5.0.7 installed in the emmc on my OPI3)

     

    regards

    MaX

  18. U-Boot 2019.04-armbian (May 31 2019 - 01:42:20 +0200) Allwinner Technology      
                                                                                    
    CPU:   Allwinner H6 (SUN50I)                                                    
    Model: OrangePi 3                                                               
    DRAM:  2 GiB                                                                    
    MMC:   mmc@4020000: 0, mmc@4022000: 1                                           
    Loading Environment from EXT4... ** File not found /boot/boot.env **            
                                                                                    
    ** Unable to read "/boot/boot.env" from mmc0:1 **                               
    In:    serial@5000000                                                           
    Out:   serial@5000000                                                           
    Err:   serial@5000000                                                           
    Net:   No ethernet found.                                                       
    starting USB...                                                                 
    No controllers found                                                            
    Hit any key to stop autoboot:  0                                                
    switch to partitions #0, OK                                                     
    mmc0 is current device                                                          
    Scanning mmc 0:1...                                                             
    Found U-Boot script /boot/boot.scr                                              
    3042 bytes read in 1 ms (2.9 MiB/s)                                             
    ## Executing script at 4fc00000                                                 
    U-boot loaded from SD                                                           
    Boot script loaded from mmc                                                     
    165 bytes read in 2 ms (80.1 KiB/s)                                             
    27608 bytes read in 8 ms (3.3 MiB/s)                                            
    4161 bytes read in 4 ms (1015.6 KiB/s)                                          
    Applying kernel provided DT fixup script (sun50i-h6-fixup.scr)                  
    ## Executing script at 44000000                                                 
    5587948 bytes read in 567 ms (9.4 MiB/s)                                        
    14563336 bytes read in 1473 ms (9.4 MiB/s)                                      
    ## Loading init Ramdisk from Legacy Image at 4fe00000 ...                       
       Image Name:   uInitrd                                                        
       Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)                  
       Data Size:    5587884 Bytes = 5.3 MiB                                        
       Load Address: 00000000                                                       
       Entry Point:  00000000                                                       
       Verifying Checksum ... OK                                                    
    ## Flattened Device Tree blob at 4fa00000                                       
       Booting using the fdt blob at 0x4fa00000                                     
       Loading Ramdisk to 49aab000, end 49fff3ac ... OK                             
       Loading Device Tree to 0000000049a3b000, end 0000000049aaafff ... OK         
                                                                                    
    Starting kernel ...                                                             
                                                                                    
                                                                                    
    Debian GNU/Linux 9 orangepi3 ttyS0                                              
                                                                                    
    orangepi3 login: [   82.424484] Internal error: SP/PC alignment exception: 8a00P
    [   82.424489] Modules linked in: zstd zram btsdio bluetooth snd_soc_hdmi_codecx
    [   82.463741] Process swapper/2 (pid: 0, stack limit = 0x0000000044a1bf13)     
    [   82.473532] CPU: 2 PID: 0 Comm: swapper/2 Not tainted 5.1.5-sunxi64 #5.88.191
    [   82.484073] Hardware name: OrangePi 3 (DT)                                   
    [   82.491347] pstate: 00000085 (nzcv daIf -PAN -UAO)                           
    [   82.499353] pc : 0xf                                                         
    [   82.504745] lr : bsearch+0x50/0xb8                                           
    [   82.511367] sp : ffff000010013c80                                            
    [   82.517858] x29: ffff000010013c80 x28: 0000000000000010                      
    [   82.526337] x27: 0000000000000000 x26: ffff800074c034a0                      
    [   82.534819] x25: ffff800074c034a0 x24: 000000000000000f                      
    [   82.543312] x23: 0000000000000008 x22: 000000000000000f                      
    [   82.551786] x21: 0000000000000001 x20: 0000000000000017                      
    [   82.560237] x19: 0000000000000001 x18: 0000000000000000                      
    [   82.568668] x17: ffff000010acba60 x16: ffff000010a88c58                      
    [   82.577098] x15: 0000000000000000 x14: ffff000010a88c58                      
    [   82.585533] x13: 0000000000000001 x12: ffff000010a88c30                      
    [   82.593964] x11: 0000000000000001 x10: ffffffffffffffff                      
    [   82.602394] x9 : 0000000000000000 x8 : 0000000000000006                      
    [   82.610834] x7 : ffff800077bad870 x6 : 0000000000000040                      
    [   82.619232] x5 : ffff800073f30bc0 x4 : 000000000000000f                      
    [   82.627577] x3 : 000000000000000f x2 : 0000000000000000                      
    [   82.635919] x1 : 0000000000000017 x0 : ffff800074c034a0                      
    [   82.644276] Call trace:                                                      
    [   82.649759]  0xf                                                             
    [   82.654611]  resched_cpu+0xe4/0xe8                                           
    [   82.661029]  mod_timer+0x230/0x340                                           
    [   82.667421]  rwb_arm_timer+0x48/0x78                                         
    [   82.673976]  wb_timer_fn+0x154/0x178                                         
    [   82.680515]  blk_stat_timer_fn+0x154/0x168                                   
    [   82.687565]  call_timer_fn+0x20/0x78                                         
    [   82.694114]  expire_timers+0xc8/0xf8                                         
    [   82.700609]  run_timer_softirq+0xc4/0x200                                    
    [   82.707501]  __do_softirq+0x114/0x22c                                        
    [   82.714032]  irq_exit+0xac/0xc0                                              
    [   82.720039]  __handle_domain_irq+0x60/0xb0                                   
    [   82.727020]  gic_handle_irq+0x58/0xa8                                        
    [   82.733575]  el1_irq+0xb8/0x140                                              
    [   82.739577]  arch_cpu_idle+0x10/0x18                                         
    [   82.745991]  do_idle+0x1f0/0x2d0                                             
    [   82.752013]  cpu_startup_entry+0x20/0x28                                     
    [   82.758704]  secondary_start_kernel+0x190/0x1d0                              
    [   82.766041] Code: bad PC value                                               
    [   82.771860] ---[ end trace 93be063b060c8efb ]---                             
    [   82.779230] Kernel panic - not syncing: Fatal exception in interrupt         
    [   82.788337] SMP: stopping secondary CPUs                                     
    [   82.794975] Kernel Offset: disabled                                          
    [   82.801130] CPU features: 0x002,20002004                                     
    [   82.807715] Memory Limit: none                                               
    [   82.813392] Rebooting in 10 seconds..   

    kernbel panic in orangepi3 2GB RAM + Emmc, with last build:

    https://dl.armbian.com/orangepi3/nightly/Armbian_5.88.190601_Orangepi3_Debian_stretch_dev_5.1.5.7z

     

     

×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines