LoginSignup
2
6

More than 5 years have passed since last update.

Raspberry Pi3にFedora28を入れる

Last updated at Posted at 2018-08-26

概要

RaspberryPi3B+にFedora28をインストールします。
RaspberryPi3のCPUは64bitサポートしているが、Raspbianは32bitOSしかないので、ラズパイを公式サポートしているFedora28をインストールしてみました。一通りの環境構築までのメモです。
Fedora公式WiKi

前提

  • Raspberry Pi3B+ (たぶんRPi3Bでも同じ)
  • Fedora Server28 (aarch64 supported images for Raspberry Pi 3)

注意点

  • GPIOやカメラは未サポート (次期バージョンまでに対応という話)
  • SDカードのACT LEDも動作しない
  • Wi-Fiはサポートされているが、ドライバの追加インストールが必要(今回は未実施。公式Q&A参照)

結局、ラズパイとして使うにはあまりお勧めできません。

OSのインストール

最初だけはLCDとキーボード接続して作業します。初期設定以降はSSHで作業しています。

SDカードの準備

OSのイメージをダウンロードし、SDカードに書き込みます。
aarch64 supported images for Raspberry Pi 3のFedora Server28を使用しました。ダウンロードし、7zなどで解凍し、rawファイルをイメージライティングソフトで書きこみます。ソフトは何でもいいですが、Etcherがシンプルで気に入っています。

インストール

SDカードを挿入し、電源を入れると最初文字が出た後、画面が消えて1分くらい何も表示されないが動いているので待ちます。SDカードのACT LEDも点滅しないので全く反応がない感じになります(^^;

しばらくすると、メニューが出ます。
(※起動しない場合の対処について、末尾に記載)

  • 言語設定 (39:Japanese → "c"ではなく"1"を入力)
  • ロケーション設定 (2:Asia、72:Tokyo)
  • IPアドレス設定 (1:IPアドレス、2:マスク、3:ゲートウエイ、6:DNS、8:設定反映)
  • rootパスワード設定
  • ユーザー追加

rootパスワードだけは必ず設定してください。デフォルトでrootログイン無効、ユーザーなしなのでrootパスワード設定しないとログインできず、詰みます。(何度か・・・:weary:)
ユーザー追加もできるが、ログインしてからでいいと思います。(フリーズ怖いし…)
たまに、フリーズするので、その時はSDカードフォーマットしてやり直すしかないと思います。
設定したら"c"で抜けると、ログイン画面が表示されます。
DHCPのままの場合は、ここで設定したrootでログインし、ifconfigでIPアドレス確認します。

以降、SSH接続可能。

初期設定

とりあえずrootでログインします。

ユーザーの追加(piとしました)

fedora
# useradd pi
# passwd pi

sudo設定
パスワード不要にする場合、以下のようにします。

# visudo
  %wheel        ALL=(ALL)       ALL  の行をコメントアウト
 %wheel  ALL=(ALL)       NOPASSWD: ALL の行を有効化

sudoが使えるようにwheelグループにユーザーを追加する

# groupadd wheel
# usermod -aG wheel pi

キーボード設定
いったん、jp106を設定し、さらに109に再設定します。

# localectl set-keymap jp106
# localectl set-keymap jp-OADG109A
# localectl set-locale LANG=ja_JP.utf8
# localectl  (確認)

ネットワーク設定の追加(DNS設定しておかないとインターネットに接続できない)

# nmcli device  (IFの確認)
# nmcli connection mod eth0 ipv4.dns 8.8.8.8
# nmcli device show eth0  (設定の確認)

DHCPから固定IPに変える場合、以下の項目を変える(DNSは例)

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
    BOOTPROTO=static
    IPADDR=192.168.10.37
    PREFIX=24
    GATEWAY=192.168.10.1
    DNS1=8.8.8.8
    DNS2=4.4.4.4

いったん再起動する(# reboot)
以降、ユーザーで作業します。

設定の確認(任意)

$ uname -a
Linux localhost.localdomain 4.16.3-301.fc28.aarch64 #1 SMP Mon Apr 23 21:45:59 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
$ uname -r または 
$ cat /proc/version
4.16.3-301.fc28.aarch64
$ cat /etc/fedora-release
Fedora release 28 (Twenty Eight)

インターネット接続の確認。(DNSレコードが取得できればよい)

$ dig google.co.jp

SDカードサイズについて

配布されたイメージからインストールした場合、SDカードの全容量は認識されていないため、拡張するのであれば早めにしておいた方が(失敗したときの被害が少なく)よいと思います。
拡張方法は、こちらに記載しました。

アップデート

最初にfastestmirrorを指定する。

dnf.conf
$ sudo vi /etc/dnf/dnf.conf
  fastestmirror=true  を追記

アップデートする。初回は2時間くらいはかかります。
fedoraはyumではなくdnfを使用します。yumも使用できるようですが、python3に対応していないとのこと。
dnfはyumのエイリアスで内部的にはyumが動いているような形(正確な表現ではない)。
リポジトリ設定は/etc/yum.repos.dが使用されている。
正確な情報は公式等を確認してください!

$ sudo dnf -y update

時刻同期(crony)

$ sudo dnf install -y chrony
$ sudo systemctl start chronyd
$ sudo timedatectl status

開発環境等

vim

$ sudo dnf install -y vim
$ vim .bashrc
    alias vi='vim'
    alias sudo='sudo -E'  (sudo時もユーザーの設定を引き継ぐ)
$ source .bashrc

設定は~/.vimrcにします。詳細は割愛します。

gccなどまとめて入れる

$ sudo dnf groupinstall -y "Development Tools"
$ sudo dnf groupinstall -y "C Development Tools and Libraries"

トータルで30分くらいかかります。

python

最初から入っている。

$ python --version
$ python3 --version

git

$ sudo dnf install -y git

docker

最初から入っているものは古いので、いったん削除し、入れなおす。
手順は公式に従います。

$ sudo dnf remove -y docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

インストールは1行で完了
$ curl -sSL https://get.docker.com | sh

ユーザー権限で起動できるようにする
$ sudo groupadd docker  (念のため)
$ sudo usermod -aG docker pi

サービス開始
$ sudo systemctl start docker
$ sudo systemctl enable docker

グループ設定反映のためターミナルを一度抜けて、再ログインする。

docker-compose

公式にはARM64用のイメージがないので、以下の手順でインストールします。
参考にしたサイト

$ sudo dnf install -y python-pip
$ sudo pip install pip --upgrade
$ sudo pip install docker-compose
$ vi .bash_profile
    export PATH=$PATH:/usr/bin
$ source .bash_profile

$ docker-compose version  (確認)

dockerやcompose使用時は、イメージがaarch64用じゃないと動かないので注意。
aarch64のtagを探すとよいです。

Node.js

公式手順に従います。

$ sudo dnf install -y nodejs
$ sudo npm install -g yarn

mongodb

$ sudo dnf install -y mongodb mongodb-server
$ sudo systemctl start mongod
$ sudo systemctl enable mongod
$ sudo systemctl status mongod

$ mongo  (確認)
>exit

起動しない場合

私がはまったことのメモ。参考になればという程度です。
・最初のブートログが以下で止まる場合、電源の容量が足りない可能性があります。

fb: switching to vc4drmfb from EFI VGA

右上に稲妻のマークが点滅していると、電圧低下のマークだそうです。わかるか!
電源を変えるか、HUBの場合はUSBケーブルを変えると改善する可能性があります。
私も接続機器によって電流可変する高性能HUBに安物のケーブルつけていて嵌りました。
※このログで調べると、Fedora26からスルーされているバグのようですが、本当にバグが原因の場合はあきらめるしかないかも。

・LANがつながらない場合
ifconfigでeth0は認識しているが、inet 192.168.xxx.xxxが出てこない場合、やはり電源を変えると動く可能性があります。初回ブート時にうまく認識できないと、その後何してもダメかもしれない。
ドライバ入れるとか頑張るより、電源変えて、SDフォーマットしてセットアップしなおすほうが早いかもしれません。

参考

2
6
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
6