赞
踩
首先说一下结论:最终我选择了基于 Arch Linux[1] 的 Garuda Linux[2] 发行版作为基础来搭建自己的 Linux 开发机。
Neofetch 时刻
在上周末的这次折腾里,我一共尝试了 Garuda Linux 发行版,原教旨的 Arch Linux 发行版,以及众所周知的 Ubuntu[3] 发行版这三个选择。虽然最后做了逃兵直接摆烂 Garuda Linux 配好的图形桌面环境,算不上符合 Arch 之道[4]的玩法,但是该走的过场还是走了的。
我想配置一个纯粹的 Linux 环境的想法大概酝酿了一年多了。从接触 io_uring[5] 相关功能的代码,到其他依赖 Linux 内核版本或生态工具的功能,我从前同事 @w41ter[6] 那里接受了一个理念:“开发机的环境最好跟生产环境是一致的这样也才好调试问题。”
配置一个原生的 Linux 环境(相较于虚拟机),最舒服的其实是公司提供高配的开发机。例如在某司时用上的 256 GB 内存 96 核 NVMe 盘的机器。毕竟对 Linux 的执念也不过是一个开发环境,而不是必须要一个桌面环境。可惜公司的机器跟特定公司绑定,而且不太适合开展一些未必跟公司工作紧密相关的工作和共享文件,更麻烦的是,往往访问公司机器还得连接内网,这就让“完全使用 Linux 开发”的目标难以实现。
另一个被否定的做法是个人购买云服务器。这个思路我在读书的时候就试过了,最近也还考察过目前的行情。结论就是:太贵。一台上面提到的公司级开发配置的机器,云厂商对个人是卖不到这个配置的。大约打个五折以上可以起卖,每个月少说五千块钱,多了上万。还别说这个机器只是租给你,上面的数据不在本地,而且机器在哪个区域联网都有不同的问题。个人装机花个小几万能配得比这配置好不少,还是自己的资产,用个几年不在话下。这么一看,个人用买云服务器纯属冤大头。
最后,办法就是自己买台机器装上 Linux 系统。由于国内几乎所有机器都预装了 Windows 系统,弃之可惜,所以只能麻烦点装双系统。硬件配置我自己是不会配的,找的好兄弟一揽子解决,这里就不介绍了。
装双系统这件事我在大学时候就做过,当时还干过替换内核和开发内核模块,还有利用显卡写 Lua Torch 之类的事情,所以做起来其实是轻车熟路的。但是一直以来都觉得同一块盘上分区逼死强迫症,也确实对使用多少有点影响,这次我就干脆加了一块 2TB NVMe 的盘来折腾 Linux 系统。
我一开始选的就是 @Manjusaka_Lee[7] 在推特上介绍过的他为自家 HomeLab 选型的 Garuda Linux 发行版。在一个非常清晰的教学视频的帮助下,我很快就完成了安装。
How to Dual Boot Garuda Linux and Windows 10 SAFELY[8]
然后就发现 N 卡不愧是 Linux 的两大噩梦硬件之一。
你知道我要说什么
我使用的是 GTX 4090 Ti 的显卡,毕竟这次是一揽子计划,估计一劳永逸个五年起步,而且买新不买旧嘛。但是 4090 确实是太新了,而黄老爷自然是不太在乎开源拖拉机能不能用上他的新卡的。Garuda Linux 在我的机器上,如果选择安装开源驱动,Live USB 都起不来;如果选择安装专有软件驱动,则会在安装完成后进入系统的时候起不来。
所幸 @Manjusaka_Lee 哥哥也遇到了这个问题,所以这个问题是可解的,咒语全文如下:
- # 首先,选择专有驱动安装系统。此时,直接启动系统会进入 Color buffer .. 卡死
- # 此时,重新进入 Boot 页面,选择从 Live USB 登录,在 Live USB 环境中完成修复:
-
-
- # 1. chroot
- # Find your system disk by `lsblk -f`
- # https://forum.garudalinux.org/t/how-to-chroot-garuda-linux/4004
- sudo mkdir -p /mnt/broken
- sudo mount /dev/<your system disk partition (e.g. nvme0n1p1)> /mnt/broken
- sudo garuda-chroot /mnt/broken/@
-
-
- # 2. Remove nvidia-dkms
- pacman -R garuda-nvidia-config
- pacman -R nvidia-dkms
-
-
- # 3. Install nvidia-open-dkms
- pacman -S nvidia-open-dkms
-
-
- # 重启系统,应该就可以正常登录了。

“咒语”这个词概括了我配置 Linux 开发机早期阶段的主要心情:一下子接触到一大堆 Linux 图形桌面操作系统的知识,这些以前都是厂商搞定的,现在是个问题都得我自己理解解决,很多时候我是似懂非懂念完找到的咒语能灵就赶紧跑路了。
从这个角度讲,Garuda Linux 基于 Arch Linux 的基本工具和软件库,把一些关键的应用选择全做了,然后开发出了非常漂亮的图形桌面,连 N 卡驱动这种事情都有舒适的路径,细节处用好了 btrfs 和 linux-zen 内核,确实是一个优秀的面向极客的发行版。
这些体会,也是我写《黑客与顾客:开源软件能商业化吗》的背后动因。
那么为什么我还会尝试 Ubuntu 呢?直接原因是一个很小的事情:绘文字(emoji)在 Garuda Linux 上显示有问题
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。