FPV Wifi Broadcasting HD Video - Thread zum Raspberry HD Videolink von Befi

Status
Nicht offen für weitere Antworten.
Ich will ja kein Spielverderber sein aber das Band im 2-3 Ghz Bereich ist doch ziemlich ausgereizt, nicht das euch der Partyvan vom Feld holt.

2300-2320Mhz Mobilfunk, Telemetrie
2320-2350Mhz Mobilfunk, Reportagefunk
2320-2400Mhz Amateurfunk, Amateurfunk
2350-2400Mhz Mobilfunk, Militärische Funkanwendungen
2320-2400Mhz nichtnavigatorischer Ortungsfunkdienst, Militärische Funkanwendungen
2333-2400Mhz Mobilfunk, drahtlose Kameras
2347-2385Mhz Mobilfunk, Funkanwendungen der BOS (Borneo Orang-Utan Survival, oder doch Behörden und Organisationen mit Sicherheitsaufgaben?)
2384-2400Mhz Mobilfunk, Reportagefunk
2385-2400Mhz Mobilfunk, drahtlose Kameras

Quelle: http://www.bundesnetzagentur.de/cln_1932/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Frequenzen/Grundlagen/Frequenzplan/frequenzplan.html

Ich denke das man sich da nur mit Amateurlizenz in bestimmten Bereichen rumtreiben darf (dann aber auch mit mehr Leistung). Ich würde erstmal nen geeigneten TV-Stick+Downconverter+GnuRadio besorgen und mich da umschauen bevor ich wild drauf los probier, und/oder mir nen Amateurfunker suchen und den ausquetschen. Vllt wisst ihr ja mehr, ich hab da keine Ahnung von, hab nur auf die Schnelle das gefunden http://blog.cyberexplorer.me/2014/01/sniffing-and-decoding-nrf24l01-and.html
 

moritzz06

Erfahrener Benutzer
Drahtlose Kameras hört sich doch gut an ;)
Meines Wissens gab es mal eine Diskussion analoges FPV im 2,3Ghz Band legal zu nutzen, wenn man einen Gewerbeschein hat. Das werden die hier genannten drahtlosen Kameras sein.

Zum Treiber: ich habe, wie in dem Link beschrieben, die Kanalliste nur ergänzt. Ein Betrieb mit 2,4Ghz ist weiterhin möglich. Positiver Kanal (1-13) bedeutet 2,4Ghz, negativer Kanal (-1 bis -19) 2,3Ghz. Kanal 0 ist fast genau 2,4Ghz
 

moritzz06

Erfahrener Benutzer
Nein nein ;) wenn alles optimal läuft vllt am Wochenende. Aber wird wohl eher nächste Woche.
Der Kernel braucht ja 6-10h um auf dem raspi gebaut zu werden, dann müssen noch ein paar Sachen installiert werden (hostapd ändern und den Ländercode vom WLAN Stick umgehen) und erst dann kann ich wifibroadcast installieren.
Und das wird garantiert nicht reibungslos durchlaufen, wie man sich das wünscht..
Ich melde mich, sobald es läuft :)
 

Seppi

Neuer Benutzer
Ich lese schon eine weile mit und verscuhe derzeit das ganze zum laufen zu bringen, hätte aber folgendes gerne "eingebaut":

mittels schalter würde ich mir gerne aussuchen können ob ich wifibroadcast starte oder ganz normal durchboote und in mein home netzwerk reingelange (da ich einen A+ nutze und nicht immer den einen HDMI fähigen Bildschirm belegen will).

mit wiringpi konnte ich grundsätzlich den Taster abfragen, scheitere aber daran das ganze in die wbcrxc / wbctxd einzubnden. kann es sein, das wiringpi zu dem Zeitpunkt wo wifibroadcast ins laufen anfängt noch nicht initialisiert ist!?
 

moritzz06

Erfahrener Benutzer
Okay, ganz so schnell geht es dann doch noch nicht.
Die negativen Kanäle (oben im Bild die Kanäle 237-255) werden nicht akzeptiert. Bei sudo iw dev wlan0 set channel 237 sagt er "invalid argument" (allgemein bei allen Kanälen außerhalb von den Standard 1-14).

Auf http://yo3iiu.ro/blog/?p=1301 wird ja noch die hostapd.conf geändert, um die geänderten Kanäle zu akzeptieren. Wie ist das in diesem Fall, welchen Dienst muss ich da bearbeiten? Hostapd scheint es ja nicht zu sein (kann ich auch auf dem raspberry nicht finden).

Dann noch eine Frage zum Kernel kopieren:
Reicht es wenn ich einfach die kernel.img Datei kopiere und bei künftigen Installationen die kernel.img ersetze? Oder wird der geänderte ath9k Treiber wo anders gespeichert?
Oder anders gefragt, was muss zur kernel.img alles gesichert und später bei einer neuen raspbian Installation ersetzt werden?
 
um hostapd brauchst du dich normal nicht kümmern, das ist nur ein Accesspoint der im userspace läuft. Hast du die regdb für CN geändert und danach crda neu kompiliert? Das wäre der wahrscheinlichste Kandidat. Der Treiber landet normal in einem Unterverzeichnis in /usr/lib/modules//(kernelversion)/kernel/drivers/net/wireless

edit: btw, gute Arbeit, ich hab für meinen ersten Treiber länger gebraucht und versuche das immer noch zu vermeiden.
 
Zuletzt bearbeitet:

moritzz06

Erfahrener Benutzer
Genau, so hab ich es gemacht. Aber jetzt muss ja neben dem Treiber noch irgendein Dienst gestartet werden (wie im Fall eines AP eben hostapd). Dieser Dienst verweigert momentan die zusätzlichen Kanäle zu akzeptieren..
Müsste das nicht sogar im Code von Befi drin stehen? Der steuert ja vermutlich den WLAN Stick, oder?

