Dell Latitude E7240 Archlinux 설치하기

맥북 프로 키보드에 불만족스러워서 그런지 회사에서도 미팅 때마다 사람들이 들고 들어온 노트북을 계속 눈여겨 보게 되었다. 3년 전까지는 델 납품을 받았는데 그 이후로는 레노보를 사용하고 있어서 Dell Latitude랑 XPS, Lenovo Thinkpad 13, Thinkpad T740, 요가 시리즈 정도를 대부분 들고 다녔다. Acer 쓰는 사람도 좀 있었고. 그 중에 sysadmin 하는 분들이 노트북에 리눅스 설치하고 다니는거 보고는 나도 하나 그런 노트북 있으면 좋겠군 싶어서 검트리에서 적당한 가격에 이것저것 설치하고 놀 수 있는 노트북을 찾고 있었다.

그러다가 Dell Latitude E7240를 $100에 구입했다. 원래 $150에 구입하기로 했고 판매자가 보기로 한 장소에 나갔는데 판매자가 약속을 잊었다고 미안하다고 할인해주고 다음 날 집 앞으로 가져다줬다. 40도 넘는 더위를 뚫고 갔다가 돌아오는게 좀 짜증나긴 했지만 역시나 막상 받고나니 다 기분이 풀렸다.

구입한 모델은 i3긴 했지만 8GB 램에 128GB SSD였다. 좀 지난 모델이긴 하지만 울트라북이고 가벼워서 만족스러웠다. $300에 구입했던 인스피론보다 훨씬 안정적이고 빨라서 너무 만족스럽다. TN 패널인게 아쉽지만 찾아보니 IPS로도 모델이 있길래 교체에 문제가 없을 것 같아 IPS 패널도 하나 주문했다.

그런 후에 무슨 배포판을 설치할까 고민했다. 뭘 설치할 일이 있으면 늘 고민 없이 우분투를 설치했었다. Archlinux 좋다는 얘기를 계속 듣기도 했고 arch를 사용하지 않아도 그 위키에서 도움을 받은 적이 많아서 이번엔 arch를 설치하기로 했다. lxde나 그놈을 사용했는데 KDE로 설치해보기로 했다.

Archlinux는 위키에 모든 단계가 잘 정리되어 있어서 따라하기만 하면 된다! 는 생각보다 좀 환상이었다. 설치하기 위해서는 이거 이거 보면 된다 그러고 링크를 누르면 또 엄청난 분량의 설명이 나온다. 그래서 설치하면서 했던 단계를 간단하게 정리했다. 기본적으로는 설치 가이드와 동일하다.

설치 전

archlinux iso를 받아서 usb에 설치한다. Etcher를 사용하면 손쉽게 이미지를 usb에 넣을 수 있다. 이 usb를 노트북에 꽂고 부팅한다. bios에서 부팅 순서를 확인하고 usb를 가장 먼저 읽도록 설정한다.

부팅이 다 되면 root 계정에 로그인 된다. 먼저 인터넷을 연결한다. wiki 설치 안내에서는 안나오는데 wifi 접속할 수 있는 dialog 스크립트를 제공한다.

# wifi-menu

만약 wifi 드라이버를 인식하지 못하면 스크립트가 동작하지 않는데 그럼 위키에서 설명하는 방식 따라서 직접 연결해야 한다.

파티션 설정은 cfdisk 또는 fdisk를 사용한다.

# cfdisk

내 경우에는 sda1 (bootable), sda2 (50GB, home), sda3 (4GB, swap)으로 설정했다.

# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/sda2
# mkswap /dev/sda3
# swapon /dev/sda3

드라이버를 마운트한다.

# mount /dev/sda1 /mnt
# mkdir /mnt/home
# mount /dev/sda2 /mnt/home

설치

본격적인 설치 전에 가까운 미러 서버를 선택한다. /etc/pacman.d/mirrorlist 열어서 가까운 서버를 최상단으로 옮긴다. 내 경우는 swin.edu.au를 가장 위로 올렸다.

이제 호스트 드라이브에 리눅스를 설치한다.

# pacstrap /mnt base base-devel

설정한 디스크 설정을 호스트 드라이브에 저장한다.

