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

134 lines
5.9 KiB
Org Mode

#+TITLE: 我要不要试试 OpenBSD
#+DESCRIPTION: 你很罕见
#+DATE: <2023-01-21 六>
又一篇中文文章
这个文章可能是我写过最长的了 (internet_collections 不算)
请不要不知好歹地转载!
地址: dongdigua.github.io/whatif_openbsd
base64: ZG9uZ2RpZ3VhLmdpdGh1Yi5pby93aGF0aWZfb3BlbmJzZA==
* Intro
我想整 OpenBSD 已经蓄谋已久了: 在 Windows 和 Fedora(160G) 之间我空出了 100G,
当然只是试试, 可能不会作为日常使用, 当然是因为软件生态.
我现在这个 Fedora 真的就是 BLOATED, 默认 Workstation 安装太多东西了, 但就是能用,
至于都安装了什么, 看我给 COSSIG 写的这篇文章[fn: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?
安装, 就很朴实无华且枯燥, 硬盘分区小心点就是了
然后问题就是, 怎么启动它? 官网上说:
#+BEGIN_QUOTE
rEFInd is reported to usually work. GRUB is reported to usually fail. In either case, you are completely on your own.
#+END_QUOTE
然后? 扔一句 "you are completely on your own." 也不告诉具体咋办啊?
然后我就搜, 可几乎都是 FreeBSD 的, 毕竟 OpenBSD 很罕见.
那里面有一些要 =insmod ufs2=, 我才发现我对 grub 竟没那些 modules, 于是就 =doas dnf in grub2-efi-x64-modules=.
在 yt 上看到了一个葡萄牙语小哥的教程[fn:2], 发现几年前官网上是有具体办法的,
#+BEGIN_SRC grub
menuentry 'OpenBSD' {
set root=(hd0,gptX)
chainloader +1
}
#+END_SRC
照着试了, 不行...
然后又看 GNU Grub Manual, 里面说了 NetBSD[fn:3]:
#+BEGIN_SRC grub
grub> insmod part_gpt
grub> set root=(hd0,gptX)
grub> knetbsd /netbsd
grub> boot
#+END_SRC
我寻思既然 OpenBSD 和 NetBSD 是同族的, 那我就 =kopenbsd=?
也不行...
既然 bing 搜不到, 那就上世界上第二大搜索引擎 YouTube!
看到了 Root BSD 的这个视频[fn:4]
首先也吐槽了闪烁其词的文档, 然后, chainloading 须要 BOOTX64.efi, 而我根目录没有, 难怪!
正当我准备重新编译内核加入 UFS 可写时, 他展示了一个离谱方法:
#+BEGIN_EXAMPLE
0. 在 grub 界面选择 OpenBSD entry
1. 不进去, 而是按 c 启动命令行
2. 输入 exit
3. here you go!
#+END_EXAMPLE
我立马停止了 Linux 内核编译, 去试了一下, 我超!
* First time using OpenBSD
现在这段文字是在 OpenBSD 上的 emacs 上写的!
第一次启动, 现让它自己把更新那些东西跑完.
然后就是安装一堆软件
我没有安装那些 "现代化 UNIX 工具", 比如 htop bat zoxide, (ripgrep 除外, 太好用了)
#+BEGIN_SRC ksh
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
#+END_SRC
我跑了一下 WebGL 水族馆[fn: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, 所以选项和之前那篇[fn:6]里面的不一样
着急用, 所以参数还没加全
#+BEGIN_SRC ksh
./configure CFLAGS="-march=native -O3 -pipe -flto=thin" --with-x --with-gif=ifavailable
#+END_SRC
然后就是各种依赖, 大多数 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
[fn:1] CentOS/Fedora 不同配置/变体都默认安装了什么软件(组) https://dongdigua.github.io/anaconda_kickstarts
[fn:2] OpenBSD em Dual Boot com Linux (Partição Única) https://terminalroot.com/openbsd-dual-boot-with-linux-single-partition/
[fn:3] GNU GRUB Manual section 5.4.3 NetBSD https://www.gnu.org/software/grub/manual/grub/grub.html#NetBSD
[fn:4] Dualboot GNU/Linux and OpenBSD from GRUB2 like a BOSS! https://youtu.be/H2bSXURnqHQ
[fn:5] http://webglsamples.org/aquarium/aquarium.html
[fn:6] 2023 了, 试试 emacs 29 https://dongdigua.github.io/emacs29_2023
* Related Links
- [[https://paedubucher.ch/articles/2020-09-05-openbsd-on-the-desktop-part-i.html][OpenBSD on the Desktop (Part I)]]
- [[https://nanxiao.me/openbsd-one-year-experience/][使用OpenBSD一年的总结]]
- [[https://www.c0ffee.net/blog/openbsd-on-a-laptop][OpenBSD on a Laptop]]
- [[https://webzine.puffy.cafe][OpenBSD Webzine by solene%]]
- [[https://youtu.be/1GYq8eD90nE][OpenBSD and DWM: True Minimalism]]