今年是 9102 年了吗? 是的。 为什么要这样做 我手上有一块树莓派 3B 和一块华硕的 Tinker Board。有的时候,因为 Wi-Fi 爆炸/配置出错/ pacman -Syu 滚挂系统之类的原因会导致其中一块板子断网。通过连接两块板子的串口,再在上面建立拨号上网连接,就可以在一块板子 Wi-Fi 或有线网中断时,从另一块板子上 SSH 上去解决问题。 (另外买树莓派不折腾 GPIO 的话,还不如买个 x86 的凌动小主机之类的玩) 怎么操作 硬件方面,将两端的串口连接起来。树莓派的串口是第 8 根针发送,第 10 根针接收,可以在 pinout.xyz 网站查到。Tinker Board 的串口也是 8 发送 10 接收。用两根杜邦线将树莓派的针 8 连接到 Tinker Board 的针 10,将树莓派的针 10 连接到 Tinker Board 的针 8。 如果两块板子使用不同的电源供电(比如我),需要第三根杜邦线将两块板的 GND 连起来。原因是两侧的板子都将自己 GND 针上的电压作为标准电压,...
x86 下制作 ARM Docker 镜像,Docker Hub、Travis 自动构建
一般情况下,Docker 的镜像都是在一个已有的镜像内,一步步运行给定的命令,从而生成一个新的镜像。这样的步骤在大多数人使用的 x86 架构计算机上都不是问题,由于架构互相兼容,一台计算机上生成的镜像往往可以被直接复制到其它计算机上运行,除非镜像中的程序使用了 AVX 等较新的指令集。 但是,还有一批基于 ARM 架构的主机也可以运行 Docker,并运行专门编译的 ARM 架构的镜像。这些主机包括树莓派系列,和其它类似树莓派的主机,例如 Cubieboard,Orange Pi,Asus Tinker Board 等等。另外,Scaleway 等主机商也提供基于 ARM 架构的独立服务器。 由于 ARM 架构的系统无法在 x86 架构计算机上运行,因此无法在 x86 计算机上直接通过 Dockerfile 生成 ARM 架构的镜像,一般采用的方法是直接找一台 ARM 主机来 docker build。 但是我在为我的树莓派制作 nginx 的 Docker 镜像时发现这并不是一个很好的方法。由于树莓派的内存只有 1GB,...
树莓派 3B 折腾笔记:硬件看门狗
在计算机中,「看门狗」指的是一种硬件计时器,用于在计算机失去响应(死机)的时候重启计算机。计算机的系统上要运行一个程序不断和看门狗硬件通信。当通信中断经过一段预设的时间后,看门狗就会通过发送 RESET 信号或者切断再接通电源等方式强制重启,保证计算机上运行的服务不长时间中断。 在折腾树莓派的过程中,我也曾好几次让树莓派失去响应,结果不得不人工开关电源来重启。通过开启树莓派上的硬件看门狗功能,就可以减少这种情况的出现。 加载驱动 由于 Linux 「万物皆文件」的特点,可以通过 ls 命令直接查看看门狗驱动的状态: ls /dev/watchdog 如果有这个文件,可以直接跳到下一部分。如果没有,就要根据树莓派版本加载驱动: 树莓派 1代的驱动名为:bcm2708_wdog 树莓派 2代的驱动名为:bcm2709_wdog 树莓派 3代的驱动名为:bcm2835_wdt 使用 modprobe -v [驱动名] 加载驱动,然后再 ls /dev/watchdog 查看情况。如果驱动加载成功,...
解决树莓派 HW CSum Failure 问题
今天登录上树莓派,习惯性 df 查看磁盘空间,发现树莓派 TF 卡上的空间所剩无几。最开始我以为我设置错误,把要挂机下载的文件下载到了 TF 卡里而不是移动硬盘里。结果排查下来,/var/log 下的日志文件居然占据了整整 18G 的空间。查看了一下日志,基本上都是类似如下的报错: Jan 25 22:51:15 lantian-rpi3 kernel: [ 22.143274] eth0: hw csum failure Jan 25 22:51:15 lantian-rpi3 kernel: [ 22.143281] CPU: 0 PID: 1075 Comm: vncagent Not tainted 4.9.77-v7+ #1081 Jan 25 22:51:15 lantian-rpi3 kernel: [ 22.143283] Hardware name: BCM2835 Jan 25 22:51:15 lantian-rpi3 kernel: [ 22.143294] [<8010fa48>] ( unwind_backtrace ) from [<8010c058>] ( show_stack+0x20/0x24 ) Jan 25 22:51:15 lantian-rpi3 kernel: [ 22.143303] [<8010c058>] ( show_stack ) from [<804578e4>] ( dump_stack+0xd4/0x118 ) Jan 25 22:51:...
树莓派 3B 折腾笔记:硬件随机数发生器
随机数在计算机中有着十分重要的应用,例如常用的 SSL 加密算法就非常依赖随机数。如果随机数不够随机,就很有可能被攻击者猜到,相应的加密验证体系也就土崩瓦解。但是由于计算机说零是零、说一是一的特点,它没有办法产生真正的随机数,只能通过复杂的算法去尽可能模拟随机数。 在 Linux 系统上,由于 Linux 「万物皆文件」的特点,可以从 /dev/random 读取到由 Linux 内核综合大量数据生成的随机数。但是因为 Linux 基于「安全第一」的原则综合了大量数据,随机数的产生速度很慢。用 rng-tools 软件包中的 rngtest 工具就可以看到: lantian@lantian-rpi3:~ $ cat /dev/random | rngtest -c 1000 rngtest 2-unofficial-mt.14 Copyright (c) 2004 by Henrique de Moraes Holschuh This is free software ; see the source for copying conditions. There is NO warranty ; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. rngtest:...
树莓派 3B 折腾笔记:BT 下载与策略路由
这次就直接进入正题。(其实是不知道该拿什么开头) 安装 Transmission 挂 PT 作为一个可以自由连接各种传感器的小型电脑,树莓派的可玩性相当高。即使你不想在 GPIO 上接一大堆传感器(或者像我一样觉得另外的传感器暂时没什么用),你也可以利用它低功耗的特点,让它 24 小时运行,做一些不需要大量 CPU 运算,但是因为其它因素需要较长时间才能完成的任务,例如……挂机下载。 我所在的大学有一个内网的 PT(Private Tracker)站。PT 站就是一个 BT 种子的发布网站,但是它在传统 BT 的基础上增加了用户管理功能,并且通过限制客户端种类、强制要求上传率等方式,解决了传统 BT 下各类客户端吸血(只下载不上传,例如迅雷)和种子很快失效(因为一段时间后就没人继续上传了)的问题。 但因为有了这些要求,PT 站用户往往需要长时间挂机上传下载,而这刚好是树莓派擅长的事。 在 上篇文章 里,我弄好了一个简单的 NAS。...
树莓派 3B 折腾笔记
国庆放假期间我在某宝上买了一只树莓派 3B 和一堆传感器,准备搞一波事情。因为是国庆,所以各家店发货都有不同的延迟,导致我国庆长假后又过了好几天东西才到齐。 先上张完成体的图片: 我分了五家店买了这些东西: 树莓派 3B(含外壳、风扇、散热片、电源套装) 闪迪 32G TF卡 树莓派传感器套装(支持树莓派的 3.3V 电平,总共 16 个) 5 寸 800x480 触摸屏 DS3231 时钟模块和 GPIO 针脚标记板(后买) 树莓派本体 最先到的是树莓派 3B 本体,以及配套的外壳风扇散热片等等。然而我买的 TF 卡还没到…… 所以这只树莓派暂时什么都干不了。不过我还是可以把外壳风扇等等先组装起来。 然而我很快发现了问题:店家的外壳内支撑柱的位置不准,同一侧的两根柱子同时只能有一根插在树莓派电路板的孔里,另一根只能顶在电路板上,树莓派装不进去。 然后我就拿起剪刀把那两根柱子剪了。 树莓派很顺利地放了进去。因为外壳大小刚好,所以没了柱子不影响树莓派的稳定性。...