LoginSignup
2
4

Raspberry Pi Start Up

Last updated at Posted at 2023-06-29

初めてラズパイのセットアップをするときに躓いたところを分かりやすく解決する方法(筆者はラズパイにおいてGUIなんていらない教なので注意)

OSインストール

  1. Raspberry Pi ImagerでDevice選択
  2. CHOOSE OSを選択(ぜひRaspberry Pi OS Lite(64-bit)(LiteはCUI版)を選択しよう)
  3. CHOOSE STORAGEでSDカードもしくはUSBを選択
  4. NEXTを選択
  5. EDIT SETTINGを選択
  6. Set hostname:にhostnameを入力(画像ではraspbrrypiと入力)
  7. Set username and passwordUsernamePasswordを入力(画像ではpiと入力)
  8. 無線LANに接続する場合はConfigure wireless LANSSIDpasswordを入力(画像ではテザリング予定のためXperia 5)
  9. Set locale settingsAsia/Tokyoに変更
  10. SERVICEタブに移動
  11. Enable SSHにチェックを入れる
  12. SAVEをクリックして閉じる
  13. YESをクリックしてインストール開始

image.png

image.png

初期設定

  • Windows等のアクセス元のコマンドプロンプトからssh
ssh pi@raspberrypi.local

確認出来たらok
今後はこのコマンドプロンプトで操作

  • rootパスワードを設定
sudo passwd root

新しいパスワードを設定後確認

su
  • アップデートの確認・更新
sudo apt update && sudo apt full-upgrade -y

を実行、sudo rebootでリブート

  • vimの再インストール
sudo apt-get --purge remove vim-common vim-tiny
sudo apt-get install vim
  • ipアドレス固定

/etc/dhcpd.confを編集

sudo vi /etc/dhcpcd.conf

iを押して以下の追加を行う

# wifiの場合.有線LANの場合はwlan0をeth0にする.
interface wlan0
# 固定したいIP,他に割り当てられていないものにする.
static ip_address=192.168.xxx.yyy/24
# ルーターのIPアドレス.(だいたいxxx.1)
static routers=192.168.xxx.1
# ↑と同じでok
static domain_name_servers=192.168.xxx.1

:wqで保存

sudo rebootでリブート

ifconfigで確認

ファイアウォールの設定

ufwをインストール

sudo apt-get install ufw

ufwがinactiveになっていることを確認する

sudo systemctl status ufw
● ufw.service - Uncomplicated firewall
     Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Tue 2023-01-03 15:15:28 JST; 3s ago
       Docs: man:ufw(8)
    Process: 15328 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SUCCESS)
    Process: 15754 ExecStop=/lib/ufw/ufw-init stop (code=exited, status=0/SUCCESS)
   Main PID: 15328 (code=exited, status=0/SUCCESS)
        CPU: 15ms

自動起動設定を確認
デフォルトはenable

sudo systemctl is-enabled ufw

受信パケットを全て遮断.
公開するポートだけを開ける.

sudo ufw default deny incoming

送信パケットは全て許可

sudo ufw default allow outgoing

ssh(22)ポートのみ許可

sudo ufw allow ssh

プロセスを起動

sudo systemctl start ufw

確認

sudo systemctl status ufw

有効にする

sudo ufw enable

設定を確認する

sudo ufw status verbose

VSCodeからssh

Remote-SSHという拡張機能をインストール
image.png

VSCodeを再起動して左下の緑色ボタンをクリック
image.png

  1. ホストに接続する
  2. 新規SSHホストを追加する
  3. 自分が設定したユーザーネーム@ipアドレスを入力
  4. Linuxを選択

ssh時に以下のエラーが出たら

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@       WARNING: POSSIBLE DNS SPOOFING DETECTED!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The ECDSA host key for pi2.local has changed,
and the key for the corresponding IP address 240d:1a:134:6c00:77fc:41d8:6df2:b2cd
is unknown. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:X+50dpXZ9SrwxMu11gkeCKSK7/cPDrsQfiLUAzS/LbA.
Please contact your system administrator.
Add correct host key in C:\\Users\\ryosh/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in C:\\Users\\ryosh/.ssh/known_hosts:19
ECDSA host key for pi2.local has changed and you have requested strict checking.
Host key verification failed.

以下のコマンドを実行


C:\Users\user>ssh-keygen -R raspberrypi.local

Gitインストール

