0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Openwrt開發(fā)指南 第1章 OpenWrt入門

嵌入式大雜燴 ? 來源:嵌入式大雜燴 ? 作者:嵌入式大雜燴 ? 2023-06-27 09:09 ? 次閱讀

1 簡介

現(xiàn)階段openwrt官方支持的路由列表:wiki.openwrt.org/toh/start

如果要學(xué)習(xí)openwrt的話,買些列表中二手的路由器來實(shí)踐下更容易學(xué)習(xí),大部分要升級一下rom芯片和內(nèi)存芯片,典型配置都是4M、64M。

OpenWrt 可以被描述為一個嵌入式Linux 發(fā)行版,(主流路由器固件有 dd-wrt,tomato,openwrt三類)而不是試圖建立一個單一的、靜態(tài)的系統(tǒng)。OpenWrt的包管理提供了一個完全可寫的文件系統(tǒng),從應(yīng)用程序供應(yīng)商提供的選擇和配置,并允許您自定義的設(shè)備,以適應(yīng)任何應(yīng)用程序。

對于開發(fā)人員,OpenWrt 是使用框架來構(gòu)建應(yīng)用程序,而無需建立一個完整的固件來支持;對于用戶來說,這意味著其擁有完全定制的能力,可以用前所未有的方式使用該設(shè)備。

當(dāng)Linksys釋放 WRT54G/GS 的源碼后,網(wǎng)上出現(xiàn)了很多不同版本的 Firmware 去增強(qiáng)原有的功能。大多數(shù)的 Firmware 都是99%使用 Linksys的源碼,只有1%是加上去的,每一種 Firmware 都是針對特定的市場而設(shè)計,這樣做有2個缺點(diǎn),第一個是難以集合各版本Firmware的長處,第二個是這版本距離 Linux 正式發(fā)行版越來越遠(yuǎn)。

OpenWrt 選擇了另一條路,它從零開始,一點(diǎn)一點(diǎn)的把各軟件加入去,使其接近 Linksys 版 Firmware的功能,而OpenWrt 的成功之處是它的文件系統(tǒng)是可寫的,開發(fā)者無需在每一次修改后重新編譯,令它更像一個小型的 Linux 電腦系統(tǒng)。

2 OpenWrt發(fā)展歷程

OpenWrt 項目由 2004 年 1 月開始, 第一個版本是基于 Linksys 提供的 GPL 源碼及 uclibc 中的 buildroot 項目, 這個版本稱為 “stable” 版, 在網(wǎng)上至今仍有很多項目使用這個版本,較為有名 Freifunk-Firmware 和 Sip@Home.

到了2005年初, 一些新的開發(fā)人員加入了這項目,幾個月后他們釋出了第一個 “experimental” 版本, 這和以前版本不同的是,這版本差不多完全舍棄了 Linksys 的 GPL 源碼, 使用了 buildroot2 作為核心技術(shù),將OpenWrt 完全模塊化,OpenWrt 使用 Linux 正式發(fā)行的核心源碼(2.4.30),加上了一些補(bǔ)丁和網(wǎng)絡(luò)驅(qū)動,開發(fā)隊伍更為OpenWrt添加了許多免費(fèi)的工具,可以直接把Image寫入 Flash (mtd)里面,設(shè)定無線功能和VLAN交換功能,這個版本名為“White Russian”,而1.0版本于2005年底公布。

3 OpenWrt特點(diǎn)

OpenWRT是一個高度模塊化、高度自動化的嵌入式Linux系統(tǒng),擁有強(qiáng)大的網(wǎng)絡(luò)組件和擴(kuò)展性,常常被用于工控設(shè)備、電話、小型機(jī)器人、智能家居、路由器以及VOIP設(shè)備中。 同時,它還提供了100多個已編譯好的軟件,而且數(shù)量還在不斷增加,而 OpenWrt SDK 更簡化了開發(fā)軟件的工序。

OpenWRT不同于其他許多用于路由器的發(fā)行版,它是一個從零開始編寫的、功能齊全的、容易修改的路由器操作系統(tǒng)。實(shí)際上,這意味著您能夠使用您想要的功能而不加進(jìn)其他的累贅,而支持這些功能工作的linux kernel又遠(yuǎn)比絕大多數(shù)發(fā)行版來得新。

