飞蚊话 发布的文章

视频点此

我曾经说,不能跟着Archwiki的Installation Guide安装好Archlinux的话,那么暂时也不要考虑用Arch了。但是最近Arch把base包组替换了之后,官方的安装文档便显的太过简略了一些…以至于我在引导问题上头卡了小半个钟头…所以,是时候分享一下base组被替换后,Wiki没有提到的内容了

注意:无论如何,官方写过的内容我还是不会去详细说的。因为只要官方文档提到了,那么它的内容就是详细且清晰的。如果看不懂,那么还是请暂时回避Arch,尝试一下Manjaro什么的。


一、替换了啥?对我有什么影响吗?

官方是这么说的:

The base group has been replaced by a metapackage of the same name. We advise users to install this package (pacman -Syu base), as it is effectively mandatory from now on.

Users requesting support are expected to be running a system with the base package.

Addendum:
Be aware that base as it stands does not currently contain:
- A kernel
- An editor
... and other software that you might expect. You will have to install these separately on new installations.

简单来说:以前只要装好base包组,你就可以拥有一个完善的文本样式的系统了。而现在,base只供满足依赖关系而不再提供可启动的软件包。所以现在的base只是一个脚手架,想要成功运行Arch就需要你自己来填充内容了。

所以,安装上面有哪些变化?


二、实操有啥变化?

从进入安装盘一直到pacstrap之前,都是没有变化的。但在pacstrap这里需要注意。

在 Installation Guide 的示例语句中,只增加了一个linux内核的程序包。但是实际上,你需要增加的可能不止这个:

  • visudo依赖vi或者vim,所以需要加入这两个软件包之一。推荐vi——如果你没有在图形界面使用vi的习惯的话
  • 好用的nano编辑器工具现在默认不再提供。需要的话也请再追加这个包
  • dhcpcd同样需要自己安装。可以在这里追加,或者之后的arch-chroot时候使用pacman安装

然后,一切如常。直到进行到grub安装环节。

不知道是不是只是我赶上了一版“残缺”的内核…不过为了保险,还是推荐这么操作一下,省的到时候进入grub恢复环境。

  • 一如既往地,安装grubefibootmgr软件包并使用grub-installgrub-mkconfig写入一次引导
  • 使用pacman -S linux重新安装一次内核
  • 同样的,使用pacman命令重新安装一次微码
  • 使用grub-mkconfig重新写入一次引导

不出意外,改版后的Archlinux就可以成功启动了。


所以,改变的说大也不大,仅仅是需要额外补充一些软件包;但是说小也不小,想让grub顺利引导还是有点儿东西的。不过还是前边说的那句话,可能只是我当时赶上了一个残缺的引导部署版本,可能到你安装的时候,只需要额为补充一些软件包就可以了。

最近到手了一个很轻便的笔记本,换装Arch的时候遇到一个问题:界面会不断地刷pcie bus error的提示,类似于

pcieport 0000:00:01.1: PCIe Bus Error: severity=Corrected, type=Physical layer, id=00e5(Recelver ID)
......

不断刷屏,根本不知道自己的命令打成了什么样,更不要提查看结果了。

几经查阅,发现这个问题大概是由于硬件间通信速度不同导致的错误,除了更换插槽以增加两个硬件之间的物理距离外,没有其他的解决方案。所以如果系统运行正常,那么搁置这个问题即可。

所以,解决无望,只能想办法屏蔽这条消息。

方法很简单。在Arch安装盘的选择界面按e(类似于编辑grub的启动项),结尾增加 pci=nomsi,再回车进入安装程序即可。

同样的,如果在安装之后还出现这个问题,则可以将这个参数加入grub启动项中来解决。不过我这里在装好之后就好了,所以我感觉这可能是USB插槽距离CPU或者某些控制器有点儿近导致的吧…

视频点此

大概是从去年,Linux阵营的改善仿佛充了会员一般……越来越多的公司开始贴近Linux。比如说微软的Linux子系统、WPS重启了Linux版本的维护、Steam开始Steam Play项目,使得非Linux阵营可以运行Windows专属游戏、百度网盘的Linux版、NVIDIA开始在Linux的驱动中加入双显卡支持……

到现在,连QQ for Linux都诈尸了

现在,在电脑版的QQ下载页的其他产品中,赫然放着 QQ for Linux 的下载入口

点进去,提供了几乎各个主流分支的安装包,直接下载安装即可。

但是,请永远记住:

Arch的源永远不会让你失望。如果没有,那么请使用AUR

至于体验如何,可以看我的视频。我在这里只想展示一下linux中国对于这次复活的一段评价


在 10 月 24 日这个程序员节上发布了 Linux QQ 2.0 版本让人觉得有点无厘头,甚至让人觉得可能仅仅是一个快闪活动,频繁的断线都让人担心是不是到了 25 日,可能 Linux QQ 就又不能用了。在 1024 程序员节的释出,使得 Linux QQ 可以以一个怀旧的形态重新出现在人们的眼前。但是,同样的,在这个节日的释出,也让人觉得这件事似乎并没有相信中的那么重视,对于 Linux QQ 的前景蒙上了一层阴影。

而且,腾讯并非一个慈善组织,对于腾讯这样的一个企业,是否会长期为一个很难产生现金流,而且小众的操作系统提供长期维护还尚未可知,更是让人无法相信 Linux QQ 的未来。

近两年来,自主研发的操作系统不断的刷屏,我们也一次次为自主研发的操作系统而欢呼。但是,高潮之后,还能剩下来的是什么?

