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文件。

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

ubuntu18.04开机自动挂载swap分区

gcc@gcc-x64:~$ sudo mkswap /dev/sdb1
mkswap: /dev/sdb1: warning: wiping old swap signature.
Setting up swapspace version 1, size = 2 GiB (2146430976 bytes)
no label, UUID=947208ba-c306-4ec6-9b01-e9fb32eef9b4

修改/etc/fstab文件,添加一行

UUID=947208ba-c306-4ec6-9b01-e9fb32eef9b4 swap swap defaults 0 0

保存,重启即可。

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

给X86的OPENWRT界面添加cpu频率温度显示

某人的autocore已经提供了此功能,但是需要kernel支持才行。

实现方法:kernel_menuconfig里Device Drivers下面

I2C support

GPIO Support

Hardware Monitoring support

选择自己的硬件。

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

ubuntu下面tar打包时排除某几个子文件夹的方法

网上很多教程说的都没用。应该这样做才行。

比如目前位于/mnt下面,openwrt位于/mnt下面。打包时候排除openwrt下面的staging_dir和build_dir等文件夹

tar czvPf openwrt.tar.gz –exclude=openwrt/build_dir –exclude=openwrt/staging_dir –exclude=openwrt/bin –exclude=openwrt/tmp –exclude=openwrt/.git openwrt/

注意–exclude前面是两个–,不知道怎么的,明明打的是两个-,但是wordpress发出来就变成了一个–。

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

维修一台半残的腾达AC15

之所以说是半残,是因为之前这位朋友咨询过改机的事情,然后并没有找我们改而是找别人改了,结果改了之后,5G信号非常弱,只能在路由器旁边才能使用,加上2.4G频段目前干扰严重,基本上没法用,而5G又十分微弱,这个路由器等于就没法使用了,无奈只好联系我们看看能不能修好。

以下是摘录图片里的文字:“很惭愧啊,专业的事情还是应该找专业的人来干,我找人硬改了腾达AC15以后,2.4g和5g信号都减弱了,2.4g还能正常使用,5g信号根本没法用,无任何阻挡的3米以外,5g信号都非常弱。我现在有两个诉求:一是解决5g信号问题,二是刷双系统,我在万不得已的情况下还可以退回腾达固件使用。不知道您愿不愿意帮忙?”

话都说到这份上了,总不能眼睁睁看着这位朋友的路由器废掉呀,那就寄来修呗。

然后收到的路由器是这个样子滴。

接下来自然是拆机检查了,AC15改机必须改无线模块部分的飞线,否则信号就不好。为什么呢,道理也很简单,因为无线模块的PA芯片是靠gpio来控制的,腾达原厂的固件和华硕固件的GPIO定义并不一样,所以改机并不是简单的改内存闪存刷上固件就完事的,很多细节的地方也需要处理好,否则就容易出现这样的问题。

拆开外壳,发现主板上NAND闪存管脚处有很多松香的痕迹,另外发现SPI闪存也已经被拆去了,如果要改双启动的话,需要补上这个闪存,还要设置个跳线来切换NAND和SPI的启动。

拆开主板上的无线模块屏蔽罩,发现果然是无线模块没有飞线导致的。于是三下五除二,飞好线,然后要改双启动。这里说下一个技巧,飞线前先处理飞线—–即在线的头部先上BGA膏+上锡(如同新买的电烙铁上锡一样),然后可以轻而易举的飞上。飞另一端时同样方法处理。

以上是搞好后分别拍摄的腾达原厂和华硕AC68U双系统的界面,5G的无线信号也恢复到原厂的状态,成功搞定。

 

发表在 无线路由器维修 | 标签为 , , | 留下评论

ubuntu 18.04 64位系统,编译梅林时报错cc1: error while loading shared libraries: libelf.so.1

ubuntu 18.04 64位系统,编译梅林时报错。

cc1: error while loading shared libraries: libelf.so.1: cannot open shared object file: No such file or directory

是因为缺少32位的libelf.so.1导致。

使用sudo apt-get install libelf1:i386
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package libelf1:i386

结果软件仓库没有这样的安装文件。

解决办法,去https://pkgs.org/download/libelf1下载

https://ubuntu.pkgs.org/18.04/ubuntu-main-i386/libelf1_0.170-0.4_i386.deb.html

将libelf.so.1,libelf-0.170.so放入/usr/lib32,权限777即可。

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

记录一下手里的几块CPU性能信息

RANK    CPU                    FREQ        SCORE

1241 Intel Core i3-530 @ 2.93GHz 2579
1573 Intel Core2 Duo P8800 @ 2.66GHz 1746
1399 Intel 赛扬 G530 @ 2.40GHz 2147
1453 Intel Core2 Duo P9700 @ 2.80GHz 2011
1409 Intel Core2 Duo T9900 @ 3.06GHz 2124

发表在 DIY and Geek | 留下评论