« 为什么升级到GPL第3版 | 主 页 | 笔记本WiFi上网半自动解决方案 »

在Dell 640m上安装Debian sid (unstable)


07/01/07。  cathayan.org版权所有,保留一切权利。转载请保留此说明。谢绝商业转载。

说明】本文写得很长,但绝不是因为Debian装起来麻烦,实际上认真看完全文就会发现只有无线网部分是有编译和自己手工设置的,其他的无非是些出于个人喜好的微调和出于记录目的的长篇大论,另一个原因是我用五笔。

再另一个原因是希望给想在笔记本上装Debian/Linux的人们一个概观,在我安装之前Google的时候,文章基本上全是西文的。

基本上从快中午装到晚上10点多,差不多算是12个小时。Dell 640m在这段时间内一直是高速运转,大量下载,读写硬盘,到现在也没有出任何问题,温度也完全没有问题,手放在上面打字基本没有感觉。

今天在Bios里改光盘启动时看到硬盘还有性能模式和安静模式,于是换成了性能模式,读写时就能听到声音了;风扇现在一直在转,晚上静下来之后能听到声音。

安装盘



网上Google时排名靠前的一篇教程文章里说,在640m上装Debian遇到了不能识别硬盘和DVD光驱的问题,但这次我用Debian 4.0r0的安装盘来装,完全没有任何问题,从分区到安装后启动都能正常识别。那位大侠用的是Testing的安装盘,看来还是正式发行版测试更完善一些。

我用的是100来兆的net install光盘(现在Debian官方提供BT下载,随时都有接近200人在线提供),可以装出基本系统,但似乎连wireless-tools都装了。装到最后会问网络,但当时网还没通,也就中止了。

Vista据说启动方面有些特殊,但装Linux的启动管理器倒没什么问题。Grub还是选择装在了MBR,并且自动识别出了硬盘上已经装了Vista。Dell搞的Media-direct也被识别出来了,居然说是WinXP-embedded。


以太网



这个640m自带的网卡是BCM4401-B0 100Base-TX,似乎没有自动识别,modprobe b44之后正常工作,b44就是它的模块了,完了后可以在/etc/modules文件里写上b44,重启后能自动加载。


升级到sid



安装用的正式的stable版,装完后就设了apt源,就aptitude update/aptitude upgrade升了级,要删一两个老的包,装了全新的。Linux-image的虚拟包不知道什么问题,装不上最新的2.6.21的内核,只好手工直接装这个Linux-image-2.6.21的包,也没有什么问题。

那个教程说可以在内核启动时给个vga=791的参数,免得启动后在控制台上把1440x900的屏幕当成字符终端,但是791也不过是1024x768,字倒是小了,效果还不如大的粗字好看,最后又去掉了这个设置。


时间设置



安装时要求设定时区,似乎是因为语言上选了美国英语,到时间那一步居然只让选美国的时区,感觉像是犯了逻辑错误,没办法,只好选了一个,先放在那里。

装完基本系统重启,就发现时间同北京时间差了15小时,想用tzconfig来改,才发现Debian sid里面已经没有这个小工具了,以前用这个工具省了事,不知道要改什么,只好再去Google,终于找到办法:

在/etc/timezone里面写上中国的时区,Asia/Shanghai,在/etc/default/rcS里面把UTC设成yes,也就是用utc,这是Debian推荐做法。最后也是最重要的,把/etc/localtime删除,再从/usr/share/zoneinfo/Asia里面拷贝Shanghai这个文件到/etc下,名字还是localtime。这样做完,不需重启,过会就自己生效了。

这样的设置,如果网络不通,没有ntp服务可用的话,它只能用bios里的时间(通常是当地时间)来做为基础,由于我国时间是+8,所以这样就会出现显示时间快了8小时的问题,所以还是要用ntp获取真正的UTC时间才是对的。推荐安装ntpdate这个工具,它会自动在启动时运行,如果网络没通而没有在启动时获取到正确的时间,则需要在网络设通之后运行它来校正时间:

ntpdate pool.ntp.org

这个pool是ntp.org提供的,似乎是一堆时间服务器的别名。

还有一个etherconf的小工具,现在也不见了,逼得我学会了ifconfig和route的基本用法。另有一个rcconf幸好还在,它可以修改启动的服务。


Xorg和Xfce4



