顯示具有 Zaurus 標籤的文章。 顯示所有文章
顯示具有 Zaurus 標籤的文章。 顯示所有文章

2006年11月17日

[PDA] Zaurus Sharp Rom - 重整手記

還是回到 Sharp ROM,把手頭的 Zaurus 重整了一下,順手把過程記了下來:

  1. C860 Sharp ROM 1.10JP (Conics) + 1.40JP Update + v14i Special Kernel

    三者一氣呵成:1.10JP NAND Restore 後,不要進入系統;接著做兩次 Update 後,還是不要進入系統;然後將 NAND Backup 下來,就可以得到一份乾淨的 1.40JP ROM with v14i Special Kernel。

    重開機進入系統後,校正觸控版及設定時區及時間。

  2. 安裝 Tree!Explorer QT (treeexplorer_1.7.6_arm.ipk)。

    安裝後給予 root 權限,並執行一次,進 menu -> 表示 -> Language,把語系設定成 English。

  3. 安裝 Konsole (opie-embeddedkonsole_1.5.9-2_arm.ipk)。

    安裝後取消該軟體 VGA 畫面調整的選項。

  4. 安裝 ZEditor 英文版 (zeditor_3.5.4english_arm.ipk)。

    安裝後給予 root 權限。

  5. 安裝 CKeyboard (CKeyboard_1.05_all.ipk)。

  6. 安裝字型 arial, mingliu, efont, veramono (qpf 檔在 SD 卡,連結到 /home/QtPalmtop/lib/fonts)。

    原 /home/QtPalmtop/lib/fonts 中的 fixed, helvetica, lcfont 字型都刪除。

    其中 arial 字體較大,把 qpf 字形大小加 20;veramono 改名為 fixed 做為終端機字型,且因 veramono 字體較小,把 qpf 字形大小減 20 (留 fixed 100 及 120 兩個 qpf 就行)。

  7. 安裝中文化檔案 (easycht_1.0_all.ipk 用 winrar 解開,只留 qm 及 desktop 檔)。

    我是習慣留在 ja 語系,所以把中文化的 i18n qm 檔放到 ja 目錄下;把中文化 desktop 檔用 script 把 ja 替換成 bak、en 替換成 ja,再拿來換掉原來的 ja 語系 desktop 檔。(我的檔案替換方式是用 script 比對,有相同名字的檔案才替換)

    另外,我手頭上的中文化檔案不含 HancomSheet 及 HanconWord,所以把 i18n/ja 下的 hancomsheet-ja.qm 及 /home/QtPalmtop/bin/ 下的 word-eucJP.rc 刪除,讓這兩者恢復成 en 語系。

    到此可以重新開機一次,檢查中文化是否正常。

  8. 安裝一些常用的 console 工具:libncurses (libncurses_5.0_arm.ipk), mc (mc-german_0.3_arm.ipk), joe (joe_2.9.8pre1_arm.ipk), sudo (sudo_0.1_arm.ipk), rsync (rsync_2.4.6-2_arm.ipk)。

  9. 安裝一些 applet:Battery Applet (qtopia-commbbatteryapplet_1.0.6_arm.ipk), Clipboard Applet (clipboard-applet_1.0.0-1_arm.ipk), Memory Applet (qtopia-memoryapplet_1.0.1_arm.ipk), Sub Applet (subapplet-zaurus_1.0.8_arm.ipk), Suspend Applet (qpe-suspendapplet_1.5.0-3_arm.ipk), Task List Applet (tasklist-applet_1.0.5_arm.ipk)。

    Battery Applet 用來調整背光亮度及超降頻用;Clipboard Applet 用來取代 Copy/Cut/Paste 快速鍵;Memory Applet 用來設定 swap 及監控 memory 的使用量;Sub Applet 用來收納這些 applet,減少佔用 task bar 的空間;Suspend Applet 用來暫停 zaurus 的 suspend 功能;Task List Applet 用來快速切換已經開啟的程式,特別是那些已經預載的程式。

  10. 安裝一些常用的程式: PortaBase (portabase_1.9_arm.ipk), NeoCal (neocal_1.7.7-2_arm.ipk), Search (qpesearch_0.0.3a_arm.ipk), Alarm Clock (qpealarmclock_1.0.9_arm.ipk), FreeNoteQt (FreeNote_1.12.0_arm.ipk), PhotoStorage (photostorage_1.0.2_arm.ipk), aBookReader (aBookReader_0.9.1_arm.ipk), JustReader (justreader_2.0k_arm.ipk)。

    安裝後取消 PortaBase 及 Search 的 VGA 畫面調整選項。

  11. 安裝 mplayerkino: mplayer (mplayer-bvdd_1.1.5-1_arm.ipk), kino2 (kino2_0.4.3c_arm.ipk)。

  12. 安裝 ZBedic (sqlite3_3.2.2_arm.ipk, zbedic_1.1-0_arm.ipk) 及英英 (en-0.9.0.dic.dz)、英漢 (enzh-0.9.0.dic.dz)、漢英 (zhen-0.9.0.dic.dz) 字典。

    新版的 ZBebdic 須要 SQLite 程式庫。

    另外字典檔可以放在 SD 卡上,再進 ZBedic,把字典檔加進來。

  13. 安裝 PDF2 及所須的程式庫 (libfreetype2_2.1.4-1_arm.ipk, qpdf2_2.0.3-ft-t1_arm.ipk, qpdf-cj_20030222_all.ipk)。

    安裝後取消 PDF2 的 VGA 畫面調整選項。

  14. 安裝 FBReader 及所須的程式庫 (expat_1.95.8_arm.ipk, libenca_1.9_arm.ipk, libbz2_1.0.2_arm.ipk, FBReader_0.7.4m_640x480_arm.ipk)。

  15. 安裝 ruby (ruby_1.8.0-1_arm.ipk, ruby-qte_0.5.2_arm.ipk) 及 EBt memo tool (ebt-en_0.4.0-1_arm.ipk)。

    安裝後進 EBt,把目錄移至 SD 卡,把 /home/zaurus/ebt 目錄砍掉。(因為我的資料都在 SD 上)

  16. 安裝 ntpdate (ntpdate_ntp-4.1.1b-z-4_arm.ipk) 及 Donto Koi Time (dtktime_1.1.0_arm.ipk)。

    安裝後給予 root 權限,執行後到設定頁加入國內的網路對時主機:time.stdtime.gov.tw,clock.stdtime.gov.tw,tick.stdtime.gov.tw,tock.stdtime.gov.tw,watch.stdtime.gov.tw。

    設定網路連線,連上網路後進行網路對時。

  17. 安裝 samba 相關軟體:smbpasswd_0.1-1_arm.ipk,sambacontroller_0.1-0_arm.ipk,smbmount_0.1_arm.ipk,smbmounter_0.1-2_arm.ipk,codepage.950,unicode_map.950。(參考 [PDA] Zaurus C760 新手筆記 (9) - 連上網路芳鄰)

    安裝後把 SambaController 及 SmbMounter 給予 root 權限。把 codepage.950 及 unicode_map.950 放到 /home/root/usr/lib/samba/codepage/ 下。

    把以往備份的 smb.conf 及 smbusers 放到 /home/root/usr/lib/samba/ 下。

    下指令 sudo smbpasswd -a zaurus 及 sudo smbpasswd -a root 來設定網芳密碼。

  18. 安裝 kismet (kismet_3.0.1_arm.ipk, kismet-qt_2.0.0_arm.ipk)。

    安裝後將 kismet-qt 給予 root 權限,並取消 VGA 畫面調整選項。

    到 /home/root/usr/local/etc/,調整 kismet.conf 中的 logtemplate 及 source 兩項。

  19. 安裝 Opera 7.55 (multimodal_arm.ipk)。

    安裝後下指令 ln -s /home/QtPalmtop/opera /home/root/usr/share/opera。

  20. 安裝 bluez 相關軟體:bluez-zaurus_2.3-2.4.18d_arm.ipk,bluez-csr-serial_0.1_arm.ipk,qtopia-bluetoothnetworkapplet_1.0.1_arm.ipk,qtopia-pannetworkapplet_1.0.1_arm.ipk,susp-resume_0.9-3.1.ipk,susp-resume-bluez_0.9.1_arm.ipk。

    到 /etc/bluetooth/uart 加入相應自己 CF 藍牙卡的型號,同目錄下的 pin 及 givepin 也改成自己慣用的 pin 碼。

    到網路設定處新增 PAN-TCP/IP 連線。

    到 /etc/apm.d/bluetooth,在 cardctl eject 前加入 cardctl reset。(我的 CF 卡要加入這一行才能在 suspend 後重新 resume)

  21. 到通訊錄、行事曆、記事本、待辦事項中都新增一筆紀錄,然後執行同步功能,把 PIM 資料同步回 Zaurus 中。




