zoukankan      html  css  js  c++  java
  • OpenWRT交叉编译

    对于当前不在OpenWRT repository中的软件,如果是用源码形式发布的,那么可以用OpenWRT Buildroot进行交叉编译。

    • 首先编译好Buildroot(一般编译过一次固件,就已经编译好了)
    • 找到目录staging_dir/toolchain-architecture_gcc-complierver_uClibc-libcver/bin/
    • 把它加入到环境变量PATH:

    PATH=$PATH(上面提到的目录)

    export PATH

    • 把环境变量STAGING_DIR设置为上面提到的toolchain目录:

    STAGING_DIR=toolchain目录

    export STAGING_DIR

    • 设置编译设置中的一些参数,我这里用到的是修改makefile:

    make CC=architecture-openwrt-linux-uclibc-gcc LD=architecture-openwrt-linux-uclibc-ld

    • 如果缺一些头文件或者库文件,那么需要修改CFLAGS和LDFLAGS,让它们指向staging_dir/target-architecture_uClibc-libcver/usr/include和.../usr/lib目录

    编译单独的安装包

    • 首先make menuconfig,在里面选择好需编译的软件包和它依赖的库。
    • 然后make tools/install

    make toolchain/install

    • 最后就可以编译需要的软件了:

    make package/***/compile

    make package/***/install

    make package/***/index

    这时就可以在bin目录下找到软件的安装包了。

    (最后一个make index不知道是什么东西,不运行已经能在bin下找到.ipk了)

      这次主要是路由器又出问题了,于是重新编译了一下固件(TP720的),发现认证上不去网,于是尝试交叉编译xd-h3c,还是不行,然后编译了个tcpdump装到路由上,抓包,现象很诡异,好像路由器的处理器老化了一样,收到包后很久才回复。可能是驱动出 了问题?不知道。。最后等了很久就认证成功了。

      当时折腾得烦得很,差点一怒之下买个树莓派或者cubieboard,不想再忍受这种痛苦了。

      当穷学生就是惨,以后工作了应该能使劲折腾了。

      期间看了下8021.X协议。这个协议主要是用来认证的,单说以太网上面,它把一个物理端口划分为逻辑上的两个端口,其中一个用来认证,所有的认证包都能通过,另一个用来发送正常的数据包,但是只有当认证成功了的时候那个端口才开放。

  • 相关阅读:
    Linux MySQL的root无法登录数据库ERROR 1045 (28000)
    Linux 命令行初始化MySQL数据库
    Centos6、Centos7防火墙基本操作整理
    文本三剑客之awk
    加密类型、数据加密解密过程以及CA创建
    Centos7启动流程及systemd中Nginx启动配置
    Linux任务计划
    Linux进程管理
    IP地址简介及Linux网络管理工具
    Linux脚本
  • 原文地址:https://www.cnblogs.com/02xiaoma/p/4314592.html
Copyright © 2011-2022 走看看