色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Openwrt開發指南 第14章 統一接口配置UCI

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

1 UCI系統介紹

UCI即統一接口配置(UnifiedConfigurationInterface)的簡稱,它被應用于OpenWrt系統上面。

UCI是簡單、實用、直接了當的。UCI是OpenWrt上面主要的配置用戶接口,用來作為主要的系統設置,這些設置通常對設備是至關重要的,例如網絡接口、無線設置、遠程登陸權限設置等都是通過UCI來實現配置的。他是構建一整套系統的必須部分。

此外,大部分第三方軟件也被集成到UCI中,因此他們在openwrt中也能很簡單的配置。許多程序有他們自己的配置文件,像/etc/network/interfaces、/etc/exports、/etc/dnsmasq.conf、/etc/samba/smb.conf,并且他們有他們自己的語法,opewnrt不需要改變他們,只需要改UCI設置就行,opewnrt開發者已經對許多軟件做了UCI集成,當然openwrt開發者不可能把所有軟件都集成進來。因為他們的精力也是有限的。

大部分被集成到UCI系統中的軟件通過修改UCI配置文件,都能很簡單的被配置,這些配置主要應用于系統初始化腳本,他們在/etc/ini.d下面,開啟被UCI系統集成的進程就需要用UCI配置文件。比如運行/etc/init.d/sambastart就會用到/etc/config/samba配置文件。

2 UCI系統規則

Openwrt中UCI配置文件被放在/etc/config目錄下面,每一個配置文件設計到系統的一種配置。你可以用文本編輯器修改這個配置文件,或者用uci命令修改。當然它也可以用其他API接口來修改,比如shell、lua等,而且web接口像luci、webif也可以改變它。當配置文件被改變后,必須重啟程序才能生效。

下面舉一個修改ip地址的例子,如果你想把默認的ip:192.168.1.1改為192.168.2.1,可以通過vi來編輯配置文件。

$vi /etc/config/network

在/etc/config/network中找到:

option ipaddr192.168.1.1

把他改變為

option ipaddr192.168.2.1

然后重啟網絡/etc/init.d/networkrestart就會發現系統的ip已經變為新ip地址了。

3 UCI文件語法

UCI配置文件通常一個或者更多的config語句,一個config語句中包括一個或者更多的option語句來表示配置內容。下面一個UCI配置文件的內容:

package'example'

config'example''test'

option'string''somevalue'

option'boolean''1'

list'collection''firstitem'

list'collection''seconditem'

config'example''test'這條語句是一個config語句的開始,表示類型是example,test代表名字,其中類型是必不可少的,而且不同的config語句不能有相同的類型,它對啟動腳本有非常重要的意義,但是名字不是必不可少的,可以沒有,也可以有。

option'string''somevalue'和option'boolean''1'定義了值的內容,這里string和boolean在語法上面沒有差異。在boolean中‘0’,‘no’,‘off’,‘disable’,‘false’都代表0,而‘1’,‘yes’、‘on’、‘true’,‘enable’都代表1。

用list語句可以定義多個值,他們都有相同的名字,在這里為collection。

其中option和list對配置文件是非常重要的,每個字段都是用option或者list來表示,option代表字段值唯一(后面叫option字段),list代表字段有多個值(后面叫list字段),他們是配置文件賦值的重要表示。但是在一個配置文件中,它們不是必須的語法。通常值不需要用引號括起來,只有有空格或者TAB建的時候才需要用引號。而且單引號和雙引號要一一對應,下面表示合法的語言:

optionexamplevalue

option'example'value

optionexample"value"

option"example"'value'

option'example'"value"

4 UCI命令

用vi、腳本、lua等工具修改uci配置文件比較麻煩還容易出錯,openwrt提供了uci命令工具來操作uci配置文件。uci工具可以獲取一個值,設置一個值等功能。在終端下面運行uci命令可以查看他的幫助說明。

Usage :uci [] []

Commands:

batch

export []

import []

changes []

commit []

add

add_list .

.=

show [[.

[.]]]

get .

[.]

set .

[.]=

delete [.]]

rename .

[.]=

revert [.

[.]]

reorder .

=

Options:

-c setthesearchpathforconfigfiles(default:/etc/config)

-d setthedelimiterforlistvaluesinucishow

-f useasinputinsteadofstdin

-a applynewconfigurationaftercommit

-L donotloadanyplugins

-m whenimporting,mergedataintoanexistingpackage

-n nameunnamedsectionsonexport(default)

-N don'tnameunnamedsections