閱讀全文 ...

2006年10月28日

[PDA] Zaurus pdaXrom 1.1.0r121 (3) - 安裝軟體、字型

安裝軟體的方式與之前相同,沒有改變。不過,feed 的位置請參考 "pdaXrom 1.1.0r121 is out!"。

安裝字型的方式也是與之前相同,沒有改變。

閱讀全文 ...

[PDA] Zaurus pdaXrom 1.1.0r121 (2) - 無線網路

我是用 "ASUS SpaceLink WL-110" CF 無線網卡,在 Zaurus 向來是隨插即用,沒有任何問題。

至於設定,
  1. 進入 "System Tools" -> "Lan & Wifi";
  2. 新增一個 device 名為 wlan0,型式為 wireless;
  3. 依網路環境設定 "TCP/IP & DNS" 及 "Wireless" 後存檔;
  4. 開啟終端機 (rxvt,左下角第三個圖示);
  5. 下指令 "ifup wlan0" 啟動無線網路;
  6. 下指令 "ifdown wlan0" 關閉無線網路。
在我的機器上,有時會無法啟動無線網路,不過只要先退出無線網卡 (按右下角最左邊的圖示),然後重新辨識一次 (一樣是按右下角最左邊的圖示),再下 "ifup wlan0" 指令就可正常啟動了。

