星期五, 十月 28, 2005

[Debian] grub 菜单配置文件的说明

  1. 什么是grub
    • grub是一个操作系统引导器,具备引导多个操作系统的能力
  2. 为什么是grub
    • grub的行为可以由配置文件控制,同时又具有一个类似于bash的控制台环境,这使得它具有非常强大和灵活的控制能力。很多Linux发行版都选择将它作为默认的引导器。
  3. Debian and grub
    1. 自动更新的机制
      1. /sbin/update-grub
        /sbin/update-grub 是 Debian 系统中的一个脚本,它读取 /boot/grub/menu.lst文件的配置,根据一些参数自动重新生成grub启动菜单。
      2. /etc/kernel-img.conf
        这个配置文件也是 Debian 所特有的,它是在安装或删除内核时,供内核软件包所带的脚本读取,来完成安装内核所需要的一些步骤。
        示例:
        • do_initrd = yes
          postinst_hook = /sbin/update-grub
          postrm_hook   = /sbin/update-grub
        说明:
        • 1,安装(/删除)内核后,自动产生(/删除)相应的 initrd.img 文件
          2,内核安装完成后,调用 /sbin/update-grub 以更新启动菜单
          3,内核卸载完成后,调用 /sbin/update-grub 以更新启动菜单
    2. Debian中grub配置菜单的说明

      • # menu.lst - See: grub(8), info grub, update-grub(8)

        # grub-install(8), grub-floppy(8),
        # grub-md5-crypt, /usr/share/doc/grub
        # and /usr/share/doc/grub-doc/.

        ## default num
        # 将第num条设置为默认启动。条目计数从0开始,如果没有设置的话,默认就是第0条。
        #
        # 你可以用 'saved' 来代替数字。在这种情况下,默认项就是由命令 'savedefault'
        # 保存的项
        default saved

        ## timeout sec
        # 设置默认项(一般是最开始的那一条)自动启动之前等待的时间,单位是秒。
        timeout 5

        # Pretty colours
        color cyan/blue white/ blue

        ## password ['--md5'] passwd
        # If used in the first section of a menu file, disable all interactive editing
        # control (menu entry editor and command-line) and entries protected by the
        # command 'lock'
        # e.g. password topsecret
        # password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
        # password topsecret

        #
        # examples
        #
        # title Windows 95/98/NT/2000
        # root (hd0,0)
        # makeactive
        # chainloader +1
        #
        # title Linux
        # root (hd0,1)
        # kernel /vmlinuz root=/dev/hda2 ro
        #

        #
        # 将毋需变动的启动信息放到 AUTOMAGIC KERNEL LIST 之前或之后
        # (注:意思是 AUTOMAGIC KERNEL LIST 之间的内容由 update-grub
        # 这条命令来维护,如果你用本配置文件的话,其间的中文注释都会被替换掉)


        ### BEGIN AUTOMAGIC KERNELS LIST
        ## 在 AUTOMAGIC KERNELS LIST 标记之间的行,除了以下的默认的选项外,
        ## 都会被 debian 的 update-grub 脚本所修改

        ## 不要去掉注释,只需要修改以符合你的需求

        ## ## Start Default Options ##
        ## 启动选项的默认内核参数
        ## 如果你想为特定的内核指定特定的参数,请使用kopt_x_y_z
        ## 其中 x.y.z 是内核的版本号。副版本号可以忽略。
        ## 示例: kopt=root=/dev/hda1 ro
        # kopt=root=/dev/hda3 ro vga=791 quiet

        ## grub 所在的根设备
        ## (注:应当是指/boot/grub所在的磁盘分区,
        ## 因为有时 / 和 /boot 并不在同一个分区上)
        ## 示例: groot=(hd0,0)
        # groot=(hd0,2)

        ## 是否需要 update-grub 创建供选择的启动选项
        ## (注:即创建同一内核的不同启动参数的选项)
        ## 示例: alternative=true
        ## alternative=false
        # alternative=true

        ## 是否需要 update-grub 锁定供选择的启动选项
        ## 示例: lockalternative=true
        ## lockalternative=false
        # lockalternative=false

        ## altoption 选项的启动参数
        ## 可以有多项 altoptions
        ## 示例: altoptions=(extra menu suffix) extra boot options
        ## altoptions=(recovery mode) single
        # altoptions=(recovery mode) single

        ## 控制允许多少个内核启动项可以放到 menu.lst 里面
        ## 只对内核的第一项计数,而不包括同一内核的可选项
        ## 示例: howmany=all
        ## howmany=7
        # howmany=all

        ## 是否需要 update-grub 创建 memtest86 的启动选项
        ## 示例: memtest86=true
        ## memtest86=false
        # memtest86=true

        ## ## End Default Options ##

        title Debian GNU/Linux, kernel 2.6.13- 1-k7
        root (hd0,2)
        kernel /boot/vmlinuz-2. 6.13-1-k7 root=/dev/hda3 ro vga=791 quiet
        initrd /boot/initrd.img- 2.6.13-1-k7
        savedefault
        boot

        title Debian GNU/Linux, kernel 2.6.13- 1-k7 (recovery mode)
        root (hd0,2)
        kernel /boot/vmlinuz-2 .6.13-1-k7 root=/dev/hda3 ro vga=791 quiet single
        initrd /boot/initrd.img-2.6.13-1-k7
        savedefault
        boot

        title Debian GNU/Linux, kernel 2.6 .12-1-k7
        root (hd0,2)
        kernel /boot/vmlinuz-2.6.12-1-k7 root=/dev/hda3 ro vga= 791 quiet
        initrd /boot/initrd.img-2.6.12- 1-k7
        savedefault
        boot

        title Debian GNU/Linux, kernel 2 .6.12-1-k7 (recovery mode)
        root (hd0,2)
        kernel /boot/vmlinuz-2.6.12-1 -k7 root=/dev/hda3 ro vga=791 quiet single
        initrd /boot/initrd.img-2.6 .12-1-k7
        savedefault
        boot

        ### END DEBIAN AUTOMAGIC KERNELS LIST

        # 这一条只是分隔符,是为了将它后面的和 Debian 的区分开来
        title Other operating systems:
        root


        # This entry automatically added by the Debian installer for a non-linux OS
        # on /dev/hda1
        title Microsoft Windows XP Professional
        root (hd0,0)
        savedefault
        makeactive
        chainloader +1
