页面

2010年6月25日

将 Gentoo/Funtoo 的 Portage 移到 /dev/shm 上

原理大致上是利用/dev/shm把portage放到内存里面去,由于portage的小文件很多,而在硬盘上操作小文件效率低下,不管是 search 还是 sync ,在笔记本电脑上尤为明显。
注意:为了能将 Portage 移动到内存上,必须要有大于1GB的空闲内存

将 Portage 移到 /dev/shm 上

  1. 备份当前的 portage 和 layman

    # mv /usr/portage /usr/portage.bak
    # mv /var/lib/layman /var/lib/layman.bak
  2. 创建目录

    # mkdir /dev/shm/portage
    # mkdir /dev/shm/layman
    # ln -sf /dev/shm/portage /usr/portage
    # ln -sf /dev/shm/layman /var/lib/layman
  3. 将 Portage 复制到 /dev/shm 上

    # cp -r /usr/portage.bak/* /dev/shm/portage
    # cp -r /var/lib/layman.bak/* /dev/shm/layman
现在可以开始体验内存上的 Portage 速度相对于在硬盘上有多快了,但由于内存的特性,现在所做的一切都会在关机后消失,所以还需要一个启动脚本,每次开机就将 Portage 放到内存上,关机会自动备份到硬盘里,不需要人工干预。

设置启动脚本

  1. 设置变量

    /etc/conf.d/portage 文件范例
    # vi /etc/conf.d/portage
    
    PORTAGE_DIR=/dev/shm/portage     #存放portage的目录。
    LAYMAN_DIR=/dev/shm/layman       #存放layman的目录。
    BACKUP_DIR=/var                  #存放备份文件的目录。
  2. 创建脚本

    /etc/init.d/portage 文件范例
    # vi /etc/init.d/portage
    
    !/sbin/runscript
    # Copyright 2009 Chen Wen 
    # All rights reserved. Released under the GPL-3 license.
     
    description="Save and restore the portage in to /dev/shm."
    depend()
    {
        need localmount
    }
     
    start()
    {
        if [ ! -f "${PORTAGE_DIR}/header.txt" ]; then
            ebegin "Extract portage"
            tar xPf ${BACKUP_DIR}/portage.tar.gz -C /
            eend $? "Error extract prtage"
            ebegin "Extract layman"
            tar xPf ${BACKUP_DIR}/layman.tar.gz -C /
            eend $? "Error extract layman"
        fi
        return 0
    }
     
    stop()
    {
        if [ -f "${PORTAGE_DIR}/header.txt" ]; then
            ebegin "Saving portage"
            tar zpPcf ${BACKUP_DIR}/portage.tar.gz ${PORTAGE_DIR}
            eend $? "Failed to save portage"
            ebegin "Saving layman"
            tar zpPcf ${BACKUP_DIR}/layman.tar.gz ${LAYMAN_DIR}
            eend $? "Failed to save layman"
        fi
    }
  3. 设置脚本开机自启动

    # chmod +x /etc/init.d/portage
    # /etc/init.d/portage start
    # rc-update add portage default
至此,该脚本能独立运作了。

参考文献

  1. 利用/dev/shm 加速 portage運作
  2. Gentoo手册

2010年6月24日

Gentoo/Funtoo 增加一个 GUI 的 runlevel

如果想在启动Gentoo/Funtoo后直接进入X,常规的方法是 rc-update add xdm default 来自动加载登录管理器,但这样有一点不足:假如我只想临时启动到CLI界面,按照这个方法必须先启动到登录管理器才能却换到CLI下,虽然不算很麻烦,但有点浪费时间。所以有必要定义两个softlevel,一个CLI softlevel(通常就是default)只加载字符界面下需要的服务,与X相关的都不加载;另一个GUI softlevel则加载与图形相关的服务,例如hald、dbus等。

Q:什么是 softlevel ?
A:请查看Gentoo手册的介绍

