Themabewertung:
  • 3 Bewertung(en) - 3.67 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Ein minimales Internetradio für alte und neue Raspberrys
Hallo Holger,

Du hast Recht chown statt chmod ändert die Besitzrechte! Das ist mir noch gar nicht aufgefallen, das Pimoroni im vlcd da fälschlicherweise chmod drinstehen hat und ich habe den Codeblock auch noch kopiert ohne weiter anzusehen. KopfWand Allerdings führt es so erstmal zu keiner Fehlfunktion des Radios.
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
Ich habe nochmal überlegt

Eine /etc/vlcd/default.m3u  gibt es ja auf jeden Fall. Aber wenn jetzt bei der Ersteinrichtung noch keine Datei in /home/pi/.config/vlc/ existiert und beim nächsten Neustart nur ein Update der Senderlist über USB und nicht per SD erfolgt, bleibt playlist ja für diesen Startvorgang auf /etc/vlcd/default.m3u  stehen.
Erst beim nächsten Neustart erkennt das Skript in Sektion "# Updates on sdcard /boot" das dort eine Senderliste in  /home/pi/.config/vlc/ ist und biegt den Pfadnamen in der Variable um. Wir müssten also nicht wie Du geschrieben hast die Variable auf /etc/vlcd/default.m3u setzen, sondern auf /home/pi/.config/vlc/

Also nicht so wie dein Vorschlag:


Code:
if [ -f /mnt/playlist.m3u ]; then
      sudo mv -f /mnt/playlist.m3u /home/pi/.config/vlc/
      #Zeile gändert alt: sudo chmod -R pi:pi /home/pi/.config/vlc/
      sudo chown -R pi:pi /home/pi/.config/vlc/
      #Zeile eingefügt
      playlist="/etc/vlcd/default.m3u"
fi


sondern:


Code:
if [ -f /mnt/playlist.m3u ]; then
      sudo mv -f /mnt/playlist.m3u /home/pi/.config/vlc/
      #Zeile gändert alt: sudo chmod -R pi:pi /home/pi/.config/vlc/
      sudo chown -R pi:pi /home/pi/.config/vlc/
      #Zeile eingefügt
      playlist="/home/pi/.config/vlc/playlist.m3u"
fi

Nach dem Kopieren wird die Default.m3u ja sowieso für alle Zeiten hinfällig, also warum nochmal auf /etc/vlcd/default.m3u setzen ? Das wäre dann ja sogar falsch.
Gehst Du da mit meinen Überlegungen mit?
Generell würde es sogar ausreichen, wenn die Prüfung auf Vorhandensein der playlist.m3u einmalig und direkt vor dem Start von vlc erfolgt. Dann könnte man die Sache komplett aus allen
vorherigen Bedingungen raus nehmen und so das Skript weiter kürzen. Auch kann man deine Änderung von chmod nach chown komplett verwerfen, wie die gesamte Rechteanpassung, da vlc über rc.local sowieso als root-Prozess startet und damit immer Vollzugriff auf die Datei hat.

Das VLC-loggen in die Datei, welches in deinem geposteten Code drin ist, gibt es in neueren iRadio auch nicht mehr. Es frisst auf Ur-Pies einfach zuviel CPU Leistung.
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
Ich habe jetzt mal die Datei vlcd von Pimoroni mit den Erweiterungen etwas zusammengekürzt und umgestellt Holger.


Code:
#!/usr/bin/env bash

sed -i 's/geteuid/getppid/' /usr/bin/vlc
sudo mkdir -p /var/run/vlcd

# Updates on sdcard /boot
if [ -n $(cat /etc/passwd | grep -w "pi:") ]; then
   sudo chown pi:pi /var/run/vlcd
   if [ -f /boot/playlist.m3u ]; then
       mkdir -p /home/pi/.config/vlc
       sudo mv -f /boot/playlist.m3u /home/pi/.config/vlc/
   fi
fi

if [ -f /boot/wpa_supplicant.conf ]; then
  sudo mv -f /boot/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf
fi

# Updates on usb flash /dev/sda1
sudo mount /dev/sda1 /mnt

if [ -f /mnt/playlist.m3u ]; then
        mkdir -p /home/pi/.config/vlc
       sudo mv -f /mnt/playlist.m3u /home/pi/.config/vlc/
fi

if [ -f /mnt/wpa_supplicant.conf ]; then
  sudo mv -f /mnt/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf
  sudo reboot
fi

