Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: Add support for recent wifi chipsets #27

Open
Yes21 opened this issue Aug 12, 2018 · 52 comments
Open

Feature request: Add support for recent wifi chipsets #27

Yes21 opened this issue Aug 12, 2018 · 52 comments

Comments

@Yes21
Copy link

Yes21 commented Aug 12, 2018

The list of wifi cards supported by ez-wbc is pretty old, and didn't evolve since 2015 !!
Many of the supported cards are old, or not manufactured anymore (especially dual bands cards).
There are now very promising dual band long range cards from Alfa Networks :

  • AWUS036ACH (RTL8812au)
  • AWUS1900 (RTL8814au)

The architecture of ez-wbc is so old and difficult, that nobody could add support for now chipsets ...

(same issue here)

@seeul8er
Copy link
Collaborator

seeul8er commented Aug 12, 2018

That is a very important point. The project stands and falls with support for Wifi Adapters. Unfortunately, I do not own one of these cards. I might get into it in September but I would be very happy if someone gets a kernel working.

Are you aware of this?
And this

@Yes21
Copy link
Author

Yes21 commented Aug 12, 2018

The best drivers are perhaps here : https://github.com/aircrack-ng/rtl8812au

@Yes21
Copy link
Author

Yes21 commented Aug 13, 2018

If you need help to buy these cards, I can help.

@roque-canales
Copy link

I can also help you with Yes21

@Yes21
Copy link
Author

Yes21 commented Aug 15, 2018

Do you know this project : wifibroadcast-image-builder ?
It can create a wbc image from scratch using qemu, with the latest kernel and patchs.
The image is not totally functional now, but I will try to use it for testing aircrack-ng/rtl8812au drivers

@Yes21
Copy link
Author

Yes21 commented Aug 15, 2018

@htcohio

I really don't understand why you've posted those comment here ...
It seams it has no relation with support for new chipsets !

Perhaps could you create a new issue here ?

Ps : You can still continue to use old cards and wifi dongles, from the 2015 Befinitiv's list ...
But that's your choice, from the past !!
For today and tomorrow, we need to adapt our self to changes and evolutions.

@htcohio
Copy link

htcohio commented Aug 15, 2018

Hey I'm sorry, I will open a new issue. I've mostly been using an app called Fasthub and haven't been able to find out how to post a new issue until just now.

I will repost there.

As for the wifi adapters, I agree. Do you know if there's anything in the work or that has any potential to have the frequency capabilities of the atheros AR9271 chipset cards? I'm just wondering if I've missed something (and I haven't looked at the links above yet I will do that right now).

@htcohio
Copy link

htcohio commented Aug 23, 2018

Hey guys,

I came across this info on wikidevi today about an atheros dual band AC wifi card.

Looks pretty promising, it is not very powerful but you can always amplify it.

https://wikidevi.com/wiki/SparkLAN_WUBQ-159ACN

802.11ac/a/b/g/n USB Module, Qualcomm Atheros QCA9377-7, 1T1R

  • Chipset: Qualcomm Atheros QCA9377-7

@Yes21
Copy link
Author

Yes21 commented Aug 23, 2018

@htcohio

This chipset is not supported by ez-wbc.
While it is "not very powerful", I don't see the interest for getting support for it ...

Support for chipsets 8812au or 8814au, and powerful Alpha cards, would be more useful for the future (and the present) of ez-wbc and DroneBridge.

ps : that's just my opinion.

@roque-canales
Copy link

+1 Yes21

@Yes21
Copy link
Author

Yes21 commented Aug 24, 2018

I see a good news for v0.7 in your milestones page :

  • "Add support for RTL8812au cards with imporved driver and maybe a new kernel" :))

That will be a very great progress ! But don't forget the RTL8814u, since the Alfa AWUS1900 is perhaps the most promising wifi adapter for the groundPi ...

Many thanks for your efforts.

@htcohio
Copy link

htcohio commented Aug 24, 2018

@Yes21,

I read in a couple places that the new atheros chipset is capable of monitor mode and ath10k driver. There are a few variants of that chipset that are listed as new on the page. I figured it was worth mentioning

@Yes21
Copy link
Author

Yes21 commented Aug 24, 2018

@htcohio

I'm sorry for being focused on realtek chipset and alpha adapters ...

There's certainly many other recent chipsets that should be supported.
You are right to mention it.

@seeul8er
Copy link
Collaborator

@Yes21 I am a total noob when it comes to kernels and drivers so this might take some time. I will see if I can integrate the v5.2.20 branch of aircracks rtl8812au driver. Rodizio reported that the prev version has issues with packet loss.

I might also upgrade the image to Kernel v4.14

Right now I do not know if I want to spend another 45€ on hardware. My source would be amazon. You got something cheaper in mind?

