如何在openwrt libuci中编辑选项

时间:2013-10-21 12:06:35

标签: openwrt

我正在尝试使用libuci编辑路由器ssid的选项。我可以正确阅读,但没有得到如何编辑。通过以下链接的引用我可以阅读但如何编辑(如果我想更改network.lan.proto)。

How to find out if the eth0 mode is static or dhcp?

3 个答案:

答案 0 :(得分:1)

openwrt wiki上有很多文档:

http://wiki.openwrt.org/doc/uci

要从命令行更改network.lan.proto,您可以使用:

uci set network.lan.proto = dhcp

哦,然后你会想要提交更改并重新启动网络:

uci提交网络 /etc/init.d/network restart

答案 1 :(得分:1)

如果要将C API用于UCI,可以使用以下代码:

#include <uci.h>

void main()
{
   char path[]="network.lan.proto";
   char buffer[80];
   struct  uci_ptr ptr;
   struct  uci_context *c = uci_alloc_context();

   if(!c) return;

   if ((uci_lookup_ptr(c, &ptr, path, true) != UCI_OK) ||
         (ptr.o==NULL || ptr.o->v.string==NULL)) 
   { 
     uci_free_context(c);
     return;
   }

   if(ptr.flags & UCI_LOOKUP_COMPLETE)
      strcpy(buffer, ptr.o->v.string);

   printf("%s\n", buffer);

   // setting UCI values
   // -----------------------------------------------------------
   // this will set the value to 1234
   ptr.value = "1234";
   // commit your changes to make sure that UCI values are saved
   if (uci_commit(c, &ptr.p, false) != UCI_OK)
   {
      uci_free_context(c);
      uci_perror(c,"UCI Error");
      return;
   }

   uci_free_context(c);
}

参考文献来自这篇文章:OpenWrt LibUbi implementation

答案 2 :(得分:0)

网络配置位于/ etc / config / network中。以下是您可以使用的配置示例:

config wifi-iface
    option 'device'     'radio0'
    option 'mode'       'sta'
    option 'ssid'       'Some Wireless Network'
    option 'encryption' 'psk2'
    option 'key'        '12345678'
    option 'network'    'wwan'

您可以在此处找到更多文档:OpenWRT network config