-
Openwrt树莓派烧录:white_check_mark:
- 官网找到对应固件的openwrt版本,https://firmware-selector.openwrt.org/
- 或者使用其他大神已编译好的固件,我用的是SuLingGG https://github.com/SuLingGG/OpenWrt-Rpi 可以找到对应的树莓派版本:https://doc.openwrt.cc/2-OpenWrt-Rpi/
- 下载带FACTORY的镜像文件
- 电脑安装烧录软件:balenaEtcher
- SD格式化软件:SD card Formatter,https://www.sdcard.org/downloads/formatter/
- 电脑插入SD卡,用烧录软件balenaEtcher将.img文件烧录进SD卡(若卡中有内容,则需要先格式化)
- 官网找到对应固件的openwrt版本,https://firmware-selector.openwrt.org/
-
用一根网线将树莓派和电脑链接,并给树莓派上电,断掉电脑其他网络连接:white_check_mark:
-
在电脑中更改以太网属性(主要是防止冲突):white_check_mark:
- p.s. 默认网关为树莓派openwrt的默认地址:192.168.1.1
-
浏览器输入192.168.1.1进入openwrt后台:white_check_mark:
- 如果使用官方版本的话,第一次无需密码直接login
- 如果使用SuLingGG版本的话,默认密码为password
-
进入后台后设置系统密码,到system--> administration--> router password(我设置的为123456):white_check_mark:
-
开启树莓派本身的wifi功能:white_check_mark:
-
更改LAN口配置:white_check_mark:
-
在Interface中选择LAN的edit
-
更改Ipv4地址和网关
- IPv4 address改成:192.168.3.10
- IPv4 gateway改成:192.168.3.1
- Advanced setting中custom DNS改成114.114.114.114
注意:网关为我的主路由的IPv4,为了避免冲突,openwrt的IPv4改成了同一网段下不同的地址(2-254都可以),建议在电脑终端cmd--> 输入ipconfig查看一下
为了可玩性更高,下面截图都为使用SuLingGG的GitHub中下载的固件并使用的截图
-
-
重新登陆到Openwrt:white_check_mark:
浏览器中输入新设定的地址:192.168.3.10,输入密码“password”便可重新登陆
-
手机或其他设备此时连接名为“Openwrt”的wifi可以成功连接并上网(主路由为HUAWEI-CA1P7S):white_check_mark:
上图可以看到主路由依旧为192.168.3.1
-
设置旁路由“OpenWrt”密码,网络--> 无线 --> 无线安全, 我设置的为15042237015:white_check_mark:
- 一些reference:white_check_mark:
- 主要的reference视频讲解:https://www.v2ex.com/t/835585 Or https://www.youtube.com/watch?v=iyQjjgOfPnQ
- https://www.youtube.com/watch?v=w7rwNF2Q3lM
- https://zhuanlan.zhihu.com/p/509064156
- 在网页中访问192.168.3.10进入openwrt,在系统--> 管理权中找到“网关端口”,并确认其已经打开
否则之后的步骤会出现“由于目标计算机积极拒绝%2C无法连接。+连接失败”等错误
-
下载并安装WinSCP,用于在Windows和开发板之间传输并可以直接修改文件
- 点击新建会话,协议选择FTP
-
端口切换称22,主机名为OPenWrt开发板的ip:我们的为192.168.3.10,用户名和密码分别为OpenWRT网页登陆时用的用户名和密码:我们的分别为root和password
-
点击登陆,效果如图
其中左侧为Windows目录,右侧为OpenWRT目录,可以直接拖拽
-
使用WinSCP登录开发板,进入/usr/lib/lua/luci/controller/admin目录下,打开system.lua文件进行编辑,添加一行语句:
entry({"admin", "system", "Helloworld"}, template("admin_system/helloworld"), _("Helloworld"), 99)
-
进入/usr/lib/lua/luci/view/admin_system目录下,新建helloworld.htm文件,并添加一行:
<%+header%> <h1><%: HelloWorld %></h1> <%+footer%>
-
保存后重启树莓派并登陆OPenWRT网页,可以看到效果:
-
创建 lua 脚本文件:/usr/lib/lua/luci/controller/example1.lua
-
添加内容如下
--第一行声明模块路径 module("luci.controller.example1", package.seeall) function index() --[[ 创建一级菜单 example,firstchild()表示链接到其第一个子节点,即 当我们单击菜单 Example 时,LuCI 将调度其第一个子节点。"Example"即 在网页中显示的菜单。60 表示其顺序,LuCI 自带的模块的顺序为: Administration(10),Status(20),System(30),Network(50),Logout(90)。 call("first_action")表示当子节点被调度时将执行下面定义的方法 first_action() --]] entry({"admin", "example1"}, firstchild(), "Example1", 60) entry({"admin", "example1", "first"}, call("first_action"), "First") end function first_action() --加载/usr/lib/lua/luci/view/header.htm luci.template.render("header") --输出 html 内容 luci.http.write("<h1>Hello World</h1>") end
-
查看网页端变化
p.s. LUA中,用--表示单行注释,--[[ --]]表示多行注释