Banana Pi 測試 – LeMedia

開機進入 XBMC 畫面,可以看的出來是 13.1 Gotham 版
[@more@]介面是英文的

經過設定之後就能更換成中文介面

不過發現時間是錯的,竟然是在 2019 年

時間錯誤會造成成 ssh 很難登入,停很久(後來發現不是因為這個問題)

既然在圖形介面中無法修改,改用文字介面
# dpkg-reconfigure tzdata
# ntpdate -s time.stdtime.gov.tw

時間正常了!

不過在看影片的部分,直接透過網路上的芳鄰來觀看影片
720p 會有一點點停頓,聲音及影像無法完全配合

1080p 則情況更為明顯

所以有一點點小失望,也許系統還沒有經過最佳化,超頻?
另外發現,它的系統也不會自動依據記憶卡的大小,自動來擴展分割區
所以我的 16G 記憶卡,只用到 4G,剩下的部分還要自己手動去分割

後記:
已經依照下面的文章,擴展了分割區
頭城國小資訊組 | Banana Pi 測試 – Lubuntu 篇 – 擴展 root 分割區

試用 xbmc_12.2_frodo_bananaPI_4GB_RC3

下載網址:http://forum.lemaker.org/thread-796-4-1-4.html

解壓縮後,檔案名稱要自行加上 .img
[@more@]從檔案名稱可以了解系統是 based on lubuntu3 / xbmc 12.02 rc2 / 4GB SD-Card.

開機完成後直接進入 XBMC,介面是英文的

中文化
System / Settings

Appearance

更改 Skin / Fonts 從 Skin default

改成 Arial based

語言設定

比較特別的是有 天氣

播放 720p 影片即會有稍微延遲的情形,1080p 則更明顯

Banana Pi 似乎不像 Raspberry Pi 有硬體解碼的樣子,所以即便只是 720p,也有些問題,1080p  問題更明顯,同樣的檔案,在 Raspberry Pi 播放時,流暢很多。這或許可以解釋為什麼官方網站上並沒有提供 XBMC 的 Image 檔。
另外,由於無法切換到 Console 介面,所以即便是使用超過 4G 的記憶卡,也無法擴充剩下的空間。

Banana Pi 測試 – 試用 Lubuntu_1404_v3.1_XBMC

下載網址:http://forum.lemaker.org/thread-2037-1-1-1.html

系統是 base on Lubuntu 14.04,解開的檔案有 14.7G,所以至少要使用 16G 的 SD 卡

開機之後先進入 Lubuntu,再切換到 XBMC

XBMC 英文介面
[@more@]

中文化

很詭異的是,播放影片時,竟然會切換回 Lubuntu,使用 mplayer2 播放

系統的 Video_Tests 目錄中的測試檔,難怪 Image 會那麼大

播 720p / 1080p 影片檔,竟然會直接切換回 Lubuntu ?

在 Banana Pi 上執行 XBMC

XBMC 是一套免費且 Open Source 開放源碼的軟體,支援多種作業系統平台,如:Windows / Linux / Mac / Raspberry Pi…,自己在 Raspberry Pi 使用過,可以流暢播放 1080p 的影片。
XBMC 官方網站:http://xbmc.org
目前 Stable 版本是 13.2 Gotham

開發版本是 14.0 Helix
[@more@]
Banana Pi  本身的硬體效能比 Raspberry Pi 更加的好,所以按道理來說,在播放影片時應該會比 Raspberry Pi 更加流暢,可惜的是,目前在 Banana Pi  的下載網頁,仍然沒有 XBMC 的映像檔可以下載。

不過在 官方的論壇 中,已經有高手自己動手完成了,有興趣的人,可以自行下載下來用看看!

在第 4 頁的 34F
does the Banana PI support XBMC? – XBMC – Banana Pro | Banana Pi Forum – Powered by Discuz!

在第 1 頁的 1F
Lubuntu v3.1.x – XBMC added – XBMC – Banana Pro | Banana Pi Forum – Powered by Discuz!