閱讀全文 ...

[PDA] Zaurus pdaXrom 1.1.0r121 (1) - 安裝核心

pdaXrom 發佈新版本 1.1.0r121 了。 (pdaXrom 1.1.0r121 is out!)

新的版本包含兩個部份:
  1. U-boot/Emergency
  2. Kernel
安裝的方式也不一樣了。

首先要安裝 U-boot/Emergency:
  1. 移開電池、電源及 SD 卡;
  2. 把下載的 u-boot 檔解開後,放到 SD 卡的根目錄上,裝回 SD 卡;
  3. 按住 C 及 D 鍵後,把電源插上(或是把電池裝回);
  4. Zaurus 的 Mail 燈號亮起來大約 20 秒鐘後熄滅。

然後安裝 Kernel:
  1. 移開電池、電源及 SD 卡;
  2. 把下載的 kernel 檔解開後,放到 SD 卡的根目錄上,裝回 SD 卡;
  3. 按住 OK 鍵後,把電源插上(或是把電池裝回);
  4. 大約數秒後系統會開始啟動,然後詢問是否要安裝,回答 "y" 後,就開始安裝核心,接著會自行啟動 pdaXrom;
  5. 開機完成後一樣用 root 帳號(無密碼)登入,用 startx 指令啟動 x-window。



我在進行前述程序之前,曾先把 u-boot 用 "維護模式" 下的系統更新方式跑過,不過程序進行到一半就好像當了一樣,沒有反應。後來拔掉電源及電池,重跑上面的程序。


閱讀全文 ...

2005年12月3日

[PDA] Zaurus cacko 改裝記 (1) - 安裝核心

準備把 Zaurus 改跑 cacko rom。

整個過程同 [PDA] Zaurus pdaXrom 改裝記 (1) - 安裝核心一樣,只是把核心改從 "這" 下載。各機型都有分完整版及 lite 版,差別在收錄的軟體內容多寡,我打算先裝 lite 版試試。

不過我的 zaurus 在改成 cacko 後會有殘影,參考了 PIL 上的 post,進 DM 模式,把 LCD Phase Setting 調成 (0, 0) 也就 OK 了。

閱讀全文 ...

[PDA] Zaurus pdaXrom 改裝記 (7) - 小結

前幾天買了 zaurus 的線控 (CE-RH1) 及一個 CF 相機 (CE-AG06),線控還沒試,不過 CE-AG06 在 pdaXrom 上是偵測不到,survey 了一下,好像還沒有人寫 driver。打算放棄 pdaXrom 了。

另外,中文在 pdaXrom 上雖然有了 solution,不過還不是很好用。整個 pdaXrom 的反應也偏慢,不像是 PDA 了,倒像是一部很慢的 NB。

改天再試試 cacko rom。

閱讀全文 ...

2005年11月27日

[PDA] Zaurus pdaXrom 改裝記 (6) - 設定 swap

為了加速系統的運行,一般在 linux 的系統中都會加上 swap patition 或是 swap file。我是選用 swapfile,大致上有底下三個步驟:
  1. 切割 sd 卡,並製作 ext3 的 partition
  2. 製作 swap file
  3. 修改系統,讓 swap 能自行啟動
