梁文音 “愛的詩篇" 最幸福的事

出自梁文音 2008 年的專輯 “愛的詩篇” – 最幸福的事

一首我很喜歡的歌,很好聽,卻又很悲傷。

我們永遠都不知道能否當某人一輩子的公主一輩子的王子,幸福的事,是曾做過你的天使,曾一起分享過開心難過,一起體驗過那份愛的不真實,最後若不能白頭偕老,心中仍會留有一塊位置,那是回憶,是思念,也是證明我們曾經愛過的印記。多麽希望,愛情就像童話故事,不要有那麼多的遺憾,而時間能在最幸福時靜止。

雖然 MV 只有低低的解析度,畫面上看得出因為轉檔而造成的失真,但仍不減那份從歌詞中字裡行間流露出的感動,在我們心中,那最幸福的事。

最幸福的事

作詞:馬嵩惟
作曲:劉宜

你撐著雨傘 接我那次
已經足夠我 記得一輩子
我懂後來你 不是不堅持
愛情本來就 沒萬無一失

淚水離開了 你的手指
那不如讓它 留在這信紙
我想女孩子 最貼心的是
讓愛的人選 結束的方式

我最幸福的事 當過你的天使
趁鼻酸能掩飾 讓我們像當時 擁抱最後一次
最幸福的事 吹蠟燭時你總為我許願的手勢
為摯愛的人 在左邊心口保留位置 是最幸福的事

繼續閱讀

UP board Windows 10 效能測試

關於 UP Board 的開箱以及硬體資訊可以參考前面這兩篇:

https://www.peterdavehello.org/2016/12/up-intel-x5-z8300-board/

https://www.peterdavehello.org/2016/12/up-board-windows-10/

這篇主要是分享一些在 Windows 10 上面進行的效能測試,使用的都是很容易取得且不用額外花費的軟體,所以很方便可以跟其他平台進行比較、對照。

