Archive for September, 2009

弄了只 Eee PC 1000HE & 一点经验教训 (2009.10.2 更新)

首先需要承认的是交了点微软税, 也是经偶手上第二台带微软税的本子.
这个钱也许是物有所值的. 下面就谈这个问题.

上来先说电池问题.
Win32 平台难道优化过了? 耗电比 Linux 平台明显要少.
Wifi 等外设全关掉, Win32 系统耗电可以到 6.5W 左右 (开 Wifi 7.5-8.5W),
Linux 下要 8W, 开 Wifi 要 9-10.5W.
这样说 Win32 给偶送了至少一个小时的续航时间, 这样物有所值算是种讽刺.
(如何做到: win32 下要开 eeectl, S.H.E 开到省电模式)

S.H.E 在 Win32 下可以给 CPU 降频, 降电压(这很重要, 用CPU-Z 看见的). Linux 下相关支持见下.
关于电池, BatteryMon (Win32, 必用) 和 Linux /proc 的数据完全不一致. Linux 下得到的数据和标称电压更接近.
62Wh 的容量数据两边都没有错. 买电池, 看瓦时. :D
(901, 904, 1000?? 的电池通用, 偶怎么就犯了只会看毫安时的错?)

PowerTOP 也许有 Bug, 拔掉电池之后才能正常工作, 否则会出错退出.
(详情待补, 用 strace 看到是文件读取问题, 换核心后正常)

装上了 eee-control. 但仍然不能调频率(重点是 FSB), 需要 kernel module (传说中的 dkms), 可是核心太新了, 编译不通过. 喜欢瞎折腾的同学去买 701 或 901 系列吧.

eeectl (win32) 可以调风扇速度, 偶觉得如果加散热垫的话整个散热会更好一些. Linux 也可以用 eee-control 调.

接着是性能问题
GeekBench 在 Linux 下(单用户模式, performance governor) 相对 Win32(Super Performance) 有 12% 的提升.
win32 下 937 分 (Super 模式,1.69GHz) linux 1055 分 (1.67Ghz) —另一个讽刺?
当然, win32 下可以用 SetFSB 超频 (需慎用), 只是偶不愿做.
刷 BIOS 可以更改 S.H.E 的设置, 让 linux 也降频 (可惜偶一直看不见具体的降频?!). 也是懒. 哈哈.

另外看到了 1101HA, 这台机器的特点是性能低(Atom Z530), 屏幕好.

最后是硬件
键盘: PgUp, PgDn, Home, End 需要按 Fn, 稍微适应一下还凑合. 也许这是催偶去用 vim 了?
全选尽量用 Ctrl + A, 要不再按着 Shift 挺费劲. 键盘打字时整体感觉还不错. 如果键盘能再加宽一行, 把上面所述的四个键做出来, 弄成 11 寸的本子或许不错.
屏幕 1024×600, 如果网络环境不够好的话推荐 Opera 浏览器. 可以考虑全屏浏览.
触摸板的按键比较硬, 多点触摸看了说明也不熟练多用几次就会了. (和一般的本子不同)
屏幕的左右边框略宽了点.

买本子须知
1 看应用情况
打字上网? 看电影? 游戏? 设计? 特殊需求? …
2 看配置
性能方向就不用偶说了, 省电方向要看 CPU, 芯片组, 配套软件.
散热也是问题.
3 看其他人评论
4 看文章 (如果有拆解文章则更好)
5 看配件 (如 1000HE 可以换装更大的九芯电池, 淘宝有售)
6 看销量 (这 …)

Tags:
Comments

谈谈 SPEAR 算法.

之前写过一些关于 delicious 的文章. 这里再来一篇.

SPEAR 算法把收藏同一个项目的用户分成了两组, 发现者和追随者.
仅仅靠这样的逻辑足够吗?

就偶个人而言, reco 是无差别追随, 仅根据内容判定. 只要跳进它的监视圈就会被偶看到.
这样的方式保证能几乎在(有人收藏的)第一时间追到它. (但事实是一天看一次)

如果不隐藏收藏的条目, 偶能够很容易把自己送进那 top 200 的名单中去.
同理 SPEAR 算法很容易被攻破, 你只要用简单的分析法选出他们 top 200 中的一些人,
如果他们中有 n 个人 (n 取 2 就可以了) 收藏了这个东西, 再加上收藏时间的判断, 这就够了.
这种算法同样鼓励抢沙发, 鼓励作弊. 大批量收藏, 但如果没有实际效果 (收藏人数不够多), 一天就删掉.

许多推荐算法有一个共同的特性, 你拥有了某种地位, 隐含意义是你需要为保持这个地位而继续努力.
最近, 偶在 reco 的阅读停掉了, 但数据抓取照常.
几分钟的阅读并不算什么. 但偶为什么要花这些时间呢?

问题在于:
偶的查询流程没有因为 reco 而发生大的改变. 简单说, 只要找到就够了.
delicious 的搜索总是搜索所有人的收藏.
往下推, 可以得到:
不抱着成见去看问题, 这时候无论怎么做都是对的. 那些成见只是束缚.

偶要保持什么地位? 不需要. 读不读 reco 是非常次要的事情, 恢复也只需要一句话的时间.

为保持某种地位而做的事通常都是浪费时间的.

偶笑. :D

Tags:
Comments

评软件包 (4)

开始杂乱一下. :D

ack (ack-grep in ubuntu)
better than grep, 不需要更多的解释. 自己去查一下吧. 用法基本一样, 但对于子目录查询, 它就不需要参数了.
可是偶总是习惯用 grep, 因为比较顺手?!

apache2-utils
一句话, ab (apache bench) 在里面. 如果你知道 htdigest, htpasswd 什么的, 它们也在.
在 gentoo 下这个包叫 apache-tools.

busybox-static
偶不是很清楚 nash 的来历, 只知道是 redhat 产的东西. busybox-initramfs 估计可以替代.
busybox 用途很多, 特别是这个静态版的, 救命专用.
仅由完整的 busybox-static (当然要有文件系统) + kernel 组成的系统, 只要有 LAN 网络就可以装 gentoo.

libstdc++5
默认都会装 libstdc++6, 少量用旧 gcc 编译的应用程序如 helixplayer 需要它.

pppoeconf
一句话, 在 ubuntu 下它依赖 gdm, 可以通过修改 /etc/init.d/pppd-dns 解决(见 gdm 就删).

safe-rm
防止删除重要文件. 主要适用于普通用户, root 好像不管 (未仔细测试, 也许 PATH 设置有问题).
调用 /bin/rm 就可以绕过它.

spawn-fcgi
自从 lighttpd 把它分出来的时候, 各 web 服务器的包都依赖它, 但没看错的话只有 nginx 必须使用它.
cherokee 和 lighty 自己可以 spawn fastcgi processes.

sshfs
显然依赖 FUSE. 非常方便的传文件利器. mount 一下就知道.

time
bash 和 zsh 内置的 time 输出就不一样. 这个是 /usr/bin/time.
0.00user 0.00system 0:00.00elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+211minor)pagefaults 0swaps

预告, 不知道是什么系列 (可能要分两三次说完):
dstat, authbind, memstat, dnsutils, autossh, multitail, nethogs, chkrootkit, iotop
cronolog, dmidecode, keychain, iptraf

Tags:
Comments

纯属瞎折腾: 一次 Kernel 2.6.31-rc8 配置

最重要的写在前面:
1 make menuconfig 进入后, 用 / 键有搜索功能.
2 搜索功能提供的 “Depends on” 非常有用, “Location” 那就更不用说了.
以后有同学要介绍开什么选项, 告诉他怎么找, 用什么名称找就可以了.
3 不会熟练用这个搜索, 在配置上就会经常走弯路.
4 autokernconf 只能作为参考, 它经常会帮倒忙.

配置点:
1 cryptsetup 相关
CONFIG_DM_CRYPT, CONFIG_BLK_DEV_LOOP

2 关了 ipv6
对于某些人来说 Y 或者 M 也都无妨.

3 ecryptfs
MISC_FILESYSTEMS && EXPERIMENTAL && KEYS (忘了它就开不了) && CRYPTO && NET

4 btrfs (compression)
效果不错. 自动开 zlib.

5 ramzswap (a.k.a: compcache)
编译为模块. 自动开 lzo.
ubuntu 下这个 ramzswap 必须使用 initramfs 引导才能激活.

6 i915 kms (kernel mode settings, framebuffer console)
走弯路. 直奔目标 DRM_I915_KMS 去吧.
DRM_I915_KMS – DRM_I915 – AGP_INTEL

7 embedded
眼一晕, 也不知道看见了什么就顺手开了.

8 某驱动
需要 X86 && X86_PLATFORM_DEVICES && ACPI && INPUT && RFKILL

9 kernel debugging
不开 CONFIG_PRINTK_TIME 就太不好了.

有条件的同学可以看看 boot trace (CONFIG_BOOT_TRACER).
/usr/src/linux-2.6.xx-xxx/scripts 里面有 bootgraph.pl, 看过代码就知道怎么用了.
生成 svg 可以在浏览器中看. 可见这 fastboot 的并发一点也不彻底.

10 关于 initramfs
不太明白 initramfs 包那么大干什么? 能不能做一个好几十 Mb 的扔内存里直接就启动了? (显然可以)
看起来里面的文件都挺有用的样子, 但为什么不能做的再小一点? uclibc / dietlibc?

11 启动时间
上面说 fastboot 并发不彻底, 这里说 udev 之流浪费的启动时间.
5 秒开机的例子是先启动 dbus, 再启动 xorg, 和 xorg 并发启动的是 hal, 最后是 udev.
gentoo 的 openrc 很久没有用过了. 不知道现在怎么样.
upstart 很好, 但由于整体 sysvinit 的架构还没扔掉, 它更大的能力还很难发挥出来.

有谁记得 hotplug, coldplug 这两个东西? udev 现在干的活太多了.
还不如都倒退回 MAKEDEV 时代, 先启动 X 剩下启动后再说.
所以 udev 应该在 xorg 之后启动. :D

Tags:
Comments

Debootstrap 简单总结 (ubuntu 版, 2009.9.5 修正)

重点参考: http://www.debian.org/releases/stable/i386/apds03.html.en

0 分区, 准备文件系统.
打算装 karmic 并且用 grub2 引导的可以用 ext4 做根文件系统, 不需要单分出一个 /boot 来.
有安全需要的装个 wipe, dban 或者直接用 dd (用 /dev/urandom 填).
进行下一步之前在外面装好 debootstrap 什么的.

1 debootstrap
怕麻烦的, 推荐直接加装 ubuntu-standard (见 include 参数). (这样不行, 事后可以这样加装)
再加上 build-essential 也不错. (等效: –variant=buildd). 改: 不完全等效
不这样做就会走上偶走过的路 (不装主要的虚拟包), 虽然不是什么大弯路.
需要桌面环境的加 ubuntu-desktop, xubuntu-desktop, kubuntu-desktop 什么的.
特别的, ubuntu 有个 tasksel, 比如装套 LAMP 直接用 sudo tasksel install lamp-server

用了这样一个基本系统.

sudo debootstrap --verbose --include=cryptsetup,gnupg,nano,sudo,apt-utils --variant=minbase lucid /TARGET/ http://kr.archive.ubuntu.com/ubuntu/

需要注意只有 base 类的包才能放进去. 比如 wicd 什么的就进不去.
重要提示: xorg 不要在这时候放进去.

2009.9.3 修正:
未装主要虚拟包的原因是 –variant=buildd, 这个环境是给开发者编译软件用的.
但这样做生成的是最小的编译(而不是使用)环境.
加装 ubuntu-minimal 可以得到正常的最小系统.
偶走过的路就是把 buildd 环境变成正常可用系统, 而不通过 ubuntu-minimal 等虚拟包.
如果你愿意, 可以试试 –variant=minbase, 应该也能够扩展成一个可用系统. 拿不准的时候可以 –print-debs.

2.1 给 /dev 下添设备
cd /target/dev; MAKEDEV -v generic-nopty
2.2 挂载 /dev, /proc, /sys 并 chroot (用过 gentoo 的都知道怎么做.)
好像这样比较快. 你可能需要加条 sudo.
for dir in proc dev sys; do mount --bind /$dir /target/$dir; done

3 修改里面的 /etc/apt/sources.list, 如有必要加 /etc/apt/apt.conf, 然后 apt-get update.
你喜欢 aptitude 的话那就用. 图省事可以从外面复制一个进来.
需要精简系统的

4 (可选) 装 cryptsetup 用于加密文件系统

5 配置文件
/etc/fstab 设置挂载点
/etc/network/interfaces 设置网络 (如果你装 wicd 的话就不用改了)
2009.9.5 注, 这里可能有个大坑. 加上以下两行解决之. (ubuntu only?)
auto lo
iface lo inet loopback

/etc/default/* 有好多
顺便解决一下 hostname (/etc/hostname), DNS (/etc/resolv.conf)
多数人还需要改 locales, 要不要装 language-pack-en 这个你自己决定.
dpkg-reconfigure console-setup
dpkg-reconfigure tzdata

关于 locales 的问题:
rm /etc/locale.gen
echo en_US ISO-8859-1 >> /etc/locale.gen
echo en_US.UTF-8 UTF-8 >> /etc/locale.gen
echo zh_CN.UTF-8 UTF-8 >> /etc/locale.gen
cp /etc/locale.gen /var/lib/locales/supported.d/local
sudo update-locale LANG=en_US.UTF-8 LC_CTYPE=zh_CN.UTF-8
dpkg-reconfigure locales
echo export LC_CTYPE LANG >> /etc/default/locale

6 bootloader (用 karmic 的推荐 grub2, 其余推荐 grub)
先装好 linux-image-generic. (不明白为什么有人喜欢 -rt 的核心.)
向 /etc/initramfs-tools/modules 中加入需要的模块 (特别是加密文件系统使用者).
顺便更新 initramfs: update-initramfs -u
最后 update-grub 结束(这东西很智能).

7 dpkg –configure -a
配置问题这里要都修掉.
你可以试试这一句, 最好只执行一次 (出问题专用?). dpkg-reconfigure –all –unseen-only

8 update-*
比较重要的有 update-alternatives.

9 adduser, passwd
装 gentoo 从来没忘过, 只是这样装就容易忘了.

10 有些可能会被忘记的包
装 xfs 的: xfsprogs. (其它文件系统同理, 如 reiserfsprogs)

11 杂类
/etc/security/limits.conf
/etc/sysctl.conf (用 sudo sysctl -p 应用新的设置)

12 进一步的安全与优化
open{ssh,ssl,vpn}-blacklist 和 apparmor 什么的看起来不错.
优化暂不讨论, 默认的 ubuntu 这方面做的不错 (最多也就是 sreadahead, insserv 什么的). :D

Tags:
Comments