|
|
20081105更新
S6410安装Debian(Sid)记录
首先,S6410是预装了Vista的,不少笔记本都预装了的,就算没有预装,也是安装了Windows的,但是这个不要紧,保留就是。
第一步,分区准备
先在Vista下删除D盘,当然删除之前数据要备份了。新建1个主分区1G做/boot区(这个一定要是主分区),再建一个2-4G的分区做交换区swap(我的这个一时忘记了,没有就没有吧,2G的内存暂时应该够用,不过休眠就无法用了),再建一个分区做根/分区,大小看情况,现分了20G,再分一个分区做用户分区/home。全部都不用格式化也不用分配盘符,当然分区不做也可以,只要留够磁盘空间就好了
第二步,启动U盘准备
由于没有Debian的光盘,考虑使用U盘启动来安装。U盘原来是使用深度工具做的,已经有Grub4DOS可用了。
第三步,安装文件准备
首先上网参考各前辈的文章,有一篇是使用网络安装的,只要下载两个文件即可,也就是Debian仓库下网络安装里面的一个vmlinuz一个initrd.gz。在menu.lst中加入相应的语句即可启动。启动S6410无法从U盘启动,原来还要进BIOS设置为可用USB启动才行。从U盘顺利启动后,但是在安装过程中的网络设置后,没有任何地方可以设置PPPoE的,安装失败!难道大多数人的网络都是静态地址?没有网络那是装不成的了。
看来想省功夫还是不容易啊,终于下载了一个netinst.iso的光盘,下载硬盘安装用的vmlinuz及initrd.gz。在menu.lst中加入下面三行,可以启动了
title Install Debian
kernel /vmlinuz
initrd /initrd.gz
这里的几个文件都是最新的稳定版Debian4.0r3的。从U盘启动后,自动找到netinst.iso开始安装
第四步,安装过程中的问题
1、Grub的启动问题
这里为了不影响Windows系统,使用了独立主分区来安装Grub启动器,也即安装在/boot区(/dev/sda3),安装过程中提示写入/dev/sda3错误,安装失败!看了一下,该分区上内核文件已经安装好了,但是不知为何就只有Grub写不进去。这时选择完成安装的话,是无法启动的。再次重装(还好机子比较快),又到了同样的Grub安装失败的地方了。这时尝试umount /dev/sda3,再次重复Grub安装步骤,居然成功装上了!由于分区过程中已经设置了/dev/sda3为可引导主分区,原来的Windows分区就暂时不可引导了。
启动后,顺利进入Grub菜单(有菜单就好办了吧),发现里面居然有几个与Windows有关的菜单项。看了一下其中的不同主要是硬盘名字的不同(如(hd0,1)、(hd1,1),其他基本一样),试了一下,其中一个可以正常启动Vista。
尝试启动Debian,却没有相应的菜单项!可能是后面umount了/dev/sda3,相关的内容没有写入吧(后面还有说到)。但是Grub是何等强大!直接进入Grub命令行,看看相关的文件即可引导了吧。
在Grub>提示符下
Grub> root (hd0,2) 表示每1个硬盘,第3个分区,即系统中的/dev/sda3
Grub> kernel /vmlinuz 这是按Tab键自动补全的文件名(怪怪的)
Grub> initrd /initrd.img 这也是自动补全的文件名(也是怪怪的)
Grub> boot
提示文件不存在,启动失败!怎么可能?第1次碰到这种问题。怎么试都无法启动Debian了。只好又从U盘启动Debian安装程序。
自动到了分区菜单了,Alt+F2切换到第2屏,回车出现提示符,mount上/dev/sda3到/mnt一看,原来文件名是vmlinuz-2.6.18-6-686及initrd.img-2.6.18-6-686而不是简单的vmlinuz及initrd.img。
检查grub目录下的配置文件,居然没有grub.conf也没有menu.lst!那就新建一个吧,
# vi grub.conf
没有vi命令!忘了Debian一直是用nano的
nano grub.conf
输入以下内容
title Debian
root (hd0,2)
kernel /vmlinuz-2.6.18-6-686 root=/dev/sda3
initrd /initrd.img-2.6.18-6-686
boot
Ctrl+x并保存退出
重启电脑从硬盘启动
Grub菜单出来了,但是居然没有变化!与原来的完全一样,也没有Debian的菜单项!真是奇怪了(有谁知道原因吗?告诉我吧)。
只有又用前面Grub命令行的招数了。这时Grub自动列出的文件名字都不齐,还好记得文件名。
终于顺利进入Debian了。可能/dev/sda3上的Grub有问题,重新安装一下
grub-install /dev/sda3
自动更新一下菜单
update-grub
OK,重启看看效果。终于Grub的菜单变化了,可是引导Windows的项目也没了!容后再处理吧,用Grub没什么大不了的问题的(听说不支持Reiserfs4:)。
网络支持问题
安装完基本系统后,该升级系统了。那就配置PPPoE吧。但是发现没有与PPPoE相关的文件,也没有pon命令。看来基本系统是没有这些东东的。但是netinst.iso中应该是有的吧。
启动dselect命令,其中果然有pppoeconf命令,选上后安装。终于可以使用pppoeconf了。终于可以上网了!有了网络什么都好办,人多力量大嘛。
升级到Sid
我向来使用Sid的,也许应该直接下载Sid的安装光盘来安装的。但是现在就升级吧。
直接编辑/etc/apt/sources.list
注释掉原来的cdrom项
加下cn99.cn的项目
deb http://debian.cn99.com/debian unstable main contrib
apt-get update
apt-get dist-upgrade
升级到libc6出错!怎么强制、忽略依赖关系,直接用dpkg强制安装都不行!
只好先升级到testing了,把unstable改成testing,再次升级,顺利完成
再改成unstable,再升级,顺利完成。原来还不能一次过跳级!好在cn99.cn虽然只更新到了2月(注:现在正常了),但是速度还是很快的,先用再说。
接着就是安装Gnome桌面等常用到的软件。重启,很快X登录窗口出来了!连分辨率都不用设置,自动就是1280x800的了。看起来一切正常。
时钟问题
很快发现时间不对,比北京时间快8个小时。这个应该是UTC的设置问题吧,碰过多次了。直接编辑/etc/default/rcS文件,注释掉UTC那一行。重启,时间还是快8个小时!检查BIOS时间,正确!奇怪了。再次启动后,使用hwclock --show看一下硬件时间,居然出现Time out错误,原来硬件时间一直都无法正常使用。
在Google上搜索了一下,发现可能是BIOS比较新,Debian中的内核驱动不正确造成的。有两个办法解决这个问题,一个是使用hwclock的选项使用isa来读写,另一个就是更换驱动。试了一下第二种,genrtc驱动是适合S6410使用的。
编辑/etc/modprobe.d/blacklist
加入一行
blacklist rtc
编辑/etc/modules
加入一行
genrtc
调好时间,重启系统,终于没有问题了。
触摸板输入问题
虽然没怎么设置,Gnome就工作得不错了,但是发现触摸板功能太简单了,与在Vista下根本没得比。不过开源不会这么弱吧,Google一下,发现可以使用Synaptics驱动来驱动触摸板。说做就做,参考网上的指引,修改/etc/X11/xorg.conf文件。这时发现这个文件非常的简单!比原来的简单多了,实际内容只有10行!看来Linux下也是非常自动的了。
检查了一下,系统已经自动安装了xserver-xorg-input-synaptics软件包了,好!再安装一个gsynaptics,好在桌面设置这个触摸板用。
编辑/etc/X11/xorg.conf文件,在前面加入两段
Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Synaptics Touchpad"
EndSection
Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "Device" "/dev/psaux"
Option " rotocol" "auto-dev"
Option "SHMConfig" "true"
EndSection
OK,真的能用了。虽然这里说得很简单,但是实际却是经过了不少波折的。提醒一下,前面的ServerLayout段中看起来很简单,但是却能很好地工作。如果加入鼠标配置,将出现很奇怪的问题:单击变双击,没有单击了。总之,这两段配置能让目前的Sid很好地工作在S6410上。
再者,在打字时触摸板误动作还是有的,有必要做个开关。最好是在系统通知栏中有一个图标,点一下中键就可以开关了。但是没有这个软件,也没有“中键”可以点。
那就自己先解决一下吧,新建一个文件,名字为ToggleTouchPad,内容如下
#!/bin/sh
status=`synclient -l|grep TouchpadOff|grep 0|wc -l`
synclient TouchpadOff=$status;
保存,并加上可执行属性
chmod +x ToggleTouchPad
放到某个地方,如/usr/bin下等,执行这个命令就可以开关
在compiz的设置中设置一个命令及热键对,命令就是刚才的这个,最好设置为绝对路径,热键本来想设置为Fn+F4(上面有个鼠标图形),但是不成功,就设置成Super+F4吧(Super即Windows键)。现在可以随时开关触摸板了。如果不使用compiz,热键的设置就按相应的方法来做,关键是有开关命令可用了。
界面出现无英文字及无图形问题
不知道是哪个软件包出了问题,安装软件包多了之后,重启后X居然不正常了。全部删除与Gnome相关的东东后重启重新安装,即时启动X没问题,重启系统后进入GDM就不行了,怀疑是GDM的问题,换用KDM也一样,只要某个Gnome相关的包安装了之后,重启系统就不行。最后试了很多遍都没找到关键,把推荐软件取消自动安装后,只安装必要的软件,终于避免了这个问题。实际上是哪个软件出的问题也还真的没搞清楚,Sid嘛,过段时间应该就改好了,我们也不必太执着。
注:20080531,应该是与Desktop-base这个软件包有关系,可能是启动时设置了图形模式,内核启动后没有正确设置吧。删除这个包就没问题了。
APT自动安装推荐软件包的问题
因为这个原因,导致安装了太多的东东,包括导致界面显示不正常的哪个东东。所以有必要禁止自动安装推荐的软件包。使用命令
apt-config dump
看当前apt配置,可以看到一行:
APT::Install-Recommends "1";
在目录/etc/apt/apt.conf.d下新建一个文件,名为90norecommended,内容如下:
APT
{
Install-Recommends False;
};
再次运行apt-config dump看结果有如下一行:
APT::Install-Recommends "False";
OK,现在不会自动安装推荐的软件包了。
使用compiz
X3100的显示卡,在当前的笔记本中应该算是可以的了,在Vista下分数都有3.5分了,完全开启Aero特效没问题,总不会在Linux下不利用一下吧。当然安装compiz了。当前Sid系统中的compiz是比较新的,但是却没有冠以fusion的名字,不管它,装吧。安装compiz,自动依赖相关的软件包,包括compiz-plugins。安装完成,启动compiz
compiz --replace
提示不认识的选项,奇怪了,以前都要这样,现在都不要了(其实是内部自动地必然的使用了这个选项)。
compiz
提示什么Blacklist,什么也没有发生!X3100居然进了黑名单!怪不得有前辈说最好就是Nvidia,最差就是Intel,看来不差啊!Intel的965显卡全部都进了黑名单,也不知道是谁的问题。
但是S6410买都买了,问题总得解决吧,Google一下,说有个选项加在xorg.conf中即可,试了一下没有启作用,也许是没配置对吧。直接把Intel从黑名单中踢出去试试吧。编辑/usr/bin/compiz,找到blacklist中Intel的那一行,注释掉,看起来如下:
#T="$T 8086:2982 8086:2992 8086:29a2 8086:2a02 8086:2a12" # intel 965
启动compiz,可以启动,只有一点不正常,就是窗口修饰中的阴影不正常,明显地把竖向计算当成横向计算了,其他效果均正常。一点小毛病就忍一下吧。另外,Gnome使用了compiz后,可以把Metacity给卸了,自动使用compiz,不用想着如何启动这个compiz了。还有,compizconfig-settings-manager软件包是不可缺少的,否则没得设置这个compiz,还有,可以安装其他的插件。
注:20080527,最近compiz升级成0.7了,虽然X3100还在黑名单中,但是窗口修饰的阴影已经正常了,我要用的功能也还没什么大问题,OK。
功耗问题
在Vista下,系统是有电源管理的,一般情况下,使用800M的频率,0.85V的电压来工作,虽然风扇也几乎都没停过,但是偶尔还是会停的。现在在Linux下都是在2G的频率下空转,电压至少得1.175V,风扇狂转,吹出来的风还是热的,这是绝对不允许的。
先让内核加载电源的模块吧,编辑/etc/modules文件,加下相关的模块名
acpi_cpufreq
cpufreq_ondemand
cpufreq_powersave
cpufreq_userspace
已经够了,实际上我只是加了第一个,后面的都会自动加。acpi_cpufreq是对应Core 2 Duo等新的CPU的。系统加载这些模块后就具有了对CPU的电源管理能力。再安装一个cpufreqd及cpufrequtils(或者其它类似的软件应该也可以),应该就可以了。重启系统后发现CPU还是全速运行(对了,安装一个gnome-cpufreq-applet并加载可以看到CPU频率,甚至可以设置频率),检查了一下/etc/cpufreq.conf文件发现在“Performace High”模式下,最小频率居然是100%,当然怎么管理都是全速运行了。
[Profile]
name=Performance High
minfreq=40% #原来是100%
maxfreq=100%
policy=performance
#exec_post=echo 8 > /proc/acpi/sony/brightness
[/Profile]
相应修改了一下这个文件,使用下面这个策略,也即在有AC电源时,使用ondemand电源管理方式
[Profile]
name=On Demand High
minfreq=40%
maxfreq=100%
policy=ondemand
[/Profile]
[Rule]
name=AC Rule
ac=on # (on/off)
profile=On Demand High
[/Rule]
现在一般情况下都是运行在800M频率了,在需要更高功能时自动提高频率。与Windows下差不多了。另外安装软件powertop(由Intel方提供的,在官方仓库中),运行它可以给出一些耗电方面的建议及发现一些问题。还有在Windows可以修改CPU的工作电压,在Linux下还没这么方便。
注:发现使用Ondemand时常常全速运行,改成有AC用Conseverative,用电池时为Powersave,笔记本嘛,这样就好。
注:发现现在系统启动后,cpufrequtil会把策略设置为Conservative,但是后面的cpufreqd却会把策略重新设置成Ondemand,但是停电/来电还是会按照预设进行设置,就不深究了。
再说功耗问题
笔记本当然是越省电越好,大多CPU都可以工作在更低的功耗下面的,所以Intel才有了LXXXX或者UXXXX的CPU。其实普通的CPU也可能更省电,原理就是降低CPU的工作电压,达到降功耗不降性能的目的。在Win下就有RMClock等工具可以用,在Linux下没有那么多,就找到一个Linux-phc。这是一个内核补丁,S6410使用Intel的CPU,支持ACPI-CPUFREQ,该补丁就是对这个功能进行了,增加了设置电压的接口。下载补丁及一个autostart的脚本,按说明文档安装即可。安装启动脚本时,检查发现并不完全正常,也即/etc/rc?.d目录下的链接显示为坏的,删除所有的坏链接重新建立一个正确的rc2.d下的,编辑/etc/phc-autovids,增加二行:
cpu0=11:27 10:23 8:19 6:15 136:11
cpu1=11:27 10:23 8:19 6:15 136:11
注:现在改为24 20 11 11 11了!
使原来最高电压从45降到27,也即1.375V降到1.05V,正常2.0G时电压从1.25V降到1.00V,(电压值可以在phc网站下载phc-tool来看)正常使用后,不但减少了功耗,CPU温度也从最高的87度左右降到70度左右,平常使用也就45度至55度左右了。目前未发现由于降低CPU工作电压导致的问题。当然各的CPU的最低正常工作电压是不一样的,好的都成L或U系列卖高价钱了,所以各CPU要经过实验才能确定最低工作电压。网上有一篇文章介绍了方法,这里简述一下:
首先设定CPU工作模式为userspace,以便完全控制CPU的频率
第二步,设定CPU为最高工作频率(双核的要不要分别设?)
第三步,第个CPU启动一个MPrime程序(启动前设定优先级为9,如果设为10很可能鼠标键盘都没机会反应)
第四步,逐步降低对应频率的CPU电压设置,监视MPrime的输出有没有错误,如果有说明电压太低,要提高。
第五步,把CPU频率降低,重复第四步,找出各个频率下的最低安全电压
第六步,把各个结果记下,修改/etc/phc-autovids即可。
具体找命令网上文章。可惜MPrime无法下载,不能做这一步,还没有找替代品,暂时就乱设一个吧,有问题再修正。现在,感觉爽啊!比RMClock在Win感觉还爽。
20081023,其实官方软件库中就有软件:cpuburn,可以用来测试CPU的稳定性,现在可看到这个电压设置下,室温感觉约22度吧,核心1最高温度为71度,核心2最高温度为74度,比以前至少降低10度。看来CPU工作应该是稳定的,没发现什么错误。
热键问题
安装了hotkeys包之后,可以认到静音及音量调节共3个按键,但是其它的仍没有。调亮度等Fn键不可用。
注:20081012,已经解决了!
不需要安装hotkeys包。在内核2.6.27中,已经可以使用Fn+<F6>或Fn+<F7>键来调节亮度了,前提是使用use_alt_lcd_levels=1参数来加载fujitsu-laptop模块。早前版本内核不支持这个参数!为了自动地使用参数加载,在/etc/modprobd.d/目录下增加一个文件S6410,内容只有一行如下
options fujitsu_laptop use_alt_lcd_levels=1
屏幕亮度调节
注:20081012,已经可以调节硬件亮度了,只是目前存在按一下热键亮度变化两级或者高度不变的情况,在重新加载fujitsu-laptop模块后,热键行为正常,目前原因不明。xbacklight暂时用不了,但是使用一条命令改变工作方式后,xbacklight还是可用的,据说是内核的acpi模块的BUG,但是现在已经是最新的2.6.27了,仍然如此,非得用,只有使用这条命令了:
$ xrandr --output LVDS --set BACKLIGHT_CONTROL native
安装xbacklight软件包之后,可以使用命令行设置亮度,如
xbacklight -set 30
设置为30%的亮度值,这个可比在Windows下强多了,Windows只有8级调节,这里,嘿嘿,自己看吧
使用命令来调节亮度确实不够方便,但是由于Fn+高度键没有驱动起来,也只好自己动手凑合一下了。参照前面开关触摸板的模式,做了两个命令,BrightUp及BrightDown,两个命令中只有一行不同,一个是加法,一个是减法,然后在Compiz中设置热键为Super+F7执行命令BrightUp,Super+F6执行BrightDown命令。两个命令均放在~/bin下。BrightUp命令的内容如下:
#!/bin/sh
cur=`xbacklight`
step=5
pd=`expr index $cur "."`
pd=$(($pd - 1))
cur=`expr substr $cur 1 $pd`
cur=$(($cur+1))
cur=$(($cur/5))
cur=$(($cur*5))
cur=$(($cur + $step))
xbacklight -set $cur
每执行一次亮度增加5%,共有20级可调,呵呵
声音问题
声音总是有点问题,用ESD可以发声,mplayer使用esd也可以,但是使用alsa或者oss就出现初始化错误。使用mpg123播放也出错,说什么设备忙等。
重新使用alsaconf,选择正确的声卡即Intel声卡后一切OK了,但是ESD又不行了,而且重启之后又是ESD行,其他的不行(不用ESD的话)。
卸载libesd0,安装libesd-alsa0代替。现在重启后真的OK了。为什么以前的系统似乎没有这个问题呢?
U盘中文问题
在自动mountU盘时,如果不使用iocharset=utf8(使用zh_CN.UTF-8的locale)指令,则中文文件名显示成?号甚至找不到相应的项。由于使用的是gnome,所以在配置编辑器(gconf-editor)中/system/storage/default_options/vfat下的mount_options下增加一条iocharset=utf8。OK
无线网络
这个总是要的吧,笔记本嘛,没无线网络成啥样?买了一个无线路由器,先在Vista下设置正常使用了,这里不提,说用Sid的。S6410使用的是Intel的4965无线网卡,内核模块名为iwl4965,加载它,提示不成功,要什么firmware之类。奇了怪了,有驱动还加不上!搜吧,原来还真的要安装Firmware才行,开源常常会被制约,但是开源嘛,嘿嘿。废话少说,apt安装firmware-iwlwifi包。再加载iwl4965模块,成功了。
下一步该设置无线网络了。根据网上得到的资料,对/etc/network/interfaces文件进行修改,增加无线网络内容。增加内容如下:
allow-hotplug wlan0
iface wlan0 inet dhcp
wireless-essid WSh-Home
wireless-rate auto
wireless-key restricted s:mykey
wireless-mode Managed
wireless-txpower 10
这里解释一下,第一行允许开关无线网卡,我是这么想的,第二行设置无线网卡自动获取IP(路由器为DHCPD),第三行设置要连接的网络id,第四行设置为自动速率(也许不必),第五行设置密码(这里用字符密码),第六行设置网卡工作方式,第七行设置网卡工作功率为10dBm,这里说明一下,最大的发射功率为27dBm,但是后来实际发现功率不是越大越好,一般这么大就可以了,如果不设置一下,系统将使用最大发射功率,当然不好啦,费电不说,还有辐射!
设置好了,网络却还是没有通!再搜,安装一个network-config软件包(Debian装软件还是超简单),图形界面的。装完后在Gnome菜单中找半天没找着,直接命令行启动network-config,按情况配置,点Apply,输入密码,提示成功,试无线上网OK。终于不清不楚用上无线网络了,哈哈。
注:发现其实不用network-config也是可以的,系统启动后或者开启无线后执行两条命令:
1、sudo iwconfig wlan0 essid "WSh-Home"
2、sudo dhclient wlan0
OK,只是没有在Vista下开机自动联接这么方便了。
注:20080629,重新开机自动联上了!哈哈,有进步!配置没改变,连auto wlan0都没有!关键点还没找到,可能是安装了network-manager包的作用。升级内核到2.6.26又不行了,唉。补充,先打开无线开关再进系统是可以自动连接上的,但是开机状态下关无线再开就有告警,这样甚至关机时导致系统挂起无法关机。应该时驱动还有问题,或者可以在udev中增加相应的代码来识别开关的动作,并相应地执行一些命令,以期能正常工作。
注:20080803,在2.6.26下,增加一个文件操作一下无线网卡的开关即可自动上网了,即先关再开,文件加在/etc/rc2.d下,S99rfkillreset,内容如下:
#!/bin/sh
echo "rfkill reset"
if [ -w /sys/bus/pci/drivers/iwl4965/0000\:0c\:00.0/rfkill/rfkill0/state ]
then
#自编内核用
echo 0 > /sys/bus/pci/drivers/iwl4965/0000\:0c\:00.0/rfkill/rfkill0/state
echo 1 > /sys/bus/pci/drivers/iwl4965/0000\:0c\:00.0/rfkill/rfkill0/state
elif [ -w /sys/bus/pci/drivers/iwl4965/0000\:0c\:00.0/rfkill\:rfkill0/state ]
then
#官方内核用
echo 0 > /sys/bus/pci/drivers/iwl4965/0000\:0c\:00.0/rfkill\:rfkill0/state
echo 1 > /sys/bus/pci/drivers/iwl4965/0000\:0c\:00.0/rfkill\:rfkill0/state
fi
加上可执行属性,现在应该可以开机即自动连上无线网了!
温度监视
笔记本嘛,总是希望它温度别太高了。安装sensors-applet就可以在工具栏中监视CPU温度了。但是怎么看都是27度,明显不对头。原来这个温度可能真是CPU温度,只是不是核心的温度。这还要加载一个模块coretemp,然后再在sensors-applet的传感器中设置就可以看到真正的CPU核心温度了。不过看不看似乎也无所谓了,总不能温度高就不用吧。
挂起及休眠
要挂起时,总是说挂起失败,要去看什么quirk网站。但是直接用sudo pm-suspend却没什么问题!其实是权限问题,把用户加入powerdev组就可以了。
指纹识别
系统中已经有相应的软件包了,只要安装aes2501-wy即可。这是一个命令行工具,可以当前目录下生成一个扫描图像,同时安装有imagemagick的话,生成图像后会自动显示出来。不过要正常工作,在S6410中要加上-r参数,如:aes2501 -r。只是还没有找到进一步的应用。
rmvb播放问题
MPlayer播放rmvb时只有声音没有图像,提示出错,安装w32codecs之后OK了,使用了这个源deb http://www.debian-multimedia.org sid main |
|