patch qt/e
 cd $QTDIR; cat $OPIEDIR/qt/qte23x-all.patch | patch -p1
for IPAQ
 ./configure -qconfig qpe -depths 4,16,24 -xplatform linux-ipaq-g++ -no-qvfb -system-jpeg -system-libpng -system-zlib -vnc -no-xft 
for the Sharp Zaurus SL5x00 PDA:
 ./configure -qconfig qpe -depths 16,32 -xplatform linux-sharp-g++ -no-qvfb -system-jpeg -system-libpng -system-zlib -vnc -no-xft 
on x86:
 ./configure -qconfig qpe -depths 4,16,24,32 -system-jpeg -system-libpng -system-zlib -no-xft -qvfb

 
加入 big5 textcodex 這個 qconfig-qpe.h 我加入了 big textcodec
將以下三行註解起來。
//#ifndef QT_NO_CODECS
//#define QT_NO_CODECS
//#endif
以下是一個範例, 使用 big5 textcodec 來印出中文字串。 傳入一個 std::string 會傳回 QString 以 big5 textcodec 來編碼。
QString string2qstring (const std::string &str, const char *codename = "big5");

QString string2qstring (const std::string &str, const char *codename)
{
 QString qstr;
 if (codename == 0)             // ASCII
 {
  qstr = QString (str.c_str ());
 }
 else
 {
  QTextCodec *codec = QTextCodec::codecForName (codename);
  if (codec)
   qstr = QString (codec->toUnicode (str.c_str ()));
 }
 return qstr;
}  
使用 makeqpf 造出 qpf 字型檔案:
TTF To QPF HOWTO
http://www.zauruszone.farplanet.net/wiki/index.php?TTF%20To%20QPF%20HOWTO 原網址
下載 makeqpf
copy mingliu.ttc (這就是 MS windows 的細明體) -> $QTDIR/lib/fonts, 在 $QTDIR/lib/fonts/fontdir 加入
mingliu mingliu.ttc FT n 50 120 u
執行
makeqpf -display Transformed:Rot0 -A
makeqpf -display Transformed:Rot180 -A
makeqpf -display Transformed:Rot270 -A
makeqpf -display Transformed:Rot90 -A
會產生
mingliu_120_50.qpf      
mingliu_120_50_t5.qpf
mingliu_120_50_t10.qpf  
mingliu_120_50_t15.qpf
畫面旋轉有四個角度, 所以要產生 4 個 fonts, 否則在某個角度就不能顯示了。 畫面的旋轉角度:
export QWS_DISPLAY=Transformed:Rot90:0
export QWS_DISPLAY=Transformed:Rot180:0
export QWS_DISPLAY=Transformed:Rot270:0
export QWS_DISPLAY=Transformed:Rot0:0
http://sourceforge.net/projects/bedic

patch zbedic-0.9.1 使用 mingliu 字型

由於覺得 QT 的 unifont 太大而且不是很好看, 我修改了 zbedic-0.9.1 的原始碼使其可以使用 mingliu font。
http://sourceforge.net/projects/bedic
下載
包含我修改過的程式以及我編譯完成的 arm elf 執行檔。
編譯方式:
下載 libbedic-src-0.9.1.tar.gz
這是 library
編譯 libbedic-src-0.9.1.tar.gz
make ARCH=arm

編譯 zbedic-0.9.1_patch_for_mingliu_font.tar.bz2
修改 Makefile 

QPEDIR=/mnt/others/opie/opie
QTDIR=/mnt/others/opie/qt-2.3.7
將 QPEDIR, QTDIR 指向你的 QT/E, OPIE 路徑, 上例是我的路徑,
所以你得先有 OPIE, QT/E (必須先 compile 起來),
我還沒有完全將 OPIE build 起來, 
不過已經可以用來 compile zbedic-0.9.1 了。
make ARCH=arm
這裡可以下載 opie sdk

IPAQ 3870 改裝記

