ラズパイ3B+マイクとスピーカー設定その1

ラズパイ3B+マイクとスピーカー設定その1

Raspberry PiでBluetoothスピーカーを鳴らす

Amazon EchoをRaspberry PiのBluetoothスピーカーとして利用する

を参考に

buetooth スピーカをラズパイ3B+で使えるようにする

まず
ラズパイと Bluetooth デバイスのペアリング

sudo bluetoothctl 

を実行

scan on

を実行すると

[CHG] Device D4:6D:6D:F5:A0:D1 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device D4:6D:6D:F5:A0:D1 UUIDs: 0000111f-0000-1000-8000-00805f9b34fb
[CHG] Device D4:6D:6D:F5:A0:D1 UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
[CHG] Device 77:9E:22:C9:6D:10 RSSI: -60
[CHG] Device 84:C7:EA:4A:F1:35 RSSI: -42
[CHG] Device 4A:7E:3E:79:A0:E3 RSSI: -81
[CHG] Device 4A:7E:3E:79:A0:E3 RSSI: -53
[CHG] Device 77:9E:22:C9:6D:10 RSSI: -46
[NEW] Device 8C:DE:52:16:70:48 SRS-BTV5
[CHG] Device 4A:7E:3E:79:A0:E3 RSSI: -63
[CHG] Device 8C:DE:52:16:70:48 RSSI: -51
[CHG] Device 84:C7:EA:4A:F1:35 RSSI: -56

というようにリストが表示される

なお

scan off

を実行するまでずっと流れるので注意

今回使用したのは
SRS-BTV5

trust 8C:DE:52:16:70:48

で信頼し

pair 8C:DE:52:16:70:48

でペアリング

connect 8C:DE:52:16:70:48

で接続

接続したら

quit

で元のシェルに戻す

なお接続を切りたいときには

sudo bluetoothctl

のあとに

disconnect

で接続を切ることができる

このあたりに関しては
Linux のコマンドラインで Bluetooth 接続

を参考に

次に

aplay -D bluealsa /usr/share/sounds/alsa/Front_Center.wav

を実行したが

ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'defaults.bluealsa.device'
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: そのようなファイルやディレクトリはありません
ALSA lib conf.c:5036:(snd_config_expand) Args evaluate error: そのようなファイルやディレクトリはありません
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM bluealsa
aplay: main:828: audio open error: そのようなファイルやディレクトリはありません

となってしまう

Raspberry piでbluetoothスピーカーを鳴らす

も参考に

sudo apt-get install pulseaudio pulseaudio-module-bluetooth

を実行し

paplay /usr/share/sounds/alsa/Front_Center.wav 

を実行したが

接続失敗: 接続拒否
pa_context_connect() は失敗: 接続拒否

となってしまう

このため
【ラズベリーパイ(ラズパイ)】ラズパイをスピーカーにもっとも簡単に接続する方法!

を参考に
VNCで設定を行う

sudo raspi-config

5 Interfacing OPtions を選択

P3 VNC を選択

はい を選択

設定できたら
Finish を選択

次に ubuntu で
https://www.realvnc.com/en/connect/download/viewer/
から

VNC Viewer
をダウンロード

cd ダウンロード/
chmod +x VNC-Viewer-6.20.113-Linux-x64

でダウンロードしたファイルに実行権限を付与

./VNC-Viewer-6.20.113-Linux-x64

で起動

使い方に関しては
Raspberry Pi(ラズパイ)をSSHとVNC設定してリモート接続してみた!【Windows10】

を参考に

IPアドレスを入力

ユーザ名 pi
パスワードはログインパスワードを入力し
OK をクリック

これでリモートデスクトップが表示される

これで音のアイコンを右クリック
Audio Outputs で
SRS-BTV5 を選んでみたが音がでない

このため
Amazon EchoをRaspberry PiのBluetoothスピーカーとして利用する

を参考に
別のもので実験

sudo bluetoothctl

の後に

scan on

で接続可能なものを探す

次に Amazon Echo で
アレクサ ペアリングして
と話かけると

Discovery started
[CHG] Controller B8:27:EB:A2:F7:30 Discovering: yes
[NEW] Device 70:25:8C:8F:5D:67 70-25-8C-8F-5D-67
[NEW] Device 55:DD:D8:56:3D:73 55-DD-D8-56-3D-73
[NEW] Device D4:6D:6D:F5:A0:D1 DESKTOP-SBDOP9H
[CHG] Device 70:25:8C:8F:5D:67 RSSI: -42
[CHG] Device 55:DD:D8:56:3D:73 RSSI: -76
[CHG] Device 55:DD:D8:56:3D:73 RSSI: -54
[NEW] Device 6C:56:97:3A:52:98 6C-56-97-3A-52-98
[CHG] Device 6C:56:97:3A:52:98 Name: Echo Dot-070
[CHG] Device 6C:56:97:3A:52:98 Alias: Echo Dot-070

というようにリストに表示されるので

scan off

でスキャン停止

trust 6C:56:97:3A:52:98

で信頼

pair 6C:56:97:3A:52:98

でペアリング

connect 6C:56:97:3A:52:98

で接続

しかし

aplay -D bluealsa /usr/share/sounds/alsa/Front_Center.wav

を実行しても

ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'defaults.bluealsa.device'
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: そのようなファイルやディレクトリはありません
ALSA lib conf.c:5036:(snd_config_expand) Args evaluate error: そのようなファイルやディレクトリはありません
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM bluealsa
aplay: main:828: audio open error: そのようなファイルやディレクトリはありません
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'defaults.bluealsa.device'
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: そのようなファイルやディレクトリはありません
ALSA lib conf.c:5036:(snd_config_expand) Args evaluate error: そのようなファイルやディレクトリはありません
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM bluealsa
aplay: main:828: audio open error: そのようなファイルやディレクトリはありません

となってしまう

次に
Raspberry PiでBluetoothスピーカーを鳴らす

を参考に

sudo apt install mplayer

次に
Raspberry Piで音声認識

を参考に

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install alsa-utils sox libsox-fmt-all

としたものの変わらず

vim .asoundrc 

でファイルをひらき

defaults.bluealsa.interface "hci0"
defaults.bluealsa.device "6C:56:97:3A:52:98"
defaults.bluealsa.profile "a2dp"
defaults.bluealsa.delay 10000

pcm.bt-receiver {
  type bluealsa
  device "6C:56:97:3A:52:98"
  profile "a2dp"
}

を最終行に追記

mplayer -ao alsa:device=bt-receiver /usr/share/sounds/alsa/Front_Center.wav

を実行することで
フロント センター
とAmazon Echo から聞こえるようになった

どうやら

aplay -D bluealsa /usr/share/sounds/alsa/Front_Center.wav

の実行の前に
.asoundrc へ
bluetooth の設定を書いておかないと
エラーがでるらしい

ほかにも再生できるか実験

mplayer -ao alsa:device=bt-receiver -playlist http://www.simulradio.info/asx/fmpalulun.asx

