1
0
hugo/content/blog/2024-10-29-archlinux.md
2024-12-21 23:10:54 +09:00

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
```