逸珑 8089 笔记本 EC 固件 PQ1D26

这是逸珑 8089 系列笔记本的 EC 固件程序,版本为 PQ1D26
下载地址:http://www.heiher.info/service/files/pq1d26.bin
SHA1SUM:5253655667897a0d39cd1ea6e7ee113477839a0d
警告:EC 烧写失败,会导致无法正常开机,请谨慎!

烧写方法:
1. 下载 EC 固件到本地硬盘 /boot 分区中。
2. 接上笔记本的 AC 电源,重启或开机。
3. 开机时,按键盘上的 [DEL] 键进入 PMON 命令接口。
4. 输入命令 load -r -d /dev/fs/ext2@wd0/pq1d26.bin 开始烧写。
5. 完成后 EC 固件程序会自动关闭计算机,按电源键开机。

Over!

ndd – 支持网络的 dd 工具

支持网络传输的 dd 程序,目前实现了网络传输和 dd 的部分功能。

使用案例
1. 创建一个 4GB 大小的空文件

./ndd if=/dev/zero of=hd.img bs=4096 count=1048576

2. 复制映像文件中的第一个分区

./ndd if=hd.img of=p0.img bs=512 skip=63 count=1975995

3. 从主机(192.168.0.1)复制硬盘的我一个分区到本地(192.168.0.2)的第二个分区
主机(192.168.0.1)

./ndd if=/dev/sda nof=192.168.0.1:9000 bs=512 skip=63 count=1975995

主机(192.168.0.2)

./ndd nif=192.168.0.1:9000 of=/dev/sda bs=512 seek=74220300

注意:用于网络传输时,建议双方 bs 相同。

源代码:http://www.heiher.info/service/projects/ndd/

Over!

Linux 源代码阅读工具

阅读 Linux 是一件很麻烦的事情,都不知道从哪里开始。即使阅读其中很小的一部分,都可能涉及到很多个源文件,分布在不同的目录中,如何去定位函数和变量在哪里申明的成为了阅读过程的一大障碍。

LXR(Linux Cross Reference) 改变了这一切,它对 Linux 源代码(各个版本)中所有的符号都建立了索引,并提供简单、快速的查询接口。在阅读源代码的过程中可以轻松的查找到相关符号的声明处。

LXR 网站地址:http://lxr.linux.no

Over!

制作 X86 平台的龙芯内核交叉编译环境

先下载 Binutils 2.20 和 GCC Core 4.4.2。
Binutils 2.20: http://ftp.gnu.org/gnu/binutils/binutils-2.20.tar.bz2
Binutils 2.20 Loongson2f 补丁: http://heiher.info/sftp/files/binutils-2.20-loongson2f.patch
GCC Core: http://ftp.gnu.org/gnu/gcc/gcc-4.4.2/gcc-core-4.4.2.tar.bz2

设置环境变量和新建目录

$ mkdir -p /opt/loongson-cross-tools/usr/{bin, lib, share}
$ echo "PATH=$PATH:/opt/loongson-cross-tools/usr/bin" >> ~/.bashrc

编译 Binutils:

$ tar xjf binutils-2.20.tar.bz2
$ cd binutils-2.20
$ patch -Np1 -i ../binutils-2.20-loongson2f.patch
$ cd .. && mkdir binutils-build && cd binutils-build
$ ../binutils-2.20/configure --prefix=/opt/loongson-cross-tools/usr --target=mipsel-pc-linux-gnu --with-sysroot=/opt/loongson-cross-tools --enable-64-bit-bfd --disable-nls --enable-shared
$ make configure-host
$ make
$ make install

编译 GCC:

$ tar xjf gcc-core-4.4.2.tar.bz2
$ mkdir gcc-build && cd gcc-build
$ ../gcc-4.4.2/configure --prefix=/opt/loongson-cross-tools/usr --target=mipsel-pc-linux-gnu --with-sysroot=/opt/loongson-cross-tools --disable-multilib --with-newlib --disable-nls --disable-shared --disable-threads --enable-languages=c --with-abi=64
$ make all-gcc
$ make all-target-libgcc
$ make install-gcc
$ make install-target-libgcc

Over!

FastDog – 轻量级的 Web 服务器

最近在学习 Web 开发,在学习过程中我觉得认真的研究一下 HTTP 协议还是有一定必要的。就试着写一个 Web 服务器玩玩吧,好久没有用C语言写过程序了,也当作一个练习吧。

FastDog 大致的架构如下:
* HTTP 1.1 协议
* 支持静态和动态页面
* 高性能I/O
* 多工作线程
* 基于共享库的模块化站点框架

目前在看最重要的东西 RFC2616(HTTP 1.1 协议),看完准备实现 HTTP 部分和站点框架。

项目网站:http://github.com/heihaier/fastdog/

Over!fastdog/

在 Linux 系统中清除 Windows 用户密码

不论你由于什么原因丢失了正确的 Windows NT/2000/XP/Vista 的用户密码,导致不能正常登录用户。你都可以使用下面的方法清除了硬盘中 Windows 系统的用户密码。

此方法是使用一位德国高手的程序 chntpw,这个程序是完全开放源代码的,如果你有兴趣去研究 Windows SAM 文件的格式,这个程序是一个很好的参考。

1. 制作 Linux Live CD
如果你已经有一张可以直接引导且包含NTFS-3G模块的 Live CD,那么就可以略过一个步骤。否则建议你下载一个 Ubuntu Live CD并刻录成盘。

2. 下载 chntpw
下载 chntpw 最新版本的源代码(其中包含已经静态编译好的 i386 版本的二进制程序)到 U盘中。
下载地址:chntpw-source-080526.zip

3. 清除密码
使用 Live CD 启动计算机,插入保存了 chntpw 程序的U盘。挂载安装了 Windows 系统和U盘的分区。解压缩 chntpw 源代码包。运行 chntpw 程序清除密码。(chntpw 的详细使用方法在源代码中的 README.txt 文件中有详细的解释)

Over!

WordPress 评论数学验证的简单实现

谈到 WordPress 的垃圾评论,我已经无语了。下面给出一个 WordPress 评论数学验证的简单实现方法。希望能够解决由垃圾评论给你带来的烦恼。

1. 编辑 WordPress 安装目录的 wp-comments-post.php 文件,修改下面列出的两处:

$comment_author       = ( isset($_POST['author']) )  ? trim(strip_tags($_POST['author'])) : null;
$comment_author_email = ( isset($_POST['email']) )   ? trim($_POST['email']) : null;
$comment_author_url   = ( isset($_POST['url']) )     ? trim($_POST['url']) : null;
$comment_content      = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null;
// 在其后加入如下代码
/* Comment Math Checker
 * Heihaier - admin@heiher.info 
 */
$comment_numa	= (isset($_POST['numa'])) ? trim($_POST['numa']) : null;
$comment_numb	= (isset($_POST['numb'])) ? trim($_POST['numb']) : null;
$comment_sumab	= (isset($_POST['sumab'])) ? trim($_POST['sumab']) : null;
if ( get_option('require_name_email') && !$user->ID ) {
	if ( 6 > strlen($comment_author_email) || '' == $comment_author )
		wp_die( __('Error: please fill the required fields (name, email).') );
	elseif ( !is_email($comment_author_email))
		wp_die( __('Error: please enter a valid email address.') );
}
// 在其后加入如下代码
/* Comment Math Checker
 * Heihaier - admin@heiher.info 
 */
if(!$user->ID)		// guest user only
{
	if((($comment_numa + $comment_numb) != $comment_sumab) || empty($comment_sumab))
		wp_die(__('Error: please type the correct results of the math problems.'));
}

Continue reading WordPress 评论数学验证的简单实现