Replies: 3 comments 7 replies
-
Thank you for this great contribution! But when I try to cross-compile LibPCAP, there will be an error "aarch64-linux-gcc: command not found". I don't know how to solve it. Would you mind get me some advices. Thanks a lot. |
Beta Was this translation helpful? Give feedback.
-
How long has this code |
Beta Was this translation helpful? Give feedback.
-
Thanks for your contribution. This is super helpful! |
Beta Was this translation helpful? Give feedback.
-
Welcome to the Nexmon_csi build guide for Asus RT-AC86U!
Please use #2, unless you're modifying the source code
Commands prepended with
admin@router $
should be run on your RT AC86U via SSH. All other commands are run on your computer (as a normal user. Don't use root). Please run all the steps in one go, and in one Terminal so you don't lose environmental variables.Install Merlin-WRT on the router
This step is optional, but highly recommended.
Create a Ubuntu 20.04 Virtual Machine
Creating a VM is optional, but is strongly recommended. Some of the dependencies (
python2
,python-is-python2
) may break your other projects, so run in a VM . If you report a build issue, I'll ask you to run it in a VM.Install VMware Tools
If you're using VMware, install VMware tools
Setup SSH keys
This step is optional too, but SSH keys make it convenient when you're building Nexmon_CSI multiple times.
If you skip this step, type in the routers password manually when the script asks for it.
ssh-keygen -t ed25519
and generate a SSH Key. You can use the default settings.ssh admin@<RT AC86Us IP>
this should happen without asking for a password.Install dependencies
Install Nexmon
We will cross-compile Nexmon_CSI on your VM and then send it to the RT AC86-U.
Get Merlin Toolchain
Build Nexutil
Let's cross-compile Nexutil.
Build Makecsiparams
Note: Makecsiparams is a program used to generate the text used to configure Nexutil. So you can compile Makecsiparams to run on your VM or on the router. The following commands show you how to build for your VM, but you can follow the steps in the Nexutil and Tcpdump sections and cross compile Makecsiparams similarly. You can also simply use the Makecsiparams I compiled to run on the router from here: #2
You can now run Makecsiparams by typing
mcp
. Trymcp -c 36/80 -C 1 -N 1
to generate a text that will configure Channel 36 and Bandwidth 80 MHz.Install Tcpdump
Again, we will cross compile Tcpdump.
Testing
ifconfig -a
and find which interface matches this address.In the VM, generate a specstring using Makecsiparams (
mcp
).mcp -c 36/80 -C 1 -N 1
. We will use the output of this command to configure Nexutil.SSH into your router. The following commands need to be run on your router.
Load modified firmware
To verify new dhd is properly loded, run
dmesg | grep 10.10.122.20
. You should see lines like CONSOLE: 026738.774 10.10.122.20 (nexmon.org/csi: ba99-1)Bring up the interfaces
Note: You will need to load the modified firmware, and bring up interfaces every time you reboot the router, unless you setup Persistence.
Set chanspec and monitor mode
Collect CSI with TCPdump
/jffs/tcpdump -i eth6 dst port 5500
Important: While using Tcpdump, the .pcap files should always be saved to an external drive. Saving pcap files to the router's file-system will wear out the flash storage and damage your router.
Persistence
Same as the persistence section on #2.
Download for offline use
Beta Was this translation helpful? Give feedback.
All reactions