Linux

Arch Linux 설치 가이드 3: LTS 커널과 기타 설정 마무리

카루-R 2024. 9. 30. 16:22
반응형

환영합니다, Rolling Ress의 카루입니다.

아치리눅스 설치가 모두 끝났죠. 이제는 시스템을 좀 더 편리하게 사용하고, 안정화하기 위한 작업들을 진행하도록 하겠습니다. 꼭 필요하진 않지만, 개개인에 따라 충분히 유용할 수 있는 기능들입니다. 천천히 보면서 자신에게 맞는 설정을 적용해주세요.

목차

  • LTS 커널 설치
  • 유용한 프로그램 설치
  • 기타 설정 및 프로그램
  • 유용한 설정들

LTS 커널 설정

https://kernel.org 은 리눅스 커널을 모아둔 곳입니다. 대부분의 배포판들은 리눅스 커널을 가져다가 커스텀하거나 해서 사용하죠. 아치의 경우엔 kernel.org에 있는 모든 커널을 AUR또는 기본 저장소에서 받을 수 있습니다.

Mainline은 현재 개발중인 커널입니다. 아직 안정화 전이므로 고급 사용자가 아니라면 함부로 다운받지 않는 것을 추천드립니다. AUR에 linux-mainline이라는 패키지로 들어있습니다. 이 외에도 실제로 우리가 사용하는 리눅스 커널은 stable 버전입니다. 최소한의 안정화만 거치고 Testing에서 Core 저장소로 내려옵니다. 놀랄 만큼 업데이트가 빠르죠.

조금 더 안정적인 시스템을 구축하고 싶다면, LTS 패키지를 설치하시면 됩니다.

$ sudo pacman -Syu linux-lts{,-headers}

GRUB을 사용하신다면 설정 파일만 업데이트 하면 되나, 저처럼 systemd-boot를 사용하신다면 엔트리를 새로 생성해주어야 합니다.

$ sudo cp /boot/loader/entries/arch.conf /boot/loader/entries/archlts.conf
$ sudo nano !$
## /boot/loader/entries/arch-lts.conf
title Arch Linux LTS
linux /vmlinuz-linux-lts
initrd /intel-ucode.img
initrd /initramfs-linux-lts.img
options root=UUID=XXXXXXXXXXXXXX rw

3번째 줄에서 AMD CPU를 사용하신다면 amd-ucode로 바꿔주시고, root 파티션의 UUID도 자신의 파티션에 맞게 수정해주시면 됩니다. 아마 기존 arch.conf를 복사했다면 title과 linux, initrd만 수정해주시면 될 겁니다.

$ sudo nano /boot/loader/loader.conf
## /boot/loader/loader.conf
default archlts    # 또는 @saved
timeout 0
console-mode max
editor 0

부트로더 기본값을 설정합니다. 이렇게 하면 기본값이 LTS 커널로 선택됩니다. 일반 커널로 부팅하고자 하는 경우, 전원 버튼을 누름과 동시에 스페이스바를 꾹 누르고 있으면 커널을 선택할 수 있습니다.

$ bootctl list 
$ sudo bootctl set-default archlts.conf
$ bootctl list
$ reboot

처음에는 그냥 Arch Linux가 (defualt)로 표시되어 있을 겁니다. 기본값을 다시 설정하고 확인합니다. 확인이 되었으면 재부팅합니다. 이제 linux, linux-headers 패키지를 삭제하고 systemd-boot에서 arch.conf를 삭제하면 stable 커널은 완전히 삭제됩니다.

유용한 프로그램 설치

1. The Fuck 설치

$ sudo pacman -S thefuck

명령어를 잘못 입력했을 때, 자동으로 고쳐주는 프로그램입니다. 단순한 철자오류부터 sudo를 빼먹었다든가, 이러한 상황에서 굉장히 auto correction을 잘 해줍니다.

$ fuck
$ fuck
$ source ~/.bashrc    # bash 사용시
$ source ~/.zshrc     # zsh 사용시

참고로 저 fuck은 꼭 두 번 쳐야 합니다(...) fuck을 두 번 실행시킨 후 bashrc / zshrc를 새로고침하면 사용할 수 있습니다.

