吵吵   2011-06-18  阅读:13,832

玩openwrt的人都会知道LuCI,因为每次进入系统的时候会有大大的字显示了luci interface configuration,有了这个接口确实不错,方便傻瓜般的配置我们的界面。
最近把802.1x认证给弄进去了,为了实现能卖出去的目标,实现LuCI的界面配置还真的挺重要的。
网上一找,还真的傻眼了,没有啊没有。就百度一篇,那人写的还让人相当纠结,看不懂。
那就去官网看吧 http://luci.subsignal.org/

在官网的resource中可以找到一个

别的先不说,直接就奔我们的主题吧

硬是要翻译的话,就是怎么写一个模块,ok,我就是想要写802.1x的认证模块

按照官方的说法,要完成一个模块并用到里面需要两个东西,

第一个我们先找到usr/lib/lua/luci/controller在里面建立一个文件夹,也就是我们的模块名称,就叫smustar吧

在smustar下面再写我们模块的主文件就叫smumodule.lua吧

参考官网,我们的模块写法应该是这样子的

module(“luci.controller.smustar.smumodule”, package.seeall)

function index()
entry({“admin”, “network”, “802.1x”}, cbi(“smustar-smumodule/netifaces”), “Network interfaces”, 30).dependent=false
end

第一句话是声明一下这个模块了,没什么可说的。

第二句话就是我们模块的主函数,其中呢要告诉它我们的入口,与其说入口,不如说就是告诉它是要admin登录才能用的,是在network这个菜单下,名字呢,叫做802.1x。模块执行的程序呢在smustar-smumodule/netifaces这里。

好了各位又郁闷了smustar-smumodule/netifaces是什么东西,这是我们要建立的另外一个文件,上面不是说要两个么

我们找到路径/usr/lib/lua/luci/module

在下面建立文件夹smustar-smmodule建立文件netfaces.lua

好了接下来就是要在netfaces.lua写我们的程序了,参考官网所说的这个什么luci最酷的地方,也就是修改config文件

不要说你不懂什么是config文件了,最简单的比如network。

我们在/etc/config下面建立一个配置文件叫smuset吧

那这就是一个config文件的写法

config  ‘interface’  ‘smustar’

option ‘user’ ‘youruser’
option ‘pass’ ‘yourpass’

ok这个config文件就是这样子了接下来写netfaces.lua

m = Map(“smuset”, “smustar”) — We want to edit the uci config file /etc/config/smustar 这里是我们要配置的文件了,默认的路径它已经能够区别的,不用管了
s = m:section(TypedSection, “interface”, “smustar”) — Especially the “interface”-sections读出里面的interface区域来
s.addremove = true — Allow the user to create and remove the interfaces

s:option(Value, “user”, “youruser”)这个能就是一个input即一个输入框了读取的是smuset中的user项。youruser是提示语罗

key=s:option(Value, “pass”, “your password”)

key.password=true; 设置为星号的密码输入框

return m — Returns the map
好了文件就完成了,之后我们进入luci配置界面

在network下可以看到了802.1x选项

进入后有账号和密码输入框 改一下之后

save&apply一下,发现密码被修改了。我们的802.1x配置界面就做好了!

吵吵微信朋友圈,请付款实名加入:

吵吵 吵吵

10条回应:“LuCI界面修改实现802.1x配置界面”

  1. Shikamaru说道:

    太棒了!见过的最好的LUCI简易教程

  2. AaronTSAI说道:

    添加了界面,怎么实现相应的功能呢?802.1X的配置是存在了config文件中,但是802.1X相应的功能怎么实现

    • ylzsx说道:

      添加了界面,在“network”菜单下出现“Network interfaces”子菜单,没有在network下可以看到了802.1x选项.

  3. […] LuCI界面修改实现802.1x配置界面:http://chaochaoblog.com/archives/359 […]

  4. teo说道:

    Hi chao chao, appreciate for your sharing. I’m struggling how to use arcombine cbi and template, e.g. use view/x/y.htm for display interface and extract config data from model/cbi/x/y.lua? Do you have any idea?

  5. MRL说道:

    /usr/lib/lua/luci/module没这个路径

  6. 哈哈哈说道:

    感觉非常简单!非常适合!巴适。

  7. 王心如说道:

      “今天我在食堂要了一份红枣粥,看盆里有好多红枣,结果碗里一个都没有!”
      “正常,习惯就好……”
      “我不甘心,找打饭的理论,你猜她说什么?”
      “什么?”
      “她说,打给你,后面的人就没得看了……”

发表评论

电子邮件地址不会被公开。 必填项已用*标注