标签存档: 折腾

树莓派升值计划——流畅播放 30 帧 1080p 网页视频

TL;DR

在树莓派 4B (实测 4G 内存,目测 2G 够用) 上流畅播放网页视频需要使用 OpenGL 驱动,并将 PulseAudio 调整至使用中断而不是时钟。可选的性能提升有切换至 64 位内核以及超频,但这些只能轻微提升。

可以做到的效果是 YouTube、bilibili、爱奇艺播放 30 帧 1080p 的视频的时候视频没有大卡顿(主要是偶尔有撕裂),音频完全没有卡顿。

背景

树莓派是一款便宜的卡片尺寸的小电脑。但它体型虽小五脏俱全,可以运行完整的 Linux 系统。最新的顶配版本树莓派 4B 4G 内存版仅需 55 美元,实乃便宜好用的码农玩具。考虑到它的价格,只要能实现任意一个「实用」功能就称得上是回本,而这次我想要让它「物超所值」——接在电视上播放 1080p 在线视频。

小道消息:据说树莓派是亏本卖的

树莓派一出现其实就打着可以充当视频播放器的招牌,但实际上它的实现与日常使用差距很大——早先树莓派只支持 OpenGL ES,并且视频硬解必须使用它的闭源驱动,这导致只有少数做了适配的软件可以充分利用树莓派独特的硬件资源,例如 Kodi 和 SteamLink(强烈安利,可香了,当年沉迷在客厅下自走棋)。说它硬件资源独特是因为它有着孱弱的 CPU 和难以利用的 GPU,以及非常局限的内存(1G)。而这一切随着树莓派 4 的到来不再是问题——CPU 增强,OpenGL 驱动成熟(顺带也解决了 64 位内核的驱动问题),以及 4G 内存版本的出现。

这让我重新捡起了曾经用树莓派代替上网本(即升值计划)的尝试。我的目标只有一个——能看 YouTube 视频。

继续阅读 »

正确配置 vc4-fkms-v3d 驱动,避免使用 llvmpipe

vc4-fkms-v3d 是树莓派的开源 GPU 驱动,支持 OpenGL 2.1。正确配置的情况下 mesa 应该使用 V3D 驱动而不是 llvmpipe,后者使用的是 CPU。树莓派本来就贫弱的 CPU 并不经得起桌面渲染的折腾。此外 Chrome 也应能打开大多数硬件加速。

首先需要切换到开源驱动。前往 raspi-config -> Advanced Options -> GL Driver -> GL (Fake KMS)。树莓派 4 是默认使用这个开源驱动的。

继续阅读 »

将树莓派用作 SD 读卡器

需求

  • 树莓派
  • SD 卡 2 张,其中一张可引导系统
  • USB 存储(可选)

不需要

  • SD 读卡器
  • 显示器
  • 键盘

最近买了第四代树莓派,但等到 SD 卡寄到了我才意识到我的读卡器忘记带在身边了。环顾四周,唯一有 SD 卡槽的居然只有那只老的树莓派 3B+。理论上我可以直接用 U 盘引导系统,但我不知为何一直无法成功。我更无法冒险将唯一可以引导系统的 SD 卡改为引导到 U 盘,因为万一失败了我在搞到读卡器之前都再也进不去系统了。

于是我就想到了一个骚操作:先用一张 SD 卡引导系统,ssh 进去,然后利用 pivot_root 将 root 转移到 SD 卡以外的地方(U 盘或者内存盘),这样我就能把引导系统的 SD 卡拔下来换新的上去了。全程都可以在 ssh 上完成。

继续阅读 »

在 MSYS2 中安装 Git for Windows 并自定义 PATH 中的 toolchain

背景

Git Bash 在 WSL 出现之前一直是 Windows 开发必不可少的工具。哪怕不使用 unix toolchain,git 也是免不了要用的。在 WSL 出现后它依然没有退出历史舞台——至少 VS Code 目前还需要 Git for Windows 来整合 git 功能。此外,Git bash 是基于 MSYS2 开发的,而 MSYS2 在一些从 *nix 移植到 Windows 的项目上不可或缺。

然而,Git for Windows 中的 MSYS2 环境是刻意缩减过的。最重要的是他没有 pacman 包管理系统。如果不想装两份 MSYS2(一份完整的,一份 Git for Windows),那么 Git for Windows 官方提供了两种方案:使用 Git for Windows SDK,或在已有的 MSYS2 中安装 Git for Windows SDK

注:Git for Windows 修改过 MSYS2 的运行环境。未经修改的运行环境不能很好的在 Windows 下互操作,例如 Powershell 中连 git status 都会无法执行。因此在 MSYS2 中安装 Git for Windows 会覆盖原版的 MSYS2 运行环境。

摆脱 SDK

Git for Windows SDK 是一套为了开发 Git for Windows 而存在的环境。把这套 SDK 当 MSYS2 使用会有诸多不便。我只是想把完整的 MSYS 和 Git for Windows 合二为一而已,但在已有的 MSYS2 中安装 Git for Windows SDK 教程中却把 SDK 一同装上了。不装 SDK 其实很简单,不安装 git-extra 包即可。也就是最后一步的命令改为: pacboy sync git:x git-doc-html:x git-doc-man:x curl:x

继续阅读 »

Windows 10 + OS X 硬盘升级无损迁移记实

注:本篇是对我自己做系统迁移的整理并不是一篇教程,仅供参考

注2:仅可应用于 EFI 安装的 Windows,也就是说 Windows 7 以下绝对不是

注3:数据无价 谨慎操作 —— Disk Genius

前情提要

出于一些原因我的 mid 2014 11″ MacBook Air 用的是 128G 的硬盘,这显然不够我装 Windows + macOS 双系统并且各种 IDE 和 runtime 全部装上的. 光是 Visual Studio 和 XCode 就要占掉 30G – 40G 的空间,而 Windows 又是个吃硬盘的怪兽,随着补丁的增加留给 macOS 的空间越来越小,最终变成了 70G Windows + 40G macOS 的划分. 就这么凑合用了两年,最终省吃俭用抠下来的空间都不够 Windows 装个补丁以及 XCode 跑过升级了. 想想这台电脑除去硬盘用个五年没问题,就这么换新未免有些 overkill.

因此就有了硬盘升级的需求. 淘宝上现在有很多原厂的 mac 硬盘可以更换(甚至主板都能换,也就是连带 CPU 和内存),有些店家甚至提供了店内帮你更换的服务并回收完好的老硬盘帮你节省一点成本,免去了自行操作的风险和麻烦. 所以剩下的工作就只有系统迁移了.

基本思路

分区示意

硬盘里有几个不能动也不用动的分区,比如引导用的 EFI 分区、Windows 需要的 MSR 预留分区、macOS 的恢复分区,装了 Linux 的话还可能会有 grub 和 swap 分区. 这些分区只需要原样复制过去就行. 剩下的就是装着系统的分区了,硬盘升级后最主要的用途就是扩大系统分区的容量,所以它们都需要扩容. 每个操作系统和文件系统的扩展工具都不同.

扩容

所以 Macbook 做硬盘升级 + 系统迁移的基本思路就是:先在移动硬盘里做老硬盘的全盘备份,然后升级硬盘,再把不用动的分区原样复制(按扇区复制)到相应的位置,预留下需要扩容的分区空间,再把需要扩容的分区复制到相应的位置并扩容.

继续阅读 »