はじめに
Mac Pro 2012にarch linuxをインストールする手順です。
公式のarch wikiのインストールガイドとMac向けガイドを読めば大体わかりますが、実際に私がやった時に所々詰まるポイントがあったのでメモ代わりに残します。
概要は
①arch linuxのインストール(今回はシングルブート)をする
②有線でインターネット接続する
③Mac Pro内蔵のワイヤレスカードのドライバをインストールし、無線でインターネット接続する
④ssh接続できるように設定する
です。
正直、最後の「ssh接続できるように設定」はおまけです。
Mac Pro 2012の詳細な物理構成はこちらを参照してください。
arch linuxのインストール
ほぼ公式のインストール手順通りなので詳細は割愛します。
詰まったらこちらの記事を参照にするとよいかもしれません。
pacstrap
で入れるライブラリとブートローダーについては、追加で補足します。
root@archiso ~ # loadkeys jp106
root@archiso ~ # ls /sys/firmware/efi/efivars # Mac ProはUEFIなので表示される
root@archiso ~ # ip link # 最初は有線接続する
root@archiso ~ # ping archlinux.jp # 有線接続で正常性確認
root@archiso ~ # timedatectl set-ntp true
root@archiso ~ # fdisk -l
root@archiso ~ # gdisk /dev/sda # sda1にEFIシステムパーティション、sda2にext4ファイルシステムを作成
root@archiso ~ # mkfs.fat -F32 /dev/sda1
root@archiso ~ # mkfs.ext4 /dev/sda2
root@archiso ~ # mount /dev/sda2 /mnt
root@archiso ~ # mkdir /mnt/boot
root@archiso ~ # mount /dev/sda1 /mnt/boot
root@archiso ~ # pacstrap /mnt base linux linux-firmware base-devel vi emacs git openssh iwd zsh intel-ucode # (補足1) pacstrapについて
root@archiso ~ # genfstab -U /mnt >> /mnt/etc/fstab
root@archiso ~ # arch-chroot /mnt
[root@archiso /]# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
[root@archiso /]# hwclock --systohc
[root@archiso /]# vi /etc/locale.gen # en_US.UTF-8 UTF-8とja_JP.UTF-8 UTF-8をアンコメント
[root@archiso /]# locale-gen
[root@archiso /]# echo "LANG=en_US.UTF-8" > /etc/locale.conf
[root@archiso /]# echo "KEYMAP=jp106" > /etc/vconsole.conf # 日本語キーボードを使用
[root@archiso /]# echo "macpro" > /etc/hostname # ホスト名はお好きに
[root@archiso /]# passwd # 好きなrootパスワードを設定
[root@archiso /]# bootctl --path=/boot install # (補足2) ブートローダーについて
[root@archiso /]# vi /boot/loader/loader.conf
[root@archiso /]# ls /boot/vmlinuz-linux | sed s~/boot~~ > /boot/loader/entries/arch.conf
[root@archiso /]# ls /boot/initramfs-linux.img | sed s~/boot~~ >> /boot/loader/entries/arch.conf
[root@archiso /]# blkid -o export UUID /dev/sda2 | grep ^UUID >> /boot/loader/entries/arch.conf
[root@archiso /]# vi /boot/loader/entries/arch.conf # 上記コマンドである程度埋めた状態で残りを編集すると楽
[root@archiso /]# bootctl list
[root@archiso /]# exit
root@archiso ~ # reboot
(補足1) pacstrapについて
root@archiso ~ # pacstrap /mnt base linux linux-firmware base-devel vi emacs git openssh iwd zsh intel-ucode
上記コマンドでインストールしているパッケージの説明です。
-
base
,linux
,linux-firmware
→ この3つは公式手順通り -
vi
,emacs
→ 好きなエディタを選んでください
(あとでvisudo
を使う時にエディタを使用、emacs使いはEDITOR
変数をいじればOK) -
git
→ ワイヤレスカードのドライバを入れるのに使用 -
iwd
→ 無線接続するのに使用 -
openssh
→ sshサーバを立てるのに使用 -
zsh
→ あると便利、別に無くても可 -
intel-ucode
→ Mac Proに入っているCPUはXeonなのでintel CPUのマイクロコードを入れる、別に無くても動くけど入れることを推奨
(補足2) ブートローダーについて
公式にもある通り、Mac Pro 2012へ簡単にブートローダーを入れたいならsystemd-bootがおすすめです。1
設定ファイルの中身は以下。設定の意味は公式を見てください。
default arch.conf
timeout 4
console-mode max
editor no
arch.conf
は全部手入力でも良いですが、上記のコマンドを参考にある程度埋めた状態から記入した方がミスが少ないです。コマンドはこちらの記事を参考にしました。
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options root=UUID=xxxxxxxx-yyyy-zzzz-00000-111111111111 rw
ここの編集はミスりやすいので、最後にbootctl list
で確認することをお勧めします。
有線でインターネット接続
上の手順の最後のリブート後にSSDからarch linuxが起動できているとします。
SSDから起動できない時は、何かしらの設定が間違っている可能性が高いので、上を見てやり直してください。
なおSSDから起動していても、上記の状態では何も設定していないので有線LANを繋いでもネットに繋がりません。2
ネットワーク関連のデーモンの設定します。
[root@macpro ~]# systemctl enable systemd-networkd
[root@macpro ~]# systemctl enable systemd-resolved
有線接続の際のコンフィグを設定します。ファイル名はお好きなものにしてください。
とりあえずDHCPを使用し、LANケーブルをMac Proに挿せばネットに繋げるようにします。
[root@macpro ~]# emacs /etc/systemd/network/wired.network
[Match]
Name=enp10s0
[Network]
DHCP=ipv4
Nameに与えるデバイスの名前ですが、Mac Proの場合はenp9s0
かenp10s0
でした。
LANケーブルを挿したのがどっちのポートかはip link
で確認してください。
DHCPを使わずに固定IPにしたい、という方は公式を確認してください。
次にサービスを起動します。
[root@macpro ~]# systemctl start systemd-networkd
[root@macpro ~]# systemctl start systemd-resolved
ping接続できるようになればOK。
[root@macpro ~]# ping archlinux.jp
無線でインターネット接続
Mac Pro 2012で無線接続できるようにするためには、Mac pro内蔵のワイヤレスカードのドライバをインストールする必要があります。
lspci -vnn -d 14e4:
と実行するとカードのチップIDがBCM4322とわかるので、それに対応するドライバをAURから入れます。3
Macのドライバの詳細な情報は公式をご覧ください。
AURからのインストールの際にはroot以外のユーザが必要になるため、まずはユーザを作成します。
[root@macpro ~]# useradd -m -G wheel minnsou
-
-m
はホームディレクトリを作成するオプション -
-G wheel
でwheel
グループに新規ユーザを追加します -
-s /bin/zsh
を追加すると、ログインシェルがzsh
になります。
今回はユーザ名をminnsou
にし、wheel
グループに所属するユーザが管理者になれるような構成にします。
作成したユーザに好きなパスワードを設定します。
[root@macpro ~]# passwd minnsou
作成したユーザにルート権限を与えます。
今回はwheel
グループにルート権限を設定します。
[root@macpro ~]# visudo
%wheelの行をアンコメントし、以下のようにすればOK。
## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL:ALL) ALL
新規ユーザのzshの設定をします。(Zshを使わない人は飛ばしてください)
grml-zsh-configを使うことで、USBインストーラーと同じセットアップになります。
[taishi@macpro ~]# chsh -s /bin/zsh
[taishi@macpro ~]# pacman -S grml-zsh-config
新規作成したユーザになって、ドライバをインストールしていきます。
[root@macpro ~]# su minnsou
ワイヤレスカードのドライバのインストールします。
makepkg -si
はrootでは実行できないので注意です。
[minnsou@macpro ~]$ git clone https://aur.archlinux.org/b43-firmware.git
[minnsou@macpro ~]$ cd b43-firmware
[minnsou@macpro b43-firmware]$ makepkg -si
ドライバを当てるために再起動します。
[minnsou@macpro b43-firmware]$ reboot
再起動後にちゃんとドライバが当たっているか見てみます。
[root@macpro ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp9s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 40:6c:8f:XX:XX:XX brd ff:ff:ff:ff:ff:ff
3: enp10s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 40:6c:8f:XX:XX:XX brd ff:ff:ff:ff:ff:ff
5: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000
link/ether a8:96:8a:XX:XX:XX brd ff:ff:ff:ff:ff:ff
上記のようにwlan0
が表示されればOK。
無線接続できるように、ネットワークの設定を追加します。
ファイル名は適当です。
[root@macpro ~]# emacs /etc/systemd/network/wireless.network
[Match]
Name=wlan0
[Network]
DHCP=ipv4
無線接続のためのデーモンの設定をしていきます。
[root@macpro ~]# systemctl enable iwd
[root@macpro ~]# systemctl start iwd
無線LANに接続します。
コマンドの詳細は公式を見てください。
[root@macpro ~]# iwctl
[iwd]# device list
[iwd]# station device scan
[iwd]# station device get-networks
[iwd]# station device connect 繋げたいSSID
device
はデバイス名(例えばwlan0
など)に置き換えてコマンド実行してください。
Mac ProからLANケーブルを抜いた状態で、pingに成功すればOK。
ping archlinux.jp
ssh接続できるように設定
最後、OpenSSHをインストールし、ssh接続できるようにしていきます。
[root@macpro ~]# pacman -S openssh # 最初にpacstrapで入れた場合は不要
[root@macpro ~]# systemctl enable sshd
コンフィグファイルを設定していきます。
emacs /etc/ssh/sshd_config
パスワードログイン可能に設定します。
下記部分のコメントを外します。
PasswordAuthentication yes
sshdを起動します。
systemctl start sshd
他のPCからssh接続してみて、ログインできればOKです。
ssh minnsou@IPアドレス
終わりに
ネット接続でかなり手こずったので誰かの役に立てば幸いです。
-
ブートローダーをGRUBにしたい方は、とりあえず
pacman -S grub efibootmgr
で必要なものをインストールしてから、grub-install --target=x86_64-efi --efi-directory=/boot --removable
とgrub-mkconfig -o /boot/grub/grub.cfg
と実行することでも可能です。こちらはGRUBとefibootmgrのインストールが必要になります。 ↩ -
よく見ると公式ガイドに「新しくインストールされた環境でネットワーク設定を完了させてください。」とあるので、このタイミングでネットワークの設定すれば問題ありません。ただ、USBメモリなどから起動したライブ環境ではネットワーク環境の設定が既に入っていることもあり、うまく設定できたのか分かりづらいです。今回はライブ環境ではなくSSDから起動した状態で、ネットワークの設定を行いました。 ↩
-
例えばMacBook Air early 2014のチップIDはBCM4360なので、
pacman -S linux-headers broadcom-wl-dkms
の一発でドライバーが入ります。別の機種の方はどのモジュールを使用するか、公式を見ながらチェックしてください。 ↩