4 OpenWrt的優(yōu)缺點(diǎn)

4.1 優(yōu)點(diǎn)

如果對 Linux 系統(tǒng)有一定的認(rèn)識, 并想學(xué)習(xí)或接觸嵌入式 Linux 的話, OpenWRT很適合。而且OpenWrt支持各種處理器架構(gòu),無論是對ARM,X86,PowerPC或者M(jìn)IPS都有很好的支持。其多達(dá)3000多種軟件包,囊括從工具鏈(toolchain),到內(nèi)核(linux kernel),到軟件包(packages),再到根文件系統(tǒng)(rootfs)整個體系,使得用戶只需簡單的一個make命令即可方便快速地定制一個具有特定功能的嵌入式系統(tǒng)來制作固件。

4.2 缺點(diǎn)

由于CPU內(nèi)核體系不同,造成很多應(yīng)用程序移植到OpenWrt上的時候經(jīng)常崩潰。

由于ADSL硬件模塊的驅(qū)動程序沒有開放源代碼,造成很多ADSL一體無線路由的ADSL模塊不能工作而造成功能缺失(RG100A和DB120除外)。

由于OpenWRT并不是官方發(fā)布的路由器固件,所以要使用(刷入該固件)有困難,而且其基于Linux,導(dǎo)致OpenWRT的入門門檻較高。

5 OpenWrt的開發(fā)過程

一般嵌入式 Linux 的開發(fā)過程, 無論是 ARM, PowerPC 或 MIPS 的處理器, 都必需經(jīng)過以下的開發(fā)過程:

1)創(chuàng)建Linux交叉編譯環(huán)境;

2)建立Bootloader;

3)移植Linux內(nèi)核;

4)建立Rootfs (根文件系統(tǒng));

5)安裝驅(qū)動程序;

6)安裝軟件;

熟悉這些嵚入式 Linux 的基本開發(fā)流程后,不再局限于 MIPS 處理器和無線路由器, 可以嘗試在其它處理器, 或者非無線路由器的系統(tǒng)移植嵌入式 Linux, 定制合適自己的應(yīng)用軟件, 并建立一個完整的嵌入式產(chǎn)品。

6 OpenWrt的歷史版本

  • White Russian

OpenWRT的初始版本,從2005年7月的White Russian RC1開始發(fā)展,一直到2007年1月才發(fā)布White Russian 0.9。

  • Kamikaze

OpenWRT的第二個版本,從2007年6月開始發(fā)布Kamikaze 7.06,一直更新到2010年1月的Kamikaze 8.09.2結(jié)束。這期間OpenWRT進(jìn)行了大量改進(jìn),并為它的發(fā)展打下了堅實(shí)的基礎(chǔ)。

2010年03月04日,OpenWrt Backfire 10.03 Beta發(fā)布,該版本是開源的路由器固件,基于linux,功能強(qiáng)大,支持很多主流的平臺和路由器,甚至支持國內(nèi)的君正jz4740平臺,是學(xué)習(xí)和開發(fā)嵌入式,也是工業(yè)、 商業(yè)應(yīng)用理想平臺。更新方面: brcm-2.4 更新到 2.4.37 kernel ,other targets 更新到 2.6.30 or 2.6.32 ,arm/mips平臺的 gcc 更新到 4.3.3 ,powerpc的gcc更新到 4.4.3,uClibc 更新到 0.9.30.1 , Broadcom 11g 芯片組的 b43 無線網(wǎng)卡驅(qū)動更新到 2.6 kernel,支持Atheros 11n ath9k ,支持很多新的ar71xx設(shè)備,magicbox歸入ppc40x平臺。

2010年03月25日,OpenWrt 發(fā)布 Backfire 10.03-rc1,支持國內(nèi)留下的 tp-link最新多款11n的路由器,是不是想讓路由器支持萬能中繼呢,或者增加路由器的多wan口支持呢,更多的這些高端路由才有的功能,或許能 讓家用路由輕松具備。

