LoginSignup
1
0

More than 3 years have passed since last update.

MacBookにArchLinuxを入れる

Last updated at Posted at 2020-10-13

間違って完成していないのに投稿してしまいました…
完成したらここの表示は消します…
完成するまでの順序は不定です…

はじめに

この記事であなたのMacライフが良くなれば嬉しいです。
また、不適切な点があればご指摘いただければ幸いです。

注意

WiFiについて

MacBook15まで(~2018)は内臓のWiFiが使えますが、 MacBook16(2019~)からは使う方法が確立されてないみたいです。
私はMacBookP15(2018)なので知りませんが、それ以降のモデルをお持ちの方は有線LANか無線LANカードを刺さないと動きません。

戯言

お急ぎの方へ。急いで読んでください。

私はMacOSが正直嫌いです。MacにWindowsをプリインストールしたらもっと売れるのではと思います。
さて、Macにして得られるものはXcode以外にあるのでしょうか?
まあ、様々な理由故にWindowsを入れてWSLを使うT2チップ難民が続出した訳ですね。
脱MacOSを推進するために書かせていただきます。

要件

詳しくないのなら揃えることをおすすめします。

  • USB Storage (あることを前提に書いています) [任意]
  • External Keyboard1 (あることを前提に書いています)[任意]
  • Refind2 (あることを前提に書いています)[任意]

内容について

ArchLinuxをインストールします。
明記していないものはすべてRun As Rootです。
ArchISOのBoot段階でカーネルパニックが起きるモデルでは諦めるか、ログを提出するしかないです。

ヒント

1: ArchISOはrootをパスワードなしでログインします。
2: 作業の途中で中断したいときはsystemctl suspendを使用します
3: chmodしてる方は流石にいないと思いますが、viなら:wq!で保存できます。

下準備

パーティショニング(NTFS,APFS関連)

私のMacのSSDは元々Windows10のシングルブートでしたが、Linuxとのデュアルブートにします。 (左がLinux)
この場合ではNTFSの縮小をしました。 各自パーティショニングをしてください。
image.png

ArchISOの準備

1: dl.t2linux.org/archlinux/iso/ から最新のISOを取ってきます。
2: Rufus,Balenaetcher,ddなどのツールを使い書き込みます。 ventoyを使ってもいいと思います。

起動

これの起動はRefindではなく、StartupManagerから起動してください。

StartupManagerとは

Optionキーを長押ししながら起動するやつです。

#インストール = ArchISOでの工程 - キーボード へ続きます。

インストール

ArchISOでの工程

キーボード

日本語: jp106
US: us (default)

loadkeys-for-jp106
loadkeys jp106

ネットワーク

<Interface>device listから採れる実際のものに置き換えて下さい。
<SSID>station <Interface> get-networksから採れる実際のものに置き換えて下さい。
上矢印と下矢印が使えます。

Network
iwctl
# iwd>
device list
station <Interface> scan
station <Interface> get-networks
station <Interface> connect <SSID>
exit
# bash>
systemctl start dhcpcd@wlan0
## or
dhclient

その他準備

wiki.archlinux.jp/index.php/インストールガイド をフォローします。

システムクロックの更新
bash
timedatectl set-ntp true

パーティショニング

私の場合は、SSDの2番目のパーティション: /dev/nvme0n1p2をフォーマットして、マウントしました、
パーティションへのパスは置き換えてください。
また、Linux一本にしたりも出来ます。

私の場合

cgdisk
1   1000.0 KiB   free space
2   1024.0 MiB   EFI system partition   ESP
3   150.0 GiB    Linux filesystem       LINUX-BTRFS
4   82.8 GiB     Microsoft basic data   WIN-NTFS
partitioning
# パーティショニング (例)
gdisk /dev/nvme0n1
 :o
 :w
cgdisk /dev/nvme0n1
# フォーマット
mkfs.btrfs /dev/nvme0n1p2 -m dup
# ROOTFSのマウント
mount /dev/nvme0n1p2 /mnt
# EFIパーティションのフォーマット (任意)
mkfs.fat -F32 -s2 /dev/nvme0n1p1
# EFIパーティションのマウント
mkdir /mnt/esp
mount /dev/nvme0n1p1 /mnt/esp

OSのインストール

pacmanの構成

pacman.d/mirrorlist

これを最適化することでインストール時間を短縮できます。

example
Server = https://mirrors.cat.net/archlinux/$repo/os/$arch
pacman.conf

他にRepoを使いたいならこれを編集します。

/mnt へのインストール

パッケージが置き換えられる事があるので都度sedで置き換えます。
Import PGP keyと出たら、サーバーからフェッチ出来てない事だと思うので、pacman -Sccをして試しても出るなら諦めてpacman.confSiglevelNeverにします。