通常装完基本系统,我的习惯就是装xfce4,顺便就把Xorg的那一套就给装了。今天有点不巧的是,有个xfdesktop4出了问题,小版本号升了2就装不上,再去packages.debian.org上面下载了小号的那个手工先装上,才算是顺利装上了xfce4,然后再装上了gdm来管理启动。

装xserver-xorg时会进行X的设定。显卡它自己就探测出来了,intel gma950,显示模式里直接就列着1440x900这一档,其他还有1600/1152等众多邪门分辨率,这个根本就不再是问题了。不过现在有点记不清这个分辨率是X的设置还是915resolution的设置了,因为这几个包是一块装的。

915resolution是专门的Intel显卡的分辨率设置程序,还是个服务,装完后再没有做任何设置,它就自己有了自启动。GMA950的显示驱动是i810,倒不是915。

在xorg.conf的设置里,还需要看一下有没有1440x900这个分辨率,如果没有,就手工加到分辨率的最前面,反正液晶屏只有一个最佳分辨率。再设1024的分辨率大体只会在接投影仪时用得到。

xorg.conf基本是系统自己设置生成的,HorizSync和VertRefresh这两个常见的出错数据也根本没有,反正也没有出错。那人教程中说这两个参数分别是30-80,和60-70,也没用上,先记在这里吧。


启动X



经过上面那点设置,X就正常地启动了,分辨率已经是1440x900,USB的鼠标和触摸板自动驱动了,声卡也自动了,所以现在也不知道这个声卡具体是什么型号。触摸板右边和下边分别是竖起和水平滚动条,也完全没有问题,也不需要任何设置。

在这里,又装了Gnome-core,本来想装gnome算了,可一看居然要1.4GB的空间,就只装了core,也要400MB。KDE系的没再单装。


Locale设置



现在Debian似乎倾向于装一个叫Locales-all的包,取代了locales,这个all的包包括了所有Locale的已经编译好的数据,据说可以节省安排时间,但它似乎没有了直接的配置工具,必须在/etc/locale-gen里写。很不方便,这回Debian自己装的是locales,我就没有再换,这个可以用dpkg-reconfigure locales来设定。这回选了en_US.UTF-8作为系统设置。


中文输入



中文输入有一阵子快要没有问题了,现在似乎又有了许多问题,似乎就是因为勤勉的程序员又发明了许多工具导致的。这回装fcitx,它非要装im-switch,那就装吧。然后用它来设定:im-switch -s fcitx,倒是在xinit以及Xsession.d下面生成了几个文件,可惜根本不管用,不但XMODIFIER变量没有设定,CTYPE也没管,总之是重启了下X,Fcitx根本没影。几番试验不能成功,只好卸了它,还是用我一直以来的设置,就是在/etc/X11/Xsession.d下面建个启动脚本,内容如下:

export LC_CTYPE=zh_CN.UTF-8

export XMODIFIERS="@im=fcitx"
export XIM=fcitx
export XIM_PROGRAM=fcitx
export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim

fcitx

系统还是en_US。这个设定我用了有一阵子了,从来没有任何问题,像双输入,Firefox不能输入,Qterm不能输入,等等,从来没有见过。

中文字体主要还是xfonts-wqy,ttf-arphic的一系列,以及从ntfs分区上拷贝来的一些。同一机器上的Vista,反正不会和Linux同时使用,这种情况下Linux借用一下它的字体,应该算是合理的吧。


无线网(WiFi/WLan)



以前只用过XP那种无线连接方式,就是浏览一下可用网络,点连接,输入密码,然后就接通。Linux下无线网还是挺麻烦的,尤其是相比其他硬件来说,基本上是这个笔记本里面配置最复杂的硬件了。

但和网上有关Linux下安装ipw3945无线网卡的文章相比,Debian sid已经进步了很多,ieee80211的模块自己就能装,ipw3945d也有,还有firmware-ipw3945,这三个用aptitude就能装(也许在non-free组里吧);还有wireless-tools,这个在装基本系统时就自动装上了。

还有一个最重要的模块,也就是ipw3945-module,本来看apt里面也有,但装的时候总是报告依赖于linux-modules-2.6.21这个虚拟包,但现在又没得装,于是就装不上。没办法,只好这样:

aptitude install ipw3945-source
m-a a-i ipw3945

也就是装ipw3945的源码包,然后用Debian的模块工具module-assistant来帮助自动化编译安装这个模块,其中要装linux-headers/g++等众多包,都是自动的,最后没有错误。

到这里,似乎是需要的包已经都全了。modprobe ipw3945之后用iwconfig应该能看到