sudo apt-get install git
git config --global user.name "username"
git config --global user.email "useremail"

VPN Server化

WireGuardをインストール

curl -L https://install.pivpn.io | bash

ちょっと待つ

image.png

okでEnter

image.png

okでEnter

image.png

YesでEnter

image.png

okでEnter

image.png

Userを選択してEnter

image.png

WireGuardを選択してEnter

image.png

51820portを使用していないならEnter使用しているなら他のportを指定してEnter

image.png

YesでEnter

image.png

お好みのDNS Providerを選択してEnter(今回はGoogleを選択)

image.png

グローバルIPかduckdnsなどのpublic DNSを持っているならそちらを選択

image.png

okでEnter

image.png

okでEnter

image.png

Yesを選択してEnter

image.png

okでEnter

image.png

Yesを選択してEnter

image.png

okを選択してReboot

新しくクライアントを作成

test@test:~ $ pivpn add
/etc/pivpn/wireguard/setupVars.conf: line 8: 192.168.1.81/24: No such file or directory
Enter a Name for the Client: test
::: Client Keys generated
::: Client config generated
::: Updated server config
::: WireGuard reloaded
======================================================================
::: Done! test.conf successfully created!
::: test.conf was copied to /home/test1/configs for easytransfer.
::: Please use this profile only on one device and create additional
::: profiles for other devices. You can also use pivpn -qr
::: to generate a QR Code you can scan with the mobile app.
======================================================================

./config にtest.confができているのでそれをクライアント側にダウンロードする.
クライアント側PCにWireGuardをインストール

image.png

Add Tunnelからtest.confを選択しActivateを押すと接続できる.

-qrでQRコードをコマンドライン上で表示してくれるため,スマホからVPNしたい場合は活用できる.

test1@test1:~ $ pivpn -qr
::  Client list  ::
1) test
Please enter the Index/Name of the Client to show: 1
::: Showing client test below
=====================================================================

pyenvをインストール

必要らしいパッケージをインストール(本当に必要かはわからん)

sudo apt install build-essential libffi-dev libssl-dev zlib1g-dev liblzma-dev libbz2-dev \
  libreadline-dev libsqlite3-dev libopencv-dev tk-dev git

Git Hubよりクローン

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

.bashrcにpyenvの情報を追記

echo '' >> ~/.bashrc
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
source ~/.bashrc

もろもろ確認&インストール

pyenv -v
pyenv install 3.10
pyenv global 3.10
pyenv local 3.10
pyenv versions

NAS化

⇓以下の様に外付けHDD等をsambaで共有する

109520.jpg

USB接続できているか確認

sudo fdisk -l

Disk /dev/sda: 5.46 TiB, 6001175126016 bytes, 11721045168 sectorsのような感じで新しく接続したデバイスの容量が認識できているか確認

必要ならフォーマットを行う

sudo mkfs.ext4 /dev/sdb1

UUIDの確認

sudo blkid

確認したデバイスのUUIDをどこかにメモっておく

マウントしたい場所にフォルダを作る
例として/mnt/mainフォルダを作る(mainは適宜変える)

sudo mkdir /mnt/main/

権限を渡す

sudo chmod 777 /mnt/main/

sambaのインストール

sudo apt install samba

smb.confの設定

sudo vi /etc/samba/smb.conf

以下を末尾に加える(※username等は適宜書き換える※)

[main] # 表示される名前
   comment = main
   path = /mnt/main/
   force user = username
   guest ok = no
   create mask = 0777
   directory mask = 0777
   read only = no
   writable = yes
   browsable = yes
   public = no

パスワードの設定

sudo smbpasswd -a ユーザー名

自動マウント設定

sudo vi /etc/fstab

以下を末尾に加える(さっきメモったUUIDUUID=の後ろにコピペ)

UUID=117c7329-80df-4ee0-913d-1076b1b00715 /mnt/main ext4 defaults,nofail 0 2

port開放

sudo ufw allow 445
sudo ufw allow 139

再起動

sudo reboot

samba再起動&有効化

sudo systemctl restart smbd
sudo systemctl enable smbd

Windowsからアクセス
エクスプローラーを開いて黄色で囲んでいるところをクリックしてAdd a network locationを選択

image.png

テキトーにNextを選択していって

スクリーンショット 2024-05-12 225407.png

この画面になったら\\ipアドレス\mainを入力

接続できたらNextをクリックして接続完了

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4