Banana Pi 測試 – Bananian 篇 安裝 Samba Server

利用 Samba Server 來當做網路上的芳鄰,可以分享資料。
# apt-get install samba

修改 Samba Server 設定檔
# vim /etc/samba/smb.conf
[global]
workgroup = HOME
security = user
[homes]
   comment = Home Directories
   browseable = no
   read only = no
[@more@]
重新啟動 Samba Server
# /etc/init.d/samba restart
[ ok ] Stopping Samba daemons: nmbd smbd.
[ ok ] Starting Samba daemons: nmbd smbd.

建立測試使用者
# useradd -d /home/pi -m -s /bin/false pi

設定 Samba 使用者的密碼
# pdbedit -a pi
new password:
retype new password:
Unix username:        pi
NT username:
Account Flags:        [U          ]
User SID:             S-1-5-21-4012369507-4131397429-245333283-1000
Primary Group SID:    S-1-5-21-4012369507-4131397429-245333283-513
Full Name:
Home Directory:       lamobopi
HomeDir Drive:
Logon Script:
Profile Path:         lamobopiprofile
Domain:               LAMOBO
Account desc:
Workstations:
Munged dial:
Logon time:           0
Logoff time:          never
Kickoff time:         never
Password last set:    Sun, 28 Sep 2014 15:17:57 CST
Password can change:  Sun, 28 Sep 2014 15:17:57 CST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

在 Windows 開啟檔案總管來測試

輸入使用者帳號及密碼後

中文檔名及目錄均沒有問題

Banana Pi 測試 – 安裝 MariaDB

因為套件庫中沒有 MariaDB,所以採用手動編譯安裝
底下文章參考:
Raspberry Pi • View topic – How I compiled MariaDB and Phidget drivers
Installer MariaDB sur Raspbian – Raspbian France | Raspbian France

先到 MariaDB 官方網站下載 Source Code
MariaDB 官方網站:https://mariadb.org/en/

[@more@]
下載
# wget -O mariadb-5.5.39.tar.gz “https://downloads.mariadb.org/interstitial/mariadb-5.5.39/source/mariadb-5.5.39.tar.gz/from/http%3A//mirrors.neusoft.edu.cn/mariadb”

解壓縮
# tar xvzf mariadb-5.5.39.tar.gz

切換目錄
# cd mariadb-5.5.39/BUILD

安裝編譯時所須套件
# apt-get install cmake libncurses5-dev bison
# apt-get install build-essential

開始編譯及安裝
# ./autorun.sh
# cd ..
# ./configure
# make;make install

建立 mysql 使用者
# useradd mysql

改變目錄擁有者及群組
# chown -R mysql /usr/local/mysql

切換目錄
# cd /usr/local/mysql

安裝資料庫
# scripts/mysql_install_db –user=mysql

複製啟動檔案到 /etc/init.d 目錄
# cp support-files/mysql.server /etc/init.d/mysqld