とすれば
サイマルラジオが
Amazon Echo から流れるようになる

止めるときには ctrl + c でOK

これで bluetooth スピーカーはできたので
次にマイクの設定を行う

なお、再起動などでAamazon Echo との接続が切れたら

sudo bluetoothctl
connect 6C:56:97:3A:52:98

というように
connect のときに Amazon Echoを指定すればOK

ラズパイ3B+の設定

ラズパイ3B+の設定

Raspberry Pi 4用インストールメディアを作成する

を参考に
まずはインストールメディアの作成
https://www.raspberrypi.org/downloads/
へアクセスし

NOOBS をクリック

NOOBS Lite の
Download ZIP
をクリック

Lite と通常の違いは
OSが最初からインストールされているかということ

Lite の場合ネット経由でインストールするので
最初から複数のOSが要らなかったり
ネットが使って最小限の実験にするなら
Lite で十分そう

ダウンロードできたら
unzip コマンドで microSD へ解凍

-d オプションを使うことでディレクトリを指定し解凍ができる

unzipでディレクトリを指定して解凍

を参考に

unzip NOOBS_lite_v3_3.zip -d /media/snowpool/4A54-50FD/

で解凍

これでインストールメディアの作成は終わり

あとは
Raspberry Pi 4へOSをインストールする(Raspbian編)

を参考にインストール

インストールするときに
通常のインストール以外に
Lite
Full
があるけど
Lite にするとデスクトップ環境がない

Lite と通常版の詳しい違いに関しては
Raspbian通常版とRaspbianLiteの違いをわかりやすく解説!

を参考に

通常版と Full の違いは
デスクトップ環境で使えるアプリの量

詳しくは
新しいRaspbian Stretchに収録されているアプリケーション比較

を参考に

今回は
bluetooth
Wi-Fi
のあたりを使うので
通常版で実験

インストールが終われば
あとはSSH を有効にして
あとはリモート操作できるので
まずはSSHの設定

sudo raspi-config

で設定画面をだす

5 Interfacing Options を選択

P2 SSH を選択

はい を選択

設定が終わったら
Finish で設定画面を抜けることができる

これでSSHは有効化されるので
続いて公開鍵認証にする

Raspberry Pi 初期設定

を参考に

Ubuntu で ssh-keygenコマンドで作成

このコマンドについては
【 ssh-keygen 】コマンド――SSHの公開鍵と秘密鍵を作成する

を参考に

-t で暗号形式を rsa
-b で4096ビットに指定
なおデフォルトでは2048ビット

ssh-keygen -t rsa -b 4096

で作成

Enter file in which to save the key (/home/snowpool/.ssh/id_rsa): 

となったらファイル名を入力

今回は raspi
としておく

パスフレーズは省略するので

Enter passphrase (empty for no passphrase): 

Enter same passphrase again: 


Enter にすればパスフレーズなしとなる

次に公開鍵の登録

これは
ssh-copy-id コマンドを使う

詳しくは
【 ssh-copy-id 】コマンド――SSHの公開鍵を登録する

を参考に

ssh-copy-id -i raspi.pub pi@192.168.1.4

で登録

パスワードを求められるので
pi ユーザのものを入力
なお @ のあとのIPアドレスは
ラズパイ3のアドレス

なぜか ubuntu 16.04 の場合
.ssh ではなく
カレントディレクトリに鍵ファイルなどが生成されるので

mv raspi* .ssh/

で移動しておいた

あとは

ssh -i .ssh/raspi pi@192.168.1.4

で接続

接続できたら
次に vim の設定

raspberry pi : Vim インストール

を参考に

dpkg -l |grep vim

を実行すると

ii  vim-common                             2:8.1.0875-5                        all          Vi IMproved - Common files
ii  vim-tiny                               2:8.1.0875-5                        armhf        Vi IMproved - enhanced vi editor - compact version

となり
vim-tiny がインストールされているのがわかる

Vim の種類 (Vim family)

によれば最小構成の vim ということで機能が減っている

これはラズパイの容量のためもあると思うけど

sudo apt-get --purge remove vim-common vim-tiny

でアンインストールし

sudo apt-get install vim

で通常版 vim をインストール

設定ファイルをつくるので

vim .vimrc

でファイルを作成

"クリップボードからのコピペを可能にする
set clipboard+=unnamed
" シンタックスハイライトの有効化
syntax enable
" 不可視文字を可視化(タブが「▸-」と表示される)
set list listchars=tab:\▸\-
" コマンドラインの補完
set wildmode=list:longest

を記述し保存

vimrc の内容については
何も考えず~/.vimrcにこれを書くんだ! 〜vim初心者によるvim初心者のためのvim入門〜

を参考に

なお sudo 権限で vim を使うと設定が反映されていないので

sudo ln -s ~/.vimrc /root/.vimrc

でシンボリックリンクにしておく

次に
Raspberry PiのSSH設定方法

を参考に
パスワード認証による SSHログインを無効化しておく

sudo vim /etc/ssh/sshd_config 

で設定ファイルをひらき

56行目の

#PasswordAuthentication yes

PasswordAuthentication no

にしておく

ラズパイZeroW から NAS へアクセス

ラズパイZeroW から NAS へアクセス

ラズパイZeroW で撮影ができなくなっていたので
原因が容量不足と思われるため
SSH でアクセスし
ls コマンドでファイルとかをみようとすると

デバイスに空き領域がありません
-bash: ヒアドキュメント用一時ファイルを作成できません: デバイスに空き領域がありません

となってしまっていた

df -h

で確認してみると

ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root        5.7G  5.7G     0  100% /
devtmpfs         181M     0  181M    0% /dev
tmpfs            186M     0  186M    0% /dev/shm
tmpfs            186M  5.0M  181M    3% /run
tmpfs            5.0M  4.0K  5.0M    1% /run/lock
tmpfs            186M     0  186M    0% /sys/fs/cgroup
/dev/mmcblk0p6    68M   23M   46M   33% /boot
tmpfs             37M     0   37M    0% /run/user/1000

まずはこれをどうにかしないと無理なので
Ubuntu 側で

