触摸板异常及用downgrade降级Udev

前几日私在推上发牢骚,曰“进来命途不顺,Arch升级愈升问题愈多”,计算机科学屠戮者大神反问:“此岂非生活之常态?”。其实真的不是生活的常态。也许是私当年用惯了kubuntu(呃……一不留神又黑了kubuntu啊,话说私过几天还要参加release party呢),觉得Arch简直是一个稳定得令人惊讶的系统。唯一的一次问题是源于私穷折腾时的操作失误。在此之前还真的没有找出任何的问题。

然而一次升级过后悲剧发生了。重启候发现触摸板无法使用,遂接上外接鼠标查找原因,计算机科学屠戮者大神说可能是内核的问题,然而私在本地未找到早先留下的包,作罢。后来开机时发现触摸板反映很怪,有时认不出,有时能认出,还有时会认成鼠标,查Xorg的Log,发现自己的EasyCamera(摄像头)被认成了触摸板,然后自然发生错误,于是触摸板的驱动就自动Unload了,没有挂载在正确的地方。去Arch的论坛找,发现貌似是新版本Udev(167-1)的问题,降级回去就可以了。

不过私依然没找到遗留的老版本的Udev包,难道真的要编译才能解决吗?后来看到Bug Report下有人提到可以用AUR里面的叫做“downgrade”的包(名字真直接)。下载后只需用downgrade xxx命令,就可以找到xxx软件的一些早先版本(Udev貌似保留了十多个早先版本),选择一个降级即可,操作非常傻瓜,避免了因误操作可能出现的各种问题,很适合私这样的初学者使用。

后记:

私降级后就把Udev放到升级忽略列表中了。然而今天升级之后发现有个叫做“initscripts”的包要求Udev版本高于167。Google之,发现和启动初始化有关(貌似是废话,嗯……因为细节私也没太看懂)。难道就是因为Udev和这个包的版本不匹配才出现的问题吗?一会可以试试看。

后记的后记:

果然跟此事有关。今日在Arch官网上找到了这句话:

We would like to remind everyone that initscripts expect all other packages (except for the kernel) to be up-to-date. This in particular includes udev, mdadm, dmraid and lvm.

于是升级一下就一切都好了。

Arch恢复

首先感谢计算机科学屠戮者大神,在私的PC上大大地展现了一番bash功力。当然他自己未必觉得如此,但私看得却是眼花缭乱得很……

其实不能挂载的症结就是私grub配置不知怎地(反正绝不是私搞的),挂载root分区那行里的“ro”莫名其妙地变成了“rw”,以至于root被挂载为读写模式,而Arch自检的时候要求挂载为只读模式,于是就出现问题了。

而这个问题说到根上,都是源于私换驱动的时候用了“pacman -Rns catalyst”的命令,以至于pacman把其依赖——xserver卸掉了,于是乎装了啥驱动也不管用了。

另外其实原先私fstab还有个问题,就是swap挂载写了两遍,所以每次启动会提示swap挂载有误,这次也一并解决了。另外还对系统进行不少小调整,在此不一一赘述。

总之很感谢计算机科学屠戮者大神,不过私想到以后如果再有这样的问题,凭自己这样的能力,大概是解决不了的吧。还是得再研究再学习啊。

Arch挂了……

仔细看了看私以前的日志,发现自己是在1月22日装好的Arch linux。今日——4月16日彻底挂掉。三个月才挂掉,在私用Linux的历史上也还算比较长了,想到这里实在让人哭笑不得。也许只是因为Arch难掌握,所以在胡搞的时候稍稍用了点心吧……

故事是这样的。某日升级的时候发现Catalyst 11.3不支持xorg 1.10以后版本,但Arch的软件源里已经有1.10了,导致无法更新。于是私就打算换开源驱动试试。其实私在开源驱动和Catalyst之间换已经许多次了,都没有出现什么问题。结果这次不知怎么就无法启动X了。私以为是驱动只兼容xorg 1.10,于是就做了一次系统更新,仍旧是没有用。

然后……私做了个极其错误的决定——开testing源。重启之后,mount出错,说继续的话会造成严重数据损失,其中的“will”和“severe”还有专门的着重号。私害怕甚,没有继续,于是只读挂载,要私手动修复问题。对私这Linux万年新手来说当然是搞不定的,于是现在就挂在那里。

其实私只要耐心等待一下,等Catalyst支持新xorg,问题可能就会很容易解决……还是太不谨慎啊……

安装Arch的血泪史

首先特别感谢CS Slayer的帮助,让私的Arch之路顺利了许多。

