页面

2008年3月30日

用 Tvtime 在 Linux 上看电视

由于最近有幸从朋友处拿了块 Gforce 8600GT 来爽一下,然后马上将 ATI 的 8.03 驱动删了,装上 nvidia 的 169.12-1 驱动,发现原来世界是如此美妙的,可恨的 ATI 驱动啊,跑题了。
其实 Linux 上的电视软件不多,记忆中也就 Mythtv,kdetv,Tvtime 这三个,虽然 Mplayer 也能胜任,但那堆命令我看一眼就头疼了。Mythtv 就不说了,要安装一堆东西,不过如果你要设置一台 MCE,可以考虑。kdetv 没尝试过,不过传说设置比 tvtime 要简单些?等下次再试试,这次先说说如何用 Tvtime 看电视。

一些截图

我的硬件环境:
  • Arch + GNOME 2.20 + ndivia 169.12-1 + tvtime 1.0.1-2
  • 丽台的 Winfast TV 2000 XP 电视卡,买了有五六年了。
首先你要有一张电视卡,并且能正确的识别到,可以用下面的命令查看是否已经正确识别到
# lspci
上面的命令会返回一大堆的信息,查看有没有你的电视卡,下面是我的返回结果
01:08.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)
Subsystem: LeadTek Research Inc. WinFast TV 2000
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 16 (4000ns min, 10000ns max)
Interrupt: pin A routed to IRQ 10
Region 0: Memory at fddff000 (32-bit, prefetchable) [size=4K]
Capabilities: [44] Vital Product Data <?>
Capabilities: [4c] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
蓝字部分表示已经正确识别到我的电视卡了。然后执行下列命令
# xvinfo |grep YUY2
如果有以下的返回结果,表示你已经具备了所需的硬件要求,接下来可以安装 Tvtime 了。(ATI / AMD 显卡用户请看文章最后的“问题集”)
[suxixb@Su ~]$ xvinfo |grep YUY2
id: 0x32595559 (YUY2)
安装 Tvtime
Debian/Ubuntu 用户
# apt-get install tvtime
Archlinux 用户
# pacman -S tvtime
运行 Tvtime 后,会出现 Tvtime 的设置界面,如下所示,如果没有出现设置菜单,按键盘的 TAB 键。

设置电视制式为 PAL
Input configuration → Television standard → PAL,然后退出 Tvtime(按 ESC 退出)

再次运行 Tvtime,选择 Input configuration → change video source → Television(可用右方向键选择),然后把 Change default audio standard()这项括号里的内容改为 PAL-DK,回到主菜单,选择 Channel management → Change frequency table → china broadcast ,在回到上一级菜单,选择 Scan channels for signal 来搜索电视台。

现在可以用上下方向键来选台,左右方向箭来调节声音,怎么样,不错吧。

问题集
Q:使用 ATI 闭源驱动后,不能启动 Tvtime ,提示缺少 YUY2 输出。
A:好像是 ATI 驱动的问题,暂时没有解决方法,但传闻说安装个 xgl-server 就可以了,不知道是否正确,或者可以试试 ATI 的开源驱动。(现在的 Ati 驱动已经解决该问题了)

Q:运行 Tvtime 后,只有图像,没有声音。
A:大多数情况下 ALSA 的线路输入是静音的,只要把影音取消后,调节到合适的音量便可。

2008年3月29日

在 Arch 上安装并优化 GNOME

其实 Arch 官方建议安装的桌面环境有 GNOME 和 Xfce,而且这也符合 Arch 的 kiss 原则。要搭建 GNOME 环境,过程稍微比 Kdemod 简单,下面我介绍如何在 Arch 上安装并优化 GNOME,这里假设你已经安装好了 Arch 的基本系统和配置好了 Xorg ,显卡驱动等,并能连接上网,和使用 root 账户登录。关于如何安装 Arch 可以参考我的这篇文章《通过 FTP 方式安装 Arch (硬盘安装)》。