相关链接:
http://grub.enbug.org/FrontPage

星期二, 十月 25, 2005

我选择blog服务商的标准

只有一个,就是能够用发邮件的方式来发表自己的东西,原因是我很懒,即想多个blog能够同步,又不愿意花费这个时间,如能能够用发邮件的方式来发表,我需要做的,只是添加一个邮件地址而已。

目前我有两个:
http://spaces.msn.com/members/achaoge/
http://achaoge.blogspot.com/

其中虽然 http://achaoge.blogspot.com 在内地被屏蔽了,但是并不影响我的使用(虽然我想看也是比较麻烦的事),因为我发表东西只是需要多加一个邮件地址而已 。

HP Compaq nx6130 装Ubuntu

写给王玮,至少应该让你知道你在你的机器(HP Compaq nx6130)上干了什么:-)
  1. 安装过程
    • 说来奇怪,最近很少碰到这样的问题,启动安装程序后就黑屏了,因为不是卡在诸如acpi,usb之类的地方,所以猜想是framebuffer的问题,启动时加入
      linux debian-installer/framebuffer=false
      参数,果然可以看到安装界面,只是没有framebuffer的支持,就没有办法用中文来安装。
    • 安装过程基本上要设置的地方不多,可惜的是安装完成后,X无法启动,X问题是很多人使用Linux时要遇到的一道坎,好在这次这个问题不是太难搞,切换到控制台下,运行命令重新配置下X(重新配置软件包都是使用 dpkg-reconfigure 命令,加了 sudo 的命令都是表示需要系统管理员权限才能运行的).
      sudo dpkg-reconfigure xserver-xorg
      发现在自动检测显卡(ATI Mobility Radeon X300 PCI-Express)的驱动是ati,而实际上选择了用radeon后,X就可以毫无问题的起来了。这时重新启动下X登录服务,就可以看到图形的登录界面了。
      sudo /etc/init.d/gdm restart
  2. 设置过程
    • X好了,进了桌面了,现在是英文环境,要使用中文环境,需要如下的步骤(以下的命令都在gnome 的终端-gnome-terminal -里面运行):
      • sudo dpkg-reconfigure locales
        在这个界面里面,除了en_US.UTF-8和zh_CN.UTF-8外,其它的大可不选。运行这条命令后,你的程序就能够使用中文信息了。
      • 修改( sudo gedit /etc/apt/sources.list)一下 /etc/apt/sources.list 文件,将完整的软件仓库信息添加进去,使得至少是其中有一行是这样:
        deb http://cn.archive.ubuntu.com/ubuntu breezy main restricted universe multiverse
      • 安装相应的软件(scim的智能拼音,uming、ukai字体,)
        sudo aptitude update
        sudo aptitude install scim scim-pinyin scim-gtk2-immodule ttf-arphic-u* im-switch
        如果有提示Yes or No的时候,记得回答 Yes :-)
        scim-gtk2-immodule可以让你即使在英文环境下,gtk2的程序也可以使用scim来输入中文。
      • 创建.xinput.d/default 文件,使得进桌面的时候,可以自动启动输入法。
        mkdir .xinput.d
        echo "
        GTK_IM_MODULE=SCIM
        XIM=SCIM
        XIM_PROGRAM='/usr/bin/scim'
        XIM_ARGS='-d'
        " > .xinput.d/default
      • 建立一个叫 .fonts.conf 的文件,指定你的中文显示字体用uming,毕竟宋体要比较适合我们的观感
        gedit .fonts.conf
        内容可以在我的Blog中找得到。
      • 好了,中文环境的工作基本上到这儿就做得差不多了,现在只需要退出,重新登录的时候,在登录界面的 Language 菜单里面选择中文就可以使用了。

星期三, 十月 19, 2005

apt-proxy 的backends以及客户端sources.list的设置说明

  1. 前言

    1. 网络内部有多台Debian操作系统的机器,在升级或安装软件的时候,可以将apt-proxy用来作为一个代理服务器和缓存服务器,节省网络带宽,减少等待的时间。
    2. 我的apt-proxy版本是v2,apt-proxy的配置文件是 /etc/apt-proxy/apt-proxy-v2.conf
      • $ apt-cache policy apt-proxy
        apt-proxy:
            Installed: 1.9.32
      • tips:因为apt-proxy的配置文件格式和samba的配置文件格式比较相似,所以在用vim编辑配置文件的时候,可以用  set syntax=samba 来获得语法高亮
    3. sources.list的格式有类似如下两种:
    4. 对应第一种sources.list所对应的格式,backends 和 sources.list的设置应该不存在什么问题,在此不赘言。
  2. 设置

  1. apt-proxy 中添加backends的格式是:
  2. 关于backends和sources.list要怎么写,主要还是取决于网站上所提供的Packages文件的路径和内容,以我以上的E17为例, Packages的路径为:
    http://www.soulmachine.net/debian/unstable/Packages.gz
    其内容指向的包文件的路径:
      unstable/libecore0_0.9.9.018-1_i386.deb
    所以sources.list的内容写为:
    # for E17
    deb http://localhost:9999/E17 unstable/

星期一, 十月 10, 2005


星期日, 十月 09, 2005

升级E17后恢复设置的脚本。

Enlightenment DR17 现在还没有正式发布,因此每次升级都会重置配置,为了不至于忘了自己做过那些配置,故将这些配置命令写个脚本,也可以在升级之后省些时间。
 #!/bin/sh
# The shell is used to restore my settings of E17
ER=/usr/bin/enlightenment_remote

if [ ! -x $ER ]; then
echo "Sorry, it looks like that you don't install E17"
exit 1
fi
# restore my font setting
# Because of bad support of bitmap font, I use ukai instead of uming
$ER -font -fallback-prepend Ukai

# restore my key binding.
$ER -binding -key-add ANY Print NONE 0 exec 'import ~/screenshot/$(date +%Y%m%d)-$$.jpg '

# Set SMART maximize policy
$ER -maximize -policy-set SMART

# disable and unload unwanted module
for MODULE in cpufreq start ibar ibox render
do
$ER -module-disable $MODULE
$ER -module-unload $MODULE
done

# load moudle
for MODULE in engage monitor
do
$ER -module-load $MODULE
$ER -module-enable $MODULE
done

星期四, 十月 06, 2005

Debian下使用中芯微301芯片的摄像头

用spca5xx的驱动就可以了,根据spca5xx-source里面的提示,运行一下命令就可以完成驱动的安装:
sudo m-a a-i spca5xx
当然前提是你使用的是Debian官方发布的内核,如果是自己编译的内核的话,保留有内核源代码应该也是没有问题的。

在我的系统上,安装了hotplug 和 udev ,内核是 2.6.12,重新插拔下摄像头或者运行:
sudo modprobe -v spca5xx
就自动加载驱动并生成了相关设备文件(/dev/video0)。

用gqcam 或者是 gnomemeeting可以看摄像头效果。

星期二, 十月 04, 2005

Debian下使用TP-Link TL-WN220 USB无线网卡

  1. 查看无线网卡信息
    • 如果是PC卡的,用 lspci 查看
    • 如果是USB的,用 lsusb 查看
    • ^v^$ lsusb
      Bus 002 Device 001: ID 0000:0000
      Bus 001 Device 004: ID 03eb:7605 Atmel Corp. at76c503a 802.11b Adapter
      Bus 001 Device 002: ID 15ca:00c3
      Bus 001 Device 001: ID 0000:0000
      ^v^$
      TP-Link TL-WN220 USB无线网卡用的是Atmel的芯片,正好此款芯片在Linux下有驱动,如果没有的话,就要尝试用 ndiswrapper
  2. 安装相关软件,at76c503a-source, wireless-tools
    • sudo aptitude install at76c503a-source wireless-tools
  3. 编译内核模块
    • 用 module-assistant 解决问题啦
      sudo m-a a-i at76c503a-source
  4. 设定配置文件
    • 主要需要设定的是 /etc/network/interfaces
      iface wlan0 inet dhcp
              wireless_essid AP
              wireless_key xxxxxxxxxxxxx
  • 本机配置: Debian/sid,2.6.12-i686。