if [ -f /home/pi/.config/vlc/playlist.m3u ]; then
       playlist="/home/pi/.config/vlc/playlist.m3u"
else
       playlist="/etc/vlcd/default.m3u"
fi

# Startup vlc
volpref=$(grep "^alsa-gain" ~/.config/vlc/vlcrc)

if [ -z $volpref ]; then
   volpref="alsa-gain 0.065"
fi

/usr/bin/vlc \
--$volpref \
--audio-filter compressor,volnorm \
--norm-buff-size 10 \
--norm-max-level 80.0 \
--norm-max-level -3 \
--compressor-attack 50.0 \
--compressor-release 200.0 \
--compressor-ratio 20.0 \
--compressor-threshold 0.0 \
--compressor-rms-peak 0.0 \
--compressor-knee 1.0 \
--compressor-makeup-gain 0.0 \
--intf dummy \
--extraintf rc:http \
--rc-host 0.0.0.0:9294 --rc-fake-tty \
--http-host 0.0.0.0 --http-port 8080 --http-password raspberry \
--no-quiet \
--daemon \
--pidfile /var/run/vlcd/vlcd.pid \
$playlist


Im Prinzip dürfte die Funktion jetzt komplett in allen vorkommenden Fällen gegeben sein. Leider habe ich keinen Raspberry hier zum Testen, das wird auch noch einige Wochen so bleiben. Vielleicht könnt Ihr das Überprüfen bitte mal übernehmen und alle Update-Szenarien (SD-Karte, USB-FAT32, mit Senderliste, WLAN-Daten) durchspielen? Danke!

Viele Grüße und frohe Festtage
Bernhard
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
Hallo Bernhard,
Du hast völlig Recht, der Pfad nach "/etc/vlcd/default.m3u" ist falsch. Ich wollte
auf  "/home/pi/.config/vlc/playlist.m3u" verweisen, habe aber die falsche Zeile
kopiert.  Blush Manchmal ist es doch besser man schreibt selber....

Die letzte von Dir eingestellte Version sollte alles abdecken.
Ich hatte beim ausprobieren einmal ein Problem mit einem gesetztem Dirty Bit auf
dem USB Stick und deshalb sicherheitshalber ein "sudo umount /dev/sda1" eingefügt.
Aber ich werde in den nächsten Tagen noch ein bisschen damit probieren.

Das vlc Logging habe ich aktiviert, weil vlc bei mir ein Problem mit dem initialen
Öffnen von https Urls's hat. Beim ersten Start des vlc nach einem Systemstart gibt
es immer eine gute Gedenkminute bis der Stream startet. Ursache ist laut Logfile
ein Timeout bei der TLS Initialisierung. Der zweite Versuch klappt dann. Das passiert
immer nur nach einem Neustart des Raspberry.

Hat noch jemand dieses Verhalten festgestellt?

Gruß aus Kiel
Holger
Zitieren
Heute eine neue Version des iRadio.

Download:
.zip   iRadio05012019.zip (Größe: 761,58 KB / Downloads: 23)  


05.01.2019: - Bugfixing Displaydaemone, führendes Leerzeichen in Titel, Sender, .... wurde entfernt, ganze Displayfläche ist nutzbar
                    - Bugfixing/Optimierung des Systemstarts
                    - Auf Wunsch von DL1... und HB9.. , entfernen der Unterstützung zur HF-Aussendung des Internetradioprogramm an 
                      Radioempfänger
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
yep! Smiley32

   
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
Hallo iRadio Bastler,
ich habe auf der Basis von Bernhard's Vorlage den Demon für die Steuerung des 1,8" TFT
erweitert. Vielleicht ist das ja für den einen oder anderen interessant.


.jpg   1.8_SPI_TFT.jpg (Größe: 74,31 KB / Downloads: 416)

Gruß aus Kiel
Holger

Code:
/*
* TFT ST7735 Display Demon for RBF iRadio
*
* Created: 01.01.2019
* Author : HolgerK
*
* Revision: 1.1 05.01.2019
*
*/

#include <stdint.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>

#include "wiringPi.h"
#include "wiringPiSPI.h"

#include "tft_st7735.h"
#include "tft_manager.h"
#include "tft_field.h"
#include <bcm2835.h>

using namespace std;

void rmSubstr(char *str, const char *toRemove); //prototype