先看第一個部份:
  1. 卸載 sd 卡:
    umount /mnt/card
  2. 切割 sd 卡。我是選擇把 sd 卡 (1G) 平均切作兩部份,第一個 partition 是 FAT16 格式,做為共通的用途;第二個 partition 是 ext3 格式,給 zaurus 使用 (含 swap file)。
    cfdisk /dev/mmcd/disc0/disc
    兩個 partition 都是 primary,第一個的 type 是 06 (FAT16),第二個的 type 是 83 (linux)。
  3. 格式化:
    mkfs.vfat /dev/mmcd/disc0/part1
    mkfs.ext3 /dev/mmcd/disc0/part2
    不過有時在 linux 下格式化 FAT16 會怪怪的,最好是找個 PDA/相機/windows 來格式化 FAT16。

再來是製作 swap file:
  1. 製作 swap file:
    mount -t ext3 /dev/mmcd/disc0/part2 /mnt/card
    cd /mnt/card
    dd if=/dev/zero of=swapfile bs=1M count=128
    mkswap swapfile
  2. 試著掛上 swap:
    free
    swapon swapfile
    free
    swapoff swapfile
    從兩次的 "free" 指令中,可以看出 swap 是否有正確的掛上?
  3. 最後記得把 /mnt/card 卸載:
    cd
    umount /mnt/card

最後是修改系統,讓系統運作順暢自動一些:
  • 修改 /etc/fstab 檔:
    ......
    /dev/mmcd/disc0/part1  /mnt/card-fat16  auto  noauto,owner  0  0
    /dev/mmcd/disc0/part2  /mnt/card  auto  noauto,owner  0  0
    ......
    另外,要記得下指令 "mkdir /mnt/card-fat16"。

    往後 ext3 的 partition 是掛在 /mnt/card,FAT16 的 partition 是掛在 /mnt/card-fat16。
  • 修改 /etc/sdcontrol 檔:
    ......
    DEVICE=/dev/mmcd/disc0/part2
    SWAP_FILE=/mnt/card/swapfile
    ......
    case "$ACTION" in
    'insert')
           ......
           swapon $SWAP_FILE
           ;;
    'eject')
           swapoff $SWAP_FILE
           ......
    亦即在 insert 的最後加上 swapon,在 eject 前 swapoff。
在這樣修改下,開機後 swap 會自行啟動。若要退出 sd 卡,要下 "/etc/sdcontrol eject" 指令;重插入 sd 卡時,會自行啟動 swap。


閱讀全文 ...

[PDA] Zaurus pdaXrom 改裝記 (5) - 與 PC 的 USB 連接

pdaXrom 與 PC 的 USB 連接有三種模式:
  • serial: 這大概是類似 zaurus rom 的同步模式 (猜測!)。
  • Network: 把 USB 模擬成網路連線,讓 zaurus 連上網路。
  • Storage: 把 zaurus 的 sd/cf 插槽模擬成讀卡機。
只要執行 "左下角 X" -> "System Tools" -> "USB" 程式,GUI 界面,很容易就可以設定。driver 應該是延用以往 zaurus rom 的 driver 即可。

不過我 PC 上的 USB 最近怪怪的,常有些以往可以辨識的外接裝置最近都抓不到。我目前 "serial" 連線無法成功,其它兩者都可正常工作。


閱讀全文 ...

[PDA] Zaurus pdaXrom 改裝記 (4) - 安裝軟體

如果有網路的話,在 pdaXrom 上安裝軟體是簡單多了。只要設定好 feed,連上網路,選好軟體,軟體就會自行下載及安裝。

針對不同的機型有不同的 feed:整個程序如下:
  1. 執行 "左下角 X" -> "System Tools" -> "Package manager"
  2. 點選 "Settings" tab。把原來的 feeds 都 remove。新增一筆 name 為 rc12 (任意的名字),url 為上述 feed 之一。
  3. 連上網路。
  4. 點選左上方中間的 button 後,系統就會更新在 feed 中的軟體清單。
  5. 點選 "Available" tab,可以看見目前的軟體清單。把要安裝的軟體打勾後,在右上方的下拉式清單中選擇要安裝的目的地,再按下左上方右邊的 button,軟體就會自行下載及安裝了。

    其中目的地有三個選項:
    • "/" : 是把軟體安裝到 zaurus 中的 root partition。
    • "/mnt/card" : 是把軟體安裝到外插的 sd 記憶卡。
    • "/mnt/cf" : 是把軟體安裝到外插的 cf 記憶卡。
    • "/mnt/user" : 是把軟體安裝到 zaurus 中的 user partition。
