我们看到的很多固件,都是运行的linux系统,比如基于broadcom芯片的无线路由器。其固件分为三个部分:cfe、kernel、nvram。. t% J- V; \) }- B( q& U# G

cfe为基本的硬件io部分,负责各硬件的沟通和协调运行,类似于主板的bios,在沟通各硬件协调工作的同时,调用nvram的设置信息,启用kernel内核。cfe启动的时候,启用kernel之前会检测一下kernel的校验和,如果发现不对,就会停止启动,同时开始处于等待状态(等待一个完整的kernel内核)。

0 S

kernel为整个固件的内核,也就是真正运行的linux程序,就像台式机的windows,但它不仅是一个系统而且包含了里面所有应用程序,说白了就是我们电脑使用的平台,包含了系统和各种功能程序。4 H# l+ h8 t. M7 I

nvram是我们设置的配置信息,比如我们设置无线路由器的pppoe参数、无线加密密码等等,就是保存在nvram里面,它就是一个设置参数的总览,调用nvram就可以看到全部的设置信息。所谓清空设置恢复到出厂值,就是清除nvram,然后cfe会在重启的时候自动建立出厂值的nvram参数。

搞清楚了三个部分的功能,一些问题就好解决了。0 Q2 u+ m$ {5 D5 D4 W1 A, f

1 ]# e  U5 P+ Z

1,是jtag。无论是jtag还是ejtag,它仅仅是一个工具程序,目的是用来重写flashrom。由于jtag的接口限制了传输速率,通常我们只写flashrom的cfe部分,让它来引导无线路由器工作,然后利用cfe启动检测kernel无效就等待的过程,采用tftp上传整个固件文件到flashrom,达到重写固件的目的。

2,对比kernel,改写固件。比如同样硬件配置的机器,其cfe就可以通用,性能的差异就在于kernel部分了,我们就可以通过移植较好性能的kernel部分来达到改变整个固件的目的。比如电信配送的很多无线一体机,配饰很多都完全一样,但界面和功能都不通,就可以采用这种方法来增强性能。

3,对于cfe完好的机器,也可以通过ttl线来写入固件,因为有一些机器是不支持tftp的。

linux编写路由器固件,基于linux系统的无线路由器固件组成相关推荐

  1. linux dhcp 论文,毕业论文—基于linux的dhcp服务器配置.doc

    毕业论文-基于linux的dhcp服务器配置 基于Linux的DHCP服务器配置 摘 要 随着互联网的普及,人们的工作.学习和生活与网络联系越来越紧密,搭建了许多不同的网络,如企业网.校园网和城区网等 ...

  2. 如何学习修改linux系统固件,基于Linux的固件,如何实现更新的好方法?

    我正在使用alix 2d13开发基于linux的设备. 我开发了一个脚本,负责创建映像文件,创建分区,安装引导加载程序(syslinux),内核和initrd,并注意将根文件系统文件放入正确的分区. ...

  3. linux看门狗设备,基于Linux构建无人值守系统(看门狗)

    基于Linux构建无人值守系统(看门狗) 在各种嵌入式设备soc中基本都提供了看门狗,在很长一段时间里我对看门狗的理解就是"关掉它,不然它会找麻烦".但是当某种需求存在的时候,它又 ...

  4. linux usb显卡驱动,基于Linux系统的USB显卡多用户平台开发

    摘要: 自上个世纪九十年代以来,Linux系统得到了快速的发展,由于Linux继承了UNIX的以网络为核心的设计思想,采用模块化的设计结构,使得Linux取得了广泛的应用.于此同时,计算机硬件也取得了 ...

  5. linux安装无线电软件,基于Linux的软件无线电系统软件平台的研究与实现

    摘要: 随着移动通信技术和互联网技术的高速发展,4G.5G等相关新业务.新标准正在频繁的演进和更新.新的协议标准在带来更高速率业务能力的同时,对通信协议算法的研究验证平台提出了更高的要求.同时,高速率 ...

  6. linux防火墙阻断目的,基于Linux防火墙的内部邮件监控与阻断系统

    基于Linux防火墙的内部邮件监控与阻断系统 给出了一种邮件监听与阻断系统的设计和实现方案.方案的实现建立在Linu (本文共3页) 阅读全文>> 毫无疑问,通过电子邮件发送各种信息是个简 ...

  7. linux 车载视频监控,基于Linux平台车载视频监控系统研发-计算机科学与技术专业论文.docx...

    基于Linux平台车载视频监控系统研发-计算机科学与技术专业论文 目录 HYPERLINK \l "_bookmark0" 第一章 绪论1 HYPERLINK \l "_ ...

  8. linux arm关闭光栅,基于Linux的光栅检测系统的软件设计与实现.pdf

    基于Linux的光栅检测系统的软件设计与实现.pdf - - - - - - - - - - 一 竣 应 ((_- 基 于 Linux 系 统 的 软 件 设 计 与 实 现 东北大学信息科学与工程学 ...

  9. 基于linux的游戏论文,基于linux系统的图形单机版农场游戏——毕业论文.doc

    基于linux系统的图形单机版农场游戏--毕业论文 基于linux系统的图形单机版农场游戏 摘要 随着社会的发展,人们的生活越来越丰富多彩,特别是网络的飞速发展,让人们可以在工作之余享受更多的乐趣和缓 ...

最新文章

  1. define 防 php,php中define防止跳墙
  2. 【转摘】Word提升效率的快捷键
  3. mysql 回表查询优化_MySQL优化:如何避免回表查询?什么是索引覆盖?
  4. vue跨域解决及打包
  5. jquery日期插件_AngularJS 日期时间选择组件(附详细使用方法)
  6. 【转】RabbitMQ六种队列模式-5.主题模式
  7. linux笔记-硬链接和符号链接
  8. 定积分在计算机中的应用,计算机模拟定积分的定义
  9. .net体系结构——C#高级编程第一章
  10. qt 界面控件布局
  11. 工信部教育与考试中心-软件测试工程师考试题A卷-答
  12. 4p营销组合策略案例_营销组合策略的4P讲解
  13. 在虚拟机下安装配置Linux和Oracle
  14. [搞笑图片] 搞笑图片
  15. [DX10游戏教程(C++)]教程1:在Visual Studio 2012中配置DirectX 10
  16. Http协议之301,302和307
  17. 国产系统UOS上的可视化大屏电子看板系统
  18. 我的世界药水合成表图Java_我的世界药水合成表图分享 我的世界药水合成配方大全...
  19. 基于matlab的多径信道的仿真
  20. 在VUE中使用Lottie动画

热门文章

  1. 《暗战强人:黑客及反黑客工具快速精通》学习笔记
  2. JS 根据今天的日期获取本周星期一与星期天的日期
  3. springboot访问vue的html,Springboot中如何访问静态资源
  4. 2019-02-01
  5. java正则表达式无误却匹配失败,如何用正则表达式匹配英文段落
  6. Dom4j中使用asXML方法之标签自闭合问题
  7. 时间处理相关类(Calendar,Instant,LocalDate,LocalTime,LocalDateTime)
  8. python-配置文件库ConfigParser介绍
  9. 微信电商收付通关于分账动账通知踩坑记录
  10. 雅点ps光效纹理叠加扩展面板