编译华硕路由器ACRH17源代码小记

2023-05-16

源码包中有说明:

The GPL source is created for ASUS wireless router related products. Please visit the ASUS support site (http://support.asus.com) to get the latest GPL tarball.It has a lot in common with many wireless router open source projects, including Oleg/Tomato/DD-WRT/OpenWRT. Thanks the developers of those projects for making the source code available.


Set Up Environment(Tested in Fedora 8/9 and Ubuntu)


    1. prepare environment


a. Ubuntu
Install these packages (I used synaptic: "sudo synaptic")


libncurses5
libncurses5-dev
m4
bison
gawk
flex
libstdc++6-4.4-dev
g++-4.4
g++
gengetopt
git (or git-core)
gitk
zlib1g-dev
autoconf
autopoint (or gettext)
libtool
shtool
autogen
mtd-utils
intltool
sharutils
docbook-xsl-*
libstdc++5
texinfo
dos2unix (or tofrodos)
xsltproc
uboot-mkimage
device-tree-compiler
python 2.7 or above.
qemu
gperf
liblzo2-dev
uuid-dev
build-essential
lzma-dev
liblzma-dev
lzma
binutils-dev
patch
cmake
intltool
libglib2.0-dev
gtk-doc-tools


If you are using Ubuntu amd64, you may need to install 32-bit packages listed below.
libc6-i386
lib32stdc++6
lib32z1
libelf1:i386
libncurses5:i386
ia32-libs
libc6-dev-i386


b. Fedora
python 2.7 or above.
sudo yum groupinstall "Development Tools"
sudo yum install gettext-devel libxml2-devel mtd-utils-ubi ncurses-devel \
zlib-devel intltool sharutils docbook-dtds docbook-style-xsl \
uboot-tools dtc gengetopt qemu gperf cmake glib2-devel gtk-doc


If you are using Fedora 19 or above, you need to install below packages.
sudo yum groupinstall "C Development Tools and Libraries"


If you are using Fedora x86_64, you may need to install 32-bit packages listed below.
elfutils-libelf.i686
glibc.i686
libstdc++.i686
zlib.i686


If you are using Fedora 24+, you may need to install 32-bit packages listed below.
ncurses-compat-libs.i686


   2. prepare source to, ex, $HOME/asuswrt


cd $HOME
tar xvfz [tar file]


   3. setup development system


Broadcom SoC models
===================


To install the tools:
    - copy the tools/brcm/ directory to /opt
    - add /opt/brcm/hndtools-mipsel-linux/bin to your path
    - add /opt/brcm/hndtools-mipsel-uclibc/bin to your path


Broadcom HND SoC models
=======================


Update your environment variables as following:
    - LD_LIBRARY_PATH=/opt/toolchains/crosstools-arm-gcc-5.3-linux-4.1-glibc-2.22-binutils-2.25/usr/lib
    - TOOLCHAIN_BASE=/opt/toolchains
    - PATH=/opt/toolchains/crosstools-arm-gcc-5.3-linux-4.1-glibc-2.22-binutils-2.25/usr/bin:/opt/toolchains/crosstools-aarch64-gcc-5.3-linux-4.1-glibc-2.22-binutils-2.25/usr/bin:/projects/hnd/tools/linux/hndtools-armeabi-2011.09/bin:$PATH


Mediatek/Ralink SoC models
==========================


To install the tools:
        - copy the tools/brcm/ directory to /opt
    - add /opt/brcm/hndtools-mipsel-linux/bin to your path
    - add /opt/brcm/hndtools-mipsel-uclibc/bin to your path
    If it is MT7621 or MT7628 chip:
        - extract tools/buildroot-gcc463_32bits.tar.bz2 to /opt
    - add /opt/buildroot-gcc463/bin to your path
    otherwise :
        - extract tools/buildroot-gcc342.tar.bz2 to /opt
    - add /opt/buildroot-gcc342/bin to your path


For MT7621 Uboot:
        - extract mips-2012.03.tar.bz2 directory to /opt
    - add /opt/mips-2012.03/bin to your uboot path


Qualcomm QCA9557 MIPS SoC models
================================


For example, RT-AC55U, 4G-AC55U.


For example, RT-AC55U, 4G-AC55U.


To install the tools:
        - extract tools/openwrt-gcc463.mips.tar.bz2 directory to /opt
    - add /opt/openwrt-gcc463.mips/bin to your path
    - If you want to build small utilities out of asuswrt box,
      add STAGING_DIR environment variable as below:


      export STAGING_DIR=/opt/openwrt-gcc463.mips


Qualcomm IPQ806x/IPQ40xx ARM SoC models
===============================


For example, BRT-AC828.


To install the tools:
    - extract tools/openwrt-gcc463.arm.tar.bz2 directory to /opt
    - add /opt/openwrt-gcc463.arm/bin to your path
    - If you want to build small utilities out of asuswrt box,
      add STAGING_DIR environment variable as below:

      export STAGING_DIR=/opt/openwrt-gcc463.arm


Note: Broadcom/Ralink(except 4708 series) platform use the same toolchain for user space program, so please set PATH to the same directory as above


   4. build firmware.


a. rt-n16
cd release/src-rt
make rt-n16


b. rt-n56u
cd release/src-ra
make rt-n56u


c. rt-n65u
cd release/src-ra-3.0
make rt-n65u


d. rt-n14u (/ rt-ac52u / rt-ac51u / rt-n11p / rt-n54u)
cd release/src-ra-mt7620
make rt-n14u
( make rt-ac52u  )
( make rt-ac51u  )
( make rt-n11p   )
( make rt-n54u   )


e. rt-ac56u (/ rt-ac68u / rt-n18uhp)
cd release/src-rt-6.x.4708
make rt-ac56u
( make rt-ac68u  )
( make rt-n18uhp )


f. rt-ac55u (/ rt-ac55uhp )
cd release/src-qca
make rt-ac55u
( make rt-ac55uhp )


g. brt-ac828 (/ rt-ac88q )
cd release/src-qca-ipq8064
make brt-ac828


h. rt-ac58u (/ rt-ac82u )
cd release/src-qca-dakota
make rt-ac58u
( make rt-ac82u )


i. rt-ac85u (/ rt-ac85u / rt-ac65u / rp-ac87 )
cd release/src-ra-5010
make rt-ac85u
( make rt-ac65u )
( make rp-ac87 )


j. rt-ac1200 (/ rt-n11p_b1 / rt-n10p_v3 / rt-ac1200gu / rt-ac51u+ / rt-ac53 )
cd release/src-ra-4300
make rt-ac1200
( make rt-n11p_b1 )
( make rt-n10p_v3 )
( make rt-ac1200gu )
( make rt-ac51u+ )
( make rt-ac53 )

——————————————————————————————————————————

先是用我装的centos7_x64编译,结果报Lib_tool未安装一类的错误,查看安装的软件包已经安过了x64版本的,然后搜索仓库没有x86版本的,猜没是这个原因。

然后就又在vbox上装了ubuntu的x86版本,再编译一切基本顺利。

我主要是想编译ebtables软件和内核模块,来开启真正的访客网络无线隔离。

编译完成后到linux源码目录,make menuconfig发现ebtable相关的都编译成了模块(M)。

又下载了一个此型号路由器的升级固件,用7zip打开,所有目录看了两遍,发现在\lib\modules\3.14.77\kernel\net\bridge\netfilter\目录已经有相关ko文件,

只是\lib\modules\modules.dep没有全部加载,尤其是ebt_ip.ko这个支持ipv4的没有加载,等有时间了把这些模块全部加载了,试下我以前的防火墙规则隔离无线是否正常。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

编译华硕路由器ACRH17源代码小记 的相关文章

  • 【已解决】@Configration爆红

    64 Configration爆红 问题原因 xff1a 一 xff1a 没有添加依赖 二 xff1a 添加依赖了 xff0c 但是依赖版本过低 解决方法 xff1a 把依赖的版本改的高一点 span class token generic
  • 关于冒泡排序的程序( 第三次作业)

    此前想过把两种排序方式都一起写在一个工程文件里 xff0c 但做了下 xff0c 能力有限 xff0c 没法写完整 xff0c 所以就只能分别写 xff0c 这个是冒泡排序 xff0c 代码已尽量做到准确的注释 xff0c 希望提醒自己往后
  • BSS段

    深入理解计算机系统 bss段 xff0c data段 text段 堆 heap 和栈 stack 1 关于BSS段的大小 2 1 BSS段中的内容 2 2 BSS段在加载运行前的处理 3 3 BSS段的作用 3 4 代码优化对BSS段的影响
  • Java 比较两个List对象差集(根据某一值)

    很多都是比较List lt String gt 的 xff0c 和自身业务不符 xff0c jdk1 8 新特性强大的Stream API xff0c 具体是什么方法 xff0c 什么作用自行百度 xff0c 复制粘贴可以解决问题就OK 4
  • Windows10 安装Redis(图文教程)

    Redis xff08 Remote Dictionary Server xff0c 即远程字典服务 xff0c 是一个开源的使用ANSI C语言编写 支持网络 可基于内存亦可持久化的日志型 Key Value数据库 一 下载redis客户
  • e17 enlightenment 介绍及配置

    为什么要有一个窗口管理器 为什么一定要有一个桌面背景 xff0c 甚至是标题栏 或是如果把一个应用程序如firefox当成桌面背景行不行 桌面能不能再快一点 我不想把资源浪费在那些用不到的地方 Linux那么多虚拟桌面 xff0c 为什么我
  • Vim: Warning: input is not from a terminal 后退出 vim 终端异常

    Vim Warning input is not from a terminal 后退出 vim 终端异常 今天执行了如下命令调用 vi 来打开 find 搜索到的文件 xff1a longyu 64 longyu pc span clas
  • UNPV2 学习:Posix Message Queues

    文章目录 特点消息队列的释放mq notify 函数mq notify 使用信号通知消息到达直接在信号处理函数中调用 mq notify 与 mq receive 函数来接收数据在信号处理函数中设置标志在程序主逻辑中调用 mq notify
  • VMware ESXI虚拟机磁盘在线扩容后fdisk -l 找不到问题解决

    VMware ESXI虚拟机磁盘在线扩容后fdisk l 找不到问题解决 在VMware ESXI终端页面为虚拟机新增磁盘后 xff0c 进入虚拟机执行fdisk l 找不到新增的盘 重启系统肯定是可以解决的 xff0c 但是机器有在跑测试
  • go调用python

    安装 安装python和go的环境 xff0c 在debian和ubuntu系统上 xff0c 还要sudo apt install python all dev安装sudo apt get install pkg config安装go g
  • C++ 20 Concept 语法

    requires expression 一种表达式 xff0c 它很像一个lambda表达式 xff0c 一个未命名元函数 例如 xff1a requires int a int b a 43 b 其中 xff1a xff08 xff09
  • 带你一步步破解Android微信聊天记录解决方案

    哪个小可爱在偷偷的看我 前言 最近公司需要做个内部应用 xff0c 需求有通话并录音上传服务器 xff0c 微信聊天记录上传服务器 xff0c 我擦 xff0c 竟然要做严重窃取隐私的功能 xff0c 一万个草泥马奔腾而来 xff0c 于是
  • 51单片机定时器初值的计算

    什么是时钟周期 xff1f 什么是机器周期 xff1f 什么是指令周期 xff1f 时钟周期 时钟周期也称为振荡周期 xff0c 定义为时钟脉冲的倒数 xff08 可以这样来理解 xff0c 时钟周期就是单片机外接晶振的倒数 xff0c 例
  • 计算机操作系统之系统调用

    目录 x1f4a8 什么是系统调用 xff0c 有何作用 xff1f x1f4a8 系统调用与库函数的区别 x1f4a8 系统调用背后的过程 x1f4a8 总结 我们将带着以下问题去学习什么是系统调用 什么是系统调用 xff0c 有何作用
  • Python简易逻辑运算

    1 逻辑运算符 逻辑运算在编程中是十分重要的组成部分 xff0c 除了布尔值外 xff0c 还有其他用于逻辑运算的运算符 and 与 or 或 not 非 and连接的条件判断必须前后全部成立结果才能成立 xff08 所有条件True才输出
  • RCE漏洞之绕过

    文章目录 花括号斜杠空格过滤一些命令分隔符黑名单绕过拼接绕过编码绕过单引号和双引号绕过利用Shell 特殊变量绕过linux中直接查看文件内容的工具文件构造 花括号 在Linux bash中还可以使用 OS COMMAND ARGUMENT
  • 调用windows系统动态库实现wifi连接及问题

    有个项目是c 做的 xff0c 有个需求是程序启动自动连接指定wifi xff0c 想到windows有个系统库支持 xff0c 就用c 43 43 调的系统库 xff0c 然后c 再调c 43 43 封装好的接口 xff0c 比较简单 x
  • ffmpeg编译时cmp: command not found的问题

    执行安装 pacman S diffutils 参考 xff1a https stackoverflow com questions 18152168 using cygwin for ffmpeg build error cmp comm
  • 关于vs2013弹出“正在初始化模板“的问题

    此处有标题 昨天想在vs2013里配置python的编译环境 xff0c 于是在网上找了资源来下载 xff0c 但是由于中途出了一点意外 xff0c 配置过程中断了 xff0c 再等我回来想要新建项目的时候 xff0c 就弹出来这个框框 x
  • C++异常和C++11标准

    异常 异常概念 xff1a 程序中可预料但无法避免的错误 异常处理概念 xff1a 从发生异常的地方开始终止 xff0c 不再进行正常的流程 xff0c 去转而执行特定的异常处理流程 关键字 xff1a try try块 xff0c 受监控

随机推荐