int main (void)
{
// set SPI parameter, channel=0, rsPin=24, rstPin=25, speed 32MHz)
TFT_ST7735 tft = *new TFT_ST7735(0, 24, 25, 32000000);  
TFT_manager manager = *new TFT_manager();
// define TFT fields
TFT_field f_title = *new TFT_field (tft, 2, 3, 159, 23, TFT_WHITE, 2, TFT_BLUE, false);
TFT_field f_now = *new TFT_field (tft, 2, 33, 159, 23, TFT_WHITE, 2, TFT_BLUE, false);
TFT_field f_genre = *new TFT_field (tft, 55, 70, 95, 10, TFT_BLACK, 1, TFT_YELLOW, false);
TFT_field f_channelmode = *new TFT_field (tft, 10, 70, 40, 10, TFT_BLACK, 1, TFT_RED, false);
TFT_field f_streamdata = *new TFT_field (tft, 10, 85, 140, 10, TFT_BLACK, 1, TFT_GREEN, false);
TFT_field f_date_time = *new TFT_field (tft, 1, 103, 159, 23, TFT_BLUE, 2, TFT_WHITE, false);

manager.add(&f_title);
manager.add(&f_now);
manager.add(&f_streamdata);
manager.add(&f_genre);
manager.add(&f_channelmode);
manager.add(&f_date_time);

struct tm *datetime;
time_t second;

char title[64], title_old[64], title_buffer[14];
char now[64], now_old[64], now_buffer[64];
char genre[64], genre_old[64];
char bitrate[64], bitrate_old[64];
char samplerate[64], samplerate_old[64];
char channelmode[64], channelmode_old[64];
char streamdata[30], vlc_status[8], vlc_status_old[8];
char date_time[14], date_time_old[14];
char i =0, j =0;

char space[6] ="     ";

FILE *text, *text_now_playing, *text_genre, *text_bitrate, *text_samplerate, *text_channelmode, *text_vlc_status;

wiringPiSetupGpio();       // initialize wiringPi and wiringPiGpio

tft.commonInit();         // initialize SPI and reset display
  tft.initR();               // initialize display

  tft.setRotation(DEGREE_90); // set display rotation
  tft.setBackground(TFT_BLUE); // set background colour
  tft.clearScreen();         // reset Display

  while (1)
{
text = popen("echo \"info\" | nc 127.0.0.1 9294 -N | grep title:", "r"); // open pipe
text_now_playing = popen("echo \"info\" | nc 127.0.0.1 9294 -N | grep now_playing:", "r");
    text_genre = popen("echo \"info\" | nc 127.0.0.1 9294 -N | grep genre:", "r");
    text_bitrate = popen("echo \"info\" | nc 127.0.0.1 9294 -N | grep Bitrate:", "r");
text_samplerate = popen("echo \"info\" | nc 127.0.0.1 9294 -N | grep 'Sample rate':", "r");
text_channelmode = popen("echo \"info\" | nc 127.0.0.1 9294 -N | grep Channels:", "r");
text_vlc_status = popen("echo \"status\" | nc 127.0.0.1 9294 -N | grep state", "r");

    fgets(title, 24, text);
    fgets(now, 64, text_now_playing); // read from stream
strcpy(genre, "   ");
    fgets(genre, 64, text_genre);
strcpy(bitrate, "   ");
    fgets(bitrate, 64, text_bitrate);
strcpy(samplerate, "   ");
fgets(samplerate, 64, text_samplerate);
strcpy(channelmode, "   ");
fgets(channelmode, 64, text_channelmode);
fgets(vlc_status, 64, text_vlc_status);

if (text != NULL) // close pipe
{
    pclose(text);
text = NULL;
}

if (text_now_playing != NULL)
{
  pclose(text_now_playing);
text_now_playing = NULL;
}

if (text_genre != NULL )
{
  pclose(text_genre);
text_genre = NULL;
}

if (text_bitrate != NULL )
{
pclose(text_bitrate);
text_bitrate = NULL;
}

if (text_channelmode != NULL )
{
  pclose(text_channelmode);
text_channelmode = NULL;
}

if (text_samplerate != NULL )
{
  pclose(text_samplerate);
text_samplerate = NULL;
}

if (text_vlc_status != NULL )
{
pclose(text_vlc_status);
text_vlc_status = NULL;
}

    rmSubstr(title,"| title: "); // trim string
    rmSubstr(title,"\r");
   
rmSubstr(now,"| now_playing: ");
rmSubstr(now,"\r");
   
rmSubstr(genre,"| genre: ");
rmSubstr(genre,"\r");

    rmSubstr(bitrate,"| Bitrate: ");
    rmSubstr(bitrate,"\r");

rmSubstr(samplerate,"| Sample rate: ");
    rmSubstr(samplerate,"\r");

rmSubstr(channelmode,"| Channels: ");
    rmSubstr(channelmode,"\r");

rmSubstr(vlc_status,"( state ");
rmSubstr(vlc_status," )\r");

    title[13] = '\0'; // set string end
    now[30] = '\0';
now_buffer[13] = '\0';
    genre[19] = '\0';
    bitrate[20] = '\0';
samplerate[20] = '\0';
channelmode[20] = '\0';
vlc_status[8] = '\0';

    if(strlen(title) <14) // strip \r if title is short
{
title[strlen(title)-1] ='\0';
}

    now[strlen(now)-1]='\0'; // set string end
    genre[strlen(genre)-1]='\0';
    bitrate[strlen(bitrate)-1]='\0';
samplerate[strlen(samplerate)-1]='\0';
channelmode[strlen(channelmode)-1]='\0';
vlc_status[strlen(vlc_status)-1]='\0';


if ((strcmp(vlc_status, "playing") ==0) ||(strcmp(vlc_status, "paused") ==0))
{
if ((strcmp(title,title_old) !=0) ||(strcmp(now,now_old)!=0))
{
strncpy(title_buffer, space,(13-strlen(title)) /2); // center title
title_buffer[((13-strlen(title)) /2)]='\0';
strcat(title_buffer, title);
f_title.setValue(title_buffer); // show title
strcpy(title_old,title);
tft.drawHorizontalLine(2, 28, 156, TFT_WHITE);

}

if (strcmp(now,now_old)!=0) // clear now if changed
{
i =0;
now_buffer[0] = '\0';
}
 
if (strcmp(genre,genre_old)!=0) // show genre
{
f_genre.setValue(genre);
strcpy(genre_old,genre);
}

if (strcmp(channelmode,channelmode_old)!=0) // show channelmode
{
f_channelmode.setValue(channelmode);
strcpy(channelmode_old,channelmode);
}
// format + show streamdata
if ((strcmp(bitrate,bitrate_old)!=0) ||(strcmp(samplerate,samplerate_old)!=0))
{
strcpy(streamdata,bitrate);
strcat(streamdata," @");
strcat(streamdata, samplerate);
f_streamdata.setValue(streamdata);
strcpy(bitrate_old,bitrate);
strcpy(samplerate_old,samplerate);
}
if (strcmp(vlc_status, "playing") ==0)
{
if (strlen(now) >13) // scroll now
{
for (j=0; j< 13; j++)
{
now_buffer[j] = now[j +i];
}
i++;
if (i >(strlen(now) -11)) i =0;
}
else strcpy(now_buffer, now); // show now


f_now.setValue(now_buffer);

strcpy(now_old,now);
strcpy(vlc_status_old,vlc_status);
}
else if (strcmp(vlc_status, "paused") ==0) // vlc paused
{
f_now.setValue(" vlc paused");
strcpy(vlc_status_old,vlc_status);
}

}
else if (strcmp(vlc_status, "stopped") ==0) // vlc stopped
{

f_now.setValue(" vlc stopped");
f_title.setValue("            ");
strcpy(title_old,title);
f_genre.setValue(genre);
strcpy(genre_old,genre);
f_channelmode.setValue(channelmode);
strcpy(channelmode_old,channelmode);
f_streamdata.setValue(streamdata);
strcpy(bitrate_old,bitrate);
strcpy(samplerate_old,samplerate);
strcpy(vlc_status_old,vlc_status);
}
time(&second); // get date + time
datetime = localtime(&second);
strftime(date_time, 14,"%d.%m.  %H:%M",datetime);

if (strcmp(date_time, date_time_old) !=0) // show date + time
f_date_time.setValue(date_time);
strcpy(date_time_old, date_time);

manager.refresh();


    delay(500);
}
}

