TPM 與 ecryptfs

基本都是參考:

另外遇到問題可以參考 IBM 的 troubleshooting,最近 IBM 不知道是網站改版還怎樣,之前留的網址都失聯了,你可以用 ibm ecryptfs troubleshooting 去 google 找。
下面的步驟最好全部以 root 或 sudo 來執行:

  1. 進 BIOS 把 TPM clear 掉
  2. 我的環境正好是用 infineon 的,所以用 modprobe tpm_infineon,一般好像是用 tpm_tis 就行了。
  3. 啟動 trousers:tcsd -f,不用 -f 的話,會掛…這個 daemon 提供 tspi 服務並且與 TPM device 溝通。
  4. 取得 ownership:tpm_takeownership ,這個步驟裡,SRK password 跟其後的 Confirm password 不要輸入!!否則要回到步驟 0 重設。SRK 是 Storage Root Key 的縮寫,不使用密碼保護的原因是為了 ecryptfs 取用方便。
  5. 掛載 ecryptfs:modprobe ecryptfs
  6. 啟動 ecryptfsd
  7. 產生 UUID:ecryptfs-generate-tpm-key -p 1 ,這個 UUID 是提領 key 用的,實際的 key 會透過 PCR 1 的 key 來取得(如果我沒理解錯的話)。

至此,準備工作已經完成,接下來就是操作,這裡我假設 private 是放置要加密的資料的地方:

  1. 先建立:mkdir private
  2. 進行掛載:mount -t ecryptfs private private
  3. 依序回答問題,第一個先選 tspi,第二個問題(cipher)選 aes,第三個問題(key bytes)選 16 bytes,第四個問題(passthrough)選 n,最後問題照預設值。第一個問題是加密方式,你也可以使用其他方式,但這樣就用不到 TPM 了;cipher 跟 key bytes 可以視需要自行調整。這樣就能 mount 上,mount 以後,ecryptfs 會把 UUID 存到 keyring (用 keyctl show 可以看 keyring 內容)裡。

在 private 資料夾裡的操作,基本上不能複寫,只能複製、貼上,但 vim 可編輯。
umount 之前,最好先輸入 mount,把參數記下。
umount 之後,可以直接以參數來掛載,這樣就不用再次回答問題:mount -t ecryptfs -o sig=UUID,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=n private private
參數裡,有個 sig,這個 sig 就是填 UUID,不過你輸入 mount 時,看到的卻不是 UUID,而是一個較短的字串。這字串其實是一個提領 UUID 的鑰匙,ecryptfs 會用這個鑰匙去 keyring 裡(用 keyctl show 可以看到),取出 UUID,再以 UUID 去掛載。keyring 主要存放在 kernel 的某個地方,所以重開機以後就會消失,我還不知道怎麼把 keyring 內容存起來。
好吧,以上就是我這幾天跟 TPM 奮戰的紀錄…

amr 轉 mp3

環境:Ubuntu 8.10

  1. 安裝必要的套件:
    sudo apt-get install amrnb sox lame
  2. 輸入以下指令:
    amrnb-decoder file.amr file.raw # 先轉成 raw 檔
    sox -r 8000 -w -c 1 -s file.raw -r 16000 -w -c 1 file.wav # 再轉為 wav
    lame babycry.wav babycry.mp3 # 最後轉為 mp3
    

整理一下,把它作成 script:

#!/bin/bash
# amr2mp3.sh
FILE=`basename $1 .amr`  # remove .amr
amrnb-decoder $1 $FILE.raw
sox -r 8000 -w -c 1 -s $FILE.raw -r 16000 -w -c 1 $FILE.wav
lame $FILE.wav $FILE.mp3
rm -f $FILE.raw $FILE.wav
exit 0

收工。

參考自Aquarionics 的 blog:How to convert AMR files to MP3

pam_smbpass.so

安裝 samba 以後,讓 samba 密碼跟 linux 密碼一致的好方法,先安裝 libpam-smbpass,然後執行 sudo pam-auth-update,把 SMB password synchronization 選起來即可。以後改密碼時,samba 密碼也會自動被更改。
對了,我的 linux 是 ubuntu 8.10,samba security level 是 user,安裝以後有先利用 smbpasswd -a 把必要的使用者加進去。

