間違って完成していないのに投稿してしまいました…
完成したらここの表示は消します…
完成するまでの順序は不定です…
はじめに
この記事であなたの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の縮小をしました。 各自パーティショニングをしてください。
ArchISOの準備
1: dl.t2linux.org/archlinux/iso/ から最新のISOを取ってきます。
2: Rufus
,Balenaetcher
,dd
などのツールを使い書き込みます。 ventoy
を使ってもいいと思います。
起動
これの起動はRefind
ではなく、StartupManager
から起動してください。
StartupManagerとは
Option
キーを長押ししながら起動するやつです。
#インストール = ArchISOでの工程 - キーボード
へ続きます。
インストール
ArchISOでの工程
キーボード
日本語: jp106
US: us
(default)
loadkeys jp106
ネットワーク
<Interface>
をdevice list
から採れる実際のものに置き換えて下さい。
<SSID>
をstation <Interface> get-networks
から採れる実際のものに置き換えて下さい。
上矢印と下矢印が使えます。
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
/インストールガイド をフォローします。
システムクロックの更新
timedatectl set-ntp true
パーティショニング
私の場合は、SSDの2番目のパーティション: /dev/nvme0n1p2
をフォーマットして、マウントしました、
パーティションへのパスは置き換えてください。
また、Linux一本にしたりも出来ます。
私の場合
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
# パーティショニング (例)
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
これを最適化することでインストール時間を短縮できます。
Server = https://mirrors.cat.net/archlinux/$repo/os/$arch
pacman.conf
他にRepoを使いたいならこれを編集します。
/mnt
へのインストール
パッケージが置き換えられる事があるので都度sed
で置き換えます。
Import PGP key
と出たら、サーバーからフェッチ出来てない事だと思うので、pacman -Scc
をして試しても出るなら諦めてpacman.conf
のSiglevel
をNever
にします。
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
en_US.UTF-8
ja_JP.UTF-8
# Other Lang
...
locale-gen
ja_JP.UTF-8
とen_US.UTF-8
を有効にすることが多いです。
/etc/locale.conf
LANG=en_US.UTF-8
/etc/vconsole.conf
KEYMAP=jp106
ホストネーム
簡単に言うとPCのニックネームですね。
<HostName💞>
に使いたいホスト名を代入してください。
<HostName💞>
127.0.0.1 localhost
::1 localhost
127.0.1.1 <HostName💞>.localdomain <HostName💞>
Rootのパスワード
passwd
ブートローダー
直接インストールするのは良くないのでRefindを使うことを前提にしています。
refindがきれいになるのでgrubを推奨します。
Systemd-boot
[手動でエントリを追加する必要があります。その点grubは楽チン]
bootctl --path=/esp install
Grub
grub-install --target=x86_64-efi --efi-directory=/esp --bootloader-id=grub --boot-directory=/esp
grub-mkconfig -o /esp/grub/grub.cfg
ここを参考にします。
ファームウェア
exit # arch-chrootから出る
# ネットワーク
cp -n /lib/firmware/brcm/* /mnt/lib/firmware/brcm
OSインストール後の作業
ネットワーク
まずネットワーク関連。
やり方を忘れてしまったのなら、前に行ったネットワーク設定を参照してください。
# 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*
の行を消します。
下のものが完成形になります。
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
# 危険ですが、危険ですが、使いやすくなります。
echo 'ユーザー名 ALL=NOPASSWD:ALL' >> /etc/sudoers
passwd ユーザー名
Pacman関連
1: pacman.conf
を編集。
2: pacman -Syyuu
でOSのアップグレード。
mbp
repoをフェッチしていない場合、pacman.conf
をarchisoからコピーします。
mbp
の下にSigLevel = Never
を追加します。
3: yay
のインストール
su ユーザー名
$>
git clone https://aur.archlinux.org/yay-git.git ~/yay
cd ~/yay
makepkg -si
キーボード
[**]を存在するものに置き換えて下さい。
# 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
[Seat:*]
...
greeter-session=lightdm-webkit2-greeter
私の場合102行目に有りました。
ArchWiki:LightDMより
Firefoxでcaエラーが出るときは システムクロックの更新 を再度試してください。