void rmSubstr(char *str, const char *toRemove)
{
   size_t length = strlen(toRemove);
   while((str = strstr(str, toRemove)))
   {
       memmove(str, str + length, 1 + strlen(str + length));
   }
}
Zitieren
Wunderbar! So habe ich mir das vorgestellt mir Euren Erweiterungen! Vielleicht könnt Ihr Eure Änderungen alle in Form eines Patches für das iRadio hochladen? Vielleicht als Zip-Datei, mit der gleichen Ordnerstruktur, aber nur der veränderten Datei(en).

In deinem Fall Holger also ein gezippter iRadio-Ordner in dem nur folgendes drin ist.

/iRadio
--------- display
---------- st7735
---------- displayd
---------- displayd.c

Wenn am Buildscript "build.sh" noch etwas verändert werden muss, dann auch eine aktuelle Version von build.sh hinzufügen.

So kann sich jeder Bastler schnell sein eigenes Radio zusammenstellen, erst das Basis iRadio runterladen, dann die gewünschte Erweiterung aussuchen und die Basisversion damit patchen.

Macht weiter so!
Bernhard
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
kann mir mal grad jemand einen Tipp geben? Bei jeder neuen Installation stolpere ich über diese Meldung bei der install.sh und bei den Display-Installern:


.jpg   fehler1.JPG (Größe: 52,1 KB / Downloads: 404)