mkdir raspi_camera_bak
cd raspi_camera_bak/
scp pi@192.168.1.9:/home/pi/rscamera/* .

で静止画のバックアップをとり

次に motion で撮影されたものは
保存場所は
/var/lib/motion
に記録されるので
こちらも同様に

scp pi@192.168.1.9:/var/lib/motion/* .

でバックアップ

このままだとディスクがいっぱいで何もできないので

sudo rm -f /var/lib/motion/*

で一度削除しようとしたが処理に時間がかかりすぎたため

sudo su
 cd /var/lib/motion
rm -f *.jpg
rm -f *.avi

でそれぞれの拡張子ごとに削除

次に
Raspberry Pi Zeroから自宅のNASにアクセスしてみよう

を参考に
NASへアクセスできるように設定

なおNASは購入すると高かったため
Raspberry Pi3 で構築したものを使用

まずラズパイZero W で
SMB でNASをマウントするツールのインストール

sudo apt install cifs-utils

次にマウントするためのディレクトリを作成

sudo mkdir /mnt/nas

これで NAS へアクセスしようとしたけど
エラーになるので
一度NASの確認

【Raspberry Pi 3】sambaサーバーが接続できないときのハマリポイントまとめチェック

を参考に

まず samba が起動しているか確認

sudo /etc/init.d/samba restart

結果

[ ok ] Restarting nmbd (via systemctl): nmbd.service.
[ ok ] Restarting smbd (via systemctl): smbd.service.

なので問題なし

次にパスワードの設定確認

sudo pdbedit -L

で何も表示されないので

sudo smbpasswd -a pi

で任意のパスワードを入力し設定

再度

 sudo pdbedit -L

を実行すると

pi:1000:

となるが、Ubuntu からアクセスしてファイルの作成などができない

原因を調べるためいろいろやってみたら
Windowsへの接続

を参考に
Nautilusを起動し、Ctrl + Lで
smb://NASのIPアドレス
としたら簡単にアクセスできた

接続が Ubuntu からはできたので
ラズパイZeroWから

sudo mount -t cifs //192.168.1.208/share /mnt/nas -o username=pi,password=raspberry,iocharset=utf8

としたけど

mount error(2): No such file or directory
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

となってしまう

NASの設定を

sudo vim /etc/samba/smb.conf 

で確認したら

[ファミリー]
        path = /mnt/hdd/share/family
        writable = yes
        guest ok = yes
        guest only = yes
        create mode = 0777
        directory mode = 0777

となっていたので

[pizero_photo]
        path = /mnt/hdd/share/pizero
        writable = yes
        guest ok = yes
        guest only = yes
        create mode = 0777
        directory mode = 0777

を追記して保存

これは motion で撮影した画像がすごい量になるので
専用のフォルダで補完するため

あとは

sudo service smbd restart

で再起動

あとはディレクトリも用意するので

mkdir /mnt/hdd/share/pizero
 sudo chmod -R 777 /mnt/hdd/share/

でディレクトリ作成とパーミッション変更

これで再度 ubuntu で
smb://192.168.1.208/
と Nautilus で検索すると表示されるようになりました

次に ラズパイZeroW で

sudo mount -t cifs //192.168.1.208/pizero_photo /mnt/nas -o username=pi,password=raspberry,iocharset=utf8

とすると
無事にマウントできました

確認のため

df -h

とすると

ファイルシス                 サイズ  使用  残り 使用% マウント位置
/dev/root                      5.7G  4.3G  1.2G   79% /
devtmpfs                       181M     0  181M    0% /dev
tmpfs                          186M     0  186M    0% /dev/shm
tmpfs                          186M  5.1M  180M    3% /run
tmpfs                          5.0M  4.0K  5.0M    1% /run/lock
tmpfs                          186M     0  186M    0% /sys/fs/cgroup
/dev/mmcblk0p6                  68M   23M   46M   33% /boot
tmpfs                           37M     0   37M    0% /run/user/1000
/dev/mmcblk0p5                  30M  398K   28M    2% /media/pi/SETTINGS1
//192.168.1.208/pizero_photo   916G   47G  870G    6% /mnt/nas

となりマウント成功が確認できます

次にOS起動したら自動的にNASをマウントするように
/etc/fstab にマウントに必要な情報を記述

sudo nano /etc/fstab

でファイルをひらき
最終行に

//192.168.1.208/pizero_photo /mnt/nas cifs username=pi,password=raspberry,file_mode=0755,dir_mode=0755,iocharset=utf8,uid=1000,gid=1000,forceuid,forcegid,_netdev 0 0

を追記

長いけど1行で書き込みます

最初は行をわけるかわからなかったので
ラズパイZeroで自宅のNASをマウントする

も参考にしました

このとき
username はユーザ名
password はユーザパスワード
ですがNASのものを使います

//192.168.1.208/pizero_photo
はNASのマウント先

/mnt/nas
はラズパイZeroWのマウントする場所
となります

次にOS起動後にNASが自動マウントするように
ブートオプションを変更
これはネットワークサービスが
起動してからブートしないとNASのマウントが失敗するから

 sudo raspi-config 

で設定画面を開き

3の
Boot Options を選びSelect にしてEnter

次に
B2 Wait for Network at Boot Choose whether to waito for n
で Select にして Enter

次に
Would you like boot to wait until a network connection is established?
となっているので
はい
にしてEnter

Waiting for network on boot is enabled
となるので
了解で Enter

あとは Finish で Enter することで設定画面を抜けます

設定確認のため

sudo reboot

で再起動して

df -h

ファイルシス                 サイズ  使用  残り 使用% マウント位置
/dev/root                      5.7G  4.3G  1.2G   80% /
devtmpfs                       181M     0  181M    0% /dev
tmpfs                          186M     0  186M    0% /dev/shm
tmpfs                          186M  7.4M  178M    4% /run
tmpfs                          5.0M  4.0K  5.0M    1% /run/lock
tmpfs                          186M     0  186M    0% /sys/fs/cgroup
/dev/mmcblk0p6                  68M   23M   46M   33% /boot
//192.168.1.208/pizero_photo   916G   47G  870G    6% /mnt/nas
tmpfs                           37M     0   37M    0% /run/user/1000
/dev/mmcblk0p5                  30M  398K   28M    2% /media/pi/SETTINGS1

というように
NASがマウントされていれば成功

ラズパイ3に外付けHDDでNAS 構築

ラズパイ3に外付けHDDでNAS 構築

ラズパイZeroW で動画撮影できるようになったけど
容量が足りないため
NAS へ保存することに

ただ、NASは高いため
ラズパイ3と外付けHDDで構築

今回使用したのは昔購入した外付けHDDがあったので
これを活用

今回は
Raspberry Pi 3 に Samba 4.2 をインストール

を参考に実践

すでに過去にインストールなどは済ませてあるので
ssh で接続

ssh pi@192.168.1.208

というように
pi@ラズパイのIPアドレスで接続

なお、パスワードは変更済みだけど
デフォルトのパスワードは
raspberry

ここからは root ユーザで実行するので

sudo su

で root ユーザに切り替え

apt-get update

でリポジトリ更新

apt-get -y upgrade

でソフトのアップデート

次にSamba のインストール

apt-get -y install samba

次に外付けHDDの設定

とはいっても
デバイスがどのパスになっているのかは
それぞれの環境により異なるので
ラズパイ3 外付けhdd
で検索し
Raspberry Pi 3 ModelB で外付けHDDをファイルサーバー化する

を参考に

 fdisk -l

Device     Boot Start        End    Sectors   Size Id Type
/dev/sda1          63 1953520064 1953520002 931.5G 83 Linux

と表示されるので
/dev/sda1 にあることを確認

次に再起動時に自動マウントさせるために
UUIDを調べたいので

blkid /dev/sda1

でUUIDを確認

今回の結果は

/dev/sda1: LABEL="outhdd" UUID="3c00b165-8ba1-481d-8f0d-372b8bbbcb66" TYPE="ext4" PARTUUID="c675b7b1-01"

なお blkid コマンドについては
【 blkid 】コマンド――ブロックデバイスの属性を表示する

を参考に

次にext4 形式でフォーマットするので
もともと書き込まれていたファイルシステムの情報を削除

使用するコマンドは wipefs コマンド

ファイルシステム関連コマンドについては
ファイルシステムの痕跡(メタデータ)をクリアする方法あれこれ(wipefsほか)

を参考に

wipefs -a /dev/sda1

を実行したものの

wipefs: error: /dev/sda: probing initialization failed: デバイスもしくはリソースがビジー状態です

となってしまう

このため

df

でマウント位置の確認

ファイルシス   1K-ブロック      使用   使用可 使用% マウント位置
/dev/root         26651708  11079260 14195580   44% /
devtmpfs            468084         0   468084    0% /dev
tmpfs               472692         4   472688    1% /dev/shm
tmpfs               472692     12472   460220    3% /run
tmpfs                 5120         4     5116    1% /run/lock
tmpfs               472692         0   472692    0% /sys/fs/cgroup
/dev/mmcblk0p6       66528     22541    43988   34% /boot
tmpfs                94536         0    94536    0% /run/user/1000
/dev/sda1        961301000 820207676 92238940   90% /media/pi/outhdd
/dev/mmcblk0p5       30701       398    28010    2% /media/pi/SETTINGS

/media/pi/outhdd
にマウントされているようなので

デバイスもしくはリソースがビジー状態です

を参考に
umount コマンドでアンマウント

umount -f /media/pi/outhdd/

そして再度

wipefs -a /dev/sda1

とすると成功

次にパーティションの新規作成

fdisk に関しては
fdisk でパーティションのサイズを変更する

を参考に

fdisk /dev/sda1

を実行すると

Changes will remain in memory only, until you decide to write them. Be careful before using the write command.  Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0xe590c949.

となるので
n を入力し Enter

Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): 

となるので、そのままEnter

Partition number (1-4, default 1): 

となるので、これも Enter

First sector (2048-1953520001, default 2048): 

も Enter

Last sector, +sectors or +size{K,M,G,T,P} (2048-1953520001, default 1953520001):

もEnter

これで

Created a new partition 1 of type 'Linux' and of size 931.5 GiB.

Command (m for help): 

とでたら
p を入力するとパーティーション情報が表示される

今回は

Disk /dev/sda1: 931.5 GiB, 1000202241024 bytes, 1953520002 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe590c949

Device      Boot Start        End    Sectors   Size Id Type
/dev/sda1p1       2048 1953520001 1953517954 931.5G 83 Linux

Command (m for help): 

これで設定反映のため
w とすると

The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: 無効な引数です

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

となってしまう

エラーメッセージから検索したところ
37.3. パーティションの作成と削除
https://www.turbolinux.co.jp/products/server/11s/user_guide/partition.html
によれば再起動が必要とのこと

再起動前にフォーマットやマウントをしておきたいので

mkfs.ext4 /dev/sda1

を実行

Found a dos partition table in /dev/sda1
Proceed anyway? (y,N)

となるので y を入力

次に外付けHDDのマウント先を作成し
マウント

mkdir /mnt/hdd
mount /dev/sda1 /mnt/hdd/

外付けHDDを ext4 でフォーマットしているので

blkid /dev/sda1

で確認

結果

/dev/sda1: UUID="96cc41c9-808c-4851-83f5-53bdfa487787" TYPE="ext4" PARTUUID="c675b7b1-01"

となっているので

nano /etc/fstab 

で設定ファイルを開き

最終行に

UUID="96cc41c9-808c-4851-83f5-53bdfa487787"     /mnt/usb1       ext4    defaults 0 0

を追記

あとは設定反映のため再起動するので

reboot

を実行

これで

 df 

を実行し
マウントされていればOK

今回だと

ファイルシス   1K-ブロック     使用    使用可 使用% マウント位置
/dev/root         26651708 11079248  14195592   44% /
devtmpfs            468084        0    468084    0% /dev
tmpfs               472692        4    472688    1% /dev/shm
tmpfs               472692    12452    460240    3% /run
tmpfs                 5120        4      5116    1% /run/lock
tmpfs               472692        0    472692    0% /sys/fs/cgroup
/dev/mmcblk0p6       66528    22541     43988   34% /boot
/dev/sda1        960379088    77852 911446852    1% /mnt/hdd
tmpfs                94536        0     94536    0% /run/user/1000

というかんじ

次に samba 用フォルダ作成

mkdir /mnt/hdd/share
mkdir /mnt/hdd/share/family
chmod -R 777 /mnt/hdd/share/

次に設定ファイルの編集
ここからは使い慣れた vim で編集していきます

vim /etc/samba/smb.conf 

で設定ファイルを開き
/global で検索し
25行目あたりに

dos charset = CP932
unix charset = UTF-8
guest account = pi

を追加

なお、vim の場合 ctrl + shift + v で貼り付けが可能

そして
shift + g で最終行に移動し

[ファミリー]
        path = /mnt/hdd/share/family
        writable = yes
        guest ok = yes
        guest only = yes
        create mode = 0777
        directory mode = 0777

として保存

これで

service smbd restart

でSamba の再起動をすることでファイル共有が可能に

Ubuntu 16.04 の場合
エクスプローラで
ネットワークをクリックすると
RASPBERRYPI
と表示されるので

これを
クリックして今回設定したフォルダをクリックすると
ユーザ認証になるので
ユーザ名 pi
パスワード ラズパイ3のパスワード
とすることでログインしてファイル共有することが可能になります

ラズパイ3へ wordpress 設定

ラズパイ3へ wordpress 設定

以前 Ubuntu14.04 へ wordpress を設置し
EPUBを kindle 本に変換したので
今回は ラズパイ3で実践するために
まずは wordpress を設定

参考サイトは

Raspbian Stretchでサーバー構築! PHP7.0 Apache2 / インストール編

これは検索すると php5 が多かったので
wordpress ラズパイ3 php7
で検索しました

まず php7と phpの mysql接続モジュールインストール

sudo apt install php7.0 php7.0-mysql

次に apache2 と php接続モジュールをインストール

sudo apt install apache2 apache2-mod-php7.0

ここからは
Raspberry Pi 3 に WordPress をインストール

を参考に設定しようとして

sudo apt-get -y install mysql-server php7.1-mysql

としたけど

E: パッケージ php7.1-mysql が見つかりません
E: 'php7.1-mysql' に一致するパッケージは見つかりませんでした
E: 正規表現 'php7.1-mysql' ではパッケージは見つかりませんでした

となってしまうため、よくみたらOSバージョンが違っていたので

Raspbian Lite (Stretch)にWordPressを設定してみました

を参考に設定

sudo apt install php7.0 php7.0-fpm php7.0-mysql php7.0-mbstring php7.0-xml php7.0-gd php7.0-curl libapache2-mod-php

で必要なパッケージをインストール

今回はDBとして mariaDBをインストール

sudo apt install mariadb-server

MariaDB の場合rootだけアクセス可能ということで
sudo をつけて 実行しないとダメ

sudo mysql -u root -p

として
pi ユーザのパスワードを入力
デフォルトなら raspberry

MariaDB [(none)]> 

というようになったら

create database wordpress;

でDB作成

grant all privileges on wordpress.* to 'wpadmin'@'localhost' identified by 'password';

として
ユーザ名とパスワードを設定

exit

でDBコンソールから抜けます

次に wordpress 最新版のダウンロード

wget https://ja.wordpress.org/latest-ja.tar.gz

次に tar コマンドで解凍

tar zxvf latest-ja.tar.gz

これで wordpress というフォルダが作成されます

次に設定ファイルの作成

cd wordpress/
cp wp-config-sample.php wp-config.php 
chmod 600 wp-config.php 

これで
wp-config-sample.php から
wp-config.php を作成し
ファイル権限を chmod コマンドで変更しています

Linux の権限については
<a href="https://qiita.com/shisama/items/5f4c4fa768642aad9e06" title="https://qiita.com/shisama/items/5f4c4fa768642aad9e06" target="_blank">Linuxの権限確認と変更(超初心者向け)</a>
を参考に


次にファイルの編集

vim wp-config.php 

でファイルを開いて

29行目の

define('DB_NAME', 'database_name_here');


データベース名にするので

define('DB_NAME', 'wordpress');

へ変更

32行目の

define('DB_USER', 'username_here');


データベースユーザ名にするので

define('DB_USER', '');

へ変更

35行目の

define('DB_PASSWORD', 'password_here');


データベースユーザのパスワードにするので

define('DB_PASSWORD', 'password');

へ変更

ここまでできたら保存し

cd ..

で1つ上のディレクトリに移動

sudo mv wordpress/ /var/www/html/

でwordpress ディレクトリを公開ディレクトリに移動

sudo chown -R www-data:www-data /var/www/html/wordpress

でユーザとグループを www-data へ変更

ここまでできたらブラウザで
ラズパイのIP/wordpress
へアクセスするとインストール画面になるので
サイト名
ユーザ名
メールアドレスを入力
ちなみにパスワードは自動生成してくれます

piwp

今回は
サイト名 ランチマップ
ユーザ名 Snowpool
パスワード Zh61C!CLKLUQz3y8EA
としてあとは自分のメルアドをいれました

今後は
ランチマップのkindle 本を作成していきたいので
PriPreプラグインをいれておき
ある程度ページができたら
投稿記事をEPUBにした後に
Amazon が提供する kindlegen を使って
kindle対応ファイルに変換して出版していきます

piwp2

ラズパイ3へ Redmine の導入

ラズパイ3へ Redmine インストール

RaspberryPiにRedmineをインストールする方法

を参考にインストール

まずパッケージのアップデート

sudo apt-get -y update
sudo apt-get -y upgrade

次に redmine に必要なパッケージのインストール

sudo apt-get -y install apache2 libapache2-mod-passenger imagemagick libmagick++-dev ruby-dev bundler git subversion

DBにmysql を使うのでインストールする予定だったが
libmysqlclient-dev がないため、postgresql を使う
ように変更

まずロケール設定

sudo locale-gen ja_JP.UTF-8

次に開発ツールと ruby passenger 関連インストール

sudo apt-get -y install build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libcurl4-openssl-dev 

そして postgresql のインストール

sudo apt-get -y install postgresql postgresql-server-dev-9.5

次に apache 関連インストール

 sudo apt-get -y install apache2 apache2-dev libapr1-dev libaprutil1-dev 

次に imagemagic と日本語フォントのインストール

sudo apt-get install -y imagemagick libmagick++-dev 
sudo apt-get -y install fonts-takao

しかしメモリ不足のためインストールエラー
このため一度再起動して再度挑戦

sudo apt-get -y install fonts-taksudo 
apt-get -y install fonts-takao
fc-list | grep takao

として

/usr/share/fonts/truetype/takao-mincho/TakaoPMincho.ttf: Takao P明朝,TakaoPMincho:style=Regular
/usr/share/fonts/truetype/takao-gothic/TakaoPGothic.ttf: Takao Pゴシック,TakaoPGothic:style=Regular
/usr/share/fonts/truetype/takao-gothic/TakaoGothic.ttf: Takaoゴシック,TakaoGothic:style=Regular
/usr/share/fonts/truetype/takao-mincho/TakaoMincho.ttf: Takao明朝,TakaoMincho:style=Regular

となればOK

[/shell]
sudo apt-get install git subversion
[/shell]
でバージョン管理ソフト git と subversion
のインストール

次に ruby のバージョンの確認

ruby -v

を実行したところ、現在のバージョンは
ruby 2.3.3p222
これはもともと入ってました

次に bundlerのインストール

sudo gem install bundler --no-document

–no-document
をつけるとドキュメントなしになります

次に PostgreSQL のバージョン確認

psql --version

今回は
psql (PostgreSQL) 9.6.6
でした

次に Redmine用ユーザ作成

sudo -u postgres createuser -P redmine

そして Redmine のためのDB作成

sudo -u postgres createdb -E UTF-8 -l ja_JP.UTF-8 -O redmine -T template0 redmine

次にDB設定値確認

sudo -u postgres psql -U postgres 

で PostgreSQL のコンソールになるので

\l

を実行するとDB設定をみることができます
なお、この画面を抜けるには q を押せばOK

                                         データベース一覧
   名前    |  所有者  | エンコーディング |  照合順序   | Ctype(変換演算子) |      アクセス権       
-----------+----------+------------------+-------------+-------------------+-----------------------
 postgres  | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
 redmine   | redmine  | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
 template0 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
           |          |                  |             |                   | postgres=CTc/postgres
 template1 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
           |          |                  |             |                   | postgres=CTc/postgres
(4 行)

今回はこんなかんじになりました

なお PostgreSQL コンソールを抜けるには

\q

で抜けれます

次にRedmine のインストール

sudo mkdir /var/lib/redmine
sudo chown www-data /var/lib/redmine/

で mkdir でディレクトリを作成し
chown で www-data に所有者変更

sudo -u www-data svn co http://svn.redmine.org/redmine/branches/3.4-stable /var/lib/redmine

で svn を使い
/var/lib/redmine/ 以下へダウンロード

なお svn コマンドについては
【svn】基本コマンド

を参考に

今回使った svn co はチェックアウト

次にDB接続設定

sudo vim /var/lib/redmine/config/database.yml

でファイルを作成し、中身は

production:
  adapter: postgresql
  database: redmine
  host: localhost
  username: redmine
  password: "redmineDBのパスワード"
  encoding: utf8

としておく

次にRedmine の設定ファイルの作成
これはサンプルを書き換えて作成するので

cd /var/lib/redmine/config/
sudo cp configuration.yml.example configuration.yml

でファイルをコピーして

 sudo vim configuration.yml

でファイルを開き

production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "localhost"
      port: 25
      domain: 'example.com'

  rmagick_font_path: /usr/share/fonts/truetype/takao-gothic/TakaoPGothic.ttf

として保存

次に redmineの gem のインストール

cd /var/lib/redmine/
sudo -u www-data bundle install --without development test --path vendor/bundle

次にセッション改ざん防止秘密鍵作成

sudo -u www-data bundle exec rake generate_secret_token 

次にDBテーブル作成

sudo -u www-data RAILS_ENV=production bundle exec rake db:migrate

次にデフォルトデータ登録

sudo -u www-data RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data

次に Passenger のインストール

sudo gem install passenger --no-rdoc --no-ri

Passenger Apacheモジュールインストール

 sudo passenger-install-apache2-module --auto --languages ruby

次に apache用設定ファイルの確認

passenger-install-apache2-module --snippet

内容は

LoadModule passenger_module /var/lib/gems/2.3.0/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /var/lib/gems/2.3.0/gems/passenger-5.1.12
  PassengerDefaultRuby /usr/bin/ruby2.3
</IfModule>

となりました

次に Apache の設定

 sudo vim /etc/apache2/conf-available/redmine.conf

でファイルを作成し

<Directory "/var/lib/redmine/public">
  Require all granted
</Directory>

LoadModule passenger_module /var/lib/gems/2.3.0/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /var/lib/gems/2.3.0/gems/passenger-5.1.12
  PassengerDefaultRuby /usr/bin/ruby2.3
</IfModule>

PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 864000
PassengerStatThrottleRate 10

としてRedmine の画像ファイルやCSSファイルへ
アクセスを許可
これをしないと apache2.4 のデフォルト設定では
アクセス禁止になっている
そして Passenger の基本設定をコマンドの実行結果を元に記述し
Passenger のチューニング設定を追記

設定については
ttps://www.phusionpassenger.com/library/config/apache/reference/
のリファレンスを参考に

ここまでできたら apache の設定を反映

sudo a2enconf redmine 
 apache2ctl configtest 

を実行したときに

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

となるので

apache2再起動時にAH00558が発生する

を参考にServername を設定

hostname

でホスト名を確認
今回は
raspberrypi
だったので

cd /etc/apache2/conf-available/
sudo touch fqdn.conf
sudo vim fqdn.conf 

でファイルを作成して編集

ServerName raspberrypi

として保存し

sudo a2enconf fqdn 
sudo service apache2 restart 

として設定を反映し
apache2 を再起動したところ

Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xe" for details.

となるため

journalctl -xe

で確認すると

-- Unit apache2.service has begun starting up.
 1月 29 20:58:15 raspberrypi apachectl[24661]: [Mon Jan 29 20:58:15.640734 2018] [so:warn] [pid 24664:tid 1996165120] AH01574: module p
 1月 29 20:58:15 raspberrypi apachectl[24661]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
 1月 29 20:58:15 raspberrypi apachectl[24661]: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
 1月 29 20:58:15 raspberrypi apachectl[24661]: no listening sockets available, shutting down
 1月 29 20:58:15 raspberrypi apachectl[24661]: AH00015: Unable to open logs
 1月 29 20:58:15 raspberrypi apachectl[24661]: Action 'start' failed.
 1月 29 20:58:15 raspberrypi apachectl[24661]: The Apache error log may have more information.
 1月 29 20:58:15 raspberrypi systemd[1]: apache2.service: Control process exited, code=exited status=1
 1月 29 20:58:15 raspberrypi systemd[1]: Failed to start The Apache HTTP Server.
-- Subject: Unit apache2.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- Unit apache2.service has failed.
-- 
-- The result is failed.
 1月 29 20:58:15 raspberrypi systemd[1]: apache2.service: Unit entered failed state.
 1月 29 20:58:15 raspberrypi systemd[1]: apache2.service: Failed with result 'exit-code'.
 1月 29 20:58:15 raspberrypi sudo[24652]: pam_unix(sudo:session): session closed for user root
 1月 29 21:05:01 raspberrypi CRON[25108]: pam_unix(cron:session): session opened for user root by (uid=0)
 1月 29 21:05:01 raspberrypi CRON[25112]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
 1月 29 21:05:01 raspberrypi CRON[25108]: pam_unix(cron:session): session closed for user root

すでに Gitlab を設定しているため
サブディレクトリで Redmine を実行するように設定を変更

sudo vim /etc/apache2/conf-available/redmine.conf 

でファイルを開き

Alias /redmine /var/lib/redmine/public
<Location /redmine>
  PassengerBaseURI /redmine
  PassengerAppRoot /var/lib/redmine
</Location>

を最終行に追記し保存

sudo service apache2 reload 

としたけど

apache2.service is not active, cannot reload.

となってしまう

sudo ln -s /var/lib/redmine/public /var/www/html/redmine

でシンボリックリンクを作成し

RackBaseURI /redmine

 /etc/apache2/conf-available/redmine.conf 

の最終行へ追記してもエラー

再度

apachectl configtest

を実行すると

AH01574: module passenger_module is already loaded, skipping

とエラーが変化

systemctl status apache2.service

でエラーをみたところ

(98)Address already in use: AH00072: make_sock

とあり
検索すると
エラーメッセージとその対処あれこれ

によればポートの競合が原因

おそらく GitLab で使っているポートと重複するのが
原因

このため Gitlab の ポートを変更することに

sudo vim /etc/gitlab/gitlab.rb 

で設定ファイルを開き

13行目あたりの

external_url 'http://raspberrypi'

の部分を

external_url 'http://raspberrypi:7000'

として
7000版ポートを使うように変更
変更の方法については
GitLab 8.2 + HTTPS 設定メモ(CentOS7)

GitLab 8.2 + HTTPS 設定メモ(CentOS7)


を参考にしました

しかし、これでもダメなため
Gitlab Redmine 共存環境で検索し

sudo vim /etc/gitlab/gitlab.rb 

で設定ファイルを開き

444行目の

#gitlab_workhorse['auth_backend'] = "http://localhost:8080"

506行目の

#unicorn['port'] = 8080

のコメントアウトを削除し

744行目の

#nginx['listen_port'] = nil

nginx['listen_port'] = 8080

へ変更

設定反映のため

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

としたけどダメ

このため、一度これらの設定を元に戻す

ラズパイにRedmine3をインスールする。そして地獄を見る。また。。。

を参考に設定ファイルを変更

sudo apt-get install -y libapache2-mod-passenger imagemagick libmagick++-dev libmagickcore-dev libmagickwand-dev apache2-dev libcurl4-openssl-dev libapr1-dev libaprutil1-dev

でパッケージを追加し

sudo swapon -s

でswap容量を確認

これで100Mしかないため

sudo service dphys-swapfile stop

で一度とめて

sudo vim /etc/dphys-swapfile

でファイルを開き
16行目あたりの

CONF_SWAPSIZE=100

CONF_SWAPSIZE=2048

へ変更し

sudo service dphys-swapfile start

で再起動

次に

sudo vim /etc/apache2/conf-available/redmine.conf 

で内容が

<Directory "/var/lib/redmine/public">
  Require all granted
</Directory>

RackBaseURI /redmine

であることを確認し

 sudo cp /etc/apache2/conf-enabled/redmine.conf redmine.conf_bak

ですでに存在するファイルをバックアップしてから

sudo rm /etc/apache2/conf-enabled/redmine.conf 

で削除し

sudo ln -s /etc/apache2/conf-available/redmine.conf /etc/apache2/conf-enabled/redmine.conf 

でシンボリックリンク作成して

sudo vim /etc/apache2/mods-available/passenger.conf

を実行すると

<IfModule mod_passenger.c>
  PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
  PassengerDefaultRuby /usr/bin/ruby
</IfModule>

となっているので
この下へ

PassengerResolveSymlinksInDocumentRoot on
PassengerInstanceRegistryDir /var/run/passenger-instreg


追記し保存

sudo vim /etc/apache2/mods-available/passenger.load

でファイルを開くと

LoadModule passenger_module /usr/lib/apache2/modules/mod_passenger.so

となっていた

sudo a2enconf redmine
apache2ctl configtest
sudo service apache2 restart 

でエラーはないけど
redmine へアクセスしようとしてもディレクトリ構造だけ

passenger-status

を実行すると

ERROR: Phusion Passenger doesn't seem to be running. If you are sure that it is running, then the causes of this problem could be:

1. You customized the instance registry directory using Apache's PassengerInstanceRegistryDir option, Nginx's passenger_instance_registry_dir option, or Phusion Passenger Standalone's --instance-registry-dir command line argument. If so, please set the environment variable PASSENGER_INSTANCE_REGISTRY_DIR to that directory and run passenger-status again.
2. The instance directory has been removed by an operating system background service. Please set a different instance registry directory using Apache's PassengerInstanceRegistryDir option, Nginx's passenger_instance_registry_dir option, or Phusion Passenger Standalone's --instance-registry-dir command line argument.

となるため、
これで検索

[CentOS] Redmineのインストールメモ

によれば

sudo mkdir /var/run/passenger-instreg


httpd.conf」に以下を追加
とあったけど

sudo vim /etc/apache2/apache2.conf 

で開いても項目が見当たらないため

再度コマンド履歴をみたところ

/etc/apache2/mods-enabled/passenger.load

がシンボリックリンクになっていないため

sudo cp /etc/apache2/mods-enabled/passenger.load .

でバックアップし

sudo rm /etc/apache2/mods-enabled/passenger.load


ファイルを削除して

sudo ln -s /etc/apache2/mods-available/passenger.load /etc/apache2/mods-enabled/passenger.load

でシンボリックリンクを作成し

sudo service apache2 restart 

とすると
ようやく redmine が起動しました

ラズパイ3に Gmail リレー設定

ラズパイ3に Gmail リレー設定

ズパイに Postfixメールサーバーを立てる方法(Gmailをリレーとして使用)

を参考に設定

まず必要なパッケージのインストール

 sudo apt-get install mailutils

次に
GmailリレーサーバにするためPostfixの設定を編集

sudo vim /etc/postfix/main.cf

でファイルを開き
shift + G で最終行に移動

:set number
で行番号がでるので
39 行目の
relayhost =
をコメントアウト

あとは
カーソルを 39 行目に合わせるか
:39で39行目に移動し
shift + i # でコメントアウト

複数行のコメントアウトは
vimで一気にコメントアウトする方法(複数行の先頭に文字を追加する方法)

を参考に

あとはファイルの最後に

# Relaying Postfix SMTP via GMAIL
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes

を追記し
esc を押して
:wq で保存

次にGmailのアカウント情報を設定するファイルを作成

sudo vim /etc/postfix/sasl_passwd

構文は

[smtp.gmail.com]:587 Gmailアドレス:Gmailパスワード

なお、Gmail のパスワードは2段階認証をしている場合
安全性の低いアプリの許可はできないため
アプリパスワードを作成し
このパスワードを設定する必要があります

次に sasl_passwd の設定

sudo chmod 400 /etc/postfix/sasl_passwd 

で権限変更

Postfix が参照するデータベースファイルへ
反映するので
postmap コマンドを実行

sudo postmap /etc/postfix/sasl_passwd 

smtp.gmail.comの
ルート認証局(Root CA)をダウンロードして配置
するので wget で取得

 wget https://www.thawte.com/roots/thawte_Premium_Server_CA.pem

次に tee コマンドに -a オプションをつけることでファイルに追記
tee コマンドについては
teeコマンドの使い方

を参考に

cat ./thawte_Premium_Server_CA.pem | sudo tee -a /etc/postfix/cacert.pem

ここまでできたらテストメールの送信をするので

sudo service postfix restart 

で postfix の再起動

echo "Hello World" | mail -s "Test Message" 送信したいメルアド

としてメールが届けば成功です

もし届かない場合

tail /var/log/mail.log


Gmail のサポートのURLが表示されるので
これをもとにアプリパスワードを設定し

sudo vim /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
sudo service postfix restart

でパスワードを変更し
DB更新してから postfix を再起動し
再度送信テストをしてみましょう

ラズパイ3を Gitサーバに

ラズパイ3を Gitサーバに

まずは ssh でログインしてIPを固定しておきます

 sudo apt-get install vim

で vim をインストール

次に

interface eth0
static ip_address=192.168.1.208/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

というように IPの設定をファイル末尾に追記して保存

固定IPについては
固定IPアドレスの設定(有線LANの場合)

を参考に

固定IPで接続できるかは

sudo shutdown -r now

で再起動し
ssh で接続できれば成功

次にリポジトリの更新と
インストール済みソフトのアップデート

sudo apt-get update 
sudo apt-get -y upgrade

次に git サーバに必要なライブラリのインストール

sudo apt-get -y install wget git-core 

次に gitユーザを作成
このユーザで gitサーバにアクセスするようにする

sudo adduser git

なおパスワード設定の後に
フルネーム []:
部屋番号 []:
職場電話番号 []:
自宅電話番号 []:
その他 []:
がでるけど
そのまま Enter でOK

以上で正しいですか? [Y/n]
とでたら、 y を入力

次にテストリポジトリの作成

 su git

で gitユーザのパスワードをいれて git ユーザになり

cd

で git ユーザのホームディレクトリに移動

mkdir -p ./git_root/test.git

でテストリポジトリのディレクトリ作成

次に空リポジトリの作成
.4 Git サーバー – サーバーのセットアップ

にあるように
作業ディレクトリのない空のリポジトリを初期化
したいので
git init に –bare オプションを指定して実行

cd ./git_root/test.git/
git init --bare
git init

次に GitLab のインストール
GitLab に必要なパッケージを入れるので

sudo apt-get install curl openssh-server ca-certificates postfix apt-transport-https

途中で postfix の画面がでてくるので
tab を押して
了解
で Enter

piGitlab

メール設定の形式は
インターネットサイト
を選択し
了解で Enter

piGitlab2

システムメール名は
デフォルトの raspberrypi のままでOK

Gitlab3

次に GitLab の gpg.key を追加

curl https://packages.gitlab.com/gpg.key | sudo apt-key add -

次に Gitlab パッケージのインストール

sudo curl -sS https://packages.gitlab.com/install/repositories/gitlab/raspberry-pi2/script.deb.sh | sudo bash

そして GitLab CE Omnibus package
のインストール

sudo apt-get install gitlab-ce

を実行してもパッケージがみつからないため

Turning the RaspberryPi 3 into a local App-Development Server

の中の
If you are not comfortable installing the repository through a piped script, you can find the entire script here and select and download the package manually and install using
を参考にパッケージをダウンロードし
インストールすることに

lsb_release -a

を実行するとバージョンを調べることができる

No LSB modules are available.
Distributor ID:	Raspbian
Description:	Raspbian GNU/Linux 9.3 (stretch)
Release:	9.3
Codename:	stretch

が今回の結果なので
stretch 対応のものを
https://packages.gitlab.com/gitlab/gitlab-ce
からダウンロード

今回は
ubuntu 14.04 へ
gitlab-ce_10.3.3-ce.0_amd64.deb
をダウンロード

そして

 scp gitlab-ce_10.3.3-ce.0_amd64.deb pi@192.168.1.208:/home/pi/

でファイルを転送

scp コマンドについては
scpコマンドでファイル送る、とってくる

を参考に

次に ラズパイ3で

sudo dpkg -i gitlab-ce_10.3.3-ce.0_amd64.deb

としたけど
アーキテクチャが違うため
インストール不可

このため、再度 Google で検索し
2017年7月以降のもので検索

GitLab on the Raspberry Pi 3

を参考に

curl https://packages.gitlab.com/gpg.key | sudo apt-key add -
sudo curl -o /etc/apt/sources.list.d/gitlab_ce.list "https://packages.gitlab.com/install/repositories/gitlab/raspberry-pi2/config_file.list?os=debian&dist=jessie" && sudo apt-get update

を実行し

sudo apt-get install gitlab-ce

でインストールできた

これで

sudo gitlab-ctl reconfigure

で初期設定できる

あとは
http://192.168.1.208/
というように
ラズパイ3のIPへブラウザでアクセスすると
GitLab の画面が表示されるので

New password に
新しいパスワードを設定し
Confirm new password

確認のため同じパスワードを入力し
Change your password
をクリック

gitlab4

これでパスワード変更が有効化されるので
ユーザ名 root
パスワードを設定したもので
Sign in をクリック

gitlab5

これで Gitlab へログインできます

gitlab6

raspberry Pi3 の ssh 有効化

raspberry Pi3 の ssh 有効化

Raspberry Pi3 あデフォルト設定では ssh が無効化されているため有効化する必要がある

参考サイトは
Raspberry Pi 3(ラズパイ3)にSSHでリモート接続

RaspberryPi3 を起動し
ctrl + alt + t で端末を開けるので

sudo mkdir /boot/ssh
reboot

とすると再起動され ssh が有効化される

次に IP を調べるけど
これは Android アプリの Fing を使うと簡単に調べられる
Google Play で手に入れよう

なお、おすすめのアプリがある場合
App StoreとAndroidのアプリのリンクをブログに貼る方法

を参考にアプリを紹介すると
ダウンロードしやすくなる

これであとは IP を調べて
ubuntu 側で
ctrl + alt + t で端末を開き

ssh pi@ラズパイ3のIPアドレス

なお、デフォルトの場合だと
ユーザ名 pi
パスワードは raspberry
となっている

raspberyPi3 セットアップ(NOOBS)

raspberyPi3 セットアップ

公式サイトで Raspbian をダウンロードしようとすると
数時間かかるため、日本ミラーサイトからダウンロード

wget http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian_lite/images/raspbian_lite-2017-09-08/2017-09-07-raspbian-stretch-lite.zip

そしてこのファイルを解凍するので

 unzip 2017-09-07-raspbian-stretch-lite.zip 

で解答すると img ファイルができるのでこれを
microSDへ書き込む

しかし、購入した64GB のものを差し込むと
64GBボリュームをマウントできませんとなるため

を参考に

sudo apt-get install exfat-utils exfat-fuse

で機能を追加

これで認識できたけど
SDカード自体は
事前にどのデバイスとして認識されているかを調べ、
アンマウントしておく必要があるため

df -h

で調べ結果が

Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G  4.0K  3.9G   1% /dev
tmpfs           797M  1.4M  796M   1% /run
/dev/sda1       909G  429G  435G  50% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none            3.9G   35M  3.9G   1% /run/shm
none            100M   40K  100M   1% /run/user
/dev/sdb1        60G   17M   60G   1% /media/snowpool/9C33-6BBD

なので

sudo umount /dev/sdb1 

でアンマウント

次にdd コマンドで書き込むけど
書き込みのデフォルトは 512byte で遅いので
bs オプションで速度を指定します

デフォルト速度に関しては
ddコマンドによるコピー

を参考に

sudo dd bs=32M if=2017-09-07-raspbian-stretch-lite.img of=/dev/sdb1

書き込みができたら

sudo sync

で同期させて SDカードは取り出し

しかし、この状態で microSD をさして
raspberryPi3 を起動しても動作しない

Raspberry Pi 3で安定して使える相性の無い最適な microSDカードの種類のまとめ

によるとPCのの自作のように
相性問題があるようなので
新しく Amazonで購入

しかし、これでもダメなので
Raspbian のみのインストールはあきらめ
NOOBS からインストールすることに

http://ftp.jaist.ac.jp/pub/raspberrypi/NOOBS/images/NOOBS-2017-12-01/
が 2017/12/9 時点での最新なので
これをダウンロード

ダウンロードするのは
NOOBS_v2_4_5.zip

次にこのファイルを解凍し、中身をmicroSD へコピー

 mkdir Raspberry_Pi_NOOBS
cp NOOBS_v2_4_5.zip Raspberry_Pi_NOOBS/
cd Raspberry_Pi_NOOBS/
unzip NOOBS_v2_4_5.zip
cd ../
cp -rp  Raspberry_Pi_NOOBS/* /media/snowpool/0403-0201/

これでインストールメディアが完成

ddコマンドで作成するより簡単で
microSD フォーマットも不要なので
作成方法としてはかなり楽

あとは、この microSD を RaspberryPi3 に差し込み
HDMIでモニターへ接続
usb でのキーボード、マウス
をセットしたらスイッチをいれればインストール画面に

なお、本体だけだと面倒だったので
Amazon でスターターキットが販売されていたので
これで電源やケースも一緒に購入

なお、microSD に関しては失敗したときのことと、
今後の用途にも使うために複数購入

なお、インストール画面では
使用言語を日本語にして
インストールをクリックするだけでOK