是这样的,我在狗东上买了一台组装机来替换我的 Thinkpad T61 14 inches 装 openSUSE。配置大概是这样:
I5 6400,忘了有没有 K。
华硕 B150M 小板。
NVIDIA GeForce GTX960。
金士顿的 120GB SSD。我自己又加了一块西部数据的 1TB 蓝盘。
没有无线网卡,淘宝了 Linux 神器 Mercury MW150U USB 无线网卡(估计是买的人太多了,水星居然开了官方旗舰店)
声卡什么的就不说了,反正也用不着。
显示器!关键是显示器!狗东的 Samsung S24C350BL,搜下你就造了,不要 998 只要 799!
最开始下的 net install 的 ISO,安装时候等半天以为卡死了,切过去发现原来是要从 download.opensuse.org 下载一堆东西,超慢的。于是又下了 DVD。
刻录 USB 用的是 imageUSB 这个免费工具,SUSE 那个不维护了。
Windows 是整个装在 SSD 上的,我一开始就没打算把 openSUSE 装在 SSD 上,所以阴差阳错避免了很多问题:
华硕 B150M 比较良心,Windows 的 MBR 在 SSD,而 openSUSE 的 secureboot/efi 在 HDD 上(最早弄 UEFI 模式的时候,有个提示大概是 secureboot 让不让 openSUSE 写入,我选了让。反正现在我也不知道是一般的 UEFI 还是真的是 secureboot)。主板可以开机按 F2 进去选择从哪个硬盘启动,而且会记录,下次就不用了。所以避免了 grub2 双启动的各种问题。
而台式机也不存在双显卡问题,因为它的两个显卡有两个物理接口,我的显示器同一时间只能连在一个接口上,连到核载显卡 Windows 点不了显示器,所以连到了 GTX960 上面,相当于单显卡了。
装机唯一坑爹的地方在显示器,可能跟我接线的方式有关,我是用的 DVI 转 VGA 的插头。但是这个显示器是支持 VGA/DVI/HDMI 的。而 VGA 模式下显示器用的信号源不是数字而是模拟。
导致装机的时候分辨率认成了稀奇古怪的东西,简单说就是任何一个窗口都看不见最下面一条。所以各种确定取消的按钮我一律看不见。于是我只简单调教了一下 /home 别用掉全部的 899GB 就继续了。(这里有一个值得研究的问题就是为什么根分区用 BTRFS 最大只让我分 40GB?这可是 1TB 的硬盘啊)
真正装好之后整个人都 233 了,分辨率是 800x600。
这能忍吗?23.6 inches 的显示器分辨率是 800x600!
阅读了一下 /var/log/Xorg.0.log,发现原来是 nouveau 驱动不支持 GTX960,退而求其次到了 Vesa 驱动。于是需要安装闭源驱动。
需要先把 nouveau 驱动扔到驱动黑名单(/etc/modproble.d/50-blacklist.conf)里面,在黑名单的最后加入以下内容:
# Blacklist the open source nouveau nv driver, since NVIDIA Geforce
# GTX960 wasn't supported by the open source driver yet.
blacklist nouveau
blacklist nv
options nouveau modeset=0
我顺手把 nv 驱动也屏蔽了(它支持的显卡估计是 NVIDIA 建厂时候出的那些)。这就搞定了黑名单了。也就是说 NVIDIA 驱动后面给你创建的一些黑名单文件,如果你有洁癖就可以删掉。
下面是重新生成一下 initrd(你可以想象成 android 手机的 rom),因为 nouveau 驱动也在那里面,要把它剔除掉。直接 mkinitrd 命令就好,会自动调用 dracut 来做的。
重启之后装 gcc gcc-c++ make kernel-devel 这四个包,目的是为了编译 nvidia.ko 这个内核模块,也就是闭源驱动啦。
接着发现安装失败了,查 /var/log/nvidia-installer.log 发现是代码问题,于是通过搜索 "nvidia 364.19 kernel 4.6“ 就在 github 上找到了补丁。
你可以用 sh NVIDIA-Linux-x86_64-364.19.run -x 把驱动解压出来去手动改,然后装,也可以:
sh NVIDIA-Linux-x86_64-364.19.run --apply-patch 4.6.patch
来生成一个新的 NVIDIA-Linux-x86_64-364.19-custom.run,直接装生成出来的这个驱动。
装完之后 mkinitrd 重新生成 initrd,把 nvidia.ko 这个模块弄进去。重启。
=。=!640x400 的分辨率!反而更低了…
这绝对绝对不是我的理解能力和操作的问题!