Kinaconの技術ブログ

Ubuntuはじめました。

Pine64Aを買ってみました。

f:id:m-oota-711:20180826172112p:plain

ラズパイをいじりだしたのですが、Pine64なるものが
某オークションサイトで安かった・・・もともと安いが。
せっかくなのでセットアップしてみました。


追記:インストーラを使用して再セットアップしました。
www.kinacon-blog.work







実行環境

PC Panasonic Let's note CF-SX2
OS Ubuntu 18.04.1 LTS




準備品

構成品 価格 備考
Pine64A メモリ1GB 秋月電子:2980円 私は中古で2300円
メモリーカード 8GB Amazon:773円 8GB以上で良い。家にあった8GB以上のメモリで代用
電源 Amazon:1099円 microUSB 5V2.5Aスイッチ付き
ヒートシンク Amazon:598円 ラズパイ用、気休め程度?

※SSH接続であれば、モニタ無しでできます。

モニタ HP230e HDMI接続できるものであれば良い。


Transcend microSDHCカード 8GB Class10 TS8GUSDHC10

Transcend microSDHCカード 8GB Class10 TS8GUSDHC10








作業内容

OSイメージのダウンロード

ここからイメージをダウンロードでき、OSは
Pine A64 Software Release - PINE64

私はXenial Mateを選択しました。

f:id:m-oota-711:20180826173621p:plain
「Direct download from pine64.org」よりダウンロード開始できます。pine64.ukでもOK。

「xubuntu-xenial-mate-20161215-longsleep-pine64-8GB.img.gz」がダウンロードできました。
 




ブートディスクの作成

ハッシュ値のチェック

ファイルはダウンロードフォルダにあります。

【正しいハッシュ値】
MD5 (GZip file): 11C2675947EA1ECA94907719252483BD

md5sum ダウンロード/xubuntu-xenial-mate-20161215-longsleep-pine64-8GB.img.gz
11c2675947ea1eca94907719252483bd  ダウンロード/xubuntu-xenial-mate-20161215-longsleep-pine64-8GB.img.gz

あってるようです。これで改ざんなどはないことがチェックできます。



ブートディスク作成

まず、Gzipファイルを解凍します。
右クリック >> ここに解凍

プリインストールされている「プータブルUSBの作成」を起動します。

イメージは「xubuntu-xenial-mate-20161215-longsleep-pine64-8GB.img」
デバイスは「SD」を設定。
「ブータブルUSBの作成」をクリック。





Pine64を起動

usbをすべて外して起動 ※キーボードとマウスをつけたときは反応がなかった。
5V2.5Aで電力は十分のはずなのに・・・

ただ、モニタはout of range・・・映像は出力されてるようだ!!
そこで、sshで接続

ssh ubuntu@pine64.local

入れました!初期パスワードは「ubuntu」

ssh ubuntu@pine64.local
ubuntu@pine64.local's password: 

rootfsのサイズ変更

sudo -i
resize_rootfs.sh
reboot

パッケージの更新

sudo -i
pine64_update_uboot.sh
pine64_update_kernel.sh
reboot

apt パッケージの更新

sudo apt update

lockエラーが出た

E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

lockファイルを削除して更新

sudo rm /var/lib/dpkg/lock
sudo apt update
sudo apt upgrade



今回はここまで

ラズベリーパイをUSB(SSD)で起動させる

f:id:m-oota-711:20180813114502p:plain

MicroSDは壊れやすい?!
ラズベリーパイはMicroSDで起動してるので、使い方にもよりますが壊れることが多いようです。
そこで、USB接続したHDD/SSDで起動することで防止できるようです。


以下のサイト参考に実行しました。
Raspberry PiをUSB(HDD)で起動させる | 純規の暇人趣味ブログ



実行環境

・Raspberry Pi3 Model B V1.2
 OS: Raspbian GNU/Linux 9.4 (stretch)

・PC(Panasonic Let's note CF-SX2)
 OS: Ubuntu 18.04.1 LTS


準備品
※すべて家にあったものを流用

microSD 2GB(メーカ不明)※容量は128MB以上ならOK
SSD 64GB(SAMSUNG 2.5インチ SATAⅡ)
・2.5インチHDDケース(GW2.5CR-U3)


作業内容

ファームウェアのアップデート

sudo apt update
sudo apt upgrade
sudo rpi-update

SDDをフォーマット・マウント

sudo parted /dev/sda

(parted)Yes/no?の後が入力値

GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.                                      
(parted) mklabel msdos                                                    
Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost.
Do you want to continue?
Yes/No? yes                                                               
(parted) mkpart primary ext4 0% 100%                                      
(parted) p                                                                
Model: Generic External (scsi)
Disk /dev/sda: 63.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  63.3GB  63.3GB  primary  ext4         lba

(parted) q                                                                
Information: You may need to update /etc/fstab.

microSDから全データのコピー

データを移すパーティションをフォーマットしてマウント

sudo mkfs.ext4 /dev/sda1
sudo mount -t ext4 -o defaults /dev/sda1 /mnt

コピー

sudo rsync -ax --progress / /mnt

SSDのfstab修正

PARTUUID確認

sudo blkid
/dev/sda1: UUID="448b5015-56c3-4b46-9e0d-9b7e43dc8801" TYPE="ext4" PARTLABEL="primary" PARTUUID="f742c79f-21dc-4b28-936c-a7727b5c7014"
/dev/mmcblk0: PTUUID="84388539" PTTYPE="dos"
/dev/mmcblk0p1: LABEL="RECOVERY" UUID="3010-0B2A" TYPE="vfat" PARTUUID="84388539-01"
/dev/mmcblk0p5: LABEL="SETTINGS" UUID="782e5b00-71ef-4c16-9621-8b6e93d3eb8c" TYPE="ext4" PARTUUID="84388539-05"
/dev/mmcblk0p6: LABEL="boot" UUID="C900-6377" TYPE="vfat" PARTUUID="84388539-06"
/dev/mmcblk0p7: LABEL="root" UUID="a8436a24-d165-4c79-9998-8a5782445204" TYPE="ext4" PARTUUID="84388539-07"

sda1のPARTUUIDを確認
f742c79f-21dc-4b28-936c-a7727b5c7014

fstab変更

sudo nano /mnt/etc/fstab
編集前
proc                       /proc  proc    defaults                0       0
/dev/mmcblk0p6    /boot  vfat     defaults                0       2
/dev/mmcblk0p7    /         ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that
編集箇所

/dev/mmcblk0p6 ⇒ /dev/mmcblk0p1
/dev/mmcblk0p7 ⇒ PARTUUID=f742c79f-21dc-4b28-936c-a7727b5c7014

編集後
proc                      /proc  proc    defaults                0       0 
/dev/mmcblk0p1   /boot  vfat     defaults                0       2
PARTUUID=f742c79f-21dc-4b28-936c-a7727b5c7014   /         ext4    defaults,noatime  0       1

PCでmicroSDのデータをコピー

※ラズパイからMicroSDを抜いて、PCに接続します。

MicroSDの「boot」フォルダの中身をPCへコピー

「boot」の中の「cmdline.txt」を編集する

root=/dev/mmcblk0p7 
⇒ root=PARTUUID=f742c79f-21dc-4b28-936c-a7727b5c7014

編集前
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait splash plymouth.ignore-serial-consoles
編集後
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=f742c79f-21dc-4b28-936c-a7727b5c7014 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait splash plymouth.ignore-serial-consoles

新しいmicroSDにコピーした「boot」の中身をコピー

ラズパイを起動

SSDと新しいmicroSDを接続する



以上


Transcend microSDカード 2GB TS2GUSD

Transcend microSDカード 2GB TS2GUSD






クラウドでVNC接続(ポート開放なし)

f:id:m-oota-711:20180813114502p:plain


前の記事RealVNCクラウドVNC接続できるらしいと
書いたのですが、実際に試してみました。


以下の記事を参考に実施しました。
ポートの開放することなく、Respberry Piに外からアクセスする


実行環境

・Raspberry Pi3 Model B V1.2
 OS: Raspbian GNU/Linux 9.4 (stretch)
 VNCソフト:RealVNC Server

・PC(Panasonic Let's note CF-SX2)
 OS: Ubuntu 18.04.1 LTS
 VNCソフト:RealVNC Viewer

ラズベリーパイ(RealVNC Server側の設定)

「メニュー」 >> 「licesing」

f:id:m-oota-711:20180824202158p:plain

Sign in to your RealVNC account」と「Send anonymous usage data to help improve VNCServer.」 をチェック

f:id:m-oota-711:20180824202153p:plain

「Email」と「Password」を入力

f:id:m-oota-711:20180824202139p:plain

「direct and cloud connectivity」にチェック

f:id:m-oota-711:20180824202210p:plain


「Done」で完了

f:id:m-oota-711:20180825084037p:plain



PC(RealVNC Viewer)から接続確認

RealVNCVeiwerを起動

スマホのデザリングなどでWifi接続する

サインイン済みであれば、左にXXXX's Team(Home)があるのでクリックで接続できる。
なければ、右上のでサインインするところがある。

f:id:m-oota-711:20180825084636p:plain



接続できればOK



以上




マインクラフトPiを動かしてみる

f:id:m-oota-711:20180813114502p:plain


子供がマインクラフトが大好きなので

ラズベリーパイにプリインストールされている
minecraft pi を動かしてみました。

実行環境

・Raspberry Pi3 Model B V1.2
 OS: Raspbian GNU/Linux 9.4 (stretch)

起動しない

こんな感じでうんともすんともしません。
f:id:m-oota-711:20180823204738p:plain

コマンドから起動してみる

/opt/minecraft-pi/minecraft-pi

こんなエラーが出た。
/opt/minecraft-pi/minecraft-pi: error while loading shared libraries: libGLESv2.so: cannot open shared object file: No such file or directory

解決方法

libGLESv2.soを探す。

sudo find / -name libGLESv2.so -print


以下の場所で発見した。
/opt/minecraft-pi/lib/brcm/libGLESv2.so
/opt/minecraft-pi/lib/mesa/libGLESv2.so


とりあえず、パスを通す

export LD_LIBRARY_PATH=/opt/minecraft-pi/lib/brcm/:LD_LIBRARY_PATH


さっきのエラーが出なくなったが・・・起動しない。




こんなエラーが出る
sendto failed with code -1 for char 2 and length 25.



調べてみると、VNCでは起動しないとのこと。


直接起動してみる。

動いた!!!



でも、キーボードでは操作がむずい



以上。




Raspberry Pi 3 Model B V1.2 (日本製) 国内正規代理店品

Raspberry Pi 3 Model B V1.2 (日本製) 国内正規代理店品

Minecraft (PC/Mac 版)

Minecraft (PC/Mac 版)

ラズベリーパイにVNCで接続する

f:id:m-oota-711:20180813114502p:plain

今はラズベリーパイにSSHで接続していますが、
GUIで操作したいと思いました。


VNC(Virtual Network Computing)は
ネットワーク上の離れたコンピュータを遠隔操作するためのソフトだそうです。


VNCソフトはRealVNCにしました。
クラウド経由でも接続できるそうです。



導入には、以下のサイトを参考にさせていただきました。

VNC環境とRaspberry Piで簡単電子工作(5) | Think IT(シンクイット)





実行環境

・Raspberry Pi3 Model B V1.2
 OS: Raspbian GNU/Linux 9.4 (stretch)

・PC(Panasonic Let's note CF-SX2)
 OS: Ubuntu 18.04.1 LTS


作業内容

ラズベリーパイにRealVNCサーバーのインストール

コマンド

sudo apt install realvnc-vnc-server

ラズベリーパイのVNC有効化

ラズベリーパイのマーク >> 設定 >> Raspberry Piの設定

VNCを有効に変更する。

f:id:m-oota-711:20180822210142p:plain

ラズベリーパイのファイアウォールの解除

ufwでファイアーウォールを設定しているので、
VNCを通すためにポートを開放します。
ポートは初期設定で5900

コマンド

sudo ufw allow 5900

PCにRealVNCビューワーのインストール

sudo apt install realvnc-vnc-viewer

接続確認

左下のアプリケーションを表示するでVNCViewerを検索して起動する。

「Enter a VNC Server address or search」にラズパイのIPアドレスを入力する。
f:id:m-oota-711:20180822211344p:plain




usernameとpasswordを入力すれば、ラズベリパイに接続できます。

f:id:m-oota-711:20180822211838p:plain



以上

ラズベリーパイに外部からアクセスする【その6】(ポート開放)

f:id:m-oota-711:20180813114502p:plain

外部ネットワークからラズパイにアクセスするため、
ルータのグローバルIPアドレスにアクセスして、
ラズパイのプライベートIPアドレスに接続できるようにしなけばいけません。

外部からアクセスできるようにルータのポートを開放します。

※我が家はv6プラス接続サービスという
IPv6/IPv4マルチセッション式の接続サービスに契約していた。
なので、ipv6向け設定でポート開放する方法を記載する。


以下のサイトがとてもわかり易く。参考にさせていただきました。

PR-400NE ポート開放ipv4

IPv6プラス環境におけるIPv4ポート公開設定ipv6




実行環境

・Raspberry Pi3 Model B V1.2
 OS: Raspbian GNU/Linux 9.4 (stretch)

・PC(Panasonic Let's note CF-SX2)
 OS: Ubuntu 18.04.1 LTS

※ルータはNTTのPR-400NEを使用しています。

作業内容

ルータにアクセスする設定画面を開く

※作業はPCで行った。


http://192.168.1.1:8888/enabler.ipv4/frameにアクセスする。
初めてアクセスするのでIDとPASSを設定する。

f:id:m-oota-711:20180821220627p:plain

静的NAPT設定の編集

左のメニューから「静的NAPT設定」を選択

公開対象ポート:TOPページの利用可能ポートから適当に選ぶ
宛先アドレス:ラズベリーパイのIPアドレス
宛先ポート:SSHなので22とする。

動作確認

スマホのデザリングでネットワークに接続

ssh ユーザー名@グローバルIPアドレス -p 公開対象ポート


ついに接続できました。
これでこのPCで外からでもラズパイにアクセスできます。


以上


ラズベリーパイに外部からアクセスする【その5】(ファイアーウォールの設定)

f:id:m-oota-711:20180813114502p:plain

ラズベリーパイにファイアーウォールを設定します。
ルータでポート開放を行う前にラズベリーパイ側でポート制限を行います。


ファイアーウォールの設定はufwを使用します。

ufw
「ソフトウェアファイアウォールとしての機能を,できるだけ単純なインターフェースで設定する」
というツールとのこと。


以下のサイトを参考にさせていただきました。
UFWコマンド 使い方まとめ | 気ままにひまちゃんねる




実行環境

・Raspberry Pi3 Model B V1.2
 OS: Raspbian GNU/Linux 9.4 (stretch)

・PC(Panasonic Let's note CF-SX2)
 OS: Ubuntu 18.04.1 LTS


作業内容

ufwのインストール

※ここはラズパイで作業する。

ufwのインストール

sudo apt install ufw

動作確認

sudo ufw status
結果

Status: inactive

まだファイアーウォールはない状態です。

ufwの設定

とりあえず、sshだけできるように設定したいと思います。

ufw有効化

sudo ufw enable
結果

Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

※既にSSHで接続してる場合は弾かれないようです。

すべての通信を拒否設定

sudo ufw default REJECT
結果

Default incoming policy changed to 'reject'
(be sure to update your rules accordingly)

※デフォルトはDENYとなっているらしい。この場合はタイムアウトで接続できないが、
REJECTにすると”Connection Refused”を返す

SSH接続を許可する

sudo ufw allow 22
結果

Rule added
Rule added (v6)


sshで試したところ無事に接続できました。

以上




ポート開放できなかった理由 (二重ルータ)

f:id:m-oota-711:20180813114502p:plain

ラズベリーパイに外部からアクセスできるように奮闘中

kinacon.hatenablog.com




ポート開放(ルータの静的IPマスカレードの設定)でつまづきました。

原因: ルータが2つある二重ルータ状態だった
解決策: 二重ルータの解消


改善前のネットワーク環境

外 >> HGW(ルータ) >> 無線アクセスポイント(ルータ) >> ラズベリーパイ



HGW(ホームゲートウェイ、ONU)はNTTのものでPR-400NEです。
実はこれがルータの機能を有していたのです・・・

無線アクセスポイントはバッファローのWZR-1750DHP2です。
ルータとして使用していました。




私は以下のサイトを参照し、ポート開放を実施しましたが・・・ダメでした。

ポートを開放する方法 | バッファロー


そりゃそうですね。もうひとつルータが外にあるから。

改善後のネットワーク環境

外 >> HGW(ルータ) >> 無線アクセスポイント(ブリッジモード) >> ラズベリーパイ



WZR-1750DHP2の背面にあるスイッチを【ROUTER】⇒【AP】に切り替える

追記:【AUTO】⇒ 【MANUAL】に切り替える。 (20190416)


f:id:m-oota-711:20180821142553j:plain

これで二重ルータが解消できました。

以上





バッファロー WXR-1750DHP2 無線LAN親機 11ac/n/a/g/b

バッファロー WXR-1750DHP2 無線LAN親機 11ac/n/a/g/b