编译适用于mt7620a的OpenWrt

前言

OpenWRT是一个高度模块化、自动化的嵌入式Linux系统,拥有强大的网络组建和扩展性,常常被用于工控设备、电话、小型机器人、智能家居、路由器以及VOIP设备中,其中在智能路由器上有广泛使用。同时它还提供了100多个已编译好的软件,而且数量还在不断增加。

OpenWRT支持各种处理器架构,无论是ARM、X86、PowerPC或者MIPS都有很好的支持。其多达3000多种软件包,囊括从工具链(toolchain),到内核(Linux Kernel),到软件包(packages),再到根文件系统(rootfs)整个体系,是的开发者只需要简单的一个make命令就可以方便快速的定制一个具有特定功能的嵌入式系统。

对于想学习嵌入式Linux开发的工程师来说,OpenWRT是非常适合的(引用)

我第一次接触Openwrt是在2013年,那是正是高二,家里有一个TP-Link的wr740路由器,mips架构,4M的Flash,16M的内存,当时刷过dd-wrt和openwrt。

第二次是在大二了,当时为了用路由器上校园网,撸了几台k2,研究了如何在openwrt等第三方路由器固件下实现锐捷和安腾的认证。

今天我要给k2编译一下Openwrt最新的Snapshot固件,顺便解决一下不识别16M闪存的问题。

Read more

温习一波GCC

GCC

GCC是GNU Compiler Collection的缩写,跨平台编译器集合。
支持C,C++,Java等语言。

C的编译

  1. 预处理
  2. 编译:生成汇编语言.s文件
  3. 汇编:生成目标代码.o文件
  4. 链接:生成可执行程序
Read more

交叉编译适用于Padavan固件的可执行文件

交叉编译

由于不同平台编译出来的文件并不能通用,比如在arm下make命令编译的文件,放到mips上就不能运行。
所谓交叉编译就是在某一平台下编译另一平台的bin文件(可执行文件)。

padavan

俄罗斯大神的杰作,极其稳定,在CN大神经过本地化之后加入了很多的功能(SS、adbyby等)。

这里推荐使用hiboy的固件

准备

提示: 千万别用centos(别问我为什么,我卡在这里很多天之后换成debian才编译成功)。
系统: Debian 7

Read more

交叉编译适用于mips架构ar71xx的mentohust

交叉编译

因为我的wr740N硬改了16M flash,刷上了openwrt 15.05.01,但是这个路由器有点老,适用于锐捷认证的mentohust没有这么高版本的可执行文件,于是今天自己试着交叉编译了一下。
途中还是挺顺利的。

Read more