由于实在无法承受kubuntu那问题连天的打包,再加上CS Slayer大神和woodliu仁兄的煽动(请原谅私用了这个词),私终于决定投身Arch linux的<del>大坑</del>怀抱。其实私曾经是尝试过装Arch的,而且是在虚拟机里装过之后才敢实装的。可惜装的时候因为无法识别网卡(似乎是这样,至少无法正确配置pppoe),中途放弃了。这次私用的是2010年12月打包的archboot,pppoe终于配置正确,可以使用了。

其实整个光盘(优盘)安装过程还蛮顺利的,由于有之前的经验,整个配置过程并没有受到阻碍。然而安装过后配置显卡驱动的时候就出了点问题。Arch把ATi的商业驱动移出了源,AUR又不能直接用pacman下载。后来CS Slayer仁兄给私了个有yaourt的源,装了yaourt之后下载了catalyst-hook(可自动编译内核),结果私再接着看wiki的catalyst文档之后,发现专门有个catalyst的源……

不过AUR里有很多宝藏,提前装上yaourt也蛮好。结果由于心急,装好KDE,没有测试就把kdm写进rc.conf了。于是乎一启动就黑屏,一启动就黑屏……而且是那种连背光都没有的黑屏,pkill X无效。没办法,只能盲操(那真是货真价实的盲操)进vi,搜索“DAEMONS”,移到下一行尾,再往前推算,去掉kdm和hal,最后写入,重启。之后wiki看了一遍又一遍,还是找不到解决问题的方法。

无奈之下,索性去找开源驱动。惊喜地看到Arch源里的开源驱动已经开始支持Radeon HD5000系了。于是兴冲冲地装上,运行startx,惊喜地看到漂亮的KDE登录界面,结果就在那个大大的K字时即将浮现时,惊讶地看到因为segmentation fault,X关闭……再仔细一看显卡支持列表,就是没有私这Mobility HD 5650(5600)。无奈之下,还得从商业驱动想办法。

就这样折腾了好几天。后来想到由于私装的是catalyst-hook,ATI Catalyst那篇Wiki私是从hook那里开始看的,可能前面还是遗漏了什么,于是乎从头看看吧。后来发现了很不起眼的一句……

“And add nomodeset to your kernel line in /boot/grub/menu.lst”

于是乎就是这样,问题解决了。

之后终于进了图形界面,下一步是汉化、安装输入法。结果fcitx输入法始终无效。没办法,暂且搁置,先把locale搞定。结果fcitx居然能用了。跟CS Slayer仁兄一说,才知道现在/.bashrc在图形下已经不管用了。而fcitx在zh_CN-UTF8上不用设置环境变量即可使用。

至此……基本上私的Arch已经可以用了。不过私没有装KDE4.6 RC2,反正正式版再过几天就正式发布了。另外还有无线、图形化网络连接没有搞定,不过也无伤大雅了。

嗯,算是历经艰辛投奔成功了吧……

虚拟机的一二事

自从开始浅尝Linux之后,和虚拟机打交道就多了。当年由于移除Ubuntu的时候只删了分区,没重写MBR,饱受残留GRUB的摧残,最后分区表搞坏过了N天没有PC的日子……从此之后就变得谨慎多了,东西都要先在虚拟机里试一下。不过虚拟机程序私只用过两个,一个是微软的VirtualPC(现在早就不用了),另一个是甲骨文(其实是升阳)的VirtualBox。

私接触的第一个虚拟机是VirtualPC(之所以不是VMWare是因为VMWare是商业软件,当时正犯洁癖来着……)。VirtualPC功能是非常有限的,后来就转投VirtualBox了。顺带一提,VirtualBox实际属于升阳微电子,也就是Sun Microsystems。其实升阳对开源界的贡献真的很大,MySQL、OpenOffice、OpenSolaris等等,虽说很大一部分都是收购的,但却大大促进了开源界的发展。如今升阳被甲骨文(Oracle)收购,这些东西都有点前途未卜的感觉。真希望甲骨文能留下升阳这个子品牌,让地上人缅怀一下曾经的黄金圣殿……

私之前有一段时间没有摸过虚拟机了。由于新PC运行Linux的时候发热量总是很大,才不得已转到虚拟机来。再加上最近想学学怎么配置Arch,用虚拟机就更频繁了。

用虚拟机硬件分配最忌讳的是什么呢?不是CPU、硬盘甚至是显卡分配失当,而是内存,是内存!不论是Linux还是Windows,CPU留一个核心给主系统它照样能跑得很欢;硬盘空间不足也不足以影响整个主系统(我有一次Ubuntu上硬盘剩余空间只有几十兆,设置都无法保存了,它照样运转得好好的);可是一旦内存分配不足,整个系统的操作都会Lag,还会看到硬盘狂转(估计是和虚拟内存/Swap交换数据),而它的临界点还特别明显,多个两百兆和没有这两百兆那真是判若霄壤,那感觉,真不是一般窝火……