2010年04月07日,OpenWRT放出Backfire 10.03正式版。

2010年08月29日OpenWRT放出了Backfire 10.03.1。修正了很多BUG,提高了兼容性。TP-LINK WR841N v2 已經(jīng)可以正常使用了,包括無線部分和上網(wǎng)部分。 自rc1之后的變動:改進(jìn)了防DNS重綁定攻擊,改進(jìn)了uhttpd穩(wěn)定性, Rootfs生成修復(fù)(Orion景象),修正了基于BRCM47XX的PCI初始化,添加了rtl8366 vlan 改變的 整合腳本,還原了一般x86鏡像 GRUB控制臺,提高了ar71xx系列以太網(wǎng)驅(qū)動程序性能,添加了ar7240 交換機(jī)驅(qū)動,一些swconfig 和 交換機(jī)驅(qū)動的改進(jìn),RDC 使用啟動加載器支持波特率,允許原生HID 支持 通過添加 kmod-input-hid,6in4:適當(dāng)?shù)奶幚砹薖PPoE連接并且修復(fù)了終端隧道更新。

  • Attitude Adjustment

于2013年4月25日放出。相對于Backfire版本,Attitude Adjustment將內(nèi)核更新至linux 3.3,改進(jìn)了網(wǎng)絡(luò)配置方法,并添加了諸多新特性,例如對IPv6的初步支持。同時,這個版本也改善了防火墻,更新了許多新的驅(qū)動,并添加了許多新的支持的型號。對ramips、bcm2708(即樹莓派)等方案提供了支持。

  • Barrier Breaker

于2014年10月2日放出。Barrier Breaker更新了3個RC版本,相對Attitude Adjustment,其內(nèi)核升級至 3.10,添加了原生IPv6支持;改進(jìn)了文件系統(tǒng),添加了nand閃存的系統(tǒng)更新,并支持文件系統(tǒng)的快照和回滾;UCI配置工具也得以改進(jìn),支持測試性配置并允許將配置回滾至上一次穩(wěn)定工作的狀態(tài);加強(qiáng)了網(wǎng)絡(luò)功能,對動態(tài)防火墻規(guī)則、空間等添加了支持。這個版本相當(dāng)穩(wěn)定。

  • Chaos Calmer

OpenWrt已于2016年3月22號迎來了15.05.1版本更新,這也是“Chaos Calmer”系列的首個發(fā)行版。其更新了許多內(nèi)部組件,首先是內(nèi)核更新到了3.18.23,修復(fù)了keyring reference leak(CVE-2016-0728);其次還迎來了OpenSSL 1.0.2f、Samba 3.6,以及netid、uhttpd、rpcd、uci、procd、ubox和hostapd等改進(jìn)。

OpenWrt 15.05.1還帶來了諸多驅(qū)動更新,挑重要來講的話,有ledtrig-netdev、bcm47xxpart(支持在有壞塊的NAND上用bcm53xx)、brcmfmac(更好的TX功率/波束成型/站轉(zhuǎn)儲支持)、8139c、solos-pci(增加了RX動態(tài)余量)、xrx200-net、以及mac80211。

除了上述這些底層改進(jìn),OpenWrt 15.05.1“Chaos Calmer”還添加了對新設(shè)備的支持,包括Linksys WRT1900ACS(mvebu)、LinkIt Smart7688(rampis)、TP-Link TL-WR841N/ND v10(ar71xx)、D-LINK DIR-615 rev. Ix(ar71xx)、ZBT WG2626(ramips)、以及Linksys WRT1900ACS(mvebu)。

此外,Gainstrong MiniBox v1.0 (ar71xx)、TP-LINK TL-WR941ND v6 international version (ar71xx)、TL-WR741ND v5 (ar71xx)、以及WR740N v5.0 (ar71xx) 也得到了支持。

最后,NETGEAR R8000迎來了USB與CPU速率方面的改進(jìn),樹莓派也迎來了系統(tǒng)更新。

目前而言, OpenWrt 15.05.1版本將不再被合并的項目所支持,而這些版本將不會有任何未來的安全性或bug修復(fù)。OpenWrt 15.05發(fā)行版將獲得有限數(shù)量的安全性和bug修復(fù)。

  • LEDE