eth2 unassociated ESSID: off/any

这样的一串东西,这里就是无线网卡了,eth2是它的名字。

下面还是要用iwconfig来设置这个无线网卡的参数。

iwconfig eth2 key [1] s: asdfksdflksdfjdsfj
这是说eth2要用到WEP的认证,钥匙是1号,密码是“asdf....”这一串,这里又要用括号,又要用s:打头;如果是16进制密码,可以不加s:。

iwconfig eth2 essid adsdkf
这是设定eth2要连接的无线网的essid是“adsdkf”

iwconfig eth2 mode managed
设定模式,什么意思,还没搞懂

dhclient eth2
这里就是上dhcp,获取地址。如果没有用dhcp,就需要用ifconfig/route那一套来设定网络,再ifon来启动这个设备。

然后无线网就通了。此时可以看到wifi信号灯也常亮了;在没有配通之前,按fn+f2也会打开无线,但只是一闪一闪地亮。

除去iwconfig很有用之外,还有个iwlist,如下

iwlist eth2 scan
这个是扫描eth2能接收到的无线信号,可以看到essid,模式,频道和支持的速率等。

按说iwconfig设定的那些东西应该都能用interfaces文件来设定,但暂时还没找到怎么写,尤其是那个key怎么写。


dpi问题



dell 640m的屏幕是1440x900,14寸,字会显得比较小,这一点除了在桌面上把窗口显示的字体调大点,在Firefox里面把最小字体设大一点之外,改变dpi是另一个方法。实际上在Vista系统中,Intel的显卡设置界面就直接有这一项,可以把一般的96dpi提高到120dpi,这样字会变得略大一些。

要达成这一点,需要了解自己屏幕的物理尺寸,基本上可以用1440*24.5/dpi来计算宽,用900*24.5/96来算高,但这样实际上还是名义的,直接拿尺子量才是比较准的。如果生产商负责任,说明书里会写上这个尺寸──Dell还不错。如果没有,可以用xdpyinfo |grep dimension来看,或者是xrandr --query,后面这个可能是比较准确的,前面那个是名义的。

知道了这个尺寸,比如Dell 640m的屏幕尺寸是304mm x 190mm,在xorg.conf的Monitor段中加上

DisplaySize 304 190

即可让X以比较标准的真实的尺寸来显示。按640m的实际情况,写上这个之后,实际的DPI是120,比常规的96dpi显示字要大一些了。


CPU频率



迅驰Centrino的CPU可以调节运行频率,在Linux下面也有一些程序来处理这件事。这个不懂,就按教程来做,加载了一堆模块:

acpi-cpufreq
speedstep_centrino
cpufreq_ondemand
cpufreq_userspace
cpufreq_conservative
cpufreq_powersave

然后再装了一个调用这些模块并根据实际情况来设定CPU运行频率的Daemon程序,我装的是cpufreqd,它的配置文件看上去就不错,也懒得改了。不过现在一直是接电工作(有个叫ac的模块也会自动加载运行,专门来指示是否接了外接电源),也没有看到它有什么用。

电池也没有试过能用多长时间,都等以后再说了。


挂载Windows分区



现在Linux支持ntfs,模块是ntfs-3g,在mount中写参数时也要带上这个3g。在/etc/fstab中这样写的:

/dev/sda3 /media/c ntfs-3g defaults 0 0

在defaults那一段,以前都要加许多参数,才能正常地显示Win分区上的中文文件,这回加了参数却不行,只保留一个defaults,却竟然一切完好。

如果不清楚硬盘上Windows分区是哪个号,可以用

fdisk -l /dev/sda

来显示分区情况。


基本就是这样了。Dell 640m装Debian sid还算是比较容易,硬件基本上全部支持。其他没碰到的就要在今后的使用中再修补了。


http://krammer.info/it/debiandell-inspiron-640m/
网上排名靠前,讲得比较全面的640m装debian的文章。

http://contrib.lynuxsolutions.com/doku.php?id=documentation:ipw3945_on_debian
http://www.wirelessdefence.org/Contents/LinuxWirelessCommands.htm
http://madwifi.org/users-guide/node11.html
这三个都是和无线网ipw3945相关的,包括装驱动以及iwconfig用法等。


07/01/07 00:36:27,由cathayan发表。目录:电脑

17条评论

kempson:

舍近而求远?
Why Debian?装出一个好系统好麻烦啊。
于 07/01/07 01:31:47 发表  

cathayan:

