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

Status
Nicht offen für weitere Antworten.
Just like tomm says (google translate help :) )

raspivid had support for 3d stereoscopic SBS or TB, im using something like ..... raspivid -w 1208 -h 480 -3d sbs ....... so the TX is sending only one stream with the two cameras.

later in RX i use a gstreamer pipeline which basically take the input duplicate and crop the area for each eye.
 

DerKlotz74

Erfahrener Benutzer
So, nun hab ich den HD Stream auch endlich an zwei Pi2 B am Laufen...
Wo muss ich jetzt ansetzen, um Diversity zu aktivieren? Seh bestimmt den Wald vor lauter Bäumen nicht mehr
 

action

Erfahrener Benutzer
Schau mal die Posts von ronaldofpv an, bei seinem script erkennt es sogar ob und wieviele Sticks eingesteckt sind. Bei mir funktioniert es nur mit diversity z.B

Wenn mal nur ein Stick dran ist gehts nicht, er wiederum hat es plug and play konfiguriert.

Gruss
 

DerKlotz74

Erfahrener Benutzer
Schau mal die Posts von ronaldofpv an, bei seinem script erkennt es sogar ob und wieviele Sticks eingesteckt sind. Bei mir funktioniert es nur mit diversity z.B

Wenn mal nur ein Stick dran ist gehts nicht, er wiederum hat es plug and play konfiguriert.

Gruss
Ich hätte einfach mal den zweiten TP anschliessen sollen. In den neuesten Dateien von Befi ist schon alles drin.

Jetzt würde ich gerne nur noch den 2,3GHz Patch für meinen Pi2 b haben. Ich hoffe moritzz06 schreibt bald mal ne kleine Anleitung wie er den Patch für seinen Pi gemacht hat ;)
 

moritzz06

Erfahrener Benutzer
Anleitung 2.3Ghz Kernel kompilieren

So, dann will ich mal nachholen, was schon längst überfällig ist. Zu meiner Entschuldigung, es ist einfach kein Bastelwetter ;)

Was muss gemacht werden?
-Kernel sourcen downloaden
-ath9k Treiber durch den modifizierten ersetzen
-kompilieren
-crda und regdb installieren (schwierig)

Der wichtigste Link: http://yo3iiu.ro/blog/?p=1301
Hier ist alles beschrieben was zu tun ist, im Prinzip schon das HowTo das ich hier schreibe.

Für die Ubuntu Leute: Im Prinzip müsst ihr auch nur den ath9k Treiber ersetzen und dann kompilieren etc. Wie das funktioniert müsst ihr aber selber rausfinden, ich kann nur den Treiber zur Verfügung stellen.

1.) Alles zum kompilieren vorbereiten:

https://www.raspberrypi.org/documentation/linux/kernel/building.md
Dort ist alles beschrieben, mit einer Ausnahme: Wir müssen den Treiber noch austauschen.
Also erst mal alles runter laden,
Code:
$ git clone --depth=1 https://github.com/raspberrypi/linux
$ sudo apt-get install bc
Jetzt den Treiber austauschen. Ich habe das mit filezilla gemacht, damit kann man über eine SSH Verbindung die Ordnerstruktur anzeigen lassen und wie in Windows durchstöbern, löschen etc.
http://www.chip.de/downloads/FileZilla_13011076.html

Dort muss jetzt der Treiber in dem eben runtergeladenen linux Paket gesucht werden. Ihr findet den Treiber unter:
linux/drivers/net/wireless/ath/

Dort den Ordner löschen und durch meinen ersetzen. Ihr könnt ihn hier runter laden:
https://www.dropbox.com/sh/0k8l3v4f95upatx/AAAw6nEjAfUzTPj8cakGFesBa?dl=0

Jetzt könnt Ihr der Anleitung oben weiter folgen und den Kernel kompilieren.
Dazu sei noch angemerkt, die nervige CRDA/wireless-regdb kann umgangen werden, indem man es fest einkompiliert. Ich habe einen Versuch gemacht, der ist aber gescheitert. Scheinbar an einer falschen Formattierung der db.txt . Es sollte machbar sein, und wer Ausdauer und Zeit hat vllt. 2-3mal zu kompilieren ist das sicher eine Option. Nachteil: Für eine Änderung (bspw. Kanäle im 2,5Ghz Band) muss alles neu kompiliert werden. Aber dazu wäre auch wieder eine Treiber anpassung nötig, also muss sowieso neu kompiliert werden.

