Saturday, September 15, 2012

Untitiled Document XXIII


本文是关于Linux的若干info dump。

======

Arch Linux + Xfce4.10 + VirtualBox. 字体用了ttf-mac-fonts和fontconfig-infinality两个包来配置。

近来从Debian跳船到Arch Linux。安装真是超麻烦,大概仅次于gentoo:全命令行不说,基本上所有软件/服务都得自己安装和配置。不过好处是干净,既然配置起来这么麻烦,用不到的软件和服务就不会去装,于是启动比起Debian来快了不少——至少从initramfs到进X,终于和进Windows耗时差不多了。

Debian虽然据说安装要相对容易些,其实也很坑爹。在我试过的几台机器上(笔记本,办公室的Mac Pro,台式机),把ISO写到U盘上安装是会失败的,而且必须用文字界面的expert install才能正确安装运行。使用图形界面必然导致在安装过程中某处死机,使用非expert install必然导致安装完重新启动后不能正常运行——话说对很多普通用户朋友,您能跟他们说清楚把grub安装到/dev/sda,/dev/sda2和/dev/sda5的区别么?

Arch的优点还有很多,例如ArchWiki的文档比Debian和Gentoo都好懂不少。Arch的官方repo虽然没有Debian的海量,但AUR里也有很多Debian没有的,不太开源的东西,例如PCSX2Dolphin

======
另外体会到了Linux(或曰开源社区)的硬件支持是多么坑爹。以下是遇到的若干问题:

1, 显卡:有一块GTX 560。用Debian时,由于开源驱动Nouveau的bug,在安装后重新启动就会死机。解决方法是安装完后不要立刻重启,而是先进入shell,在/etc/modprobe.d/下建一个文件,丢一句blacklist nouveau。然后用安全模式重启,直接wget一个(因为没有图形界面浏览器可用,顺便用lynx访问nVidia的网站只能得到404!)NV的官方非开源驱动程序安装了,就万事大吉。Arch下nouveau虽然仍然提示出错,但至少不会死机了——虽然我们还是得blacklist掉它然后安装非开源驱动。

2. 无线网卡:我用的是一块华硕USB-N13(信号质量超好,推荐),用的是Realtek 8192cu芯片组。首先,目前Linux基本上还不能驱动任何2.4/5GHz双频的无线网卡,只能用2.4GHz的让它和公寓楼中无数微波炉干涉去。其次,NDISWrapper且不说配置的麻烦,照着文档配置好了也有颇大概率不能用。最后,对rtl8192cu这个芯片来说,虽然realtek提供了驱动源代码和firmware给Linux社区,但内核(3.5.3-2)里的那个驱动是不能工作的。解决办法是用另一台电脑下载一个别的软件包到U盘上,然后编译安装,安装好后仍需要在/etc/modprobe.d/里配置一些电源管理的参数,blacklist掉内核自带的驱动。然后DHCP仍然不能工作——解决方法是只好用静态IP咯。系统自带的Network daemon完全没用,把它从配置文件里去掉,自己写个脚本丢到/etc/rc.local里,于是每次启动终于能自动联网了。

3. 磁盘阵列:用的是Intel芯片组的软磁盘阵列(imsm)。启动时无需手动加载任何mdadm服务,udev就会自动侦测到磁盘阵列并配置好它——但是是只读,而且读取速度很慢。更坑爹的是,用google到的各种mdadm和mdmon命令行都没法把它掰回来。试图在modprobe.d里blacklist raid456以禁止udev自动加载mdadm,结果不但不能正确配置阵列,更在重启两次后,BIOS就开始提示阵列需要重新sync,一sync就是几个小时。于是我也不敢再折腾了,只读就只读吧,反正也是个在Winodoze下搭的NTFS阵列……

4. 打印机:佳能ip2600,用佳能提供的fedora驱动或是gutenprint都不能正确打印,目前唯一的解决方案是,在虚拟机里装个Windows负责打印……

======
说到虚拟机,尝试了一下raw disk虚拟机,即把虚拟机安装在真正的硬盘分区上,而不是虚拟磁盘中。以VirtualBox为例,假设Linux装在/dev/sdb1,有一个空的Primary分区(注意,分区时必须分成primary而不能是logical)/dev/sdb2打算装虚拟机。

首先把用户(假设名为username)加到disk组里:
usermod -a -G disk username
(当然你也可以chmod 666 /dev/sdb*,但这样太危险了。)

然后建立一个虚拟的主引导扇区(因为不想让虚拟机把硬盘上的grub抹掉):
dd if=/dev/sdb of=sdb.mbr bs=512 count=1

最后建立一个新的指向真正磁盘的vmdk文件:
vboxmanage internalcommands createrawvmdk -filename sdb2.vmdk -rawdisk /dev/sdb -partitions 2 -relative -mbr sdb.mbr

然后打开VBox,设置好虚拟机,把生成的sdb.vmdk作为一个新SCSI设备加进去,就可以开始安装系统了。

======
再说说桌面环境。由于本人在09年就抛弃了gnome和KDE改用Xfce,不知道传说中非常非常坑爹的gnome 3到底有多坑爹。所以总结一下新旧信息:

1. 最大的初心者向发行版Ubuntu用自制的unity。

2. 另一个重要的初心者向发行版Linux Mint也抛弃了gnome,fork出一个cinnamon。

3. 由于gnome不能在一张CD上装下,所以Debian 7将要抛弃gnome,用xfce作为默认桌面环境。——别看现在没人用CD了,我实践中,用CD安装Linux,比用U盘安装Linux故障率小得多。

4. gnome 3.6要集成坑爹的ibus作为输入法框架,引发了中文社区和gnome核心开发团队的激烈 争吵。作为fcitx(好像现在是位p大的同学在维护)的支持者,总结一下gnome团队的态度就是:我们(红帽子公司的白皮)吃了一口宫保鸡丁觉得还不错,所以决定了,你们中国人只吃宫保鸡丁就行了。什么?你想要火锅?那是什么,可以吃么?

有人给出阴谋论式的解释,红帽子公司的白皮们关心的是一个好的触摸屏英文输入法,CJK用户什么的不重要。可是有iOS,Android,Windows 8,以及WebOS和Meego在,任何触摸屏电脑厂商,会严肃地考虑用gnome么?

======
趣味信息一则:看了Linus Torvalds喷各种他不爽的事物,从gnome到bsd,里面也有喷到Emacs。如果让Linus和Richard Stallman两大喷神对喷,一定很精彩。

======
最后吐槽一下,Linux社区真需要考虑软件起名的严肃性。例如有个CPU调度器叫做Brain F**k Scheduler,会这么粗鲁地起名大概是缘于作者和Torvalds团队的恩怨。又如,有个mount远程磁盘的工具起名叫做Gigolo(牛郎/小白脸/面首),原因是牛郎这个职业和“mount”这个动词的关系。试想一个7岁小萝莉(没错,我想到了Persona 4里的ななこ)学习使用Linux,问道,“藕泥酱,为什么mount远程目录的软件叫做gigolo呢?”您要怎么回答?

0 comment(s):

Post a Comment

Thank you for your opinion.