openwrt

openwrt中ubus的具体使用

…衆ロ難τιáo~ 提交于 2019-12-06 08:12:28
转自: http://www.fx114.net/qa-26-169704.aspx#__RefHeading__28_50040687 openwrt ubus的wiki ubus是为了OpenWrt中守护进程和应用程序之间通讯开发的,类似桌面的DBus,设计理念上与DBus基本保持一致,区别是简化的API和简练的模型,以适应embeddedrouter的特殊环境。与DBus一样也是使用socket实现。 核心部分是ubusd守护进程,它提供了其他守护进程将自己注册以及发送消息的接口。因为这个,接口通过使用Unixsocket来实现,并使用TLV(type-length-value)消息,ubus内部使用Blob_buf,Blob_attr等结构来表示。 ubus有两种调用,一个是method调用,一个是notification,其中method包括等待函数返回和不用等待返回,notification是广播和DBus的signal类似。ubus使用是先建立连接,然后把连接加入epollset中。下面是它的一些调用API。 uloop_init(); 创建epoll句柄,最多监听32个fd ubus_connect(); 创建ubus连接 ubus_add_uloop(); 把创建的ubus连接注册到epoll中。 ubus_add_object(); 注册对象到的ubus连接。

openwrt中使用ubus实现进程通信

允我心安 提交于 2019-12-06 08:12:06
http://blog.csdn.net/jasonchen_gbd/article/details/45627967 ubus为openwrt平台开发中的进程间通信提供了一个通用的框架。它让进程间通信的实现变得非常简单,并且ubus具有很强的可移植性,可以很方便的移植到其他linux平台上使用。本文描述了ubus的实现原理和整体框架。 ubus源码可通过git库 git://nbd.name/luci2/ubus.git 获得,其依赖的ubox库的git库:git://nbd.name/luci2/ubox.git。 1. ubus的实现框架 ubus实现的基础是unix socket,即本地socket,它相对于用于网络通信的inet socket更高效,更具可靠性。unix socket客户端和服务器的实现方式和网络socket类似,读者如果还不太熟悉可查阅相关资料。 我们知道实现一个简单的unix socket服务器和客户端需要做如下工作: 建立一个socket server端,绑定到一个本地socket文件,并监听clients的连接。 建立一个或多个socket client端,连接server。 client和server相互发送消息。 client或server收到对方消息后,针对具体消息进行相应处理。 ubus同样实现了上述组件

跟 UMU 一起玩 OpenWRT(入门篇1):硬件选型和刷机

拜拜、爱过 提交于 2019-12-06 06:55:18
看了《跟hoowa学做智能路由》系列, http://www.leiphone.com/diy-a-smart-router.html ,也想写点自己的经验,大家可以先看 hoowa 童鞋的,他已经写得很好了,UMU 的不同观点是硬件的选择而已。 首先声明,UMU 不是 D-Link 员工,也不卖 DIR-505,用它完全是对比了几个可选项筛选后的结果。理由: 1、本身就是不死 Bootloader,刷坏了固件用网线就可以救了,把电脑 IP 设为 192.168.0.100,按住 Reset 开机,Web 浏览器访问 192.168.0.1。前面写的《 不拆机给 D-Link DIR-505 刷上不死 U-Boot 》完全是蛋疼地研究过程,对一般用户 UMU 建议不要刷,因为没有 JTAG,刷固件本来就不死了,不小心刷坏了 Bootloader 就只能拆机上编程器了,这明显作死。 2、配置比较高(相比 TP-Link 坑爹级同价位产品),8MB Flash,64MB RAM,UMU 手头上还有三个 TP 的(TL-WR841N、743N、941N)都只有它一半。有 USB 2.0 接口,743N 的 USB 是 1.1 的。 3、国内电商有得买,而且价格便宜,UMU 买的时候是 78 块。 4、小巧,方便携带,随时开撸! 也说一下它的缺点:没有外接天线,所以您懂的,信号必然比较弱

跟 UMU 一起玩 OpenWRT(高级篇1):编译不死 U-Boot

怎甘沉沦 提交于 2019-12-06 06:55:02
UMU 2010 年初就玩 OpenWRT/DD-WRT 了,蛋似编译东西还是初学者,本文纯属蛋疼的过程,欢迎批评教育,谢谢…… 首先到 https://github.com/pepe2k/u-boot_mod 看明白作者的说明。这里简单说一下原理:固件(firmware)刷坏,但 U-Boot 没坏,这是半砖,可以用 TTL 线连路由器,通过 U-Boot 的功能刷好 firmware。如果两者都坏了,叫全砖,只能把 Flash 拆下来,用编程器刷好 U-Boot 和 firmware。不死 U-Boot 就是修改了 U-Boot 的实现,使我们可以用 RJ-45 网线来救砖,省去拆机搭 TTL 线的麻烦。 本质上说,这东西并非真的不死,只要 U-Boot 被刷坏了,还是会死,不过几率不大,因为 OpenWRT 官方发行的 ROM 全都是保护 U-Boot 区域的,根据 UMU 的经验,只有三个情况会不小心或故意刷坏:1、从原厂固件刷不良固件;2、在 DD-WRT 下搞破坏(DD-WRT 没有保护 U-Boot);3、自制固件去掉 U-Boot 写保护后搞破坏……如果您真的这么蛋疼,还是准备编程器吧,只要是软件问题,在编程器面前没有砖的概念。(JTAG 也是救砖神器,但不是每台路由器都有,比如 DIR-505 就没有!) 由于 UMU 是 Windows 程序员,平时没有安装

How to include Python pip3 modules in OpenWRT image

时光怂恿深爱的人放手 提交于 2019-12-06 06:16:12
I'm going to include pip3 modules in OpenWRT image, so it won't require other dependencies after installed OpenWRT image. For example, I'm going to include argparse module in OpenWRT image. This module may be installed by the following command in initial OpenWRT image: opkg install python3 pip3 install argparse How can I include them in initial OpenWRT firmware? Thanks! First, run make menuconfig , and then select Languages -> Python , and then select python3,python3-pip , then save and then exit. Next, run ./scripts/env new py3-argparse to create a build environment for your changes. Finally,

Openwrt

大城市里の小女人 提交于 2019-12-05 17:27:26
ubuntu环境    点击 openwrt 查询自己系统需要安装的那些 比如我的系统是ubuntu 18.04,选择的就是18.04 查询设备CPU信息    点击 openwrt 查询自己路由器对应的CPU信息 准备OpenWrt环境 下载openwrt源码 这个过程可能会有点漫长,可以将github上的资源搬到码云,然后从码云下载,据说速度很快,详细的教程百度搜一下就有 git clone https://git.openwrt.org/openwrt/openwrt.git 选择自己需要的分支 cd openwrt/ # lede git checkout lede-17.01 # openwrt git checkout openwrt-18.06 编译检查 在安装Ubuntu环境的时候,我们已经安装了一部分需要的库,在这个地方如果报错,只需要根据报错的信息安装对应库就好了 make defconfig && make prereq 配置编译信息 在第二部我们已经查到自己路由信息,在这个地方只需要按照查询的信息选择就好 make menuconfig 关于一些选项的说明,来自于《OpenWrt智能路由系统开发 跟hoowa学智能路由》 如果只是生成SDK开发环境,勾选比较少,我所勾选的是 Target System (Atheros AR7xxx/AR9xxx)

编译OpenWRT过程问题解决

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-05 12:00:47
本人是只菜鸟,没有接触过OpenWrt,只是平时都是在Linux下做开发。习惯了Linux的开发环境。 本人的操作系统是CentOS 6.4(好久都没有换过了)。本人按照网上牛人们的指点也开始下载编译OpenWRT。 如下为网上的资料: sudo apt-get update (更新) 安装编译需要的组件: sudo apt-get install gcc sudo apt-get install g++ sudo apt-get install binutils sudo apt-get install patch sudo apt-get install bzip2 sudo apt-get install flex sudo apt-get install bison sudo apt-get install make sudo apt-get install autoconf sudo apt-get install gettext sudo apt-get install texinfo sudo apt-get install unzip sudo apt-get install sharutils sudo apt-get install subversion sudo apt-get install libncurses5-dev sudo apt-get

跟 UMU 一起玩 OpenWRT(高级篇2):不拆机刷不死 U-Boot

廉价感情. 提交于 2019-12-05 10:18:22
在上一篇《 编译 D-Link DIR-505 的不死 U-Boot 》介绍了如何编译不死 U-Boot,但是不死 U-Boot 的作者只介绍了用 TTL 线刷方法,UMU 可不想拆机,毕竟拆机感觉并不好…… 第一个思路是刷上 DD-WRT 固件,但是找了一下 DD-WRT 木有支持 DIR-505,只好继续蛋疼地编译 OpenWRT。 第一遍在虚拟机从 12:20 编译到 23:56,花了将近 12 小时……刚开始时,有一个下载过程,不断失败,想想是因为公司的网络太烂了,于是把下载脚本改了一下: <openwrt-svn-dir>/trunk/scripts/download.pl 中的 wget -t5 --timeout=20 --no-check-certificate 改为 wget -t5 --timeout=120 --no-check-certificate 第二天来,刷上,没问题,于是开始改代码去掉 U-Boot 写保护,参考这篇《Openwrt 中刷写 uboot ART》 http://see.sl088.com/wiki/Openwrt_%E4%B8%AD%E5%88%B7%E5%86%99_uboot_art ,但结果很不幸,型号不同嘛! 接下来,凭自己的编程水平了,尝试改 <openwrt-svn-dir>/trunk/target/linux

在华为HG255D路由器上刷了OpenWRT,实现了多拨,下载速度超快

余生颓废 提交于 2019-12-05 09:42:40
在HG255D上刷了OpenWRT,用NWan实现了多拨,家里20M宽带现在成了60M(3拨),下载速度最高能到7M/s,速度飞快 感受如下 NWan多拨并不是每次都能成功的,相对来说凌晨的功率更高,需要多尝试几次。 在电信20M宽带上NWan启动了6个并发拨号,最多的时候成功了4个,1个的时候最多。 就算多拨成功了,如果你只有一个下载进程,下载速度仍然是你宽带的额定速度,必须用flashget和迅雷这样的多线程下载工具才能体现出多拨叠加的优势。 速度从20M提升了3倍对于上网看新闻真没多大的影响,如果家里多部电脑+网络电视一起看电影的话多拨的带宽优势才能够体现。 如果你使用的是1M ADSL,那么就算你成功的拨出10拨,叠加后带宽相当与10M ADSL了,但在单线程播放电影时一样会卡,原因是每个连接的限定带宽就是1M。 如果希望有更高的带宽,那么你需要更快内存更大的路由器,我试过15拨(都成功了)但实际上电脑上网络速度反而慢了。毕竟是入门级路由器,要求也不能太高。 在USB口上插个优盘还能从路由器上下载电影,挺爽 支持动态DNS,这个不错,以后可以从任何地方访问路由器了,远程向路由器上下载软件。 试过修改pppd增加并发拨号功能的改版pppd拨号,确实可以提高并发拨号的成功率,但拨号时间较长,而且经常会出现连不上的情况,与其体验变差还不如用NWan拨号,虽然拨数少了

On reboot command router resets Openwrt Caos Calmer 15.05

徘徊边缘 提交于 2019-12-05 08:06:43
问题 I m using tplink wr841n v11 and made bin(CC-15.05) file for it using source code, but the issue is I m running 1 script, which downloads file and edits chilli file and then I wrote reboot after all happens. After reboot everything changes to default router(like router is reset to default) and when I comment to reboot command, then it changes in files, but then I manually reboots router it automatically resets, all the settings like ssid, lan ip, pppoe settings etc. changes to default one. Plz