剛剛在很苦命的編譯 ports , 機八鴨提供了一個很有用的方式,就是把編譯過程中會產出的 object file 全都塞到 RAMDISK 中(反正現在 RAM 都很大也不知道拿來做什麼),加上 FreeBSD 8 的 ports 開始支援多核心的 make jobs 編譯,速度可說真是飛快。
作法很簡單:
先蓋一個 RAMDISK (這裡是開 512M, 可以自己調整)
/sbin/mdmfs -M -S -o async -s 512m md0 /tmp/portsobj
然後讓他能寫入
/bin/chmod 777 /tmp/portsobj
接下來去 /etc/make.conf 把 obj 會產生的目錄指過去
WRKDIRPREFIX=/tmp/portsobj
然後去編看看,就會發現速度差很多。
然後懶人大法當然是要 shell script 一下:
#!/bin/sh
case “$1″ in
create)
/sbin/mdmfs -M -S -o async -s 512m md0 /tmp/portsobj
/bin/chmod 777 /tmp/portsobj
echo “512M ramdisk created on md0 and mounted on /tmp/portsobj”
exit 0
;;
destory)
/sbin/umount /tmp/portsobj
/sbin/mdconfig -d -u 0
echo “ramdisk umounted from /tmp/portsobj and destory from md0″
;;
*)
echo “Usage: `basename $0` {create|destory}” >&2
exit 64
;;
esac
然後機八鴨還好心建議不要直接打 make install clean 而是用先用 pkg_add 把 package 裝完,然後再用 portmaster -bDGtw -m FORCE_PKG_REGISTER=yes 來升級,那他每次在編完每一個 ports 後都會自動清掉 obj 而不是像原本的 ports system 會全部裝完成功後才 clean。
這幾天鴨子在物色他的喇叭,恰巧在 crazymike 看到APTOS Design LAB 的 ADA-U21W 在放送,於是就手滑不小心跟進了。
當中的小插曲是:最近勸拜成功,林大哥看到我幫家弟買得小黑 T400 PU9 品像不錯價格誘人,就也叫我幫他處理一台來。並且連自取也不用了,直接貨到付款寄到指定地點。然後又很剛好得我在 crazymike 填的送貨地點是同一個,又非常碰巧的,crazymike 跟 T400 賣家都是用相同的宅配,所以到貨的那天早上,先是接了宅配的電話
宅配:「請問是林先生嗎,這裡未您送貨到付款,款項為 XXXXX ,請問您在指定的送貨地點嗎?」
我:「(睡臉惺忪)哦,有,送過去就好了。」
然後起身打給林大哥,請他去收貨,轉頭繼續睡。過沒多久,林大哥打回來:「喂,黑咧頭家美賣捏~瓦嘎咩電鬧歌頌哇冷ㄟ啦吧~金夙昔捏~(那個老闆不錯哦,跟他買電腦還寄了兩組喇吧來哦,很不錯哦)」。瞬時之間從床上笑到床下,因為那是我等了好幾天的 ADA-U21W 阿。
這組東西其實很有趣,他是走 USB 介面直接吃 USB Audio Device 然後把聲音播放到喇叭上,然後由主要的機身扮演著 USB DAC + Amplifier ,推動兩個被動式音箱且「不需外接電源」。會引起我興趣的地方其實是因為現在我的位置上只有耳機,但我不太喜歡耳機聽過久,雖然有 5021 掛在牆上,但是一般時間又不好意思開泰大聲,需要一組用來放音樂用的。尤其是,最好是能獨力只播音樂,其他的系統、城市音效都可以不要播放。這樣看來,獨立的USB Audio Device 剛好符合規格呢!
當一切就緒的時候,將 usb 插上電腦,看到他跳出偵測裝置,成功安裝標準驅動,一切安好。但是打開音樂播放器卻無法播放,臉綠了一半。最近不會運氣這麼好吧,連這都中大獎阿?還好我有兩組,在拿另一個來試,還是一樣。不會吧,又是 Windows 7 64bit 的錯嗎?還好我還有 32 bit版,測了,還是不會動,都可以看到裝置卻沒聲音。所幸在把旁邊的 windows xp 拿來測,咦,一切正常?生氣了,在拿出 ubuntu 測,也一切 OK?
真是奇怪, USB Audio Device 是走標準的東西沒道理其他會動獨缺 Win7 壞事吧。於是搞了一個下午,也換了 ASIO driver ,硬上有的沒的驅動,都不會動,但是看著 XP 卻播的虎虎生風。搞到最後發現解法了。
如果你也是 ADA-U21W ,或是 Biforst 的 Bu20360 的產品,在 Windows 7 下遇到有裝置沒聲音的話可以試試看這個解法:

到控制台開啟「聲音」

在 USB Audio Device 選內容,切到增強功能,勾選「停用所有增強」
然後就過著幸福快樂的生活吧。
Related Info Here.

如果遇到 PF + PPPOE 一起混著用的時候,又有 Lan connection ,有時候會開起來後 pf rule 完全沒被載入。這問題的起因就是,當 pf 先載入的時候 PPPOE client 還沒有把 daemon 跑起來,除了不知道 gateway 的 IP 外有可能連 Interface 都還沒出現。如果是 Interface 還沒出現的話,只要把該 interface (通常 pppoe 會是 tun0) 用括號包起來,像是:
ext_if_fttb=”tun0″
nat on $ext_if_fttb inet from $internal_net to {!$internal_net,!$sparq_net} -> ($ext_if_fttb)
這樣 pf 就不會檢查 $ext_if_fttb 是不是存在,而如果有用到 PPPOE 的 gateway 的話則可以換成:
gw_if_fttb=”(tun0:peer)”
這樣就不用每次重開完之後還要手動進去 pfctl -f /etc/pf.conf 了。
這台機器不小心掛了幾天沒人開機沒辦法 post。
coscup 2009 有幸因為擔任 sun ca 而上台跟大家分享 sun spot,希望大家多多指教。
投影片
錄影 (感謝 irvin)
本次大會內容相當精彩,可以看錄影:
http://www.plurk.com/p/1m0nau
期待下次相聚!
在 FreeBSD 7.1 PRELEASE 底下做比較複雜的網路環境,結果要讓 rsync + ssh 從其他網路跑進來撈備份的時候遇見很奇怪的問題:
明明就是通的,但是卻是慢到非常的誇張,比原先的線路還離譜。本來以為是 pf 擋到不該擋的,叫出 tcpdump 來看半天發現沒錯;又想說是不是走錯路,交叉測了很久也看不出啥端倪。最後比對正常跟有問題的 tcpdump 也看不出啥鬼。結果在對照[正常]組時發現:
02:52:39.274108 IP bad-len 0
02:52:39.304782 IP bad-len 0
02:52:39.334036 IP bad-len 0
02:52:39.335331 IP bad-len 0
這種東西,好奇 google 一下發現這篇,結果發現我也中大獎 -_-||
sysctl net.inet.tcp.tso=0
從此過著幸福快樂的日子……!@#$%^& …….
Recent Comments