-p addasearchpathforconfigchangefiles

-P addasearchpathforconfigchangefilesanduseasdefault

-q quietmode(don'tprinterrormessages)

-s forcestrictmode(stoponparsererrors,default)

-S disablestrictmode

-X donotuseextendedsyntaxon'show'

下面的表格詳細的介紹了他們的主要用法:

名字 Config****字段 描述
commit [] 把改變的uci配置的改變寫入文件系統中,所有的"uciset","uciadd","ucirename"和"ucidelete"都是通過ucicommit寫入flash中。
batch - 執行uci腳本
export [] 導出一個配置,供使用人員閱讀
import [] 輸入一個uci語句
changes [] 顯示在沒有運行ucicommit之前的所有配置文件改變記錄
add 增加一個config
get .[.] 得到option字段值
set .[.]= 設置option字段值
delete [.]] 刪除一個option或者list字段
add _list..= 增加一個存在的list字段鏈表
rename .[.]= 給option字段重命名
show [[.[.]]] 展示一個配置的具體內容

下面我們舉例說明常用的一些用法。

獲取一個值:

獲取lan口的ip地址:ucigetnetwork.lan.ipaddr

#ucigetnetwork.lan.ipaddr192.168.1.1

設置一個值:

設置lan口的ip地址為192.168.2.1

#ucisetnetwork.lan.ipaddr=192.168.2.1

完成之后需要要使其生效,運行ucicommit

#ucisetnetwork.lan.ipaddr=192.168.2.1

#ucicommit

設置好之后重啟network,/etc/config/networkrestart,我們發現網口ip已經被改變了。

運行ifconfig。

#ifconfig

br-lanLinkencap:EthernetHWaddr00:11:22:33:44:55

inetaddr:192.168.2.1Bcast:192.168.2.255

Mask:255.255.255.0

inet6addr:fd18:75c3:2be6::1/60Scope:Global

inet6addr:fe80::211:22ff:fe33:4455/64Scope:Link

UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1

RXpackets:16errors:0dropped:0overruns:0frame:0

TXpackets:8errors:0dropped:0overruns:0carrier:0

collisions:0txqueuelen:0

RXbytes:4904(4.7KiB)TXbytes:976(976.0B)

已經變為192.168.2.1了。

導出顯示一個選項的配置,現在我們導出uhttp的配置,效果如下所示:

#uciexportuhttpd

packageuhttpd

configuhttpd'main'

listlisten_http'0.0.0.0:80'

listlisten_http'[::]:80'

listlisten_https'0.0.0.0:443'

listlisten_https'[::]:443'

optionhome'/www'

optionrfc1918_filter'1'

optionmax_requests'3'

optionmax_connections'100'

optioncert'/etc/uhttpd.crt'

optionkey'/etc/uhttpd.key'

optioncgi_prefix'/cgi-bin'

optionscript_timeout'60'

optionnetwork_timeout'30'

optionhttp_keepalive'20'

optiontcp_keepalive'1'

optionubus_prefix'/ubus'

configcert'px5g'

optiondays'730'

optionbits'1024'

optioncountry'DE'

optionstate'Berlin'

optionlocation'Berlin'

optioncommonname'OpenWrt'

用show可以展示uhttp的具體內容,和export不同的是,export時導出配置文件的內容,show時顯示uhttp配置的值。效果如下:

#ucishowuhttpd

uhttpd.main=uhttpd

uhttpd.main.listen_http=0.0.0.0:80[::]:80

uhttpd.main.listen_https=0.0.0.0:443[::]:443

uhttpd.main.home=/www

uhttpd.main.rfc1918_filter=1

uhttpd.main.max_requests=3

uhttpd.main.max_connections=100

uhttpd.main.cert=/etc/uhttpd.crt

uhttpd.main.key=/etc/uhttpd.key

uhttpd.main.cgi_prefix=/cgi-bin

uhttpd.main.script_timeout=60

uhttpd.main.network_timeout=30

uhttpd.main.http_keepalive=20

uhttpd.main.tcp_keepalive=1

uhttpd.main.ubus_prefix=/ubus

uhttpd.px5g=cert

uhttpd.px5g.days=730

uhttpd.px5g.bits=1024

uhttpd.px5g.country=DE

uhttpd.px5g.state=Berlin

uhttpd.px5g.location=Berlin

uhttpd.px5g.commonname=OpenWrt

前面大部分是option字段的內容,現在說一下怎么增加list字段。首先看一下system的配置內容,他的ntp服務器就是list字段。用export我們先看一下:

#uciexportsystem

packagesystem

configsystem

optionhostname'OpenWrt'

optiontimezone'UTC'

configtimeserver'ntp'

listserver'0.openwrt.pool.ntp.org'

listserver'1.openwrt.pool.ntp.org'

listserver'2.openwrt.pool.ntp.org'

listserver'3.openwrt.pool.ntp.org'

optionenabled'1'

optionenable_server'0'

看到server就是list字段,從表格可以看到,add_list可以增加list字段。uciadd_listsystem.ntp.server='4.de.pool.ntp.org'這個命令可以增加4.de.pool.ntp.org進入list字段。增加完之后可以看一下,如下所示:

#uciexportsystem

packagesystem

configsystem

optionhostname'OpenWrt'

optiontimezone'UTC'

configtimeserver'ntp'

listserver'0.openwrt.pool.ntp.org'

listserver'1.openwrt.pool.ntp.org'

listserver'2.openwrt.pool.ntp.org'

listserver'3.openwrt.pool.ntp.org'

listserver'4.de.pool.ntp.org'

optionenabled'1'

optionenable_server'0'

如果增加一個新的配置,只需要按照UCI系統的語法,增加一個配置文件就可以,或者用uci add命令。下面列出用uci命令增加一個新配置的用法:

#touch/etc/config/playapp

新建一個配置文件

#ucishowplayapp

顯示配置內容,可以看到無內容

#uciaddplayappblah

增加一個配置項

#ucishowplayapp

顯示配置內容

playapp.@blah[0]=blah

root@OpenWrt:/#ucicommit&&cat/etc/config/playapp

configblah

顯示文件內容,可以看到用uci命令設置進去了。其他的命令大家可以都自己試一試,這里就不一一列舉了。Opewnrt界面采用luci,他很好的應用了uci系統,學好uci系統對學習luci有很好的幫助,所以大家需要好好學習這個章節。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8575

    瀏覽量

    151014
  • 無線
    +關注

    關注

    31

    文章

    5450

    瀏覽量

    173238
  • 命令
    +關注

    關注

    5

    文章

    683

    瀏覽量

    22011
  • 編輯器
    +關注

    關注

    1

    文章

    805

    瀏覽量

    31163
  • OpenWrt
    +關注

    關注

    10

    文章

    130

    瀏覽量

    39296
