編譯樹莓派2代B型OpenWrt固件實現無線路由器及nodogsplash認證功能

来源:http://www.cnblogs.com/rophie/archive/2017/07/26/5019266.html
-Advertisement-
Play Games

最終功能: 無線路由器的主要功能,網口WAN接入,USB無線網卡AP熱點輸出,連上wifi之後跳轉到認證頁面,點擊認證方可上網,有效時間10分鐘,認證成功之後自動訪問指定網址。 文章結尾有編譯好的刷機包下載 硬體準備: 1.Raspberry Pi 2 model B 2.USB無線網卡,我使用的是 ...


最終功能:

無線路由器的主要功能,網口WAN接入,USB無線網卡AP熱點輸出,連上wifi之後跳轉到認證頁面,點擊認證方可上網,有效時間10分鐘,認證成功之後自動訪問指定網址。

文章結尾有編譯好的刷機包下載

硬體準備:

1.Raspberry Pi 2 model B

2.USB無線網卡,我使用的是TL-WN722N 150Mbps 晶元是AR9271

3.操作系統:CentOS 7

4.SD卡8GB

開始之前最好配置好代理,因為編譯過程中所有的依賴會聯網自動下載,會有大部分時間耗在這裡,如果速度慢或者被牆……

配置編譯環境(一定要非root賬戶):

#升級組件
sudo yum update
#安裝編譯組件
sudo yum install libtool autoconf automake gcc-multilib bison screen gcc g++ binutils patch bzip2 flex make gettext unzip libc6 git-core git build-essential libncurses5-dev zlib1g-dev gawk quilt asciidoc libz-dev subversion

下載openwrt源碼(新手不建議下載trunk,不是很穩定)

#使用非root用戶登錄,建立openwrt目錄
mkdir openwrt
#進入openwrt目錄
cd openwrt
#下載openwrt的源碼
git clone git://git.openwrt.org/15.05/openwrt.git

集成nodogsplash  在/openwrt/feeds.conf.default中添加

src-git nodogsplash https://github.com/nodogsplash/nodogsplash.git

設置許可權

sudo chmod -R 777 trunk
cd trunk

更新並安裝

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

根據自己的需要更改系統預設設置,就不細說了,這裡列舉幾個我的設置

#這個目錄下可以放置之前openwrt的備份文件,也就是說相當於openwrt的/etc/目錄
/home/rophie/openwrt/openwrt/package/base-files/files/etc

#預設wifi設置
package/kernel/mac80211/files/lib/wifi/mac80211.sh

network設置

config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config interface 'lan'
	option type 'bridge'
	option proto 'static'
	option ipaddr '192.168.88.1'
	option netmask '255.255.255.0'
	option _orig_bridge 'true'
	option gateway '192.168.88.1'


config globals 'globals'
	option ula_prefix 'fda9:3639:b1e9::/48'

config interface 'wan'
	option ifname 'eth0'
	option _orig_ifname 'eth0'
	option _orig_bridge 'false'
	option proto 'dhcp'

wireless設置  

config wifi-device 'radio0'
	option type 'mac80211'
	option channel '11'
        #這裡根據你的USB無線網卡的U口來定
	option path 'platform/bcm2708_usb/usb1/1-1/1-1.5/1-1.5:1.0'
	option noscan '1'
	option country 'CN'
	option hwmode '11n'
	option htmode 'HT40'
	option txpower '40'

config wifi-iface
	option device 'radio0'
	option network 'lan'
	option mode 'ap'
	option ssid 'APK-YFKJ'
	option encryption psk-mixed
     option key 88888888

nodogsplash設置 

config instance
  # Set to 1 to enable nodogsplash
  option enabled 1

  # Use plain configuration file as well
  #option config '/etc/nodogsplash/nodogsplash.conf'
  option network 'lan'
  option gatewayname 'OpenWrt Nodogsplash'
  option maxclients '250'
  option idletimeout '10'
  option clientforcetimeout '10'
  option redirecturl 'http://192.168.88.1:8080'

  # Your router may have several interfaces, and you
  # probably want to keep them private from the network/gatewayinterface.
  # If so, you should block the entire subnets on those interfaces, e.g.:
  #list authenticated_users 'block to 192.168.0.0/16'
  list authenticated_users 'block to 10.0.0.0/8'

  # Typical ports you will probably want to open up.
  list authenticated_users 'allow tcp port 22'
  list authenticated_users 'allow tcp port 53'
  list authenticated_users 'allow udp port 53'
  list authenticated_users 'allow tcp port 80'
  list authenticated_users 'allow tcp port 443'
  list authenticated_users 'allow tcp port 8080'

  # For preauthenticated users to resolve IP addresses in their
  # initial request not using the router itself as a DNS server,
  list preauthenticated_users 'allow tcp port 53'
  list preauthenticated_users 'allow udp port 53'
  #list preauthenticated_users 'allow tcp port 8080'

  # Allow ports for SSH/Telnet/DNS/DHCP/HTTP/HTTPS
  list users_to_router 'allow tcp port 22'
  list users_to_router 'allow tcp port 23'
  list users_to_router 'allow tcp port 53'
  list users_to_router 'allow udp port 53'
  list users_to_router 'allow udp port 67'
  list users_to_router 'allow tcp port 80'
  list users_to_router 'allow tcp port 8080'
  list users_to_router 'allow tcp port 443'

  # See https://github.com/nodogsplash for a full list of available options.

編譯配置

#更新版本號
svn up
#進入編譯菜單
make menuconfig
Y:選擇Y,該軟體將被編譯,並且加入到你的目標固件里;
M:選擇M,該軟體包將會被編譯,但不會被放入固件里。在需要它的時候,可以用OPKG軟體包管理器進行安裝;
N:選擇N,該軟體包將不會被編譯,也不會被安裝進固件。
方向鍵是移動游標
回車鍵是確認
空格鍵是選擇,可以代替Y/M/N鍵的使用
/:搜索

Target System 選擇 brcm2708-bcm2709 按Y選中
需要集成的軟體

kmod-usb-core kmod-usb-ohci kmod-usb-uhci kmod-usb2 usbutils kmod-ath kmod-ath9k kmod-ath9k-common kmod-ath9k-htc luci-i18n-base-zh-cn kmod-nls-cp437 kmod-nls-utf8 kmod-fs-vfat kmod-nls-iso8859-1 wireless-tools hostapd

編譯

make V=99

很久之後你已經能夠在/bin/brcm2708下找到openwrt-brcm2708-bcm2709-sdcard-vfat-ext4.img刷機固件了

 

 

 

  

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 漏洞編號:CVE-2017-8464 漏洞等級:嚴重 漏洞概要:如果用戶打開攻擊者精心構造的惡意LNK文件,則會造成遠程代碼執行。成功利用此漏洞的攻擊者可以獲得與本地用戶相同的用戶許可權。 攻擊者可以通過可移動驅動器(U盤)或遠程共用等方式將包含惡意LNK文件和與之相關的惡意二進位文件傳播給用戶。當用 ...
  • 我們可以採用類似安全模式的方法修改初始密碼先執行命令 mysqld_safe --skip-grant-tables & (設置成安全模式)&,表示在後臺運行,不再後臺運行的話,就再打開一個終端咯。# mysqlmysql> use mysql;mysql> update user set auth ...
  • zabbix版本: 3.2.5 zabbix 自帶的windows模板中沒有監控cpu使用率的,可以在模板里自己添加 1. 配置 > 模板 > Template OS Windows 2. 監控項 > 添加監控項 應用集 : CPU 3. 圖形 > 添加圖形 取個名稱, 監控項選擇剛纔的新建的 4. ...
  • 紅帽安裝rpm安裝MySQL時爆出警告: 警告:MySQL-server-5.5.46-1.linux2.6.x86_64.rpm: 頭V3 DSA/SHA1 Signature, 密鑰 ID 5072e1f5: NOKEY 原因:這是由於yum安裝了舊版本的GPG keys造成的 解決辦法:後面加 ...
  • 回到目錄 Swarm概念 Swarm是Docker公司推出的用來管理docker集群,它將一群Docker宿主機變成一個單一的,虛擬的主機。Swarm使用標準的Docker API介面作為其前端訪問入口,換言之,各種形式的Docker Client(docker client in Go, dock ...
  • I2C匯流排是由Philips公司開發的一種簡單、雙向二線制同步串列匯流排。它只需要兩根線即可在連接於匯流排上的器件之間傳送信息。 To control multi-master IIC-bus operations, values must be written to the following reg ...
  • linux無法解析主機 xxx: 解決方法: 1. sudo gedit /etc/hosts 找到如下行: 127.0.1.1 XXX 將其修改為: 127.0.1.1 (你現在的主機名) ...
  • 一.liunx目錄結構: (1)/bin中 用戶二進位文件 包含二進位可執行文件。 在單用戶模式下,你需要使用的常見Linux命令都位於此目錄下。系統的所有用戶使用的命令都設在這裡。 (2)/sbin目錄 系統二進位文件 就像/bin,/sbin同樣也包含二進位可執行文件。 但是,在這個目錄下的li ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...