Roseapple Pi (RaPi) 台灣蓮霧派初體驗

自從 Raspberry Pi (樹莓派) 在 2012 年初推出至今,市面上的小型單板電腦(one board computer) 可說是如雨後春筍般冒出,例如 CubieboardGalileoUDOOBanana Pi 、Orange Pi 等,尤其是各種 “水果派”,畢竟 Raspberry Pi 的共同創辦人 Eben Upton 都說歡迎山寨廠抄襲、複製了(Raspberry Pi 創辦人在台專訪:歡迎山寨廠商來競爭、複製),而這次要來玩的 Roseapple Pi 也是其中一款向 Raspberry Pi 致敬的產品!

其實早在 Raspberry Pi 之前就已經有如 PandaBoard、 ODROIDBeagleBoard 等開發板,Raspberry Pi 最讓人震憾的還是他的價格,當時的 model A / B 分別只要美金 25$ / 35$ ,換算下來約台幣一千元就可以有一台不含週邊設備、硬碟的電腦主機,這對於偏遠地區的資訊教育來說是有著顯著的門檻降低功用 (當然還是需要師資以及其他設備啦),當時看到樹莓派二話不說就立刻跟授權廠商之一的 RS Components 下訂單了,還記得那時候主機本體、外殼是分兩次從英國原廠寄出,讓我有點吃驚(畢竟沒多少錢的東西),雖然等了一小段時間,但想想是從英國搭飛機來的,也就還說的過去。

我玩樹莓派的主要用途是學習 Unix 系統以及影音播放(放客廳再方便不過了、還可以透過網路存取影片),主要看上的就是這類開發板省電、低費熱、零噪音、體積小,但樹梅派有個小缺點,就是運算效能不高,可能各位手上的手機可能速度就比樹莓派來的快的多,樹梅派最初使用的是 Broadcom BCM2835 單核心的 SoC ,後續的 B+ model 雖然在規格上有所調整,但效能上並沒有進步,這大概是當時後愈來愈多號稱效能超越樹莓派的開發板不斷冒出來的原因之一,一直到 2015 年推出的 Raspberry Pi 2 才改採用 ARMv7 架構、四核心處理器的 BCM2836,同時也把記憶體容量,算是有相當程度的提升(官方宣稱是6倍),雖然晚了點,但有總比沒有好,只是有時候看影片還是沒辦法很順暢,所以我才希望找看看有沒有其他替代產品,不但能播放影片、還能讓我練習一些 Linux 管理、開發相關的平台,於是就找到蓮霧派了!

身為致敬產品,蓮霧派的 CPU / RAM / USB 規格算是比較吸引我的地方,官方公佈的規格可以看這邊:
http://roseapplepi.org/index.php/spec/

規格還不錯,不過沒有內建 Wifi / Bluetooth,網路卡也只有到 100 Mbits

比較吸引我的幾個規格:
RAM: 2GB DDR3 (2GB 比我手機還大了)
USB port: USB 3.0*1 (Type A) + USB 2.0*2 (Type A)
External Buttons: On/Off,(Sleep/wake)/Reset (內建自己的開關/按鍵)
Operation Systems: Debian, Ubuntu, Fedora, Android 5.0/5.1 (可以跑 Andoird 5.1 !!!)

很可惜在處理器部份並沒有詳細的資料可以參考,沒看錯的話 Roseapple Pi 採用的是 Actions Semi (炬力) 的 S500 整合晶片,S500 這款 Soc 在官網上並沒有自己的 Spec 或是 Product page,只能從 ActDuino S500 這款開發板上的介紹略知一二,簡單挑重點來講,這款 Soc 為 28nm 製程 、包含了 Cortex-A9R4 中央處理器、NEON SIMD 協同處理器、PowerVR SGX544 繪圖晶片,能夠支援到 4K 或是 1080p@60fps 的高品質影片播放,同時支援了 USB 3.0, HDMI 1.4b,等等的規格,不過因為不是本篇重點,其餘就不贅述了。

先從外觀開始看,開箱就省了吧,直接看開完箱的照片:

USB / 網路孔正面照,在這個 USB 3.0 還沒全面普及的時刻,能在這種單板電腦上看到,真是莫名的感動!

170008

拍的有點暗,懶得重拍了,加減看,從左至右分別是 power button, HDMI, 3.5mm audio, CSI 相機接頭,UART debug pin

165946

最左邊 4 個 pin 是麥克風跟紅外線使用的,右邊兩排共 40 個 pin 是 GPIO

165955

閱讀全文

Ubuntu based GNU/Linux 上的防火牆 (ufw) 基本設定

早期在 Linux 上設定防火牆多事透過 iptables 這隻程式在下規則,不過說真的,對於新手或是要求很基本的使用者來說,iptables 有些功能其實用不到,例如 nat, forward等等的, 而且語法有點複雜,我自己也是常常要邊翻 man page 、筆記邊操作,後來有了令一套全名叫作 Uncomplicated Firewall 的 ufw,意思就是簡單的、不複雜的防火牆,相對於 iptables 來說,ufw 是真的簡單很多了!ufw其實只是一個 iptables 的前端設定程式,最後的規則都還是會走 iptables ,而且比較複雜的功能還是要直接透過 iptables 才有辦法做到!如果想看 ufw 設定完的 iptables 結果只要用這個命令就可以看到了:iptables -L -n

今天來講一下 ufw 的”基本“使用方式,Ubuntu 14.04 有內建 ufw,Debian要自行安裝,透過 apt-get 就可以了:
$ sudo apt-get install ufw

接下來示範的操作都在 Ubuntu 14.04 上面進行,不同的系統可以會略有出入。