LEDE其實(shí)就是Openwrt的衍生物,目前官方主要主要致力于LEDE的開發(fā),,LEDE 17.01是最新的版本,以后將繼續(xù)得到完整的安全性和bug修復(fù)支持。

目前,LEDE已經(jīng)和OpenWrt合并了。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11304

    瀏覽量

    209476
  • 路由器
    +關(guān)注

    關(guān)注

    22

    文章

    3732

    瀏覽量

    113767
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    641

    瀏覽量

    29208
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    37

    文章

    3268

    瀏覽量

    57704
  • OpenWrt
    +關(guān)注

    關(guān)注

    10

    文章

    130

    瀏覽量

    39304
收藏 人收藏

    評論

    相關(guān)推薦

    Openwrt開發(fā)指南 25 配置OpenWrt支持網(wǎng)絡(luò)攝像頭

    Openwrt開發(fā)指南 25 配置OpenWrt支持網(wǎng)絡(luò)攝像頭
    的頭像 發(fā)表于 07-13 08:56 ?2424次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>25<b class='flag-5'>章</b> 配置<b class='flag-5'>OpenWrt</b>支持網(wǎng)絡(luò)攝像頭

    Openwrt開發(fā)指南 2 OpenWrt開發(fā)環(huán)境搭建

    開發(fā)PC機(jī)上的軟件時,可以直接在PC機(jī)上編輯、編譯、調(diào)試軟件,最終發(fā)布的軟件也是在PC機(jī)上運(yùn)行。對于物聯(lián)網(wǎng)OpenWrt開發(fā),最初的嵌入式設(shè)備是一個空白的系統(tǒng),需要通過主機(jī)為它構(gòu)建基本的軟件系統(tǒng),并
    的頭像 發(fā)表于 06-27 09:09 ?7163次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>2<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b><b class='flag-5'>開發(fā)</b>環(huán)境搭建

    Openwrt開發(fā)指南 3 OpenWrt下載及配置

    編譯OpenWrt首先需要下載源碼,OpenWrt的源碼是通過git下載,OpenWrt目前已經(jīng)很好的支持了MT7620、MT7821等芯片,因此OpenWrt系統(tǒng)完全可以用于MT76
    的頭像 發(fā)表于 06-27 09:10 ?5828次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>3<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b>下載及配置

    Openwrt開發(fā)指南 4 燒寫OpenWrt固件

    對于一個完整的嵌入式系統(tǒng),它由U-boot、內(nèi)核(Linux)、文件系統(tǒng)、應(yīng)用程序四部分組成。那么這四部分之間的關(guān)系是怎么樣的呢?OpenWrt是屬于哪部分呢?
    的頭像 發(fā)表于 06-27 09:11 ?4830次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>4<b class='flag-5'>章</b> 燒寫<b class='flag-5'>OpenWrt</b>固件

    Openwrt開發(fā)指南 7 添加Web界面

    LuCI作為“FFLuCI”誕生于2008年3月份,目的是為OpenWrt固件從Whiterussian到Kamikaze實(shí)現(xiàn)快速配置接口。Lua是一個小巧的腳本語言,很容易嵌入其它語言。輕量級
    的頭像 發(fā)表于 06-29 09:04 ?3800次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>7<b class='flag-5'>章</b> 添加Web界面

    Openwrt開發(fā)指南 12 添加OpenWrt軟件包

    OpenWrt是一個比較完善的嵌入式Linux開發(fā)平臺,在無線路由器應(yīng)用上已有4000多個軟件包。我們可以在其基礎(chǔ)上增加軟件包,以擴(kuò)大其應(yīng)用范圍。在OpenWrt中增加軟件包極其方便,按照
    的頭像 發(fā)表于 06-29 09:09 ?8908次閱讀

    Openwrt開發(fā)指南 13 OpenWrt啟動流程

    任何系統(tǒng)的啟動都是開發(fā)人員首要關(guān)注的問題,因為只有了解了系統(tǒng)的啟動流程和啟動機(jī)制,才能真正掌握一個系統(tǒng),如果對啟動的啟動不熟悉的話,是不可能真正用好一個系統(tǒng),openwrt系統(tǒng)也不例外,他的啟動和一般的嵌入式系統(tǒng)啟動還有所區(qū)別,現(xiàn)在咱們就分析一下
    的頭像 發(fā)表于 06-29 09:09 ?3556次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>13<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b>啟動流程

    Openwrt開發(fā)指南 14 統(tǒng)一接口配置UCI

    UCI即統(tǒng)一接口配置(UnifiedConfigurationInterface)的簡稱,它被應(yīng)用于OpenWrt系統(tǒng)上面。
    的頭像 發(fā)表于 06-29 09:11 ?3116次閱讀

    Openwrt開發(fā)指南 17 驅(qū)動開發(fā)之字符設(shè)備驅(qū)動程序

    首先將 RT5350_drv 文件夾傳到 OpenWrt 源碼的chaos_calmer/package/kernel 目錄下。然后進(jìn)入 OpenWrt 源碼的頂層目錄,執(zhí)行 make menuconfig。
    的頭像 發(fā)表于 07-02 09:20 ?3247次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>17<b class='flag-5'>章</b> 驅(qū)動<b class='flag-5'>開發(fā)</b>之字符設(shè)備驅(qū)動程序

    Openwrt開發(fā)指南 22 Openwrt串口的使用2

    在上一中,我們成功的讓驅(qū)動程序支持了串口 2,并且做了簡單的測試。接下來,我們就為串口 2 添加一個應(yīng)用程序,從而實(shí)現(xiàn) Wi-Fi 串口。實(shí)現(xiàn)過程非常簡單,首先進(jìn)入 OpenWrt 系統(tǒng)源碼,然后運(yùn)行 make menuconfig 命令進(jìn)行配置。
    的頭像 發(fā)表于 07-05 09:09 ?4111次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>22<b class='flag-5'>章</b> <b class='flag-5'>Openwrt</b>串口的使用2

    Openwrt開發(fā)指南 24 配置開發(fā)板支持U盤

    Openwrt開發(fā)指南 24 配置開發(fā)板支持U盤
    的頭像 發(fā)表于 07-13 08:55 ?3367次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>24<b class='flag-5'>章</b> 配置<b class='flag-5'>開發(fā)</b>板支持U盤

    Openwrt開發(fā)指南 29 OpenWrt 防火墻介紹

    Openwrt 是一個 GNU/Linux 的發(fā)行版, 和其他大多數(shù)的發(fā)行版一樣,Openwrt 的防火墻同樣也是基于 iptables。 在 OpenWRT 下防火墻的默認(rèn)行為已經(jīng)可以滿足路由器的需要,一般情況下也無需修改。
    的頭像 發(fā)表于 07-15 16:24 ?3634次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發(fā)指南</b> <b class='flag-5'>第</b>29<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b> 防火墻介紹

    RT5350 Wi-Fi 模塊開發(fā)指導(dǎo)_物聯(lián)網(wǎng) openwrt 開發(fā)概述

    物聯(lián)網(wǎng)的資料 物聯(lián)網(wǎng)openwrt開發(fā)概述 物聯(lián)網(wǎng)openwrt開發(fā)概述 物聯(lián)網(wǎng)openwrt開發(fā)
    發(fā)表于 11-16 14:52 ?0次下載

    openwrt開發(fā)教程1~6

    openwrt開發(fā)教程1~6
    發(fā)表于 03-17 14:23 ?55次下載

    openwrt都有什么功能_openwrt詳細(xì)功能介紹_openwrt刷機(jī)教程

    penWrt作為一個嵌入式的Linux發(fā)行版已經(jīng)得到廣泛的運(yùn)用,本文主要介紹了openWRT開發(fā)背景、OpenWrt功能、openWRT特點(diǎn)以及op
    發(fā)表于 12-27 10:21 ?16.6w次閱讀
    <b class='flag-5'>openwrt</b>都有什么功能_<b class='flag-5'>openwrt</b>詳細(xì)功能介紹_<b class='flag-5'>openwrt</b>刷機(jī)教程