Raspi にArch Linux を焼いたからセットアップするぞ〜！

# この記事について
なんとなくまたRaspi にArch Linux を入れたくなったので入れ終わってからやったことを書いていきます

インストールはこいつからできるのでよければどうぞ

https://qiita.com/maachan_9692/items/fb10ed6c38ef2a68b055

ログインするにはユーザーから〜

| user | pass | root 権限 |
| :-: | :-: | :-: |
| root | root | ○ |
| alarm | alarm | X |

---

## 環境

- Raspberry Pi 3 B
- Ubuntu 21.04

# やったこと

今回はroot 権限がないと何もできないのでroot でログインする

## 目次

1. [locale とtimezone の設定](#locale-とtimezone-の設定)
1. [パッケージをアップグレードする](#パッケージをアップグレードする)
1. [ssh をできるようにする](#ssh-をできるようにする)
1. [wifi を使えるようにする](#wifi-を使えるようにする)
1. [sudo を使えるようにする](#sudo-を使えるようにする)
1. [必要そうなパッケージをインストールする](#必要そうなパッケージをインストールする)

## locale とtimezone の設定

### 手順

1. locale.gen をいじる
1. 環境変数をいじる
1. timezone をいじる
1. ハードウェアクロックを同期させる

### locale.gen をいじる

```bash
$ sed -i -e 's/#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' /etc/locale.gen
$ sed -i -e 's/#ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/g' /etc/locale.gen
$ locale-gen
```

### 環境変数をいじる

```bash
$ echo "LANG=en_US.UTF-8" > /etc/locale.conf
```

### timezone をいじる

`tzselect`でtimezone を`Asia/Tokyo`にしていく
コマンドを実行すると大陸を選べと言われるので`4`を選択
次に国を選べと言われるので`20`を選択
最後に`JST`と`UTC`が正しいか聞かれるので正しければ`1`を選択する

```
$ tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent, ocean, "coord", or "TZ".
 1) Africa
 2) Americas
 3) Antarctica
 4) Asia
 5) Atlantic Ocean
 6) Australia
 7) Europe
 8) Indian Ocean
 9) Pacific Ocean
10) coord - I want to use geographical coordinates.
11) TZ - I want to specify the timezone using the Posix TZ format.
#? 4
Please select a country whose clocks agree with yours.
 1) Afghanistan           14) Hong Kong             27) Laos                  40) Saudi Arabia
 2) Antarctica            15) India                 28) Lebanon               41) Singapore
 3) Armenia               16) Indonesia             29) Macau                 42) Sri Lanka
 4) Azerbaijan            17) Iran                  30) Malaysia              43) Syria
 5) Bahrain               18) Iraq                  31) Mongolia              44) Taiwan
 6) Bangladesh            19) Israel                32) Myanmar (Burma)       45) Tajikistan
 7) Bhutan                20) Japan                 33) Nepal                 46) Thailand
 8) Brunei                21) Jordan                34) Oman                  47) Turkmenistan
 9) Cambodia              22) Kazakhstan            35) Pakistan              48) United Arab Emirates
10) China                 23) Korea (North)         36) Palestine             49) Uzbekistan
11) Cyprus                24) Korea (South)         37) Philippines           50) Vietnam
12) East Timor            25) Kuwait                38) Qatar                 51) Yemen
13) Georgia               26) Kyrgyzstan            39) Russia
#? 20

The following information has been given:

        Japan

Therefore TZ='Asia/Tokyo' will be used.
Selected time is now:   Sat Feb 26 17:29:07 JST 2022.
Universal Time is now:  Sat Feb 26 08:29:07 UTC 2022.
Is the above information OK?
1) Yes
2) No
#? 1

You can make this change permanent for yourself by appending the line
        TZ='Asia/Tokyo'; export TZ
to the file '.profile' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Asia/Tokyo
```

### ハードウェアクロックを同期させる

```bash
$ hwclock -w
```

## パッケージをアップグレードする

### 手順

1. パッケージキーの初期化, インポート
1. アップグレード

### パッケージキーの初期化, インポート

```bash
$ pacman-key --init && pacman-key --populate archlinuxarm
```

### アップグレード

```bash
$ pacman -Syu
```

## ssh をできるようにする

### 手順

1. sshd をインストールする
2. デーモンを有効化する
3. 設定ファイルをいじる

### 理由

- raspi を直でいじるのは面倒くさいからいつも使ってるpc からssh させたい

### sshd をインストールする

```bash
$ pacman -S sshd
```

### デーモンを有効化する

```bash
$ systemctl enable sshd
```

### 設定ファイルをいじる

何もしないとalarm にしかログインできないのでroot にもログインできるようにする

```bash
$ echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
$ reboot
```

## wifi を使えるようにする

### 手順

1. パッケージをインストールする
1. 設定する
1. 接続できたか確認

### パッケージをインストールする

```bash
$ pacman -S networkmanager
```

### 設定する

```bash
$ nmtui
```
実行すると画面が切り替わるので`Activate a connection`を選択

![220226_180229.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/199251/23c688b2-7eed-713e-a88c-70ef4a575344.png)

Wi-Fi のところにSSID がいっぱい出てくる(飛んでれば)ので接続したいのを選択

![220226_175633.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/199251/879d0c13-3009-65b8-dc2b-c8360ae8aaa5.png)

パスワード(かかってれば)を入力
![220226_175653.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/199251/6fcc91c8-bb0d-e6b0-3354-ecd694ab7065.png)

### 接続できたか確認

`ip a`を実行し, `wlan0`の`inet`にip が振られていればok

```bash
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether b8:27:eb:36:66:37 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.123/24 brd 192.168.3.255 scope global dynamic noprefixroute wlan0
       valid_lft 85869sec preferred_lft 85869sec
    inet6 fe80::e4f9:17f8:cae6:86a4/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether b8:27:eb:63:33:62 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.121/24 brd 192.168.3.255 scope global dynamic eth0
       valid_lft 85302sec preferred_lft 85302sec
    inet6 fe80::ba27:ebff:fe63:3362/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
```

## sudo を使えるようにする

alarm と新しくユーザーを作成してこの2つのユーザーで使えるようにする

### 手順

1. パッケージをインストールする
1. 設定する
1. ユーザーをグループに割り当てる

### パッケージをインストールする

```bash
$ pacman -S sudo
```

### 設定する

`visudo`で`/etc/sudoers`をいじり, `%sudo   ALL=(ALL:ALL) ALL` をコメントアウト(追加)する

```
$ visudo

...

## Uncomment to allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL


...
```

### ユーザーをグループに割り当てる

設定したときに`sudo`グループにsudo を使えるようにしたので, まずグループを作成する

```bash
$ groupadd sudo
```

`alarm`をグループに割り当てる

```bash
$ gpasswd -a alarm sudo
```

今度はユーザーを作成してそいつにグループを割り当てる

```bash
$ useradd macha -g sudo
$ passwd macha
```

## 必要そうなパッケージをインストールする

### パッケージ一覧

- git
- neovim

```bash
$ pacman -S git neovim
```

# 最後に

今回はRaspi にArch を焼いてsudo が使えるまで持っていきました〜
今, 僕はUbuntu をメインPCで使ってるんですけど, Arch に乗り換えたいと思ってるが...
なんと, 仕事もこの環境でやってるからふっ飛ばしたら終わる！
しかもゴリゴリにスペックを振ったわけじゃないんでデュアルブートするのも厳しい...
**圧倒的ぴえん！！**
そんなこともあり, 昔Raspi にArch 焼いたことあるしこいつで我慢するかってことでいじりましたw
メインPC をArch にするのはいつになるのやら...

それではまた〜