#1 2011-09-03 23:07:35
打造 QNAP 變形金剛(QNAP TS-112)
報名參加了QNAP舉辦的尋找特務Q!誰是最強QNAP NAS達人活動並選定瘋狂改裝Open組,當然是要來點不一樣的內容不然就違背了"瘋狂"的定義,確認選定這個組別後就已無退路,那只好大刀闊斧的下去改,不過礙於手上TS-419U 還在服役中,所以本文設備是向QNAP借來的,在不更動硬體規格,不影響保固的情況下,本文也只能介紹軟改,不提硬改。
什麼是QPKG
QPKG是一套專為Embedded Linux系統(如NAS)而設的軟體套件管理系統,讓使用者可輕鬆簡單地安裝額外的軟體套件(如MLDonkey, Joomla等),豐富QNAP NAS的應用。所有發佈於QNAP官方網站的軟體套件(包括世界各地社群發展的軟件),必須經過QNAP認證,防止入侵系統的惡意程式或潛在的資料損毀,讓用家可安心地使用。安裝套件的方法非常簡單,只需透過網頁介面幾個步驟即可,無需編寫複雜的程式。
早期各家NAS大廠所推出的產品,可說是幾近封閉的伺服系統,雖然功能與界面已可滿足絕大多數用戶的需求,但是每個人使用的環境、需求畢竟多少還是有些差異。身為負責的廠商為了兼顧開放與安全兩者之間的平衡考量,無不傷透了腦筋,所以QNAP率先推出QPKG套件,讓用戶有機會得以自行選擇安裝官方認證過的套件,這樣的創舉已在NAS界引起不小的震撼。話說小弟接觸Optware(IPKG)已有多年,深覺Optware的威力,而Optware裡頭更是已有數以千計的各式各樣的免費套件,打開Optware就等於向這些數以千計的Embeded Linux的App Store接軌。那該如何描述 QPKG VS Optware(IPKG)之間的對應呢? 這時腦海突然浮現這樣的對白:這就像小麻雀飛進了大森林,小蝦米遇到大鯨魚,小野草碰到了大榕樹,小番薯遇到大鐮刀了! 這樣解釋大家應該都懂了吧
安裝 Optware
對本文有興趣的朋友相信對QNAP NAS已有一定的了解,所以我們捨去比較基本的初始開箱步驟,直接跳至QPKG操作系統,並點選右手邊"取得QPKG"按鍵。
進到QNAP官方的QPKG套件下載網頁
找到 Optware 套件下載連結
安裝完Optware,此時人生還是黑白的
必須執行啟動的程序
當它從黑白變成彩色,你的改機人生才會多采多姿
另外,須確認是否開啟 ssh(telnet) 功能,因為接下來透過 ssh(telnet) 連進NAS操做
連進後第一件事,更新 ipkg 套件資料庫
# ipkg update
# ipkg upgrade
安裝常用工具
# ipkg install nano usbutils module-init-tools
記錄一下系統原始狀態
# lsusb
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 001: ID 1d6b:0002
# lsmod
Module Size Used by
iscsi_tcp 7839 0
libiscsi_tcp 12027 1 iscsi_tcp
libiscsi 30440 2 iscsi_tcp,libiscsi_tcp
scsi_transport_iscsi 22906 3 iscsi_tcp,libiscsi
fbdisk 18684 0
uvcvideo 57287 0
v4l2_common 11166 0
videodev 34879 1 uvcvideo
v4l1_compat 13447 2 uvcvideo,videodev
v4l2_int_device 2026 0
snd_usb_caiaq 17633 0
snd_usb_audio 61533 0
snd_usb_lib 15164 1 snd_usb_audio
snd_hwdep 4809 1 snd_usb_audio
snd_pcm_oss 35595 0
snd_mixer_oss 13108 1 snd_pcm_oss
snd_pcm 56634 3 snd_usb_caiaq,snd_usb_audio,snd_pcm_oss
snd_seq_oss 25585 0
snd_seq_midi 3874 0
snd_seq_midi_event 4566 2 snd_seq_oss,snd_seq_midi
snd_seq 43233 5 snd_seq_oss,snd_seq_midi,snd_seq_midi_event
snd_rawmidi 15853 3 snd_usb_caiaq,snd_usb_lib,snd_seq_midi
snd_page_alloc 4715 1 snd_pcm
snd_seq_device 4739 4 snd_seq_oss,snd_seq_midi,snd_seq,snd_rawmidi
snd_timer 16026 2 snd_pcm,snd_seq
snd 37095 12 snd_usb_caiaq,snd_usb_audio,snd_usb_lib,snd_hwdep,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_seq_oss,snd_seq,snd_rawmidi,snd_seq_device,snd_timer
soundcore 4763 1 snd
mac80211 127193 0
cfg80211 118284 1 mac80211
lib80211 3384 0
fnotify 26889 0
smbfs 60344 0
cifs 237914 0
nfs 263292 0
udf 86992 0
isofs 31577 0
ufsd 457675 0
ext4 233642 1
jbd2 44609 1 ext4
sysinfo 930 0
usblp 10604 0
usbhid 15886 0
mv_cesa 4323 0
aes_generic 34700 1 mv_cesa
dm_crypt 11755 0
dm_mod 56014 1 dm_crypt
raid456 55681 0
async_raid6_recov 3592 1 raid456
async_pq 2701 2 raid456,async_raid6_recov
async_xor 1115 3 raid456,async_raid6_recov,async_pq
async_memcpy 628 2 raid456,async_raid6_recov
async_tx 1287 5 raid456,async_raid6_recov,async_pq,async_xor,async_memcpy
raid6_pq 75781 2 async_raid6_recov,async_pq
xor 4859 1 async_xor
nls_utf8 954 0
nls_iso8859_2 3583 0
nls_cp850 3831 0
nls_cp437 4599 0
vfat 8512 0
fat 44947 1 vfat
appletalk 24361 0
psnap 1515 1 appletalk
llc 3018 1 psnap
hid 40232 1 usbhid
ext3 117088 2
jbd 37947 1 ext3
進行到這,算是完成 Optware 初始環境的建立,接下來我們會開始著手打造一台與眾不同的QNAP變形金剛。
技術問題請於論壇上集眾人之力公開討論,感恩
離線
#2 2011-09-03 23:09:24
Re: 打造 QNAP 變形金剛(QNAP TS-112)
打造好基礎建設後,我們可以逐步打造變形金剛,首先先讓我們的TS-112能夠發聲唱歌吧,在過去要能讓embaded系統能讓外接裝置能夠順利運作,通常得費時尋找合適的核心模組(kernel module),或是下載原始碼再自行編譯去驅動這些裝置,所幸目前 QNAP 的 NAS 預先都已載入常用的驅動模組,所以當我們直接接上常見的USB周邊裝置幾乎都能直接被辨識及支援。
插入 USB 音效卡,確認一下系統是否已辨識出這張卡
# lsusb
Bus 001 Device 003: ID 1130:f211 Tenx Technology, Inc.
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 001: ID 1d6b:0002
跟前一篇比較多了一行 Tenx Technology, Inc. 這個就是我手上這張 USB 音效卡的資訊。
如何判斷音效卡是否已被支援?
# cat /proc/asound/cards
0 [default ]: USB-Audio - USB AUDIO
USB AUDIO at usb-orion-ehci.0-1.2, full speed
若未插上音效卡或音效卡無法被支援時,則顯示下列訊息
# cat /proc/asound/cards
--- no soundcards ---
接下來我們介紹兩套常用的播放軟體,一套是簡單輕巧透過命令列即可播放音樂的 madplay,另一套是可以主從架構的 MPD(Music Player Daemon),我們先從簡單的開始,首先安裝 madplay
MADPlay
# ipkg install madplay
安裝完即可馬上驗收播放MP3啦
# madplay -v --amplify=-42 /share/HDA_DATA/Multimedia/*.mp3
播放時可以透過鍵盤來控制,底下是按鍵對應功能說明:
P:暫停;按任意建繼續
S:停止;按任意鍵重新播放
F:播放下一首
B:播放上一首
T:切換播放時間顯示
+:音量放大
-:音量減少
Q:結束離開
MPD / MPC
安裝 MPD 及 MPC
# ipkg install mpd mpc
編輯 /opt/etc/mpd.conf 內容參考如下
music_directory "/share/HDA_DATA/Multimedia"
playlist_directory "/share/HDA_DATA/Multimedia"
db_file "/share/HDA_DATA/Multimedia/mpd/mpd.db"
log_file "/share/HDA_DATA/Multimedia/mpd/mpd.log"
error_file "/share/HDA_DATA/Multimedia/mpd/mpd.error"
pid_file "/share/HDA_DATA/Multimedia/mpd/mpd.pid"
user "admin"
bind_to_address "127.0.0.1"
port "6600"
log_level "default"
audio_output {
type "oss"
name "Default OSS Device"
}
filesystem_charset "UTF-8"
id3v1_encoding "UTF-8"
操作方式:
建立音樂資料庫
# mpd --create-db /opt/etc/mpd.conf
把預設路徑下的音樂檔加入播放清單
# mpc ls | mpc add
播放
# mpc play
其他更詳細操作方式請參考:
http://linux.die.net/man/1/mpc
技術問題請於論壇上集眾人之力公開討論,感恩
離線
#3 2011-09-03 23:10:31
Re: 打造 QNAP 變形金剛(QNAP TS-112)
TS-112能夠唱歌後,滿足了嗎? 當然不夠,應該也得讓TS-112看得到吧,那就幫她安裝一個WebCAM囉。
安裝WebCAM這會比安裝USB音效卡難度高一點,畢竟不是所有市售的WebCAM都能順利被TS-112所支援,所以先來做一點功課吧。
先看一下目前系統已預先掛載的視訊模組
# lsmod | grep videodev
videodev 34879 1 uvcvideo
v4l1_compat 13447 2 uvcvideo,videodev
系統已預載 uvcvideo 驅動模組,所以往 UVC 方向找 WebCAM 就對了
可以參考這個網站列出來符合UVC的廠牌及型號
根據網路爬文的結果,筆者找了一款網拍價格約NT$500元左右的 Logitech C120
拿到WebCAM後,就可進行驗證一下是否真的可以被支援
# lsusb
Bus 001 Device 005: ID 046d:080f Logitech, Inc.
Bus 001 Device 004: ID 1130:f211 Tenx Technology, Inc.
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 001: ID 1d6b:0002
跟上一篇比較又多了一行 046d:080f Logitech, Inc. 這個就是我手上這台 Logitech C120 WebCAM 的資訊。
Motion
接下來我們安裝一套多重用途的視訊軟體 Motion,它具有移動偵測監控及影像串流播放的功能,功能非常強大
# ipkg install motion
# cd /opt/etc
# cp motion-dist.conf motion.conf
安裝完編輯設定檔
# nano motion.conf
搜尋並修改下列相關設定
process_id_file /tmp/motion.pid
norm 1
output_normal off
ffmpeg_cap_new off
target_dir /share/HDA_DATA/Multimedia
webcam_localhost off
control_port 8082
control_localhost off
control_authentication admin:admin
改完後執行 motion
# motion
看看成果吧,先打開瀏覽器輸入網址 http://XXXX:8082/ XXXX 指的是NAS的IP
順利的話應該會跳出一對話框詢問帳號及密碼,此時請輸入上面設定的帳號、密碼(admin/admin)
完成驗證後,即可進入管理網頁
若要修改參數可以點進 All->config->list 會出現底下網頁,各項參數設定若有疑慮,可點選 help 官方網頁有詳細的輔助說明
驗收畫面,緊張時刻來了,打開IE之外的瀏覽器(FireFox, Sarafi 皆可)輸入網址 http://XXXX:8081/ 即可看到 WebCAM 畫面
這還不是最屌的,以下是冒著生命危險發表這項用途,過去想在NAS上使用Surveillance Station,勢必還得加買個兩三千塊起跳的IP CAM。沒錯,懦夫窮人救星來了,Motion + WebCAM 即可號稱窮人版IP CAM,底下就來看看我們做的實驗。
支援 Surveillance Station
首先當然要先啟用 NAS 上的 Surveillance Station
進到 Surveillance Station 設定 Camera
攝影機機型:Generic JPEG
HTTP URL:/video.cgi
埠號:8081
使用者名稱:admin
使用者密碼:admin
輸入完畢,按下套用完工
此時點擊右邊測試按鈕,若出現影像,恭喜您省下一台IP CAM的錢
測試錄影及回放功能皆可正常
以上是好用的Motion + WebCAM的組合,如果覺得實用的請加分按讚,感恩。據說本文發表後,各大IP CAM廠商紛紛下修今年下半年IP CAM的出貨量,各大賣場NAS專區搭售IP CAM的組合商品也紛紛下架,改搭WebCAM重新出發
技術問題請於論壇上集眾人之力公開討論,感恩
離線
#4 2011-09-04 08:08:11
Re: 打造 QNAP 變形金剛(QNAP TS-112)
LIRC
老是用 console 下指令,實在不方便,恐怕也嚇到不少想自己DIY改機的朋友,畢竟有些朋友看到命令列馬上打退堂鼓。
接下來我們來嘗試幫NAS安裝遙控器,在Optware套件庫裡有一套LIRC(Linux Infrared Remote Control)可以在Linux環境裡支援紅外線(RF也行啦)遙控器操作使用,硬體部份我們在網拍裡找到了ATI出品的ATI Remote Control USB遙控器。不過,Optware裡的版本並未支援ATI,而且版本也比較老舊,所以需要自行把 ATI Remote 驅動程式編譯進來,本篇難度又更高了一點。
編譯之前,須安裝編譯環境,安裝過程約10分鐘左右,請耐心等候。
# ipkg install optware-devel
接著下載最新版 lirc 原始碼,進行編譯工作
# mkdir -p /opt/etc/lirc
# cd /opt/etc/lirc
# wget http://sourceforge.net/projects/lirc/files/LIRC/0.9.0/lirc-0.9.0.tar.gz
# tar zxvf lirc-0.9.0.tar.gz
# cd lirc-0.9.0
# ./configure --with-driver=atilibusb
# make && make install
插入ATI remote 接收器,確認系統能否辨識
# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 003: ID 046d:080f Logitech, Inc. Webcam C120
Bus 001 Device 009: ID 0bc7:0004 X10 Wireless Technology, Inc. X10 Receiver
參考這篇說明製作ATI RF遙控器按鍵的對應碼
或者也可以參考遙控序號到這裡找相對應的按鍵對應碼
搞定遙控器對應碼之後,下一步就是自行定義按鍵功能,底下我們試著把MPD的播放功能對應到遙控器的按鍵上
編輯 /opt/etc/lirc/lircrc 檔,內容如下
begin
prog = irexec
button = power
config = mpc clear
end
begin
prog = irexec
button = dvd
config = mpc ls | mpc add
end
begin
prog = irexec
button = play
config = mpc play
end
begin
prog = irexec
button = stop
config = mpc stop
end
begin
prog = irexec
button = pause
config = mpc pause
end
begin
prog = irexec
button = fforward
config = mpc next
end
begin
prog = irexec
button = rewind
config = mpc prev
end
begin
prog = irexec
button = volup
config = mpc volume +1
end
begin
prog = irexec
button = voldown
config = mpc volume -1
end
begin
prog = irexec
button = a
config = mpc repeat
end
載入LIRC
# /opt/etc/lirc/lircd -H atilibusb /opt/etc/lirc/lircd.conf
# /opt/etc/lirc/irexec -d /opt/etc/lirc/lircrc
如果順利的話,你已經可以透過遙控器播放音樂了。
參考資料:
http://www.lirc.org/
http://lirc.sourceforge.net/remotes/ati … .atilibusb
技術問題請於論壇上集眾人之力公開討論,感恩
離線
#5 2011-09-04 08:10:22
Re: 打造 QNAP 變形金剛(QNAP TS-112)
進行到這裡似乎缺少了點什麼,對了,就是少個螢幕可以看看目前的系統狀態或者播放音樂資訊。好吧,接下來這一篇我們來個大整合囉,除了整合前述的MPD、LIRC及WebCAM,我們還要在整合兩個螢幕,一個顯示文字界面,另一個顯示圖形界面,這樣才算夠瘋狂吧。
這裡選用的兩台螢幕,一是十多年前的 Palm PDA,當年叱吒風雲Palm PDA 如今宛如雞肋,食之無味,棄之可惜啊,如今正好派上用場,可謂是物盡其用。另一個是迷你數位相框,數位相框雖然是這幾年的新近的流行產物,但是當智慧型手機普及之後,數位相框的角色似乎已逐漸被取代,生命週期可能比 Palm PDA 更短,藉由本文或許有還有機會延續它的用途。
PalmOrb
安裝 Palm 上的顯示界面PalmOrb
到這裡下載,這裡實驗的 PalmOrb 是採用 V1.1a4 版本,下載回來請透過 HotSync 安裝進你的 Palm 上。
底下是啟動 PalmOrb 的參考畫面
破解 ST2205U 數位相框韌體
參考國外 Doozan forum 改機網站,利用改寫使用 ST2205U 晶片的數位相框韌體,使其能夠接受電腦控制播放特定訊息或影像。
# mkdir -p /opt/etc/lcd4linux
# cd /opt/etc/lcd4linux
# wget http://www.neophob.com/files/st2205tool-1.4.3.tar.gz
# tar xvfz st2205tool-1.4.3.tar.gz
# cd st2205tool && make && make install
改寫韌體
# cd st2205tool
# ./hackfw.sh /dev/sdX
這裡因不同型號數位相框有不同的流程,詳細流程請參考LCD screen for your dockstar (cheap! <$5)
LCD4Linux
這裡我們使用的套件是 LCD4Linux,這是一套通常是提供給Embeded系統驅動將訊息顯示在簡易的LCD小螢幕上,有興趣的朋友可參考其官網上的介紹說明。不過還是老問題,因為 Optware 裡的 lcd4linux 套件版本一直沒有更新,也沒有支援 MPD plugin,所以我們還是得自己動手編譯吧。
下載最新版 lcd4linux 及納入 MPD plugin 編譯
# mkdir -p /opt/etc/lcd4linux
# cd /opt/etc/lcd4linux
# wget http://ssl.bulix.org/projects/lcd4linux/raw-attachment/wiki/Download/lcd4linux-0.11.0-SVN.tar.bz2
# tar xvfj lcd4linux-0.11.0-SVN.tar.bz2
# cd lcd4linux-0.11.0-SVN
# ./configure --with-plugins=mpd
# make
製作兩個 lcd4linux 的 config 檔,一個是顯示MPD播放時的音樂資訊
編輯 lcd4mpd.conf 內容如下
Display PalmOrb {
Driver 'MatrixOrbital'
Model 'LK204-25'
Port '/dev/ttyUSB0'
Speed 19200
Icons 1
}
Plugin MPD {
enabled 1
server 'localhost'
port 6600
# password 'secret'
minUpdateTime 500
}
#
# display artist and album, scrolling
#
Widget mpd-combo {
class 'Text'
expression mpd::artist() . '/' . mpd::title()
width 20
align 'A'
speed scroller
update tack
}
#
# display current song id and number of total song
#
Widget mpd-posid {
class 'Text'
expression mpd::getMpdPlaylistGetCurrentId().' of ' .mpd::getMpdPlaylistLength()
width 11
align 'L'
update tack
}
#
# display 30s the mpd uptime (ex. UP:2d03h32m) then 30s the current song id and number of total songs (ex. 267 of 734)
#
Widget mpd-toggler {
class 'Text'
expression ( (mpd::getMpdUptime()%60)<31 ? ('UP:'.mpd::formatTimeDDHHMM( mpd::getMpdUptime() ) ) : (mpd::getMpdPlaylistGetCurrentId().' of '.mpd::getMpdPlaylistLength()) )
width 11
align 'L'
update tack
}
#
# display playerstate (play, pause, stop, unknown)
#
Widget mpd-playerstatus {
class 'Text'
expression (mpd::getStateInt() == 1 ? 'PLAYING' : '').(mpd::getStateInt() == 2 ? 'PAUSED ' : '').(mpd::getStateInt() == 3 ? 'STOPPED' : '').(mpd::getStateInt() == 0 ? 'UNKNOWN' : '')
width 7
align 'L'
update tack
}
#
# get repeat/random
# example: REP/RND, REP/---, ---/RND, ---/---
#
Widget mpd-reprnd {
class 'Text'
expression (mpd::getRepeatInt()>0 ? 'REP' : '---') . '/' . (mpd::getRandomInt()>0 ? 'RND' : '---')
width 7
align 'L'
update tack
}
#
# display track position example: <00:48/04:33>
#
Widget mpd-tracktime {
class 'Text'
expression mpd::formatTimeMMSS( mpd::elapsedTimeSec() ).'/'.mpd::formatTimeMMSS( mpd::totalTimeSec() )
width 11
align 'L'
update tack
}
#
# display uptime of mpd, example: <0d06h51m>
#
Widget mpd-uptime {
class 'Text'
expression 'UP:'.mpd::formatTimeDDHHMM( mpd::getMpdUptime() )
width 11
align 'L'
update 10000
}
#
# small playbar and track time
#
Widget smallMP3Bar_part1 {
class 'Bar'
expression mpd::elapsedTimeSec()
length 13
min 0
max mpd::totalTimeSec()
direction 'E'
style 'H'
update tack
}
#
# display volume
#
Widget mpd-vol {
class 'Text'
expression 'VOL:'.mpd::getVolume()
width 7
align 'R'
update tack
}
Widget smallMP3Bar_part2 {
class 'Text'
# expression '/'.mpd::formatTimeMMSS( mpd::totalTimeSec() )
expression mpd::getMpdPlaylistGetCurrentId().'/'.mpd::getMpdPlaylistLength()
width 7
update tack
align 'R'
}
#
# display volume
#
Widget mpd-vol {
class 'Text'
expression 'VOL:'.mpd::getVolume()
width 7
align 'R'
update tack
}
Widget mpd-bitrate {
class 'Text'
expression mpd::bitRate().'k'
width 6
update tack
align 'L'
}
# example:
# +--------------------+ +--------------------+
# |ad/It's A Fire | | Portishead/It's A F|
# |*** /03:48| |********* /03:48|
# |REP/RND PLAYING 128k| |REP/RND PLAYING 128k|
# |UP:2d03h33m VOL:100| |267 of 734 VOL:100|
# +--------------------+ +--------------------+
Layout L20x4 {
Row1 {
Col1 'mpd-combo'
}
Row2 {
Col1 'smallMP3Bar_part1'
Col14 'smallMP3Bar_part2'
}
Row3 {
Col1 'mpd-reprnd'
Col9 'mpd-playerstatus'
Col17 'mpd-bitrate'
}
Row4 {
# Col1 'mpd-toggler'
Col1 'mpd-tracktime'
Col14 'mpd-vol'
}
}
Variables {
t_onesec 1000
t_500m 500
tack 500
tick 100
tacku 100
scroller 300
}
Display 'PalmOrb'
Layout 'L20x4'
另一個是要顯示系統即時效能訊息
編輯 lcd4sys.conf 內容如下
Display PalmOrb {
Driver 'MatrixOrbital'
Model 'LK204-25'
Port '/dev/ttyUSB0'
Speed 19200
Icons 1
}
Widget NAS {
class 'Text'
expression 'QNAP TurboNAS TS-112'
width 20
align 'C'
update tick
}
Widget CPU {
class 'Text'
expression uname('machine')
prefix 'CPU '
width 9
align 'L'
update tick
}
Widget RAM {
class 'Text'
expression meminfo('MemTotal')/1024
postfix ' MB RAM'
width 11
precision 0
align 'R'
update tick
}
Widget Busy {
class 'Text'
expression proc_stat::cpu('busy', 500)
prefix 'Busy'
postfix '%'
width 10
precision 1
align 'R'
update tick
}
Widget BusyBar {
class 'Bar'
expression proc_stat::cpu('busy', 500)
expression2 proc_stat::cpu('system', 500)
length 10
direction 'E'
update tack
}
Widget Eth0 {
class 'Text'
expression (netdev('eth0', 'Rx_bytes', 500)+netdev('eth0', 'Tx_bytes', 500))/1024
prefix 'eth0'
postfix ' '
width 10
precision 0
align 'R'
update tick
}
Widget Eth0Bar {
class 'Bar'
expression netdev('eth0', 'Rx_bytes', 500)
expression2 netdev('eth0', 'Tx_bytes', 500)
length 14
direction 'E'
update tack
}
Layout Default {
Row1 {
Col1 'OS'
}
Row2 {
Col1 'CPU'
Col10 'RAM'
}
Row3 {
Col1 'Busy'
Col11 'BusyBar'
}
Row4 {
Col1 'Eth0'
Col11 'Eth0Bar'
}
}
Display 'PalmOrb'
Layout 'Default'
Variables {
tick 500
tack 100
}
最後是將WebCAM畫面擷取,轉換解析度後顯示在 ST2205 數位相框,每秒鐘播放一張
webcam.sh
#!/bin/bash
if [ -n "$1" ]
then
URL=$2
DEV=/dev/sda
SETPIC=../setpic/setpic
while true; do
wget $URL -q -O pict.jpg
convert -gravity Center -resize x128 -resize '128x<' -crop 128x128+0+0 -level 0%,100%,0.6 +repage pict.jpg pict.png
$SETPIC $DEV pict.png >/dev/null 2>/dev/null
sleep $1
done
else
echo 'Usage: webcam.sh [delay] [url]'
fi
全員大集合,總共接了5個USB裝置
# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 006: ID 04b4:6560 Cypress Semiconductor Corp. CY7C65640 USB-2.0 "TetraHub"
Bus 001 Device 004: ID 1403:0001 Sitronix Digital Photo Frame
Bus 001 Device 005: ID 0bc7:0004 X10 Wireless Technology, Inc. X10 Receiver
Bus 001 Device 007: ID 046d:080f Logitech, Inc. Webcam C120
Bus 001 Device 008: ID 1130:f211 Tenx Technology, Inc. TP6911 Audio Headset
整合測試
底下是整合後的測試的錄影,業餘水準如果傷眼請多多包涵
改機總計費用
USB 音效卡:NT$199元
WebCAM:NT$500元
ATI Remote遙控器:NT$500元
Palm PDA:NT$500元
迷你數位相框:NT$300元
合計NT$1999元,還不到兩千元台幣,但是改機的樂趣:無價!
後記
本篇改機從構想到完成,時間有點倉促,有些實作網路上還真找不到任何實例可供參考,所以花了很多時間在編譯、測試、修改三步驟無止境迴圈,因截稿在即匆匆發文,遣詞用字上應該還有諸多不順之處,只能日後在慢慢修飾了
技術問題請於論壇上集眾人之力公開討論,感恩
離線
#6 2012-04-30 19:56:44
- andyzhengster
- 新生
- 註冊日期: 2012-04-30
- 文章數: 2
- 目前積分 : 0
Re: 打造 QNAP 變形金剛(QNAP TS-112)
Aven 提到:
TS-112能夠唱歌後,滿足了嗎? 當然不夠,應該也得讓TS-112看得到吧,那就幫她安裝一個WebCAM囉。
安裝WebCAM這會比安裝USB音效卡難度高一點,畢竟不是所有市售的WebCAM都能順利被TS-112所支援,所以先來做一點功課吧。
先看一下目前系統已預先掛載的視訊模組# lsmod | grep videodev videodev 34879 1 uvcvideo v4l1_compat 13447 2 uvcvideo,videodev
系統已預載 uvcvideo 驅動模組,所以往 UVC 方向找 WebCAM 就對了
可以參考這個網站列出來符合UVC的廠牌及型號
根據網路爬文的結果,筆者找了一款網拍價格約NT$500元左右的 Logitech C120
太棒了!!終於找到一台可支援WEBCAM 的NAS
我手上有一支走標準UVC 格式的 AV CVBS 類比usb 影像擷取卡
目前在X86 的MAC OSX, MICROSOFT WINDOWS 都是免安裝驅動程式就能夠使用
成功的在Android platform 讓他動 (當然要將UVC driver 弄進去)
http://youtu.be/Az9Ul1SzcTE
將無線路由器把UVC 弄進去, 就變成 wifi video server
http://febon.blogspot.com/2011/09/wifi- … erver.html
一直想要挑戰NAS...
如果NAS 可以吃類比訊號的話, 就變成一台Hybrid NAS...
離線
相關討論主題
主題 | 回覆 | 點閱 | 最後發表 |
---|---|---|---|
QNAP TS 109 請求幫忙,qpkg 作者 raymondkwk
|
2 | 4375 | 2022-11-15 11:19:49 作者 raymondkwk |
|
11 | 42779 | 2018-08-05 15:56:54 作者 kaiser4013 |
QNAP 展示 AI 醫療應用及 QTS 全新功能與眾多 NAS 新品 作者 Service
|
0 | 4677 | 2018-06-07 09:36:55 作者 Service |
QNAP 首款 3-bay TS-328 NAS,可建立 RAID 5 提高資料保護 作者 Service
|
0 | 5445 | 2018-03-09 21:24:23 作者 Service |
|
21 | 66834 | 2018-01-20 16:04:28 作者 acq12062002 |