開發openwrt,除了需要懂linux外,還需要哪些技能?

開發openwrt做wifi 認證系統,包括微信、微博登錄和一個商家後台


謝邀

我是個木匠,計算機方面根本啥也不懂,既然你邀請了,那我就「如何學習openwrt」歪樓的方式回答你吧。

OpenWrt中文視頻教程(YouTube,請自備梯子

視頻來自報到台灣的OpenWrt大牛

  • 蔡志展 chihchun: mesh network on openwrt
  • 林智斌 macpaul: port wifi router to openwrt
  • 蔡政崇 wtsai: batman on openwrt

[COSCUP 2007] 嵌入式系統

  • (1/2) http://www.youtube.com/watch?v=C__hV6TZRw8list=PLB435557BA4B4BF0D
  • (2/2)http://www.youtube.com/watch?v=z7EfCGuyxUUlist=PLB435557BA4B4BF0D

COSCUP 2008: OpenWrt網路志工-新版OpenWrt介紹與實例分享(chihchun)

  • (1/3) http://www.youtube.com/watch?v=kBK5TQlAnA4

  • (2/3) http://www.youtube.com/watch?v=vFNoKFSZI1w

  • (3/3) http://www.youtube.com/watch?v=ChINHc6zcWA

COSCUP 2009: OpenWrt,A value add base solution for your product

  • http://www.youtube.com/watch?v=EiK3tsz6Cco

COSCUP 2010: Porting a New Architecture to OpenWrt Project

  • http://www.youtube.com/watch?v=R81hMuiepsc

一些OpenWrt技術社區

國內

  • http://www.right.com.cn/forum/

  • http://bbs.hiwifi.com/home/

  • http://anywlan.com/

  • http://bbs.cisco-club.com.cn/

  • 寬頻技術網 - Powered by ChinAdsl.Net

國外

  • OpenWrt官方論壇 https://forum.openwrt.org/

  • dd-wrt官方論壇 http://www.dd-wrt.com/phpBB2/

  • netgear-myopenrouter http://www.myopenrouter.com/

  • Gargoyle-石像鬼 https://www.gargoyle-router.com/phpbb/index.php

  • PirateBox Forum http://forum.daviddarts.com/

OpenWrt開發文檔

  • wiki

  • 編譯

  • 開發

  • Refs

WIKI

  • Documentation

編譯

  • http://downloads.openwrt.org/docs/buildroot-documentation.html#about
  • 工具鏈
  • 編譯準備
  • 編譯
  • 添加feeds
  • Image Builder
  • SDK
  • Rootfs on External Storage (extroot) (1/2)
  • Rootfs on External Storage (extroot) (2/2)
  • wireless router which is connected to either a wired, a wireless or a 3G wireless connection
  • How to Build a Single Package

開發

  • Cross Compile
  • 外部編譯器設置-(1/3)
  • 外部編譯器設置-(2/3)
  • 外部編譯器設置-(3/3)
  • Creating packages
  • Feeds
  • Using Dependencies
  • How To Submit Patches to OpenWrt
  • External Toolchain - Use OpenWrt as External Toolchain (1/2)
  • External Toolchain - Use OpenWrt as External Toolchain (2/2)

參閱

  • http://blog.csdn.net/openme_openwrt/article/details/7348452

謝謝 @王小強童鞋。

Lua

還有Lua,openwrt的WEB管理界面是基於這個語言,

  • LuCI官網: LuCI
  • openwrt-luci技術文檔: http://wiki.openwrt.org/doc/techref/luci
  • luci翻譯項目: https://luci.subsignal.org/pootle/zh_CN/luci/
  • 中文視頻教程:專輯:講Lua的cocos2d-x進階教程

————————————————————分割線——————————

你是想用開發一個基於openwrt系統的WIFI WEB認證,然後微信,微博登錄,以及一個商家管理系統是吧?

目前比較主流的WiFi WEB認證的有開源的WIFIDOG WiFiDog 你可查閱一下WIFIDOG協議,沒有必要再造一個輪子。已經有網友有基於WIFIDOG做好的認證系統,你可以參考一下ApFree/wifidog_v2_authserver_demo · GitHub

認證登錄微博開放平台目前Java ,PHP,C#,Flash,Python,Javascript,Android及iOS 支持新版介面及OAuth2.0,其餘僅支持舊版介面,考慮到你還需要商家管理系統以及與WiFidog銜接,建議使用PHP。

不單單只是Linux,你所說如果真的需要商業化投入運營的話,涉及到的計算機語言知識以及嵌入式硬體相關,還有後期的維護和穩定性,會是一個比較龐大的項目。建議外包給方案商

但是如果只是興趣愛好,可以自己學習,當你學習上文所有內容,並且全部搞懂了的話,構建這麼一個系統對於你來說已經很簡單了。

——————————————分割線————————

回答完畢,希望給個贊。


和樓主的方向不太相同,折騰OpenWrt純粹興趣。

從個人學習OpenWrt的角度,除了需要linux的相關知識,還需要對路由器這種嵌入式設備的結構有一定了解,另外一個比較重要的是計算機網路原理。

關於路由器硬體結構,可以看看《跟hoowa學做智能路由》著一些列的文章

連接:孫冰 | 雷鋒網

文章前幾篇對路由器這種嵌入式硬體,以及OpenWrt的底層實現講解的不錯。

關於計算機網路原理,可以看看ITerCast當年的CCNA教程

連接:【搬運】Itercast課程

一層一層的講解計算機網路原理,我現在已經能充當交換機防火牆的人肉模擬器了(捂臉

硬體方面對了解OpenWrt系統的引導刷機很有幫助

網路原理方面對了解OpenWrt對網路配置的抽象、尤其是手動自定義網路方面很有幫助。


正在學習openwrt,如果有什麼不好的,求輕噴。

個人認為,首先linux就是一個範圍很廣的知識面,基本的命令行操作是要懂的。而且在openwrt上會比較頻繁地使用一些網路工具,比如iptables之類的,這些常用的命令配置還是記多一點好。另外,最好能養成命令行配置的習慣,爭取先不用web配置,嘗試用uci或者vim編輯文件。哦對了,還有燒寫bin和基本的編譯也要學會,也要掌握shell編程。如果有了前面提到的能力我覺得差不多就可以開發了,那就學linux c編程吧,《unix網路編程》和《unix環境高級編程》要啃。詳細地看一遍github上openwrt的項目工程,Makefile一定要會,有時候可能要改改dts。做到前面的大概能寫ipk還有寫鏡像了。本人對內核了解不多,就只有這些愚見。


嵌入式編程

系統封裝

openwrt各種軟體的參數用法

要做認證你就必須要知道iptables的各種用法

認證系統除了wifidog還有nodogsplash

Index of /nodogsplash

輕量級,可以用來入手學習認證過程。

微博登錄一般用到OAuth2.0

微博登錄_新浪微博開放平台

微信登錄,現在解決方案一般是,用戶先添加公眾號,再像公眾索取動態密碼。最後在認證頁面輸入。(感覺很繁瑣,不知道誰有更好的反感)

微信公眾平台開發者文檔

商家後台那就是建站咯

PHP+MYSQL+一點伺服器知識


有直接的固件可以用,叫小博無線,直接用他的固件就可以達到這些功能!


可以開發內核模塊,自己實現portal推送和認證


推薦閱讀:

像爐石傳說這類的依賴隨機的電子遊戲,有沒有可能並不是「隨機」的?
什麼叫過採樣率技術?它的原理跟作用是什麼?市面上有沒有運用此技術的設備,它的作用過程跟最大特點是什麼?另外這樣的設備需要什麼樣的軟硬體環境?大家如果嫌問題太多也可以把相關鏈接給我,我自己搜,謝謝各位!
生活中有哪些東西讓你感嘆:現在的人真聰明?
為什麼上世紀六十年代人類就能登月,但卻造不出彩屏手機、大容量內存等一些在今天很常見的東西?
如何評價父母說銷售人員永遠比技術人員更容易掙到更多的說法?

TAG:技術 | Linux | 路由器 | Linux開發 | OpenWrt |