最近私本来是打算在虚拟机里练习,之后实装转投Arch,可不是GRUB无法载入就是pacman升级出错(Transient resolver failure),再加上DSL拨号还要配置网卡, 让人实在没有真机实装的胆子。还是得继续练习啊……

OpenSUSE11.3,倒计时……

OpenSUSE倒计时牌

很早以前看到过这么一个说法:Linux桌面的唯一希望是OpenSUSE。深层意义大概是因为其他Linux发行版主要是为爱好者、“玩家”准备的,只有OpenSUSE真正把“广大桌面用户”作为主要的对象。

类似“唯一希望是OpenSUSE”的话说出来的时间大概也比较早了,那时ubuntu大概还没有发展起来。然而无论现在ubuntu做得多好,OpenSUSE的功绩都是不应被遗忘的。OpenSUSE11.2私曾用过一段时间,不过后来因为软件源问题,放弃了。如今11.3发布在即,不能说“激情重燃”吧,至少在其他众多发行版在私新PC下屡屡不顺的时候为私注入了一点新的希望,也称“念相”,人活着实际就图个念相。

OpenSUSE也是一个以“稳定”优先的系统(至于您装它提供的SVN则是另一回事),但也并不惮于使用最新的技术。因而在系统核心层面支持是相对理想的——既不像Debian那样过于注重稳定而舍弃了众多新硬件,也不像很多发行版盲目追新带来众多的错误。似乎也有人说过这么一句:“要相信德国人的严谨。”,更何况这还是Novell的产品。

新要素……有意了解的同学可以点击这里速览(Take the tour,这样翻译大概没错)一下(不过鉴于私网志的人气,大概不会有人这样做)。11.2已经很老了,所以看上去新要素有些多也有些杂乱,在此私只把自己感兴趣的列一列吧。

Linux 2.6.34内核:
支持大量未发布的(和新发布的)英特尔处理器与芯片组
增强虚拟化技术
适用于新硬件的更好的能源管理

私一直很搞不懂像Ubuntu这样相对激进的系统为何在换内核上这么谨慎。外包装工作做得再好,面对日新月异的硬件,没有好的内核都是不可以的。OpenSUSE在这一点上反倒成了先行者。

图形驱动方面:
X.org 7.5和 xserver 1.8
ATi、Intel与Nvidia显卡默认开启KMS (Kernel Mode Setting)
Nouveau成为默认Nvidia显卡驱动
Radeon视频驱动(Radeon video driver)取代Radeonhd驱动

驱动……大概是A卡Linux用户永远的痛。在Windows下用MobilityHD5650显卡,传感器回报温度50度,到了Linux下,用开源驱动温度就是65-75度,用闭源驱动根本连系统都进不去。于是有人(CS Slayer大神,fcitx的开发者……之一)建议私用适合追新党的Arch。不过在虚拟机里跑了之后发现硬盘分区每次都会失败。这样一个连桌面都没的按说非常强大系统在虚拟机里跑竟然出了问题,在私家中只有一台好用的PC的情况下,怎么敢尝试实装?看来私的水平也就是ubuntu、OpenSUSE这些。如今大概只有OpenSUSE可以小小地期待一下,期待X.org、KMS和Radeon驱动。

KDE桌面:
KDE多点触控设置工具(Synaptiks touchpad configuration tool)支持
附带KSuseInstall软件安装程序
KDE升级程序(KUpdateapplet)支持发行版升级(dist-upgrade)
默认GTK主题使用Oxygen-molecule

都是重量级的东西。
先是多点触控。私的笔电就是多点触控的触摸板,这次终于有了用武之地。不过KDE的缩放操控要想赶上Mac OS那流畅度尚需时日。
在Kubuntu上一直没有好的图形化软件(软件包)管理器(KPackageKit实在难堪大用),OpenSUSE却附带了很多(上述的只是部分),Novell不愧是KDE的银级赞助,没让私这个KDE控失望。
Oxygen-molecule主题私在kubuntu上是用过的。虽然需要加载一套GTK主题引擎,但是最后的效果非常的和谐,除了没有窗内动画以外GTK程序的外观几乎和Qt程序无异,给人以非常舒服的感觉。

Gnome桌面:

由于私不是Gnome粉,就懒得翻译了。只说一点:Gnome3.0功能预览——Gnome Shell和新的辅助堆栈管理(accessibility stack)。该懂的人会懂的。

暂时就这些了。总之……OpenSUSE加油!开源界加油!

后记:仔细研究特性列表后发现几个翻译上的错误(唉,都是新玩意儿,不太好搞懂),现已修正。如有E文高人发现其他错误,还望多多指正。