啟動 MariaDB SQL Server
# /etc/init.d/mysqld start
Starting MySQL
[ ok …..

安全性設定
# ./bin/mysql_secure_installation

檢查是否有正確啟動
# netstat -ant | grep :3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN

設定開機後啟動
# /usr/sbin/update-rc.d -f mysqld defaults
update-rc.d: using dependency based boot sequencing

建立一個啟動的 Script 來管理 Nginx Web Server

因為是採用手動編譯的方式來安裝 Nginx Web Server,所以必須要手動來執行或關閉 Nginx Web Server,有些麻煩,後來參考底下的網站,建立一個啟動的 Script 來管理 Nginx Web Server。
關閉
# kill -9 $(ps aux | grep nginx | grep -v grep | awk ‘{print $2}’)
or
# killall nginx
啟動
# /usr/sbin/nginx

參考網站:Websites with Nginx on Debian 7 (Wheezy) – Linode Guides & Tutorials
[@more@]下載 Script 檔
wget -O init-deb.sh http://www.linode.com/docs/assets/1538-init-deb.sh

編輯 Script 檔
# vim init-deb.sh
#! /bin/sh

### BEGIN INIT INFO
# Provides:          nginx
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the nginx web server
# Description:       starts nginx using start-stop-daemon
### END INIT INFO

PATH=:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/nginx
NAME=nginx
DESC=nginx

test -x $DAEMON || exit 0

set -e

case “$1” in
  start)
        echo -n “Starting $DESC: “
        start-stop-daemon –start –quiet –pidfile /var/run/$NAME.pid
                –exec $DAEMON — $DAEMON_OPTS
        echo “$NAME.”
        ;;
  stop)
        echo -n “Stopping $DESC: “
        start-stop-daemon –stop –quiet –pidfile /var/run/$NAME.pid
                –exec $DAEMON
        echo “$NAME.”
        ;;
  restart|force-reload)
        echo -n “Restarting $DESC: “
        start-stop-daemon –stop –quiet –pidfile
                /var/run/$NAME.pid –exec $DAEMON
        sleep 1
        start-stop-daemon –start –quiet –pidfile
                /var/run/$NAME.pid –exec $DAEMON — $DAEMON_OPTS
        echo “$NAME.”
        ;;
  reload)
          echo -n “Reloading $DESC configuration: “
          start-stop-daemon –stop –signal HUP –quiet –pidfile     /var/run/$NAME.pid
              –exec $DAEMON
          echo “$NAME.”
          ;;
      *)
            N=/etc/init.d/$NAME
            echo “Usage: $N {start|stop|restart|reload|force-reload}” >&2
            exit 1
            ;;
    esac

    exit 0

搬移檔案到 /etc/init.d 目錄
# mv init-deb.sh /etc/init.d/nginx

更改檔案權限
# chmod +x /etc/init.d/nginx

測試是否能正常執行
# /etc/init.d/nginx start
Starting nginx: nginx.

檢查是否有執行成功
# ps aux | grep nginx | grep -v grep
root     12795  0.0  0.0   4484   768 ?        Ss   23:56   0:00 nginx: master process /usr/sbin/nginx
www-data 12796  0.0  0.1   4636  1136 ?        S    23:56   0:00 nginx: worker process

測試關閉
# /etc/init.d/nginx stop
Stopping nginx: nginx.

設定開機時執行
# /usr/sbin/update-rc.d -f nginx defaults
update-rc.d: using dependency based boot sequencing

開啟 Nginx Web Server 的使用者家目錄

底下是在 Banaana Pi 下使用 Bananian 手動編譯 Nginx Web Server
修改 Nginx Web Server 的設定
# vim /etc/nginx/nginx.conf
        location ~ ^/~(?<userdir_user>.+?)(?<userdir_uri>/.*)?$ {
                 alias /home/$userdir_user/www$userdir_uri;
                 index index.php index.html index.htm;
                 autoindex on;

                 location ~ .*.php(/.*)*$ {
                    fastcgi_pass   unix:/var/run/php5-fpm.sock;
                    fastcgi_index  index.php;
                    fastcgi_param  SCRIPT_FILENAME /home/$userdir_user/www$userdir_uri$fastcgi_script_name;
                    include        fastcgi_params;
                }
        }

關閉 Nginx Web Server
# kill -9 $(ps aux | grep nginx | grep -v grep | awk ‘{print $2}’)

重新啟動 Nginx Web Server
# /usr/sbin/nginx
[@more@]
建立 pi 使用者測試
# /usr/sbin/useradd -d /home/pi -m -s /bin/false pi

建立使用者網頁目錄
# mkdir /home/pi/www

建立 php 測試檔案
# vim /home/pi/www/index.php
<?php
phpinfo();
?>

改變目錄及檔案的擁有者
# chown -R pi:pi /home/pi

更改目錄權限
# chmod 711 /home/pi