如果沒有連上網路的話,也可以把 package 先下載到 cf/sd 卡上,執行 "Package manager",按左上方左側的 button,再到 cf/sd 的 mount point 下,點選檔案後,一樣會執行安裝的動作。

在這一點上,pdaXrom 大勝 zaurus rom。


閱讀全文 ...

[PDA] Zaurus pdaXrom 改裝記 (3) - 安裝字型

在 pdaXrom 上安裝字型,比在原來的 zaurus rom 上簡單多了。只有兩個動作:
  1. 把在 windows 下的 ttf 字型檔 copy 到 sd 或 cf 卡的 /pdaXrom/fonts (自行選定的目錄) 下。(註:如果是 .ttc 檔,請把檔名更換為 .ttf)
  2. 執行 "左下角 X" -> "Other" -> "Aterm" (或是直接按左下方的螢幕狀圖示),視需要鍵入下列的指令。

    如果要把字型留在記憶卡上,可以用建立連結的方式:
    ln -s /mnt/card/pdaXrom/fonts/fontname.ttf /usr/X11R6/lib/X11/fonts/TTF/fontname.ttf
    如果要把字型放在 zaurus 本身的 flash 上,那就把檔案 move 進去:
    mv /mnt/card/pdaXrom/fonts/fontname.ttf /usr/X11R6/lib/X11/fonts/TTF
    chown root.root /mnt/card/pdaXrom/fonts/fontname.ttf
    chmod 644 /mnt/card/pdaXrom/fonts/fontname.ttf
    (註:sd 卡的 mount 點是在 /mnt/card,cf 卡的 mount 點是在 /mnt/cf。)
我只有 copy 了兩組字型:"新細明體 (mingliu.ttc)" 及 "Arial Unicode MS (arialuni.ttf)",都是放在 zaurus 的 root partition 下。

新增的字型基本上是馬上可以使用,可以用 "AbiWord" ("左下角 X" -> "Office" -> "Word Processor") 來查看及使用已安裝的字型。


閱讀全文 ...

2005年11月26日

[PDA] Zaurus pdaXrom 改裝記 (2) - 無線網路

我是用 "ASUS SpaceLink WL-110" CF 無線網卡,隨插即用,沒有任何問題。

如果要做些進一步設定的話,可以到 "左下角 X" -> "System Tools" -> "Lan & Wifi" 做進一步的設定。

閱讀全文 ...

[PDA] Zaurus pdaXrom 改裝記 (1) - 安裝核心

難得有空,準備把 Zaurus 改跑 pdaXrom

首先當然是把原來的 NAND Flash Back Up,再來是下載 pdaXrom 的 kernel image (1.1.0 RC12)。我選用的是 1.1.0 RC12,stable 版本的安裝過程應該也是一樣。

底下的安裝過程基本上是看 pdaXrom 的 Install instructions,只是把它改成中文,再加上一點原來沒有寫清楚的提示而已。

  1. 把下載的檔案解開後有三個檔案:initrd.bin, tools.tar, updater.sh,把它們都複製到用 FAT16 格式化的 CF 或 SD 卡的根目錄上。
  2. 參考 [PDA] Zaurus C760 新手筆記 (2) - "重新開機" 及 "維護模式" 中的最後一段,進入 "維護模式" 後,執行 "系統更新" 的功能。之後會自行重新開機,進入 pdaXrom 的安裝程式。
  3. 如果 root partition 要設定超過 64MB 的話,先選擇安裝程式中第3項:NAND Flash Utils。之後再選第3項:Fix loader 64MB limit (for SL-C760/C860/C1000/C3100)。按下 "OK" 後,會有個提示窗說明:最大的 root partition 將修正為 121MB。再按下 "OK" 後,安裝程式就會開始修改 NAND。修改完後,會重新開機。(註:如果不想浪費重新開機再進入 "維護模式" 的時間,可以在系統 shutdown 完,即將重新開機前按下 "OK" 鍵,那系統會直接進入 "維護模式"。)
  4. 再度進入 "維護模式" 後,執行 "系統更新" 的功能,進入 pdaXrom 的安裝程式。選擇安裝程式中第3項:NAND Flash Utils。之後再選第1項:Resize root partition。我是選擇 110MB 做為 root partition,大概會剩 10MB 左右是 user partition (視機型而定)。然後,系統一樣會重新開機。
  5. 第三度進入 "維護模式" 後,執行 "系統更新" 的功能,進入 pdaXrom 的安裝程式。選擇安裝程式中第1項:Install new rom,就會開始安裝新核心,大約會花幾分鐘的時間。再來會有個提示窗問道:是否要格式化 user partition?我是回答 "Yes"。在 format 完成後,會回到原來的安裝程式,再選第6項:Reboot。
  6. 重開機後,就會執行 pdaXrom 的核心了。然後會有個 "zaurus login:" 的提示出來,回答 "root",按 "enter" 後,就進入 pdaXrom 的 console 模式了。
  7. 如果想設定 root 的密碼,可以鍵入 "passwd" 指令來更改密碼。
  8. 再來鍵入 "startx" 指令。在第一次進入時,會執行觸控點校正程式,依序點完提示的觸控點後就會進入 pdaXrom 的 xwindow 模式了。