@Yes21
Copy link
Author

Yes21 commented Aug 27, 2018

@seeul8er
I'm a total noob too ! But I think that this project (wifibroadcast-image-builder) could really help us : it can create a working image of ez-wbc 1.6rc6 with the latest kernel. It should not be very difficult to add a few lines to the building script to install the aircrack-ng/rtl8812au driver (you should also consider the v5.3.4 which support rtl8814 too).
I've already test his script, and I could generate an image in 26 min (I've a big pc)
I will try to ad the installation of the driver to his script, but I'm not sure to have success ...

If that way of processing makes sens for you, the guy "RespawnDespair" will perhaps be happy to help us ?

But I think that adding the driver will not be enough, and the code of wbc should also be adapted. But I'm totally unable to help on this point.

If you want a 8812au card only for testing, have a look at the alfa awus036ac which as the same firmware, but is "only" 29€. I will send you a MP on RCgroups on this subject.

@Yes21
Copy link
Author

Yes21 commented Aug 28, 2018

Today, after having added a few lines to wifibroadcast-image-builder building scripts, I could create a new working image with the aircrack-ng/rtl8812au drivers.
But sadly I can confirm that these drivers don't help ez-wbc to have a better support for awus036ac/h or awus1900 wifi cards.

@seeul8er
Copy link
Collaborator

Damn, what release branch did you use? 5.2.20?
Is it still the packet loss?
Thanks for testing :)

@Yes21
Copy link
Author

Yes21 commented Aug 28, 2018

branch 5.3.4.
I can't see loss packets, but my test is partial : awus036ach on a Pi3 as rx, csl 300 on a Pi2 as tx, freq 5200 mhz

@roque-canales
Copy link

Yes21, could you share your image for I test, I have two setups ready with 8812AU on rx and tx side.

@Yes21
Copy link
Author

Yes21 commented Aug 29, 2018

Sorry, but I can't share it because I have a slow internet connection, and it would be much too long for me to upload a 3,7 Gb file. And I don't see the interest of sharing something that doesn't work ...
It's really very easy, even for a noob like me, to build the image following the instructions of this link (wifibroadcast-image-builder) . If you want to try it, I can send you the 2 scripts I've modified to install the aircrack-ng/rtl8812au drivers.

@zipray
Copy link

zipray commented Aug 31, 2018

@Yes21
Copy link
Author

Yes21 commented Aug 31, 2018

@zipray
I thank you very much for sharing this image with us :)
I've just tried it, and I'm sad to write that it didn't saw any improvements in rtl8812/8814 chipsets support.

  • on the rx(ground) side : the awus036ac and awus036ach are working, like with regular 1.6rc6 Rodizio's image. The awus1900 is not recognized ("no wifi card").
  • on the tx(air) side : awus036ac, awus036ach and awus1900 aren't recognized (the blue led of 036ac/h are blinking, but no image transmission)

Could other ones try this image, and confirm my results ?

Ps : I've also took a look at your corrections (diff file), and were surprised that you didn't need to make more modifications to ez-wbc code.

Edited 2018.09.06 : I didn't test the good image, so don't take care of this post.

@seeul8er
Copy link
Collaborator

Do you use the Pi Zero on the Air side?

@Yes21
Copy link
Author

Yes21 commented Aug 31, 2018

If the question is for me, the answer is : no, I'm using a Pi2b.

@zipray
Copy link

zipray commented Aug 31, 2018

@seeul8er
If the question is for me, the answer is : no, I'm using a Pi3b.

@roque-canales
Copy link

roque-canales commented Sep 1, 2018

@zipray Hello, Please could you share your wbc image, as you I have two 8812AU dongles also, could you please tell us where to find your HDMI acquisition Board?

thank you so much for your help ;)

@Yes21
Copy link
Author

Yes21 commented Sep 1, 2018

@roque-canales
Copy link

Unfortunately,not.
Can I send you money for you order it and send it for me here in France?
my email kuspower@live.fr, I can pay through paypal.
Or onother solution, it that you give me the email of this seller for I attempt to contact him.

I hope you can help me for that ;)

@seeul8er
Copy link
Collaborator

seeul8er commented Sep 2, 2018

@zipray What modifications did you make to the WBC image? What aircrack-ng/rtl8812au branch did you use or is it just the plain WBC 1.6 image with the built in drivers?

@Yes21
Copy link
Author

Yes21 commented Sep 4, 2018

@seeul8er
Here is the link with the modifications : http://my.korchagins.ru/WifiBroadcast/EZ-Wifibroadcast-1.6RC6+8812au.diff.

I'm pretty surprised that the modifications were made only in ".profile" and "tx_telemetry.c" ...

They use 5.2.20.2 branch of aircrack-ng/rtl8812au.

@Yes21
Copy link
Author