安装 GNOME
# pacman -S gdm gnome gnome-terminal gedit nautilus-open-terminal file-roller gconf-editor
安装一些免费的字体
# pacman -S ttf-dejavu ttf-ms-fonts ttf-arphic-uming ttf-arphic-ukai
让 Arch 启动后直接进入 GNOME
# vi /etc/inittab
注释掉下列这一行(前面加#号)
x:5:respawn:/usr/bin/xdm -nodaemon
然后把下列这行前的“#”号去掉(也就是使用刚才装的 gdm 登录管理器)
x:5:respawn:/usr/sbin/gdm -nodaemon
保存文件,然后编辑
# vi /etc/rc.conf
找到下面这行(可能不完全相同)
DAEMONS=(syslog-ng network netfs crond)
替换为(也就是在后面添加一个 gdm)
DAEMONS=(syslog-ng network netfs crond gdm)
如果你是使用 LCD 的,可以执行
# pacman -S cairo-lcd libxft-lcd
其中会要求删除cairo 和 libxft 这两个包的,回答 yes 即可。好了,是时候登录到 GNOME 了,先新建一个普通用户(suxixb 是我的用户名,你需要改为你自己的,下同)
# adduser suxixb(推荐用此命令)
useradd -m -s /bin/bash suxixb(不推荐,如果使用这种方式别忘了设密码)
然后我们可以启动到 GNOME 下了,输入
# /sbin/telinit 5
这样会启动 gdm ,用刚才新建的用户名和密码登录。如果想回来字符界面可以用下面的命令。
# /sbin/telinit 3

中文化
这里有几种方法,一种是修改 /etc/rc.conf 为中文 locale,不过会使字符界面下也使用中文 locale,但又缺少相关的中文字体,所以会让字符界面显示一个个的小方块。所以我使用第二种方法:保持 /etc/rc.conf 为英文 locale,编辑主目录下(/home/suxixb)的 .profile 文件,如果不存在就新建一个,添加 export LANG="zh_CN.UTF-8" 这段内容。

注销一次,好了,界面已经是中文了,接着安装一个中文输入法,你可以选择装 scim 或者 fcitx,前者的安装方法可以参考我的这篇文章《Arch 上安装 kdemod 3.5.9》,这里我选择安装后者。
pacman -S fcitx
然后编辑主目录下的 .profile 这个文件,输入下列内容
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim
fcitx &
注销一次,现在 fcitx 已经自动启动了,接着我们可以优化一下 fcitx,例如自动隐藏工具条等,其配置文件是 /home/suxixb/.fcitx/config,也可以参考我的这篇文章《隐藏 fcitx 输入法的状态栏

安装一些必备的软件
pacman -S pidgin firefox deluge mldonkey sancho-gtk gthumb quodlibet mplayer mplayer-plugin codecs gstreamer0.10-plugins
  • pidgin 主要是用来上 MSN 和 Gtalk 的,当然,你也可以用来上 QQ
  • firefox 就不说,如果要使用最新的 3.0 需要到 AUR 上下载编译(现在已经是最新的3.0了)
  • deluge 是一个 BT 客户端,支持选择文件下载
  • mldonkey 和 sancho-gtk 是用来电驴下载的,配置稍微复杂,当然,你也可以替换为 amule
  • gthumb 是一个看图软件,和 Win 下的 ACDSee 接近
  • quodlibet 是一个音频播放软件,并且可以方便的管理硬盘上的音频文件,这个和 Amarok 是我最喜欢的播放软件了,但 Amarok 是 KDE 的
  • mplayer 也不多说了,即使你不用他看视频也应该装上
  • mplayer-plugin 是用来播放网页上的流媒体的
  • codecs 以及 gstreamer 包括了几乎用到的解码器,看电影必备

打开 GNOME 的 Composite
如果你喜欢一些特效,例如窗口、菜单阴影等,又不想开启 compiz ,那你可以试试打开 GNOME 的 Composite 功能,你的 GNOME 版本必须是 2.22 以上。下面先看看效果图

首先打开 gconf-editor(配置编辑器),你可以用终端打开,也可以到 “应用程序” — “系统工具” 中找到。然后定位到 /apps/metacity/general/ 下,将 compositing_manager 设为 True 即可,设置会马上生效。

问题集
Q:GNOME 关机时,显示的是 “Unknow” 用户名。
A:这主要是新建用户时,没有写全名,只写了简称。解决办法是用 root 用户执行
chfn suxixb
然后在 “全名” 处填上你喜欢的名称,问题解决。

(本文未完)

2008年3月22日

让 MLDonkey 导入 amule/emule 的临时文件

问题的由来是在使用 MLDonkey 进行电驴下载时,即使已经把 MLDonkey 的 Temp 目录指向 amule/emule 的 Temp 目录,发现 MLDonkey 仍然无法继续 amule/emule 的下载。Google 一下,发现原来是 MLDonkey 使用一种不同于 amule/emule 的方法来存储临时文件,其实 MLDonkey 也能很方便的导入 amule/emule 的临时文件到自己的列表中。最简单的方法就是使用 web 登录 MLDonkey ,执行一条命令既能解决问题。方法如下
首先确保你已经打开了 MLDonkey ,然后打开你的浏览器,如 Firefox,在地址栏输入 http://127.0.0.1:4080,出现下面的页面

然后在右上角输入
import_temp /media/sda7/eMule/Temp
这样就能把 /media/sda7/eMule/Temp 目录下的临时文件导入到 MLDonkey 了。

另外一种方法是使用 telnet 登录 MLDonkey
在终端执行 (MLDonkey 的默认 telnet 端口是 4000)
telnet 127.0.0.1 4000
当出现下列提示时
[suxixb@Su ~]$ telnet 127.0.0.1 4000
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Welcome to MLDonkey 2.9.4
Welcome on mldonkey command-line

Use ? for help

MLdonkey command-line:
>
输入
import_temp /media/sda7/eMule/Temp
这样就能把 /media/sda7/eMule/Temp 目录下的临时文件导入到 MLDonkey 了。输入
quit
退出 telnet 登录

下面是一些 MLDonkey 比较常用的 telnet 命令
  • vd ==> 查看当前正在下载的文件
  • vm ==> 查看当前已链接到哪些服务器
  • c ==> 链接更多的服务器
  • s 关键字 ==> 搜索含有“关键字”的内容

2008年3月19日

Arch 上安装 kdemod 3.5.9

由于 Arch 安装安装完成后只有一个基本的字符界面,对于我们这些桌面用户来说是不太适合的,还好,Arch 有很好的可定制性,我们能很方便的安装自己喜欢的桌面环境,以下是我在 Arch 上安装 kdemod 的一些经验总结。

第一次更新追加:由于现在手头上没有ATI卡,所以安装驱动部分没有更新,不过参照官方wiki还是很容易的。

下面是最终效果图

注意:下文所说到的命令,如无特殊说明均表示在 root 状态下执行,或使用 sudo 命令,可以参考这篇文章《 href="http://www.shareitem.org/2008/03/16/ftp-install-arch/">通过 FTP 方式安装 Arch(硬盘安装)》,并且用 pacman -Syu 命令确保系统已经更新到最新状态。

安装 xorg
在终端执行下列命令
pacman -S xorg-server xf86-input-keyboard xf86-input-mouse xorg-xinit hwd
xorg 只安装上面提到的就可以了,如果嫌打字麻烦,可以用 xorg 代替上面的命令,然后根据提示选择。另外 hwd 是个由 Arch Linux 社区的成员所写的程序,这个程序的主要功能是检查你的系统内的硬体规格,并可以自动生成 xorg.conf,比较适合用于 ATI 的显卡(个人感觉,如果你是使用 nvidia 或者 intel 的,可以不用安装 hwd,直接用 X -configure 命令生成 xorg.conf 文件)。等待安装完成后,执行
hwd -xa
当询问是否生成 xorg.conf 时,回答 y

这时我们可以测试看能不能启动到 X ,输入下列命令
startx
如无意外,我们可以看到 X 已经启动了,并且可以使用鼠标,按 Ctrl+Alt+Backspace 退回字符界面。

安装显卡驱动
由于我的显卡是公版 Ati Radeon X1600 Series,安装驱动程序还是挺方便的,而且源里已经有 catalyst,我们只需执行
pacman -S catalyst
等待安装完成,我们已经成功安装上最新的 catalyst 8.03了,比 ubuntu 还要简单。当然,我们还要简单的配置一下 xorg.conf 文件,执行下列命令
aticonfig --initial -f
然后执行
vi /etc/X11/xorg.conf
找到 Section "ServerLayout" 字段,在下面添加
Option "AIGLX" "on"
找到 Section "Files" 字段,在下面添加
FontPath "/usr/share/fonts/TTF"
并把下列内容注释掉
FontPath "/usr/share/fonts/Type1"
找到 Section "Module" 字段,注释掉下列内容
Load "type1"
找到 Section "Device" 字段,修改为下列内容
Section "Device"
Identifier "aticonfig-Device[0]"
Driver "fglrx"
Option "XAANoOffscreenPixmaps" "on"
Option "TexturedVideo" "on"
Option "VideoOverlay" "off"
Option "OpenGLOverlay" "off"
Option "Textured2D" "on"
Option "TexturedXrender" "on"
Option "BackingStore" "on"
EndSection
找到 Section "Extensions" 字段(如果不存在就在文件最下面添加),修改为下列内容
Section "Extensions"
Option "RENDER" "Enable"
Option "DAMAGE" "Enable"
Option "Composite" "Enable"
Option "XVideo" "Enable"
EndSection
按 esc 退出编辑模式,输入 :wq 保存文件。

继续编辑 /etc/rc.conf
vi /etc/rc.conf
找到 MODULES 字段,在其后面添加上 fglrx ,即如下所示(以下是我的 rc.conf,你的可能并不同于我的)
MODULES=(forcedeth slhc snd-mixer-oss snd-pcm-oss snd-hwdep snd-page-alloc snd-pcm snd-timer snd snd-hda-intel snd-bt87x soundcore fglrx)
重启电脑后,执行 fglrxinfo,如果返回结果为
[suxixb@Su ~]$ fglrxinfo
display: :0.0 screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: Radeon X1600 Series
OpenGL version string: 2.1.7412 Release
说明驱动已经安装成功了

设置声卡
由于内核已经自带有 alsa 声卡驱动了,我们只需安装必要的软件就能使系统发声了,执行下列命令
pacman -S alsa-utils alsa-oss
alsa-oss 包是为了解决声卡独占的问题,等待安装完成后,执行下列命令配置声卡,过程是自动的,我们只需选择默认的声卡
alsaconf
等待配置完成后,由于 alsa 默认状态下是静音的,我们需要设置其音量,执行下列命令
alsamixer
把 PCM 的音量调到不要超过 70 ,据说超过 70 后声音会失真,然后执行下列命令保存音量设置
alsactl store
继续编辑 /etc/rc.conf
vi /etc/rc.conf
找到 DAEMONS 字段,在其后面加上 alsa ,如下所示
DAEMONS=(syslog-ng alsa network netfs crond @adsl)
保存文件

安装 kdemod
kdemod 是一个专为 Arch 设计并优化的 KDE 桌面环境,不过官网 href="http://kdemod.ath.cx">kdemod.ath.cx 不能访问,我们选择另一个镜像 href="http://kdemod.podzone.net">kdemod.podzone.net要安装 kdemod ,我们需要先添加源,执行
vi /etc/pacman.conf
在最下面添加以下内容
[kdemod]
Server = http://kdemod.podzone.net/repo/current/i686
更新一下
pacman -Sy
安装 kdemod
pacman -S kdemod kdemod-kde-i18n-zh_cn
注意:如果在安装时提示某些文件已存在,可以使用 pacman -Sf kdemod 命令来安装

上面的命令是安装一个基本的 kdemod,里面只包含少量的软件,这样可以减少下载文件的体积,比如日后我需要一个 BT 下载软件,我只需执行 pacman -S
ktorrent 就装上了。如果你对你的网络带宽非常有信心,你可以一次过安装完整的 kdemod,但这样会安装行那些什么游戏,寓教于乐的东西。
pacman -S kdemid-complete kdemod-kde-i18n-zh_cn
执行哪条就看各位喜欢了,我广东电信 2M ADSL 安装前者用了大约 40 分钟,速度有 60k/s,还算可以。

等待安装完成后,我们还要设置以便让系统每次开机都启动到 X,首先编辑下列文件
vi /etc/inittab
将下列内容
# Example lines for starting a login manager
x:5:respawn:/usr/bin/xdm -nodaemon
#x:5:respawn:/usr/sbin/gdm -nodaemon
#x:5:respawn:/opt/kde/bin/kdm -nodaemon
#x:5:respawn:/usr/bin/slim >& /dev/null
替换为
# Example lines for starting a login manager
#x:5:respawn:/usr/bin/xdm -nodaemon
#x:5:respawn:/usr/sbin/gdm -nodaemon
x:5:respawn:/opt/kde/bin/kdm -nodaemon
#x:5:respawn:/usr/bin/slim >& /dev/null
也就是使用 kdm 登录管理器,然后编辑
vi /etc/rc.conf
找到 DAEMONS 字段,在其后面加上 kdm ,如下所示
DAEMONS=(syslog-ng alsa network netfs crond kdm @adsl)
你可能还需要添加一个普通用户,因为 kdemod 默认是不允许 root 账户登录的,你可以使用下列命令添加一个新用户(注意,suxixb
是我的用户名,你需要改为你自己的,下同)
useradd -mG users,video,audio,wheel,dbus,network,optical,storage,power -s /bin/bash suxixb
修改密码
passwd suxixb
执行下列命令
ls -l / |grep tmp
如果返回的结果是
drwxr-xr-x 7 root root 384 2008-03-19 23:01 tmp
那么还需要执行
chmod -R 777 /tmp
好了,我们已经完成安装 kdemod 了,使用下列命令由字符界面切换到 X
/sbin/telinit 5
如无意外我们将看到 kdm 登录界面,输入账户密码,按 Enter 便能进入桌面了。但现在的桌面仍然不适合我们使用,即没有输入法,也没有中文字体。安装 yaourt
yaourt 可以很方便的从 AUR 上下载软件并自动编译安装,这样我们就不用登录到 AUR 网站上去搜索软件了,直接 yaourt 软件名称
就能装上。具体如何安装可以参考 toy 写的这篇《Archlinux 的灵魂──PKGBUILD、AUR 和 ABS (3)》,我这里就不再讲述了。

安装中文字体
从使用 ubuntu 时,我就非常喜欢使用苹果字体进行美化系统,当然转到 Arch 也不例外,这里参考了 xmoke 写的《苹果字体方案

首先安装开源的英文字体(貌似 DejaVu 字体集比 Bitstream 字体集大,而两者长得几乎一模一样,所以我这里就不安装 Bitstream 字体了)
pacman -S ttf-dejavu
下载苹果字体
可以到 这里(fs2you)或者 这里(mediafire)下载,内含3个字体:Lucida Grande,STHeiti,Lihei Pro。

解压下载回来的苹果字体,并打开终端进入到这些字体所在的目录,执行下列命令把字体复制到 /usr/share/fonts/TTF 下
cp *.ttf /usr/share/fonts/TTF
刷新字体缓存
fc-cache -fv
编辑字体配置文件
kate /etc/fonts/conf.d/51-local.conf
把下面的内容复制到 <fontconfig> 与 </fontconfig> 之间。
<!--衬线字体选择顺序-->
<alias>
<family>serif</family>
<prefer>
<family>Lucida Grande</family>
<family>STHeiti</family>
<family>LiHei Pro</family>
</prefer>
</alias>

<!--无衬线字体选择顺序-->
<alias>
<family>sans-serif</family>
<prefer>
<family>Lucida Grande</family>
<family>STHeiti</family>
<family>LiHei Pro</family>
</prefer>
</alias>

<!--打开Lucida Grande的微调(轻微)-->
<match target="font">
<test name="family" compare="contains">
<string>Lucida Grande</string>
</test>
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
<edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
<edit name="hintstyle" mode="assign" >
<const>hintslight</const>
</edit>
</match>

<!--关闭STHeiti和LiHei Pro的微调-->
<match target="font">
<test name="family" compare="contains">
<string>STHeiti</string>
<string>LiHei Pro</string>
</test>
<edit name="hinting" mode="assign">
<bool>false</bool>
</edit>
<edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
</match>

<!--等宽字体选择顺序-->
<alias>
<family>monospace</family>
<prefer>
<family>DejaVu Sans</family>
<family>Andale Mono</family>
<family>Courier New</family>
<family>Courier</family>
</prefer>
</alias>
保存文件,然后打开 KDE 控制中心(KDE Control Center)-> 区域与辅助功能(Regional & Accessibility)-> 国家/地区和语言(Country/Region & Language),把里面的 国家(Country)设置为“中国”,Languages 设置为“简体中文(Simplifiled Chinese)”,保存,注销并重新登录,现在 KDE 界面已经是中文了。

安装中文输入法
我这里选择 scim-python ,这是一个 SCIM 的 Python 包装,它允许开发人员通过 Python 语言来编写自己的输入法引擎,并且使用了搜狗公司公开的语料库里的词语和词频信息,详情可以查看《PinYinUserGuide》。如果你之前已经安装了 yaourt ,这里安装 scim-python 将非常简单,我们只需执行
yaourt scim-python
程序将会自动从 AUR 上下载 PKGBUILD 并自动编译安装,过程全自动的,你也就回答几个问题,当询问是否编辑 PKGBUILD 这个文件时,你大可选择否来节约时间,如果不放心,你也可以回答 y 然后选择一个编辑器来打开查看。

输入法我使用 scim-pinyin,之所以不用 scim-python ,是因为 scim-python 现在还不算成熟,我在使用中会遇到打开输入法时 cpu 占用100%问题。而且 scim-pinyin 也很稳定,执行下面命令安装。
pacman -S scim-pinyin
等待安装完成后,用编辑器打开 /etc/profile 文件
vi /etc/profile
在文件末端添加上以下内容
export XMODIFIERS=@im=SCIM
export GTK_MODULE=scim
export QT_MODULE=scim
export G_FILENAME_ENCODING=@utf8
export XIM_PROGRAM="scim -d"
export LC_CTYPE="zh_CN.utf8"
scim -d
注销并重新登录系统,这时我们可以使用 Ctrl + Space 启动输入法,如果启动不成功,那么继续下面的步骤

新建 ~/.bashrc 这个文件,然后用自己喜欢的编辑器打开
kate ~/.bashrc(不要使用 root 用户创建文件)
输入以下内容
export XIM="SCIM"
export XMODIFIERS=@im=SCIM
export GTK_IM_MODULE=scim
export QT_IM_MODULE=scim
export XIM_PROGRAM="scim -d"
export LANG=zh_CN.UTF-8
然后编辑 /etc/rc.conf
vi /etc/rc.conf
找到 LOCALE 字段,修改为(注意后面是UTF-8)
LOCALE="en_US.UTF-8"
保存文件,然后再注销一次系统并重新登录。这样设置后,在字符界面里是英文环境,而在 X 环境下便是中文环境了。找个能输入文字的地方,如打开一个终端,按 Ctrl + Space 启动输入法,现在便能正常使用输入法了。

安装 Compiz Fusion
如果已经按照上面所说的设置了 xorg.conf,那么离能启动 Compiz 已经很近了,首先安装完成的 Compiz Fusion
pacman -S compiz-fusion
该包已经包含了 compiz-core compiz-fusion-plugins-extra compizconfig-backend-kconfig emerald fusion-icon。等待安装完成后,在终端执行
fusion-icon
右击图标,在 “Select Windows Manager” 处选择 “Compiz”,这样就能打开 Compiz 特效了,关闭特效只要选择 “Kwin”。

自动挂载 USB 设备并挂载本地硬盘
可以参看我的这篇文章《Arch 上实现自动挂载 USB 设备和本地硬盘(KDE 篇)

2008年3月16日

通过 FTP 方式安装 Arch (硬盘安装)

从 Ubuntu 转到 Arch 已经有一段时间了,现在已经慢慢喜欢上这个发行版。其最吸引我的是可定制性和 AUR (ArchLinux User-Community Repository),具体的我就不说了。

一,下载 Arch 的 FTP 安装 CD(选择最新的那个下载就行了)
  1. 地址一
  2. 地址二
二,设置启动项
(由于从 2008.06 版开始,Arch 的安装 cd 使用 livecd 方式安装,而安装 cd 中并没有 vmlinuz 和 initrd.img 这两个文件,所以我们可以从 2008.03 版的安装 cd 中提取这两个文件。确保你的安装 iso 和这两个文件在同一分区中。)
如果您已经安装有 GRUB ,那么直接把下载回来的 iso 文件里 isolinux 目录下的 vmlinuz 和 initrd.img 解压到您的 GRUB 所在分区下,然后编辑 menu.lst 文件,在最后加上
title Install Arch Linux
root (hd0,0)
kernel /boot/arch/vmlinuz(这里要根据您的情况修改)
initrd /boot/arch/initrd.img(同上)
如果您有 WinXP ,可以下载一份 GRUB4DOS。GRUB4DOS 的安装很简单,然后将上面提到的的 vmlinuz和 initrd.img 文件,解压到您的 C 盘根目录下,然后修改 C 盘下的 boot.ini 文件(隐藏文件),在最后加上 C:\grldr=GRUB4DOS。然后编辑 GRUB4DOS 的 menu.lst 文件,在最下面加上上一步所说的内容,然后保存,重启电脑,选择 “GRUB4DOS”。

等待载入完成后,我们用 root 帐户登录,先不要急着 /arch/setup ,我们先设置一下。

三,设置网络
如果您是直接 ADSL 拨号上网的,输入
pppoe-setup
输入您的账户,密码,使用的 DNS 等信息,然后用
pppoe-start
启动链接,这时有可能会返回 TIME OUT 等信息,先别急,用
ifconfig
查看您的链接状态,如果有以下信息
[suxixb@Su ~]$ ifconfig
ppp0 Link encap:Point-to-Point Protocol
inet addr:59.42.110.64 P-t-P:58.63.40.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:8671 errors:0 dropped:0 overruns:0 frame:0
TX packets:11265 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:3074243 (2.9 Mb) TX bytes:7105624 (6.7 Mb)
则说明已经拨号成功了,你可以 ping www.shareitem.org 看看。(新版的安装cd已经解决了这个问题拉!)

四,挂载iso(可选)
如果你是使用 core cd 的方式安装,可以用下面的命令挂载iso来安装,如果是 ftp 方式安装的请跳过挂载这步。
如果不是用 ftp 方式安装的话,可以挂载 core iso 文件所在的分区,执行下面的命令
mkdir /mnt/arch
mount -t vfat /dev/sdc1 /mnt/arch
mount -t iso9660 -o loop /mnt/arch/安装光盘的名字.iso /mnt/arch/iso
ln -s /mnt/arch/iso/addons/core-pkgs /src/core/pkg
  1. 第一句的意思是新建一个挂载用的目录,位置在 /mnt 下,叫 arch 的目录。
  2. 第二句是把 /dev/sdc1 这个设备挂载到 刚才新建的目录下,而 /dev/sdc1 的文件系统的 vfat(即 fat32),如果是 ntfs 格式的,将 vfat 改为 ntfs 。
  3. 第三句是把 arch/安装光盘.iso 挂载到 /mnt/arch/iso 下。
  4. 第四句是把安装光盘下的安装包链接到 /src/core/pkg 下。
五,开始安装
好了,我们可以开始安装 Arch 了,输入 /arch/setup 启动安装程序,进入下面的界面

第一步的配置网络已经不需要了,跳过。
第二步是挂载硬盘分区,这里要根据您自己的情况来挂载,我这里是
  • / 挂载到 sda7 ,10G,ReiserFS
  • /boot 挂载到 sda5,100M,Ext2
  • /home 挂载到 sda8,10G,ReiserFS
  • swap 挂载到 sda6,512M
第三步是选择安装包,由于我们选择了 FTP 的安装方式,这里会要求您设置使用的源,选择一个快的源很重要的。
http://mirrors.lcuc.org.cn/archlinux(中国电信)
http://ftp.sjtu.edu.cn/pub/mirror2/www.archlinux.org/(教育网)
第四步,开始安装包,我这里广东 2M ADSL 下载的速度有 150kb/s,整个系统只用了10多分钟就下载完成了。

第五步,配置系统,这一步是必须的,程序会询问是否让 hwdetect 自动检测硬件,并生成相应配置,这里选择是。根据启动时的实际情况选择是否需要对RAID,LVM2,和encrypted volumes的支持,我这里通通选择否。然后选择一个喜欢的编辑器,我使用 vi,接着会出现一些配置文件,后面都有注释,看个人情况修改吧,下面列举几个必须修改的配置文件。

/etc/rc.conf
  • LOCALE —> 改为 en_US.UTF-8 (这样可以在字符界面用英文,不影响 X 的,注意是 en_US.UTF-8)
  • TIMEZONE —> 改为 Asia/Shanghai (时区)
  • HOSTNAME —> 主机名,改您自己的
  • eth0 —> 您的网卡接口地址,如果您是使用 ADSL 的,这里不用修改,如果使用 dhcp 获取地址的,这里改为 eth0="dhcp"
/etc/locale.gen

en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_CN.GBK GBK
前面的注释去掉

第六步,安装引导器,这里选择 GRUB ,无须设置什么,并安装到 /sda 下。

第七步,好了,已经安装好系统了,只要输入 reboot 就能重启进入 Arch ,在这之前,您可以先使用 clonezilla 备份以下系统,即使以后出错不能进系统也可以方便的恢复。

重新登录系统。由于新装的 Arch 只有 root 用户,我们先使用 root 账户登录,然后新建一个普通用户,命令如
useradd -m -s /bin/bash suxixb
(suxixb 是我的用户名,你需要改为你自己的,下同)
然后设置一个登录用的密码
passwd suxixb
然后将 suxixb 用户添加到下列的组中
  • hal
  • power
  • wheel
  • optical
  • storage
  • audio
方法是使用 “gpasswd -a 用户名 组名”,如 “gpasswd -a suxixb wheel”。

已知问题
(该问题已在最新的2008.06安装盘中解决了)Q:按照上述方法安装完 Arch 后,正常登录系统并已连接到互联网,执行 pacman -Sy ,提示无法下载 core.tar.gz 等文件。(多数发生在使用自定义源进行 FTP 安装的情况下)
A:这可能算是一个 bug 吧,解决方法是用编辑器打开 /etc/pacman.d/mirrorlist 文件,将最下面的源地址改为下列所示。其实就是没有自动添加 $repo 这个变量。

# Setup-Entry
Server = http://mirrors.lcuc.org.cn/archlinux/$repo/os/i686

2008年3月7日

在 7.10 上安装最新的 VirtualBox

VirtualBox 是一款 x86 虚拟机软件,并且 VirtualBox 是开源的,发布在GPL许可之下的自由软件。VirtualBox 可以在 Linux 和 Windows 主机中运行,并支持在其中安装 Windows (NT 4.0、2000、XP、Server 2003、Vista)、DOS/Windows 3.x、Linux (2.4 和 2.6)、OpenBSD 等系列的客户操作系统。

安装virtualbox
添加源
deb http://www.virtualbox.org/debian gutsy non-free
添加公钥
wget http://www.virtualbox.org/debian/innotek.asc -O-|sudo apt-key add -
sudo apt-get update
sudo apt-get install virtualbox
编译 VirtualBox 所用的内核模块
首先安装编译环境及获取与当前内核版本相一致的头文件
sudo apt-get install build-essential
sudo apt-get install linux-headers-$(uname -r)
编译 VirtualBox 内核模块:
sudo /etc/init.d/vboxdrv setup
将自己的账户加入到vboxusers用户组中
sudo adduser 用户名 vboxusers
然后注销重新登录

virtualbox 访问 usb 子系统失败的解决方法
sudo gedit /etc/init.d/mountdevsubfs.sh
找到如下内容:
#
# Magic to make /proc/bus/usb work
#
#mkdir -p /dev/bus/usb/.usbfs
#domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
#ln -s .usbfs/devices /dev/bus/usb/devices
#mount --rbind /dev/bus/usb /proc/bus/usb
将上诉所示的改为
#
# Magic to make /proc/bus/usb work
#
mkdir -p /dev/bus/usb/.usbfs
domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount --rbind /dev/bus/usb /proc/bus/usb
存盘退出,重启电脑

2008年3月5日

在 Ubuntu 7.10 上安装 ePSXe 1.6.0

由于最近我喜爱的最终幻想9终于出了汉化,所以很想重温一下这个游戏,于是想起了 ePSXe 这个模拟器,以前一直都在 win 下一直都在用它的 1.5.2 版,今天去了 ePSXe 的官网下了个 1.6.0 for Linux ,解压运行 ./epsxe 后却不能运行,什么提示都没有,连在终端下也没有提示,无语,只好请教 Google 大师,还真的搜了个解决方法,经过我的测试有效,特记录下来分享给大家。

首先去 ePSXe 的官网下了个 1.6.0 for Linux,点击这个链接:http://www.epsxe.com/download.php


安装必要的依赖包
sudo apt-get install libgtk1.2 libgtk1.2-common upx-ucl-beta
解压下载回来的压缩包,打开一个终端并进入到该解压目录下,运行下面的命令
upx -d epsxe
当出现下面的提示时表示成功,输入 ./epsxe 运行模拟器。

2008年3月4日

隐藏 fcitx 输入法的状态栏

fcitx 全名 Free Chinese Input Toy of X ,虽然现在已经停止开发了,但我们仍然可以从 Google Code 里找到 fcitx 这个项目,而且还有几名维护者,不过现在的开发进度非常缓慢,所以我还是比较期待来自 MAC 的开源输入法 Fun Input Toy 的 Linux 移植版 fitx(全名:Fun Input Toy for Linux)。
转入正题,由于 fcitx 默认会在屏幕上方显示一条状态栏,即使您没有打开输入法时这条状态栏也一样存在,特别是看全屏电影时更是,所有很有必要在不使用 fcitx 时隐藏这条状态栏。其实要实现该功能我们只要修改配置文件的一个地方,fcitx 输入法的配置文件在 ~/.fcitx/config 下,用您喜欢的编辑器打开,例如 gedit,而且整个配置文件都是使用中文编写的,十分容易明白。

要实现隐藏状态栏,只要找到下列语句
是否自动隐藏输入条=0
修改为
是否自动隐藏输入条=1
保存文件,一般都能即使生效。

而且您还可以修改这个配置文件来更改 fcitx 的界面,达到“换肤”的功能。以下是我的配置文件内容,供大家参考。
[程序]
显示字体(中)=*
显示字体(英)=Courier New
显示字体大小=12
主窗口字体大小=11
字体区域=zh_CN.UTF-8
是否使用AA字体=1
是否使用粗体=1

[输出]
数字后跟半角符号=1
Enter键行为=2
分号键行为=2
大写字母输入英文=1
转换英文中的标点=1
联想方式禁止翻页=1

[界面]
候选词个数=5
主窗口是否使用3D界面=0
输入条使用3D界面=0
主窗口隐藏模式=1
显示虚拟键盘=0
是否自动隐藏输入条=1
输入条是否居中=0
首次显示输入条=1
#输入条固定宽度(仅适用于码表输入法),0表示不固定宽度
输入条固定宽度=0
输入条偏移量X=0
输入条偏移量Y=12
序号后加点=1
显示打字速度=1
显示版本=1
光标色=102 159 66
主窗口背景色=255 255 255
主窗口线条色=255 255 255
主窗口输入法名称色=153 153 153 102 159 66 56 134 230
输入窗背景色=255 255 255
输入窗提示色=2 89 196
输入窗用户输入色=255 0 132
输入窗序号色=0 66 200
输入窗第一个候选字色=0 99 200
#该颜色值只用于拼音中的用户自造词
输入窗用户词组色=0 99 200
输入窗提示编码色=255 0 132
#五笔、拼音的单字/系统词组均使用该颜色
输入窗其它文本色=56 134 230
输入窗线条色=255 255 255
输入窗箭头色=193 227 151
虚拟键盘窗背景色=220 220 220
虚拟键盘窗字母色=80 0 0
虚拟键盘窗符号色=0 0 0

#除了“中英文快速切换键”外,其它的热键均可设置为两个,中间用空格分隔
[热键]
打开/关闭输入法=CTRL_SPACE
#中英文快速切换键 可以设置为L_CTRL R_CTRL L_SHIFT R_SHIFT
中英文快速切换键=L_CTRL
双击中英文切换=0
击键时间间隔=250
光标跟随=CTRL_K
GBK支持=CTRL_M
GBK繁体切换键=CTRL_ALT_F
联想支持=CTRL_L
反查拼音=CTRL_ALT_E
全半角=SHIFT_SPACE
中文标点=ALT_SPACE
上一页=- ,
下一页== .
第二三候选词选择键=SHIFT

[输入法]
使用拼音=1
使用双拼=1
默认双拼方案=自然码
使用区位=1
使用码表=1
提示词库中的词组=1

[拼音]
使用全拼=0
拼音自动组词=1
保存自动组词=0
增加拼音常用字=CTRL_8
删除拼音常用字=CTRL_7
删除拼音用户词组=CTRL_DELETE
#拼音以词定字键,等号后面紧接键,不要有空格
拼音以词定字键=[]
#重码调整方式说明:0-->不调整 1-->快速调整 2-->按频率调整
拼音单字重码调整方式=2
拼音词组重码调整方式=1
拼音常用词重码调整方式=0
是否模糊an和ang=0
是否模糊en和eng=0
是否模糊ian和iang=0
是否模糊in和ing=0
是否模糊ou和u=0
是否模糊uan和uang=0
是否模糊c和ch=0
是否模糊f和h=0
是否模糊l和n=0
是否模糊s和sh=0
是否模糊z和zh=0
也可以参考 Lenin‘s blog 的美化配置,我的美化也是来自于这里的。

2008年3月3日

推荐 Firefox 的优化编译版 Swiftweasel

什么叫优化编译版?如果您曾用过 swiftfox ,您就会知道这些经过优化编译后的第三方 Firefox 发行版是如何的高效快速了。现在除了 swiftfox 外,我们又多了一个选择,也就是 Swiftweasel,而且可喜的是 Swiftweasel 还是开源的(swiftfox 不是!!!)。Swiftweasel 的安装十分简单,有 deb 和 tar.gz,方便安装。能兼容 Firefox 的 theme 和插件,而且会在 ~/.mozilla 下生成 swiftweasel 文件夹,存放用户数据,不会妨碍原来的 Firefox。而且经过优化编译,速度比 Firefox 有所提高。

Swiftweasel 的官方主页在 http://sourceforge.net/projects/swiftweasel/
点击这里下载最新的 Swiftweaswl


Swiftweasel 有下列 CPU 的优化编译版
  • swiftweasel_athlon64-32bit_ubuntu-i386.deb
  • swiftweasel_athlon64-64bit_ubuntu-AMD64.deb
  • swiftweasel_athlon-tbird_ubuntu-i386.deb
  • swiftweasel_athlon-xpubuntu-i386.deb
  • swiftweasel_k6_ubuntu-i386.deb
  • swiftweasel_k8-32bit_ubuntu-i386.deb
  • swiftweasel_k8-64bit_ubuntu-AMD64.deb
  • swiftweasel_nocona-32bit_ubuntu-i386.deb
  • swiftweasel_nocona-64bit_ubuntu-AMD64.deb
  • swiftweasel_pentium-2_ubuntu-i386.deb
  • swiftweasel_pentium-3m_ubuntu-i386.deb
  • swiftweasel_pentium-3_ubuntu-i386.deb
  • swiftweasel_pentium-4m_ubuntu-i386.deb
  • swiftweasel_pentium-4_ubuntu-i386.deb
  • swiftweasel_pentium-m_ubuntu-i386.deb
  • swiftweasel_prescott_ubuntu-i386.deb
  • swiftweasel32_athlon64-32bit_ubuntu_7.10_AMD64.deb
  • swiftweasel32_athlon64-32bit_ubuntu-AMD64.deb
  • swiftweasel32_nocona-32bit_ubuntu_7.10_AMD64.deb
  • swiftweasel32_nocona-32bit_ubuntu-AMD64.deb

2008年3月2日

推荐台式机 Ubuntu 用户使用 realtime 内核

realtime 内核(下面简称 rt)其实就是 Ubuntu Studio 默认使用的内核,这个内核经过优化,可以加快打开程序的速度,开启 compiz 后看视频会花屏的现象得到改善。我使用后的第一感觉是,响应速度明显加快了,尤其是打开 nautilus 的速度。缺点就是不适合用于笔记本电脑,会增加用电量的,而且也不适用于服务器版本。
suxixb@su:~$ uname -srvm
Linux 2.6.22-14-rt #1 SMP PREEMPT RT Tue Feb 12 09:57:10 UTC 2008 i686
安装 rt 内核
sudo apt-get install linux-backports-modules-rt linux-headers-$(uname -r)-rt linux-headers-rt linux-image-$(uname -r)-rt linux-image-rt linux-restricted-modules-rt linux-rt
安装完成后,重启,在 GRUB 处会叫您选择启动 rt 内核还是 generic 内核,选择 rt 项。

另外,Ubuntu 源内已经有不少编译好的内核了,其实完全可以挑一个自己喜欢的使用,平时用的 generic 内核属于通用内核。
suxixb@su:~$ apt-cache search linux-image
alsa-base - ALSA driver configuration files
linux-image - Generic Linux kernel image.
linux-image-386 - Linux kernel image on 386.
linux-image-debug-386 - Linux kernel debug image for 386 kernel image
linux-image-debug-generic - Linux kernel debug image for generic kernel image
linux-image-debug-server - Linux kernel debug image for server kernel image
linux-image-generic - Generic Linux kernel image
linux-image-server - Linux kernel image on Server Equipment.
linux-image-virtual - Linux kernel image geared towards virtualised hardware
linux-image-debug-ume - Linux kernel debug image for ume kernel image
linux-image-rt - Linux kernel image on realtime kernel
linux-image-ume - Linux kernel image on 386 Embedded/Mobile
linux-image-xen - Linux kernel image on Xen
rt2400-source - source for rt2400 wireless network driver
rt2500-source - source for rt2500 wireless network driver
virtualbox-ose-modules-2.6.22-14-generic - virtualbox-ose modules for linux-image-2.6.22-14-generic
virtualbox-ose-modules-2.6.22-14-server - virtualbox-ose modules for linux-image-2.6.22-14-server
xen-image-2.6.19-4-generic - Linux 2.6.19 image on PPro/Celeron/PII/PIII/P4
xen-image-2.6.19-4-server - Linux xen 2.6.19 image on x86.
linux-image-2.6.22-14-386 - Linux kernel image for version 2.6.22 on i386
linux-image-2.6.22-14-generic - Linux kernel image for version 2.6.22 on x86/x86_64
linux-image-2.6.22-14-server - Linux kernel image for version 2.6.22 on x86/x86_64
linux-image-2.6.22-14-virtual - Linux kernel image for version 2.6.22 on x86
linux-image-debug-2.6.22-14-386 - Linux kernel debug image for version 2.6.22 on i386
linux-image-debug-2.6.22-14-generic - Linux kernel debug image for version 2.6.22 on x86/x86_64
linux-image-debug-2.6.22-14-server - Linux kernel debug image for version 2.6.22 on x86/x86_64
linux-image-debug-2.6.22-14-virtual - Linux kernel debug image for version 2.6.22 on x86
linux-image-2.6.22-14-rt - Linux kernel image for version 2.6.22 on RT kernel
linux-image-2.6.22-14-ume - Linux kernel image for version 2.6.22 on Ubuntu Moblie and Embedded
linux-image-2.6.22-14-xen - Linux kernel image for version 2.6.22 on This kernel can be used for Xen dom0 and domU