小记vps MySQL启动故障

五一长假回来上班,发现自己的blog访问不了,尝试远程登陆,也是失败。在vultr 网站登陆,重启了服务器之后,发现短暂可以正常访问,很快就提示数据库无法连接。检查lnmp status,发现MySQL 不断被后台杀掉,网上搜到很多文章是讲如何优化my.cnf 减少资源占用的,比如 https://stackoverflow.com/questions/47268142/mysqld-is-getting-killed-by-own 和https://blog.csdn.net/cailongbiaoyuli/article/details/83748977。

照文章中的介绍,修改了my.cnf后,似乎比原来坚持的时间久一点,但没多久还是会挂掉。不记得怎么看到要查看内存使用情况的,敲了free -m,发现swap分区没有了。添加swap分区后,需要添加到启动,所以需要修改fstab,结果手贱改了uuid 下面的内容,重启后发现整个root 都readonly了。网上很多文章都是讲执行 mount -o remount,rw / 就可以重新编辑fstab了,实测失败,最后是用https://my.oschina.net/u/4332081/blog/3293521 介绍的办法,在vultr 的console 下面操作,才重新把fstab修复成功。

再记录一下自己swap 分区的创建方式:

sudo dd if=/dev/zero of=/var/swap bs=1M count=1024
sudo chmod 600 /var/swap
sudo mkswap /var/swap
sudo swapon /var/swap

创建成功后,再free -m查看,就会看到成功创建swap分区了。

然后修改fstab,添加

/var/swap swap swap defaults 0 0

保存后重启,再次开机swap分区也会自动挂载了。

删除swap分区的方式

swapoff /var/swap   //停止swap分区
rm -rf /var/swap    //删除swap分区

然后修改fstab,删除添加的swap 分区启动的内容就可以了。

小记:ThinkPad S1 yoga 折腾去除BIOS白名单,更换WiFi6 网卡

家里的笔记本电脑无线网卡一直不好用,经常断流,可能是老化了,经常不得不接个USB扩展网卡才能正常上网。内置的无线网卡支持WiFi6,价格也不算贵(100元以内)。买前做了一些功课,发现Lenovo 2016年之前的笔记本电脑BIOS都有一个白名单的机制,只有白名单里面的网卡型号才能装上去正常使用。于是搜了一下去除白名单的方式,可能是笔记本太老了,关于这款笔记本去除白名单的文章非常少。只有几个视频提到了如果可以把BIOS的flash 拆下来BIOS更新一个删掉白名单的bin再装上去,但是视频下面并没有提供去除BIOS白名单的bin文件下载。

  话分两头,我觉得白名单的问题一定可以搞定,先把无线网卡买起再说,于是先买了一款翼联的AX210的WiFi 6E的无线网卡,结果买回来发现不能用。

左边是mini PCI-E接口的旧网卡,右边是M2接口的AX210网卡

新款的无线网卡大多是M2接口的,我的笔记本电脑无线网卡的接口是mini PCI-E的,所以根本不能用。虽然可以透过转接的方式来实现,但单买转接口不划算,联系了店家说可以七天无理由退货,就退掉了。不甘心的我于是在淘宝找不同的无线网卡商家,联系卖家确认是否可以用。有一家特别有耐心,给我推荐了mini PCI-E接口的无线网卡,而且说如果不能用就可以七天无理由退货,虽然推荐的WiFi6不是WiFi6E的网卡,有点遗憾,但对卖家的服务还是挺满意的。拆机直接装上去会触发BIOS的白名单机制。

提示插入了未认证的网卡,请关机并移除网卡。这个界面其实包含了一个重要的信息,8086开头的这一串数字就是新网卡的硬件id,如果透过修改BIOS,添加硬件id到BIOS的话,可以把它记下来。

  言归正传,对于刷新BIOS这件事,我特别希望能够找到可以在线刷新的方式,不管是透过Dos系统还是Windows系统,应该都很容易实现,也不用拆机拆主板重烧flash,为此我尝试了很多flash刷新工具,比如fpt(Flash Programming Tools)工具,试了dos模式下的fpt,Windows下面的fpt64,都提示不支持的平台无法运行。另外还尝试了Winflash,发现可以最接近成功的版本是Phoenix UEFI Winflash,可以透过Windows 命令行模式下,运行