收藏 人收藏

    評論

    相關推薦

    Openwrt開發指南 25 配置OpenWrt支持網絡攝像頭

    Openwrt開發指南 25 配置OpenWrt支持網絡攝像頭
    的頭像 發表于 07-13 08:56 ?2406次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發指南</b> <b class='flag-5'>第</b>25<b class='flag-5'>章</b> <b class='flag-5'>配置</b><b class='flag-5'>OpenWrt</b>支持網絡攝像頭

    Openwrt開發指南 1 OpenWrt入門

    如果要學習openwrt的話,買些列表中二手的路由器來實踐下更容易學習,大部分要升級下rom芯片和內存芯片,典型配置都是4M、64M。
    的頭像 發表于 06-27 09:09 ?4394次閱讀

    Openwrt開發指南 2 OpenWrt開發環境搭建

    開發PC機上的軟件時,可以直接在PC機上編輯、編譯、調試軟件,最終發布的軟件也是在PC機上運行。對于物聯網OpenWrt開發,最初的嵌入式設備是個空白的系統,需要通過主機為它構建基本
    的頭像 發表于 06-27 09:09 ?7119次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發指南</b> <b class='flag-5'>第</b>2<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b><b class='flag-5'>開發</b>環境搭建

    Openwrt開發指南 3 OpenWrt下載及配置

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

    Openwrt開發指南 7 添加Web界面

    LUA語言的官方版本只包括個精簡的核心和最基本的庫。這使得LUA體積小、啟動速度快,從而適合嵌入在別的程序里。UCIOpenWrt中為實現所有系統配置
    的頭像 發表于 06-29 09:04 ?3766次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發指南</b> <b class='flag-5'>第</b>7<b class='flag-5'>章</b> 添加Web界面

    Openwrt開發指南 12 添加OpenWrt軟件包

    OpenWrt個比較完善的嵌入式Linux開發平臺,在無線路由器應用上已有4000多個軟件包。我們可以在其基礎上增加軟件包,以擴大其應用范圍。在OpenWrt中增加軟件包極其方便,
    的頭像 發表于 06-29 09:09 ?8861次閱讀

    Openwrt開發指南 13 OpenWrt啟動流程

    任何系統的啟動都是開發人員首要關注的問題,因為只有了解了系統的啟動流程和啟動機制,才能真正掌握個系統,如果對啟動的啟動不熟悉的話,是不可能真正用好個系統,openwrt系統也不例外
    的頭像 發表于 06-29 09:09 ?3531次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發指南</b> <b class='flag-5'>第</b>13<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b>啟動流程

    Openwrt開發指南 22 Openwrt串口的使用2

    在上一章中,我們成功的讓驅動程序支持了串口 2,并且做了簡單的測試。接下來,我們就為串口 2 添加個應用程序,從而實現 Wi-Fi 串口。實現過程非常簡單,首先進入 OpenWrt 系統源碼,然后運行 make menucon
    的頭像 發表于 07-05 09:09 ?4091次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發指南</b> <b class='flag-5'>第</b>22<b class='flag-5'>章</b> <b class='flag-5'>Openwrt</b>串口的使用2

    Openwrt開發指南 24 配置開發板支持U盤

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

    Openwrt開發指南 29 OpenWrt 防火墻介紹

    Openwrt個 GNU/Linux 的發行版, 和其他大多數的發行版樣,Openwrt 的防火墻同樣也是基于 iptables。 在 Op
    的頭像 發表于 07-15 16:24 ?3601次閱讀
    <b class='flag-5'>Openwrt</b><b class='flag-5'>開發指南</b> <b class='flag-5'>第</b>29<b class='flag-5'>章</b> <b class='flag-5'>OpenWrt</b> 防火墻介紹

    CPLD/FPGA高級應用開發指南 光盤

    `CPLD/FPGA高級應用開發指南1可編程邏輯器件與EDA技術2Xilinx CPLD系列產品第3
    發表于 06-02 10:13

    AVR單片機應用開發指南及實例

    圖書簡介及目錄:《AVR單片機應用開發指南及實例精解》結構清晰,由淺入深,通俗易懂,結合ATmega128單片機闡述AVR單片機的理論和工程應用。《AVR單片機應用開發指南及實例精解》共分9,主要
    發表于 07-28 10:28

    openwrt開發教程1~6

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

    《嵌入式-STM32開發指南》第二部分 基礎篇 - 4 定時器(HAL庫)

    《嵌入式-STM32開發指南》第二部分 基礎篇 - 4 定時器(HAL庫)
    發表于 12-05 14:51 ?15次下載
    《嵌入式-STM32<b class='flag-5'>開發指南</b>》第二部分 基礎篇 - <b class='flag-5'>第</b>4<b class='flag-5'>章</b>  定時器(HAL庫)

    Tina Linux配置開發指南

    Tina Linux配置開發指南
    的頭像 發表于 03-02 15:28 ?1.6w次閱讀
    Tina Linux<b class='flag-5'>配置</b><b class='flag-5'>開發指南</b>
    主站蜘蛛池模板: 亚洲 欧美 制服 校园 动漫| 精品无码久久久久久动漫| 99久视频只有精品2019| 又粗又大又爽又黄的免费视频| 亚洲AV午夜福利精品香蕉麻豆| 无码AV毛片色欲欧洲美洲| 色情内射少妇兽交| 日本阿v直播在线| 人妻少妇久久久久久97人妻| 欧美三级在线完整版免费| 暖暖 免费 日本 高清 在线1| 久久亚洲网站| 麻豆久久国产亚洲精品超碰热| 老师你狠狂| 嫩草影院地址一地址二| 免费一级片网站| 欧美成人性色生活18黑人| 欧美精品色婷婷五月综合| 嗯啊插的好深啊使劲抽视频| 欧美成 人 网 站 免费| 欧美高清videos 360p| 青青草久久伊人| 日产日韩亚洲欧美综合搜索| 日日干夜夜啪蕉视频| 兽交白浆喷水高潮| 亚洲 欧美 国产 伦 综合| 亚洲熟妇AV乱码在线观看| 中国大陆一级毛片免费| 91免费网站在线看入口黄| JK白丝校花爽到娇喘视频| 爆操日本美女| 国产精品人成在线播放新网站| 国产中文字幕免费观看| 久久人妻熟女中文字幕AV蜜芽| 免费亚洲视频| 色中色辩论区| 亚洲乱码在线卡一卡二卡新区| 中文字幕在线观看网站| JLZZJLZZJLZ老师好多的水| 国产精品久久久久久精品...| 黑人阴茎插女人图片|