第一次進入的感覺,看起來還蠻舒服的,其它就得再試試了。


閱讀全文 ...

2005年4月10日

[PDA] Zaurus C760 新手筆記 (37) - 超頻

上次在換裝 special kernel 後,就有考慮安裝超頻程式,不過只是想著,一直沒動手安裝測試。今日沒什麼事可以幹,動手試了一下:

  1. 先要換裝 special kernel

  2. 安裝 qclockchangeqfreqchenge applet

    qclockchange 安裝完後是在 "設定" 頁中,qfreqchenge applet 則在右下角的圖示區中。

  3. 執行 qclockchange。基本上就是隨意調整 L/M/N 三個數字,然後點按 "Write CCCR" 後,系統就會超/降頻。基本上可以超頻到多快,是看運氣的。

    另外,如果某模式可以正常執行,請把 L 旁的數字記下來。(就是 161/241/141/... 等的數字)

  4. 編輯 qfreqchenge applet 的設定檔 /home/zaurus/Setting/freqchange.conf,內容大概是:
    quick,1E1
    normal,161
    slow,141
    每一行表示一種模式,逗號前是名稱,其後是模式。在更改過設定檔後,如果要設定馬上生效,可以下指令:
    qcop QPE/TaskBar "reloadApplets()"
不過我的機器好像不太能超頻。


閱讀全文 ...

2005年3月22日

[PDA] Zaurus C760 新手筆記 (36) - Python 2.4 套件

之前所提,Python for arm-linux 計劃暫停 python 2.3.4 的下載,準備放出 python 2.4 版。今天再去他們的網頁看時,發現已於前天放出 Python 2.4 的新套件。

與之前 Riverbank 放出的版本相較,整個套件拆得十分細緻,還沒搞懂我到底要裝那些部份,不過大概是與 PyQt 有關的部份都須要:python-corepython-pyqtpython-sip


閱讀全文 ...

2005年3月16日

[PDA] Zaurus C760 新手筆記 (35) - UTF-8 and BOM

使用 Zaurus 的人大都知道,系統預設的編碼是 UTF-8。不過,Windows 上的 UTF-8 與 Zaurus 上的 UTF-8 雖然大致相同,但卻有小異。

可以參看 UTF-8 and Unicode FAQ for Unix/Linux 一文中的這一小節 What different encodings are there?,其中有一段:
In order to allow the automatic detection of the byte order, it has become customary on some platforms (notably Win32) to start every Unicode file with the character U+FEFF (ZERO WIDTH NO-BREAK SPACE), also known as the Byte-Order Mark (BOM). Its byte-swapped equivalent U+FFFE is not a valid Unicode character, therefore it helps to unambiguously distinguish the Bigendian and Littleendian variants of UTF-16 and UTF-32.
先說明一下什麼是 Byte-Order:在一些平台上,是把代表數值較大的 byte 放在前面,這稱為 Big Endian (BE) 的系統;有些平台則相反,是把代表數值較小的 byte 放在前面,稱為 Little Endian (LE) 的系統。像 Zaurus 是屬於 BE 的系統,而 wintel 架構則屬 LE。若同以 "中" 這個字來看,它的 Unicode 是 U+4E2D,故在 BE 上是以 0x4E 0x2D 來表示,而在 LE 上則以 0x2D 0x4E 來表示。

