22.11.15
- wifi 로 설치.
- Broadcom 드라이버 사용
- 랩탑 관련 내용
등등을 추가했다.
Arch 를 설치해본 지는.. 기록에 따르면 대략 4년쯤 된 듯 하다.
그때에 비하면, 이런 저런 잡지식이 꽤 많이 늘었다. 4년 뒤에 이 글을 보면 또 그런 느낌을 받을 수 있을까.. 얼마나 많은 꽃삽질을 하는지에 달려있겠지.
갑자기 아치가 생각난 이유는.. 얼마 전 Hacker(?) 의 길을 걸은 뒤, 디스크에 자리 잡고 있던 오래된 Kubuntu 19.04 를 대체할 새 OS가 필요했기 때문이다. 처음엔 Tumbleweed 를 선택해서 설치까지 마쳤는데, rEFInd 와 살짝 문제를 보였다. 문제를 회피할 수는 있지만, 굳이 그렇게까지 하며 사용해야할 이유가 없기에, 한동안 잊고 있었던 아치 리눅스에게 기회(?)를 주기로 했다.
아무튼, 이번 글에선 자질구레한 내용은 대부분 건너 뛰고, 굵직한 내용만 간략하게 정리하기로 한다. 이렇게 할 수 있었다는 사실은, 결국 그간 배운게 많았다와 상통하겠지.
지난 번엔 여러가지 글을 참고했고, 머피 박사님 동영상도 큰 도움이 됐었지만, 이번엔 지난 번 내 글을 기본으로 아치리눅스 설치 문서를 참고했고, 그간 고군분투한 경험을 뼈대로 해서 글을 작성했다.
** 제목엔 refind 가 들어가있지만, 정작 본문에선 설치법은 언급되지 않는다. 다른 곳에서 이미 설치했다는 가정!
그래야 부트 매니저, EFI 에 대한 길고 지루한 내용을 건너뛸 수 있기에.
그럼, 시작.
!!! 주의 !!!
만약 Archlinux 를 설치할 생각이라면, 이 문서대로만 하지 말고, 반드시 아치리눅스 설치문서를 다시 한번 살펴보고, 이 문서와 바뀐 점이 있는지 확인한 후에 설치해!!! 나중에 짜증내며 똑같은 작업 다시 하길 원하지 않는다면!
설치 미디어 만들기
요즘 세상엔 USB 드라이브외에 다른 미디어를 생각하기는 어렵다. 리눅스를 접하고 나서 지금까지 이 작업엔 거의 무조건 dd
를 사용해왔다. 그런데, 아치 문서와 기타 문서를 보니, dd 는 구시대 산물이었던 모양이다.
아치에선 cat
이나 cp
심지어 tee
등을 이용하라고 권장하고 있다. 물론, dd 도 쓰지 말라고 하진 않지만.
다만, cat 이나 tee 는 redirection 을 이용하는데, sudoer 로는 이 작업을 하기가 좀 번거롭다. 꼭 하고 싶다면 sudo -i
로 바꿔서 하는게 편하다.
그냥 sudo
로 하려면 cp
나 dd
가 역시 편하다.
# cp path/to/archlinux-version-x86_64.iso /dev/sdx # dd bs=4M if=path/to/archlinux-version-x86_64.iso of=/dev/sdx conv=fsync oflag=direct status=progress
앞으론 복잡한 dd 대신 cp 에 집중해야겠다.
아래는, 모두 아치 리눅스 설치 디스크로 부팅한 다음 작업한다.
키보드 자판 설정
기본값은 영문 QWERTY 다. 드보락으로 바꾸려면,
loadkeys dvorak
인터넷 연결 / 지원되지 않는 장비(Broadcom 등)
인터넷이 안되면 설치를 할 수가 없다. (아마도..?) 아치 문서에서도 인터넷 연결을 권장(?? 필수?)하고 있다.
이더넷이라면 별 문제될게 없다. 그냥 선 꼽으면 알아서 넷웍을 사용할 수 있다. 만약 여기서 막힌다면.. 일이 복잡해진다.
Wifi 라면, iwctl 의 도움을 받아 무선랜에 연결해야한다. 여기까지도 큰 문제는 없다.
다만, 내 무선넷웍 카드가 현재 ArchLinux 설치이미지에서 지원되지 않는 장비라면?? 게다가 이더넷을 사용할 수도 없다면???
방법이 없다.
이더넷이 가능한 곳으로 이동하든가, 아니면 기본 지원이 되는 USB 랜카드(다행히 예전에 쓰던 게 하나 있었다!)를 연결한 후 작업을 진행해야 한다. 정 안되면 스마트폰 테더링을 쓸 수도 있다. 일단 인터넷이 되고 나면 Broadcom 등, 지금은 안되는 장비 드라이버를 설치할 수 있다. 즉, 설치가 모두 끝나고 부팅한 뒤에는 그 장비들을 쓸 수 있게 된다.
시스템 시계 확인
인터넷에 제대로 연결된 상태에서, 다음 명령으로 시간을 ntp 서버와 동기화시킨다.
# timedatectl set-ntp true
디스크 구획 나눔(Disk Partitioning)
새 OS 를 설치할 땐 이게 큰 문제다. 지난 번 글에서도 이 부분에 꽤 많은 내용을 할애했었는데, 이번엔 확 줄인다.
기본은 이렇다.
- 디스크 파티션 테이블 : GPT 사용 (이젠 이게 기본이다. msdos 파티션은 더 이상 쓸 일이 없다.)
- Boot Manager : rEFInd 를 사용하고, 이미 설치돼 있다고 가정. 즉, EFI 파티션 이미 존재.
- 파일 시스템 : Btrfs 사용. Sub Volume 은 적절히.
EFI 파티션이 없을 경우, FAT32 파일시스템으로 1GB 정도 되는 파티션을 만든다. 보통은 200~500MB 을 사용하긴 한다. 또, 꼭 첫번째 파티션일 필요는 없는 듯 하지만(즉, /dev/sda1 등이 아니어도 가능), 보통은 첫 파티션에 EFI 를 놓는다.
Btrfs Sub Volume
서브볼륨은, 꼭 만들지 않아도 괜찮지만, 이왕 만들 바에는 제대로 만들어보자.
우분투의 경우, root 와 home 만 서브볼륨을 사용한다. 그리고 그 상황은 대략 다음과 같다.
Btrfs 디스크를 subvolid=5
로 설정하고 마운트한 뒤 살펴보자면.. (이런 걸 Flat 형식이라한다.)
# btrfs subvolume list /mnt/aa ID 256 gen 134299 top level 5 path @ ID 257 gen 134310 top level 5 path @home
하지만, Tumbleweed 의 경우는 이 구조를 조금 더 복잡하게 세분화한다. 이런 형식을 Nested Sub volume 이라 한다.
# btrfs subvolume list /mnt/cc ID 256 gen 6452 top level 5 path @ ID 257 gen 6452 top level 256 path @/home ID 258 gen 6452 top level 256 path @/var ID 259 gen 6452 top level 256 path @/usr/local ID 260 gen 6452 top level 256 path @/tmp ID 261 gen 6452 top level 256 path @/srv ID 262 gen 6444 top level 256 path @/root ID 263 gen 6452 top level 256 path @/opt
@
를 루트로 하는 상황은 같지만, @home 을 @ 와 동일선상에 놓는 우분투와는 달리, Tumbleweed 는 @ 산하에 home, var 등을 만든다. 정확하게는 @/home, @/var 등. 이렇게 되면 이게 서브볼륨인지 서브디렉토리인지 눈으로는 구분이 되지 않는다.
이런 식으로 서브볼륨/디렉토리를 만들면, 서브볼륨과 서브디렉토리 구조가 동일해서 파악이 쉽기도 하고, 또 그 결과로 snapshot
을 뜰 때도 불필요한 위치를 쉽게 제외할 수 있는 장점도 있다.
또, chroot
시에 따로 하나씩 마운트하지 않아도 된다는 게 뭐니 뭐니 해도 가장 좋은 점이랄까.
여기에, Tumbleweed 는 더더욱 강력(?)하게, set-default
까지 구현해 놓았다.
# btrfs subvolume get-default /mnt/cc ID 256 gen 6452 top level 5 path @
이 방식을 쓰면, rEFInd 에서 따로 손을 봐 줄 필요가 없다. 다만, 이게 쓰였는지 모르는 상황이라면, 파티션 구조를 파악하기까지 시간이 좀 걸린다는 단점도 있다.
하여, Tumbleweed 방식을 그대로 가져와서 서브볼륨을 만들어보도록 한다.
다만, 다들 쓰는 @ 에서 벗어나서, 나름대로 새로운 서브 볼륨이름을 주기로 해본다.
그 결과는 대략 이렇다.
# btrfs subvolume list /mnt/dd ID 256 gen 583 top level 5 path root_of_arch ID 258 gen 583 top level 256 path root_of_arch/var ID 259 gen 490 top level 256 path root_of_arch/root ID 260 gen 566 top level 256 path root_of_arch/opt ID 263 gen 490 top level 258 path root_of_arch/var/lib/portables ID 264 gen 490 top level 258 path root_of_arch/var/lib/machines
@
대신 root_of_arch
라는 서브볼륨을 만들었고, 그 산하에 var
, root
등을 만들었다.
또, home 디렉토리는 다른 디스크에 이미 사용하던 장소가 있으므로, 거기를 그냥 사용하기로 한다.
서브볼륨을 만드는 방법은 따로 기록하지 않는다. 다만, NoCow 나 압축 문제등, 신경써야할 부분은 있다. 특히나 /var
에는 NoCow 를 사용하는 편이 좋다고는 한다.
그러나.. 당장은 그리 복잡하게 사용할 생각은 없으므로..
적당히 파티션 작업을 해주고 마친다.
Swap file, partition?
커널 5 부터였나, Btrfs 에서도 스왑파일을 사용할 수 있다. 그러나, 역시 NoCow, 압축등을 신경 써 줘야한다.
이런게 귀찮고 복잡하다면, 그냥 스왑파티션을 쓰면 된다.
만약 다른 시스템과 공유하는 스왑파티션이 있다면 그걸 그냥 추가해주면 된다.
# swapon /dev/sdXY
만약 스왑파티션이 없다면, 적절한 크기로 파티션을 만들고, 다음 명령으로 초기화를 해준다.
# mkswap /dev/sdXY
root 디렉토리 구성
Tumbleweed 식으로 했다면 그냥 root 서브볼륨을 /mnt
로 마운트 해주면 된다.
만약, / 와 home, var 등을 평행(Flat)하게 만들었다면(우분투가 취한 방식), /mnt 로 마운트할 때 좀 더 복잡하게 해줘야 한다. 비슷한 방식을 우분투 서버 Btrfs 설치에서 찾아볼 수 있다.
간단히 말하자면, 먼저 root 서브볼륨을 /mnt 마운트 한 뒤, 각각 해당 디렉토리에(예를 들어 /home 은 @home 서브볼륨으로.. 등등) 적절한 서브볼륨을 마운트시켜줘야 한다.
최초 설치 시 한번만 해주는 일이긴 해도, 손으로 하나 하나씩 해주기엔 너무 번거로운 일이다.
따라서 Nested 방식을 택했다.
위에서 언급했지만, 이미 EFI 파티션및 부트 관리자는 존재한다는 가정이므로, /boot/efi 는 따로 고려할 필요가 없다.
시스템에서 /(root 디렉토리)로 사용할 파티션을 적절한 곳에 마운트한다. 꼭 /mnt 가 아니고 /target 등도 된다. 여기선 그 파티션이 /dev/sda3 라고 가정한다.
# mount /dev/sda3 /mnt -o subvol=archlinux_root
그래도 혹시나 하여.. /boot 를 따로 만들었다면, /boot 도 마운트 해줘야 하고, EFI 설치가 필요하다면, 역시 따로 마운트 해줘야 한다.
아래는, /boot 를 /dev/sda2 에, EFI 를 /dev/sda1 에 설정했다고 가정했다.
# mkdir /mnt/boot # mount /dev/sda2 /mnt/boot # mkdir /mnt/boot/efi # mount /dev/sda1 /mnt/boot/efi
또, /home 을 다른 드라이브나 서브볼륨을 사용하기로 했다하더라도, 지금 여기서는 굳이 /mnt 밑에 마운트할 필요는 없다. Arch 는 Ubuntu 등과는 달리 설치시에 일반 사용자 계정을 만들지 않으므로, 당장은 필요하지 않다.
마지막으로, 위에서 하지 않았다면 swap 도 제대로 설정.
# swapon /dev/swap_partition
미러 선택?
/etc/pacman.d/mirrorlist
를 편집해서 대한민국 서버를 선택하는게 좋다. 다른 컴퓨터에서 미러 사이트를 열고 참고한 뒤 그대로 넣으면 된다. (근데 긴 주소를 어떻게 쳐넣냐..?) 이를 위해서 텍스트 웹브라우저 elinks 등을 사용해도 된다고 하는데.. 어려우면 그냥 기본값 그대로.
설치 및 설정
기본 파일(꾸러미) 복사
/mnt 디렉토리로 기본 파일을 복사한다!
# pacstrap -K /mnt base base-devel linux linux-firmware dhcpcd iwd(wifi 를 사용하는 경우)
예전엔 base
꾸러미만 설치해주면 됐는데, 이젠 linux
와 linux-firmware
까지 필요해졌다.
만약 피가 뚝뚝 떨어지는(?) 신선한 커널이 아닌 lts 를 선호한다면, linux
대신 linux-lts
를 택한다.
아래 문제는 22.11 현재 해결되었음!** 블루투스를 써야한다면 lts!
현재 5.15 커널에선 블루투스 문제가 발생한다.
피해가는 방법은 찾질 못했고, 대신 lts 를 쓰면 해결된다.
다만, lts 를 설치하면 nvidia-lts
도 설치해야 하고, refind 도 손을 봐줘야만 한다.
** dhcpcd ?
아치 문서에는 이 내용이 없다. 꽤 중요한 사항인데 왜 빠져있는지.. dhcpcd
를 설치하지 않으면 넷웍이 불가능해진다. 엄밀히 말해 가능은 하지만, 수동으로 IP 를 설정해줘야 한다. (안되는 거나 마찬가지..)
만약, dhcpcd 를 여기서 설치하지 않았고, 이후 부팅한 ArchLinux 에서 넷웍을 사용할 수 없게 됐다면, 다시 설치 디스크로 부팅한 다음 mount/arch-chroot 작업을 반복하고, pacstrap 으로 dhcpcd 만 설치해주면 된다.
** iwd
wifi 로 설치한다면, 설치가 끝나고 ArchLinux 로 부팅했을 때 역시나 넷웍을 사용할 수 없는 문제에 빠진다. 이더넷이 없는 환경이라면 반드시 iwd 꾸러미를 설치해줘야 itwctl
로 wifi 를 사용할 수 있게 된다.
fstab 설정
다음 명령을 내려 현재 디스크 상태를 시스템 fstab 으로 복사한다.
# genfstab -U /mnt >> /mnt/etc/fstab
저 파일을 열고, 이상이 없는지 확인한다.
만약, /home 등을 추가할 필요가 있다면, 지금 넣어준다.
이제, chroot(arch-chroot)
을 써서 몇가지 세부 설정만을 해주면 이 작업의 끝을 볼 수 있게 된다.
arch-chroot 및 세부 설정
chroot
# arch-chroot /mnt
그냥 chroot 명령도 있는데, 이렇게 하게되면 /proc, /sys, /dev 등도 따로 mount(bind) 해줘야 한다. 아마도 arch-chroot 은 이 작업들을 자동으로 해주는 듯 하다.
아래 명령은 모두 chroot 이후에 수행한다.
시간대 설정
# ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime # hwclock --systohc
Locale 설정
/etc/locale.gen
을 편집하여, en_US.UTF-8
와 ko_KR.UTF8
을 주석해제하고, locale-gen
실행.
locale-gen
/etc/locale.conf
을 편집(없으면 생성)하여, 다음 행을 추가.
LANG=en_US.UTF-8 LANG=ko_KR.UTF-8
자판 설정
/etc/vconsole.conf
을 편집(생성)하여, 드보락 키보드 추가.
KEYMAP=dvorak
호스트명 설정
/etc/hostname
을 편집/생성하여, 적절한 호스트명을 명명.
Initramfs?
mkinitcpio
는 굳이 하지 않아도 된다.
root 사용자 비밀번호
passwd
명령으로 비밀번호를 생성한다.
(Broadcom) 드라이버 설치
위에서 언급했듯, 현재 설치 이미지에서 지원되지 않는 장비라고해서, 아치리눅스에서 사용하지 못하지는 않는다. 하지만, 넷웍 카드가 안된다면, 지금 이 상황에서 드라이버를 설치해야 정상 부팅한 후에 카드를 쓸 수 있게 된다. (이 작업을 건너뛰었다면, 다시 설치 드라이브로 부팅한 뒤, mount/arch-chroot 작업을 반복해야 한다.)
브로드컴 와이파이 드라이버는 2개가 있는 모양인데, 이 중 broadcom-wl-dkms
가 커널에 의존하지 않는 형식(kernel agnostic)이라고 한다. 따라서 이게 더 나은 선택으로 보인다.
pacman -S broadcom-wl-dkms linux-headers
블루투스를 위해선 또 다른 파일이 필요하다. 이건 다른 글에서.
Bootloader/Microcode
위에서 이미 refind 는 설치돼 있다고 전제했으므로 설치는 넘긴다.
다만, boot/refind_linux.conf
는 이런 식으로 설정해야 한다.
"Boot with standard options" "root=UUID=xxxx rw quiet vt.handoff=7 initrd=boot\intel-ucode.img initrd=boot\initramfs-%v.img" "Boot with debug options" "root=UUID=xxxx ro quiet vt.handoff=7 systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M printk.devkmsg=on enforcing=0 initrd=boot\initramfs-%v.img" "Boot to single-user mode standard options" "root=UUID=xxxx rw quiet vt.handoff=7 initrd=boot\initramfs-%v.img single" "Boot with minimal options" "root=xxxx rw initrd=boot\initramfs-%v.img"
만약, linux
커널만 설치했다면, boot\initramfs-%v.img
는 필요없다. lts 를 설치했다면 반드시 넣어줘야 한다. 이 내용은 다른 문서에 정리돼 있다.
중요한 건 Microcode 인데.. 이건 꼭 이 단계에서 해줄 필요는 없고, 나중에 정식 부팅 후에 해줘도 된다.
아치 문서를 따라 설치하고, 설치 후에는 refind_linux.conf 에 initrd=boot\intel-ucode.img
(또는 amd) 를 넣어줘야 한다. 단, 위에서 처럼 initrd 를 2회 이상 사용한다면, 마이크로코드를 제일 처음에 넣어줘야 한다.
** Microcode 가 제대로 올라갔는지 확인?
$ journalctl -k --grep=microcode 9월 27 22:41:27 Generousarch kernel: microcode: microcode updated early to revision 0xf0, date = 2021-11-15 9월 27 22:41:27 Generousarch kernel: SRBDS: Mitigation: Microcode 9월 27 22:41:27 Generousarch kernel: microcode: sig=0x906ea, pf=0x2, revision=0xf0 9월 27 22:41:27 Generousarch kernel: microcode: Microcode Update Driver: v2.2.
맨 첫 행(microcode updated early to …)이 표시된다면 제대로 설치됐다고 볼 수 있다고 한다.
둘째 행은 SRBDS 위협이 처리되었음을 보여준다.
나머지 행들은 그냥 기본값(?)이라고 한다. 설치하나 안하나 그냥 나온다.
이걸로 끝. 이제 Arch Linux 로 부팅할 수 있는 상태가 됐다.
이하는 설치 미디어가 아닌, 본체로 부팅한 다음 진행한다.
dhcpcd.service!!
root 로 로그인한 후, 제일 먼저해야할 작업은 dhcpcd.service start 다.
systemctl start dhcpcd
이걸 하지 않으면, 넷웍이 제대로 설정되지 않아 아래 작업이 불가능하다.
이더넷이라면 그냥 랜선을 연결만 하면 되겠지만, 만약 wifi 라면, iwctl 이 다시 한번 필요하다.
iwctl: Waiting for IWD to start..?
iwctl 을 실행했는데 이런 문구가 나온다면, iwd 서비스를 실행해줘야 한다.systemctl start iwd.service
KDE Plasma 설치
KDE 설치는 It’s FOSS 의 도움을 받았다.
시스템 부팅 후, 일단은 root 로 로그인 한다. (아직 사용자를 추가하지 않았으므로 그럴 수밖에 없다.)
일반 사용자 추가
현재 root
가 유일한 사용자이므로, 일반 사용자를 추가하고, password 역시 부여한다.
# useradd -m nemonein # passwd nemonein
** KDE Neon 과 디렉토리를 공유한다면..?
KDE Neon 이 왜 그런지는 모르겠지만, 지금까지 써왔던 리눅스 배포판 중, 유일하게 gid
를 1000 이 아닌 1001 로 설정한다. 1000은 sambashare 차지다. 따라서 같은 디렉토리를 마운트해서 사용한다면, gid 가 다르기 때문에 사용자명이 아니라 그냥 1000/1001 로 표시된다.
그대로 써도 되긴 하지만.. 어느 한쪽을 바꿔주든가, 양쪽을 모두 동일하게 바꿔주든가 해야 눈이 편해진다.
gid 를 바꿔준 뒤에는, 일반 사용자를 이 그룹에 참여하게끔 바꿔줘야 한다. 간단하게 /etc/passwd
에서 gid 항목을 바꿔줄 수 있다.
일반 사용자에게 관리자 권한을 부여하여, sudoer 로 만든다. (더불어 vim 도 설치)
pacman -S sudo vim
visudo
를 사용하여 사용자를 sudoer 로 추가.root ALL=(ALL) ALL
아래에 사용자명 ALL=(ALL) ALL
과 같이 추가한다.
EDITOR=vim visudo # 추가 nemonein ALL=(ALL) ALL
또, wheel
그룹을 활성화한 후 현 사용자를 wheel 그룹에 참가시켜야 KDE 관리자 권한을 승인해줄 수 있다.
역시 visudo
에서 수정해줘야 한다. 기본값으로 주석처리가 되어 있는데, 주석을 지운다.
%wheel ALL=(ALL) ALL
마지막으로, 현재 사용자를 wheel 그룹에 추가.
sudo usermod -aG wheel nemonein
이제, KDE Partition Manager 등, 관리자 권한이 필요한 프로그램을 실행할 때 현 사용자 ID 의 password 로 root 권한 취득이 가능해진다.
root id 사용 불가능하게.
Ubuntu 나 기타 다른 배포판들처럼, root 로는 로그인이 되지 않게끔 바꿔준다.
이 내용은 Arch 문서에도 있고, 나도 정리한 적이 있다.
sudo passwd -l root
KDE Plasma 설치
Wayland 는 말고, 그냥 X 로만 설치한다.
# pacman -S xorg plasma-meta kde-applications noto-fonts-cjk noto-fonts-emoji packagekit-qt5
아치 문서 첫 항목에서 plasma-meta 를 언급하고 있다. plasma-meta 와 plasma 가 있는데, 흠.. 차이는 세세한 설정을 하느냐, 아니면 그냥 뭉뚱그려 설치하느냐에 있는 듯. 그냥 메타를 선택했다. 메타는 결국 사용자로 하여금 이런 저런 몇가지 결정을 하게끔 하는데, 적절히 골라주면 된다. 잘 모르겠다면 default 로.
다만, pipewire 관련, wireplumber 를 택하는게 좋다.
packagekit-qt5 는, KDE Plasma 꾸러미 관리자인 Discover 에서 아치 꾸러미를 볼 수 있게 해준다.
나눔 글꼴은 꾸러미로 제공되지 않는 듯 하다.
대신 AUR 로 설치는 가능한데, 글꼴이 있다면 그냥 복사해줘도 될 듯.
** 글꼴 위치
예전엔 ~/.fonts
에 넣어주면 됐었지만, 지금은 ~/.local/share/fonts
라고 한다.
아울러, 요즘은 거의 필수로 사용되는 noto-fonts-emoji
도 기본 설치해주는게 좋다. 이게 없으면, 크로뮴계열에선 글꼴이 네모로 표시되는 경우가 있다. 난 하키 모양이 제대로 표시되지 않아서 알게됐다. (또는, 유튜브에 가도 무수한 네모를 볼 수 있다.) 이상하게도, 파이어폭스에선 저 글꼴 설치없이도 제대로 나왔다. (참고로, 저 문자는 U+1F3D2
로 입력할 수 있다.)
** Noto 글꼴 처리
저대로만 설치하면 의존성 문제로 noto 글꼴(cjk 말고)이 자동 설치된다. 세상 온갖 언어를 한두 꾸러미에 모두 욱여넣다보니 글꼴을 고를 일이 있을 때 너무나도 긴 목록 때문에 짜증날 때가 있다. 이럴 때를 위해, 이 글꼴들을 적절히 안보이게 처리할 수 있다.
설치가 끝나면 다음 두 서비스를 자동실행되게끔 해줘야 GUI 로 바로 진입 가능해진다.
# systemctl enable sddm.service # systemctl enable NetworkManager.service
NVDIA 드라이버 설치및 설정
설치한 커널에 따라 적절한 nvidia 꾸러미를 선택한다. linux
에는 nvidia
를, linux-lts
에는 nvidia-lts
를.
sudo pacman -S nvidia sudo pacman -S nvidia-lts
nvidia-settings 를 실행하고, Force Composition Pipeline 등을 설정한 후, Save to X Configuration File 로 X 설정을 저장할 필요가 있는데.. 이게 권한 문제로 원활히 되질 않는다.
기본값은 /etc/X11/xorg.conf
인데, 여기로는 저장이 안된다. 우분투 계열에서는 이럴 때 패스워드를 입력한 뒤 권한 상승이 되게끔 해놨는데, 아치에선 그게 되지 않는다. 되게끔 하는 방법도 있을텐데.. 잘 모르겠다.
따라서, 그냥 일단 아무데나 저장을 한 뒤, 다음 위치로 옮긴다.
sudo cp ~/xorg.conf /etc/X11/xorg.conf.d/20-nvidia.conf
예전엔 xorg.conf 로 저장했으나, 최근엔 저 위치에, 저런 파일명을 권장한다고 한다.
그 외 몇가지 더.
- 수직주파수(Reflesh Rate) : 적어도 내가 해본바에 따르면, nvidia-settings 에서 지정한 주파수는 저장이 되지 않는다. KDE 설정 – 디스플레이 설정 에서 해줘야 한다.
- HiDPI 및 다중 모니터 환경 : HiDPI 도 역시 KDE 설정에서 해야 한다. 다만, 다중 모니터 환경에서 서로 해상도가 다를 때, X 는 달리 지정이 불가능하다. 편법(xrandr)으로 할 수는 있는데.. 며칠 써보고는 있지만 이렇게해야할지 좀 애매하다. 다른 글에서 정리할 수 있길.
SDDM 자판 설정
SDDM 로그인 화면에서 기본값인 US QWERTY 로만 비밀번호를 입력할 수 있게 돼 있다.
이걸 원하는 자판으로 바꿔주려면,
sudo localectl set-x11-keymap 'dvorak'
이렇게 하면 된다.
이 내용 역시 Arch 문서에서.
ssh 로그인 자동화
이전에 쓴 글 하단 참고.
소리가 나지 않는다?
위에서 plasma-meta
를 선택했다면, 하위 의존성으로 인해 pipewire
가 설치된다. 복잡한 문제는 넘기고, 이건 결국 pulse audio 를 대체하는데, 아직 완전하지는 못한 모양이다. (대체라기보다는 상위 개념이라고 보는게 맞을 듯?)
아무튼, 음향 재생에 문제가 없다면 그냥 넘겨도 되지만, 문제가 있다면, pipewire-pulse 를 설치해야만 한다.
sudo pacman -S pipewire-pulse # 이후, systemctl --user enable pipewire-pulse
이 내용은 바로 아래와 연결된다.
영상/소리(유튜브 등) 재생에 문제가?
위에서 처럼, 아예 소리가 나지 않거나, 영상 재생에 문제가 있다면, 피같은 꽃삽질기 참고.
해법은 역시 pipeware-pulse
설치다.
블루투스 설정
다른 글 참고하여 설치/설정.
블루투스 인식문제(커널 5.15 초반 대에서 블루투스 인식 문제가 있었다. 22년 9월 현재 이 문제는 없다.)- 설정
- 여러 OS 에서 블루투스 기기 공유
LTS 커널(첫 항목과 마찬가지로, 22년 9월 현재 블루투스와는 관계없다.)- Intel Wifi/Bluetooth 카드에서 블루투스 헤드셋이 제대로 작동하지 않을 때
REISUB 설정
우분투에는 이 값이 176 으로 설정되어 있는데, 아치에는 16 이다.
$ cat /proc/sys/kernel/sysrq 16
이 상태에서는 재부팅이 되지 않는다.
우분투와 같은 상태로 만들고 싶다면, 다음을 /etc/sysctl.d/90-magic-sysrq.conf
에 저장한다.
kernel.sysrq = 176
우분투에선 /etc/sysctl.d/10-magic-sysrq.conf
이었는데, 여기선 90 으로 바뀌었다.
이유는 아치 문서에 나와있는데, 간단히 정리하면 이렇다.
아치에선 /usr/lib/sysctl.d, /etc/sysctl.d 이 두 디렉토리를 systemd 설정파일 보관소로 사용한다. 두 디렉토리간 우선순위가 있지는 않은 듯 하다. 다만, 먼저 설정된 값이 나중에 설정된 값에 의해 지워지는 형식을 갖고 있다.
기본값이던 kernel.sysrq = 16 은 /usr/lib/sysctl.d/50-default.conf
에 명시돼 있다. 이 값을 176 으로 바꾸기 위해선, 저 파일을 직접 수정하는게 아니고, 50 보다 큰 값으로 대체(Overriding)하는 방식이 권장된다.
따라서, 90 이나, 99 등 50보다 큰 번호를 붙이고, /etc/sysctl.d 에 넣어주면, 나중에 설정한 값이 효력을 갖게 된다.
시스템 벨 설정
여기를 참고하여.. xset b off
를 .xprofile
에 추가.
구글 크롬, vim 등 설치
자유로운(?) ArchLinux 는, 기본 저장소에 구글 크롬을 보유하고 있질 않다. 저작권 문제가 있는지는 모르겠으나..
이를 위해선 사용자 저장소를 추가해줘야 한다. aur 도 있긴 한데, 자동 판올림을 위해선 저장소 추가가 좋다.
herecura 저장소는 꽤 유명한 곳으로 보이는데, 상당히 많은 꾸러미가 관리되고 있다.
저장소를 추가하려면 /etc/pacman.conf
에 다음 내용을 덧붙인다.
# vim, google-chrome 등등 [herecura] Server = https://repo.herecura.eu/$repo/$arch
이렇게 추가한 사용자 저장소와, 공식 저장소간 꾸러미 충돌이 있을 수도 있다. 즉, 같은 이름 꾸러미가 여기에도 저기에도 있을 수 있다는 얘기인데, 이럴 때는 pacman.conf 상위에 위치한 곳에 있는 꾸러미가 설치된다고 한다.
sudo pacman -Sy google-chrome gvim
gvim 을 쓸 생각은 아니지만, 터미널에서 vim 을 쓸 때 글자 복사 문제(이건 좀 더 공부가 필요..)때문에 gvim 을 설치해야만 했다.
Wine
공식 꾸러미로는 wine-staging 밖에 없다. stable 은 aur 로 있긴 한데, 현재 빌드에 문제가 있다. 바로 잡을 방법은 있는 모양이지만, 괜히 건드리기도 귀찮고 해서, 그냥 staging 으로 간다.
먼저 multilib 저장소를 열어주고, wine 꾸러미를 설치하면 된다. 문서에는 Wine Stable 과 Wine Staging 으로 나뉘어 있다고 되어 있지만, 현재(22.01) Wine 은 Wine Staging 과 동일하다.
끝?
아직.. 계속 추가될 예정. 다음 예정은 aur 내용 정리.