2.) CRDA und wireless-regdb

Um die Erlaubnis von Linux zu bekommen, in Deutschland auf 2.3Ghz zu senden (hier noch mal der Hinweis: 2.3Ghz ist kein legales Frequenzband! Jeder ist selber für sein Handeln verantwortlich, ich hafte nicht für Schäden jeglicher Art!) müssen wir eine Datenbank anlegen die Linux sagt es ist alles in Ordnung.
Dazu ist hier viel geschrieben:
https://wireless.wiki.kernel.org/en/developers/regulatory/crda

Und google hilft auch.
Leider kann ich hier keine genaue Anleitung geben, da ich das nur durch Try and Error geschafft habe. Ich helfe aber gerne wenn ihr so weit gekommen seid.
Dort ist auch beschrieben was gemacht werden muss um alles direkt mit zu kompilieren. Einfach die db.txt linux/net/wireless ablegen: "Once enabled you can place the db.txt from the wireless-regdb into net/wireless/db.txt. "

In der db.txt muss dann der Frequenzbereich angepasst werden. Ich bin mir nicht ganz sicher ob in China oder in Global, also am besten beides mal anpassen. Einfach den Bereich von 2402-2482Mhz zu 2302-2482Mhz ändern (siehe Link ganz oben, da steht auch noch mal alles zu crda).

Wer es versucht CRDA nach kompilieren des Kernel zu installieren, hier mal ein roter Faden:
https://wiki.debianforum.de/Ausländische_WLan-Karte_mit_deutschen_Kanälen_betreiben
Hier sind die Sourcen nicht mehr die richtigen, die lassen sich hier finden:

wireless-regdb: http://kernel.org/pub/software/network/wireless-regdb/
CRDA: http://www.kernel.org/pub/software/network/crda/

Da die neuesten Versionen raussuchen und alles nach dem Link im debianforum ausführen. Sollte das geklappt haben (bin mir nicht mehr sicher aber sollte sonst vollständig gewesen sein), dann muss noch ein userspace aktiviert werden:
https://wireless.wiki.kernel.org/en/developers/regulatory/crda
Unter Punkt "Letting the Kernel call CRDA".
Einfach die Beispieldatei verwenden.



Wie gesagt, CRDA ist ein bisschen tricky. Aber einfach mal einen Abend Zeit nehmen, die verlinkten Seiten als Anhaltspunkt nutzen und bei Fragen kriegen wir das auch hin.

Und natürlich nicht vergessen den fertigen Kernel hochzuladen :)


EDIT: Eins noch: Kompilieren auf dem Raspberry (zumindest auf dem 1er) dauert 8-10h. Also am besten abends starten und am nächsten morgen freuen :) Wenn ihr es nicht über SSH sondern direkt am Pi mit einer Tastatur startet, könnt ihr auch am nächsten morgen noch schauen ob es Erfolg hatte, die SSH Session wird irgendwann geschlossen.
 
Zuletzt bearbeitet:

moritzz06

Erfahrener Benutzer
@DerKlotz74: Du hattest mich gerufen? ;P


War heute tatsächlich mal die 2.3Ghz Übertragung testen. Bei Kanal -7 hatte ich starke Störungen, bei Kanal -14 war es tatsächlich fliegbar, aber leider nur ca. 150-200m weit.

Jetzt würden mich mal eure Erfahrungen interessieren. Wie weit kommt ihr nur mit Cloverleaf/Skewplanar? Gut möglich dass meine einfach nicht der Knaller sind..

Kann es sein, dass starke Vibrationen auch Artefakte verursachen? Hatte das Gefühl gerade bei Abstiegen mit Vibrationen verstärkt Artefakte zu haben.

Wenn jemand für 2.3Ghz Antennen baut, egal ob Helix oder Schaumschläger, wäre es super wenn er mir eine mit bauen könnte :) Einfach mal eine PN schreiben, würde mich freuen :)