在某些平台上 (特別是 Win32 系統),文檔習慣以 U+FEFF 這個字元 (慣稱為 BOM: Byte-Order Mark) 開頭,來辦識該文檔是採 BE 或 LE 的方式編碼。若採 LE 方式編碼,BOM 會表示為 0xFF 0xFE,而在 Unicode 的定義中不存在 U+FFFE 這個字元,所以若前兩個 byte 為 0xFF 0xFE,則一定是 LE 編碼的文檔;反之,若採 BE 方式編碼,BOM 會表示為 0xFE 0xFF,而 U+FEFF 是在 Unicode 中的有效字元,故為 BE 編碼的文檔。又因為 U+FEFF 字元,在 Unicode 中代表的是一個不佔空間的 space 符號,所以即使沒被解釋為 BOM,也不會對閱覽者產生錯誤的訊息。

換句話說,若某文檔僅有一個 "中" 字。則採 BE 系統,且用了 BOM 字元時,該檔 Unicode 編碼的 binary 內容為:
0xFE 0xFF 0x4E 0x2D
採 LE 系統,且用了 BOM 字元時,該檔 Unicode 編碼的 binary 內容為 (wintel 架構下的典型情況):
0xFF 0xFE 0x2D 0x4E
但是在 Zaurus 上,習慣上並不用 BOM 字元,而是單純認定文檔採 BE 系統,所以該檔 Unicode 編碼的 binary 內容為:
0x4E 0x2D

但是,我們要談的是 UTF-8 編碼,它並不等同於 Unicode。若僅考慮 Unicode 從 U+0000 到 U+FFFF 的範圍,它是以下列的規則轉為 UTF-8 編碼:
U+0000 - U+007F:0xxxxxxx
U+0080 - U+07FF:110xxxxx 10xxxxxx
U+0800 - U+FFFF:1110xxxx 10xxxxxx 10xxxxxx
一樣以 "中" U+4E2D 為例,因為 0x4E 0x2D = 01001110 00101101,所以它的 UTF-8 編碼為
11100100 10111000 10101101 = 0xE4 0xB8 0xAD
同理可得 BOM 字元的 UTF-8 編碼為 0xEF 0xBB 0xBF。又,因為每個字元不見得剛好是 2 個 byte,所以不管是以 LE 或是 BE 為主的系統上,UTF-8 文檔大都採 BE 方式編碼。

換句話說,若某文檔僅有一個 "中" 字。當用了 BOM 字元時,該檔 UTF-8 編碼的 binary 內容為 (wintel 架構下的典型情況):
0xEF 0xBB 0xBF 0xE4 0xB8 0xAD
而在 Zaurus 上,因為不用 BOM 字元,所以該檔 UTF-8 編碼的 binary 內容為:
0xE4 0xB8 0xAD

前面所提看來頗為無用,但是在某些情況下,直接從 wintel 平台轉出的 UTF-8 文檔,會無法在 Zaurus 下使用

因 為 Unix 系統有所謂的 magic word,即是以檔案的前兩個 byte 來辨識該檔的性質。最簡單的例子就是 bash/perl/python 等 script 檔,開頭必定是 "#!"。若在 wintel 平台下轉出 UTF-8 文檔,則前兩個 byte 被 BOM 字元佔用,會導致 shell 無法判讀。

那該怎麼做比較能確保檔案不會被誤轉呢?我沒什麼好方法,不過只要是從 PC 上轉出的檔案,我必定先在 Zaurus 平台上以編輯器 (我是用 ZEditor) 重新開啟並儲存一次,以確保 BOM 字元不會在檔頭出現。

另外,雖然 Ultraedit 能夠讀懂 UTF-8 格式的文檔,而且在 menu 上也有把文檔轉為 UTF-8 的功能選項,但它實際上永遠是把 UTF-8 儲存成 Unicode 格式 (我在 Ultraedit v11 上測試多次,不管怎麼選擇,如何轉換,它實際上還是把檔案存成 Unicode 格式)。有興趣者可以下載安裝 WinHex, 直接看 ultraedit 輸出的 UTF-8 文檔,並與 Windows XP 的記事本軟體 (選擇另存新檔,即可選擇檔案格式) 輸出的 UTF-8 文檔比較。不過,因為 ZEditor 也可讀懂 Unicode 文檔,且在 Zaurus 上本來就要重新儲存一次,所以影響也不大。
註 1:Windows XP 的記事本,處理 Unicode 及 UTF-8 比 Ultraedit 更精準。例如,Big Endian 的 Unicode 文檔,Ultraedit 會無法辨識,但記事本卻能正確解讀。不過,記事本只認 DOS 的換行模式。
註 2:ZEditor (我用的是日文版) 會自行根據文本轉換內碼系統,在字少的狀況下容易誤判成 Shift JIS 編碼。例如,全文只有一個 "中" 字時。



