nexmon_csi
nexmon_csi copied to clipboard
some issues about nexmon_csi on Asus rt-ac86u
hello, Thank you for your amazing work!!! When I set nexmon_csi on Asus rt-ac86u which is the recent version with BCM4366E, I run into the following issues.
- In the getting started guide, when I finished : make install-firmware REMOTEADDR=, I lost the connection with the router. I reboot the router and then connect to it gain.(I do not know if this is norm)
- after following the getting started guide, I get some troubles in running : nexutil -Iwlan0 -s500 -b -l34 -vm+IBEQGIAgAAESIzRFWqu6q7qrsAAAAAAAAAAAAAAAAAAA== the running error: admin@RT-AC86U:/jffs# ./nexutil -Ieth6 -s500 -b -l34 vm+IBEQGIAgAAESIzRFWqu6q7qrsAAAAAAAAAAAAAAAAAAA== __nex_driver_io: error ( I don't know the meaning of ‘-s500’ )
Thanks for reading and reply!
Hi, i guess you are connected to the router via wifi?
- installing the patched firmware includes resetting the wifi chip, thus also resetting your current connection if you are connected to the router via wifi. you are supposed to be connected to it using a cable.
- after rebooting the router the default firmware is loaded instead of the patched one, hence you won't be able to extract csi. (500 is the ioctl id but that has nothing to do with your problem)
so both problems should be solved by connecting to the router using a cable during the whole process
Thank you very much @jlinktu !! I tried it like what you say (using a cable to connect; do not reboot), while it still can't work. And there are more abnormal things happened as following:
- after running :make install-firmware, the eth5 and eth6 are disappeared.
- And then, I using : ifconfig eht6 up ;
- finally, I run :./nexutil -Ieth6 -s500 -b -l34 vm+IBEQGIAgAAESIzRFWqu6q7qrsAAAAAAAAAAAAAAAAAAA== then error like this: __nex_driver_io: error
After dhd.ko is reloaded (the firmware is installed), you should be able to bring up the interfaces by running for each of them:
wl -i <interface> up
wl -i <interface> radio on
ifconfig <interface> up
Thank you for your kind reply @jlinktu !!!!! I have tried what you said, and it works !!! But I still want to ask you about some details on the install of this device, I hope you don't mind!
-
Based on the issues #8, I just need to install it in one dvices that I want to get csi from it. Dose this means this device(router) is the receiver? And I can get the csi which is send from another device such as the connected cellphone .( Am I right?)
-
After finish the Usage, it says csi data will send from port 5500(UDP) on ip address 255.255.255.255. And then, dose it right to get a cable from my computer to connect the lan interface of this device to get the csi data?
-
Do I need to program with C on this device? If so, I want to kwon about the basic steps, because I'm not good at this kind of programming. Thanks again for your advice!!!!!!
@jlinktu I'm @Zhang-xie 's colleague, sorry for so many questions. After several experiments, our team has understood how to collect CSI data, the problem from @Zhang-xie has been solved. But we now have a new question that we hope will be answered. After running
wl -i <interface> up
wl -i <interface> radio on
ifconfig <interface> up
We can finally execute all the required commands in Usage without error. But we can't use our mobile phone to connect the WiFi because we did not find the target wifi in the mobile phone wifi list. Then we chose to change the wifi to no password mode on the router control interface on the computer side via cable. After that we could find the target wifi in the phone wifi list, but still can't connect to it.The phone stuck at "Obtaining IP address". how to solve this problem? thank you for your help!
After dhd.ko is reloaded (the firmware is installed), you should be able to bring up the interfaces by running for each of them:
wl -i <interface> up wl -i <interface> radio on ifconfig <interface> up
@jlinktu does this mean that we have to install Openwrt on the Asus router before all of this? As isn't wl
an Openwrt command?
(Context: I am in the same positon of following the standard instructions and getting nexutil: command not found)
wl
is a command-line tool by broadcom and comes with the default firmware for the asus rt-ac86u.
Try to execute nexutil
with the path to the binary, e.g.: /jffs/nexutil
.
Many thanks for the reply @jlinktu, I'm afraid I am still struggling on this one.
My best guess is that I should be able to run the wl
commands from any directory in Xubuntu, and that I can run them just as you stated, without any command on the front, however I am struggling to get it working. Below I list all the different things I have tried and the terminal response. Would you please be able to highlight which command is correct and why it is not working? Very many thanks!
-
wl -i enp0s3 up
command returns ->wl: command not found
-
/usr/sbin/wl -i enp0s3 up
(as you do a similar command in the readme) command returns ->bash: /usr/sbin/wl: No such file or directory
- (within utilities/nexutil dir)
./nexutil wl -i enp0s3 up
command returns ->nexutil: Too many arguments
-
/jffs/nexutil wl -i enp0s3 up
(as I think you were suggesting above) command returns ->bash: /jffs/nexutil: No such file or directory
-
ssh [email protected] wl -i enp0s3 up
(i.e. trying to run the command on the router via SSHing into it as this suggests) command returns -> `sh: wl: not found
As stated in the readme, all commands but the makecsiparams
call shall be executed on the extraction device (the rt-ac86u in your case). Do not mix up nexutil
and wl
in one command, they are completely independent of each other.
I recommend you to first open a ssh connection:
ssh [email protected]
After login, you should be able to run commands the way you are used to but on the router, e.g.:
wl -i eth6 up
, ifconfig eth6 up
, wl -i eth6 monitor 1
For nexutil
you still need to include the full path: /jffs/nexutil ...
, or alternatively add /jffs
to the environment variable PATH
.
Also make sure to use the correct interface. On the ac86u there are two WiFi interfaces, eth5
for 2g band and eth6
for 5g band.
As stated in the readme, all commands but the
makecsiparams
call shall be executed on the extraction device (the rt-ac86u in your case). Do not mix upnexutil
andwl
in one command, they are completely independent of each other. I recommend you to first open a ssh connection:ssh [email protected]
After login, you should be able to run commands the way you are used to but on the router, e.g.:wl -i eth6 up
,ifconfig eth6 up
,wl -i eth6 monitor 1
Fornexutil
you still need to include the full path:/jffs/nexutil ...
, or alternatively add/jffs
to the environment variablePATH
. Also make sure to use the correct interface. On the ac86u there are two WiFi interfaces,eth5
for 2g band andeth6
for 5g band.
Awesome! That's super useful, thanks a ton Jacob!
Hi, i guess you are connected to the router via wifi?
1. installing the patched firmware includes resetting the wifi chip, thus also resetting your current connection if you are connected to the router via wifi. you are supposed to be connected to it using a cable. 2. after rebooting the router the default firmware is loaded instead of the patched one, hence you won't be able to extract csi. (500 is the ioctl id but that has nothing to do with your problem)
so both problems should be solved by connecting to the router using a cable during the whole process
may i know by using a cable
, we refer to a ethernet cable, or a USB cable.
Best.
Hello Team, I have installed well nexmon in Rpi3 but I have failed to know how do I extract the CSI. When I try to run this root@raspberrypi:/home/pi/nexmon_csi/utils/makecsiparams# makecsiparams -c 157/80 -C 1 -N 1 -m b8:27:eb:74:37:d5 -b 0x88 I ended up with this error bash: makecsiparams: command not found
My file in nexmon_csi are pi@raspberrypi:~/nexmon_csi $ ls brcmfmac_4.19.y-nexmon gfx patch.ld src brcmfmac_5.4.y-nexmon Makefile README.md utils pi@raspberrypi:~/nexmon_csi/utils $ ls makecsiparams matlab
Any help will be appreciated
You need to compile makecsiparams, it's in the utils folder, run make
in the folder. And then copy the binary generated to be somewhere in your path.
@Zhang-xie hi i am facing a similar problem to u installing the nexmon on asus,
I get the following error: COPYING TO ROUTER dhd.ko => /jffs/dhd.ko ssh: connect to host 192.168.1.1 port 22: Connection refused lost connection make: *** [Makefile:365: install-firmware] Error 1
Dont know if i am missing something i followed the start guide!