为 OpenWrt 路由器编译 minieap-sysu 项目
学校的校园网要使用锐捷认证,于是想把认证客户端装到刷了 OpenWrt 的路由器上面。然而认证客户端 Linux 版只支持 x86 架构,我的路由器处理器却是 AArch64 架构,装不了,所以只能想办法找 AArch64 架构的解决方案。
经过一番搜索,我找到了 minieap-sysu 这个项目,不过需要自己编译可执行文件。下面记录了我的编译过程。
Prerequisites
编译可执行文件首先需要有 toolchain(编译工具链)。我们需要找到自己路由器平台所对应的 toolchain。OpenWrt 项目已经为我们预编译好了各种路由器平台上的 toolchain,所以我们不用再自己手动编译 toolchain 了。打开 Firmware Selector,搜索你的路由器型号,并选择固件版本,在搜索结果中点击最左侧的文件夹图标打开下载服务器目录:

在构建仓库的底部可以找到我们需要的 toolchain:

下载并解压 toolchain,并将 toolchain 的路径添加到 PATH:
export PATH="/path/to/toolchain/bin:$PATH"
如:
export PATH="/home/ubuntu/openwrt-toolchain-23.05.4-mediatek-filogic_gcc-12.3.0_musl.Linux-x86_64/toolchain-aarch64_cortex-a53_gcc-12.3.0_musl/bin:$PATH"
如果没有对应版本的
toolchain怎么办:如果没有对应版本的 toolchain,那我们就自己编译一个。编译 OpenWrt 的过程可以参见博客编译 OpenWrt,在编译时 toolchain 会被自动构建并存储到staging_dir。
Build
克隆并进入代码库:
git clone https://github.com/WeiMXi/minieap-sysu.git
cd minieap-sysu
编辑配置文件
config.mk,这里要把编译器(CC)改为我们刚刚下载的toolchain里的。查看toolchain的bin目录,这里我可以找到我的编译器为aarch64-openwrt-linux-musl-gcc-12.3.0,于是用它替换原来的 CC:# 将
CC := mipsel-openwrt-linux-gcc-8.4.0
# 替换为
CC := aarch64-openwrt-linux-musl-gcc-12.3.0
开始编译:
make
编译产物是项目根目录下的
minieap。
Run
将
minieap上传到路由器:scp -O minieap root@OpenWrt:
登录路由器,启动
minieap:ssh root@OpenWrt
./minieap -u <student-id> -p <password> -n eth1 --module rjv3 --fake-serial AABB
为 OpenWrt 路由器编译 minieap-sysu 项目的更多相关文章
- OpenWrt路由器通过LuCI界面实现Guest SSID功能
转自: http://blog.ltns.info/linux/guest_ssid_over_openwrt_router/ 之前尝试过 Tomato路由器设置VLAN实现Guest SSID功能, ...
- openwrt(二) 配置openwrt及编译
导航 1. 配置openwrt 2. 编译openwrt 3. 错误记录 1. 配置openwrt 在openwrt的根目录下,执行make menuconfig. 这个界面我也只是了解了这两个选项而 ...
- 在Xcode 6 beta里编译Cocos2d-x iOS项目时失败
转载 在Xcode 6 beta里编译Cocos2d-x iOS项目时可能会失败,提示如下错误: Undefined symbols for architecture i386: "_fwr ...
- [Cordova] 无法编译Visual Studio项目里Plugin副本的Native Code
[Cordova] 无法编译Visual Studio项目里Plugin副本的Native Code 问题情景 开发Cordova Plugin的时候,开发的流程应该是: 建立Cordova Plug ...
- 【转载】在Linux中使用VS Code编译调试C++项目
原文:在Linux中使用VS Code编译调试C++项目 最近项目需求,需要在Linux下开发C++相关项目,经过一番摸索,简单总结了一下如何通过VS Code进行编译调试的一些注意事项. 关于VS ...
- 使用Maven将Hadoop2.2.0源码编译成Eclipse项目
编译环境: OS:RHEL 6.3 x64 Maven:3.2.1 Eclipse:Juno SR2 Linux x64 libprotoc:2.5.0 JDK:1.7.0_51 x64 步骤: 1. ...
- 项目androidAnt编译打包Android项目
时间紧张,先记一笔,后续优化与完善. Ant编译打包Android项目 在Eclipse中对Android项目停止编译和打包如果项目比较大的话会比较慢,所以改为Ant工具来停止编译和打包 Ant环境配 ...
- ASP.NET 动态编译、预编译和 WebDeployment 项目(转)
概述 在 Web 服务器上,既可以部署源文件,也可以部署编译后程序集. 若部署源文件,则当用户访问时,Web 应用程序会被动态编译,并缓存该程序集,以便下次访问. 否则,若部署程序集,Web 应用程序 ...
- 【转】Android 源码下利用jni编译自己的项目(参考系统development/samples/SimpleJNI)
原文网址:http://blog.csdn.net/qiuxiaolong007/article/details/7860481 记于正文前:环境是ubuntu10.10,android 源码是2.0 ...
- 利用ant进行编译和发布项目
本文通过一个示例来解说如何通过ant进行编译和发布项目.本例按如下目录结构来组织项目. D:/web/antsample项目根目录 D:/web/antsample/src源代码目录 D:/web/a ...
随机推荐
- 如何在 Windows 使用 Podman Desktop 取代 Docker Desktop
Podman Desktop 是 Docker Desktop 的免费替代品,是本地开发使用的另一个绝佳选择.它提供了类似的功能集,同时保持完全开源,让您避免使用 Docker 产品的许可问题.在本文 ...
- Simple WPF: WPF 实现按钮的长按,短按功能
最新内容优先发布于个人博客:小虎技术分享站,随后逐步搬运到博客园. 实现了一个支持长短按得按钮组件,单击可以触发Click事件,长按可以触发LongPressed事件,长按松开时触发LongClick ...
- null 和 undefined 的区别?
null 表示一个对象被定义了,值为"空值":undefined 表示不存在这个值.(1)变量被声明了,但没有赋值时,就等于undefined. (2) 调用函数时,应该提供的参数 ...
- [oeasy]python0025_ 顺序执行过程_流水_流程_执行次序
顺序执行过程_流水_流程_执行次序 回忆上次内容 上次 熟悉了 vim编辑器 操作 作用 w 向前移动光标一个word b 向后移动光标一个word :r oeasy.py 读取文件到当前文件缓存 g ...
- [oeasy]python0145_版本控制_git_备份还原
git版本控制 回忆上次内容 上次我们了解了 try 的完全体 try 尝试运行 except 发现异常时运行的代码块 else 没有发现异常时运行的代码块 finally 无论是否发现异 ...
- C# 枚举帮助类EnumHelper(获取描述、名称和数值)
帮助类定义 public class EnumHelper { #region 静态方法 public static Dictionary<string, string> GetEnumD ...
- Web开发中【密码加密】详解
作为一名Web开发人员,我们经常需要与用户的帐号系统打交道,而这其中最大的挑战就是如何保护用户的密码.经常会看到用户账户数据库频繁被黑,所以我们必须采取一些措施来保护用户密码,以免导致不必要的数据泄露 ...
- JavaScript小面试~什么是深拷贝,什么是浅拷贝,深拷贝和浅拷贝的区别,如何实现深拷贝
深拷贝:就是在复制数据或者对象的时候,将其内存中值复制过来. 浅拷贝:就是在复制数据或者对象的时候,是将其引用复制过来. 深拷贝和浅拷贝的区别:深拷贝复制的是被复制数据或者对象的值,复制的数据或对象会 ...
- CF1951
A link 这个题就是讨论. 首先,如果没有\(1\)就一定可以. 如果有\(1\). 如果长度为\(2\)一定不行. \(1\)的个数为奇数不行. 如果为偶数 有一个小点:如果是\(2\)个\(1 ...
- Rust 中 *、&、mut、&mut、ref、ref mut 的用法和区别
Rust 中 *.&.mut.&mut.ref.ref mut 的用法和区别 在 Rust 中,*.ref.mut.& 和 ref mut 是用于处理引用.解引用和可变性的关键 ...