seemoo-lab / mobisys2018_nexmon_software_defined_radio

Proof of concept project for operating Broadcom Wi-Fi chips as arbitrary signal transmitters similar to software-defined radios (SDRs)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

protocol not supported error when I executing 'myframe.sh'

SniperssSs opened this issue · comments

Thanks for sharing these exciting tools at first.

I'm trying to install this sdr tool on a rpi3B+
when I executing myframe.sh, it reports a long list of error, repeating:
nex_init_netlink: socket error (93: Protocol not supported) nex_init_netlink: socket error (93: Protocol not supported) nex_init_netlink: bind error (9: Bad file descriptor) nex_init_netlink: connect error (9: Bad file descriptor) ERR (__nex_driver_netlink): no valid answer received

I have no idea and stuck on this for several days, anyone can provide some hints?
Thanks in advance.

Have you ever solved it?

This project only supports the older firmware 7.45.154 for the Raspberry Pi 3B+/4B and requires you to compile and install a modified brmcfmac driver (you can find them here: https://github.com/seemoo-lab/nexmon/tree/master/patches/bcm43455c0/7_45_154/nexmon) by yourself.

There will be an updated similar version of this patch in the next few months! I will mention it on the README page, keep an eye on it.

This project only supports the older firmware 7.45.154 for the Raspberry Pi 3B+/4B and requires you to compile and install a modified brmcfmac driver (you can find them here: https://github.com/seemoo-lab/nexmon/tree/master/patches/bcm43455c0/7_45_154/nexmon) by yourself.

There will be an updated similar version of this patch in the next few months! I will mention it on the README page, keep an eye on it.

Does it support firmware 7.45.189 now?
And how to know the firmware version of my device?

I know that my kernel version is 4.19, but the Makefile doesn't support this. When added to support this version, It was OK.

@SniperssSs Sorry, May I ask how you solved this problem?

Have you ever solved it?

Hello, have you solved this problem(请问你解决了楼主这个protocol not supported error when I executing 'myframe.sh'问题了吗)

I’ve forgotten the specifics, but you can refer to my previous comment for guidance. Adjusting your Makefile to the supported kernel version should resolve the issue.

The structure of the nexmon repository has changed slightly since. The modified brcmfmac drivers are now located under nexmon/patches/driver. For reference, have a look at this Makefile, especially the targets on Line 45 and Line 186. You can adapt the Makefile of this project accordingly to make it work.
Another solution would be to checkout the nexmon repository at an older state. However, then you would probably also need to switch to a much older kernel version.

@jlinktu I'm sorry I still haven't solved the problem.
After executing "make " in "/home/pi/nexmon/patches/bcm43455c0/7 _45_154/nexmon/", "brcmfmac.ko" file produced in "nexmon/patches/driver/brcmfmac_6.1.y.-nexmon" , I need to copy the file to "/lib/modules/6.1.21 v7+/kernel/drivers/net/wireless/broadcom/brcm80211 brcmfmac/"?
I also need to enter "/home/pi/nexmon/patches/bcm43455c0/7 _45_154/nexmon/" to execute "make install-firmware" instruction?
Thank you for your prompt reply!

I told you to adapt the Makefile of this project. And as a reference I linked you the Makefile of the nexmon patch, but I didn't say that you are supposed to execute it. My previous answer is still valid.

@jlinktu Sorry, but if I do not run 'make' in '/patches/bcm43455c0/7_45_154/nexmon', the 'brcmfmac.ko' file will not be generated , my above errorwill also produce.

As I said, you are supposed to modify the Makefile of this project in a way s.t. it produces the correct brcmfmac.ko file for you. And you can check out the Makefile of the nexmon patch as a reference on how to do that.

@jlinktu Hello Professor,
Do I modify the Makefile of this project myself to produce the 'brcmfmac.ko' file?
But by running Makefile in '/patches/bcm43455c0/7_45_154/nexmon' I produced the 'brcmfmac.ko' file. After writing this file to the system, I executed the 'myframe.sh' script and got no error, but I just couldn't get a signal at address 'wlan.addr == 82:7b:be:f0:96:e0 ' on Wireshark.

Do I modify the Makefile of this project myself to produce the 'brcmfmac.ko' file?

Yes, please read my previous answers again. I already told you what to do.

But by running Makefile in '/patches/bcm43455c0/7_45_154/nexmon' I produced the 'brcmfmac.ko' file. After writing this file to the system, I executed the 'myframe.sh' script and got no error, but I just couldn't get a signal at address 'wlan.addr == 82:7b:be:f0:96:e0 ' on Wireshark.

brcmfmac.ko is produced by this because the nexmon patch makes use of it too. But brcmfmac is a driver, and you also have to load the correct firmware to make use of myframe.sh. Apparently you did not read the answer that I gave you in Issue #24 . I told you there that you shall check if the correct firmware is loaded...

Sorry, I read #24 already and I checked if the correct firmware is loaded.
But I don't know how to judge the result, could you please help me to have a look if the correct firmware is loaded.
1
2

As the output contains "nexmon.org/sdr" it seems you managed to load the correct firmware. Hence, you initial problem is solved and I am closing this issue here. You can continue in Issue #24 .