.jpg   fehler2.JPG (Größe: 64,45 KB / Downloads: 404)
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
die Bibliothek existiert:


.jpg   fehler3.JPG (Größe: 47,77 KB / Downloads: 417)
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
Hallo Jupp,
stimmen die Rechte im Ordner ~/bcm2835-1.57 ?

Gruß aus Kiel
Holger
Zitieren
Hallo iRadio Bastler,
ich habe dem Demon für die Steuerung des ST7735 TFT noch um eine Volume
Anzeige erweitert.


.jpg   1.8_SPI_TFT.jpg (Größe: 114,32 KB / Downloads: 403)

Den Quelltext gibt es diesmal, wie von Bernhard vorgeschagen, als ZIP File zum
Patchen der original iRadio Installation.


.zip   190106-HolgerK_iRadio_Display_TFT-st7735.zip (Größe: 10,3 KB / Downloads: 25)

Gruß aus Kiel
Holger
Zitieren
(06.01.2019, 18:12)HolgerK schrieb: Hallo Jupp,
stimmen die Rechte im Ordner ~/bcm2835-1.57 ?

Gruß aus Kiel
Holger

ich hab wieder von vorne angefangen. Diesmal hab ich FileZilla installiert und den iRadio-Ordner damit übertragen. Daraufhin fehlten die Ausführrechte der Install-Scripte. Die hab ich mit chmod +x wieder hinzugefügt. Die werden dann noch an mehreren Stellen fehlen:


.jpg   fehler4.JPG (Größe: 57,07 KB / Downloads: 387)

das Problem liegt demnach weiter vorne, vermutlich gehen beim Entzippen von iRadio schon die Dateiattribute verloren
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
Eigentlich sollte ein sudo unzip iRadio_xyz.zip im Homeverzeichnis des Standardnutzers "pi" ausreichen um alle Dateien drüberspielen zu können, gleiches sollte für den Patch auch ausreichen. Da die Skripte sowieso root-Rechte brauchen dürfte es keine Zugriffsprobleme geben, lediglich die Shellscripte müssen als ausführbar markiert sein. Aber das sind sie auch direkt nach dem Auspacken hier, ich hoffe ich habe das Archiv oben nicht falsch erstellt. Nutze hier einen anderen Rechner als bei den vorherigen iRadio-Archiven, aber die Handschritte zum Packen des Archivs waren die gleichen wie daheim!
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
sorry, die Installation gelingt mir nicht mehr. Die zip hab ich mit 7zip mit gesetztem Parameter "Dateiattribute wiederherstellen" direkt auf die SD-Card nach /boot entpackt. Immer noch die gleiche Meldung mit der bcm2835.h.
Ich weis jetzt nur noch 2 Möglichkeiten. Entweder unter raspbian entzippen damit kein Windows reinfummelt oder die SD-Card ganz von vorne wieder neu mit raspbian bespielen. Vielleicht stimmt ja was grundsätzliches nicht.
Ich melde mich wieder zurück wenn es was neues gibt.
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
danke Bernhard, ich habe noch nicht gelesen dass das Entpacken unter Raspbian stattfinden sollte. Die flags sehen jetzt ganz anders aus und die Installation läuft wieder fehlerlos durch.


.jpg   fehler5.JPG (Größe: 123,44 KB / Downloads: 378)

auch benutze ich jetzt nicht mehr Win32DiskImager zum Aufspielen des Images, sondern Etcher. Dieses soll die SD-Karte vor dem Schreibvorgang formatieren, das erspart voraussichtlich das Gefummel mit DiskPart.

