heimdalの技術ノート

IT全般、Linux、Windows、プログラミング開発など、何でもござれ

Raspberry Pi 3B+ にRaspbianではなく、ラズパイ用Slackware「SARPi」をインストールしてみた

f:id:xheimdal:20180613231437j:plain

はじめに

先日Raspberry Pi 3B+が発売されました。
前のモデルよりも性能向上してますし、今までラズパイデビューしていなかったので、この機会に買ってみました。 ラズパイ自体にはOSが内蔵されていないので、OSをインストールする必要があります。
公式のRaspbianを入れても良かったですが、debian系は便利で何もかも簡単に出来ますがLinux自体をより知るにはもっと良いOSが欲しいところです。
Linuxの勉強ではなく、すぐ動くものが欲しいのであればRaspbianで良いと思います。
そこで探してみると「SARPi」を見つけました。
Slackware ARM on a Raspberry Pi」で「SARPi」。んー、カッコいいと思います!!

というわけで、インストールしていきます。

Slackwareについて

Slackwareはシンプルかつ堅牢なOSです。またカーネル(Linuxの核となるシステム)も独自に改良せずにそのままの状態で使っているのが特徴です。
そんなSlackwareは最古のLinuxOSとしても有名ですが、CentOSUbuntuRed Hat Enterprise LinuxのポピュラーなLinuxに隠れています。 みんな知っているぐらい有名だけどあまり導入されないOSな印象が強いです。

ポピュラーなOSたちはサーバ導入実績がかなり多く、ググればすぐに問題も解決出来るぐらい充実しています。 つまり、Linuxを詳しく知らなくてもなんとかなるのがポピュラーなOSの特徴かと思います。

それに比べ、Slackwareは導入実績はあまり無く、問題も自分で解決しないといけないことが多いと思います。 つまり、LinuxのOSの理解する必要があります。これはデメリットでもありますが、考え方を変えると逆にメリットになります。
他のOSとは違って何もかもデフォルト状態のシステムで染まりきっていない生の状態のLinuxなので、ここで身についたテクニックは他にも扱うことが出来ます。

LinuxのOSの理解が必要なものとしてGentoo LinuxやArch Linuxなどもあります。 こういったマニアックかつ実用的、そしてロマンのあるLinuxは、導入した見返りは大いにあります。 導入してから様々な困難な状態に陥ってしまうこともありますが、乗り越えた先はそこらへんのLinux使いよりも理解し根拠のある意見を言えるようになっています。

長くなりましたが、そんなOSを今から導入していきます。

準備

Raspberry Pi 3B+ キーボードやマウス、HDMIケーブルなどの一式

手順

  1. OSのイメージをダウンロードします。
    sarpi.fatdog.eu ダウンロードするのは「Slackware ARM 14.2」です。
    Slackware ARM -current」は安定版ではなくバグありの最新版なので、インストールするのは慣れてから良いです。
    f:id:xheimdal:20180614001703p:plain

  2. SDカードをFAT32形式でフォーマットします。
    大容量のSDXCカードだとこの形式でないと認識しないです。

  3. OSのイメージをSDカードに焼きます。
    方法がいくつかあるが、windowsだとwin32diskimagerあたりを使えば良いです。
    https://sourceforge.net/projects/win32diskimager/

  4. SDカードをRaspberry Pi 3B+に差し込み。電源を入れます。

  5. 起動したら、キーボードの設定画面が表示されるので、「1」を押下して任意のキーボードを選択し、再度「1」を押下します。
    日本語キーボードなら「qwerty/jp106.map」を選択すれば、大丈夫です。

  6. slackwareのデフォルト日付を現在時刻にセットします。
    date 061412342018
    分かりづらいですが、6月14日12時23分2018年という意味です。

  7. ネットワーク設定を行います。
    ※ここでは以下の条件で行う前提とします。
    ・ルータのIPアドレスが192.168.0.1
    ・使われていないIPアドレスが192.168.0.56
    デフォルトではネットワークに繋がっていないため、以下のコマンドを入力します。
    自身のIPアドレスを設定します。
    ifconfig eth0 192.168.0.56 netmask 255.255.255.0 up
    ルータのIPアドレスを設定します。
    route add default gw 192.168.0.1
    ネームサーバのIPアドレスを設定します。ネームサーバがわからなければルータのIPアドレスでOKです。
    echo nameserver 192.168.0.1 > /etc/resolv.conf

  8. ネットワーク接続の確認をします。 ping -c 3 google.com こんな感じな結果が返って来ればOKです。 f:id:xheimdal:20180614010855p:plain

  9. sshを有効にする(任意) 以降、リモート接続でセットアップしたい場合は、
    /etc/rc.d/rc.dropbear start
    と実行することで、ssh接続できるようになります。 接続元のコマンド例ssh root@192.168.0.56
    パスワードはデフォルトで設定なしなので、パスワードを求められた場合はEnterキーを押下すればログインできます。
    f:id:xheimdal:20180618225226p:plain

  10. パーティションを作成します。 cfdiskコマンドでパーティションを作成します。 cfdiskはfdiskよりもUIがしっかりしており直感で操作できるのでおすすめです。
    普段はLinuxパーティションは、bootとswapと残りディスクの3構成が一番構築しやすい構成ですが、
    SDカードの寿命を伸ばすためにswapは今回作成しません。
    LinuxOS全般に言えますが、メモリを使い切った時にSD カードをメモリがわりにする機能は便利ですが、 swapを使うような無理な使い方をしないように心がけ、swapは極力作成しない方が良いと思います。

    • cfdisk /dev/mmcblk0を実行します。 f:id:xheimdal:20180618230729p:plain
    • 下へカーソルを移動し、「New」を選択します。 f:id:xheimdal:20180618230808p:plain
    • 容量とタイプを聞かれるが、今回はそのままEnterを2回押します。 f:id:xheimdal:20180618230940p:plain f:id:xheimdal:20180618231117p:plain
    • 「Write」を選択し、「Yes」と答え、パーティションを書き込みます。「Quit」を選択して終ります。 f:id:xheimdal:20180618231313p:plain f:id:xheimdal:20180618231324p:plain f:id:xheimdal:20180618231335p:plain
  11. セットアップを開始します。
    setupコマンドを実行するとインストール画面が表示されます。

    • TARGETを選択します。
      f:id:xheimdal:20180626230020p:plain
    • 作成したパーティションを選択し、ext4にフォーマットします。 f:id:xheimdal:20180626230131p:plain f:id:xheimdal:20180626230201p:plain f:id:xheimdal:20180626230220p:plain
    • windowsがアクセスできる領域を指定する選択肢が表示されますが、そんな予定はないので、Noを選択します。 f:id:xheimdal:20180626230527p:plain
    • インストールするメディアを選択する画面ではネットワークからパッケージをインストールするようにします。まず、「Install from FTP/HTTP server」を選択します。 f:id:xheimdal:20180626230559p:plain
    • 接続先である。ftp://ftp.slackware.org.uk/を入力します。 f:id:xheimdal:20180626231241p:plain
    • インストールするためのパッケージ群のソースコードの格納先をslackwarearm/slackwarearm-14.2/slackwareと指定します。 f:id:xheimdal:20180626231530p:plain
    • PACKAGE.TXTのファイルを再ダウンロードするダイアログが出るが、ここNoを選択します。 f:id:xheimdal:20180626231644p:plain f:id:xheimdal:20180626231655p:plain
    • インストールするパッケージを選び、「FULL」でインストールします。基本的にCUIでいざという時GUIで操作する運用を想定してます。 f:id:xheimdal:20180626231922p:plain f:id:xheimdal:20180626231928p:plain f:id:xheimdal:20180626231937p:plain
  12. 仕上げ
    パッケージインストール後、マウスのタイプ選択画面では「USB」を選択します。
    GPM選択画面では「YES」を選択します。
    これを有効にしておくと、CUIでもマウスカーソルが表示されコピペできるようになります。
    ネットワーク設定画面で「YES」、ホスト名「SARPi」、ドメイン名「SARPi.home」に設定します。
    次に、「DHCP」を選択し、ホスト名「SARPi」に設定します。
    次に、スタートアップのサービスを選ぶ画面はデフォルトで、コンソールのフォントもデフォルトにします。
    時間設定で「YES」から「 Asia/Tokyo」にします。
    Xの設定では比較的軽い「xinitrc.xfce」にして、最後に管理者のrootのパスワードを設定すれば、完了!
  13. ここからSARPiオリジナル手順!!!!
    【【【【ここで注意!!!!!!】】】】
    セットアップ画面の「Exit」時に「再起動するか?」と聞かれますが絶対に再起動しないでください!!起動できなくなります!!!
    冷静に「No」を選択して通常のコンソール画面に戻ってください。
  14. 以下のコマンドを実行して不要パッケージを削除します。
    ROOT=/mnt removepkg kernel_armv7 kernel-modules-armv7
  15. boot領域の不要ファイルを削除します。
    まず、boot領域をマウントして、見えるようにします。
    mount -t vfat /dev/mmcblk0p1 /mnt/boot
    次にファイルを削除します。
    rm /mnt/boot/initrd.gz
    ※これ以外のファイルを誤って削除してしまうと起動できなくなるので気をつけてください。
  16. SARPi専用のカーネル群をインストールします。
    ROOT=/mnt installpkg /rpi-extra/kernel* /rpi-extra/sarpi*
  17. おめでとうございます!!
    rebootを実行して、再起動すれば、インストール完了です!
    お疲れ様でした!

まとめ

インストール自体は詰まることなくスムーズに行えました。OSとラズパイの相性の良さが伺えたと思います。
今回はインストールまでですが、メンテナンスや細々した設定などは次の記事にしたいと思います。
Raspberryを通じてLinuxに興味を持った人であれば、挑戦する価値はあるので、ぜひインストール楽しんでみてください。