博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

嘎 嘎。。。

幻想具有强大的力量、俯视宇宙的智慧、没有边界的网络技术
  mmx384.cublog.cn

关于作者
姓名:乘风
性别:男
年龄:一九八二
种族:人
身高:165cm
爱好:古典文化、计算机 
愿望:实现理想的自我
性格:懦弱、好胜
Email:mmx384@gmail.com

本人爱好古典文化,对禅宗、红楼梦、易经、围棋等有所涉猎,但知识浅溥,深以为憾。
|| << >> ||
我的分类


我的LFS桌面应用问题解决办法
我很久以前就想写这篇文章,把自己用LFS当桌面OS碰到的问题列出来并逐一提出解决办法,但自己碰到的好些问题至今仍然没有解决,所以一搁再搁,今天先开个头吧,不完整的地方以后再补充:

目录预览:
一.理想的软件组合 
二.中文问题
2.0 必要准备
2.1 SAMBA共享编码问题
2.2 挂载Win分区和U盘文件编码问题
2.3 rxvt-unicode中文显示问题
2.4 Gvim文件乱码问题
2.5 ROX-Filer文件名乱码问题
2.6 中文输入,fcitx
2.7 MLdonkey文件名乱码问题
三.网络问题
3.1 ADSL拨号
3.2 Linux与Windows共享文件SAMBA
3.3 VirtualBox中VirtualMachine和Host共享
四.配置问题
4.1 mkblfs.script
4.2 编写一个脚本使其在系统启动时启动
4.3 fvwm2rc
4.4 gvimrc/vimrc
4.5 MLdonkey
4.6
五.应用问题
5.1 安装/卸载软件
5.2 ROX-Filer文件管理
5.2 下载文件
5.3 播放音视频
5.4 图像转换/抓图
5.5 音、视频转换
5.6 自动挂载CD-ROM,U盘等移动设备
六.安全问题
6.1 系统备份
6.2 MD5SUM验证

正  文

一.理想的软件组合

    LFS+BLFS
    ROX-Filer + FVWM
    rxvt + rxvt-unicode
    GVIM/Emacs
    Firefox
    MPlayer + XMMS/XMMS2
    MLdonkey + Azureus + cURL
    GQview + ImageMagic + Gimp
    Pidgin
    StarDict
    OOo
    VirtualBox + Win2k

二.中文问题

2.0 必要准备

a)确保你在编译内核时选择了下面的选项:

File system-->Native Language Support-->
    (utf8) Default NLS Option
    <*> Simplified Chinese charset (CP936,GB2312)
    <*> Traditional Chinese charset (Big5)
    <*> NLS ISO 8859-1 (Latin 1)
    <*> NLS UTF8

上面四个字符集应该是最基本的,如果编译时没有选择支持这些编码,本来正确的配置也会出问题。

b)建议复制几个Windows字体,Linux显示中文要依赖它们:
cp -vR {arial.ttf,\
    simsun.ttc,\
    simhei.ttf,\
    simkai.ttf,\
    times.ttf,\
    monos.ttf,\
    sans.ttf} /usr/share/fonts/TrueType
cd /usr/share/fonts/TrueType
mkfontscale
mkfontdir

c)简单美化一下
cat /etc/fonts/local.conf <<EOF
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!--/etc/fonts/local.conf-->
<fontconfig>
    <dir>/usr/share/fonts/TrueType/</dir>
    <dir>~/.fonts</dir>
    <dir>/usr/X11R6/lib/X11/fonts</dir>

<!--default settings for all fonts. -->

<match target="font">

<!-- Open AA-->
    <edit mode="assign" name="antialias">
        <bool>true</bool>
    </edit>
    <edit mode="assign" name="hintstyle">
        <const>hintslight</const>
    </edit>

<!-- Open hint-->
    <edit mode="assign" name="hinting">
        <bool>true</bool>
    </edit>
<!-- Close autohint-->
    <edit mode="assign" name="autohint">
        <bool>false</bool>
    </edit>
</match>

