openWRT Ubuntu环境搭建及交叉编译工具制作与使用

Openwrt本身不支持直接编译C语言的,不支持GCC,因此,我们在Ubuntu下写好的代码,通过gcc编译后的可执行文件是不能直接在openWRT上运行的。
因此,我们需要制作基于openWRT的交叉编译工具 toolchain。

1 搭建开发环境
1.1 openWRT下载
下载Chaos Calmer (15.05)正式发行版
git clone -b chaos_calmer https://github.com/openwrt/openwrt
1.2 openWRT依赖安装
在编译openWRT之前,需要安装依赖,否则会自动停止进入make menuconfig。
一次性安装所需依赖组件,输入:
sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev subversion git-core gawk asciidoc libz-dev zlib1g-dev libssl-dev openssl
分步安装如下:
sudo apt-get install g++
sudo apt-get install libncurses5-dev
sudo apt-get install zlib1g-dev
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install unzip
sudo apt-get install autoconf
sudo apt-get install gawk
sudo apt-get install make
sudo apt-get install gettext
sudo apt-get install gcc
sudo apt-get install binutils
sudo apt-get install patch
sudo apt-get install bzip2
sudo apt-get install libz-dev
sudo apt-get install asciidoc
sudo apt-get install subversion
sudo apt-get install sphinxsearch
sudo apt-get install libtool
sudo apt-get install sphinx-common
sudo apt-get install openssl (新加的依赖库)

安装完成后需要重启终端

Feeds是OpenWRT环境所需要的软件包套件.比较重要的feeds有:
pacakges’:一些额外的基础路由器特性软件
‘LuCI’:OpenWRT默认的GUI
‘Xwrt’:另一种可选的GUI界面

./scripts/feeds update -a
./scripts/feeds install -a

1.3 openWRT toolchain编译
1.3.1 配置 menuconfig
cd openwrt
make menuconfig
进入下图所示的menuconfig配置界面,进行如下配置:
1、Target System
我手上的路由器CPU芯片是MT7620A,所以配置为 RT288x
2、Subtarget
配置为MT7620
3、Target Profile
配置为MT7620a EVB
4、Package the OpenWrt-based Toolchain
因为我们要制作toolchain交叉编译工具,所以这里通过click 空格键来切换到 “*”为选中状态

1.3.2 编译 Toolchain
配置完成后,保存并退出,然后输入命令编译:
[注意]本次编译过程中需要从国外站点下载所需的依赖文件,因此,编译之前必须挂载VPN来允许访问境外网站,且保证网络稳定,整个编译过程大概为2-4个小时。
make V=s

一切无错的情况下,会在 openwrt源码目录/bin/ramips/ 目录下找到编译好的toolchain
  • OpenWrt-Toolchain-ramips-mt7620_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2

编译交叉编译工具链,有X86和X64之分,根据系统有关系,因此使用现有的toolchain的时候,注意区分系统。

编译成功后如下图所示:


1.3.3 安装 Toolchain
openWRT的交叉编译工具链需要安装到当前系统中,我使用的是Ubuntu 64,然后配置环境变量,才能使用。步骤如下:
1、解压toolchain
将交叉编译工具链解压到Ubuntu的“、opt”目录下,载openWRT的更目录下运行:
sudo tar jxvf ./bin/ramips/OpenWrt-Toolchain-ramips-mt7620_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2 -C /opt/
2、设置环境变量
执行 sudo gedit /etc/bash.bashrc打开文件,在文件最后添加如下配置:
export PATH=/opt/OpenWrt-Toolchain-ramips-mt7620_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin:$PATH

export STAGING_DIR=/~/workspace/openwrt/staging_dir
其中, export STAGING_DIR配置的是STAGING路径,取决于你openWRT源码的路径。
保存后,执行如下命令:
source /etc/bash.bashrc
3、检查是否安装成功
执行命令:mipsel-openwrt-linux-gcc -v
安装toolchain,如下图所示:

上图中,Error:ld不用管。

1.3.4 Toolchain测试
1、编写hello.c
测试程序:hello.c
源码:
#include <stdio.h>
int main(void)
{
unsigned char i = 0;
while(1)
{
printf("\n hello openWRT! %d\n", i);
sleep(1);
}
return 0;
}

2、交叉编译
mipsel-openwrt-linux-gcc hello.c -o hello
生成可执行文件 hello
该可执行文件是试用openWRT的toolchain编译所得,是无法在Ubuntu上直接运行的,需要拷贝到openWRT里运行。

3、通过winSCP放到openWRT
用户名:root
密码:root


4、通过SSH远程登陆后执行




添加X可执行权限:
chmod 777 hello
执行./hello

  • 9
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
晶晨S805是一款芯片的型号,被广泛应用于嵌入式系统、智能家居、物联网等领域。以下是对晶晨S805 datasheet的回答: 晶晨S805 datasheet是该芯片的技术手册,包含了该芯片的详细技术规格和功能说明。在datasheet中,会列出芯片的电气特性、引脚定义、内部架构、时序图、功能描述以及支持的外设接口等重要信息。 首先,电气特性部分会详细说明芯片的工作电压范围、工作温度范围、功耗等重要参数,以及与其他外设的兼容性说明。 其次,引脚定义部分会列出芯片的每个引脚的具体功能,如VCC (供电电压)、GND (接地)、复位引脚、时钟引脚等。这些定义有助于开发人员正确连接芯片并编写相应的驱动程序。 在内部架构部分,会详细描述芯片的功能模块组成、内部寄存器结构以及各模块之间的连接关系,帮助开发人员全面了解芯片的工作原理以及如何进行编程控制。 时序图部分会展示芯片内部各信号的时序关系,以及外部输入输出的时序要求,为开发人员做好时序设计提供参考。 功能描述部分会对芯片支持的各种功能进行详细解释,如支持的通信协议(如SPI、I2C等)、GPIO控制、定时器等功能。这些说明有助于开发人员根据自己的需求,选择合适的功能实现自己的应用场景。 最后,支持的外设接口部分会列出芯片所支持的各种外设接口,如UART、SPI、I2C等,为开发人员选择适配的外设提供参考。 综上所述,晶晨S805 datasheet是一份非常重要的技术文档,对于开发人员来说,详细了解该芯片的技术规格和功能说明,有助于正确地使用和开发该芯片,实现各种应用需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值