使用瀏覽器檢查

Lamobo M1 測試 – Bananian 篇 安裝 Nginx / MySQL / PHP Server

安裝 Nginx Web Server
# apt-get install nginx

不過安裝的版本有些舊
# nginx -v
nginx version: nginx/1.2.1

移除 nginx 套件
# apt-get remove –purge libfreetype6 libgd2-noxpm libgeoip1 libjpeg8 libpcre3 libpng12-0 libxml2 libxslt1.1 nginx-common nginx-full nginx

所以改用 Source Code 的方式來安裝[@more@]底下文章參考 Linux Pi的奇幻旅程(22)-編譯Nginx – iT邦幫忙::IT知識分享社群

安裝編譯時所需套件
# apt-get install build-essential

Nginx 官方網站:http://nginx.org/

下載 Source Code
# wget http://nginx.org/download/nginx-1.6.2.tar.gz

解壓縮
# tar xvzf nginx-1.6.2.tar.gz

切換目錄
# cd nginx-1.6.2

安裝編譯 nginx 所需套件
# apt-get install libpcre3* libssl-dev

進行編譯
# ./configure –prefix=/usr –sbin-path=/usr/sbin/nginx –conf-path=/etc/nginx/nginx.conf –pid-path=/var/run/nginx.pid –lock-path=/var/lock/nginx.lock –user=www-data –group=www-data –http-log-path=/var/log/nginx/access.log –error-log-path=/var/log/nginx/error.log –http-client-body-temp-path=/var/lib/nginx/body –http-proxy-temp-path=/var/lib/nginx/proxy –http-fastcgi-temp-path=/var/lib/nginx/proxy –http-uwsgi-temp-path=/var/lib/nginx/uwsgi –http-scgi-temp-path=/var/lib/nginx/scgi –with-http_ssl_module –with-http_stub_status_module –with-debug

進行安裝
# make;make install

執行時出現錯誤
# /usr/sbin/nginx
nginx: [emerg] mkdir() “/var/lib/nginx/body” failed (2: No such file or directory)

建立目錄
# mkdir -p /var/lib/nginx/body

檢查是否有執行成功
# netstat -ant | grep :80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN

安裝的 nginx 版本
# nginx -v
nginx version: nginx/1.6.2

使用瀏覽器檢查

安裝 MySQL Server
# apt-get install mysql-server mysql-client

MySQL Server 安裝後設定
# /usr/bin/mysql_secure_installation

安裝 PHP
# apt-get install php5-fpm php5-mysql php5-gd php-apc php5

PHP 版本
# php5-fpm -v
PHP 5.4.4-14+deb7u14 (fpm-fcgi) (built: Aug 21 2014 10:32:42)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

建立網站根目錄
# mkdir /var/www

改變目錄擁有者及群組
# chown -R www-data:www-data /var/www

查看 php5-fpm 執行時產生的 socket 檔
# ls -ls /var/run/php5-fpm.sock
0 srw-rw—- 1 www-data www-data 0 Sep 27 16:20 /var/run/php5-fpm.sock

修改 nginx Web Server 設定檔
# vim /etc/nginx/nginx.conf
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /var/www;
            index  index.php index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ .php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ .php$ {
            root           /var/www;
        #    fastcgi_pass   127.0.0.1:9000;
            try_files $uri =404;
            fastcgi_split_path_info ^(.+.php)(/.+)$;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache’s document root
        # concurs with nginx’s one
        #
        location ~ /.ht {
            deny  all;
        }
    }

檢查設定檔是否正確
# /usr/sbin/nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

關閉 nginx web Server
# kill -9 $(ps aux | grep nginx | grep -v grep | awk ‘{print $2}’)
or
# killall nginx

重新執行
# /usr/sbin/nginx

執行 php5-fpm
# /etc/init.d/php5-fpm start

檢查 php 是否能正常執行
# vim /var/www/index.php
<?php
phpinfo();
?>