我一直强调,操作系统卖的不是系统本身,而是卖因其产生的生态,由生态倒逼用户为系统本身付费。就如同我尝试很多次从 iPhone 转回 Andorid ,从 macOS 转回 Windows,但是,也正如我自己每次失败后的总结一样,我没有办法完全抛弃掉 iPhone 、macOS,因为其所带来的生态是我无法迁移到 Android 上的,被操作系统所挟裹,不得不去面对的现实是:最终,我还是回到了 iPhone 所构建的生态。

对于 Linux 也是一样的,Linux 的服务端的用户诉求是明确的、简单直接的、绝大多数场景都可以被覆盖掉的。而桌面端的产品可能会有数万种不同类型的需求,这使得产品经理在进行设计时预见不了需求的问题,也就很正常的问题。

我们回过头去看,Linux 想要占领桌面市场还需要什么呢?需要的不仅仅是一个 Linux QQ,我们需要给更多人提供 Linux 上的微信、办公套件等等一系列软件。没有这些软件,我们就很难让用户迈过入门的第一关:我如何登录 QQ /微信和我的同事、家人沟通。如果他发现,我用了 Linux ,但是我却没有办法使用 QQ /微信进行沟通,那么我用 Linux 还有什么意义呢?

对于 Linux 来说,除了去适配这些我们所熟悉的软件以外,更是需要有厂商能够面向 Linux 开发出独占的杀手级用户,这样,才能够更好的去推动一个操作系统的发展。

如果 Linux QQ 仍然继续更新,那对于 Linux 来说,是一大利好消息,一些做的好的、做的不好的应用,都可能会重新考虑创建自己的 Linux 版本。而过去,可能没有这样的机会。


我个人还是比较认同这种观点的。不只是腾讯QQ,算上之前发布的百度网盘,我也觉得是为了顺应国家政策而不得不开发出的产品。所以说,很多国内Linux用户一看到QQ for Linux复活了,就好像多大的喜事一般欢呼雀跃,奔走相告,甚至乐观的认为腾讯良心发现……

谈不上,甚至对提出这种观点的人有一股愚昧的印象。目光真的就只能看这么近吗?如果说,腾讯在之后发布了更多的迭代版本,功能上不求跟上Windows,能跟上OSX,再说它“良心发现”也还算过得去(虽然我不认为发布Linux版本软件能跟所谓“良心”挂上钩)。现在仅仅发布了一版便如此兴奋,正所谓“希望越大,失望越大”。

所以,请保持平常心。就仿佛Windows又新出了一个软件一样的心态来看待QQ for Linux的复活吧…

视频点此

之前的内容中,我提到了Arch中高级的英特尔、英伟达切换方案。如果你还记得,就应该知道,当时我说了一句“Hybrid项目不用管,用前两个就够了”。

Hybrid,翻译成“混合”。但是林纳斯曾说过一句名言:

So, NVIDIA, fxxk you!

不禁让我感到疑惑:这个Hybrid真的有用吗?

为了寻找这个答案,我翻阅了这个显卡切换项目的git。其中一则issue引起了我的兴趣

issue

其中提到的链接第二段是这么说的:

The NVIDIA 435.17 driver has a new PRIME render offload implementation supported for Vulkan and OpenGL (with GLX). This PRIME offloading is about using one GPU for display but having the actual rendering be done on a secondary GPU, as is common with many of today's high-end notebooks that have Intel integrated graphics paired with a discrete NVIDIA GPU.

NVIDIA的Linux驱动终于开始支持双显卡了。虽然依旧闭源,但至虽然开始针对Linux的驱动进行改进,但这其实也说明不了太大的问题,直到又看到了这个新闻

NVIDIA,也开始涉足开源领域了。

为什么说也?

IBM收购RedHat、Steam开始专门提供Linux支持、微软加入Linux基金会、腾讯宣布开源……这些都算得上是英伟达的前人。尚不必说一直推崇开源的英特尔、有自知之明主动开源的AMD了。

所以,开源到底好在哪儿了?

首先,要明白一个问题:开源是什么意思?

字面理解,就是开放源代码。但是,这不代表你可以任意使用,更不意味着开源就是免费。它有很多方式可以实现盈利:双重许可、有偿技术支持、软硬件一体化…开源不是做慈善,更不是反开源的一个理由。

然后,就可以来说说开源的优势了。

我记得我在之前关于N卡A卡的内容里就说过一个优势:让更多人参与到程序的优化中。付出同样的成本,得到更多更全面的维护,“白嫖”谁不爱?

这是对于作者的,那对于用户,开源的优势在哪儿?

可以直接看到源码。一款闭源软件,你既不知道其构成,又只能从部分渠道得知它的安全性。而开源让你真正的“眼见为实”。就像前一阵子Deepin被传代码内植入了监视代码,直接被中国监视。虽然是谣言,官方也解释过CNZZ代码段的作用,但多少的可以说明开源这种看得到的安全。

完全定制。能得到源代码,这便使完全修剪成为了可能。

北京地铁为例。房山线老车的车内屏幕使用XP系统(也可能是CE),因为现在车均崩溃,你可以很方便的看到界面细节。这也是XP时代的一个典型代表:在那个时候,很多设备选择了XP或者CE作为嵌入式系统。但伴随着设备多样化,Linux逐渐受到重视,就像9号线站台屏。因为Linux本身占用就不高,加上Linux的开源性,可以做到完全的修剪,进一步减少占用、节约硬件成本。

但是,这种随意性使得它有个对应的问题:“百家争鸣”。

Windows只有Windows,而Linux有各种各样的Linux。这就使得原作者对项目控制能力有了限制。

所以说,就像微软从“Linux是毒瘤”到现在“我们是一家开源公司”的转变,开源随着科技发展正逐渐的被重视起来,设备的多样性也在催化着开源的完善、壮大。