javascript + gtk = seed

昨天在這兒:Building desktop Linux applications with JavaScript看到的,現在可以用 JavaScript 來寫 GTK Application 了,如果以後再支援 DOM、selector與類似 XUL 語法(GLADE?)的話,應該會吸引一堆會 javascript + html 的人來用吧~
不過話說回來,XUL 好像也沒非常風行啊~
該專案的官方網站在:Seed
Anyway, 如果你想試試的話,已經有人打包了 for Ubuntu 的 package 了,位置在這裡:PPA for Orange Owners
詳細安裝方法,文章裡都寫的很清楚,這裡就不再贅述了。

registry-tools

由於太座的大意,使得 NB 中了 USB 病毒,而小紅傘解不掉。我知道進 Linux 以後就能把 USB 病毒埋的檔案砍掉,但砍了再砍,重開機進 Windows 以後,病毒還是繼續作怪,看來,病毒還是有埋我不知道的暗樁。
Registry 裡面有兩個機碼 Run 跟 RunOnce,在每次開機、登入時,都會去執行這裡有指定的程式。
本來不奢求 Linux 有工具可以存取 Windows Registry 的,沒想到用 apt-cache 一找,還真的有,這個套件叫做 registry-tools。
套件提供了 regshell、regpatch、regdiff、regtree 這幾個工具,可以讓你存取 Windows Registry。
但 Windows Registry 檔案在哪裡呢?Windows 2000 以後,HKEY_CURRENT_USER 改放到使用者的 Home 目錄下,也就是 c:\documents and settings\your_name\ntuser.dat
所以只要進 Linux,把 Windows 分割區掛載起來,用 regshell -f ntuser.dat 開啟以後就可以對 Registry 操作了。
regshell 的命令列介面也不難,基本上就是 cd、ls、rm 這幾個,用 help 可以看詳細的指令列表,這裡不多說了。
總之切到 Software\Microsoft\Windows\CurrentVersion\Run 跟 Software\Microsoft\Windows\CurrentVersion\RunOnce 下把一些奇怪的項目刪掉以後,就大功告成了。

envyng

如果你用 nVidia 或 ATi 的顯示卡的話,用 envyng 可以很快的搞定一切設定。
早知道有這麼好用的 script ,當初設定 ATi 顯卡時,就不用那麼累了。
我唯一踩到的地雷是把 LANG 設為 C,導致 envyng 執行時,出現錯誤,要記得使用 utf-8,例如:export LANG=en_US.utf-8

sudo /etc/init.d/gdm stop
sudo apt-get install envyng-core
sudo envyng -t
sudo nvidia-xconfig
sudo /etc/init.d/gdm start

參考來源:[ubuntu] [SOLVED] Intrepid Nvidia driver issue. Boots to text – Ubuntu Forums

在 Banshee 1.0 裡使用 BooScript

有兩種方法:

  1. 執行 Banshee 時,加上 –run-scripts your_boo_scripts.boo 表示要執行指定的 boo script
  2. 將 boo script 檔案放在 ~/.config/banshee-1/boo-scripts/

如果你會 Boo 的話,基本上就不難幫 Banshee 增加功能。不過難就難在你必須要對 Banshee 的原始碼有一定程度的了解…除了看原始碼以外,也可以看看官方提供的 extension 怎麼寫…

幾個 launchpad 上的 apt repository

要衝 banshee 1.0 版的話,可以試試這個:
deb http://ppa.launchpad.net/banshee-team/ubuntu hardy main multiverse restricted universe
上星期(2008/6/5)已經釋出了 1.0.0 版,跟 0.13 比起來,速度可說是兔子與烏龜,主要原因是 1.0 在資料庫上做了適當的索引與調整。
目前 ubuntu 上的 mono 是 1.2.6,要試最新版,除了下載官方網站的 installer 來安裝與 Mono for Debian(Mono – General – Mono 1.9.1 and MonoDevelop 1.0 Packages for Debian Etch) 之外,只能試這個了:
deb http://ppa.launchpad.net/mono-edge/ubuntu hardy main multiverse restricted universe
http://ppa.launchpad.net 上還蠻多 repository 可以試試看的,有遇到沒打包的軟體,就進去找找,或許已經有人在實驗了。