这是习惯问题了
于 07/01/07 08:57:45 发表  http://blog.cathayan.org/member/1

cathayan:

刚试了一下拨掉电源,屏幕亮度一下子降到1/3,这可能是Bios的功劳;电池显示了时间,号称4小时50分,应该不大可能吧:P,CPU降到了1.6GHz来用,很不错。
于 07/01/07 10:18:17 发表  http://blog.cathayan.org/member/1

pnt:

man interfaces
于 07/01/07 10:47:58 发表  

windrose:

看起来比我当初在dell 700m装slackware要麻烦很多呀
于 07/01/07 14:55:09 发表  http://windrose.linuxsir.org

batfree:

笔记本上可以试一试tickless内核,也就是无滴答内核,据说可以省电不少,降低cpu的活动率。
于 07/01/07 15:05:21 发表  http://batfree.blogspot.com

doublebacks:

为啥这么执著用Debian?我在640m上装ubuntu 7.04,装好,不做任何设置,无线、触摸板都能用了,也能自动连接,比重装XP的时候方便多了。
于 07/02/07 09:05:16 发表  

cathayan:

就是喜欢Debian啊,没办法。实际上,除了无线之外,别的也是全自动啊,不要看我写得多,就觉得有多麻烦。

而无线之所以没有做成全自动,无非是因为许可原因,Debian在这方面的坚持是我喜欢它的原因之一。
于 07/02/07 09:19:03 发表  http://blog.cathayan.org/member/1

biantaishabi:

哈哈, 果然是执着的debian饭啊!
我也要换个dell, 不过是620, 以前的T43留给妈妈用了。
* Intel Core Duo T2400 1.83GHz
* 1GB 533MHz DDR2 RAM (2 x 512MB config)
* 80GB 5400RPM HD
* 14.1-inch WXGA screen
不过还是xp,至今还没有用过vista……
于 07/02/07 10:47:00 发表  http://www.biantaishabi.com/blog

biantaishabi:

我在用了实验室的x31两年之后, 现在都比较偏爱那种小小的屏幕了, 真是有辱我们去健身房人的气质啊。
于 07/02/07 11:00:23 发表  http://www.biantaishabi.com/blog

cathayan:

D620在它网站上买太贵了,在代理商那里买不太放心,有一个比你这个差很多的配置也要快8000.反正我移动需求不大。

我的640m的配置是:
Core duo t2450 2GHz
1GB 533MHz DDR2 (2 x 512MB)
120GB 5400 hd
14inch WXGA+ (1440x900)

重量也就是2.6kg的样子,主体部分也不厚,就是屏幕太厚,侧面看快有10mm了。
于 07/02/07 11:04:50 发表  http://blog.cathayan.org/member/1

cathayan:

前几天还玩了别人的X60,是漂亮小巧,不过确实太小了,大个子拿上比较寒 :p 并且也很贵~~

你怎么不等你公司配啊
于 07/02/07 11:08:16 发表  http://blog.cathayan.org/member/1

biantaishabi:

620就是公司配的
我现在在这里学个开车
都穷得没有钱买飞机票了
下个礼拜只好坐船回来
于 07/02/07 11:15:31 发表  http://www.biantaishabi.com/blog

undersound:

BTSB
你怕不是坐的豪华邮轮吧~~~
于 07/02/07 22:20:50 发表  http://www.frankdai.org

btsb:

哈哈, 根据上下文判断, 肯定是那种价格只有机票价格六分之一的大通铺的船票啊
于 07/02/07 23:12:31 发表  

cathayan:

原来Debian也有ipw-modules的包,虽然是contrib的,但也应该不再需要装souce和m-a来编译了,编译应该对编译内核的大侠们比较有用。不过这两天的官方ipw3945-modules有问题,装完根本没有ko,刚才升级后就不能用无线了。

记录一下。
于 07/03/07 19:58:41 发表  http://blog.cathayan.org/member/1

easygoal:

如果D620 用的是Dell 1390 Wireless Mini PCI card,就像我的那个一样,千万不要装bcm43xx驱动,没用的。
要用ndiswrapper 和windows 的驱动,其实就bcmwl5.inf一个文件。
在这一点上吃了open suse10.2 的大亏,官方网站上说原生的bcm43xx就能用的,可是死活就是不认,用了ndiswrapper 一下就好了。
于 07/09/07 21:41:10 发表  http://easygoal@gmail.com

这篇文章已经关闭,不能添加评论和投票
I am watching and will delete all spam.