winflash /sv /sd

可以跳过日期和版本的检查,但是一跑到烧写flash的状态,电脑就蓝屏重启。

Winphlash64 Phoenix BIOS flasher v1.0.76 64 bit

透过翻阅大量的帖子,对于BIOS 如何备份,如何修改BIOS文件,添加新网卡的硬件id到BIOS里面,也学到了不少东西。类似的内容很多,可以参考知乎的这篇:

E540强刷BIOS添加白名单之BIOS文件修改

在不断搜索到过程中找到了pcbeta 的这个帖子:

Thinkpad s1 yoga通过clover完美hackintosh10.15.3 Catalina,准备转战OC

这篇文章讲了拆机,烧去除白名单的bin的过程,但文中的附件非注册会员不能下载,为此还去闲鱼买了一个邀请码才得以成功注册。这篇文章非常详细的介绍了拆机、烧录BIOS的过程,还提供了两颗BIOS flash的bin文件,其中包含去除白名单限制的bin。因为在线更新BIOS一直没有突破,所以最终还是回到了拆机、拆主板、拆flash烧录的老路上来了。

拆下来的主板
左边是4M byte的EC BIOS,右边是8M byte的PCH BIOS,去除只需要更新EC BIOS,文末我会提供BIOS的bin文件

因为没有专门的flash烧录器和夹子,用的方式把EC BIOS拆下来,装在我司的板子上,用我司的工具备份,然后烧录去除白名单的bin,烧录成功后再装回主板。装回去之后,还是用旧网卡,看更新了BIOS后能正常开机,再换上新买的网卡,没有出现之前未认证网卡的提示了,表示BIOS 白名单的机制去除成功,进入到win10系统后,发现网卡驱动已经自动安装好了。

蓝牙驱动是后面用驱动精灵装的

连上WiFi 之后的状态

用speedtest测试了一下新网卡的网速

公司的宽带是电信的,500M下行,50M上行的,看测速的结果跑满了宽带的上限,更换网卡的效果非常明显,开心!折腾了两天,终于把无线网卡的事情搞定了,特别感谢帮忙更换flash的同事。

ThinkPad S1 yoga的拆机视频也提供了很大的帮助。

附上ThinkPad S1 yoga的BIOS 文件,里面还有一些BIOS的工具。BIOS 烧录前务必请备份旧的BIOS,遇到意外情况不能开机还可以还原回去。

链接:https://pan.baidu.com/s/1SKY_bl_WE4GL9zSRQH4Ecw
提取码:h9kp

链接:https://share.weiyun.com/ihlWeKwp

密码:fkve3i

win10 C盘空间清理

最近C盘的空间越来越紧张,117G的容量经常剩下不到10G。很大程度是因为把Android studio装在C盘,使用时间越久,C盘的空间越紧张。今天终于决定清理一下,原本计划是准备Android studio卸载后重新安装在别的盘的,后面搜到了下面这篇文章:

https://blog.csdn.net/moxiouhao/article/details/83989180

选取了其中.gradle和SDK目录迁移到其他硬盘,清理了10多G的空间出来。

翻看C盘根目录的时候,发现有个Windows.old的目录,占用了17G多的空间,于是搜到了这篇文章:

https://www.ruoshan.com/a/windows-old.html
照着文章的做法,删掉了Windows.old目录。
经过这么一清理,C盘的剩余空间变成了接近50G,开心!

自编译OpenWRT固件

编译固件添加SSR+

编辑lede 目录下feeds.conf.default 文件,去掉下面的注释

src-git helloworld https://github.com/fw876/helloworld

执行下面的命令进行编译

./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
make -j8 download V=s
make -j1 V=s

二次编译:
1. git pull 
2. rm -rf ./tmp && rm -rf .config
3. 编辑lede 目录下feeds.conf.default 文件,添加
src-git helloworld https://github.com/fw876/helloworld
4. ./scripts/feeds clean
./scripts/feeds update -a && ./scripts/feeds install -a
5. make menuconfig
6. make -j8 download
make -j$(($(nproc) + 1)) V=s