In dem genannten Verzeichnis findet sich der geänderte Treiber ath9k meinst Du?

Danke, aber die Hauptarbeit bestand ja nur darin die Dateien zu finden und die beschriebenen patches durchzuführen ;)
 
Ich hatte das glaub ich schon vor ein paar Seiten mal verlinkt https://wireless.wiki.kernel.org/en/developers/regulatory. Die Fehlermeldung sieht so aus als dürftest du die Kanäle nicht benutzen, dafür kommen normal crda oder die crda-Integration im Kernel in Frage. Hast du die regdb geändert bevor oder nachdem du den Kernel kompiliert hast? Alle anderen Dienste dürfen auch nur das was crda erlaubt.

OT: Ich wollte auch nur ein paar Patches einbauen, ich wusste das der Chipsatz Injection kann aber keinen Treiber gefunden der das eingebaut hat. Hab mich eine Woche rumgeärgert, das dann bei Seite geschoben und 2 Monate später mitbekommen das compat-wireless das frisch implementiert hat. Das ist schon ein paar J... oh mein Gott bin ich alt geworden...
 

moritzz06

Erfahrener Benutzer
Genau, das habe ich installiert.
Die Schritte waren:
ath9k Treiber patchen
Kernel kompilieren
wireless-regdb runter laden, db.txt editieren
crda runter laden
Beides kompilieren und installieren

Erst danach wurden die Kanäle nicht mehr als "disabled" markiert und sollten daher zur Benutzung zur Verfügung stehen.
 
wenn crda nicht vorher schon lief, dann ist die Kernelintegration aktiviert, die muss ihre Daten ja auch irgendwoher haben. Wenn du nun erst den Kernel kompiliert und danach erst die regdb geändert hast, dann läuft der noch mit den alten Daten. Du kannst jetzt die Integration deaktivieren oder den Kernel nochmal kompilieren.

https://wireless.wiki.kernel.org/en/developers/regulatory/crda
CONFIG_CFG80211_INTERNAL_REGDB

If you do not want to install CRDA on a host, you can simply enable the CONFIG_CFG80211_INTERNAL_REGDB on your kernel. Once enabled you can place the db.txt from the wireless-regdb into net/wireless/db.txt. The downside to using this option is that you will need to rebuild your kernel for any regulatory updates, therefore using CONFIG_CFG80211_INTERNAL_REGDB is not recommended.

If using CONFIG_CFG80211_INTERNAL_REGDB without updating net/wireless/db.txt you'll end up with the static world regulatory domain, so if using CONFIG_CFG80211_INTERNAL_REGDB you should be sure to update net/wireless/db.txt otherwise you may end up spending a lot of time debugging an issue that does not exist. To help with this a patch has been sent to print a warning when a kernel has been built with CONFIG_CFG80211_INTERNAL_REGDB but the database is emtpy. If you happen to also have CONFIG_CFG80211_REG_DEBUG then compiling of the kernel will simply fail.
Ich hab keine Ahnung ob raspbian das nutzt oder nicht und das mit der Kernelintegration ist auch neu für mich, hab mich da schon ewig nicht mehr mit rumgeärgert. Das hab ich nur auf die Schnelle gefunden, hoffe das hilft.
 

rodizio

Erfahrener Benutzer
Hmm, seltsam, dass es nicht funktioniert. Du könntest mal versuchen nicht das Userspace crda Zeugs zu nehmen, sondern die in den Kernel einkompilieren. Soweit ich das verstanden habe ist das auch einfacher, es muss dazu nur die db.txt irgendwo hin gelegt werden und dann wird die automatisch mit integriert in den Kernel. Damit soll dann alles fest auf die world domain gesetzt sein, d.h. die muss dann anstelle von CN (oder was der stick eben hat) editiert werden.

Ansonsten könntest Du mal versuchen mit sudo strace iw ... versuchen zu schauen, wo der Fehler herkommt bzw. wer da 'invalid argument' liefert.

Achso, blöde Frage, die neu kompilierten Module hast Du auch installiert?


Edit: Oh, Postings haben sich überschnitten, cbl. Hatte genau den gleichen Gedanken :)
 
Zuletzt bearbeitet:
Ich hab grad mal ein frisches raspbian Image eingehängt und nachgeschaut, crda ist standardmäßig nicht installiert, d.h. die Kernelintegration ist auf jeden Fall aktiviert. Das muss deaktiviert werden oder der Kernel muss mit vorher geänderter regdb nochmal kompiliert werden. Ist nur die Frage ob sich das deaktivieren lässt ohne dafür auch den Kernel neu zu bauen.
 

moritzz06

Erfahrener Benutzer
Also wenn ich euch jetzt richtig verstehe, ist momentan noch ein Standard CRDA aktiv und ich muss es erst gegen mein geändertes crda austauschen?
Aber wenn das so wäre, warum werden dann die 2.3Ghz Kanäle nicht mehr als "disabled" markiert? Ich glaube schon, dass das geänderte crda aktiv ist.

Einen neuen Kernel kompilieren würde ich natürlich gerne vermeiden, beim letzten Mal hat es 8h gedauert..

Mit wpa_supplicant kann das nichts zu tun haben, oder?

Edit: andererseits wäre es natürlich praktisch das crda direkt im Kernel zu haben. Gibt es eine Möglichkeit rauszufinden ob es tatsächlich am crda liegt? Dann würde ich den Kernel einfach neu kompilieren..
 
Zuletzt bearbeitet:
Kann man den Kernel nicht auch auf ner potenteren Maschine kompilieren und dann kopieren?
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten