Raspberry Piに無線LANが搭載されたということで、部屋に一台置きたいと思い衝動買いしました。
こちらの記事をとっかかりにRaspberry Pi 3にCentOS7を入れて動かしたいと思ったのですが、どうやら無線LANはそのままでは使えないよう。 Raspberry Pi 3でCentOS | Japanese Raspberry Pi Users Group
ということでCentOS7をインストールして無線LANのドライバ読み込んでWifi接続できるところまで設定してみました。
開封
Amazonプライムで注文当日に届きました。思ったより小さくて軽いというのが第一印象です。
Raspberry Pi3 Model B ボード&ケースセット (Element14版, Clear)-Physical Computing Lab
- 出版社/メーカー: TechShare
- メディア: エレクトロニクス
- この商品を含むブログを見る
iPhone6との比較
内容物(箱出しの時点でケースに格納された状態でした)
OSイメージの準備
OSイメージのダウンロード
事前準備として以下のURLからOSイメージをダウンロードします。
http://buildlogs.centos.org/centos/7/isos/armhfp/
OSイメージの展開
ダウンロードしたOSイメージを展開します。解答にはxzコマンドが必要なのでHomebrewでインストールしておきます。
$ brew install xz $ xz -d CentOS-Userland-7-armv7hl-Minimal-1602-RaspberryPi3.img.xz
SDカードに書き込み
SDカードをMacに差して、FATでフォーマットして、アンマウントしておきます。
$ df #----中略 /dev/disk3s2 120503488 4928 120498560 1% 0 0 100% /Volumes/CENTOS7 100% /Volumes/CENTOS7 $ diskutil umount /dev/disk3s2
SDカードにOSイメージをSDカードに書き込みます。
$ sudo dd if=CentOS-Userland-7-armv7hl-Minimal-1602-RaspberryPi3.img of=/dev/disk3 bs=8192 $ sync 393216+0 records in 393216+0 records out 3221225472 bytes transferred in 492.534314 secs (6540104 bytes/sec)
CentOS起動+ログイン
SDカードをRaspberry Pi 3に差し込んで起動します。私の場合はHDMIのモニタを持っていなかったのでテレビに接続して作業しました。
しかし、後述の通りSSH設定無しでも使える状態になっているので、ルーターからIPアドレスを確認できるのならモニタ無くても作業可能です。
CentOS Linux 7 (Core) centos-rpi3 login: root Password: centos
SSH設定
有線LANで繋いだら問題無く認識DHCPでインターネット接続できるようになったのでとりあえずSSH設定からと思ったら、設定無しでも接続できます。
IPアドレスだけ確認しておきます。
# nmcli d show eth0 IP4.ADDRESS[1]: 192.168.x.x
手持ちのMacから接続します。
$ ssh root@192.168.x.x
Rootパーティションのサイズ拡張
今回SDカードは64GBあるのに、dfで見たところRootパーティションが2GBしか取られていませんでした。
# df -h Filesystem Size Used Avail Use% Mounted on /dev/root 2.0G 682M 1.2G 38% / devtmpfs 459M 0 459M 0% /dev tmpfs 463M 0 463M 0% /dev/shm tmpfs 463M 6.2M 457M 2% /run tmpfs 463M 0 463M 0% /sys/fs/cgroup /dev/mmcblk0p1 300M 66M 235M 22% /boot tmpfs 93M 0 93M 0% /run/user/0
READMEにはこう書いてあります。
== CentOS 7 userland == If you want to automatically resize your / partition, just type the following (as root user): touch /.rootfs-repartition systemctl reboot
しかしこの方法したらKernel Panicで起動しなくなってしまいました。
なので、parted使ってrootパーティション拡張します。
# parted /dev/mmcblk0 GNU Parted 3.1 Using /dev/mmcblk0 Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) p Model: SD SA64G (sd/mmc) Disk /dev/mmcblk0: 61.9GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 316MB 315MB primary fat16 lba 2 316MB 852MB 537MB primary linux-swap(v1) 3 852MB 3000MB 2147MB primary ext4 (parted) rm 3 Error: Partition(s) 3 on /dev/mmcblk0 have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes. Ignore/Cancel? i (parted) p Model: SD SA64G (sd/mmc) Disk /dev/mmcblk0: 61.9GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 316MB 315MB primary fat16 lba 2 316MB 852MB 537MB primary linux-swap(v1) (parted) mkpart primary 852M 61.9G Error: Partition(s) 3 on /dev/mmcblk0 have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes. Ignore/Cancel? i (parted) p Model: SD SA64G (sd/mmc) Disk /dev/mmcblk0: 61.9GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 316MB 315MB primary fat16 lba 2 316MB 852MB 537MB primary linux-swap(v1) 3 852MB 61.9GB 61.1GB primary ext4 (parted) quit Information: You may need to update /etc/fstab. # reboot
この時点ではまだファイルシステムは拡張されていません。
# df -h Filesystem Size Used Avail Use% Mounted on /dev/root 2.0G 682M 1.2G 38% / devtmpfs 459M 0 459M 0% /dev tmpfs 463M 0 463M 0% /dev/shm tmpfs 463M 6.1M 457M 2% /run tmpfs 463M 0 463M 0% /sys/fs/cgroup /dev/mmcblk0p1 300M 66M 234M 22% /boot tmpfs 93M 0 93M 0% /run/user/0
fdiskで見るとパーティションテーブルは書き換わっています。
# fdisk -l /dev/mmcblk0 Disk /dev/mmcblk0: 61.9 GB, 61924704256 bytes, 120946688 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 Disk label type: dos Disk identifier: 0x000703bf Device Boot Start End Blocks Id System /dev/mmcblk0p1 2048 616447 307200 c W95 FAT32 (LBA) /dev/mmcblk0p2 616448 1665023 524288 82 Linux swap / Solaris /dev/mmcblk0p3 1665024 120946687 59640832 83 Linux
あとはresize2fsでファイルシステムを拡張します。
# resize2fs /dev/mmcblk0p3 resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/mmcblk0p3 is mounted on /; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 8 The filesystem on /dev/mmcblk0p3 is now 14910208 blocks long.
これでrootパーティションが大きくなりました。
# df -h Filesystem Size Used Avail Use% Mounted on /dev/root 56G 689M 53G 2% / devtmpfs 459M 0 459M 0% /dev tmpfs 463M 0 463M 0% /dev/shm tmpfs 463M 6.1M 457M 2% /run tmpfs 463M 0 463M 0% /sys/fs/cgroup /dev/mmcblk0p1 300M 66M 234M 22% /boot tmpfs 93M 0 93M 0% /run/user/0
NTP設定
時間も調整しておきます。時間調整を行わないと後述の作業でcurlコマンドがSSL接続できなくてエラーになります。
NTPをインスト−ルします。
# yum install -y ntp
viでntp.confを調整します。
# vi /etc/ntp.conf
既存のエントリコメントアウトしてntpサーバ追加します。
#server 0.centos.pool.ntp.org #server 1.centos.pool.ntp.org #server 2.centos.pool.ntp.org server -4 ntp.nict.jp server -4 ntp1.jst.mfeed.ad.jp server -4 ntp2.jst.mfeed.ad.jp server -4 ntp3.jst.mfeed.ad.jp
ntpdを有効化して、タイムゾーン変更します。
# systemctl enable ntpd # systemctl start ntpd # cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime cp: overwrite '/etc/localtime'? y # date →時間設定の確認
Wifi接続
この時点ではwlan0が認識されていないので無線LAN用が利用できません。
# nmcli d
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected eth0
lo loopback unmanaged --
githubから必要なFirmwareをダウンロードして配置します。
# yum -y install git # git clone https://github.com/RPi-Distro/firmware-nonfree.git # mv /lib/firmware/brcm{,.org} # cp -R firmware-nonfree/brcm80211/brcm /lib/firmware/brcm
rpi-updateをダウンロードして実行します。この中でFirmwareのアップデートなどが行われます。アップデート後は再起動します。
# curl -L --output /usr/bin/rpi-update https://raw.githubusercontent.com/Hexxeh/rpi-update/master/rpi-update # chmod +x /usr/bin/rpi-update # rpi-update # reboot
再起動後、見てみるとwlan0が認識されているのがわかります。
# nmcli d
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected eth0
wlan0 wifi disconnected --
lo loopback unmanaged --
後はPCなどと同じように接続設定をしていきます。
# nmcli d wifi -> Wifiアクセスポイントのリストが一覧されます # nmcli d wifi connect <your_uuid> password <your_keyphrase> # nmcli d DEVICE TYPE STATE CONNECTION eth0 ethernet connected eth0 wlan0 wifi connected <your_uuid> lo loopback unmanaged --
最後にwlan0に割り当てられたIPを確認します。
# nmcli d show wlan0
所感
yumでパッケージインストールするのに時間凄いかかります。見た感じはI/Oバウンド。もっと良いSDカード買えば解消するのかな。まぁ、I/O沢山でるような用途で使うのでは無いのでしょうが。
発熱少ないのはとても嬉しいです。部屋の机の片隅のコンセントから電源引いて無線LAN接続で起きっぱなしにしてます。
完全に衝動買いなので、何に使うかを考えないといけないのですが、まずはLチカからやってみました。
参考URL
SpecialInterestGroup/AltArch/Arm32/RaspberryPi3 - CentOS Wiki