首先吐槽 VAIO P 这么好的设计下面藏着一颗令人无力吐槽,仿佛回到全美达时代的 CPU。不过好在经过一顿折腾,这东西已经能满足实用需求了。背光可调,标准分辨率,近2小时的待机时间,Wi-Fi 蓝牙均可使用,待机完美,Chrome 响应速度很好,指点杆中键可以滚动……都已经是这个地步了,还有什么可强求的呢?
首先说说折腾的目标:屏幕标准分辨率(1600x768),可待机可唤醒,比 Windows XP 还流畅的体验,控制台可完美使用,电池别太费,鼠标中键可滚动,基本硬件功能全开,能用 Chrome 浏览。可以说我的需求在最终的成品里都能满足。这台机器的硬盘换成了 32GB 的 SSD(就是之前提到的那个奇葩至极的金胜SSD),因为还装有 Windows 7 Professional,所以只给了 Debian 3GB 的空间,但我不得不说这 3GB 绝对够用了。如果你也有一台 VAIO P,并且需求不高,可满足日常使用即可,那么你也可以选装 Linux。这次折腾还有一点前提,那就是简介至上,没用的东西一律不装,没有需求的垃圾统统扔掉。这也就是我没装 Gnome/KDE 的原因。不知怎么的这破玩意儿一进 Unity/Gnome3 CPU使用率就飙到爆表,完全没有可用性。Archlinux 定制型不错,在网络、控制台等几个方面可用性比 Debian 还要高,只是死活搞不定的 GMA500 驱动让我彻底失去信心了。本文不介绍详细的步骤,只是对几个关键问题针对性地作出解答,希望能够帮到仍然挣扎于给口袋本选择发行版的朋友。
NOTE: 由于最后 X 环境下只运行 Chrome 作为“桌面”、浏览器、音乐播放器、视频播放器、PDF浏览器……如果你有对完整桌面环境的需求,你可能不需要再往下看了-_-!
作为基础,要选择最小化安装的 Debian,安装选包的时候选上 Laptop 和 Standard system utilities 就够了,如有需求(比如说我)再选个 SSH server,再多选就真的没意思了。选包请无视桌面环境(卡翔的 Gnome 确实伤不起)。
1. 待机问题
GMA500 的待机问题,尤其是唤醒后恢复 X,一直都是个烦人的事儿。要修复此问题,添加下面一行到 /etc/pm/config.d/gma500 文件里:
ADD_PARAMETERS='--quirk-vbestate-restore' |
合盖待机功能还需要改一下 /etc/default/acpi-support 文件:
#LID_SLEEP=true 去掉前面的注释符,改为 LID_SLEEP=true |
2. 再添加几个控制台
由于一会儿配置的是登入 TTY6 自动启动 X 和 Chrome,所以多开几个控制台以备不时之需。编辑 /etc/inittab 文件,找到下面这一行:
1:2345:respawn:/sbin/getty 38400 tty1 |
接下来的整个一段都是 TTY 的配置信息,复制这一段的最后一行,将第一组数字和最后一个数字改为8~12,即可开启 tty8~tty12:
8:23:respawn:/sbin/getty 38400 tty8 9:23:respawn:/sbin/getty 38400 tty9 10:23:respawn:/sbin/getty 38400 tty10 11:23:respawn:/sbin/getty 38400 tty11 12:23:respawn:/sbin/getty 38400 tty12 |
注意要跳过 tty7,因为 X 要占用这个控制台。
当然,认为这么多控制台纯属胡闹的朋友可以选择使用 screen。
3. 配置 Wi-Fi 和以太网
配置网络不需要装什么包,都已经含在基础里面了。用你喜欢的编辑器打开 /etc/network/interfaces:
# loopback auto lo iface lo inet loopback # 有线网 auto eth0 iface eth0 inet dhcp #无线网 auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf |
网络端口需要事先用 ifconfig -a 查清楚。然后新建 /etc/wpa_supplicant/wpa_supplicant.conf 文件,配置无线网络连接:
ctrl_interface=/var/run/wpa_supplicant ap_scan=1 network={ ssid="无线网ID" psk="无线网密码“ } |
如果需要创建 WPA-EAP 连接,请参考这里。
配置完成后重启,或者运行 ifup wlan0 开始连接。连接后使用 ifconfig 查看是否已经分配 IP。
4. 配置 X,声音,浏览器和鼠标滚动
配置 X 没什么难度,使用 apt-get install xorg 安装即可。安装后运行 startx 测试显示是否正常。
配置声音更简单,使用 apt-get install alsa-utils 安装后即可使用控制台 alsamixer 调节音量了。使用 speaker-test 可以测试是否配置成功。
安装浏览器之前先要安装字体,否则不能显示中文。字体用文泉驿的就行,运行:
apt-get install ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy |
安装 Chrome,使用:
wget -c https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb dpkg -i google-chrome-stable_current_i386.deb apt-get install -f |
配置 Chrome 启动是件挺麻烦的事儿,首先在 ~/.bashrc 加入:
if [ "$(tty)" == "/dev/tty6" >; then exec startx /usr/local/bin/google-chrome-boot fi |
然后为了让鼠标能够自由滚动页面,还需要安装 xinput,apt-get install xinput。
当然,上面的片段提到了一个自定义脚本,用来加载 X 的各种配置。脚本如下:
root@localhost:~# cat /usr/local/bin/google-chrome-boot #!/bin/bash # 更改鼠标为箭头,不要叉叉 xsetroot -cursor_name left_ptr # 配置指点杆的中键滚动 xinput set-int-prop "PS/2 Generic Mouse" "Evdev Wheel Emulation" 8 1 xinput set-int-prop "PS/2 Generic Mouse" "Evdev Wheel Emulation Button" 8 2 xinput set-int-prop "PS/2 Generic Mouse" "Evdev Wheel Emulation Timeout" 8 200 xinput set-int-prop "PS/2 Generic Mouse" "Evdev Wheel Emulation Axes" 8 6 7 4 5 xinput set-int-prop "PS/2 Generic Mouse" "Evdev Middle Button Emulation" 8 1 xinput set-int-prop "PS/2 Generic Mouse" "Evdev Middle Buttom Timeout" 8 50 # 把 Chrome 放到 /tmp 运行,以防污染 ~ cd /tmp # 运行 Chrome,跳过 root 警告 /usr/bin/google-chrome --user-data-dir |
有了这个,以后想用 Chrome 的时候 Ctrl+Alt+F6 切到 tty6 登陆后,就能用启动在 tty7 里面的 Chrome 了。
启动的 Chrome 有可能不是全屏的,因为没有安装窗口管理器所以窗口大小调整很麻烦。方法有两种:
第一种:Chrome 的配置里有一项 Use system title bar and borders,取消这个选项即可自由调整窗口位置和大小,但是全屏按钮是无效的。
第二种:更改 Chrome 的配置文件(~/.config/google-chrome/Default/Preferences),找到下列几行几行更改窗口位置和大小为充满整个屏幕:
"window_placement": { "bottom": 768, "left": 0, "maximized": true, "right": 1600, "top": 0, "work_area_bottom": 768, "work_area_left": 0, "work_area_right": 1600, "work_area_top": 0 } |
还有,由于一关闭最后一个标签浏览器就会退出,所以需要安装 Last Tab Keepalive 插件,以防不小心退出 X。这个插件的选项 Maximize window一定不要勾选,否则会改变窗口大小。如果需要输入法,请安装 Google Input Tools 插件。玩够了浏览器可以通过 Ctrl+Shift+Q 退出浏览器和 X。想再打开浏览器,只要登录 tty6 即可。
5. 硬件功能的快捷方式
由于键盘上的 Fn 快捷键不能用,所以调整音量和亮度需要走个弯路。我写了个脚本如下:
root@localhost:~# cat /usr/local/bin/vaio-control #!/bin/bash case $1 in mute) amixer set Speaker toggle > /dev/null echo -n "Sound: Current Speaker Status: " && amixer get Speaker | awk '/Front Left:/{print $7}' ;; *) echo $1 > /sys/class/backlight/psb-bl/brightness 2>&1 echo "Display: Current Brightness: "$(cat /sys/class/backlight/psb-bl/brightness)% esac |
运行脚本,参数给 mute 即可切换静音状态,参数给 0~100 的数字即可调整屏幕亮度。音量调节使用 alsamixer 更方便。
电池电量方面的信息使用 apci -V 查看,输出如:
Battery 0: Full, 100% Battery 0: design capacity 1651 mAh, last full capacity 1544 mAh = 93% Adapter 0: on-line Thermal 0: ok, 43.0 degrees C Thermal 0: trip point 0 switches to mode critical at temperature 100.0 degrees C Thermal 0: trip point 1 switches to mode passive at temperature 90.0 degrees C Cooling 0: Processor 0 of 10 Cooling 1: Processor 0 of 10 |
至于屏幕亮度记不住的问题,我写个脚本作为服务开关机自动运行即可:
root@localhost:~# cat /etc/init.d/remember-brightness.sh #! /bin/sh ### BEGIN INIT INFO # Provides: remember-brightness.sh # Required-Start: $local_fs # Required-Stop: $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Remember Brightness # Description: This script saves brightness level at shutdown and recovers at boot ### END INIT INFO # Author: Bill Haofei Gong <xmagic5589@gmail.com> do_start() { cat /etc/vaio-backlight > /sys/class/backlight/psb-bl/brightness } do_stop() { cat /sys/class/backlight/psb-bl/brightness > /etc/vaio-backlight } case "$1" in start) do_start echo "Brightness recovered!" ;; stop) do_stop echo "Brightness saved!" ;; *) echo "Usage: remember-brightness.sh {start|stop}" esac : |
运行下述命令注册服务:
update-rc.d remember-brightness.sh defaults |
后记:本文不是什么流程,需要什么请全文搜索,语序杂乱无章还请见谅。
UPDATE: 最后还是没忍住把 openbox 折腾上了,不过只是 openbox,没有别的了。无线网改用 wicd 管理,加了 blueman 管理蓝牙。稍稍折腾了一下主题,变得好看多了。最主要的是通过设置 openbox 的快捷键和我自己写的 vaio-control 脚本改进版,现在可以使用键盘快捷键调整音量和亮度了,还配有提示音。现在除了没想出什么方法让 X 在待机后自动使用 slock 锁屏,其他的都没有问题了~附图两张以供参考: