openwrt是嵌入式linux,非常方便的OpenWrt的嵌入式Linux开发环境

今天听中央经济广播电台说,今年有559万大学毕业生,大学生的就业形式严峻.我想那些精通Linux开发的毕业大学生们,估计一点也不用担心,因为他们已经不再是一颗大白菜了.

最近在帮一个朋友把OpenWrt移植到一块单板上,有一些心得,分享给大家.

OpenWrt是一个很好的学习Linux的平台,而且使用一台现成Linksys的路由器做为你的硬件开发平台.希望下面对OpenWrt的开发环境的一些介绍能够对初学Linux的嵌入式开发的同学们有用.(下面的文字有部分翻译自OpenWrt的Document)

当对于刚刚开始做嵌入式linux设备的开发的最大挑战是:你不能只安装一个linux拷贝就期望能够生成firmware.由于大多数嵌入式设备的硬件平台大多数时间和你的开发机器的硬件不兼容,因此需要一个过程叫做交叉编译,才能编译并生成一个的linux发行版本运行在你的设备上.

这个创建交叉编译器的过程比较复杂.大多数情况下你不会这样做,一般使用一个现成的交叉编译工具,这样能够节省很多时间,但是这个现成的工具一般不是最新的,且一般不会更新.同样对于linux kernel来说,一般使用单板或者芯片供应商提供的,它一般不是最新的,而你并不清楚这个kernel是否打过补丁,做过哪些修改.

在OpenWrt的开源项目,它只提供了你需要的源代码包的补丁,当你编译的时候,它的Makefile能够从网站上下载源代码,打补丁,编译,安装.这些包包含了你需要的linux kernel,交叉编译工具,C库,应用程序等.简单的操作就能够实现生成你需要的firmware.下面是一个例子,你会发现实在太简单和方便了.

在一台安装linux的主机上(我用的是Fedora Core 4, 这个环境的搭建可以参考我的blog的文章《eCos 开发环境搭建指南-1.0.0》),编译一个Linksys WRT54G的firmware,只要下列步骤:

1. svn checkout https://svn.openwrt.org/openwrt/trunk kamikaze 下载OpenWrt的主干版本

2. cd kamikaze

3. make menuconfig 配置你需要的硬件平台,需要的软件包等

4. make  编译

OpenWrt会帮你生成开发环境,编译和安装交叉编译工具,编译linux kernel等.当然它会下载所有源码,因此第一次编译的时间会很长(以后再编译就很快了),而且你一定要确保你的linux主机始终接在Internet上.

当前OpenWrt支持下面的硬件平台:

AMCC Taishan [2.6]

AMD Alchemy AU1x00 [2.6]

Atheros [2.6]

Atmel AVR32 [2.6]

Broadcom BCM947xx/953xx [2.4]

Broadcom BCM947xx/953xx [2.6]

Intel XScale IXP4xx [2.6]

Magicbox [2.6]

Mikrotik RouterBoard 532 [2.6]

x86 [2.6]

这些硬件平台大多基于厂商提供的一些基于Linux的产品,当前OpenWrt已经支持全球的76家厂商的产品,最值得一提的就是Linksys WRT54G的无线路由器(v1-v4版本是基于linux的,v5以上是vxWorks版本的,因此如果购买时需注意版本号,要买旧货,taobao上有卖),OpenWrt开源项目最初就是基于这款的路由器,后来还衍生出DD-WRT,TOMATO等开源项目.

下图是我的编译一个截屏

43614174_1.jpg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528869.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux添加有效群组,Linux中的有效群组和初始群组

在Linux中,每个账号都可以加入多个群组,那用户登录后默认的用的是哪个群组呢?关于这个问题就要说说有效群组和初始群组了。在用户账号信息文件/etc/passwd中,那个由冒号分割的7个栏目中,第四个栏目是群组ID(GID)&#…

php多个表中查找数据_HeidiSQL 免费的可视化数据库管理工具

HeidiSQL是一款免费的软件,并且易于学习和使用。HeidiSQL让你从数据库内可视化的读写数据、结构体。它支持MariaDB、MySQL、Microsoft SQL、PostgreSQL等数据库。功能免费且开源内置中文在同个窗口连接多个服务支持以命令行形式连接服务连接支持SSH、SSL创建修改表、…

嵌入式linux启动根文件系统,嵌入式Linux根文件系统制作和挂载

嵌入式Linux系统由三部分组成: uboot、kernel、根文件系统, 还是这张老图这里的根文件系统可以说是包含两个部分: 一个是根,一个是文件系统那么什么是根呢?哈哈 其实根表示的就是第一个的意思下面贴张图看看整个根文件…

sqlite 查询 支持多用户同时_SQLite支持多进程同时操作数据库文件吗?

多个进程可以同时打开同一个数据库。多个进程可以同时执行SELECT。但是,只有一个进程可以随时对数据库进行更改。SQLite使用读/写锁来控制对数据库的访问。(在Win95 / 98 / ME下,缺少对读写锁的支持,而是使用概率模拟。)但请注意:…

python 字符串处理 字典_python 字符串和字典

一、字符串操作name "my name is \t {name} and i am {year} years old"1.首字母大写print(name.capitalize())2.统计字符串中相同的字符print(name.count("n"))3.格式化字符串print(name.center(50,"-"))#打印50个-,把name的值放中…

查询linux上调度命令,浅析Linux中crontab任务调度