git pull的时候可能会报错,执行
1 git reset --hard
2 git pull
就可以修复。

参考链接:
https://ssr.tools/1420

https://github.com/coolsnowwolf/lede/issues/4410

https://github.com/fw876/helloworld

自编译OpenWRT固件,支持NanoPi NEO2(深度定制)
https://www.wygdbb.com/2020/05/19/diy-openwrt-for-pi-plus/

Android学习笔记:抓取U盘实际路径

  1. 创建接收器
public class USBReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {

StorageManager mStorageManager = (StorageManager) context.getSystemService(Activity.STORAGE_SERVICE);
String action = intent.getAction();
Log.d(TAG, "receive broadcast\n"+action);
if(action.equals(Intent.ACTION_MEDIA_MOUNTED)) {
   String path = intent.getData().getPath();
    //path = getCorrectPath(path);//获取正确的,完整的路径
    Log.d(TAG, "THE PATH IS:\n"+path);
}

}
}

2. 定义变量

USBReceiver usbBroadcast;

3. 在onCreate 下面注册广播

usbBroadcast = new USBReceiver();
IntentFilter usbFilter= new IntentFilter();
usbFilter.addAction(Intent.ACTION_MEDIA_MOUNTED);
usbFilter.addAction(Intent.ACTION_MEDIA_REMOVED);
usbFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);
usbFilter.addDataScheme("file");
registerReceiver(usbBroadcast,usbFilter);

4. 程序退出前需要注销广播

参考链接:

https://blog.csdn.net/LJX_ahut/article/details/89672880

https://www.jianshu.com/p/42982aa8184

Android 学习笔记:接收广播开启activity时遇到Exception的问题

在别的安卓机器上调试成功的代码,在另外一台机器上测试的时候,发现收到广播启动activity的时候,会出现
android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
的异常提示。网上搜了一下,发现必须设置Intent标志为FLAG_ACTIVITY_NEW_TASK。我是这样设置的:

 

Intent intentS= new Intent(getApplicationContext(), RunActivity.class);
intentS.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intentS);

设置之后重新运行,就不会抛出上面的异常了。

本文参考链接:https://willy2016.pixnet.net/blog/post/215860320-android–api-%E7%B4%9A%E5%88%A5%E5%8D%87%E7%B4%9A-28%2C-android-pie-9.0-%E9%81%87%E5%88%B0-error

解决因为resolv.conf 被改不能连网的问题

我用的是Ubuntu 18.04的虚拟机系统,之前不知道改了什么配置,每次网络状态改变,resolv.conf都会被重新配置,造成DNS无效。
被自动修改后的resolv.conf长这个样子:

# Generated by NetworkManager
search lan
nameserver 127.0.0.53

原来的处理方式是去修改resolv.conf,改成实际可用的DNS,但这样改来改去太麻烦了。后来就在网上搜到了这篇文章:
https://www.jianshu.com/p/998a4fc81901

参照这篇文章,我做了这几步:
1.修改NetworkManager配置文件/etc/NetworkManager/NetworkManager.conf
我原始的NetworkManager.conf 是这样的:

[main]
plugins=ifupdown,keyfile
#dns=dnsmasq


[ifupdown]
managed=false

[device]
wifi.scan-rand-mac-address=no

只需要在[main]下面添加 一条dns=default,然后保存退出。

[main]
plugins=ifupdown,keyfile
dns=default

[ifupdown]
managed=false

[device]
wifi.scan-rand-mac-address=no

2.重启NetworkManager

sudo service network-manager restart

重启之后,再次查看resolv.conf,DNS已经是从网关获取到的正常状态。

OpenWrt luci app功能介绍