ufw 預設是停用的,要啟用 ufw 的話命令如下,關鍵字分別是 enable 和 disable,也就是啟用和停用,因為需要 root 權限,所以命令前面會加上 sudo:
$ sudo ufw enable
Firewall is active and enabled on system startup

同理,停用 ufw:
$ sudo ufw disable
Firewall stopped and disabled on system startup

要確認 ufw 已經啟用,可以看一下 ufw 的 status:

已啟用:
$ sudo ufw status
Status: active

未啟用:
$ sudo ufw status
Status: inactive

那防火牆的允許跟禁止規則怎麼下呢?
關鍵字是 allow 跟 deny,allow 表示允許,deny 表示拒絕

先講怎麼設定防火牆預設行為,也就是對於沒有手動設定規則的連線該怎麼處理

比較安全的設定方式,建議把預設連入設定為 deny ,也就是沒有手動設定允許通過的連線就會被擋下來:
$ sudo ufw default deny

明確一點的指令是這樣:
$ sudo ufw default deny incoming

閱讀全文

Convert your Ubuntu/Debian between different versions, like Desktop to Server

There is a very useful tool under Debian/Ubuntu GNU/Linux called tasksel, which can help us “convert” our Debian/Ubuntu between versions.

Install via apt-get/aptitude:

and run:

It’ll show you a menu like this:

閱讀全文

Remotely shutdown/restart Windows via Linux on Debian/Ubuntu based Linux

Need samba-common package
sudo apt-get install samba-common

Then use this command to shutdown the computer remotely:
net rpc shutdown --ipaddress ip --user username%password

Add -r if you want to restart, not shutdown:
net rpc shutdown -r --ipaddress ip --user username%password

Success message:

Shutdown of remote machine succeeded

These messages mean failed:

  • Could not connect to server 192.168.1.55
  • Connection failed: NT_STATUS_IO_TIMEOUT
  • Connection failed: NT_STATUS_RESOURCE_NAME_NOT_FOUND
  • Could not initialise pipe winreg. Error was NT_STATUS_OBJECT_NAME_NOT_FOUND

There are many functions provide by net [rpc], like:

net rpc audit Modify global audit settings
net rpc info Show basic info about a domain
net rpc join Join a domain
net rpc oldjoin Join a domain created in server manager
net rpc testjoin Test that a join is valid
net rpc user List/modify users
net rpc password Change a user password
net rpc group List/modify groups
net rpc share List/modify shares
net rpc file List open files
net rpc printer List/modify printers
net rpc changetrustpw Change trust account password
net rpc trustdom Modify domain trusts
net rpc abortshutdown Abort a remote shutdown
net rpc shutdown Shutdown a remote server
net rpc samdump Dump SAM data of remote NT PDC
net rpc vampire Sync a remote NT PDC’s data into local passdb
net rpc getsid Fetch the domain sid into local secrets.tdb
net rpc rights Manage privileges assigned to SID
net rpc service Start/stop/query remote services
net rpc registry Manage registry hives
net rpc shell Open interactive shell on remote server
net rpc trust Manage trusts
net rpc conf Configure a remote samba server

Check man rpc for more detail!

Convert ext3 to ext4 filesystem on Debian Wheezy

老調重彈了,最近又再做這件事是因為Proxmox VE預設是用ext3當作檔案系統,某一台機器因為有點問題,灌Proxmox的時候一開始沒打算要當正式系統,也就沒特別改設定,但灌好後因為懶了 … 就直接上線了 … 偶然發現這個問題,順便重新作一下筆記怎麼樣轉到ext4,轉到ext4的好處以及效能差異就不用多說了,幾乎是完剩ext2、ext3,好檔案系統,不轉嗎?

如果懶的話,最簡單的方法就是去改fstab,直接把ext3掛成ext4,效能就可以有所提升,但只能使用到那些不需要修改到檔案系統的功能,並且可以重新用ext3的方式掛載,而要有比較完整的轉換則要做以下動作:

  1. 把要做轉換的分區umount(如果是root filesystem就進single user mode或用其他系統開機吧),DEV自行替換成對應代號
    # umount /dev/DEV

  2. 先做一次fsck
    # e2fsck -fyv /dev/DEV

  3. 沒問題的話就可以把ext4的功能打開了,這邊要注意 … 這是不可逆的操作,並且要和下個動作連貫完成
    # tune2fs -O extents,uninit_bg,dir_index /dev/DEV

  4. 調整完後要修一下(這邊會看到找到錯誤是正常現象)
    # e2fsck -fyvDC0 /dev/DEV

  5. 調整fstab的掛載格式
    -> 自己去fstab理面把該分區的ext3改成ext4吧!

  6. 重組
    # e4defrag -c -v /dev/DEV
    -> ext4開始使用extents來取代傳統的block mapping,在對大檔案操作時能有顯著的效能提升,而這部份是在剛剛的轉換沒有做的(tuen2fs只有把feature打開而以),轉換完成後新增的檔案自然是都會使用到這樣的功能,但原先已經存在於filesystem上的檔案必須要到下次被寫入時才會以新的方式寫入,但系統上有不少檔案是久久才會寫一次但可能經常要被讀取的,在被重新寫入以前便無法享受到這樣的效能改善,所以這邊透過e4defrag來幫我們做這件事!

過程中如果有出現錯誤的話就先解掉再往下一步走,像fsck這種工作做完一次還可以做第二次確保都沒問題了再往下走,過程並不複雜,剛好也可以順便檢查檔案系統有沒有問題,比較麻煩的大概就是root filesystem因為要unmount所以系統必須停機,但換來的效能是值得的!

(我之前硬碟壞掉就會出現fsck永遠修不完的現象,每次抓到的錯誤都不一樣,修完一次下次還是有得修,那很明顯是硬碟壞了)