lawfully.kr
한 미국 변호사의 서랍

[주말의 시스템 관리] 오래된 노트북 살리기

2017년 01월 21일


엊그제는 막상 시험에서 합격하니 기분이 좋아졌는데, 달리 자랑할 데도 없고 해서 블로그에 자뻑글 하나 올리고 그냥 집에 와서 잤다. 적어도 이제 이 블로그에 좀 더 기술적인 내용과 삽질기를 올릴 변명 하나는 더 생긴 셈이다.

사실 시험준비하면서 온갖 짓을 다 했다. 원래 시험 준비를 하다 보면 시험준비 빼고 온갖 다른 짓을 다 하고 싶어 지기에 며칠전에 쓴 글에 있는 새로운 사이트 만들고, 이메일 설정하고 하는 일 이외에도 정말 온갖 짓을 다 했다. 그 중에 대표적인 것이 오래된 노트북 두 대에 리눅스를 깐 것이다. 하나는 내가 쓰고, 다른 하나는 아들 주려고. 아들에게 리눅스를 가르치는 것도 올해 목표 가운데 하나이다. 시스템 관리를 취미 차원에서 주말마다 할 수 있을까? 다른 말로 하면 삽질이다. 솔직히 이번에는 해킨토시를 한 번 시도해 볼까 잠깐, 한 5초 가량 고민했었다. 그런데, 사실 맥에서도 내가 가장 많이 쓰는 프로그램은 거의 다 macports로 설치한 것들이다. 그냥 순정 리눅스로 가자.

노트북 사양 및 하드웨어 업그레이드

요즘 리눅스 컴퓨터는 설치가 너무 쉽다. 이번에는 민트 대신 초딩 OS를 이용하기로 했다. 그냥 iso 이미지 받아서 USB에 부팅디스크 만들고, 그 다음에는 그냥 부팅하여 설치하면 끝이다. 일단 5년 정도 된 컴퓨터이므로, 문제가 많을 것이라고 생각하고, 컴퓨터 사양을 받아 두었다. lshw -l 명령으로 확인해 보니, 의외로 사양이 좋았다. 아래에는 몇 가지만 기록 차원에서 남겨 둔다. 스크롤의 압력 때문에 필요한 것만 남겨 두고 삭제하였다.

*-core
*-memory
  description: System memory
  size: 7930MiB /* 메모리 8기가: 인터넷에서 찾아보니 최대 지원 메모리가 8기가이다 */
*-cpu
  product: Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz
  size: 1262MHz
  capacity: 3100MHz
  width: 64 bits
*-pci
  description: Host bridge
  product: 2nd Generation Core Processor Family DRAM Controller
  width: 32 bits
  clock: 33MHz
*-pci:0
 description: PCI bridge
 product: Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port
*-display
  description: VGA compatible controller
  product: GF116M [GeForce GT 555M/635M]
  vendor: NVIDIA Corporation
  width: 64 bits
  clock: 33MHz
*-display
 description: VGA compatible controller
 product: 2nd Generation Core Processor Family Integrated Graphics Controller
 vendor: Intel Corporation
*-communication
 description: Communication controller
 product: 6 Series/C200 Series Chipset Family MEI Controller #1
 vendor: Intel Corporation
 width: 64 bits
 clock: 33MHz
*-usb:0
*-multimedia
 description: Audio device
 product: 6 Series/C200 Series Chipset Family High Definition Audio Controller
 vendor: Intel Corporation
*-pci:1
 description: PCI bridge
 product: 6 Series/C200 Series Chipset Family PCI Express Root Port 1
 vendor: Intel Corporation
*-network
  description: Wireless interface
  product: Centrino Advanced-N 6205 [Taylor Peak]
  vendor: Intel Corporation
  logical name: wlp7s0 /* 무선랜 */
*-pci:2
 description: PCI bridge
 product: 6 Series/C200 Series Chipset Family PCI Express Root Port 2
 vendor: Intel Corporation
 *-network
  description: Ethernet interface
  product: AR8161 Gigabit Ethernet
  vendor: Qualcomm Atheros
  logical name: enp8s0 /* 유선랜 */
  capacity: 1Gbit/s