pacman을 pacmna으로 잘못 입력했군요. 이럴 때 fuck을 입력해주면 됩니다. 사실 이 정도는 zsh 확장으로 자동으로 sudo를 입력해주기도 하지만, 뭐.. 저는 익숙한 거 쓰겠습니다. 이쪽이 더 손맛이 좋기도 하고요. 이 뿐만 아니라 위/아래 방향키로 다른 명령어 제안을 확인할 수도 있습니다. 올바르면 엔터 키를 눌러서 계속 진행할 수 있고, 종료하고 싶으면 ^C를 누르면 됩니다. 참.. 쓰면서 계속 정신나간 프로그램이라는 생각을 지울 수가 없네요. 심지어 정확도까지 높습니다. 이걸 잘 이용하면 Command not found 에러가 났을 때 자동으로 fuck을 실행시킬 수도 있겠네요.

2. Howdy 설치 (FaceID / Windows Hello)

$ yay -S howdy v4l-utils

macOS에 Face ID가 있고 윈도우에 Windows Hello가 있다면 리눅스에는 Howdy가 있습니다.

$ sudo nano /etc/pam.d/gdm-password
## /etc/pam.d/gdm-password
#%PAM-1.0
auth	sufficient		pam_unix.so try_first_pass likeauth nullok
auth	sufficient		pam_python.so /lib/security/howdy/pam.py

...

얼굴인식으로 잠금을 해제하고 싶다면 위 파일을 이렇게 수정합니다. 다만 이 경우 GNOME에서 Login Keyring이 언락되지 않았다면서 수시로 패스워드를 물어봅니다. 이게 조금 짜증이 나서 저는 다시 끄고 사용중입니다.

$ sudo nano /etc/pam.d/sudo

1: 비밀번호 입력 없이 처음부터 얼굴인식을 하고 싶은 경우

## /etc/pam.d/sudo
#%PAM-1.0
auth	sufficient		pam_python.so	/lib/security/howdy/pam.py

 

  위와 같이 수정하시면 됩니다. 이게 은근 쓸만합니다.

2: 비밀번호 입력에 실패하거나, 입력하지 않으면 얼굴인식을 하는 경우

## /etc/pam.d/sudo
#%PAM-1.0
auth	sufficient		pam_unix.so 	try_first_pass nullok
auth	optional		pam_permit.so
auth	required		pam_env.so
auth	sufficient		pam_python.so	/lib/security/howdy/pam.py

  위와 같이 수정하시면 됩니다. 조금 복잡합니다.

$ v4l2-ctl --list-devices

여기서 자신의 카메라를 확인해주세요. /dev/videoX인데, 저는 video0이 일반 카메라, video2가 IR 카메라였습니다. IR 카메라 번호를 기억하세요. 아시겠지만 작동시켰을 때 빨간 불이 깜박거려야 IR 카메라입니다.

$ sudo howdy config
...
# The path of the device to capture frames from
# Should be set automatically by an installer if your distro has one
device_path = /dev/videoX
...

# 또 수정하면 좋은 것들
certainty = 5
timeout = 5
dark_threshold = 80

X는 각자 디바이스에 맞게 수정해주세요.

$ sudo howdy add

얼굴을 추가하면 끝입니다.

기타 프로그램 설치

$ sudo pacman -S libreoffice-fresh gimp inkscape firefox
$ sudo pacman -S thunderbird vlc shotcut audacity virtualbox{-host-modules-arch}
$ sudo pacman -S obs-studio discord youtube-dl uget focuswriter gparted
$ yay -S google-chrome kazam timeshift (timeshift-autosnap) visual-studio-code-bin
리눅스용 프로그램
윈도우용 프로그램
리눅스용 프로그램
윈도우용 프로그램
libreoffice-fresh
Microsoft Office
gimp
Adobe Photoshop
inkscape
Adobe Illustrator
firefox
firefox
thunderbird
Microsoft Outlook
vlc
(미디어 플레이어)
shotcut
Adobe Premire Pro
audacity
(오디오 편집)
virtualbox
vmware-workstation
virtualbox
vmware workstation
obs-studio
OBS
discord
discord
youtube-dl
 
uget
focuswriter
 
gparted
diskmgmt.msc
google-chrome
Google Chrome
timeshift
(백업 프로그램)
hoffice
한컴오피스

이 외에도 kde 환경에서 사용 가능한 kdewallet이나 kdeconnect 등이 있는데, 이건 kde-applications에 함께 포함되어 있습니다.

기타 설정

1. pacman 설정

