6/29/2007

内部讲座

今天下午听了两位同事的讲座,两个主题:一、SELinux,工作原理;二、内核相关知识(主要包括进程调度,内存管理,网卡工作原理等),收获挺多的,以后再看相关的文档时,会比较清楚了。

PowerTop

PowerTop可以测出是哪些程序常常把 CPU 从睡眠中唤醒,只要有办法去掉这些 timer,搭配 linux 2.6.21 中的新特性 dynamic tick,可以让电脑在不工作的时候可以好好休息,延长工作时间。
在 debian/sid 中只需要
apt-get install powertop
就可以安装最新版的 PowerTop,但是要真正实用的分析功能,还需要把 kernel 中的 debug 功能打开

Kernel hacking --->
[*] Kernel debugging
[*] Collect kernel timers statistics

根据日志上的记录,如 firefox, liferea 等可以在 powertop 网站上的 Tips and Tricks 找到记录,也有记录一些解決的方法或是 patch...

小于1.44MB的linux发行版 - DetaolB

DetaolB aimed to be a "much-less-than-a-floppy" x86 linux live distro.
居然能这么小,还有编译环境,有空要试试。

6/28/2007

插件开发

1)GStreamer插件开发
2)gaim插件开发

6/22/2007

获得内核例程的地址

在注册过程中,您还需要指定插入探测器的内核例程的地址。使用这些方法中的任意一个来获得内核例程的地址:
1)从 System.map 文件直接得到地址。
例如,要得到 do_fork 的地址,可以在命令行执行 $grep do_fork /usr/src/linux/System.map 。
2)使用 nm 命令。
$nm vmlinuz |grep do_fork
3)从 /proc/kallsyms 文件获得地址。
$cat /proc/kallsyms |grep do_fork

汇报近况 呵呵

最近忙于项目,另外blogspot.com也上不了,就一只没更新了。
今天活干的差不多了,从网上看到这个访问的方法:Pkblogs.com/用户名或Inblogs.net/用户名访问
试了试,还行,终于又上来了 :)
我现在开始炒股了,但上班炒股不太方便,有小一点的炒股软件就好了
另外,婚后的生活挺幸福的

3/12/2007

From stage1 install,that's that.

使用 live cd 2006.1 启动机器,输入 gentoo nox 进入系统

hdparm -d 1 -A 1 -m 16 -u 1 -a 64 /dev/hdb (启动DMA)

/dev/hda1 /boot +32M
/dev/hda2 swap +512M
/dev/hda3 / +15360M
/dev/hda4 /home xxxM

mke2fs /dev/hda1
mke2fs -j /dev/hda3
mke2fs -j /dev/hda4

mkswap /dev/hda2
swapon /dev/hda2

mount /dev/hda3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/hda1 /mnt/gentoo/boot
cd /mnt/gentoo
tar -xvjpf stage?-*.tar.bz2 (从U盘copy?)

tar -xvjf /mnt/cdrom/gentoo/snapshot/portage-xxx.tar.bz2 -C /mnt/gentoo/usr

mount /dev/hda4 /mnt/gentoo/home
mount -t proc none /mnt/gentoo/proc

配置 make.conf
CFLAGS="-march=pentium-m -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="$ -fvisibility-inlines-hidden"
LDFLAGS="-Wl,-O1"
USE="nptl nptlonly -qt -kde -doc nls cjk" (nptl是一个LinuxThreads的替代品,使您机器的性能上一个台阶,在编译glibc时将用到。相关测试结果和讨论可以去BIM的developer论坛看看。“nptlonly”是最合适的,可以处理掉glibc多余的编译,缩短编译时间)
GENTOO_MIRRORS="ftp://linux.ntcu.net/dists/gentoo/ http://www.zentek-international.com/mirrors/gentoo/ http://gentoo.ccccom.com http://mirror.tucdemonic.org/gentoo/ http://gentoo.gg3.net http://gentoo.math.bme.hu "
SYNC="rsync://rsync.asia.gentoo.org/gentoo-portage"
MAKEOPTS="-j2"
FEATURES="sandbox ccache distlocks"
CCACHE_SIZE="512M"

cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
chroot /mnt/gentoo /bin/bash
env-update && source /etc/profile

注: 安装过程中随时可以在一些步骤中中断, 任何时候需要重新继续之前的步骤, 只需重复如下动作:
挂载各个分区 (如第一部份准备工作中的挂载分区步骤)
重新执行如上的 chroot 命令与 env-update 命令
继续你之前中断的步骤

emerge sync

echo "sys-libs/glibc userlocales" >> /etc/portage/package.use

nano -w /etc/locales.build ::
en_US.UTF-8/UTF-8
en_US/ISO-8859-1
zh_CN.GB18030/GB18030
zh_CN.GBK/GBK
zh_CN.UTF-8/UTF-8
zh_CN/GB2312

cd /usr/portage
scripts/bootstrap.sh

emerge --nodeps gdbm libperl perl

emerge -e system

ln -sf /usr/share/zoneinfo/Asia/Beijing /etc/localtime
date
hwclock --show
hwclock --hctosys
nano -w /etc/conf.d/clock
(将 CLOCK="UTC" 改成 CLOCK="local")

(
我们应该在装完内核配置完用户等步骤完成之后, 系统重启了, 才执行下面两个命令来更改系统时间
# date 120610092004
# hwclock --systohc
)

emerge gentoo-sources
cd /usr/src/linux
make menuconfig
make && make modules_install
cp -i arch/i386/boot/bzImage /boot/kernel-2.6.10 (你喜欢叫它啥名字都可以, 到时在 grub.conf 中配置好就行)
cp -i System.map /boot/System.map-2.6.10

emerge udev
emerge hotplug && rc-update add hotplug default
emerge coldplug && rc-update add coldplug default
emerge alsa-utils
nano -w /etc/modules.d/alsa (编辑 alsa 配置以让内核加载针对你的网卡的驱动)
modules-update
rc-update add alsasound boot
emerge nvidia-kernel (装显卡驱动,ati ???)

/etc/fstab :
/dev/hda1 /boot ext2 noauto,noatime 1 1
/dev/hda3 / ext3 noatime 0 1
/dev/hda2 none swap sw 0 0
/dev/hda4 /home ext3 noatime 0 2
proc /proc proc defaults 0 0
shm /dev/shm tmpfs defaults 0 0

nano -w /etc/conf.d/hostname (设置 HOSTNAME 变量, 例如我的 hzy)
nano -w /etc/conf.d/domainname (设置 DNSDOMAIN 变量, 例如我的 gentoo.com - 瞎叫的, 这域名不存在哦)

nano -w /etc/hosts :
127.0.0.1 hzy.gentoo.com hzy localhost

emerge grub
grub
nano -w /boot/grub/grub.conf :
default 0
timeout 10

title=Gentoo Linux 2004.3 (2.6.10-morph15-r1)
root (hd0,0)
kernel /boot/kernel-2.6.10 ro root=/dev/hda3

emerge syslog-ng && rc-update add syslog-ng default
emerge vixie-cron && rc-update add vixie-cron default

passwd
useradd zy -m -G users,wheel,portage,audio,games -s /bin/bash
passwd zy

emerge splashutils
splash_geninitramfs -v -g /boot/fbsplash-emergence-1024x768 -r 1024x768 emergence
nano -w /boot/grub/grub.conf :
default 0
timeout 30
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz

title=Gentoo Linux 2004.3 (2.6.10-morph15-r1)
root (hd0,0)
kernel /2.6.10-morph15-r1 root=/dev/hda3 video=vesafb:ywrap,mtrr,1024x768-32@85 splash=silent,theme:emergence
initrd (hd0,0)/fbsplash-emergence-1024x768

exit (退回 LiveCD 提供的环境)
cd /
umount /mnt/gentoo/proc /mnt/gentoo/boot /mnt/gentoo/home /mnt/gentoo
reboot

emerge -pv xorg-x11

emerge xorg-x11

装显卡的 glx 支持 (以 nvidia 为例):
emerge nvidia-glx

配置 X:
xorgcfg

startx