Yes21 commented Sep 7, 2018

Today I've made news tests with this image : http://my.korchagins.ru/WifiBroadcast/EZ-Wifibroadcast-1.6RC6+8812au.zip

I have now very good results that I want to share :

  • awus036ac, awus036ach and awus1900 are working on my airPis : Pi2 or Pi0,

  • awus1900 is working on my groundPi : pi3,

  • my csl300 (rt5572) doesn't work anymore with this image.

I've only tested video transmission (no telemetry, no RC) at 5180 Mhz, and didn't test the range.

@seeul8er
Copy link
Collaborator

seeul8er commented Sep 8, 2018

@Yes21
Yeah they probably installed it using dpkg. I am not sure but it could be that the wrong (unpatched) sources are used when it is installed via dpkg.
I set up a separate repo for the DroneBridge Raspberry Pi Kernel so that everyone is on the same page and others have the chance to follow the steps.
It contains the patches, config files for Pi2/3+ and Pi0 and under releases you can find the patched source code so people can directly modify and recompile the kernel.

I setup an experimental image that should support the Pi3+ and uses the current aircrack-ng/rtl8812au drivers.
You can download it here: link to Beta v0.6
Let's see if that thing works. I only tested video using Atheros cards so far.

@Yes21
Copy link
Author

Yes21 commented Sep 8, 2018

@seeul8er
I've tried your experimental image today.

The image is correctly booting, but none of my wifi boards were setting up.

Then I've tried to set it with the command line, on both air and ground Pis (ip link set macadress up , iw dev macadress set type monitor). The boards were set up into monitor mode, but I had no video on the ground Pi.

I've made this tests with awus036ac, awus036ach, awus1900 and csl300. When the interface is up, the frequency is always set to 2,412 Ghz instead of the value set in the config file.

Many thanks for your work.
I think it shouldn't miss a lot before your image works.

@Yes21
Copy link
Author

Yes21 commented Sep 8, 2018

@seeul8er
I also want to test DroneBridge with the modified "russian image".
Could you please explain how to install DroneBridge on an existing wbc image ?

It should be very useful that everyone could test DroneBridge with a modified wbc image.

@seeul8er
Copy link
Collaborator

@Yes21 Just did some tests with my CSL300 and I can confirm that video transmission is not working. It works for about 500 blocks (~3 seconds) and then it stops. Maybe the drivers buffer is filled or something. I'll see what I can do. Maybe moving back to the old driver from the WBC images helps.
Reception seems to be fine with the CSL300.

Regarding the other thing: You need to copy all the files from this repo to a dronebridge folder inside the home folder of WBC. Replace the ".profile" file with the one provided in this repo. Copy the provided "*.ini" files and plugins folder to "/boot". I will not give more detail on that since I do not like the idea of people mixing it all up. In the end we get tons of images like the russian one, where noone knows what the hell they actually changed

@Yes21
Copy link
Author

Yes21 commented Sep 10, 2018

@seeul8er
I've just done more tests with 2 csl300 (one on each side). The video transmission is working and doesn't stop !
With my 8812/8814au, I always see "that device is not up".

I will try tomorrow to follow your advices for the other thing, despite you don't give the end of the process ... I just want to test it, because I'm an old curious man ;)
If I have success I won't share any image, because I'm ok with your wish that noone mix your documented work with undocumented image.

@Yes21
Copy link
Author

Yes21 commented Sep 10, 2018

@seeul8er I also noticed that you keep using 4.9.28 patches. It seems that RespawnDespair is using only 4.14 patches. I wonder if it could be a way to investigate ?

@seeul8er
Copy link
Collaborator

@Yes21
I am using these patches. The ones you linked are just for documentation and backup. Not all of them work for v4.14.66.

Thanks to your link I think I know what causes the crashes with Ralink. I might forgot to kill the watchdog. I'll try to get a new Kernel running with a fix.

I've just done more tests with 2 csl300 (one on each side). The video transmission is working and doesn't stop !

Are you referring to my pre-release v0.6?

I will try tomorrow to follow your advices for the other thing

It's just copy&paste of all files to the right location. Everything goes into a folder /root/dronebridge. Inside that folder execute cmake . followed by make to compile everything.
Then put the config (DroneBridge configs and WBC config) files and plugins folder inside /boot. Now you are set (in theory). You can now run start_db_xx.sh to start everything. We do that together with some other stuff inside the .profile script. You could overwrite the one inside /root with the one this git repo provides, but you will lose some of the changes that the russian guy did to it.

Thanks for testing :)

@Yes21
Copy link
Author

Yes21 commented Sep 11, 2018

It's just copy&paste of all files to the right location. Everything goes into a folder /root/dronebridge. Inside that folder execute cmake . followed by make to compile everything.

The cmake version of the russian image is to old. I give up !
Will wait for your next image.