# genfstab -U /mnt >> /mnt/etc/fstab

chroot로 호스트에 접속한다.

# arch-chroot /mnt

일단 사용에 필수적인 패키지를 설치한다. vim은 필수고, wifi_menu는 dialog에 의존성이 있고 WPA를 사용하면 wpa_supplicant도 설치해야 한다.

# pacman -S vim wpa_supplicant dialog

이제 타임존 설정이 필요하다. /usr/share/zoneinfo/ 안에 적합한 타임존을 찾아서 링크를 추가한다.

# ln -sf /usr/share/zoneinfo/Australia/Melbourne /etc/localtime

하드웨어 시간을 맞춘다.

# hwclock --systohc --utc

로케일을 설정한다.

# locale-gen
# echo LANG=en_AU.UTF-8 > /etc/locale.conf
# export LANG=en_AU.UTF-8

hostname 설정과 host를 설정한다.

# echo "ed-dell" > /etc/hostname
# echo "127.0.0.1 ed-dell" >> /etc/hosts

Grub 설치한다. bootable로 지정한 첫 파티션에 grub을 설치하면 된다.

# pacman -S grub
# grub-install /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg

root 비밀번호를 설정한다.

# passwd

설치된 패키지를 최신 버전으로 갱신한다. 미러에서 바로 설치했기 때문에 실제로는 별다른 내용 없이 지나가지만 그래도 한다.

# pacman -Syu

이제 종료하고 USB를 제거하고 켜면 설치된 arch를 사용할 수 있다.

# exit
# reboot

KDE 설치

KDE 페이지를 보고 설치하면 된다. 임시로 wifi-menu를 사용해서 인터넷을 연결한다. 그리고 아래 패키지를 설치한다.

xf86-video-intel은 그래픽카드 드라이버인데 본인에게 맞는걸 설치해야 한다. 목록은 Xorg를 참조한다.

# pacman -S xorg
# pacman -S xf86-video-intel
# pacman -S sddm
# pacman -S plasma-desktop
# pacman -S kde-applications
# pacman -S kdeplasma-addons # 네트워크 매니저가 포함됨

root 대신 사용할 계정을 생성한다.

# useradd -d /home/edward edward
# passwd edward
# echo "edward   ALL=(ALL) ALL" >> /etc/sudoers

sddm을 설정한다.

# sddm --example-config > /etc/sddm.conf

/etc/sddm.conf을 열어서 autologin을 설정한다.

[Autologin]
User=edward
Session=plasma.desktop

KDE를 사용하면 wifi-menu가 더이상 필요 없다. 그 전에 네트워크 매니저 서비스를 켠다.

# systemctl enable NetworkManager.service

bluetooth를 사용한다면 몇가지 패키지를 더 설치한다.

# pacman -S bluez bluez-utils
# systemctl enable bluetooth.service
# systemctl start bluetooth.service

한국어 설정

fcitx로 설치하고 싶은데 제대로 동작을 안해서 일단 ibus를 설치했다.

# pacman -S ibus ibus-hangul

/etc/locale.gen에 ko_KR을 추가한다.

ko_KR.UTF-8 UTF-8

/etc/locale.conf도 변경한다.

LANG=ko_KR.UTF-8
LC_COLLATE=ko_KR.UTF-8

/etc/xprofile를 열어서 다음 내용을 추가한다.

export GTK_IM_MODULE=ibus
export [email protected]=ibus
export QT_IM_MODULE=ibus
ibus-daemon -d -x

물론 우분투보다 복잡하게 느껴지긴 하지만 (그게 우분투의 셀링포인트이기도 하고) 직접 설치하지 않으면 전혀 설치가 안되고 설정도 안되는 그런 환경이 OS에 대한 애착을 만드는 기분이다. 만자로를 사용하면 좀 더 쉽게 설치할 수 있다고 한다.

맥북 프로 우측 command키를 언어 전환 키로 사용하기

시에라 이후로 Karabiner를 쓸 수 없게 되었는데 그나마 Karabiner-elements가 존재해서 그나마 다행이다. 맥에서는 언어 전환을 조합키로 사용하는 설정이 기본이다. 익숙해지면 그래도 괜찮긴 하지만 오늘따라 불편하게 더 느껴져서 어떻게 할 방법이 없나 찾아봤다.