pacman은 아치리눅스의 패키지 매니저입니다. PACkage MANager의 약자이고, 특징이라면 역시 아치리눅스답게 공식 GUI 프론트엔드가 없다는 겁니다. 사용법도 dnf install, apt search 등 직관적인 다른 패키지 매니저와 달리 pacman -S, pacman -Qdtq, pacman -Rns 등 복잡한 옵션을 사용합니다. 그럼에도 불구하고, 잘만 쓴다면 엄청나게 많은 기능을 사용할 수 있습니다.

$ sudo nano /etc/pacman.conf

pacman의 설정 파일을 편집해봅시다.

Color와 VerbosePkgLists, ParallelDownloads 앞의 주석을 해제하고, 그 다음 줄에 ILoveCandy를 추가해주세요. 대소문자에 유의하시기 바랍니다. Color는 pacman 출력에서 색상을 표시하고, VerbosePkgLists는 패키지를 나열만 하는 게 아니라 각각의 사이즈, 버전 등을 표 형식으로 출력해줍니다. ParallelDownloads는 병렬로 다운로드할 패키지 개수, ILoveCandy는 '[####---]' 형태의 바가 아닌 진짜 팩맨이 움직이는 것 같은 효과를 줍니다.

$ sudo pacman -S reflector rsync
$ sudo cp /etc/pacman.d/mirrorlist{,.bak}
$ sudo reflector -c "KR" -f 7 -l 5 -n 7 --save /etc/pacman.d/mirrorlist

그리고 (1)번 글에서 했듯, reflector를 사용하여 미러리스트를 업데이트 해줍니다.

2. Fractional Scaling

>> 경고: Fractional Scailing은 꼭 필요한 경우가 아니면 사용하지 마시길 바랍니다.

GNOME이 HiDPI 지원이 잘 되기는 하는데, 문제는 100%p 단위로만 설정할 수 있습니다. 아직 정식 기능은 아니지만, 실험적으로 Fractional Scaling (=정수가 아닌 비율: 125%, 150%, 175%, ...)을 활성화할 수 있습니다. X11에서는 mutter-x11-scaling (AUR)을 설치하고, Wayland에서는 다른 설정을 조금 만져주면 됩니다.

# Wayland
$ gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"

다만 문제가 하나 있습니다. Wayland를 네이티브로 지원하는 앱들은 괜찮아요. 근데 X11 기반의 앱들은 Xorg - Xwayland - Wayland를 거쳐서 그려집니다. 이 과정에서 멀쩡히 잘 돌아가던 앱들이 Fractional Scaling을 켜기만 해도 (켠 상태에서 200% 등 정수 비율로 설정하더라도) 엄청 흐려집니다. 심지어 GParted같은 앱들도 Wayland를 지원하지 않는지 엄청 흐립니다. 그나마 다행인 건 터미널이나 기본 웹 브라우저 등 자주 사용하는 것들은 선명하게 출력됩니다. 따라서, Wayland를 지원하는 앱들은 강제로 Wayland 모드로 구동되게끔 설정해주세요.

3. 터치패드 탭, 우클릭, 스크롤

GNOME Tweaks에서 Keyboard & Mouse > Mouse Click Emulation > Area로 설정해주세요. 처음에는 Fingers로 되어 있는데, Area로 바꾸어야 왼쪽/오른쪽 클릭이 됩니다. 물리적으로 터치패드에 왼쪽/오른쪽 키가 나뉘어 있는 경우에는 이 옵션을 사용할 필요가 없습니다. 또한 두 손가락 스크롤을 사용하면 스크롤이 반대로 되는 경우가 있는데, 이것도 각 DE 설정 화면에서 변경이 가능합니다.

4. sudo 경고문 활성화

sudo를 입력할 때 항상 위와 같은 안내가 나오도록 합니다. 솔직히 전혀 필요 없는 기능이긴 한데, 멋있잖아요.

$ sudo sh -c 'echo "Defaults lecture = always" > /etc/sudoers.d/privacy'

Defaults 뒤에는 탭(\t) 입니다. 이제 앞으로 sudo를 실행할 때마다 저 경고문을 볼 수 있습니다.

5. UEFI 쉘 엔트리

$ sudo pacman -S edk2-shell
$ sudo cp /usr/share/edk2-shell/x64/Shell_Full.efi /boot
$ sudo nano /boot/loader/entries/shell.conf