Ich werde wohl erst mal ein bisschen mit lesen, habe zu wenig Zeit das ganze noch mal ordentlich aufzubauen und weiter zu testen.
Im Herbst dann, dann passt das Wetter auch wieder zum basteln ;)
 

DerKlotz74

Erfahrener Benutzer
@DerKlotz74: Du hattest mich gerufen? ;P
Stimmt, hatte ich :D. Hört sich für mich als Linux Noob erstmal schwierig an. Da hilft aber sicher mein Durchhaltevermögen und ich bin so frech und werde dich bestimmt das ein oder andere mal per PN anschreiben.

Am Ende kommt dann bestimmt das Pi2 Image bei raus...
 

tomm

Erfahrener Benutzer
@moritzz06
irgendwie will das bei mir mit deinem image nicht funktionieren.
ich hab mal noch ifplugd deinstalliert und die konfiguration von wlan0 + wlan1 in /etc/network/interfaces auskommentiert, sonst hat mir immer der wpa_supplicant noch dazwischengefunkt, jetzt hab ich aber immer noch folgenden effekt.
Code:
root@raspberrypi:~# ifconfig wlan0 down
root@raspberrypi:~# iw dev wlan0 set monitor otherbss fcsfail
root@raspberrypi:~# ifconfig wlan0 up
root@raspberrypi:~# iwconfig wlan0
wlan0     IEEE 802.11bgn  Mode:Monitor  Frequency:2.312 GHz  Tx-Power=20 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:off

root@raspberrypi:~# iw wlan0 info
Interface wlan0
        ifindex 7
        type monitor
        wiphy 3
root@raspberrypi:~# iw dev wlan0 set channel -10
root@raspberrypi:~# iwconfig wlan0
wlan0     IEEE 802.11bgn  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off

root@raspberrypi:~# iw wlan0 info
Interface wlan0
        ifindex 8
        type managed
        wiphy 4
karte lässt sich in den monitormode schalten. startet dann auch defaultmässig auf kanal -19 / 2.312 GHz.
sobald ich dann aber einen kanalwechsel mache, wird der monitormode beendet und die karte läuft wieder auf managed mode. außerdem erhöht sich der index des phy (wireless device).
und an der stelle hänge ich und komme nicht weiter. hast du/ihr eine idee?
 
Klingt nach zu wenig Strom am usb-bus. Dann resetet die karte und taucht als Neue wieder auf.
 

tomm

Erfahrener Benutzer
moritzz06
In wie fern hat denn WLAN supplicant dazwischen gefunkt?
ich hab immer ein device busy bekommen, wenn ich in den monitormode gehen wollte.
und in den laufenden prozessen tauchte dann immer wpa_supplicant auf. hab dann den prozess gekillt, nach dem nächsten versuch den kanal zu wechseln war es dann aber wieder da.

wie auch immer, ich habs jetzt nochmal komplett neu aufgesetzt auf basis von einem netinstall raspbian.
den gepatchten ath9k_htc kann man übrigens auch ohne vollständiges neukompilieren des kernels generieren.
mit den kernel backports kann man nur den treiber gegen den laufenden kernel kompilieren.
dauert dann auf dem raspi nur ca 20 min. hab dann auch gleich die max_txpower auf 30db gepatcht.
mal schauen, ob's was bringt.
grundsätzlich läuft es zumindest. jetzt geht es dann mal ans parameter ausprobieren, wenn ich wieder zeit finde.
momentan komm ich noch auf ca 180ms latenz mit einem ubuntu-pc als gegenstelle.

zumindest ist das ganze momentan sehr schlank. auch inkl. der kernel headers und der backport sourcen für die wireless treiber hat das system nur 850mb.
 
So, ich habe es endlich geschafft einen raspberry pi A+ mit dem TP-Link TL-WN722N auf der TX-Seite und einem TP-Link TL-WN722N an einem Ubuntu-PC RX zum laufen zu bringen. Momentan bin ich bei rund 250ms.

