mirror.dongdigua.github.io/org/whatif_openbsd.org
2023-01-23 05:20:02 +08:00

5.9 KiB

我要不要试试 OpenBSD

又一篇中文文章 这个文章可能是我写过最长的了 (internet_collections 不算) 请不要不知好歹地转载! 地址: dongdigua.github.io/whatif_openbsd base64: ZG9uZ2RpZ3VhLmdpdGh1Yi5pby93aGF0aWZfb3BlbmJzZA==

Intro

我想整 OpenBSD 已经蓄谋已久了: 在 Windows 和 Fedora(160G) 之间我空出了 100G, 当然只是试试, 可能不会作为日常使用, 当然是因为软件生态.

我现在这个 Fedora 真的就是 BLOATED, 默认 Workstation 安装太多东西了, 但就是能用, 至于都安装了什么, 看我给 COSSIG 写的这篇文章1. 哦, 对, 还有 yue, systemd.

我可能之后再装电脑要不就是基于 Fedora Server 开始, 要么就是 Gentoo + Nix, 但总之肯定是 Linux, 并且显示肯定是 Wayland, 因为软件生态和性能.

那我为什么要整 OpenBSD, 因为简洁和统一, 安全的话, 算是一个原因, 因为我对性能已经没有期待了. 还有就是, Linux 上 "现代" 的东西都用 Wayland, BSD 这种传统的东西对 wayland 支持不怎么样, 我这回就要安心地探索 old school 的 X, suckless 三件套, 合成器效果.

这次我想把整个折腾系统的过程都记下来, 便于维护, 以防到最后我都不知道某个目录/软件是从哪来的.

对于这个系统的定位, 我觉得就是一个能用的 上网+开发环境, 那些比较大的东西, 比如 Minecraft, QQ, 视频制作相关(Kdenlive, GIMP), 就不碰了.

Boot OpenBSD with Grub?

安装, 就很朴实无华且枯燥, 硬盘分区小心点就是了

然后问题就是, 怎么启动它? 官网上说:

rEFInd is reported to usually work. GRUB is reported to usually fail. In either case, you are completely on your own.

然后? 扔一句 "you are completely on your own." 也不告诉具体咋办啊? 然后我就搜, 可几乎都是 FreeBSD 的, 毕竟 OpenBSD 很罕见. 那里面有一些要 insmod ufs2, 我才发现我对 grub 竟没那些 modules, 于是就 doas dnf in grub2-efi-x64-modules. 在 yt 上看到了一个葡萄牙语小哥的教程2, 发现几年前官网上是有具体办法的,

menuentry 'OpenBSD' {
        set root=(hd0,gptX)
        chainloader +1
}

照着试了, 不行… 然后又看 GNU Grub Manual, 里面说了 NetBSD3:

grub> insmod part_gpt
grub> set root=(hd0,gptX)
grub> knetbsd /netbsd
grub> boot

我寻思既然 OpenBSD 和 NetBSD 是同族的, 那我就 kopenbsd? 也不行… 既然 bing 搜不到, 那就上世界上第二大搜索引擎 YouTube! 看到了 Root BSD 的这个视频4 首先也吐槽了闪烁其词的文档, 然后, chainloading 须要 BOOTX64.efi, 而我根目录没有, 难怪! 正当我准备重新编译内核加入 UFS 可写时, 他展示了一个离谱方法:

0. 在 grub 界面选择 OpenBSD entry
1. 不进去, 而是按 c 启动命令行
2. 输入 exit
3. here you go!

我立马停止了 Linux 内核编译, 去试了一下, 我超!

First time using OpenBSD

现在这段文字是在 OpenBSD 上的 emacs 上写的! 第一次启动, 现让它自己把更新那些东西跑完.

然后就是安装一堆软件 我没有安装那些 "现代化 UNIX 工具", 比如 htop bat zoxide, (ripgrep 除外, 太好用了)

doas pkg_add firefox neovim git pcmanfm noto-cjk # 特别必要的软件
doas pkg_add ripgrep fzf ncdu neofetch ranger p7zip # 好用的工具
doas pkg_add gmake elixir gnutls # dev

我跑了一下 WebGL 水族馆5, 500 条鱼只有 10fps…

B 站放不了, 音视频解码都有问题

先按照 /usr/local/share/doc/pkg-readmes/firefox 里面 layers.acceleration.force-enable gfx.webrender.enabled 都 true uhh, 水族馆帧率没变…

然后, 凭直觉安 openh264, 似乎没用, 那就 gstreamer, 准确来说是 gstreamer1-plugins-libav 好耶! 能看B站了!

超级工具箱: emacs

这个当然要自己编译, 今天 git.sv.gnu.org 特别慢, 而 github 快得离谱 源码下载下来之后编译, 由于是纯 X, 所以选项和之前那篇6里面的不一样 着急用, 所以参数还没加全

./configure CFLAGS="-march=native -O3 -pipe -flto=thin" --with-x --with-gif=ifavailable

然后就是各种依赖, 大多数 X 相关的系统都自带了

autoconf

autoconf 有不少选择, 但须要注意的是要设置 AUTOCONF_VERSION 这个变量, 我选的是最新的 2.71

texinfo

OpenBSD 自带的太老了, 所以要自己编译新的. 但是我删除了自带的 texinfo 之后 /usr/bin/texinfo 还残留着不知为啥, 我暂时先手动删了

TODO libgccjit

suckless 三件套

这个我可不想自己打 patch, 遂使用 flexipatch 构建 编译出问题先看 config.mk 和 Makefile 典型的是 freetype 和 cp -n 具体的配置放 github, 还是那夹 configs repo 还有把 /etc/X11/xenodm/Xsetup_0 里面 xconsole 那行去掉, 难看

换掉 fvwm, 舒服~

Footnotes


1

CentOS/Fedora 不同配置/变体都默认安装了什么软件(组) https://dongdigua.github.io/anaconda_kickstarts

2

OpenBSD em Dual Boot com Linux (Partição Única) https://terminalroot.com/openbsd-dual-boot-with-linux-single-partition/

4

Dualboot GNU/Linux and OpenBSD from GRUB2 like a BOSS! https://youtu.be/H2bSXURnqHQ

6

2023 了, 试试 emacs 29 https://dongdigua.github.io/emacs29_2023