<!--English monospace Close-->
<match target="font">

    <test target="pattern" name="lang" compare="contains">
        <string>zh-tw</string>   
        <string>zh-cn</string>   
        <string>ja</string>   
        <string>ko</string>   
    </test>

    <edit name="spacing">
        <const>proportional</const>
    </edit>

    <edit name="globaladvance">
        <bool>false</bool>
    </edit>
</match>
</fontconfig>
EOF


d)下面是各种字符集编码名称
    zh_CN.gb2312    # 国标码,WindowsXP系统默认的编码
    zh_CN.gbk
    zh_CN.gb18030
    zh_CN.utf8
    en_US.utf8
    cp936           # 应该就是指gb2312吧
    euc-cn          # 不知道是不是gb2312
    iso10646-1      # 网上搜一下吧,我也不知道啥玩意儿,gbk?

e)建议command-line模式和X11模式用下面的编码方案
cat > ~/.bashrc <<EOF
export LANG="C"
export LC_ALL="C"
EOF

cat > ~/.xinitrc <<EOF
export LANG="en_US.utf8"
export LC_ALL="en_US.utf8"
EOF

好了,下面来解决一些实际问题:

2.1 SAMBA共享编码问题

方法一:
在编译内核时选择
File systems-->Network file systems-->
    SMB file system support --> Use a default NLS
        (cp936) Default Remote NLS Option
如果设置了SMB远程文件系统(一般就是Windows吧)的默认编码,可以省事很多,直接挂载就可以:
smbmount //windows_share/c$ /mnt/tmp

方法二:挂载时指定编码
smbmount -o codepage=cp936,iocharset=utf8 \
         //windows_share/c$ /mnt/tmp
codepage指定samba客户端(通常是Windows)的字符编码
ipcharset指定samba服务器的字符编码,这个通常也就是你用的Linux字符集编码
为了免于每次mount时的输入麻烦,将其写入到/etc/samba/smb.conf的[global]字段中
dos charset = cp936
unix charset = utf8

2.2 挂载Win分区和U盘文件编码问题

方法一:

File systems-->DOS/FAT/NTFS File systems -->
    VFAT fs support -->
        (936) Default codepage for FAT
        (utf8) Default iocharset for FAT
如果指定的默认字符集编码,挂载命令不用指定iocharset就可以
方法二:
如果内核编译没有设置VFAT的默认字符集编码,mount时就指定吧:
mount -t fs-type -o iocharset=cp936 /dev/hd? /mnt/tmp

2.3 rxvt-unicode中文显示问题

在~/.Xdefaults中加入下面的字体设置,rxvt-unicode能比较好地显示中文

URxvt.font:xft:Luxi Mono:pixelsize=16, \
xft:SimSun:pixelsize=16:antialias=true

2.4 Gvim文件乱码问题

cat > ~/.gvimrc <<EOF
set encoding=utf-8
set fileencodings=utf-8,euc-cn,euc-tw,lanti1
set guifont=SimSun\ 13
EOF
encoding指定gvim保存文件时默认的编码为utf8
guifont指定一个显示中文的字体
fileencodings指定gvim打开文件时依次尝试选择utf8,eun-cn,...等编码打开文件,如果仍然不能正确显示中文,直接试试命令,99%的文本文件都能正确显示
:set enc=euc-cn
:set enc=cp936
还不行的话,那就没办法了,我的gvim对繁体中文就不能显示,不知道什么是不是因为编译内核时没有选
<*> Traditional Chinese charset (Big5)

2.5 ROX-Filer文件名乱码问题

这里有一个问题:如果你的系统里既有gb2312编码的文件名,如从网上下载的rar包,解压后都是这种编码,又有utf8编码的文件名,一般都用utf8编码,这样终端(如urxvt)和文件管理器(如rox-filer)都只能正确显示一种字符集编码的文件,另一种出现乱码,不知道各位有什么办法解决

2.6 中文输入,fcitx
cat > ~/.bashrc <<EOF
    export XMODIFIERS="@im=fcitx"