Meine Turnigy i6 grätscht mir jedoch heftig dazwischen. Hat schon jemand es geschafft ein Ubuntu für 2,3Ghz umzurüsten? Ich scheitere da mit meinen Linux Kenntnissen gnadenlos.

Alternativ in diesem Kontext: Welche Frequenzen sind für RC-Anlangen überhaupt in Deutschland noch zulässig / Sinnvoll für einen Kopter nutzbar? 433Mhz seit Ende 2008 nicht mehr, richtig? Gibt es Alternativen?

viele Grüße
 

just_different

Erfahrener Benutzer
Kann es sein, dass starke Vibrationen auch Artefakte verursachen? Hatte das Gefühl gerade bei Abstiegen mit Vibrationen verstärkt Artefakte zu haben.

Wenn jemand für 2.3Ghz Antennen baut, egal ob Helix oder Schaumschläger, wäre es super wenn er mir eine mit bauen könnte :) Einfach mal eine PN schreiben, würde mich freuen :)
@Motizz06: Also das mit den Antennen, da schaue ich mal, hatte vor, mit ein Paar Cloverleaf/Skewplanar für das 2.3GHz Band zu machen. Wenn, dann mache ich Dir mal welche mit.

Ich habe auch gemerkt, das starke Vibrationen durchaus auch im Bild zu sehen sind, und ich meine nicht das "wackeln" der CAM, die ist gedämpft aufgehangen. Die Vibrationen treten bei mir auch bei Abwärts / "Bremsen" oder auch beim auf der Stelle drehen auf.
Ich überlege allerdings den PI irgendwie mit Gel-Pads auf den Copter zu bringen. Aber erst, wenn ich die Technik fest im Griff habe und den PI nicht mehr runter nehmen muss.

--------

Hmm, es wurde doch mal über ein 6" Display mit 2550x1440Pixel berichtet und es kostete vor einigen Wochen angeblich rund 100$.
Ich habe jetzt mal eine expliziete Anfrage dazu gestellt und bin über den Preis nicht sehr erfreut. Es soll jetzt direkt beim Hersteller 200$ kosten.
 

moritzz06

Erfahrener Benutzer
@tomm: hast Du ein paar mehr Infos zu den Backports? Das wurde schon mal angesprochen, aber ich hatte nicht verstanden wie ich das für den Zweck nutzen sollte..

@schluff: 433Mhz mit 10mW sollte legal sein..
Vielleicht wären die Backports ja auch eine Möglichkeit den Treiber unter ubuntu zum Laufen zu bringen?

@just_different: Das wäre super :) können wir ja über PN klären. Hast Du schon über Helix nachgedacht?
 

tomm

Erfahrener Benutzer
schluff81
Hat schon jemand es geschafft ein Ubuntu für 2,3Ghz umzurüsten?
ja. wie gestern geschrieben, läuft das bei mir jetzt. ich schau mal gleich noch, ob ich das quick and dirty aus der bash_history noch zusammenkopieren kann. für grosse erklärungen wirds aber nicht reichen, dafür bin ich heute zu bedient.

moritzz06
hast Du ein paar mehr Infos zu den Backports?
so wie ich das verstehe, gibt es die, um eben auf produktiv systemen bei bedarf mal einen aktuellen hardwaretreiber / netzwerkstack / protokoll nachzuinstallieren. der laufende kernel bleibt der orginale, der zur distri gehört und nur die benötigten module werden erneuert und gegen den kernel kompiliert.
gib es übrigens nicht nur für kernel treiber sonderen auch für anwendungen. ich benutze zum beidpiel nur ubuntu lts oder debian stable. gerade debian lief früher oft viele jahre bis zum nächsten major stable upgrade. da kommt dann in der zwischenzeit schon die ein oder andere wichtige neuerung, die man einsetzen möchte aber das stabile produktivsystem nicht grundsätzlich ändern will. und dafür gibt es dann eben die backports.
so genug geschwafelt, ich schau mal schnell in die bash_history.
 

tomm