*-pci:3
 description: PCI bridge
 product: 6 Series/C200 Series Chipset Family PCI Express Root Port 3
 vendor: Intel Corporation
*-usb
*-pci:4
 description: PCI bridge
 product: 6 Series/C200 Series Chipset Family PCI Express Root Port 4
 vendor: Intel Corporation
 *-generic
  description: Unassigned class
  product: RTS5209 PCI Express Card Reader
  vendor: Realtek Semiconductor Co., Ltd.
*-usb:1
 description: USB controller
 product: 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1
 vendor: Intel Corporation
*-isa
 description: ISA bridge
 product: HM65 Express Chipset Family LPC Controller
 vendor: Intel Corporation
*-storage
 description: SATA controller /* 하드디스크 */
 product: 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller
 vendor: Intel Corporation
*-serial UNCLAIMED
 description: SMBus
 product: 6 Series/C200 Series Chipset Family SMBus Controller
*-scsi
*-cdrom
 description: DVD-RAM writer /* CD/DVD 드라이버, 빼고 SSD 설치했음 */
 product: DVDRAM GT34N
 vendor: HL-DT-ST

첫번째 문제는 프로세서나 메모리에 비해 체감적인 속도가 느리다는 것이었다. 스티브잡스께서 알려주신 것처럼, 이 문제는 SSD만 설치하면 쉽게 해결된다. 그래서, 노트북용 SSD (샌디스크 120GB, 67,500원), 이걸 장착할 때 쓰는 2mm 가이드 (2,500원) 및 멀티부스트 (12.7mm, 11,300원)를 샀다. 마침 아주 적절하게도 시험 바로 전날 이게 도착하였다. 최종복습을 하면서 이걸 설치했다. 도대체 어디에 시간을 더 많이 썼는지 솔직히 모르겠다. 설치는 아주 쉽다. 그냥 기존의 DVD 드라이브를 빼고, 그 자리에 배송받은 물건을 마구 끼우면 된다. 아니, 기존의 하드디스크를 빼서 이걸 멀티부스터에 끼운 다음, DVD 드라이브를 빼고, 그 자리에 넣었다. 그리고, 기존의 하드디스크가 있던 자리에 SSD를 끼웠다. 다만, 한 가지 사소한 문제가 있었다. 이건 아래에 조금 더 자세히…

키 매핑: Xmodmap, xkb 그리고 bashrc

막상 설치하고 나서 보니 문제가 있었다. 콘트롤 키가 먹지 않는 것이었다. 어떤 짓을 해봐도 먹지 않는다. 조약돌 키보드이다. 그래서, LG 서비스 센터에 문의했더니 윗판을 모조리 다 갈아야 한다고 했다. 조약돌 키보드인데… 불만은 있었지만 알았다고 하고 기다리니, 조금 있다가 재고가 없다고 한다. 4년인가 지나면 재고를 유지하지 않는다나 뭐래나… 콘트롤 키가 없는 리눅스를 상상할 수 있는가? 그렇다면, 방법은 두가지이다. 첫째는 설정을 바꾸기로 했다. 거의 사용하지 않는 윈도우 키와 콘트롤키를 스와핑하는 것이다. 둘째는 조약돌 키보드이니만큼 나중에 시간 날 때 한 번 손대 보기로 했다. 이건 아직 하지 않았다.

원래는 Xmodmap 파일을 수정하는건데, 이것은 우분투에서는 잘 먹지 않는다. 우분투에서는 xmodmap 대신 xkb를 사용하기 때문이다. Xmodmap 방법은 .Xmodmap 파일을 만들거나 수정한 다음 .xinitrc 파일에,

xmodmap .Xmodmap

같이 수정하는 것이다. 또는 .Xresources 파일을 수정해도 된다. 아니면 .Xmodmap 파일도 좋고… 그렇지만, 이렇게 하는 것은 우분투에서는 더 이상 쓰지 않는 방법이다. 초딩 OS도 우분투 기반이다.

따라서, 일반적인 충고는 우분투 계열에서는 /usr/share/X11/xkb/symbols/ 디렉토리 내에서 pc 내지는 en 파일을 수정하고, 그 다음에는 기존의 컴파일된 맵(*.xkm) 파일을 삭제하라는 것이다 (이것은 /var/lib/xkb/ 디렉토리에 있다). 예를 들어, pc 파일에서 다음 부분을 바꿔치면 윈도우 홈키와 콘트롤키를 바꿀 수 있다.

