文章归档

修理森海塞尔 MKE200 麦克风

森海塞尔 MKE200 是一款轻巧便携的相机用外置麦克风,主要特色是整体外壳就是一个金属的笼式防风网罩,麦克风咪头本体在内部一个橡胶减震架上,用户正常接触不到。外面再套上毛罩就成了飞艇(Blimp)防风罩青春版,效果比常见的笔形/电筒型话筒加上防风毛罩其实是要略好一点的。我主要拿它接在 DJI Osmo Action 上作外置收音用,最开始是 Action 一代,现在换成了 4, 除了兔笼结构变化导致的安装位置略有调整,其余用起来都还不错。由于金属网罩外壳和底座是一体结构,可以直接带着 Action 本体一起塞进包里,不需要额外拆装保护,同时这种场景下 MKE200 小体积的造型还带来一个额外优势,就是不会意外进入镜头内。

然而咪[……]

继续阅读~→

HP 战X 2023 (EliteBook 845 G10) 安装 ArchLinux

上一个主力干活机是华硕的 幻14 2020 最低配款,用了三年多了也差不多该换了,从年初就盯着惠普的战X新款准备换机,结果错过了零点首发时间,凌晨想起来的时候性价比最高的 32G 款已经没货了。等到下午看到 16G 款补了库存干脆就买了,姑且算是在首发当天买到了。同时另外下单的是两条 32G 内存条和 2T 硬盘。

于是等了三天,都到齐了,取出机器没有上电开机,直接拆开后盖换了内存和硬盘,然后才首次开机。首次开机黑屏时间比较长,之后 BIOS 报警说内存容量变化,确认后一切正常。

我已经完全 Linux 环境工作有六七年了,所以原配的硬盘我保留它自带 Win 系统未开机未激活状态收着,进 BIOS 关闭 Secure Boot[……]

继续阅读~→

用 openSUSE Kubic 搭建一个 Kubernetes 集群

最近给家里几台闲置机器拆开重新整理了一下,然后统统装上了 Proxmox 做虚拟化,然后开出小鸡来想着搞点没玩过的东西玩玩,四下看了看于是决定用 openSUSE Kubic 来装个 Kubernetes 集群来图一乐。

本文假设读者有在一台没有安装任何操作系统的计算机上安装 openSUSE 或其它主流 Linux 发行版的能力,并且假设读者具备一定的 Linux 使用经验,以及对 Kubernetes 有基本的了解。阅读本文还可能会需要一些计算机网络的基础知识。

本文同时发布在 openSUSE 中文论坛

openSUSE Kubic

这是一个 openSUSE 社区提供的衍生发行版,基于 openSUSE MicroOS 并预装了 Kubic 环境,可以较为方便地部署 Kubernetes 环境。和 openSUSE 本体的主要区别大概有两点,一是使用 openSUSE MicroOS 作为基础所以整个系统是“事务式更新”的,另一个就是预装了 Kubic 环境,不需要自己安装 Kubernetes 相关的各种工具。
[……]

继续阅读~→

使用 Orange Pi One 和 GPS 搭建1级时间源

我一直有一种自建基础服务的兴趣,自从当初机缘巧合混到一个开发者邮箱之后,就一直在尝试自建 NTP 服务,海外已经放了好几台 VPS 到 pool.ntp.org 里面了,但国内条件有限,并没有什么好办法。于是就想到了自建一个。

1. 背景知识

整个 NTP 分发网络的结构是一种近似树状的分层结构,每一级叫做一个 “Stratum”, 其中 Stratum-0 是可靠的参考时间源,比如原子钟、GPS或无线电授时信号源等,所有0级时间源构成了整个 NTP 网络中的参考时钟;在逻辑上,所有0级时间源作为一个整体提供了全世界的标准时钟。不过因为0级时间源本身实际上只是某种形式的时钟信号发生装置,所以它们并不直接对外提供授时服务,[……]

继续阅读~→

终于解掉 nginx 在 SSL 下 400 的错误,蠢死了

这个问题持续了得有超过一年了,症状很简单,配置了 https 访问之后,使用 IPv6 访问的时候会报 400 Bad Request 错误,强制使用 IPv4 或者强行指定 https 协议都能解决。说到这里应该很明显了对吧,首先就应该想到是不是 80 端口上也开着 ssl 来着。但这个讨厌的地方在于用 IPv4 就一切正常了,我一直没想那么多……就因为这我的博客很长时间都没办法强制 https 访问,不然 IPv6 过来的用户没法看。

前两天搞着搞着调另一个什么反向代理相关的设置的时候,顺手开了 debug 日志,然后就想顺便测一把,结果一不小心就找到了原因_(:зゝ∠)_

