數位天堂

Nokia:科技始終來自於人性; 拜耳:如果文明不能使我們更相愛,那科技便失去意義!
歡迎您的加入,讓我們一起討論科技與環保的整合應用...

您尚未登入。

#1 2011-09-03 23:07:35

Aven
天使
來自: 數位天堂
註冊日期: 2007-07-15
文章數: 2266
網站

打造 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)之間的對應呢? 這時腦海突然浮現這樣的對白:這就像小麻雀飛進了大森林,小蝦米遇到大鯨魚,小野草碰到了大榕樹,小番薯遇到大鐮刀了! 這樣解釋大家應該都懂了吧YA

安裝 Optware
對本文有興趣的朋友相信對QNAP NAS已有一定的了解,所以我們捨去比較基本的初始開箱步驟,直接跳至QPKG操作系統,並點選右手邊"取得QPKG"按鍵。
https://digiland.tw/uploads/2_ts-112_qpkg_admin.jpg

進到QNAP官方的QPKG套件下載網頁
https://digiland.tw/uploads/2_ts-112_qpkg_download.jpg

找到 Optware 套件下載連結
https://digiland.tw/uploads/2_ts-112_qpkg_optware.jpg

安裝完Optware,此時人生還是黑白的
https://digiland.tw/uploads/2_ts-112_qpkg_optware_start1.jpg

必須執行啟動的程序
https://digiland.tw/uploads/2_ts-112_qpkg_optware_start2.jpg

當它從黑白變成彩色,你的改機人生才會多采多姿
https://digiland.tw/uploads/2_ts-112_qpkg_optware_start3.jpg

另外,須確認是否開啟 ssh(telnet) 功能,因為接下來透過 ssh(telnet) 連進NAS操做
https://digiland.tw/uploads/2_ts-112_ssh_on.jpg

連進後第一件事,更新 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變形金剛。





技術問題請於論壇上集眾人之力公開討論,感恩 thankgod

離線

 

#2 2011-09-03 23:09:24

Aven
天使
來自: 數位天堂
註冊日期: 2007-07-15
文章數: 2266
網站

Re: 打造 QNAP 變形金剛(QNAP TS-112)

打造好基礎建設後,我們可以逐步打造變形金剛,首先先讓我們的TS-112能夠發聲唱歌吧,在過去要能讓embaded系統能讓外接裝置能夠順利運作,通常得費時尋找合適的核心模組(kernel module),或是下載原始碼再自行編譯去驅動這些裝置,所幸目前 QNAP 的 NAS 預先都已載入常用的驅動模組,所以當我們直接接上常見的USB周邊裝置幾乎都能直接被辨識及支援。

https://digiland.tw/uploads/2_ts-112_usb_sound.jpg

插入 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




技術問題請於論壇上集眾人之力公開討論,感恩 thankgod

離線

 

#3 2011-09-03 23:10:31

Aven
天使
來自: 數位天堂
註冊日期: 2007-07-15
文章數: 2266
網站

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

https://digiland.tw/uploads/2_ts-112_webcam_c120.jpg

拿到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 官方網頁有詳細的輔助說明
https://digiland.tw/uploads/2_ts-112_webcam_ctrl.jpg

驗收畫面,緊張時刻來了,打開IE之外的瀏覽器(FireFox, Sarafi 皆可)輸入網址 http://XXXX:8081/ 即可看到 WebCAM 畫面
https://digiland.tw/uploads/2_ts-112_webcam_demo.jpg

這還不是最屌的,以下是冒著生命危險發表這項用途,過去想在NAS上使用Surveillance Station,勢必還得加買個兩三千塊起跳的IP CAM。沒錯,懦夫窮人救星來了,Motion + WebCAM 即可號稱窮人版IP CAM,底下就來看看我們做的實驗。

支援 Surveillance Station
首先當然要先啟用 NAS 上的 Surveillance Station
https://digiland.tw/uploads/2_ts-112_surveillance_on.jpg

進到 Surveillance Station 設定 Camera
攝影機機型:Generic JPEG
HTTP URL:/video.cgi
埠號:8081
使用者名稱:admin
使用者密碼:admin

輸入完畢,按下套用完工
此時點擊右邊測試按鈕,若出現影像,恭喜您省下一台IP CAM的錢
https://digiland.tw/uploads/2_ts-112_surveillance_setup.jpg

測試錄影及回放功能皆可正常
https://digiland.tw/uploads/2_ts-112_surveillance_playback.jpg

以上是好用的Motion + WebCAM的組合,如果覺得實用的請加分按讚,感恩。據說本文發表後,各大IP CAM廠商紛紛下修今年下半年IP CAM的出貨量,各大賣場NAS專區搭售IP CAM的組合商品也紛紛下架,改搭WebCAM重新出發 YA



