2017年6月19日

Volumio2

Volumio 是支援類似 Raspberry Pi 等多款小電腦主機的音樂播放器,只要有一台 Raspberry Pi,就能夠接上網路上的串流、區域網路內的音樂庫、YouTube,進行音樂的播放。

內建的 Audio Out 就能夠播放音樂,但如果要得到更高語音品質的音樂輸出,則需要再購買 USB Speaker 或是 USB/I2S DAC。

安裝 volumio2 只要到 DOWNLOAD VOLUMIO FOR YOUR PLATFORM 網頁下載 Raspberry Pi 的 image,燒錄到 micro sdcard,直接用 RPi 開機就可以運作。

網路設定

如果直接接上 RPi console,可以用

帳號: volumio
密碼: volumio

登入進入 RPi,root 的密碼也是 volumio。

但基本上是 console mode。

volumio 必須要用 browser 進去設定以及使用,主畫面就像下面這樣。

我們除了設定連接到 NAS 的音樂庫,另外還下載了 YouTube Plugin。

設定「播放選項」

因為我沒買 DAC,在設定播放的輸出裝置時,一直發現一些問題,最後就是參考這個網頁

LIBRARY UPDATE: SEEMS TO CRASH VOLUMIO ON RASPI

把 /boot/cmdline.txt 裡面

由
"smsc95xx.turbo_mode=N"
改為
"smsc95xx.turbo_mode=Y"

另外把音量選項的 Mixer Type 改為 Software,就能運作了。

輸出裝置

RPi 內建的 Audio Out 聲音效果很差,會聽到很多雜音。

後來把一個 USB Speaker 接上 RPi,也沒有裝 Driver,就能在輸出設備中選到該 USB Speaker,聲音的品質改善很多。

APP

Volumio iOS 是個非常好用的工具,在 LAN 裡面把 app 打開,馬上就自動連接到 LAN 的 volumio。

References

Raspberry Pi 的應用 - 連音響發燒友也愛用的音樂播放器:Volumio

Raspberry Pi 的應用 - 數位音樂播放器的再進化:Volumio 2

2017年6月13日

Google Computer Engine 價錢相關

每次有人問到價錢相關問題時,都要上官網去查,官方資料雖然詳細豐富,但有時候還是覺得太多了,不需要看到這麼細,不如就自己整理一份堪用的吧。

基本

instance

最貴費用會在 instance 的費用,instance 會影響到 CPU 與記憶體。根據你選的機器類型,會得到相對應的費用。以 zone asia-east1-a 為例:

  • n1-standard-1 (1 個 vCPU、3.75 GB 記憶體) 費用一個月為 28.50 美金
  • n1-standard-2 (2 個 vCPU、7.5 GB 記憶體) 費用會變為一個月 56.61 美金。

region

region 也就是你 instance 的所在區域,比如說台灣的話就是 asia-east1,而東京的話就是 asia-northeast1。

所選的 region 與 zone 會影響價錢,比如若使用 n1-standard-1 的機器類型,於 asia-east1-a 一個月要 28.50 美金,位於 us-west1-a 一個月要 24.6 美金,位於 asia-northeast1-a 則要 31.69 美金。

images

所選 image 使用的作業系統會影響價錢,用一般 Linux 如 Debian、CentOS、Ubuntu 等等的是免費的,但是若是使用 Windows Server 或是 Red Hat 則要付授權費用。詳細看這邊 Premium images

網路

網路的收費有點複雜,有以下幾點:

  1. 外部網路傳進 GCE 機器的流量 (Ingress) 是不用收費的。
  2. 在相同 zone 內兩台 GCE 機器透過內部 ip 互傳的網路流量是不用收費的。
  3. GCE 機器傳至相同 region 的服務或是產品是不用收費的。
  4. GCE 機器若是透過外部 ip 傳出去的流量,則要根據地區與用量算錢,大多區域的價錢都一樣,只有到中國(香港的流量價錢和其他區域一樣)和澳洲的流量價錢會不一樣。每月使用流量 1TB內,則大多區域的價錢會是每 GB 0.12 美元,到中國會是每 GB 0.23 美元,到澳洲會是每 GB 0.19 美元。若你使用 1TB 以上,會便宜一點,若你使用到 10T 以上,價格會在便宜一些。

在白話一點就是,從外部送給 GCE instance 的流量都不用錢;GCE instance 之間若是透過內網 ip 互傳的流量也不用錢;若是透過外網 ip 從 GCE instance 傳出的流量就要收錢。

負載平衡

啟用則每小時 0.025 美金 (5 條規則內統一都是一樣價錢),之後額外加一條規則加 0.010 美金。而負載平衡處理的流量每 GB 為 0.008 美金。

硬碟

以台灣所屬的 zone,asia-east1 為範例:

  1. 標準硬碟:1 個月 1 GB,0.04 美元。
  2. SSD:1 個月 1 GB,0.170 美元。
  3. Snapshot:1 個月 1 GB,0.026 美元。
  4. Local SSD:1 個月 1 GB,0.218 美元。
  5. 自製 Image:1 個月 1 GB,0.085 美元。

IP

你可以跟 google 要固定 ip,但是若你要了 ip 卻沒將它使用在任何 instance 上,則 google 要跟你收費,每小時為 0.010 美金,若是該 ip 有在正常使用中,則不會被收取任何費用。

價錢範例

以下價錢範例,會將美金 * 30 當成美金轉換成台幣的匯率。

規格與用量相關