一.创建调度任务指令crontab -e 进入当前用户编辑界面crontab -u 用户名 -e 进入指定用户编辑界面进入crontab任务编辑界面任务编写格式#每分钟执行查看一次/ect目录,把目录内容写进/tml/a.txt下*/ 1 * * * * ll /etc >> /tmp/a.text#crontab对象 指令#多个任务同时执行#…

pgsql 查询每天的最后一条_Qamp;A | 如何允许他人查询表单数据?

小金Q&A来啦!这一期小金Q&A中,小金收集到近期大家关注最多的几个问题。小金将定期为小金人们答疑解惑,帮助你每天用好小金一点。●Q&A●问:如何批量设置新数据微信提醒?答:点击右上角头像 个人…

pythonjson构建二维数组_python后台获取ajax传递的二维数组,保持原有数据结构不变...

python后台获取ajax传递的二维数组,保持原有数据结构不变。前台主要程序:arr_data [[1,2,3],[4,5,6]];//创建二维数组var json_data JSON.stringify(arr_data);//将二维数组转换为json格式//ajax将json_data传入后台$.ajax({url : "/path",d…

linux多线程访问共享资源,多个线程访问共享对象和数据

多个线程访问共享对象和数据有很多方式,但是可以分为两大类:1.多线程执行代码相同的。2.多线程执行代码不同的对于多线程执行代码相同的情况来说:1)使用同一个Runnable对象,在new Thread的时候放入相同的这个对象public static vo…

linux关闭交互模式,linux – 关闭cp(copy)命令的交互模式(cp:overwrite?)

推荐文章更新源的方法提前保存一下原来源 sudo cp sources.list sources.list.bak 换源命令: sudo gedit /etc/apt/sources.list 或者 sudo vim /etc/apt/sources.list 或者 sudo vim /etc/apt/sources.list推荐文章1 删除内容gg 顶部G 底部:set nu 显示行号:10,.d …

sql截去最后一位_SqlServer从左边 最后 中间截取字符串

SqlServer从左边 最后 中间截取字符串(摘录)2009-06-01 15:04已知: 字段AF:\photo\Winter Leaves.jpg要求:分段截取每段字符[字段A不能为TEXT类型,否则报错]解决方法:---截取字符串A的第一个\左边的字符串select left(A,charindex(/,A)-1) MEMO:charindex(\,A)-1 -在字符…

linux 解压tar.jz,linux系统压缩文件和解压缩命令

linux系统压缩文件和解压缩命令tar命令   解包:tar zxvf FileName.tar打包:tar czvf FileName.tar DirName gz命令   解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:gzip FileName.tar.gz 和 .tgz解压&a…

linux redis-4.0,Linux Redis 4.0.2 安装部署

Linux Redis 4.0.2 安装部署01 安装GCCyum -y install gcc gcc-c libstdc-devel tcl -y02 下载安装包cd /export/software/wget http://219.238.7.71/files/403400000ABE0C0C/download.redis.io/releases/redis-4.0.2.tar.gztar -zxvf redis-4.0.2.tar.gz -C ../serverscd /exp…

ncverilog脚本_NC-Verilog仿真详解

ncverilog仿真详解发表在ASIC/FPGA/汇编, 学习笔记, 编程开发 | 由阿布 | 十一月26, 2011 | 0标签: ncverilog, 仿真数位IC工具简介——Simulator 工具ModelSimModelSim是Mentor公司所推出的软体, 主要用来当作VHDL的模拟器, 也是目前CIC在VHDL方面的主要的模拟软体;但ModelSim…

android 串口一直打开_android 若何打开串口以及与串口通信

串口 若何 打开 通信 android android 串口通讯 androidusb转串口通讯 android 蓝牙串口通讯 android串口通讯demo ble串口通讯 android android 打开通讯录 android打开串口 android 打开串口失败 android如何打开串口串口通信,对于没接触过这方面的伴侣们&#xf…

海康9800平台linux的sdk,流媒体项目外包海康9800平台sdk适配

1. 整体流程图,见附件;2. 任务描述:1》海康9800平台sdk适配;需要研究信令协议及开发对接程序(登陆平台,获取设备的列表,开启实时预览,停止实时预览等);需要研究音视频流的传输协议及…

python假设税前工资和税率如下_Python来做假设检验

对于任何一个频率派的数据科学家而言,日常做数据分析难免还是会用到一些假设检验方法做一个数据探索和相关性、差异性分析,并且这也是做后续统计模型(机器学习类预测模型可以略过)预测的第一步。这篇博文目的就是整理基本的假设检验方法、适用条件和调用…

linux fall delay 10,Cell的Rise delay和Fall delay、Rise transition和fall transition

Cell的Rise delay和Fall delay、Rise transition和Fall transition介绍:如下图所示为一个Cell的lib中关于cell_rise/cell_fall、rise_transition/fall_transition的描述:在NLDM模型的.lib中,cell_rise/cell_fall它描述的是Cell从输入到输出的…

linux定时器无法重启pm2,pm2无法自动重启

Hawk 3. 网页采集器1.基本入门 1. 原理(建议阅读) 网页采集器的功能是获取网页中的数据(废话).通常来说,目标可能是列表(如购物车列表),或是一个页面中的固定字段(如JD某商品的价格和介绍,在页面中只有一个).因此 ...man asciiLinux 2.6 - man page for ascii (linu…

linux ps 详解 博客,Linux PS 命令 详解(转)

Linux操作系统PS命令详细解析(转)要对系统中进程进行监测控制,用 ps 命令满足你。/bin/psps 是显示瞬间行程的状态,并不动态连续;如果想对进程运行时间监控,应该用 top 工具。kill 用于杀死进程。ps 的参数说明l 长格式输出&#…