systemd-boot를 사용한다고 가정합니다. 이때 UEFI 쉘을 부트 메뉴 엔트리에 추가할 수 있습니다. GRML을 실행시키거나 할 때 유용하게 쓸 수 있습니다. 마치 리눅스를 하나의 응용 프로그램처럼 실행하는 기분을 느껴보세요.

## /boot/loader/entries/shell.conf
title UEFI Shell efi /Shell_Full.efi

이렇게 하면 엔트리가 생성됩니다. 이 외에도 efifs 패키지를 설치한 뒤 드라이버 폴더를 /boot/EFI/systemd/drivers에 넣으라는 얘기도 있던데, 이것 때문인진 모르겠지만 UEFI 쉘에서 ext4 파티션에 접근이 가능했습니다. 이 부분은 문서가 없어서 시행착오를 많이 해야 할 것 같네요.

6. GRML Live Linux

문제가 생겼을 상황을 대비해서, 라이브 시스템을 컴퓨터에 내장시킬 수 있습니다. 제 경우는 종종 윈도우에서 EFI 파티션을 꼬아버려 리눅스 커널이 잘리는(...) 대참사가 종종 일어나곤 하는데, 그럴 때마다 아치리눅스 미디어에서 fsck, mount, chroot, pacman -S linux 계속 하는 게 너무 귀찮더라고요. 사실 명령어 몇 줄은 입력할 수 있어요. 문제는 그때마다 USB를 꽂아야 한다는 거.

그럴 때 쓰는 게 GRML입니다. 이건 원래 EFI 파티션에 내장해서 쓸 수 있는데, 사이즈가 좀 커서 EFI가 1GB 이상일 때만 정상적으로 동작합니다. 그게 아니라면 편법을 써야 해요. 우선 grml iso를 다운받아 루트 디렉터리에 풀어준 뒤, /grml 폴더에 vmlinuz, initrd.img, grml64-small.squashfs 파일만 남겨줍니다.

$ sudo nano /boot/grml.nsh
## /boot/grml.nsh
BLK6:\grml\vmlinuz initrd=\grml\initrd.img apm=poweroff boot=live live-media-path=\grml\ nomce net.ifnames=0

그리고 UEFI 쉘코드를 작성해줍니다.

$ sudo nano /boot/loader/entries/grml.conf
## /boot/loader/entries/grml.conf
title GRML Live Linux
efi /Shell_Full.efi
options -nointerrupt -noconsolein -noconsoleout grml.nsh

마지막으로 systemd-boot에서 엔트리를 추가해주면 됩니다.

7. 관상용 프로그램

$ sudo pacman -S cmatrix && cmatrix

해커가 되는 기분을 느낄 수 있습니다.

$ sudo pacman -S asciiquarium && asciiquarium

추가 팁

  • 가끔가다 터미널이 멈추는 경우가 있습니다. 특히 Nano를 쓰다 무심코 Ctrl+S를 눌렀을 때 발생하는데, Ctrl+Q를 누르면 해제시킬 수 있습니다.
  • 파일을 읽는 프로그램은 몇 가지가 있습니다. cat은 통째로 보여주고, less 또는 more은 한 화면에 다 나오지 않는 파일을 볼 때 유용하게 쓸 수 있습니다. 아주 짧은 파일을 잠깐 보기만 할 때, 혹은 grep을 사용할 때는 cat이 좋고, 텍스트를 읽기만 할 때는 less나 more, 편집까지 할 때는 nano나 vim이 좋습니다.
  • 제가 늘 하는 거, !$이죠. 윗 줄에서 사용한 마지막 매개변수를 그대로 사용할 때 씁니다. 이 외에도 Alt 키를 누른 상태에서 '.'을 몇 번 눌러도 비슷한 효고를 볼 수 있습니다. 만약 윗 줄 전체를 사용해야 할 때는 !!을 사용합니다.
  • 터미널에서 복사, 붙여넣기는 Ctrl+Shift+C, Ctrl+Shift+V를 사용합니다. 검색은 Ctrl+Shift+F입니다. 그냥 Ctrl+C는 프로그램을 죽여버려요.
  • 파일을 지우지 않고 비워버릴 수 있습니다. 특히 아주 큰 파일을 삭제할 때 유용합니다. 다만 파일을 잘 확인하고 사용하세요.
$ > file
 
반응형