pacstrap /mnt base-devel linux-firmware p7zip $(pacman -Qq|tr '\n' ' '|sed s/xorg-luit//g)
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt

OSの初期設定

親の顔より見た設定。

タイムゾーン
# For residents of Japan
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
hwclock --systohc
ローカリゼーション
/etc/locale.gen
eng和ja
en_US.UTF-8
ja_JP.UTF-8
# Other Lang
...
locale-gen
locale-gen

ja_JP.UTF-8en_US.UTF-8を有効にすることが多いです。

/etc/locale.conf
english
LANG=en_US.UTF-8
/etc/vconsole.conf
jp106
KEYMAP=jp106
ホストネーム

簡単に言うとPCのニックネームですね。
<HostName💞> に使いたいホスト名を代入してください。

/etc/hostname
<HostName💞>
/etc/hosts
127.0.0.1   localhost
::1     localhost
127.0.1.1   <HostName💞>.localdomain  <HostName💞>
Rootのパスワード
passwd
passwd
ブートローダー

直接インストールするのは良くないのでRefindを使うことを前提にしています。
refindがきれいになるのでgrubを推奨します。

Systemd-boot

[手動でエントリを追加する必要があります。その点grubは楽チン]

bootctl --path=/esp install
Grub
Install
grub-install --target=x86_64-efi --efi-directory=/esp --bootloader-id=grub --boot-directory=/esp
grub-mkconfig -o /esp/grub/grub.cfg

ここを参考にします。

ファームウェア
bash
exit # arch-chrootから出る
# ネットワーク
cp -n /lib/firmware/brcm/* /mnt/lib/firmware/brcm

OSインストール後の作業

ネットワーク

まずネットワーク関連。
やり方を忘れてしまったのなら、前に行ったネットワーク設定を参照してください。

shell
# Broadcom Firmware Mac
modprobe    brcmfmac
iwctl
# iwd>
device list
station <Interface> scan
station <Interface> get-networks
station <Interface> connect <SSID>
systemctl enable dhcpcd@<Interface>
systemctl start  dhcpcd@<Interface>
systemctl enable NetworkManager
systemctl start  NetworkManager
systemctl enable iwd
systemctl start  iwd
touch /etc/modules-load.d/brcmfmac.conf

/usr/lib/modprobe.d/broadcom-wl.confからbrcm*の行を消します。
下のものが完成形になります。

/usr/lib/modprobe.d/broadcom-wl.conf
blacklist b43
blacklist b43legacy
blacklist ssb
blacklist bcm43xx
blacklist bcma

一般ユーザーの作成

Linuxでは一般ユーザーで運用する事、及びそれ前提が多いです。

useradd ユーザー名 -md $home_dir -s $user_shell -c $user_comment
例:
-: $home_dir: /home/ユーザー名 (これが無いとホームディレクトリが作られません)
-: $user_shell: /usr/bin/(bash,zsh,fishなど) (任意)
-: $user_comment: 'How do you use' (任意)

useradd
useradd
# 危険ですが、危険ですが、使いやすくなります。
echo 'ユーザー名 ALL=NOPASSWD:ALL' >> /etc/sudoers
passwd ユーザー名

Pacman関連

1: pacman.confを編集。
2: pacman -SyyuuでOSのアップグレード。

mbprepoをフェッチしていない場合、pacman.confをarchisoからコピーします。
mbpの下にSigLevel = Neverを追加します。

3: yayのインストール

makepkg
su ユーザー名
$>
git clone https://aur.archlinux.org/yay-git.git ~/yay
cd ~/yay
makepkg -si

キーボード

[**]を存在するものに置き換えて下さい。

shell
# KeyBoard (これは動かないみたいです。書いてる途中です。)
pacman -Sy apple-bce-dkms-git
touch /etc/modules-load.d/apple-bce.conf
# Contain TouchBar
git clone --branch mbp15 https://github.com/roadrunner2/macbook12-spi-driver.git /usr/src/apple-ibridge-0.1
dkms install -m apple-ibridge -v 0.1
touch /etc/modules-load.d/industrialio_triggered_buffer.conf
touch /etc/modules-load.d/apple-ibridge.conf
touch /etc/modules-load.d/apple-ib-tb.conf
touch /etc/modules-load.d/apple-ib-als.conf

デスクトップ

ここではswaywmを入れます。取り敢えずfirefox,dmenu,alacritty,noto-fonts-cjkを入れるといいです。
サイズが小さいのと、依存が少なく消しやすいところがいいと感じます。

ログインマネージャーに関してやりがちなのが、systemctlなど以外から起動している事です。ものによっては動きません。
私はlightdmのwebkit2-greeterが凄く好きです。遂に公式パッケージにもなりましたしね!

# インストール
pacman -Syy sway lightdm lightdm-webkit2-greeter
# 構築初めてなら
cp -n /etc/sway/config ~/.config/sway/config
# Waylandでfirefox使うなら
alias firefox='MOZ_ENABLE_WAYLAND=1 firefox'
# lightdmを自動起動させる。
systemctl enable lightdm
/etc/lightdm/lightdm.conf
[Seat:*]
...
greeter-session=lightdm-webkit2-greeter

私の場合102行目に有りました。
ArchWiki:LightDMより
Firefoxでcaエラーが出るときは システムクロックの更新 を再度試してください。

引用


  1. External Keyboardを使わずにインストールをするときは、
    ArchISOでインストールを完結させればキーボードは不要です。
    ここでは2回に分けているだけです。 

  2. Refindを使わずに起動をしたいときは、
    EFIをSSDのEFIパーティションにおいてください。 

1
0
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
1
0