问题标签 [openwrt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - 在带括号的 Lua 中使用模式匹配时,如何使用“%2”获取捕获组
我正在尝试解析文本文件并使用 lua 将其转换为表(或 JSON)。示例测试文件如下:
请注意,每行中的数据可以根据方向(正向和反向路径流)分为两部分。如果您有一个 linux 系统/openwrt 路由器,您可以使用该conntrack
命令或通过阅读/proc/net/nf_conntrack
.
我希望检索的是以下信息:
其中 rbytes, rpackets 用于反向的字节和数据包(在我的示例文本文件中的第 1 行的后半部分)。
我的解析器如下:*
调用上面的函数(在split
代码中包含一个简单的方法之后),我只能解析文件到每行的前半部分。所以基本上,没有rbytes
或被rpackets
解析。我知道负责这个的代码是
line = line:match("^(.-( [^ =]+=).-)%2")
代码中此行之后的print(line)
语句向我显示:
ipv4 2 tcp 6 3598 已建立 src=192.168.1.117 dst=137.194.2.78 运动=59078 dport=80 数据包=4 字节=298
因此,该语句使用一种令人困惑的模式匹配来分割文件的每一行,我在玩了一下之后就明白了。我仍然没有得到的部分是%2
在捕获模式之后发生的。我知道它用于以某种方式访问捕获的模式,但是我应该如何更改此语句以便line
包含正向路径字节和数据包计数以及反向路径?我的主要问题是:这个陈述中的模式到底是什么?我可能会删除这一行来解析整个语句,但我想了解原始编码人员为什么这样做。
我已经阅读了 lua 模式匹配手册,但我仍然对使用%<some_number>
. 为什么不起作用%1
或%3
不起作用?
我发现了两个相关的 stackoverflow 问题:Q1,Q2。更深入的解释将不胜感激。
此外,目前我无法使用我在此处提供的代码恢复超时值( line1 中的第 5 个字3598
)或连接状态(ESTABLISHED
, )。[ASSURED]
我仍然是 lua 的初学者,希望能尽快解决这个问题。
*注意:这个解析器是我在 openwrt 路由器上的 luci sys 模块中可用的解析器的固定版本。有关详细信息,请参阅原始 luci.sys 源代码。
在使用姿态调整 12.09 时,我注意到他们的 net.conntrack() 由于无法将对象解析为正确的 JSON 格式而无法正常工作。使用此模式的相关函数在 sys.lua 文件中给出,称为函数 conntrack(callback) 和内部函数 _parse_mixed_record(cnt, delimiter)。我的路由器使用了 luci-0.11 和 lua 5.1.4。
linux - 在linux中将数据写入stdout会占用磁盘空间吗?
我想知道在linux的终端上向stdout写入数据是否占用磁盘空间。我试图在手册页中查找有关stdout和tty的信息,但似乎没有答案。
感谢您的任何提示。
我有一个安装了openwrt的路由器,但是路由器的总空间是 2MB,现在只剩下 12KB。我想运行一个bash脚本在openwrt系统的终端上打印一些信息。所以我想知道将数据打印到标准输出时是否会占用磁盘空间。
c - “@”在 C/C++ 的宏中是什么意思?
我用openwrt交叉编译了一个固件,一个文件名字很奇怪libbfd.h
,我编译失败,我见过。在libbfd.h
第 83 行:
这里BFD_HOST_U_64_BIT
定义为@BFD_HOST_64_BIT@
,“@”是什么意思,我在一个测试文件中测试过,无法编译。有人可以帮助我吗?谢谢!
makefile - openwrt makefile中奇怪的变量和函数定义
我正在阅读openwrt的makefile,原始文件可以在这里找到: https ://dev.openwrt.org/browser/trunk/target/linux/ramips/image/Makefile#L589
我无法理解这些行:
Q1。$(1), $(2).....这些变量从何而来?如何为它们分配值?Q2。如果 $(1) 是“squashfs”,是否意味着第 3 行正在调用第 1 行中定义的“函数”?在我看来,参数列表不匹配。Q3。这些变量名中的斜杠“/”看起来很奇怪。这是定义变量的好方法吗?我认为我们可以将其更改为:Image_Build_Profile_MT7620a
提前致谢。
linux - 在 openwrt 上启动 coova-chilli 时出错
我在我新配置的 openWRT固件路由器上部署了CoovaChilli 。
问题是每次我尝试启动辣椒时,都会出现/usr/bin/chilli
以下错误:
我注意到 /var 是指向 /tmp 文件夹的链接,因此我使用了以下两种技术来解决该问题,但没有:
- 确保它有权在 /var/run 处写入:
chmod a+rwx /var/run -R
- 用 /var 文件夹替换 /var 链接。(可能有点冒险!)
但是什么也没发生,所以问题出在其他地方,任何提示都可以接受。
authentication - OpenWrt:LuCI:如何实现受限用户访问
目标:两个用户root和user。Root 可以通过 Web 界面访问所有内容,但用户应该只能看到菜单的某些部分。
一种选择是将“sysauth”选项传递给每个有问题的模块。这不是很实用,因为用户会看到每个菜单条目,并且会为他不允许访问的每个菜单获取登录页面。
我的想法是找出谁登录了,然后在每个受限模块的 index() 函数中什么都不做。到目前为止,我在 LuCI API ( http://luci.subsignal.org/api/luci/ )中找不到这样的函数,它会返回当前登录的用户。
我知道如何在 OpenWrt/LuCI ( https://forum.openwrt.org/viewtopic.php?pid=163013#p163013 ) 中添加其他用户。但这只是解决方案的一部分。
任何想法,如何实现我的目标?
c - c - 构建 OpenWrt 包的链接器错误
我正在构建一个小的 OpenWRT 应用程序,我想将一个库静态链接到它。
编辑:这也发生在其他库中,不仅是 libcurl。
我在构建它时遇到了这个错误:
这很奇怪,因为我在搜索路径上有 libgcc_s.so:
我用 -rpath 和 -rpath-link 尝试了一些技巧,但得到了相同的结果。据我所知,libcurl 不需要 libgcc_s。
我创建了一个简单的案例来重现这个:
的相关部分openwrt/package/app/Makefile
:
openwrt/package/app/src/Makefile
:
应用程序本身是一个文件:
serial-port - Linux 上的串行设备在数据传输几分钟后挂起
我正在使用openwrt(在路由器上运行的嵌入式 linux)。我正在使用显示为/dev/ttyACM0
.
我为openwrt编写了一个小代码,它打开给定的串行端口,/dev/ttyACMO
等待select()
系统调用以获取串行端口上的读/写事件fd
。
每当发生读取事件时,消息都会转储到stdout
.
我没有在串口上启用硬件流控制。
我让连接的外围设备每 2 秒在串行链路上发送一些预定义的消息。
现在,当我在openwrt中运行代码以打印串行消息时,我能够看到来自外围设备的消息。
问题是几分钟后串行链接掉线了。串行接口上不再有读取事件。
重置外围设备也无济于事。让它再次工作的唯一方法是从 USB 中完全移除外围设备并重新开始。
相同的设置在我的 Ubuntu 机器上运行良好。我使用相同的驱动程序接口,即usb-acm (in /dev/ttyACM0
)。在这里,系统将永远运行而不会出现串行挂断。
对正在发生的事情有任何想法或建议吗?
snmp - net-snmp snmptrap 发送样本
我是 SNMP 的新手,我刚刚配置了代理和管理器,我能够接收代理发送的陷阱。但是我注意到经理收到的陷阱是在 10 秒之间捕获的,但是我需要在生成陷阱后立即接收它们,而不是在 10 秒之间。我将向您展示我的脚本,该脚本旨在捕获客户端通过接入点拥有的信号平均功率,样本耗时 1 秒,我需要在不到 1 秒的时间内将该陷阱发送给管理器。
但令人惊讶的是,陷阱似乎在 10 秒之间生成,或者经理可能在 10 秒的经过时间内收到它们。我不知道问题出在哪里,在代理还是在管理器中,但我确信代理会在 1 秒内生成样本,因为“muestras.txt”显示了这一点。
希望你能帮我!。问候!
virtual-machine - 如何在 qemu 上为 ppc 运行 openwrt?
我需要为 MPC8377EWLANA 测试一些编译文件
而且我还没有硬件
任何人都知道如何在 qemu-ppc 上运行 openwrt,或者可能在其他虚拟机上运行?