Many thanks you for your advices.

@seeul8er
Copy link
Collaborator

seeul8er commented Sep 13, 2018

Got a new Kernel with disabled watchdog for RT28xx and RTS frames as default frames for the video transmission. Seems that RT28 does not like short data frames anymore :(
Tested it very quickly with my Ralink card. Lets see if it works for you.

Image can be downloaded here!

@htcohio
Copy link

htcohio commented Sep 14, 2018

@seeul8er what this have fixed the problem with my atheros cards as I shared them with you or would that problem still exists?

@seeul8er
Copy link
Collaborator

@htcohio I doubt it. Right now I do not have any idea why Atheros diversity makes problems. Might be some change hidden in the new kernel code or the decoder software for Broadcom.

@careyer
Copy link

careyer commented Sep 16, 2018

@htcohio : Is it this #30 issue you are talking about? If not: The diversity issue you are talking about ... how does it manifest itself?

@careyer
Copy link

careyer commented Sep 16, 2018

Got a new Kernel with disabled watchdog for RT28xx and RTS frames as default frames for the video transmission. Seems that RT28 does not like short data frames anymore :(
Tested it very quickly with my Ralink card. Lets see if it works for you.

Image can be downloaded here!

@seeul8er : Hi Wolfgang. Tried the image you linked above. However I discovered that it only boots up on a RPi3 ... does not boot on my Pi0 nor on a PiA+ - does it need a more recent version of the app maybe as well? Using the App 1.2.4 but it has lots of connection issues (e.g. the RC channels disappear every 2sec from the app and then show again... this repeats in an endless loop)

@Yes21
Copy link
Author

Yes21 commented Sep 16, 2018

@seeul8er
I've tested your last 0.6 beta image. My results aren't very good :

  • I can confirm that it doesn't boot on a Pi0 (the previous image did boot on a Pi0),
  • the CSL300 is working only on the AirPi, not on the ground,
  • all the AWUS boards aren't set up in monitor mode. I have to do it with the command line,
  • the AWUS1900 doesn't work on both Pis,
  • the AWUS036AC/H are working only on the GroundPi.

The only working combination for me was the CSL300 on the AirPi, and AWUS036AC or ACH on the GroundPi, but with very poor video quality and a message with "unknown encapsulation ..."

It seams that's it's no so easy ...

@Yes21
Copy link
Author

Yes21 commented Sep 22, 2018

@seeul8er
I just succeeded in installing DroneBridge 0.6 beta on the "russian image". I had to update cmake, install python3 and a few others python3 library packages (couldn't find python3-evdev).

  • 1st test with the russian .profile : the alpha 88xxau boards are working (video transmission ok) and I had to start DB with command line. But I couldn't test if it were really working.
  • 2nd test with the db 0.6 beta .profile : the alpha boards aren't set up exactly like with your last 0.6 beta image !
  • 3rd test after trying to mix the two .profil scripts (!!) : the boards are up in monitor mode, video transmission ok. No way to test if DroneBridge is running ...

My tests perhaps confirm that there is much work to do around the .profile script.

Here is my modified .profile script, if it could help you :
profile.txt

Good luck to you ;)

@seeul8er seeul8er moved this from To do to Needs testing in Rewrite of the startup scripts Oct 10, 2018
@seeul8er seeul8er moved this from Needs testing to Done in Rewrite of the startup scripts Oct 31, 2018
@Yes21
Copy link
Author

Yes21 commented Nov 2, 2018

Hi Wolfang,
Do you know how I could clone the kernel source 4.14.66 you are using (https://github.com/raspberrypi/linux/tree/c5f7d3c4daf14ba3717fcc1497854d8c365bd742) ?
The git clone -b ... command doesn't work, and I don't succeed in finding a working solution on the net.
Thanks if you know how to do.

@seeul8er
Copy link
Collaborator

seeul8er commented Nov 3, 2018

I think you already found the answer somewhere else. Clone the repo and checkout at the 'right time'
git checkout c5f7d3c4daf14ba3717fcc1497854d8c365bd742 should do it (I guess).

@Yes21
Copy link
Author

Yes21 commented Nov 3, 2018

Thank you very much for your help ;-)

git clone --depth=100 https://github.com/raspberrypi/linux/
cd linux/
git checkout c5f7d3c4daf14ba3717fcc1497854d8c365bd742

@dposea
Copy link

dposea commented Dec 6, 2018

also git submodule update --recursive if the repository has any submodules. Took me weeks to figure out that part. For example ardupilot has mavlink and nuttx as submodules, and you need the submodule update command to sync those with the version checked out. Git keeps track of everything so you don't need a version on the submodule update.

@tilmanrpk
Copy link

So does this work now or does the issue still persist?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Development

No branches or pull requests

8 participants