openwrt
文章平均质量分 71
奔狼的春晓
工程师
展开
-
悦box(mt7620a)刷padavan固件
手头有一台实验室的之前的悦box,吃灰吃了两年了,端午刚好有空闲,家里也缺个科学上网的路由,索性就折腾折腾。需要准备的东西:一台悦box,一根usb转ttl,三根双公头杜邦线,一个5V1A的电源。悦box简介外观仿的小度路由,做工还可以。主芯片是前几年的神片mtk的7620a。这个板子的配置略低一些,8M的flash,64M的ram,但作为一个路由也够了。比较惊喜的是竟然还有一个8G的扩展存储,这样一来可玩的就比较多了。拆机沿着网线口卡子所对的那个方向,用小螺丝刀直接撬开。盒子总共有5原创 2021-06-13 23:01:39 · 5890 阅读 · 2 评论 -
openwrt挂载tf卡,提示“unknown filesystem type 'vfat'”
用命令挂载tf卡的时候报错:mount: /mnt/mmcblk0p1: unknown filesystem type 'ext2'.开始还以为是tf卡格式的问题,换了ext4和fat,仍然是这样:mount: /mnt/mmcblk0p1: unknown filesystem type 'vfat'.怀疑系统并没有支持ext系列和fat系列,打算去看看都支持了哪些格式,check...原创 2020-04-28 17:29:16 · 5521 阅读 · 1 评论 -
openwrt安装ipk报错“incompatible with the architectures configured”
在高通平台上安装ipk的时候报了下面的错:Unknown package 'php7-mod-sqlite3'.Collected errors: * pkg_hash_fetch_best_installation_candidate: Packages for php7-mod-sqlite3 found, but incompatible with the architectures ...原创 2020-03-30 14:25:38 · 22796 阅读 · 2 评论 -
PHP启动warning:PHP Startup: Unable to load dynamic library 'curl.so'
高通ar9531上面,openwrt1806这个版本,通过opkg安装了官方的php及其扩展,但新的板子php启动的时候报了warning,没有太仔细看,但是后面运行cgi程序时,发现了问题,回头看warning日志:PHP Warning: PHP Startup: Unable to load dynamic library 'curl.so' (tried: /usr/lib/php/c...原创 2020-03-30 14:05:08 · 6884 阅读 · 0 评论 -
PHP报错:Call to undefined function session_start()
之前在7620a平台cgi程序中用到了session相关的接口,之前运行没有啥问题,换了个板子ar9531的板子,更新了php的版本到php7,运行报错:Call to undefined function session_start()查看了一下php的扩展,原来是缺少session模块,添加php的session模块即可,直接去对应的op版本下找到对应的ipk即可,下载安装,或者opkg...原创 2020-03-30 13:57:45 · 2759 阅读 · 0 评论 -
openwrt查看系统的芯片方案
拿到一款路由器,想要知道主芯片的方案,可以通过如下方法方法一查看cpuinfo,比如:root@DrogooBox:/jffs/ioscache# cat /proc/cpuinfo system type : MT7620Amachine : xxxxxxxxprocessor : 0cpu mod...原创 2020-03-25 15:03:25 · 7125 阅读 · 0 评论 -
openwrt上nginx_status支持
openwrt上的nginx默认是不开启nginx_status支持的,需要手动开启。下面简单介绍一下开启过程。配置make menuconfig进入配置界面,在Network---->Web Servers/Proxies可以找到nginx,然后进入nginx的配置页面,选上Enable stub status module,如下图:编译刷写make V=99 编译生成的...原创 2019-11-29 16:09:43 · 2403 阅读 · 0 评论 -
Package php5-mod-iconv is missing dependencies for the following libraries: libiconv.so.2
大概14年的时候遇到过这个问题,引起问题的原因也是比较的奇葩,只是印象开始固件编译并没有问题,后来在做各种实验的时候突然出现这个问题,字面判断就是在编译php扩展的时候发现没有添加libiconv的依赖,最近又再次遇到了,不过已经忘记是如何解决的了,还好社区已经有人解决了,解决办法还是相对简单,只是需要修改一下php的makefile,路径如下: feeds/packages/lang/php5原创 2018-04-09 10:48:23 · 3744 阅读 · 0 评论 -
升级openwrt中的ffmpeg版本
在使用openwrt系统的时候,有时会遇到这样的问题:我需要一个插件包,咦,op上已经有人移植好了,真不错,编译运行后发现报错,原来版本太低了,怎么办?做一下升级就可以。这里以最近做的ffmpeg版本升级举例。首先找到对应的插件包所在的位置,比如我编译的ffmpeg就是在multimedia下,如下图去openwrt的根目录的feed下找到packages/multimedia...原创 2017-10-12 15:00:36 · 8113 阅读 · 0 评论 -
openwrt上wifi探针的实现----mt7620a+rt2860v2
(最新的实现在这里http://blog.csdn.net/lixuande19871015/article/details/71601363)什么是wifi探针看到探针,感觉很高大上的样子,其实就是通过wifi搜集经过这个AP范围的手机的mac地址,没有什么深刻的东西,知乎上关于这个东西讨论的很多,有人觉得很有用,可以做很多增值的应用,有人觉得没啥用,不过这并不妨碍我们从技术上去实现它。...原创 2014-12-19 17:42:16 · 25916 阅读 · 31 评论 -
基于rt2860v2的wifi探针
实验室有块7620a的板子,之前做过探针方面的试验,rt2860v2的驱动源码来自网络,探针是基于这份源码做的试验,最初在驱动中采集的数据是通过proc节点送到应用层,但是发现数据的实时性啥的不够好,改用了netlink方式。有感兴趣的同学可以跟着下面的步骤下载编译,供研究学习用。首先下载openwrt的源码,这里是openwrt传送门:https://dev.openwrt.org/ 如果...原创 2017-05-11 11:05:42 · 8836 阅读 · 25 评论 -
Ubuntu apt-get install出现“Temporary failure resolving 'cn.archive.ubuntu.com'”
搭建编译环境的时候,安装g++出现了如下的报错:Do you want to continue? [Y/n] yErr:1 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libmpc3 amd64 1.0.3-1 Temporary failure resolving 'cn.archive.ubuntu.com'Err:2 ...原创 2018-12-26 10:27:00 · 25078 阅读 · 0 评论 -
mt7620a上wifi中继的实现
采用的是rt2860v2的原厂驱动。如果要支持wifi中继,首先需要在驱动里面选择对client模式的支持,在make menuconfig中选择对应的选项即可,如下图:然后编译固件并刷写到设备。rt2860v2的驱动提供了iw的接口,我们通过这个接口进行扫描命令iwpriv ra0 set SiteSurvey=1和iwpriv ra0 get_site_survey,两条命原创 2017-05-03 10:37:55 · 6871 阅读 · 0 评论 -
添加自己的开发板到openwrt中
手头有个mt7620a的开发板,打算加到openwrt的dts里面,跟linux添加一个设备类似,整个过程分这样几步:构建dts;修改内核编译的makefile;修改相应的初始化参数。构建DTS一个特定的设备需要一个dts文件来描述,dts文件里面具体描述了板子的一些细节,板子的flash分区、led灯、GPIO的复用等等,板级的细节其实都在dts文件里面。 一类设备一般有一个dts...原创 2018-08-23 20:30:51 · 5012 阅读 · 2 评论 -
OpenWrt之上wifi探针简单实现
之前一直在rt2860v2上面做探针数据捕获和试验,并没有基于社区的驱动做过,应该也不是特别麻烦,netlink可以沿用以前的,只要找到802.11驱动里面帧解析的地方就可以了,直接通过netlink把数据broadcast到应用层,应用层还是采用之前的接收模块来接收即可,之前的接收模块代码:https://github.com/lixuande/rt2860v2-detect-user现...原创 2018-10-12 20:31:13 · 4989 阅读 · 10 评论 -
openwrt不支持opkg的解决办法
opkg是openwrt的插件安装命令,类似Ubuntu上的apt-get或者centos上的yum。好多采用openwrt系统的设备,最后都把opkg裁剪掉了,如果拿到一个设备又想用opkg安装网络上下载到的ipk包,应该怎么办呢?其实也不是特别麻烦。1 找到对应的openwrt版本。openwrt的版本不多就这么几个https://archive.openwrt.org/backfi...原创 2018-12-25 17:09:51 · 19415 阅读 · 1 评论 -
openwrt编译报错“openwrt-ramips-mt7620-ex2700-squashfs-factory.bin: No such file or directory”
编译openwrt的18.06的时候报了下面的错误:openwrt-ramips-mt7620-ex2700-squashfs-factory.bin: No such file or directory实际是这个错误:WARNING: Image file /home/even/openwrt-18.06.1/build_dir/target-mipsel_24kc_musl/linux...原创 2019-03-26 10:28:23 · 3273 阅读 · 0 评论 -
openwrt上opkg安装squid_3.5.27
手头有块板子没有squid,需要安装,刚好环境中有编译好的squid_3.5.27-1_ramips_24kec.ipk。root@DrogooBox:/mnt/mmcblk0p1/opkgbin# ./opkg-cl install /mnt/mmcblk0p1/squid_3.5.27-1_ramips_24kec.ipk Installing squid (3.5.27-1) to r...原创 2019-04-05 17:41:46 · 4234 阅读 · 0 评论 -
openwrt上nginx启动报错nginx: [emerg] getpwnam("www") failed
检查nginx的配置文件/etc/nginx/nginx.conf里面配置里确实有这一项:#user nobody nogroup;user www www;worker_processes 2;系统的用户又没有www这个用户,这就尴尬了,有些系统可以通过添加用户解决,参考这个连接:http://blog.itblood.com/nginx-emerg-getpwnam-www...原创 2019-04-03 15:42:33 · 2770 阅读 · 0 评论 -
openwrt上使用openssl对文件加密
路由器采集到的一些数据文件需要进行加密然后再传回服务侧,对整个文件加密,打算用openssl进行加密。openwrt的menuconfig中有相应库的支持,但是对命令行的支持被去掉了,估计是从节约空间的角度考虑吧,通过修改makefile文件增加对命令行的支持。修改如下:修改前:修改后:ok,编译好的固件刷到盒子上就可以直接在shell中使用openssl对文件进行加密原创 2015-02-05 16:38:02 · 9088 阅读 · 4 评论 -
openwrt源码树目录结构简介
openwrt的源码下载后是一个编译环境,这套环境可以编译生成固件,也可以生成交叉工具链,还有根文件系统,基本技术人员需要的东西都全乎了。开始学习openwrt的时候,看到源码树下那一堆路径,真是头大,不知道各个路径是干嘛的,想改点东西也不敢贸然去改,生怕把编译环境给搞坏了。这里简单介绍一下整个源码树下的各个路径都是做什么用的。刚下载完的路径是下面这样的这里介绍一些主要的路径t原创 2016-12-27 12:28:43 · 6381 阅读 · 0 评论 -
openwrt上nginx扩展模块的支持
在固件开发过程中,上层业务层需要用到nginx的一些扩展模块,比如ngx_devel_kit-master、set-misc-nginx-module-master、nginx-push-stream-module-master、ngx_cache_purge-2.1。这些模块并没有在nginx的源码中,而是一些独立的分支。采取的方法是直接修改nginx的编译规则:首先下载对应的扩展模块的原创 2017-01-03 16:37:04 · 6917 阅读 · 0 评论 -
编译属于自己的openwrt固件
在编译自己的openwrt固件的时候,直接make出来的固件名字都是OpenWrt-mt7620a_mt7610e-squashfs-sysupgrade.bin这个样子的,用的时候感觉不爽啊,能不能自己自由的指定编译出的固件的名字呢,这当然是可以的,下面就看一下如何修改编译出固件的名字。首先看前缀OpenWrt,这个前缀的指定是在include/image.mk文件中指定的,作者将前面的前缀原创 2016-01-14 11:25:37 · 6620 阅读 · 1 评论 -
手机探测帧频率的测试
手机的探测帧的频率在802.11协议里面并没有一个详细的要求,并且各个厂家从省电等方面考虑设置的探测帧频率也各不相同,并且在wifi界面下、锁屏状态下、忽略掉wifi再锁屏的状态下探测帧的频率都不同,所以wifi探针并不是一个可靠的用户感知的工具,只能是一个补充或者说是一个小玩意吧下面是对部分手机探测帧频率的测试结果:手机连接wifi的情况下锁屏1 iPhone4S、iPhone6原创 2016-01-04 15:42:51 · 6659 阅读 · 4 评论 -
openwrt上opkg更新报错"opkg_download: Failed to download ............."
开始搞op的时候,看到op竟然可以直接安装一些插件,激动坏了,因为这东西对嵌入式的小系统来说简直不敢想,但是op就支持了,就是这么任性。好不容易编译了固件,按照网上的教程,telnet进去,首先opkg update 结果没有想象中的华丽更新,竟然是下面这个什么鬼?竟然说路径找不到,拷贝到浏览器里,尼玛果然是没有,但是发现http://downloads.openwrt.org/sn原创 2015-07-09 11:29:49 · 46818 阅读 · 0 评论 -
openwrt上nodejs支持
刚好实验室有个学弟要在openwrt上用nodejs,就做了一番尝试。首先在git发现了一些大神给出的nodejs的包,分别做了尝试,但是都没有成功,也可能是因为我用的是3.10内核的原因,不过还好最后搞定了,这里记录一下编译的过程。文件放在git上:https://github.com/lixuande/openwrt-nodejs。 第一次编译报了如下才错误:发现是climits找原创 2015-04-08 17:08:02 · 15282 阅读 · 0 评论 -
openwrt在mt7620a芯片上对外置PA的支持
在研究网路上找到的rt2860v2版本的无线驱动的时候发现配置项里面没有对外置PA的支持,感觉很奇怪,首先怀疑是芯片本身是不是不支持,但是查看mt7620a的数据手册里面明明是有外置PA的支持的,其次想到可能我从网上获取的驱动源码是被阉割过的,找了几份都是一样,后来下到一个原厂的SDK,make menuconfig是可以看到有对外置PA支持的,于是从原厂的SDK中把驱动又做了一遍简单的移植,我哩原创 2015-02-04 11:37:22 · 8695 阅读 · 2 评论 -
如何备份flash上的openwrt的固件
最近接触的板子比较多,各种类型的,各种厂家的,有时候在刷路由器的固件之前想先备份一下路由器原厂的固件,当然就是从flash上读出来。首先要能够接到板子里面去,最好是能ssh吧 然后看一下板子的flash分区,就用手头的一款板子为例 图中能看到有六个区,其实只是四个大区,后面的rootfs和rootf_data也包含在firmware区中,我们刷机一般是刷掉firmware区域,刷成原创 2015-01-08 16:20:12 · 9916 阅读 · 2 评论 -
mt7620a上tf卡驱动的支持
手头有块7620a的板子上面有tf卡的卡槽,原创 2014-09-04 15:24:29 · 11296 阅读 · 3 评论 -
802.11帧格式
转一篇不错的博客 原文链接z一、802.11数据帧1、802.11数据帧的一般格式说明:2、数据帧各个字段说明:名称描述长度(字节)帧控制(Frame Control) 2持续时间(Duration ID)用来记载网络分配矢量(Netw转载 2014-09-04 15:41:46 · 4750 阅读 · 0 评论 -
openwrt上透明AP的实现
透明AP,顾名思义就是该AP对用户来说是透明的,是看不到的,也就是接入这个AP的用户直接从该AP的上级分配IP地址,AP本身不分配IP地址。功能有些类似交换机,但是AP本身有可以获取IP地址,可以对接入的STA进行管控。首先要了解op的网络划分,op的网络划分非常灵活。路由器本身只有一张物理网卡,但是却可以划分多个vlan,这就极大的增加了网络配置的灵活性。手头的板子有领个lan口一个wan口原创 2016-04-14 14:53:48 · 6857 阅读 · 0 评论 -
配置mt7620a上的双SSID
在商业wifi的实际布点中,客户经常会提出要两套,一套给流动性客户使用,一套给自己内部的员工使用,如果一台设备能够提供两个热点,其中一个热点上网需要权限认证,一个可以自由上网,之前写过一篇《openwrt上透明AP的实现》,主要是将热点桥接到上级路由上,从上级路由直接分配IP,主要的功用,也是为了走上级的认证体系,毕竟公共网络环境中对认证要求很严格。那么能不能一台设备两个热点,一个热点从上级分配I原创 2016-08-10 11:18:30 · 6096 阅读 · 0 评论 -
mt7620a上带机量的提高(三)
提高带机量的方案设计针对影响带机量提高的因素,在长时间的测试中找到了两条应对策略。第一是降频,减少被其他信道干扰的可能,提高信噪比,从而增加有效带宽。第二是跟进RSSI来划定连接范围,净化无线环境,提高信噪比,从而增加有效带宽。降频在2.4G频段下的有效频宽是60MHz,如果采用40MHz的频宽进行通信,也就是采用MIMO技术,这个AP被其他信道干扰到的概率就大大增加了,这种情况下大多原创 2016-11-23 16:09:49 · 6671 阅读 · 0 评论 -
给openwrt的固件打上自己的“印记”(一)
openwrt的开源固件编译完成后,上面会有较多的openwrt的印记,但是有些商用的系统需要去掉这些印记,打上一些厂商的印记。第一个简单的印记,登陆页,当你ssh或者telnet进去的时候,系统会给一个欢迎页面(暂且这么叫吧)就像下面这样:其实这是/etc/banner 中设定的页面。系统在启动的时候会通过/etc/profile 来设定环境变量,在这个文件中会展示banner中的内原创 2016-10-19 16:34:17 · 7232 阅读 · 1 评论 -
单独编译package下的openwrt插件
openwrt编译和开发过程中经常要添加自己的程序进去,一般都是放在package路径下,但是编译调试的时候每次都要make整个固件,特别麻烦,偶尔发现了有人说可以单独编译package下的程序,就像这样:make package/xxxxx/compile V=99 xxxxx就是你需要单独编译的程序。编译完成后去bin/ramips/packages里面找到对应的ipk,上传到板子,o原创 2016-09-27 11:27:39 · 14722 阅读 · 0 评论 -
openwrt上如何进行串口加密
实际生产的固件许多都对串口做了加密,这样就增加了别人觊觎你的生产固件的难度,毕竟没有几个厂商不忌惮对手对其固件内容的分析,当然这种串口加密并不能起到特别大的阻碍作用,因为只要别人想看你的固件,你是很难防住的,但串口加密至少会挡住以少部分人。串口加密需要几个方面的支持。首先是busybox中,getty和login。Base system ---> busybox ---> Logi原创 2016-09-20 10:43:16 · 5824 阅读 · 3 评论 -
openwrt上ntlm代理认证的支持(1)
许多公司内网都限制了外网访问,内网的员工想访问外网,比较多采用的是浏览器代理的方式。类似这种在浏览器上设置一下代理就可以正常访问外网了,openwrt能不能直接做了类似的代理,使连接路由器的设备可以直接访问外网?答案是可以的。http代理的认证有两种认证方式,一种是proxy basic,一种是proxy ntlm认证,其中proxy basic认证一般应用于不太重要的场合,因为b原创 2016-06-03 15:19:44 · 4509 阅读 · 2 评论 -
openwrt上“DHCP packet received on ra0 which has no address”问题查找和解决
在商场进行商业wifi布点的过程中,经常有用户反映说wifi连不上了,或者是连上了是一个叹号,分配不了IP。电脑设置了静态IP是可以接入的,check了logread发现打印里面有这么一句“DHCP packet received on ra0 which has no address”,原来是地址池耗尽了,加大地址池也是很难解决这个问题,那就只有缩短租期了。openwrt的dhcp相关的配置原创 2016-08-11 15:59:39 · 7275 阅读 · 0 评论 -
编译自己的程序到openwrt固件
在openwrt的编译时,make menuconfig可以看到好多选项,像这个样子: 还有这个样子: 能不能把自己写的程序也编译到openwrt内核,并且在make menuconfig的时候可以进行配置呢?让然是可以的我的方法如下,以hello为测试名字第一步:在package下建立hello文件夹第二步:在hello文件夹下构建src文件夹、Makefile文件。第三步:原创 2016-08-22 15:48:14 · 8199 阅读 · 0 评论 -
openwrt在7620A上对fat格式U盘的支持
openwrt刷好的固件,在7620a上运行时,可以看到原创 2014-05-07 17:44:37 · 6193 阅读 · 2 评论