因為 UP Board 在開發板 / 單板電腦相關產品裏面算是少數網卡都是 1Gbps 規格的產品 (UP Board 只有記憶體和儲存裝置有分不同版本,而網卡是直接走 PCI-E 介面),所以我一開始測試就先連上了 Speedtest Beta (http://beta.speedtest.net/) 想來測試一下網卡的速度是不是真的有 100M 以上的速度,看測試結果確實是有:

speedtest
2ms / 744.77 Mbps / 661.63 Mbps 的速度還算不錯 (IP我有藏起來了就別找了XD)

之後使用 Linux 進行效能測試時會再使用 speedtest-cli 測試不透過瀏覽器的情況下測試出來的速度,以及透過 iperf 在區網內直接和其他主機對傳,更準確一點的測試網卡的效能。

接著從 AIDA64 開始進行測試,因為沒有付費,所以有些資訊會被隱藏

AIDA64 Cache & Memory Benchmark:
aida64-cache-memory-benchmark
繼續閱讀

UP board Windows 10 初體驗

關於 UP board 的開箱可以參考這邊:
https://www.peterdavehello.org/2016/12/up-intel-x5-z8300-board/

今天這篇分享的是 UP board 在 Windows 10 上的一些測試資訊,UP board 因為是基於 x86 的架構,所以可以不需要特別的客製化,直接安裝一般的 Windows 及 GNU/Linux 作業系統就可以使用 (為了完全發揮他的功能,他還是有自己基於 Debianubilinux 作業系統),有別於以往玩 Raspberry Pi 和其他水果派的經驗是從 Linux 開始玩起,這次就先從 Windows 10 開始吧!

這次為了製作 UP board 的 Windows 10 安裝 USB 隨身碟,花了非常多時間鬼打牆,一開始透過微軟官方的 Media Creation Tool 換了幾隻隨身碟都會出現 “找不到usb快閃磁碟機" 的訊息,而透過 RufusWindows USB/DVD Download Tool 做出來的隨身碟卻怎麼樣都無法在 UP board 上開機 (但其他電腦卻可以),後來才發現疑似是 UP Board “完全不支援" 傳統的 BIOS 開機方式,一定要使用支援 UEFI 開機的作法才有辦法使用,算是學了寶貴的一課 … 在 UP board 的 firmware 下載頁面 有看到兩種檔案可以下載,一種是有 “with EFI",而一種是沒有 “with EFI" 的版本,不知道沒有 “with EFI" 的版本是不是就不會遇到這樣的問題了?之後再更新看看有什麼不一樣吧!

關於 UP Board 的規格可以參考這邊:
http://www.up-board.org/up/specifications/

up-board-specifications

從網頁或是上圖中可以看到記憶體的部份有分為 1GB / 2GB / 4GB ,而儲存空間分為 16GB / 32 GB / 64 GB 幾個不同版本,其他都是統一規格的,而這次拿到的是 4GB 記憶體 / 32GB eMMC 的版本。

UP Board 和其他開發板一樣,接上電就會開機了,開機畫面有個小小的 LOGO:
UP Board BIOS logo

開機時按鍵盤上的 F7 功能鍵可以叫出開機選單,如果沒有偵測到開機裝置就只會有 Enter Setup
UP Board Boot menu

進入設定頁面一開始會跳出輸入密碼的畫面,查了一下才發現原來預設沒有密碼,直接按下 Enter 就可以進入了,一般來說預設沒有密碼就不會跳出輸入密碼的畫面,這點讓我比較不習慣:
UP Board Enter Password

繼續閱讀

UP board Intel x5 Z8300 x86 開發板 / 單板電腦 – 開箱

今天這篇是 UP Board 的開發板開箱, UP Board 是一款使用 x86_64 架構處理器的單板電腦,外型和其他同類型產品一樣都類似 Raspberry Pi。最早注意到 UP Board 大概是在 2015 年末的時候,那時候 UP board 還在 Kickstarter 募資階段 (可參考 UP – Intel x5-Z8300 board in a Raspberry Pi2 form factor 頁面),當時後就很驚訝這塊版子有別於其他如 Raspberry Pi 或是 Roseapple Pi, Orange Pi 等開發板 / 單板電腦是使用 arm 的處理器,UP board 居然是採用 x86(_64) 架構的 Intel x5 Z8300 64 位元處理器,並直接支援 Windows 10 和 Android 5.0 (當然也包含了 Linux 在內),這意味著有很高的機率可以用他來取代文書型的個人電腦,不必再受限於 arm 的相容性問題,畢竟即便是 Linux ,也不是每個發行版、軟體都對 arm 有足夠的支援,而且仍然有好一部份的非自由開源軟體是不提供原始碼讓使用者自行編譯、修改的,x86 架構的平台可以直接避開相容性這部份的問題,不過當時考量到並沒有急迫的使用需求,所以並沒有參與集資,而是想等實際上市後再找機會來玩玩看,但隨著時間飛逝,一不小心就的慢慢就淡忘了有這麼一個有特色的產品存在,一直到今年大概9月中才再次想起,而開始了這次的 UP board 實測機緣。

我個人從大概十多年前開始就有使用 HTPC 觀看影片的習慣(偶爾順便在客廳上上網之類的),個人電腦的好處就是功能及效能都很強大,可以從容的處理各種格式以及各式畫質的影片,但缺點就是體積太大、耗電、廢熱及噪音都相對其他播放器來的高,所以從 Raspberry Pi 一推出開始我也就同時把陣地慢慢轉移到這種小型的 Single-board computer 上,但當時後的 Raspberry Pi 其實對影應的應用來講一直有著效能不彰的問題,再來因為不是 x86 架構的處理器,沒辦法像其他把舊 PC 拿來當 HTPC 的玩法:安裝一套 Windows 作業系統 ,驅動程式裝完後後裝上 K-Lite 再做一些基本設定,只要處理器和顯示卡還夠力基本上就沒有不能撥的影片,Raspberry Pi 需要搭配特製的作業系統如 OSMC (當時叫作 RaspBMC) 使用才能比較順暢的觀賞電影,且對影片格式的支援還是相對差了一點點 (比起一般的多媒體播放器的話還是相對比較好,所以有種比上不足比下有餘的感覺),這次看上 UP board 的一個主因就是希望看看是否能拿他來當作我的 HTPC 使用,因為 Google 了一番都沒有看到比較篇向把 UP board 當作 HTPC 或文書電腦使用的相關測試 ,加上有看到其他網友的分享文上面有提到研揚科技贈送試用產品的資訊,心想,既然沒有看到相關的測試,剛好我對這塊板子又很有興趣,不如厚著臉皮寫信問問看他們是否也願意贊助一塊 UP Board 讓我做測試,在幾次溝通後有了共識,也感謝他們提供這次的測試的產品,於是就開始了這次的開箱以及後續的測試!

關於 UP Board 的一些資訊大家可以從這幾個網站取得,基本上就都在這3個網站了,第一個是買東西的部份,其他資訊大概後面兩個都找的到

  1. http://up-shop.org/
  2. http://www.up-board.org/
  3. https://up-community.org/

廢話說太多了,開始開箱吧,因為是直接由廠商提供的,所以可能會和市售版略有不同,大家就參考看看吧~

外箱:
dsc_0940

內容物:
dsc_0958

繼續閱讀

閻奕格 – 凝視 (偶像劇 High 5制霸青春片尾曲)

來自2016年的台灣偶像劇 – High 5 制霸青春 中的片尾曲,收錄在 High 5制霸青春電視原聲帶,由知名的作詞、作曲人陳信延作詞、楊子樸作曲,由曾參加超級星光大道的閻奕格演唱,優美的旋律、歌聲,搭配歌詞中字裡行間透露出的青春氣息,無疑勾起了一些已經被逐漸淡忘的往事、回憶,讓人再次股起勇氣去找回那逐夢的膽量,希望這樣勇敢的信念可以牢記在心中,別再弄丟了!對我來說是很棒的一首歌!

作詞:陳信延 作曲:楊子樸

午後的陽光 照亮你凌亂頭髮 你沒發現身上 有一片蔚藍
凝視你努力流汗 和你努力忍住的淚光
我怎麼也覺得有一點鼻酸

你憑著無懼的膽量 就快拿下了夢想
你卻常常忘了 要為自己鼓掌
凝視你閃爍眼光 倒映著大家奮鬥的模樣
在沉悶的地方 盡情地貪玩

勇敢吧 你跑起來是多麼好看
你不要低估信仰 可以帶你飛向遠方
唱響了年輕的樂章 對得起你那些倔強
不孤單 讓我陪你用力大聲唱

繼續閱讀

在 Debian / Ubuntu GNU/Linux 底下找出特定命令 / 程式的來源套件

Debian / Ubuntu based GNU/Linux 底下做事有個很棒的優點,有太多工具可以透過 apt 套件庫來進行安裝,重灌電腦的時候只要透過 apt 或 apt-get 就可以把一大半會需要用到的工具給裝起來,不過有時候可能邊摸索邊上網查資料來看某工具要怎麼用,一骨腦裝完卻沒作筆記,日後要準備重灌時卻想不起來該裝什麼套件才能把要用到的命令找回來,窘 …

如果你有安裝 command-not-found 這個套件,在 bash shell 底下如果執行了找不到的命令,除了常見的 blah: command not found,他還會有很貼心的提示使用者應該安裝哪個缺漏的套件,像這樣:
$ kvm
The program 'kvm' is currently not installed. You can install it by typing:
sudo apt install qemu-kvm

上面範例為我執行了一個不存在的命令 – kvm ,然後 command-not-found 這套工具建議我去裝 qemu-kvm 這個套件,裝完後就會有 kvm 這個命令可以使用了,如果同時存在不只一個套件包含了同樣的命令,command-not-found 這套工具一樣會很好心的幫我們列出來,例如:
$ sar
The program 'sar' can be found in the following packages:
* sysstat
* atsar
Ask your administrator to install one of them

就算是找不到 100% 符合的命令,command-not-found 也會很好心的列出其他參考,例如:
$ gitx
No command 'gitx' found, did you mean:
Command 'gitg' from package 'gitg' (universe)
Command 'git' from package 'git' (main)
Command 'gitk' from package 'gitk' (main)
gitx: command not found

不過上述的功能僅限於我們沒有正確的安裝對應的套件才能使用,如果是套件已經裝起來了的時候呢?例如我工具都已經裝好了,只是想確認某個命令是從哪裡來的,要做個筆記而已,這種情況很常見的啊,例如遇到問題跑去問 Google ,看到一堆解法,一個不行換一個,換到可以的解法的時候可能已經 apt-get install 不知道多少次了,已經忘記剛剛的命令到底是從哪邊來的了XD

還好 dpkg 有個強大的搜尋功能,可以讓我們從已經安裝的套件中搜尋出他們到底包含了哪些檔案,底下是從 Ubuntu 16.04.1 裏面擷取的 dpkg manpage:

-S, –search filename-search-pattern…
Search for a filename from installed packages.

使用方式為:
$ dpkg -S '檔案路徑/名稱'

要透過 dpkg -S 來找命令對應所屬的套件,只要把命令的完整路徑丟給他就可以了,命令的完整路徑我們可以透過 type 或 which 這兩個指令來確認,例如:
$ type whoami
whoami is /usr/bin/whoami

$ which whoami
/usr/bin/whoami

從上面的輸出我們可以知道 whoami 這個命令的完整路徑是 /usr/bin/whoami ,再把 /usr/bin/whoami 拿去 dpkg 查詢就可以了!例如:
$ dpkg -S '/usr/bin/whoami'
coreutils: /usr/bin/whoami

$ dpkg -S '/usr/bin/curl'
curl: /usr/bin/curl

或是直接
$ dpkg -S "$(which whoami)"
coreutils: /usr/bin/whoami

$ dpkg -S "$(which curl)"
curl: /usr/bin/curl

從上面的結果我們可以發現 curl 這個命令是從 curl 這個套件來的, whoami 這個命令則是從 coreutils 這個套件來的,如果你查詢的是還沒有安裝或是不是透過 apt / dpkg 套件管理工具安裝的命令,那就沒辦法了:
$ dpkg -S '/usr/bin/kvm'
dpkg-query: no path found matching pattern /usr/bin/kvm

要注意的是

1. which 跟 type 輸出的格式不太一樣,type 的輸出結果因為多了 blah is … ,所以還需要經過處理把前面那段拿掉才有辦法餵給 dpkg ,而 which 因為是直接出出路徑所以沒有這問題

2. 這邊如果輸入的不是完整路徑,則可能會出現一堆其他不相關的東西,例如:
$ dpkg -S 'whoami'
bash-completion: /usr/share/bash-completion/completions/ldapwhoami
coreutils: /usr/share/man/man1/whoami.1.gz
coreutils: /usr/bin/whoami

因為 dpkg 會直接把所有完整路徑裏面符合輸入字串的部份都印出來,所以像是 whoami 的 manpage 以及 bash-completion 的自動補齊指令都被列出來了。

好了,這篇筆記雖然短,可我覺得很實用,哪天失憶或是被問問題的時候就可以把這篇丟出來,這就是做筆記最大的用途 … :D

檢查在 Debian / Ubuntu 環境中虛擬化功能的支援 (kvm, LXC)

使用 KVM (Kernel-based Virtual Machine)、Xen、LXC(Linux Containers) 等虛擬化技術時經常需要 linux kernel 或是 CPU 上的硬體支援,像 KVM 這種高度依賴硬體協助虛擬化 (Hardware-assisted virtualization) 例如 AMD-V 或是 Intel VT-x 的技術,最好是在使用前就先確認是否在系統上有被支援,才不會使用起來才發現效能慢得很痛苦,硬體協助虛擬化除了本身硬體支援、也需要相關的設定需要在主機板 BIOS 上啟用及在軟體上的支援,這邊筆記一下在 Ubuntu 上怎麼樣快速的確認是否自己的環境有虛擬化時會用到的功能支援,軟體虛擬化技術的部份會以 KVM / LXC 為主。

1. 檢查 CPU 是否支援硬體虛擬化技術,透過 cpuinfo 裡面的 flag 來確認:

  • AMD 有支援 AMD-V 技術的處理器應該會看到一個 svm 的 flag
  • Intel 的 VT-x 技術對應的 flag 則是 vmx
  • 其他例如 ARM, PowerPC 架構的處理器可以參考這邊的資訊:

2. 檢查 kvm kernel module 是否已經載入,以 intel 處理器為例:

(如果是 AMD 的處理器要看到的應該會有 kvm_amd 而不是 kvm_intel)

另外我們也可以藉由 kvm-ok 這個工具來看看 kvm 環境的支援情形,要使用 kvm-ok 請先使用 apt 安裝 cpu-checker 這個套件 (Ubuntu 有包,但 Debian 沒有)。

以下分別是有有/無支援的輸出結果:

如果處理器本身有支援對應的虛擬化技術,但顯示為沒有支援,或是 kvm 模組沒有被正常載入,可以試試看手動載入相關的模組 (注意有 intel, amd 字樣的模組請對應自己的處理器品牌):

3. 同時檢查包含 QEMU / LXC 虛擬化技術相關的支援及細節

這邊使用的工具是 virt-host-validate ,現在不管是在 Ubuntu 或是 Debian 上都有打包好的套件可以直接安裝使用,透過這個工具可以看到更多虛擬化技術的支援細節,要使用 virt-host-validate 這個工具請用 apt 安裝 libvirt-bin 這個套件。virt-host-validate 使用基本上不需要特別帶參數,除非你只想針對特定一種虛擬化技術做確認,執行結果範例及說明在下方:

沒有支援硬體虛擬化的結果 (libvirt-bin v1.2.x in Ubuntu 14.04.5 / Debian 8.6):

有支援硬體虛擬化的結果 (libvirt-bin v1.2.x / Ubuntu 14.04.5 / Debian 8.6):

另外也有可能出現需要另外載入 kernel module 的提示訊息,例如 vhost_net ,不過我是因為忘了用 root 權限才看到這個訊息的,有些檢查需要使用到比較高的權限才能確認 (libvirt-bin v1.2.x / Ubuntu 14.04.5 / Debian 8.6):

到了 Ubuntu 16.04 , libvirt-bin v1.3.1,結果變得更加的詳細,大致如下,就不分別貼多個版本了:

這些資訊其實透過 sysctl , dmesg 等工具裡面也都可以看到一些蛛絲馬跡,在 unix 的環境裡面往往一件事可能有不只一種作法,只是 dmesg 訊息有時會被 "洗板" ,訊息太多就被蓋掉了,sysctl 的話則是要多背一些位置 ... kvm-ok 或是 cpuinfo 我還是覺得簡單一些,透過上面這些訊息,我們基本上就可以了解到所使用的環境是否有適合來拿做虛擬化的應用了,即便是身處在一個已經經過虛擬化的環境裡,例如使用 AWS c或是 DigitalOcean 的 VPS,只要所在環境軟硬體有適當的巢狀虛擬化支援,再多開一層的虛擬機都還是能有不錯的效能,反之,若是沒有適當的軟硬體虛擬化技術支援,即便是運算能力很強的伺服器處理器,只有一層的虛擬機在跑都還是可以處理器使用率不斷滿載、整體速度慢到讓人無法接受,這也就是為什麼要先確認我們需要用到的虛擬化技術支援情形的原因。