下面介绍如何定义一个 GUI softlevel

  1. 创建 gui softlevel

    # cd /etc/runlevels
    # cp -r default gui
    
  2. 把 X 相关的启动项添加到 gui

    # rc-update add xdm gui
    # rc-update add consolekit gui
    # ……
    
  3. 修改 Grub 引导菜单

    Grub1
    # vi /boot/grub/menu.lst
    
    实例:
    title Funtoo Linux 64bit GUI
            kernel /boot/bzimage root=/dev/sda1 softlevel=gui

    Grub2
    # vi /boot/grub/grub.cfg
    
    实例:
    menuentry "Funtoo Linux 64bit GUI {
            linux /boot/bzimage root=/dev/sda1 softlevel=gui
    }
  • softlevel=gui 表示启动gui,默认为default。
  • bootlevel=lite 表示启动lite,默认为boot,这个级别一般都不改动,除非你知道自己在做什么。

FeedSky抽风

最近我自己的几个博客中,由FeedSky烧制的Feed都出现了不同程度的抽风,最直接的影响是FeedSky老是将我很久之前的旧文章挖出来当作新文章发布出去,实在无语。再加上目前我的所有博客都已经转到墙外(独立空间/Google Blogger),所以决定废弃所有由FeedSky烧制的Feed。
目前I'm kaysiness(原名Shareitem.org)有两个Feed,一个是http://feeds.feedburner.com/siog,由FeedBurner烧制,另一个是http://feed.shareitem.org,由FeedSky烧制。现在将统一为FeedBurner烧制的Feed,也就是说只剩下http://feeds.feedburner.com/siog。如果你订阅的正是FeedSky烧制的地址,欢迎订阅新的http://feeds.feedburner.com/siog
对此造成的不便,我深感歉意。

2010年6月22日

在VMware7.1里虚拟Windows 98的声音问题

由于要突然用到一个很古老的程序,该程序只能在Win98下正常运行,而且必须用到声音输出,目前最简单的方法是用VMware虚拟一个Win98出来。在安装Win98上没有遇到什么大问题,很顺利的安装上了,但装了VMware Tools后,发现并没有安装上声卡驱动,在Win98的设备管理器里仍然显示为“未知设备”。上网咨询Google后找到解决方法,下面记录下来。

实验环境:
  • Host OS:Windows 7 Professional, 64-bit (Build 7600) 6.1.7600
  • Guest OS:Windows 98 Se2
  • VMware Workstation 7.1.0 build-261024

参考这篇文章,得知原来VMware虚拟出来的声卡是 Creative SB PCI128 (Ensoniq ES1371) 声卡,所以只要装上创新的驱动即可。在上面那篇文章里有驱动的下载地址,我这里把驱动放到一个iso镜像文件里,方便直接用VMware载入镜像,下载地址:box.net | skydrive

下面简单介绍一下安装方法:
  1. 安装 SBPCI_WebDrvsV5_12_01.exe重启虚拟机,必须重启!
  2. eapci8m.ecw 文件复制到C:\windows\system下。
  3. 打开控制面板——系统——设备管理器——声音、视频和游戏控制器——SB PCI(WDM),点属性
  4. 图一
  5. 点 设置——添加声波设置——选择到C:\Windows\System——选择eapci8m.ecw——确定
    图二
  6. 回到图二的MIDI合成器声波设置,选择刚刚安装的8 MB GM/GS Waveset ver 5,然后重启虚拟机,现在终于可以在Win98上使用声卡了。

博客再次更换域名和空间

由于之前一直使用的 Wordpress+独立域名+独立空间的 shareitem.org 博客将在2010年10月28日到期,而且这套方案每年要花费$10 + ¥100的费用,比我的翻墙费还贵,想了很长的时间,觉得还是回归到 Google Blogger + 独立域名的方案,于是,I'm kaysiness 博客(http://b.kaysiness.tk/)诞生了≧ω≦,kaysiness是我的网名。
借着这次更换域名的时机,觉得对我的博客转型,从以前的只包含 Linux 相关文章的博客转型到操作系统类(Windows/Linux/BSD/Android)和少量的ACG内容(主要是日本动漫,我的另一个爱好)的博客。