key <LCTL> {	[ Control_L		]	};
key <LWIN> {	[ Super_L		]	};

이렇게 하다가 망했다 (망할 뻔했다). 부팅이 아예 되지 않다가 3-4차례 컴퓨터를 켰다 껐다 하니 다행히 부팅이 되었다. 이 글에서는 초딩OS에서는 이런 짓 하지 말라고 한다. 그러면 어쩌라고? 위에서처럼, symbols를 수정하였다면,

$ rm /var/lib/xkb/*.xkm
$ setxkbmap -layout us

이렇게 하라는 것이다. 그런데, 별로 그러고 싶지 않다면, 그냥 .Xmodmap으로 돌아가라는 것이다.

다시 .Xmodmap 이야기로 돌아가서, 명령어줄에서 이걸 바꾸려면,

$ xmodmap -e "remove mod4 = Super_L"
$ xmodmap -e "add control = super_L"

과 같이 하면 된다. 쉽다. 이것은 확인했다. 그런데, 이걸 항상 자동실행되게 하려면, .Xmodmap 파일에 다음과 같이 추가하면 된다는데,

remove mod4 = Super_L
add control = Super_L

이것이 안된다. 매번 타이핑을 하면 되기야 하지만, 위 글의 충고는 그냥 위 bash문을 .bashrc 파일에 추가라하는 것이다. 결국은 다시 .bashrc인 것이다. 어쨌든 이걸 수정하여 키보드를 스와핑하였다.

배터리 문제

또 다른 문제가 (사실 이건 어느 정도는 예견했던 것이었다) 배터리가 거의 안된다. 뭐랄까, 고생해서 완전 충전해 놓으면 완전방전까지 약 10분이 걸린다. 그냥 전원 꽃고 써야 한다.

grub과 부팅 문제

이건 좀 고생했지만, 답이 없다. 딱히 문제가 있는 건 아니지만, 그렇다고 해도 답이 없는 상황은 너무 짜증난다. 사실 나는 grub을 별로 좋아하지 않았다. LILO가 뭐가 어때서? grub은 진지하게 공부할 마음도 들지 않았다.

문제를 정리하자면, 원래 하드디스크 자리에 SSD를 꽂았고, 원래 하드디스크는 DVD에 꽂았으니, 당연히 부팅을 하면 되야 한다. 그런데, 안된다. 설치가 끝나고 나면, 부팅이 안된다! 리눅스로 부팅을 하고 나면, fdisk -l로 확인해 보면 새로 설치한 SSD는 /dev/sda이고, 원래 있던 HDD는 /dev/sdb로 읽힌다. 그런데, grub에서는 오히려 원래 있던 HDD (DVD롬 자리에 꽂았음)를 hd0으로 읽고, 새로 꽂은 SSD를 hd1으로 읽는다. 그러니, SSD에 설치한 부트로더를 읽지 못하는거다. F2를 눌러 부팅 디스크를 바꾸면 제대로 읽힌다. 그래서, 그냥 원래 있던 하드디스크에 부트로더를 설치하였다. 문제는 SSD로 부팅하는 것은 무지 빠른데, 그 이전에 하드디스크에 있는 부트로더를 올리는 시간이 SSD로 리눅스를 부팅하는 시간보다 더 오래 걸린다. 그냥 계속 켜 놓으면 되지 않겠느냐고? 사실 그럴 생각이다. 심지어 BIOS에서 CD롬 부팅 순서를 바꾸거나 이걸 아예 사용하지 않게 해도 마찬가지이다. 인터넷에서 잠깐 찾아 봤는데, 답이 없다. 나중에 천천히 해결책을 찾아 볼 생각이다.

한글 설치

$ sudo apt install language-selector-gnome uim uim-byeoru

그 다음에는 uim을 실행해서 벼루를 지정한다. 그리고, 그 다음에는 gnome-language-selector를 실행해서 uim을 지정한다. 상세한 정보는 이곳 그리고 이곳을 확인하면 된다.