路由器维修请移步淘宝店铺

我们的微信 maomaowuxian

河南猫猫无线的淘宝店铺 https://wifizoo.taobao.com/

微信和淘宝店铺二维码如下:

发表在 淘宝 | 标签为 , , , | 留下评论

linux文件系统报错 结构需要清理 Structure needs cleaning

解决办法,fsck /dev/sda1 -y

发表在 Linux, Tips | 留下评论

Intel 5300AGN无线网卡连不上WIFI的解决办法

将允许计算机关闭此设备以节约电源的对勾去掉即可。如果还是不行,将传输电源设置为高即可。

发表在 DIY and Geek, Tips | 标签为 | 留下评论

编译openwrt时取消预选的软件包

使用别人的openwrt代码,发现里面预选了很多luci-app,而这些并不是我需要的功能,每次编译的时候都要取消选中,很是麻烦。

研究了一下,找到了设置这个的地方,记录一下。

其实这个设置在/openwrt/include目录下面的target.mk中。

default device type

DEVICE_TYPE?=router

Default packages – the really basic set

DEFAULT_PACKAGES:=base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools uclient-fetch logd block-mount \
kmod-nf-nathelper kmod-nf-nathelper-extra kmod-ipt-raw \
default-settings luci luci-app-ddns luci-app-sqm luci-app-upnp luci-app-adbyby-plus luci-app-autoreboot \
luci-app-filetransfer luci-app-vsftpd ddns-scripts_aliyun \
luci-app-pptp-server luci-app-arpbind luci-app-vlmcsd luci-app-wifischedule luci-app-wol luci-app-ramfree \
luci-app-sfe luci-app-flowoffload luci-app-nlbwmon luci-app-usb-printer luci-app-accesscontrol

For nas targets

DEFAULT_PACKAGES.nas:=fdisk lsblk mdadm automount autosamba luci-app-usb-printer

For router targets

DEFAULT_PACKAGES.router:=dnsmasq-full iptables ppp ppp-mod-pppoe firewall kmod-ipt-offload
DEFAULT_PACKAGES.bootloader:=

而在openwrt原版里面是这样的:

default device type

DEVICE_TYPE?=router

Default packages – the really basic set

DEFAULT_PACKAGES:=base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools uclient-fetch logd

For nas targets

DEFAULT_PACKAGES.nas:=block-mount fdisk lsblk mdadm

For router targets

DEFAULT_PACKAGES.router:=dnsmasq iptables ip6tables ppp ppp-mod-pppoe firewall odhcpd-ipv6only odhcp6c kmod-ipt-offload
DEFAULT_PACKAGES.bootloader:=

发表在 openwrt, 编译固件 | 留下评论

openwrt编译过程中config.seed的用法

openwrt现在的新版本,编译完成后会在固件文件夹生成一个config.seed文件,这个文件就是你这个固件选择的包的一个记录,下次编译的时候可以直接复制它替换.config
文件,然后make menuconfig 保存编译即可。

留下评论

编译openwrt时候禁用ipv6,Disable IPv6 on OpenWRT

IPV6很讨厌,尤其是家用时候,这时是不需要这个功能的。所以想在编译的时候就删除掉这个功能。

首先在Global build settings里面取消选中Enable IPv6 support in packages

然后修改/mnt/lean-190323/package/network/config/firewall里面的makefile文件,删除+IPV6:libip6tc,+IPV6:kmod-nf-conntrack6

修改/mnt/lean-190323/package/network/utils/iptables里面的makefile文件,删除+IPV6:libip6tc,

如果是ledev17.01,还需要在feeds/routing/miniupnpd的makefile里删除相关ipv6的依赖

发表在 openwrt, Tips, 编译固件 | 标签为 , | 留下评论

编译MT7628固件刷机后报错jffs2: Flash size not aligned to erasesize, reducing to 6272KiB

固件编译成功,刷机后开机启动过程中报错,

jffs2: Flash size not aligned to erasesize, reducing to 6272KiB

研究了一下,发现是dts文件中对固件大小定义错误导致的。

因为之前都是照抄其他7628方案的dts修改而来,所以沿用了别人的固件长度定义。

partition@50000 {

compatible = “denx,uimage”;

label = “firmware”;

reg = <0x50000 0x7b0000>;

而0x7b0000的长度换算成十进制就是8060928,然后除以1024等于7872,大于这个数值的固件就会报错。

改成0xfb0000问题解决。

发表在 openwrt, 编译固件 | 标签为 | 留下评论

X200在win8专业版64位系统下安装ThinkPad 电源管理软件

联想官网有ThinkPad 电源管理软件下载,但是遗憾的是该软件不支持WIN8系统,安装会报错自动退出。https://think.lenovo.com.cn/support/driver/detail.aspx?docID=DR1197862934453

解决办法,报错退出后去C:\DRIVERS\VISTA\PWRMGRV目录下面,把setup.exe属性,兼容性,以兼容模式运行这个程序,设置为WIN7,然后确定,重新安装即可成功安装使用。

发表在 DIY and Geek, Tips | 留下评论

猫猫无线谈谈openwrt固件体积与squashfs压缩率的关系

openwrt编译中,很多时候路由器原生的spi flash闪存大多在8MB-16MB左右,32MB闪存的设备寥寥无几,如果想多添加一些功能进去,就可能会遇到闪存空间装不下的问题。这就需要对固件进行各种精简,去除不需要的功能。但是有时候费了九牛二虎之力,空间还是不够装,怎么办?

这时候,可以考虑通过设置squashfs的block size大小,来获取更高的压缩比,这样做出来的固件体积就更小。

这是因为在生成固件时,会调用mksquashfs_lzma进行压缩,而mksquashfs_lzma有一个叫block_size的参数,block_size越大通常压缩比也越大,同时解压所需内存也越多,不过一般可以不考虑内存的问题,因为现在的路由器只要能刷openwrt,内存基本上32M起步,128M甚至256M也屡见不鲜。所以内存不是问题。

openwrt默认的squashfs的block size是256,可以设置为512,以获取更高的压缩比,从而减小固件体积。

发表在 openwrt, 编译固件 | 标签为 | 留下评论

ubuntu18.04运行脚本报错let: not found

gcc@gcc-x64:/mnt$ ./cpu_usage.sh
./cpu_usage.sh: 15: ./cpu_usage.sh: let: not found
./cpu_usage.sh: 16: ./cpu_usage.sh: let: not found
./cpu_usage.sh: 17: ./cpu_usage.sh: let: not found
CPU: %
./cpu_usage.sh: 15: ./cpu_usage.sh: let: not found
./cpu_usage.sh: 16: ./cpu_usage.sh: let: not found
./cpu_usage.sh: 17: ./cpu_usage.sh: let: not found
CPU: %
./cpu_usage.sh: 15: ./cpu_usage.sh: let: not found
./cpu_usage.sh: 16: ./cpu_usage.sh: let: not found
./cpu_usage.sh: 17: ./cpu_usage.sh: let: not found
CPU: %
./cpu_usage.sh: 15: ./cpu_usage.sh: let: not found
./cpu_usage.sh: 16: ./cpu_usage.sh: let: not found
./cpu_usage.sh: 17: ./cpu_usage.sh: let: not found
CPU: %
./cpu_usage.sh: 15: ./cpu_usage.sh: let: not found
./cpu_usage.sh: 16: ./cpu_usage.sh: let: not found
./cpu_usage.sh: 17: ./cpu_usage.sh: let: not found
CPU: %
^C
gcc@gcc-x64:/mnt$ let
-bash: let: expression expected
gcc@gcc-x64:/mnt$ sudo let
[sudo] password for gcc:
sudo: let: command not found

原因是/bin/sh 指向了 dash 而不是 bash ,但是 dash 不支持 let 命令。

解决办法,直接使用bash运行脚本即可。

bash 空格 脚本,回车即可

发表在 Linux, Tips | 标签为 , , | 留下评论

简单说下博通ARM芯片的CFE编译方法

提到CFE,可能对于经常折腾路由器刷机的朋友们并不陌生,毕竟早在2010年左右的时候,大家就已经开始修改CFE参数来刷机了。

CFE全称叫做Broadcom Common Firmware Environment,是嵌入式系统中用来初始化硬件并引导启动固件的一个底层程序,类似于电脑的BIOS。

相比U-Boot,CFE主要使用于博通芯片组的机器,它开放性小资料少,至今很多博通机型在刷入第三方固件时,仍然需要通过命令行+tftp服务器的方式上传固件刷机,无法做到不死uboot一样操作简单直观、只需要打开浏览器上传固件就可以完成刷机。

当然,CFE也不是完全闭源的,我们还是可以找到它的一些源码,比如梅林源码里就有Broadcom SDK6和SDK7的源码。河南猫猫无线尝试编译了 CFE 部分,并做了一些研究,在这里简单记录一下。

搭建编译平台和安装环境这里就不再赘述,网上教程一抓一大把,大家可以自行搜索解决。这里仅从开始下载源码到编译来讲讲。

首先下载梅林源码。
执行命令 git clone https://github.com/RMerl/asuswrt-merlin

我的代码放在/mnt/asuswrt-merlin

然后添加环境变量:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/asuswrt-merlin/release/src-rt-6.x.4708/toolchains/hndtools-arm-linux-2.6.36-uclibc-4.5.3/lib/
export PATH=$PATH:/opt/brcm/hndtools-mipsel-linux/bin:/opt/brcm/hndtools-mipsel-uclibc/bin:/opt/brcm-arm/bin
export PATH=$PATH:/mnt/asuswrt-merlin/release/src-rt-6.x.4708/ctools/

在/mnt/asuswrt-merlin/release/src-rt-6.x.4708下面新建一个.config文件,内容都是export开头的参数导入。如果没有这个文件,可以手工添加。比如

export IPV6SUPP=y
export HTTPS=y
export ARM=y
export BCM57=y
export AUTODICT=y
export BBEXTRAS=y
export USBEXTRAS=y
export EBTABLES=y
export SAMBA3=3.6.x
export MEDIASRV=y
export MODEM=y
export MODEMPIN=y
export BECEEM=y
export PARENTAL2=y
export ACCEL_PPTPD=y
export PRINTER=y
export STAINFO=y
export WEBDAV=y
export USB=USB
export GRO=y
export APP=network
export PROXYSTA=y
export JFFS2USERICON=y
export CLOUDSYNC=y
export SWEBDAVCLIENT=y
export DROPBOXCLIENT=y
export FTPCLIENT=y
export SAMBACLIENT=y
export DNSMQ=y
export SHP=y
export NVRAM_64K=y
export RTAC68U=y
export BCMWL6=y
export BCMWL6A=y
export TUNEK=n
export BCM5301X=y
export DISK_MONITOR=y
export BTN_WIFITOG=y
export LOGO_LED=y
export OPTIMIZE_XBOX=y
export ODMPID=y
export LED_BTN=y
export ROG=y
export SSD=n
export EMAIL=y
export BCMSMP=y
export XHCI=y
export SSH=y
export JFFS2=y
export NFS=y
export OPENVPN=y
export USER_LOW_RSSI=y
export TIMEMACHINE=y
export MDNS=y
export VPNC=y
export BRCM_NAND_JFFS2=y
export JFFS2LOG=y
export BCMFA=y
export BWDPI=y
export HSPOT=y
export DUMP_OOPS_MSG=y
export LINUX_MTD=64
export BCM7=n
export TEMPROOTFS=y
export DEBUGFS=y
export SNMPD=y
export TOR=y
export MULTICASTIPTV=y
export QUAGGA=y
export BCM_RECVFILE=y
export LAN50=y
export ATCOVER=y
export GETREALIP=y
export BCM5301X_TRAFFIC_MONITOR=n
export CLOUDCHECK=y
export NATNL=y
export REBOOT_SCHEDULE=y
export TFAT=y
export HFS=tuxera
export NTFS=tuxera
export IPSECMOD=n
export REPEATER=y
export DUALWAN=y
export DNSFILTER=y
export UPNPIGD2=n
export DNSSEC=y
export NANO=y
export FAKEHDR=y
export FORCE_SN=380
export FORCE_EN=1031
export BUILD_NAME=RT-AC68U

然后在/mnt/asuswrt-merlin/release/src-rt-6.x.4708/cfe/build/broadcom/bcm947xx下面执行make,稍等一会就可以在此目录下面生成cfe文件。

发表在 编译固件 | 标签为 , , | 留下评论