EOF
修改/etc/gtk-2.0/gtkimmdules文件,使英文环境下可以输入中文:
sed -i '{/im-xim.so/{n};s/ko:ja:th:zh/ko:ja:th:zh:en/}'
将im-xim.so模块支持的语言环境增加一个en:"ko:ja:th:zh"变成"ko:ja:th:zh:en"

2.7 MLdonkey下载中文文件名变短划线的问题

从源码编译安装MLdonkey:MLdonkey依赖ocaml软件包,编译ocaml时先从网上下载一个ocaml的unicode补丁,打上补丁后再编译ocaml和mldonkey,就能解决MLdonkey下载中文文件,文件名变成短划线的情况。

三.网络问题

3.1 ADSL拨号

如果用LFS直接拨号,确保编译内核时选择了PPP协议支持(及一些子选项)
Device Drivers-->Network device Support-->
        <*> PPP(point-to-point protocol) support
安装好pppoe拨号软件后,以root帐户执行:
adsl-setup
>>> Enter your PPPoE user name (default ): 
gz_a123456@gz.jx
>>> Enter the Ethernet interface (default eth0):
>>> Enter the demand value (default no):
>>> Enter the DNS information here: server
>>> Please enter your PPPoE password:
>>> Choose a type of firewall (0-2):
>>> Accept these settings and adjust configuration files (y/n) ?
adsl-start 看看能否连接上,再ping -c4 www.google.com是否畅通

3.2 Linux与Windows共享文件SAMBA

a)先配置/etc/samba/smb.conf
cat > /etc/samba/smb.conf <<EOF
[global]
workgroup = linuxgroup
server string = linux-smb
dos charset = cp936
unix charset = utf8
hosts allow = 192.168.1.     #允许的连接的IP段,这里要注意一下
log file = /var/log/samba/%m.log
max log size = 50
socket options = TCP_NODELAY
security = user
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
username map = /etc/samba/smbusers
dns proxy = no

[share]
path = /mnt/share/
;guest ok = yes
browseable = yes
create mask = 0755
writeable = yes
EOF
b)创建smbpasswd文件,并添加用户
cat /etc/passwd | mksmbpasswd.awk > /etc/samba/smbpasswd
smbpasswd -ae $USER
其中mksmbpasswd.awk脚本在samba源码包的某个目录中有,$USER是指一个用户名,用这个用户名和设置的密码登入SAMBA服务器
c)连接
在Windows中访问SAMBA服务器,只要在网络邻居中添加一个连接就可以,输入地址时输入类似
\\192.168.1.1\share的地址

3.3 VirtualBox中VirtualMachine和Host共享

这个解决办法从www.linuxsir.org中抄过来的
a)确保
Device Drivers-->Network device Support-->
    <*> Universal TUN/TAP device driver support
Networking-->TCP/IP networking-->
    <*> IP: tunnel transformation
    <*> 802.1Q VLAN Support

b)
modprobe vboxdrv  # 需要指定内核编码重新编译vboxdrv.ko
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE
chmod 0666 /dev/net/tun
tunctl -t tap0 -u mmx    #网上有个tunctl.c,下载后cc一下
/sbin/ifconfig tap0 up
/sbin/ifconfig tap0 10.10.10.1 netmask 255.255.255.0

3.4

四.配置问题
4.1 mkblfs.script
4.2 编写一个脚本使其在系统启动时启动
4.3 fvwm2rc
4.4 gvimrc/vimrc
4.5 MLdonkey
4.6

五.应用问题
5.1 安装/卸载软件
5.2 ROX-Filer文件管理
5.2 下载文件
5.3 播放音视频
5.4 图像转换/抓图
5.5 音、视频转换
5.6 自动挂载CD-ROM,U盘等移动设备

六.安全问题

6.1 系统备份
6.2 MD5SUM验证

发表于: 2007-11-19,修改于: 2007-11-22 13:20,已浏览740次,有评论0条 推荐 投诉


网友评论
 发表评论