【OpenWrt】用C语言交叉编译路由器的可执行文件

封面图

起因

学校的校园网出宿舍拿手机登录就会把路由器踢下线。现在希望实现回宿舍的时候路由器可以自动登录我的账号。

探索

登录校园网是在网页输入账号密码的,按F12分析了一下不是很复杂,打算用C/C++来实现自动发送登录信息。本文是第一步,先在路由器上运行一个hello,world。

准备工作

Linux环境

交叉编译

在网上看了好多交叉编译的教程要我下载buildroot来安装交叉编译的环境。但是buildroot太慢了,占用空间巨大。我需要交叉编译只要一个特定平台的编译器就足够。编译器可以在OpenWrt官网下载固件的地方找到对应平台的SDK。

https://downloads.openwrt.org/releases/21.02.1/targets/ramips/mt7621/

  • 21.02.1 是我安装的的OpenWrt版本,也就是最新的稳定版
  • ramips是处理器的架构
  • mt7621是处理器的型号
    这些信息可以在网上搜索自己的路由器型号来获取。也可以在OpenWrt官网搜索自己路由器的型号找到下载链接,根据下载链接找到SDK的下载页面。

比如说我的是小米路由器3G,在下载固件的页面最底下就可以找到。


SDK

下载下来用tar -Jxvf解压文件

之后需要设置环境变量,路径修改为你解压的路径

export PATH=$PATH:"/home/lazy/Documents/openwrt-sdk-21.02.0-ramips-mt7621_gcc-8.4.0_musl.Linux-x86_64/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin"

还需要设置“STAGING_DIR”文件夹的位置

export STAGING_DIR="/home/lazy/Documents/openwrt-sdk-21.02.0-ramips-mt7621_gcc-8.4.0_musl.Linux-x86_64/staging_dir"

否则会报错

没有设置staging_dir变量

没什么意外应该就可以编译了

实验编译运行

你可能感兴趣的:(【OpenWrt】用C语言交叉编译路由器的可执行文件)