尋尋覓覓了一年, 終於在 yahoo 拍賣網站以 7500 買了一部 3870, 有 CF 背夾 (未拆封), 車充, 還蠻新的, 不過不能算便宜, 還有藍芽功能。 玩了 win ce 幾天後, 開始掙扎要不要換成 familiar (linux os), 心中幾經掙扎, 以戒慎恐懼的心情開始了, 最重要的是 boot load, 嗯! 看看文件, download 檔案, 在看到小企鵝的 boot load 的畫面時, 心中一塊大石頓時放了下來。 要不然我的 IPAQ 3870, 就毀了。 ~^_^~ 好! 開始安裝 dual boot, 把 familiar 裝在 cf, 這樣就可以雙開機了。 很遺憾, 由於看錯文件了, 所以 win ce 被我蓋掉了, 現在只剩下 familiar, win ce 不見了。 我是安裝 opie 的環境, 感覺還不錯。 由於有備份 win ce bootload, win ce 本身, 所以理論上是可以把 win ce 裝回去的, 然後在繼續試試 dual boot, 不過 opie 環境我很喜歡就懶的做了。
ref:
http://www.ruault.com/Zaurus/ethernet-over-usb-howto.html
http://paar.kh.edu.tw/MT-blog/C700/archives/000026.html
http://www.linux-usb.org/usbnet/
\section{ipaq 透過 usb 上網}
快速導覽
in pc
/sbin/ifconfig usb0 192.168.129.200 broadcast 192.168.129.255 netmask 255.255.255.0


in ipaq:
ifconfig usbf 192.168.129.201
route add -net default gw 192.168.129.200
在 /etc/resolv.conf 加入 dns
nameserver aaa.bbb.ccc.ddd


in pc:
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.129.201 -j MASQUERADE

我安裝的 familiar 0.7.2 有 sshd 可以用,
當連線設定完成後, 就可以用 ssh 登入了。
擺脫慢慢的 minicom 吧!

bootstrap-v0.7.2-h3600.tar

執行 minicom, minicom 需要 lrzsz 套件,
若是在執行 minicom 進行 xmodem, ymodem, zmodem 有問題時,
檢察 lrzsz 是否安裝。
在 familiar bootload 下, type
load root,
可以載入一個 jffs2 的 root file system.

/etc/ipkg.conf
src f http://familiar.handhelds.org/releases/v0.7.2/base/armv4l
src o http://opie.handhelds.org/feed/ipaq/stable/latest/

\section{ipaq 常用的 option}
ipkg command
-force-reinstall        
-force-overwrite 
-nodeps
-recursive
list // list packages

opie source 取得方法

cvs -d:pserver:anoncvs@cvs.handhelds.org:/cvs login anoncvs 此為 password cvs -d:pserver:anoncvs@cvs.handhelds.org:/cvs co opie build qt-2.3.7 for opie first must patch patch -p1 < $OPIEDIR/qt/qte237-all.patch ln -s $OPIEDIR/qt/qconfig-qpe.h src/tools/ How to create a custom jffs2 image for the iPAQ Familiar Version: .5, .5.1 1) Download the latest jffs2 *.tar.gz file for familiar. 2) Update the files you want to change (i.e: Update the modules directory with the latest modules) 3) Make sure all files are owned by root Execute 'find ./ -print | xargs chown root.root' from the root of your jffs2 image. 4) Obtain mkfs.jffs2 from here. 5) Execute mkfs.jffs2 -o outfile.jffs2 -d directory -p -e 0x40000 i.e: mkfs.jffs2 -o test.jffs2 -d task-bootstrap -p -e 0x40000 Note: 0x20000 is for mono Ipaqs (31xx's), 0x40000 is for color ipaqs(36xx's, 37xx's, 38xx's). tar zcvf qtopia-1.7.0-arm.tar.gz apps/ etc/ help/ plugins/ services/ bin/ i18n/ lib/ pics/ sounds/
這是我編譯好的 bin for IPAQ 3800
libqte-2.3.7.tar.gz qtopia-1.7.0-arm.tar.gz ipkg 需要 gconv-big5_2.3.1-0_arm.ipk, gconv-unicode_2.3.1-0_arm.ipk, gconv-modules_2.2.5-2_arm.ipk 我寫的 big5 to unicode 是使用 iconv function。