APP 名称 释义
LuCI —> Applications luci-app-accesscontrol # 访问时间控制
LuCI —> Applications luci-app-adblock #ADB 广告过滤
LuCI —> Applications luci-app-adbyby-plus # 广告屏蔽大师 Plus +
LuCI —> Applications luci-app-adbyby # 广告过滤大师(已弃)
LuCI —> Applications luci-app-adkill # 广告过滤(已弃)
LuCI —> Applications luci-app-advanced-reboot #Linksys 高级重启
LuCI —> Applications luci-app-ahcp # 支持 AHCPd
LuCI —> Applications luci-app-aliddns # 阿里 DDNS 客户端(已弃,集成至 ddns)
LuCI —> Applications luci-app-amule #aMule 下载工具
LuCI —> Applications luci-app-aria2 # Aria2 下载工具
LuCI —> Applications luci-app-arpbind #IP/MAC 绑定
LuCI —> Applications luci-app-asterisk # 支持 Asterisk 电话服务器
LuCI —> Applications luci-app-attendedsysupgrade # 固件更新升级相关
LuCI —> Applications luci-app-autoreboot # 支持计划重启
LuCI —> Applications luci-app-baidupcs-web # 百度网盘管理 *
LuCI —> Applications luci-app-bcp38 #BCP38 网络入口过滤(不确定)
LuCI —> Applications luci-app-birdl-ipv4 # 对 Birdl-ipv6 的支持 *
LuCI —> Applications luci-app-birdl-ipv6 # 对 Birdl-ipv4 的支持 *
LuCI —> Applications luci-app-bird4 #Bird 4(未知)(已弃)
LuCI —> Applications luci-app-bird6 #Bird 6(未知)(已弃)
LuCI —> Applications luci-app-bmx6 #BMX6 路由协议
LuCI —> Applications luci-app-bmx7 #BMX7 路由协议
LuCI —> Applications luci-app-caldav # 联系人(已弃)
LuCI —> Applications luci-app-cifsd # 网络共享 CIFS/SMB 服务器 *
LuCI —> Applications luci-app-cjdns # 加密 IPV6 网络相关
LuCI —> Applications luci-app-clamav #ClamAV 杀毒软件
LuCI —> Applications luci-app-commands #Shell 命令模块
LuCI —> Applications luci-app-cshark #CloudShark 捕获工具
LuCI —> Applications luci-app-ddns # 动态域名 DNS(集成阿里 DDNS 客户端)
LuCI —> Applications luci-app-diag-core #core 诊断工具
LuCI —> Applications Luci-app-diskman #简单的磁盘管理 LuCI 插件
LuCI —> Applications luci-app-dnscrypt-proxy #DNSCrypt 解决 DNS 污染
LuCI —> Applications luci-app-dnsforwarder #DNSForwarder 防 DNS 污染
LuCI —> Applications luci-app-dnspod #DNSPod
LuCI —> Applications luci-app-docker #Docker 容器 *
LuCI —> Applications luci-app-dump1090 # 民航无线频率(不确定)
LuCI —> Applications luci-app-dynapoint #DynaPoint(未知)
LuCI —> Applications luci-app-e2guardian #Web 内容过滤器
LuCI —> Applications luci-app-familycloud # 家庭云盘
LuCI —> Applications luci-app-filetransfer # 文件传输(可 web 安装 ipk 包)
LuCI —> Applications luci-app-firewall # 添加防火墙
LuCI —> Applications luci-app-flowoffload #Turbo ACC 网络加速(集成 FLOW,BBR,NAT,DNS…
LuCI —> Applications luci-app-freifunk-diagnostics #freifunk 组件 诊断(未知)
LuCI —> Applications luci-app-freifunk-policyrouting #freifunk 组件 策略路由(未知)
LuCI —> Applications luci-app-freifunk-widgets #freifunk 组件 索引(未知)
LuCI —> Applications luci-app-frpc # 内网穿透 Frp
LuCI —> Applications luci-app-fwknopd #Firewall Knock Operator 服务器
LuCI —> Applications luci-app-guest-wifi #WiFi 访客网络
LuCI —> Applications luci-app-gfwlist #GFW 域名列表(已弃)
LuCI —> Applications luci-app-haproxy-tcp #HAProxy 负载均衡 – TCP
LuCI —> Applications luci-app-hd-idle # 硬盘休眠
LuCI —> Applications luci-app-hnet #Homenet Status 家庭网络控制协议
LuCI —> Applications luci-app-ipsec-virtuald #virtual 服务器 IPSec
LuCI —> Applications luci-app-kodexplorer #KOD 可道云私人网盘
LuCI —> Applications luci-app-kooldns #virtual** 服务器 ddns 替代方案(已弃)
LuCI —> Applications luci-app-koolproxy #KP 去广告(已弃)
LuCI —> Applications luci-app-lxc #LXC 容器管理
LuCI —> Applications luci-app-meshwizard #网络设置向导
LuCI —> Applications luci-app-minidlna # 完全兼容 DLNA / UPnP-AV 客户端的服务器软件
LuCI —> Applications luci-app-mjpg-streamer # 兼容 Linux-UVC 的摄像头程序
LuCI —> Applications luci-app-mtwifi #MTWiFi 驱动的支持 *
LuCI —> Applications luci-app-mmc-over-gpio # 添加 SD 卡操作界面(已弃)
LuCI —> Applications luci-app-multiwan # 多拨虚拟网卡(已弃,移至 syncdial)
LuCI —> Applications luci-app-mwan #MWAN 负载均衡(已弃)
LuCI —> Applications luci-app-mwan3 #MWAN3 负载均衡
LuCI —> Applications luci-app-mwan3helper #MWAN3 分流助手
LuCI —> Applications luci-app-n2n_v2 #N2N 内网穿透 N2N v2 virtual** 服务
LuCI —> Applications luci-app-netdata #Netdata 实时监控(图表) *
LuCI —> Applications luci-app-nft-qos #QOS 流控 Nftables 版
LuCI —> Applications luci-app-ngrokc #Ngrok 内网穿透(已弃)
LuCI —> Applications luci-app-nlbwmon # 网络带宽监视器
LuCI —> Applications luci-app-noddos #NodDOS Clients 阻止 DDoS 攻击
LuCI —> Applications luci-app-nps # 内网穿透 nps *
LuCI —> Applications luci-app-ntpc #NTP 时间同步服务器
LuCI —> Applications luci-app-ocserv #OpenConnect virtual** 服务
LuCI —> Applications luci-app-olsr #OLSR 配置和状态模块
LuCI —> Applications luci-app-olsr-services #OLSR 服务器
LuCI —> Applications luci-app-olsr-viz #OLSR 可视化
LuCI —> Applications luci-app-openvirtual #Openvirtual 客户端
LuCI —> Applications luci-app-openvirtual-server # 易于使用的 Openvirtual 服务器 Web-UI
LuCI —> Applications luci-app-oscam #OSCAM 服务器(已弃)
LuCI —> Applications luci-app-p910nd # 打印服务器模块
LuCI —> Applications luci-app-pagekitec #Pagekite 内网穿透客户端
LuCI —> Applications luci-app-polipo #Polipo 代理 (是一个小型且快速的网页缓存代理)
LuCI —> Applications luci-app-pppoe-relay #PPPoE NAT 穿透 点对点协议(PPP)
LuCI —> Applications luci-app-p p t p-server #virtual** 服务器 p p t p
LuCI —> Applications luci-app-privoxy #Privoxy 网络代理 (带过滤无缓存)
LuCI —> Applications luci-app-qbittorrent #BT 下载工具(qBittorrent)
LuCI —> Applications luci-app-qos # 流量服务质量 (QoS) 流控
LuCI —> Applications luci-app-radicale #CalDAV/CardDAV 同步工具
LuCI —> Applications luci-app-ramfree # 释放内存
LuCI —> Applications luci-app-rp-pppoe-server #Roaring Penguin PPPoE Server 服务器
LuCI —> Applications luci-app-samba # 网络共享(Samba)
LuCI —> Applications luci-app-samba4 # 网络共享(Samba4)
LuCI —> Applications luci-app-sfe #Turbo ACC 网络加速(已弃,移至 flowoffload)
LuCI —> Applications luci-app-s-s #SS 兲朝上网(已弃)
LuCI —> Applications luci-app-s-s-libes #SS-libev 服务端
LuCI —> Applications luci-app-shairplay # 支持 AirPlay 功能
LuCI —> Applications luci-app-siitwizard #SIIT 配置向导 SIIT-Wizzard
LuCI —> Applications luci-app-simple-adblock # 简单的广告拦截
LuCI —> Applications luci-app-softethervirtual #SoftEther virtual 服务器 NAT 穿透 *
LuCI —> Applications luci-app-splash #Client-Splash 是无线 MESH 网络的一个热点认证系统
LuCI —> Applications luci-app-sqm # 流量智能队列管理(QOS)
LuCI —> Applications luci-app-squid #Squid 代理服务器
LuCI —> Applications luci-app – 乳酸菌饮料 – plus # 乳酸菌饮料兲朝上网 Plus+
LuCI —> Applications luci-app – 乳酸菌饮料 – plus —> Include s-s New Versiong # 新 SS 代理
LuCI —> Applications luci-app – 乳酸菌饮料 – plus —> Include v2 瑞 #v2 瑞透明代理
LuCI —> Applications luci-app – 乳酸菌饮料 – plus —> Include Trojan #Trojan 代理 *
LuCI —> Applications luci-app – 乳酸菌饮料 – plus —> Include Kcptun #Kcptun 代理
LuCI —> Applications luci-app – 乳酸菌饮料 – plus —> Include 违禁软件 Server # 乳酸菌饮料服务器
LuCI —> Applications luci-app – 乳酸菌饮料 – plus —> Include 违禁软件 Socks and Tunnel # 乳酸菌饮料代理
LuCI —> Applications luci-app – 乳酸菌饮料 – pro # 乳酸菌饮料 – Pro(已弃)
LuCI —> Applications luci-app – 乳酸菌饮料 server-python # 违禁软件 Python 服务器
LuCI —> Applications luci-app-statistics # 流量监控工具
LuCI —> Applications luci-app-syncdial # 多拨虚拟网卡(原 macvlan)
LuCI —> Applications luci-app-tinyproxy #Tinyproxy 是 HTTP (S) 代理服务器
LuCI —> Applications luci-app-transmission #BT 下载工具
LuCI —> Applications luci-app-travelmate # 旅行路由器
LuCI —> Applications luci-app-ttyd # 网页终端命令行
LuCI —> Applications luci-app-udpxy #udpxy 做组播服务器
LuCI —> Applications luci-app-uhttpd #uHTTPd Web 服务器
LuCI —> Applications luci-app-unblockmusic # 解锁网易云灰色歌曲
LuCI —> Applications luci-app-unbound #Unbound DNS 解析器
LuCI —> Applications luci-app-upnp # 通用即插即用 UPnP(端口自动转发)
LuCI —> Applications luci-app-usb-printer #USB 打印服务器
LuCI —> Applications luci-app-v2 瑞 – server #v2 瑞 服务器
LuCI —> Applications luci-app-v2 瑞 – pro #v2 瑞透明代理(已弃,集成乳酸菌饮料)
LuCI —> Applications luci-app-verysync # 微力同步 *
LuCI —> Applications luci-app-vlmcsd #KMS 服务器设置
LuCI —> Applications luci-app-vnstat #vnStat 网络监控(图表)
LuCI —> Applications luci-app-virtualbypass #virtual BypassWebUI 绕过 virtual** 设置
LuCI —> Applications luci-app-vsftpd #FTP 服务器
LuCI —> Applications luci-app-watchcat # 断网检测功能与定时重启
LuCI —> Applications luci-app-webadmin #Web 管理页面设置
LuCI —> Applications luci-app-webshell # 网页命令行终端(已弃)
LuCI —> Applications luci-app-wifischedule #WiFi 计划
LuCI —> Applications luci-app-wireguard #virtual** 服务器 WireGuard 状态
LuCI —> Applications luci-app-wirele 违禁软件 egdb #WiFi 无线
LuCI —> Applications luci-app-wol #WOL 网络唤醒
LuCI —> Applications luci-app-wrtbwmon # 实时流量监测
LuCI —> Applications luci-app-xlnetacc # 迅雷快鸟
LuCI —> Applications luci-app-zerotier #ZeroTier 内网穿透

参考文章:
https://github.com/coolsnowwolf/lede/issues/2415
https://github.com/lisaac/luci-app-diskman