技術問題請於論壇上集眾人之力公開討論,感恩 thankgod

離線

 

#4 2011-09-04 08:08:11

Aven
天使
來自: 數位天堂
註冊日期: 2007-07-15
文章數: 2266
網站

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 驅動程式編譯進來,本篇難度又更高了一點。

https://digiland.tw/uploads/2_ts-112_ati_remote.jpg

編譯之前,須安裝編譯環境,安裝過程約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



技術問題請於論壇上集眾人之力公開討論,感恩 thankgod

離線

 

#5 2011-09-04 08:10:22

Aven
天使
來自: 數位天堂
註冊日期: 2007-07-15
文章數: 2266
網站

Re: 打造 QNAP 變形金剛(QNAP TS-112)

進行到這裡似乎缺少了點什麼,對了,就是少個螢幕可以看看目前的系統狀態或者播放音樂資訊。好吧,接下來這一篇我們來個大整合囉,除了整合前述的MPD、LIRC及WebCAM,我們還要在整合兩個螢幕,一個顯示文字界面,另一個顯示圖形界面,這樣才算夠瘋狂吧。

這裡選用的兩台螢幕,一是十多年前的 Palm PDA,當年叱吒風雲Palm PDA 如今宛如雞肋,食之無味,棄之可惜啊,如今正好派上用場,可謂是物盡其用。另一個是迷你數位相框,數位相框雖然是這幾年的新近的流行產物,但是當智慧型手機普及之後,數位相框的角色似乎已逐漸被取代,生命週期可能比 Palm PDA 更短,藉由本文或許有還有機會延續它的用途。

PalmOrb
安裝 Palm 上的顯示界面PalmOrb
這裡下載,這裡實驗的 PalmOrb 是採用 V1.1a4 版本,下載回來請透過 HotSync 安裝進你的 Palm 上。

底下是啟動 PalmOrb 的參考畫面
http://palmorb.sourceforge.net/imgs/palmorb2.gif http://palmorb.sourceforge.net/imgs/scaledlong.gif http://palmorb.sourceforge.net/imgs/experimentA.gif

破解 ST2205U 數位相框韌體
https://digiland.tw/uploads/2_ts-112_dpf_qnap.jpg
參考國外 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播放時的音樂資訊
https://digiland.tw/uploads/2_ts-112_palm_mpd.jpg
編輯 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'


另一個是要顯示系統即時效能訊息
https://digiland.tw/uploads/2_ts-112_palm_sys.jpg
編輯 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


整合測試
底下是整合後的測試的錄影,業餘水準如果傷眼請多多包涵blushing


改機總計費用
USB 音效卡:NT$199元
WebCAM:NT$500元
ATI Remote遙控器:NT$500元
Palm PDA:NT$500元
迷你數位相框:NT$300元
合計NT$1999元,還不到兩千元台幣,但是改機的樂趣:無價!

後記
本篇改機從構想到完成,時間有點倉促,有些實作網路上還真找不到任何實例可供參考,所以花了很多時間在編譯、測試、修改三步驟無止境迴圈,因截稿在即匆匆發文,遣詞用字上應該還有諸多不順之處,只能日後在慢慢修飾了thankgod




技術問題請於論壇上集眾人之力公開討論,感恩 thankgod

離線

 

#6 2012-04-30 19:56:44

andyzhengster
新生
註冊日期: 2012-04-30
文章數: 2
目前積分 :   

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
YA

太棒了!!終於找到一台可支援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...


離線

 

#7 2012-04-30 21:07:52

hippo
天使
註冊日期: 2008-10-07
文章數: 1562
目前積分 :   20 

Re: 打造 QNAP 變形金剛(QNAP TS-112)

https://digiland.tw/uploads/614_v4l_usb_device.gif
https://digiland.tw/uploads/614_v4l_usb_device_gspca_based_webcams.gif
NAS或路由器等, 自行編譯相關的核心模組, 即可驅動自己的WebCam.


離線

 

相關討論主題

主題 回覆 點閱 最後發表
QNAP TS 109 請求幫忙,qpkg 作者 raymondkwk
2 2818 2022-11-15 11:19:49 作者 raymondkwk
[輕薄開箱] QNAP TBS-453A 作者 Service  [ 1 2 ]
11 39408 2018-08-05 15:56:54 作者 kaiser4013
0 4196 2018-06-07 09:36:55 作者 Service
0 4992 2018-03-09 21:24:23 作者 Service
21 61748 2018-01-20 16:04:28 作者 acq12062002

友情連結

論壇頁尾

Powered by PunBB
© Copyright 2018 Rickard Andersson
RSS Feed