閱讀全文 ...

2005年3月10日

[PDA] Zaurus C760 新手筆記 (34) - Trolltech 中文網頁

Trolltech 的網頁現在也有中文版了。雖然是簡體中文版,不過聊勝於無。

(Trolltech 是 Qtopia 的供應商,而 Zaurus 是建立於 Qtopia + Linux 之上)
 

閱讀全文 ...

2005年3月7日

[PDA] Zaurus C760 新手筆記 (33) - 用 opera 收發 gmail

剛剛在 OESF 看到,已經可以用 opera/netfront 來收發 Gmail 上的信件。自己也用 opera 試了一下,中文郵件的收發沒什麼問題,附件夾檔也正常運作。

底下是 Gmail 的說明:
If you sign in to Gmail using a browser that isn't fully supported, you'll automatically be directed to a basic HTML view of our service. To make sure that you can always access your mail, we've developed this basic HTML view that is compatible with almost any browser.

Since your browser isn't fully supported, you might notice that some of your favorite features aren't available in the current view, including the following:
  • Filter creation
  • Settings
  • Spell checker
  • Keyboard shortcuts
  • Address auto-complete
For access to all of Gmail's features, sign in to your account from a fully supported browser, and make sure you have cookies and JavaScript enabled.


閱讀全文 ...

2005年3月4日

[PDA] Zaurus C760 新手筆記 (32) - python

最近因為工作須要,準備開始學寫一些簡單的 python 程式。除了在慣用的平台 Windows 及 Debian 上安裝外,當然也不會忘掉 Zaurus。不過小繞了個圈子,才找到 Zaurus 下的解譯器。

  • 大部份找到的鏈結都是指向:Riverbank

    不過上面卻標明:"We no longer support our port of Python to the Sharp Zaurus. An alternative port can be found at the Python for arm-linux site."。

    如果到 Riverbank 的 download 頁,還是有 ipk 檔的下載鏈結 python_2.3.3-1.0_arm.ipk。不過實際上點下去後,回應是 "Error 404: Not Found"。

  • 如果依 Riverbank 的建議,到 Python for arm-linux 看看。沒錯,版本比較新,是 2.3.4。

    不過真的要下載時,上面卻說:"Package feed temporarily out of order because of reconstruction. Stay tuned for Python 2.4"。

  • 於是開始請出 Google 大神,第十九筆 (於發這篇文的時候) 的搜尋結果:http://zaurus.spy.org 下,有一個鏈結指向 Fred's Z corner : spare parts for the Sharp Zaurus。Bingo!終於找到了,是 Riverbank 在結束支援前,最後放出的版本。

底下是幾篇中文的 python 文件:


閱讀全文 ...

2005年2月16日

[PDA] Zaurus C760 新手筆記 (31) - photostorage

Sharp 推出新的圖片瀏覽程式 - photostorage,不過只能用在 C3000 上。(消息來源)

不過我的偽 SL-C860,在小小的 patch 過原來的 ipk 檔後,也可以正常使用了。

其實只要把 ipk 檔用 tar zxvf 的方式解開後,再把其中的 preinst 及 photostorage 兩個檔的 SL-C3000 及 SL-C3100 兩個字串改成 SL-C760 及 SL-C860,最後再用 tar zcvf 重組回去,就可以在 CX60 上安裝及執行了。


閱讀全文 ...

2005年2月11日

[PDA] Zaurus C760 新手筆記 (30) - running a script ...

script 愈積愈多,每次都要開 terminal 來執行有點麻煩;如果不開 terminal,建一個獨立的 icon 也很麻煩。

後來在 Script To Launch Console Apps 看到一個簡單的方法:
  1. 先確定 /home/QtPalmtop/etc/mime.types 當中有下列這行:(我的機器上原即有此項)
    application/x-sh sh
  2. 在慣用的 terminal 程式的 desktop 檔 (依該程式所在 tab 而定,應該在 /home/QtPalmtop/apps/ 的下一層目錄中) 加入下列兩行:
    MimeType = application/x-sh
    MimeTypeIcons = konsole/Terminal <= 圖示檔名,可以自己選擇想要的
  3. 重開機後,就可以直接在 "檔案" 的 tab 下,瀏覽檔案目錄時,點選 .sh 後,啟動 terminal 程式而執行。

不過對於要 root 權限的 script,此法行不通。


閱讀全文 ...