키보드에 존재하지 않는 키를 언어 전환 키로 설정하면 우측 command 키를 해당 키로 설정하는 것으로 가능했다.

내 경우는 F16을 언어 전환키로 설정했다. 먼저 설정에서 Keyboard > Shortcuts > Input Sources > Select the previous input source 를 찾는다. 여기서 ^space 같이 키가 이미 지정되어 있을 것이다.

그리고 터미널을 열고 다음 명령을 실행한다.

sleep 5 ; osascript -e 'tell application "System Events"' \
          -e 'key code 106' \
          -e 'end tell'

키 코드 106 즉, F16 키를 입력하라는 내용의 애플 스크립트를 실행한다. 명령을 입력하면 바로 키를 누르기 때문에 5초 지연을 위해 sleep을 추가했다. 입력 후 5초 이내로 아까 열었던 키보드 설정에서 ^space를 더블 클릭하고 기다린다. 지연되었던 스크립트가 실행되면서 키보드에 존재하지 않는 F16이 입력이 된다.

이제 Karabiner-Elements를 실행한다. Simple Modifications에서 right_command를 f16으로 설정하면 끝난다.

처음엔 키보드에 나오는 F12로 설정해보려고 했는데 볼륨 조절 키로 연결이 되어서 생각처럼 되질 않았다.

개발자가 아닌 개발자

지금 보고 있는 이 페이지는 1년 전에 작성된 글입니다. 글 내용은 현재의 상황, 제 의견 또는 견해와 다를 수 있습니다.

얼마 전에 okky에 웹 개발자도 개발자라고 할 수 있나요라는 글이 올라왔었다. 원문을 보기 전에 수많은 분들의 반응을 먼저 봐서 그랬는지 몰라도 가볍게 읽고 지나갔다. 이직으로 인한 인수인계에, 책 마무리 작업에, 이상한모임까지 겹쳐 자는 시간 외에는 정말 정신이 없었던 탓이다. 사실 코더랑 프로그래머를 분리해서 이야기하는 사람도 종종 봐왔기 때문에 이런 글은 그렇게 특별하지 않았지만 바쁜 와중에도 이 글이 계속 생각이 났다.

의외로 복사 붙여넣기 코드가 저평가 받는다. 붙여 넣어도 돌아갈 만큼 발달하기까지 얼마나 많은 과정이 수반되었는지 생각해야 한다. 3분 카레를 데워 먹는다고 그게 음식이 아니라고 할 수 없다. 음식이 상하지 않도록 하는 포장 기술도, 가열 도구의 발전도 저변에 깔려 있다. 그리고 공개된 조리법을 사용한다고 요리사가 아니라고 할 수 있을까? 파인 다이닝에서 요리하는 셰프가 스스로 레시피를 개발해서 요리한다 한들 그 사실을 동네 중국집 요리사를 요리사가 아니라고 말할 근거로 사용해서도 안된다. 솔직히 이런 부분은 언급할 필요도 없을 정도로 구차하게 느껴진다.

불편하게 느꼈던 부분은 억대 연봉자, 부당 대우에 관한 이야기다. 이 부분은 개인의 능력과는 별개로 산업 전반에서 필요한, 필수적인 논의다. 그 분야에서 대가가 되어야만 발언권을 갖을 수 있다고 생각하는 것 자체가 시장을 저해하는 요소다. 억대 연봉자가 늘어나면 지금 시작하는 사람들도 더 좋은 연봉을 받을 수 있지 않을까? 설령 잘 못하는 사람이 좋은 대우를 받는다면 잘하는 사람은 지금보다도 더 좋은 대우를 받을 수 있지 않을까? 하나는 낙수효과고 다른 하나는 분수효과에 대한 이야기로 어느 쪽이든 오늘의 환경을 개선하는데 일조한다고 생각한다. 그리고 부당한건 이야기하고 논의하고 연대해야 한다. 게임개발자연대와 같은 활동이 더 많아져야 한다. 적어도 엉뚱한 전제로 사다리를 걷어차지 말아야 한다.

오늘 점심은 풀스택 음식점 김밥천국에서 먹고 싶다.