規格或用量 zone 每月花費美金 每月花費台幣
1台 n1-standard (1 vCPU、3.75 GB 記憶體),使用 centOS 7 image asia-east1 28.51 855.3
1台 f1-micro (0.2 vCPU、0.60 GB 記憶體),使用 centOS 7 image asia-east1 5 150
1台 g1-small (0.5 vCPU、1.70 GB 記憶體),使用 centOS 7 image asia-east1 15.33 459.9
HDD 10 GB asia-east1 0.40 12
HDD 100 GB asia-east1 4.00 120
snapshop 10 GB asia-east1 0.26 7.8
snapshop 100 GB asia-east1 2.60 78
負載平衡,5 條規則,一個月處理 1 GB 流量 asia-east1 18.26 547.8
負載平衡,5 條規則,一個月處理 100 GB 流量 asia-east1 19.05 571.5
負載平衡額外增加 1 條規則 asia-east1 7.3 219
負載平衡額外多處理 1 GB 流量 asia-east1 0.01 0.3

網路相關

GCE 傳出流量 每月花費美金 每月花費台幣
GCE 機器傳出 1 GB 網路流量到中國(香港不屬於此價位) 0.23 6.9
GCE 機器傳出 100 GB 網路流量到中國(香港不屬於此價位) 23 690
GCE 機器傳出 1 GB 網路流量到澳洲 0.19 5.7
GCE 機器傳出 100 GB 網路流量到澳洲 19 570
GCE 機器傳出 1 GB 網路流量到各其他各地(香港屬於此價位) 0.12 3.6
GCE 機器傳出 100 GB 網路流量到各其他各地(香港屬於此價位) 12 360

免費試用

GCP 服務現在提供一年 300 美金的免費試用服務,所以可以透過你的 google 帳號啟用 GCP 服務(需要填入信用卡),則可使用 GCP 服務。預設你的帳號是不會被收取任何費用的,當裡面的 300 元花完了只會讓帳號被暫停,而不會從信用卡扣款。

若你點了升級或是升級帳戶的按鈕將你的帳號升級成付費帳號,此時信用卡才會被拿來扣款。

免費方案

若你只是需要一台機器,跑跑 wordpress,或是練習 linux,則你可以考慮使用 GCP 免費方案,GCE 提供你在 US regions 開一台 f1-micro instance,一個月可以使用 30 GB 的 HDD,與 5GB 的 snapshot。網路部份一個月 1 GB 的網路對外流量從北美至世界各地(但不包括中國和澳洲)。所以基本上可以拿到一台免費的機器使用。

reference

Google Cloud Platform Pricing Calculator

Always Free Usage Limits

Regions and Zones

Google Compute Engine Pricing

2017年6月12日

如何備份、還原處理 RPi 的 sdcard image

Raspberry Pi 使用的 sdcard 雖然同樣是 16GB,但因為不同廠牌還是有些大小的差異,備份跟還原 sdcard 有些問題,畢竟大檔案的 image 不能還原到稍小的 sdcard 中。

以下紀錄如何備份、還原及縮小 RPi 的 sdcard。

在 MAC 處理 image

  • 使用 [SD Formatter] 可格式化 SD Card
sudo newfs_msdos -F 16 /dev/disk2
  • RASPBIAN 下載 RASPBIAN JESSIE WITH PIXEL,取得 2016-09-23-raspbian-jessie.zip 解壓縮得到2016-09-23-raspbian-jessie.img

  • 重新插入 SD Card,用以下指令的結果,得知 SD Card 在 /dev/disk2 或是 /dev/disk1

diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *480.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            479.2 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk2 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.9 GB    disk2
   1:             Windows_FAT_32 NO NAME                 15.9 GB    disk2s1
  • umount disk2
sudo diskutil unmountDisk /dev/disk2
  • 將 img 寫入 sdcard

如果 rdisk2 有問題,就改成 disk2

sudo dd bs=1m if=~/Downloads/2016-09-23-raspbian-jessie.img of=/dev/rdisk2
  • 將 sdcard dump 到 image
sudo dd bs=1m if=/dev/rdisk2 of=~/Downloads/messenger_20170405.img

在 RPi 開機狀態直接備份 sdcard

在 RPi 上,將新的 sdcard 放入 USB sdcard Reader 接上 RPi

sudo fdisk -l

如果是 Disk /dev/mmcblk0 的設備,就是 RPi 上原始的 sdcard,以 USB sdcard Reader 接上 RPi 後,會看到增加的 /dev/sda 設備,這是新的 sdcard

下載 rpi-clone

git clone https://github.com/billw2/rpi-clone.git
sudo cp rpi-clone/rpi-clone /usr/local/sbin
rm -rf rpi-clone

用以下指令就可以將 sdcard 複製到 新的 sdcard 上

sudo rpi-clone sda -v -x

在 Windows 處理 sdcard image

使用 Win32 Disk Imager 軟體就可以備份及還原 image

縮小 RPi image

使用 PiShrink 可以在 linux 縮小 RPi image

wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh

chmod +x ./pishrink.sh
sudo ./pishrink.sh ./raspbian_backup.img

以下是執行結果,可看到檔案縮小了 2G

Creating new /etc/rc.local
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/loop0: 301607/960992 files (0.2% non-contiguous), 3200117/3841024 blocks
resize2fs 1.41.12 (17-May-2010)
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/loop0 to 3208948 (4k) blocks.
Begin pass 2 (max = 228392)
Relocating blocks             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 3 (max = 118)
Scanning inode table          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 4 (max = 25082)
Updating inode references     XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/loop0 is now 3208948 blocks long.

Shrunk ./raspbian_backup.img from 15G to 13G

References

How to Clone Raspberry Pi SD Card on Windows, Linux and macOS

Backup (or Clone) a Raspberry Pi SD Card

用 Win32 Disk Imager 備份和燒錄 Raspberry Pi 的 SD 卡