Erfahrener Benutzer
so, hoffen wir mal, dass ich alles wichtige kopiert habe, ganz so reibungslos steht es dann in meiner history auch nicht drin :)
Code:
apt-get install build-essential linux-headers-rpi-rpfv libpcap-dev python-m2crypto  libnl-dev libgcrypt11-dev 
wget https://www.kernel.org/pub/linux/kernel/projects/backports/stable/v4.1.1/backports-4.1.1-1.tar.xz
wget https://www.kernel.org/pub/software/network/crda/crda-3.18.tar.xz
wget https://www.kernel.org/pub/software/network/wireless-regdb/wireless-regdb-2015.04.06.tar.xz
wget https://kernel.org/pub/software/network/iw/iw-3.10.tar.xz
tar xvf backports-4.1.1-1.tar.xz
tar xvf crda-3.18.tar.xz
tar xvf wireless-regdb-2015.04.06.tar.xz
tar xvf iw-3.10.tar.xz
tar atheros_2.3GHz_patch.tgz
cd  backports-4.1.1-1 
cat ../atheros_2.3GHz_patch/*|patch --verbose -p1
make defconfig-ath9k
make
make install
cd ../wireless-regdb-2015.04.06
nano Makefile
nano db.txt 
make
make install
cd ../crda-3.18
cp ../wireless-regdb-2015.04.06/root.key.pub.pem pubkeys/
nano Makefile
make
make install
cd ..
regdbdump /lib/crda/regulatory.bin
cd iw-3.10
nano Makefile 
make
make install

reboot

iw reg get
iw list
modinfo ath9k_htc
die patches für die aktuellen ath9k_htc treiber für 2.3 ghz sind hier drin.
Anhang anzeigen atheros_2.3GHz_patch.tgz.txt
endung .txt wieder wegmachen, sonst hätte ich es nicht hochladen können. ist ein tgz-archiv, taucht oben in der befehlsliste auch beim entpacken auf.
die zeile apt-get, bei der unter anderem die kernel-header installiert werden muss evtl angepasst werden. die bezeichnung ist je nach system (ubuntu, debian, raspi) unterschiedlich.
wichtig ist, dass es die header des aktuell laufenden kernel sind. also mit uname -r sicherheitshalber nochmal prüfen, was mit apt-get installiert wird.
übrigens alles als user root ausführen, mich nervt das ewige sudo, also
voher noch ein
Code:
su - root
und dran denken, das das zeug dann alles im verzeichnis vom user root landet, wenn man es mal sucht.
was ich jetzt bei der texteditieren (befehl nano) jeweils gemacht hab, mag ich jetzt nicht mehr alles rauskramen.
im prinzip in der db.txt die regeln für das land CN auf 2.3 mhz anpassen, wenn man mag noch auf 30 db sendeleistung gehen. wer's nicht selber findet, anleitung steht auch in den links von moritzz06.
und bei den Makefiles die installationspfade so anpassen, dass sie identlich zu den pfaden sind, wo die dateien bereits bereits auf dem system vorhanden sind, die ihr überschreibt. meistens den prefix vor den libs und bin pfaden löschen.
iw hab ich übrigens auch ein neues kompilieren müssen, sonst hatte ich immer probleme beim setzen eines negativen kanals. da ist wichtig, nicht das neueste iw zu nehmen, mit 3.10 funktionierts bei mir.
nach dem reboot sollte es passen. die befehle danach sind zum prüfen, ob es geklappt hat.
der ablauf ist für raspi und desktop linux übrigens identisch, wie gesagt nur die kernel-header heissen unterschiedlich. wer auf seinem raspi bereits ein rpi-update gemacht hat, hat meineswissen übrigens pech. für den dann neuen kernel gibt es die header nicht als deb-package. da kann man dann nur die kompletten sourcen über rpi-source runterladen.
ist jetzt doch ein bischen mehr text geworden, ich hab aber auch einen kompletten tag dafür gebraucht / dazugelernt.
viel erfolg
 
Zuletzt bearbeitet:

just_different

Erfahrener Benutzer
@tomm: bei mir geht es schon damit los, dass ich auf einem Ubuntu Probleme habe, die build-essentials zu installieren, weil sich das mit anderen Installationen beißt.
Dabei ist es egal, ob ich (14.04.3) Xubuntu, Gnome-Ubuntu, oder das normale Std. Ubuntu nehme. Was muss ich deinstallieren, damit das schon mal klappt?
Hattest Du nicht diese Probleme?
 

moritzz06

Erfahrener Benutzer
Mach mal vorher ein Update, also apt-get update. Das hat schon oft geholfen ;)

P.S.: werde die PN erst nach dem Wochenende beantworten können, sorry
 

just_different

Erfahrener Benutzer
Im Moment hänge ich noch bei dem Stick, weil der keine Änderungen speichert (also nicht persistent).

Doch leider wollen so manche Anleitungen für einen persistenten Stick nicht so recht klappen.

Mal schauen, ob ich das hin bekomme.
 
Hallo Tomm, hallo Moritzz06,

Ich habe einen alten Laptop mit dem TP-Link ausgestattet und ein frisches UBUNTU installiert.

Wenn ich mich strikt an die Anleitung hier https://befinitiv.wordpress.com/wifibroadcast-analog-like-transmission-of-live-video-data/ halte kann ich ohne Probleme auf 2,4 GHz empfangen.

Ich beiße mir allerdings noch die Zähne an der 2,3 GHz Variante aus. Ich schaffe es momentan die Channel Liste um die 2,3 GHz Frequenzen zu erweitern aber dummerweise sind diese "Disabled". Ich habe irgendwie noch Probleme den atheros_2.3GHz_patch zu implementieren.

So ist in etwa mein Stand nach der Befehlsliste von Tomm:

(Grün "geht", Gelb "glaube es geht", Rot "irgendwie falsch")

apt-get install build-essential linux-headers-rpi-rpfv libpcap-dev python-m2crypto libnl-dev libgcrypt11-dev

ACHTUNG! build-essential nicht essentialS (wie von Tomm gepostet)

wget https://www.kernel.org/pub/linux/ker...4.1.1-1.tar.xz
wget https://www.kernel.org/pub/software/...da-3.18.tar.xz
wget https://www.kernel.org/pub/software/...5.04.06.tar.xz
wget https://kernel.org/pub/software/netw...iw-3.10.tar.xz
tar xvf backports-4.1.1-1.tar.xz
tar xvf crda-3.18.tar.xz
tar xvf wireless-regdb-2015.04.06.tar.xz
tar xvf iw-3.10.tar.xz
tar atheros_2.3GHz_patch.tgz
cd backports-4.1.1-1
cat ../atheros_2.3GHz_patch/*|patch --verbose -p1
make defconfig-ath9k
make
make install
cd ../wireless-regdb-2015.04.06

nano Makefile

Bin mir hier mit den Pfanden in der Makefile einfach nicht sicher... Kenne mich einfach zu wenig mit Linux aus - Kann mich hier jemand unterstützen???:/

nano db.txt
make
make install
cd ../crda-3.18
cp ../wireless-regdb-2015.04.06/root.key.pub.pem pubkeys/

nano Makefile
make
make install


Selbes Problem...

cd ..
regdbdump /lib/crda/regulatory.bin
cd iw-3.10

nano Makefile

Selbes Problem...

make atheros_2.3GHz_patch.tgz

geht 0. Die atheros_2.3GHz_patch.tgz liegt einen Ordner höher. Verschiebe ich diese in iw-3.10 und mache dann make atheros_2.3GHz_patch.tgz kommt "Nichts zu tun"? HELP!

make install

reboot

iw reg get
iw list
modinfo ath9k_htc

Der Witz ist: Gestern hatte ich die Kanäle schon mal drin und diese waren enabled (trotz diversen Fehlern). Ich konnte nur nicht (trotz neu kompelieren von IW) negative Kanäle auswählen.

viele Grüße und Danke!


PS: Beim Raspberry kann ich auch keine negative Kanäle wählen, z.B. -1 ... gibt es hier auch einen Trick?

PPS: Sollte ich das mit Eurer Hilfe jemals hinbekommen schreibe ich eine NOOB-Anleitung für Leute wie mich ;)

PPPS: Just_Different hängt auch noch ziemlich in den Seilen. Ihr würdet also auch ihm helfen ;)
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten