morse – Linux 系统莫尔斯电码练习软件

morse 是一款运行在 Linux 系统里,利用计算机声卡运行 morse 电码播放的练习软件,这个软件编译后生成两个程序 morse 和 QSO。

morse : 将标准输入的字符以 morse 电码的形式播放出来。
QSO : 生成练习通信案例。

源代码 http://www.heiher.info/service/files/morse-2.1.tar.gz

编译方法

tar xzf morse-2.1.tar.gz
cd morse-2.1
make all

使用方法

./QSQ | ./morse -w 速度 -l -e

Over!

逸珑 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!