Und noch eine Kleinigkeit hab ich gelernt. Wenn man auf /boot eine leere Datei mit dem Namen SSH anlegt aktiviert sich automatisch SSH beim ersten Start von Raspbian. Man kommt also ganz ohne Tastatur und Monitor am raspberry aus.

PS: und noch was. Man muss putty nach einem reboot nicht mehr neu starten wenn man mit der rechten Maustaste auf den oberen blauen Balken des Terminal-Fensters klickt und dann auf "Restart Session".
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
Hallo Jupp,

für das Aufspielen gibt es eigentlich viele Möglichkeiten. Ich nehme dazu auf dem Unix-Rechner den MidnightCommander. Links liegt das lokale Entwicklungsverzeichnis und rechts mache ich über das Auswahlmenü eine Shellverbindung. Da trägt man dann nur noch IP/Nutzernamen ein und nach der Passwortabfrage ist dann auf der rechten Seite das entferne Dateisystem vom Raspberry zu sehen. Dann kopiere ich einfach die Zip vom iRadio aus dem linken Fenster (lokale Dateisystem) ins rechte Fenster (fernes Dateisystem). Entpacken tue ich das Archiv danach über SSH per unzip-Kommando. Verpflichtend ist meine Vorgehensweise aber nicht, denn wie gesagt gibt es unzählige Möglichkeiten.

Oben in deinem Screenshot haben jetzt alle Dateien die Rechte "777", also jeder Nutzer kann alles damit machen, aber was soll es, das Radio wird ja sicher nicht(!) mit den Standardpasswörtern öffentlich im Internet hängen, von daher denke ich dürfte das kein Problem darstellen. Ändern kann man das ja immer noch wenn man will.

Ja das mit der leeren Datei und SSH habe ich auch schon gehört, aber ehrlich gesagt bringt es doch nicht viel auf einer Standardinstallation, denn die WLAN Zugangsdaten sind nach der Linuxinstallation ja erst einmal unbekannt. Diese Zugangsdaten müsste man bei einem Standard-Raspbian also dennoch einmalig per Tastatur und Monitor eingeben. Erst nach der Installation von iRadio kann man die WLAN-Zugangsdaten (und auch die Senderliste) bequem von /boot oder über einen FAT32-USB Stick beim Systemstart einspielen lassen und braucht keine Tastatur/Monitor mehr.
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
(06.01.2019, 22:41)Bernhard45 schrieb: ..aber ehrlich gesagt bringt es doch nicht viel auf einer Standardinstallation, denn die WLAN Zugangsdaten sind nach der Linuxinstallation ja erst einmal unbekannt..

eben nicht! Ich weis nicht seit welcher Version von raspbian stretch das so ist, aber ganz ohne iRadio schnappt sich raspbian beim ersten Start bereits die wpa_supplicant.conf in /boot. Man kann sie also zusammen mit der SSH-Datei bereits direkt nach dem imaging aufkopieren.
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
(06.01.2019, 22:41)Bernhard45 schrieb: ..Oben in deinem Screenshot haben jetzt alle Dateien die Rechte "777", also jeder Nutzer kann alles damit machen..

ich hab keine Ahnung warum das so ist. Die zip wird ja unverändert nach ~ geladen und dann erst mit unzip entpackt. Und dann sehen die Dateien halt so aus wie auf dem Bild.
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
Hallo Jupp,
das Problem mit den fehlenden Unix Dateirechten tritt immer dann auf, wenn das ZIP-Archiv auf einer
Windows Maschine entpackt wurde. Von Windows aus, deshalb immer das ZIP-Archiv auf den
Raspberry kopieren und dort mit unzip... entpacken. Dann bleiben, zumindest bei mir, die Dateirechte erhalten.


Gruß aus Kiel
Holger
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Neue Erfahrungen mit FL2K und AM Stereo/Mono Semir 2 252 20.03.2024, 22:40
Letzter Beitrag: Semir
  Huth E72 Internetradio mit ESP32 saarfranzose 10 1.780 12.05.2023, 14:49
Letzter Beitrag: saarfranzose
  Ein Internetradio Bausatz von PIMORONI Bernhard45 200 81.533 06.06.2022, 19:17
Letzter Beitrag: Reparateur
  Stereo Decoder fuer alte Radios- Export radio-volker 4 1.395 08.03.2022, 19:30
Letzter Beitrag: radio-volker
  Dementia III ESP32 Internetradio mit Simulation saarfranzose 9 2.805 21.01.2022, 23:14
Letzter Beitrag: saarfranzose

Gehe zu: