月度归档:2020年01月

吐槽一下,果然不能盲目更新openwrt代码啊

朋友送我一个坏的小米路由器4,他也不知道故障是如何产生的,总之就是坏了,丢家里很久了,过年清理杂物终于翻出来,知道我喜欢折腾路由器,就丢给我研究了。

这个路由器很奇葩,路由器背面写着小米路由器4,硬件是MT7621+ MT7612EN+MT7603EN ,内存128MB,闪存128MB NAND,小米官网没有这个型号。唯一一个型号相近的是小米路由器4A千兆版。网上搜了下小米路由器4A的参数,发现小米路由器4A除了闪存换成了16MB的spi闪存,其他硬件和这个没有区别。但是主板布局走线有很大不同。小米路由器4A已经改成电解电容了。而我手里这个仍旧是固态电容。

正好赶上肺炎肆虐,呆在家里没有事情,就拿出来研究下,琢磨了很久发现可能是CPU坏了,于是吭哧吭哧折腾着换了一个MT7621CPU,刷了R3G的老毛子固件,正常。唯一不爽的是,R3G的内存是256MB的,而这个路由器是128MB内存,刷了R3G的毛子固件以后,内存显示256MB,这样很不稳定的,一旦超过物理内存,就会内核崩溃。老毛子固件的机制是直接把内存大小写在固件里,这个和openwrt完全不同,openwrt是读取bootloader提供的内存大小。

然后去下载了padavan的代码,一顿编译,固件是做出来了,但是没有我想要的功能,加上不太熟悉毛子固件编译的修改,弃坑转而研究openwrt。

有人可能会问,R3G在breed下面不是不能刷openwrt吗,实际上这个问题已经解决了,这里先挖个坑,一篇讲不完,咱们下篇再说。

然后1月2号的时候更新了某大雕的源码,编译了X86的固件,正常使用没有问题。于是就操刀开始编译R3G的openwrt固件。结果刷进去之后,LAN口死活无法获取IP地址。ifconfig显示lan口的IP地址是192.168.127.1,而WAN可以获取IP地址,这就很奇葩了。由于从来没有怀疑是源码有bug,一度让我以为是不是换上去的MT7621内部集成的交换机有问题,差点想重新再换一片CPU试试,幸好手里没有多余的CPU芯片而作罢。

不死心,以为小米更改了设计,也许这个R4千兆版和R3G的网口硬件顺序定义不同导致R3G默认的VLAN划分不适合这个机器。结果试了各种组合,故障依旧。最后编译一个新三的固件,刷到新三一看,LAN口同样无法获取IP地址,这才如梦初醒,原来是他喵的源码有问题!

当然我这里不是吐槽某大雕,毕竟这不是他的锅,根源在于openwrt的snapshot本来就是实验版本,bug多少几乎是必然的,只是没想到让我在这里中招了,浪费了许多时间。另外要赞一下大雕,他的开源精神值得所有的openwrt爱好者学习。具体名字这里就不方便说了,懂的自然懂,不懂的也不需要懂,哈哈哈。

现在开始回退到之前比较老的版本重新编译,希望问题能解决。

肺炎肆虐,呆在家里研究padavan编译

研究的源代码来自 https://github.com/hanwckf/rt-n56u

这个源码默认编译出来固件的IP地址是192.168.2.1,这个刚好和我家里的路由器冲突,于是研究下哪里可以更改这个设置,发现在/opt/rt-n56u/trunk/user/shared/defaults.h:#define DEF_LAN_ADDR,更改这里的参数就行了。

经过测试,不行。先留个坑吧,有兴趣再研究这个。

PADAVAN编译小米路由器4千兆版的网口设置

此路由器无线芯片是MT7612EN+MT7603EN,CPU是MT7621AT ,除了没有USB接口,闪存是128MB NAND ,内存128MB,其他和小米路由器3G硬件一样。但是网口定义不同。

# CONFIG_RAETH_ESW_IGMP_SNOOP_HW is not set
CONFIG_RAETH_ESW_PORT_WAN=4
CONFIG_RAETH_ESW_PORT_LAN1=2
CONFIG_RAETH_ESW_PORT_LAN2=1
CONFIG_RAETH_ESW_PORT_LAN3=0
CONFIG_RAETH_ESW_PORT_LAN4=3

此路由器刷了HC5962增强版(B70)的BOOTLOADER,可以刷B70的固件,WAN口仍旧是WAN口,不反序。

小米路由器4千兆版有两种硬件,另外一种的闪存芯片是16MB的SPI芯片,其余参数和这个NAND版本的相同。

VMWARE12.5安装MmacOS High Sierra 10.13.5

首先下载unlocker208,在电脑任意位置解压,注意文件目录不能有中文。然后先在任务管理器的服务里面,右键停止vmware的几个进程。

然后进入 unlocker208 文件夹,在win-install上点击右键选择以管理员身份运行。等待运行完毕,即可解锁vmware的MACOS安装功能。

然后运行vmware12.5,创建新的虚拟机,选择macos10.12,然后选择典型,磁盘100GB,存储为单个文件。

cdrom指定为下载的macOS High Sierra 10.13.5.iso文件。

在安装中报错,不可恢复错误,解决办法:找到刚刚创建虚拟机的文件夹下面的,XXX.VMX文件,右键用记事本打开。找到smc.present = “TRUE”这一行,在下面一行加上 smc.version = “0” 就可以了。保存以后再次打开虚拟机就可以运行了。

打开虚拟机到了这一步记得点击实用工具,磁盘工具。

点击VMware Virtual,抹掉。

名称随便填,方案选择GUID分区图。

关闭窗口以后就可以发现有磁盘可以安装了。

如果报错提示macOS Mojave应用程序副本已损坏,不能用来安装macOS。这个时候并不是镜像本身有问题,是由于镜像的证书过期,并且苹果没有更新证书日期导致的。

解决方法
第一步:断开网络。
①、物理机
如果你物理机安装和苹果系统,请拔掉网线!

②、虚拟机
如果你是虚拟机,请断开网络连接!

打开终端,修改时间。输入命令date 0201010116,修改时间为2016年。关闭终端,再次安装即可解决!

贴一个我使用openwrt的samba配置文件


[global]
netbios name = |NAME|
display charset = |CHARSET|
interfaces = |INTERFACES|
server string = |DESCRIPTION|
unix charset = |CHARSET|
workgroup = |WORKGROUP|
local master = no
browseable = yes
deadtime = 30
domain master = yes
encrypt passwords = yes
enable core files = no
guest ok = yes
# invalid users = root
load printers = no
map to guest = Bad User
max protocol = SMB2
min receivefile size = 16384
null passwords = yes
passdb backend = smbpasswd
preferred master = yes
security = user
smb passwd file = /etc/samba/smbpasswd
syslog = 2
use sendfile = yes
writeable = yes
bind interfaces only = yes
# Some other performace tuning options
# disable links and symbol links
follow symlinks = no
wide links = no
# enable some read/write tuning
use sendfile = yes
read raw = yes
write raw = yes
aio read size = 16384
aio write size = 16384
write cache size = 262144
max xmit = 65536
large readwrite = yes
getwd cache = yes
# disable locking, because only 2 share can be written.
strict locking = no
fake oplocks = yes
oplocks = no