165 lines
3.9 KiB
Markdown
165 lines
3.9 KiB
Markdown
|
+++
|
||
|
date = "2024-10-29"
|
||
|
tags = ["arch", "macbook"]
|
||
|
title = "macbook air(intel)にarchlinuxをinstallした"
|
||
|
+++
|
||
|
|
||
|
いよいよm1の前に使っていたmacbook air(intel)の使い道がなくなっていたので、archをinstallすることにしました。例えば、homebrewはmac-intelのsupportを打ち切っています。packageのinstallはbuildが必要になり、現実的使用が困難です。
|
||
|
|
||
|
私がapple製品を買うのはハードがいいからです(長持ちです)。ただし、バッテリーは何度か交換しています。
|
||
|
|
||
|
しかし、近年は少し事情が変わってきました。apple製品を買うならgpuを買ったほうがいいかもしれません。私ならそうします。
|
||
|
|
||
|
## install
|
||
|
|
||
|
installは簡単で`/`にpacstrapでarch(linux,base)を入れること。bootを設定することです。grubが簡単なのでgrubを使用します。bootloaderは起動時にlinux.imgを実行したり選択するものです。
|
||
|
|
||
|
```sh
|
||
|
$ fdisk -l
|
||
|
/dev/nvme0n1p1
|
||
|
/dev/nvme0n1p2
|
||
|
|
||
|
$ mkfs.vfat /dev/nvme0n1p1
|
||
|
$ mkfs.ext4 /dev/nvme0n1p2
|
||
|
$ mount /dev/nvme0n1p2 /mnt
|
||
|
$ mkdir -p /mnt/boot/efi
|
||
|
$ mount /dev/nvme0n1p1 /mnt/boot/efi
|
||
|
$ pacstrap /mnt base linux grub efibootmgr
|
||
|
$ arch-chroot /mnt
|
||
|
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub
|
||
|
$ grub-install --force /dev/nvme0n1p1
|
||
|
$ grub-mkconfig -o /boot/grub/grub.cfg
|
||
|
$ passwd
|
||
|
$ useradd -m -g wheel -s /bin/bash ${username}
|
||
|
$ passwd ${username}
|
||
|
```
|
||
|
|
||
|
```sh
|
||
|
$ pacman -S base-devel zsh git vim tmux sudo dhcpcd openssh
|
||
|
$ systemctl enable dhcpcd
|
||
|
$ systemctl enable sshd
|
||
|
$ chsh -s /bin/zsh
|
||
|
```
|
||
|
|
||
|
## network
|
||
|
|
||
|
`dhcpcd`を使う方法と`systemd-networkd`を使う方法があります。基本的にどのlinuxもdhcpcdを入れておりnetworkを設定しています。
|
||
|
|
||
|
まずkernelで自動設定されるインターフェイス名を`eth0`などに戻しましょう。
|
||
|
|
||
|
```sh
|
||
|
$ ip route show
|
||
|
enp0s12 192.168.1.23
|
||
|
```
|
||
|
|
||
|
```sh
|
||
|
# 伝統的な名前を使う
|
||
|
$ mkdir -p /etc/systemd/network/99-default.link.d
|
||
|
$ vim /etc/systemd/network/99-default.link.d/traditional-naming.conf
|
||
|
[Link]
|
||
|
NamePolicy=keep kernel
|
||
|
|
||
|
# こちらの方法も使える
|
||
|
$ ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
|
||
|
```
|
||
|
|
||
|
### dhcpcd
|
||
|
|
||
|
> /etc/dhcpcd.conf
|
||
|
|
||
|
```sh:/etc/dhcpcd.conf
|
||
|
interface eth0
|
||
|
static ip_address=192.168.1.23/24
|
||
|
static routers=192.168.1.1
|
||
|
static domain_name_servers=192.168.1.1 1.1.1.1
|
||
|
```
|
||
|
|
||
|
### systemd-networkd
|
||
|
|
||
|
```sh
|
||
|
$ systemctl disable dhcpcd
|
||
|
$ vim /etc/systemd/network/eth.network
|
||
|
```
|
||
|
|
||
|
```sh:/etc/systemd/network/eth.network
|
||
|
[Match]
|
||
|
Name=eth0
|
||
|
|
||
|
[Network]
|
||
|
Address=192.168.1.23/24
|
||
|
Gateway=192.168.1.1
|
||
|
DNS=192.168.1.1
|
||
|
```
|
||
|
|
||
|
```sh
|
||
|
$ systemctl enable systemd-networkd
|
||
|
```
|
||
|
|
||
|
なお、デバイスによってはこの方法で接続できない場合があります。その場合は`dhcpcd`が有効です。
|
||
|
|
||
|
nameserverは`/etc/resolv.conf`を見てください。
|
||
|
|
||
|
## ssh
|
||
|
|
||
|
次にsshで接続する方法です。
|
||
|
|
||
|
```sh
|
||
|
# 接続する側
|
||
|
$ ssh-keygen -f ~/.ssh/archlinux
|
||
|
$ ssh-copy-id -i ~/.ssh/archlinux.pub ${username}@192.168.1.23
|
||
|
|
||
|
# 接続される側:archlinux
|
||
|
$ vim /etc/ssh/sshd_config
|
||
|
PasswordAuthentication no
|
||
|
|
||
|
$ systemctl restart sshd
|
||
|
```
|
||
|
|
||
|
```sh
|
||
|
$ ssh ${username}@192.168.1.23
|
||
|
```
|
||
|
|
||
|
## xorg
|
||
|
|
||
|
デスクトップ環境の構築です。
|
||
|
|
||
|
```sh
|
||
|
$ pacman -S tilix xterm zsh git tmux chromium otf-ipaexfont i3 xorg xorg-xinit pcmanfm lightdm lightdm-gtk-greeter
|
||
|
```
|
||
|
|
||
|
```sh
|
||
|
# autologin
|
||
|
$ groupadd -r autologin
|
||
|
$ gpasswd -a $USER autologin
|
||
|
$ vim /etc/lightdm/lightdm.conf
|
||
|
[Seat:*]
|
||
|
pam-service=lightdm
|
||
|
pam-autologin-service=lightdm-autologin
|
||
|
autologin-user=${USER}
|
||
|
autologin-user-timeout=0
|
||
|
session-wrapper=/etc/lightdm/Xsession
|
||
|
autologin-session=i3
|
||
|
```
|
||
|
|
||
|
```sh
|
||
|
$ systemctl enable lightdm
|
||
|
```
|
||
|
|
||
|
## displayが暗くならないようにする
|
||
|
|
||
|
```sh
|
||
|
$ vim ~/.xinitrc
|
||
|
xset s off -dpms
|
||
|
```
|
||
|
|
||
|
## 蓋を閉じてもsleepしないようにする
|
||
|
|
||
|
> /etc/systemd/logind.conf
|
||
|
|
||
|
```sh:/etc/systemd/logind.conf
|
||
|
HandleLidSwitch=suspend
|
||
|
HandleLidSwitchExternalPower=ignore
|
||
|
HandleLidSwitchDocked=ignore
|
||
|
```
|
||
|
|