长话短说,问题的根本原因是普通 http 协议和加密的 https 协议配置在了一个 server{} 块内。并不是说不支持这样搞,而是这样配置过后服务器的行为会和分开配置成两个有所不同。
[……]

继续阅读~→

Apache + Varnish + nginx 获取正确的客户端IP

貌似现在只要我更新博客就说明又在没事瞎折腾了… =.=
很久以前就遇到过这个问题,或者不如说实际上就是因为无法正确获取客户端IP才让我一直用的 Apache + nginx 的构架。今天折腾一下午 + 一晚上总算是把这个问题(还算)圆满地解决掉了。

首先是参考这篇文章配置好整个服务器构架,后端使用 Apache httpd 来处理 PHP, 中间用 Varnish 做缓存,前端使用 Tengine 作为 web 服务器,所以来自客户端的请求的处理流程是:

Client -> Tengine:80 -> Varnish:8090 ->(Miss)-> httpd:81

然后问题就来了,处在最后面的 httpd 拿不到正确的客户端IP地址,总是显示为127.0.0.1. 这个问题有趣在于,一直以来我都是使用了 mod_rpaf 来获取 X-Forwarded-For 中的客户端IP的,而如果我去掉中间那一层 Varnish 直接让 Tengine/nginx 反向代理给 httpd 的话,IP地址是能够正确获取的,更进一步实验表明,在只有一次代理的情况下一切都是正常的,当代理变成了两层,无论两层代理的顺序如何,都会出现这个问题。

中间各种股沟各种查文档就[此处省略6小时]了…

基本上有两个比较主要的原因。
[……]

继续阅读~→

写了个简单的 shadowsocks 退出自动重启脚本

screen在 VPS 上跑 shadowsocks, 不过时不时会退出然后需要我上去重启,很麻烦,于是就搞了个定时检测 shadowsocks 是否在运行,如果没有就自动重启的脚本。

然后在cron任务里面写上一句 */1 * * * * root bash /some/path/autostart.sh 就可以每分钟自动执行了,而且这样还能变相实现开机自动启动,所以就算服务器意外重启也不怕了。

如果觉得异常退出过后一分钟启动的间隔太长,当然也可以写成死循环:

就可以每5秒检查一次了,但这样[……]

继续阅读~→

从 MySQL 迁移到 MariaDB

“Because Oracle is Oracle is Oracle()”[?]

ArchLinux 昨天宣布将使用 MariaDB 作为 MySQL 的默认提供包,openSUSE 已经在新近发布的12.3版中默认使用 MariaDB, 连 Fedora 也正在考虑更换为 MariaDB.

于是我决定把我的所有服务器从 MySQL 迁移到 MariaDB.

对 Arch 用户来说很简单,照着官方新闻里面的来就是了:

而对于 openSUSE 就更傻瓜式了,毕竟是默认的嘛: zypper in mariadb 一句就够。

至于 Debian/Ubuntu 用户就要稍微复杂一些,不过整个过程还是很流畅的:
[……]

继续阅读~→

解决一个 embrr 不能翻页的 PHP 配置问题

唔…大致说来就是最近在折腾着把停止更新的 embr 给升级到 Twitter REST API v1.1, 然后今天参考黄飘飘的改动把 fav 相关的两个地方弄上了自动翻页。

因为 api 更新的关系,不能用原来的页码作为参数,只能用推文的 id 来做界定了,不过操作起来倒是比想象的还要简单就是了。修改好过后传到 appfog 上木有任何问题,但放到我自己的服务器上面过后发现翻页不能了…
开始还以为是 nginx 配置不对,但看了半天找不到问题,于是考虑是不是 PHP 的问题…

简单找了一下,发现问题在于生成的翻页链接上,因为推文 id 被作为参数传到链接里面,而生成的链接变成了类似于 /favor.php?max_id=2.9972877531744E+13 这样的形式…科学计数法耶…
[……]

继续阅读~→

新装系统 Win8 与声卡那点纠结的记录

好吧我换系统了,因为换了个新硬盘神马的。然后就想着干脆装 Win8 吧。

装系统一切都好,什么都很正常很顺利那样,结果完了我想看番的时候发现…耳机没声音……
囧死了好吧。

长话短说,试过了网上提到的多种方法,有些是用了无解,有些是不适用我的情况。

我的声卡是 Reltek ALC 269 机子是华硕 N53Jf.

折腾一整天,重装三次系统之后,问题确定:Reltek 官方驱动与 Win8 不兼容。
是滴你没看错,最新版写着支持 Windows 8 的那个也不行,只有外放有声音耳机不行。

解决方案是装好系统过后静置,等系统自己联网下载微软的驱动。

真疼。[……]

继续阅读~→

(* ̄▽ ̄)y
Merry