본문으로 바로가기

회사에서 사용하는 PC가 만 5년이 지나니 하드 상태도 메롱이고 잦은 시스템 다운으로 인해 도저히 일을 할 수 없어 관리부에 PC를 신청해서 최신 사양의 PC을 받게 되었다.


개인적으로 CPU가 좋은 것보다 적당한 CPU에 RAM은 16GB로, HDD는 SSD가 있었으면 하였다. 다행이 새로 받은 PC의 CPU는 i7-7700이고, 128GB SSD & 500GB HDD 제품에 왜 RAM은 8GB가 꼽혀 있는 것인가...? 그것도 하나짜리가 아닌 4GB가 두개로 달려 있어 더이상 메모리 확장이 불가하다. -.-;;


HDD는 1TB를 추가로 설치하면 되는데, RAM 슬롯이 두개밖에 없고 4GB짜리가 두개 꼽혀 있어 더 이상 램 확장이 불가하다. 하여간 대기업 제품은 정말이지... 내장 그래픽카드를 사용하고 사양은 위에 적은대로 i7-7700 / 8GB RAM / 128GB SSD & 500GB HDD 스펙에 본체 가격이 150만원 정도이다.


만약 내돈주고 산다고 절대 대기업 제품은 안살것이다. 회사에서 구입하는 것이라 뭐라 할 말은 없지만 아무리 세금 계산서와 사후 A/S 비용이 포함되어 있다고 하더라도 폭리가 심한것 같다. A/S도 1년밖에 안되고 A/S 받을 일이 얼마나 있을까 싶다마는... 더군다나 나는 받자마자 윈도우 부팅도 안해보고 바로 리눅스를 설치하고 있을 뿐이다. 윈도우 쓰지도 않는데 왜 윈도우가 포함된 제품을 사야 하는지...


어쨌든 우분투 18.04 설치시 발생한 문제 및 해결 방법을 간단히 정리하였다.

BIOS

최신사양의 PC에 최신 버전의 우분투 18.04.1를 설치하는데, 이것 역시 쉽지 않다. BIOS에 있는 Secure boot라는 것은 크게 그동안 우분투를 설치하면서 신경쓰지 않았는데 최신 사양의 PC에서는 Vbox 설치 시, Secure boot 관련 설정이 나오고 제대로 설치가 안되서 나무위키에 잘 정리되어 이것을 보고 최신 BIOS 설정에 대해 간단하게 알게 되었다.

UEFI이니 Secure boot가 잘 이해가 되지 않는다면, Secure boot는 disable 시키고 기존 방식인 CSM OS 방식을 사용하면 된다. CSM 및 UEFI OS를 지원하는 모드를 선택하여 설치하니 Vbox 설치시 Secure boot 관련 설정은 다 무시되는 것 같다.

Virtualbox

Vbox 최신 버전은 5.2.18인 반면 우분투 저장소에는 5.2.10 버전이 있어 virtualbox.org에서 최신버전인 5.2.18을 받아 설치할 경우 정상적으로 설치가 되지 않는다. 관련 패키지가 부족해서 그런지 커널 모듈에서 빌드시 계속 에러가 발생한다.


우분투 저장소에 있는 5.2.10 버전을 설치 후, 최신 버전인 5.2.18를 설치할 경우 커널 빌드시 발생하는 문제는 피할 수 있다.

Thunderbird

우분투에서 메일 클라이언트로 Thunderbird를 사용하고 있다. 우분투 18.04를 최소로 설치하여도 Thunderbird는 기본으로 포함되어 있어서 따로 설치를 하지 않았지만 실제 Thunderbird 실행 파일이 존재 않는다. apt로 설치하여도 이미 설치된 패키지로 설치를 새로 하지 않는다.


Thunderbird 관련 추가 패키지를 설치하여도 계속 같은 문제가 발생한다. 문제의 원인은 배포판 만드는 과정에서 Thunderbird 실행 파일이 누락되었는지 모르겠지만, Thunderbird 패키지를 지우고 새로 설치하니 Thunderbird가 정상 동작 한다.

GNOME Classic (GNOME Flashback)

GNOME3 기반의 GNOME Shell 환경은 도저히 적응을 못할 것 같아, GNOME2 기반의 Desktop 환경으로 복귀하려고 하였으나, Ubuntu 18.04 배포판에서는 GNOME2 기반 desktop 환경인 flashback은 Compiz를 지원하지 않는다. Compiz를 지원하지 않는다면 시각적 효과는 망필이라 GNOME Classic desktop 환경을 사용하려면 Ubuntu Mate 또는 Linux Mint를 설치해서 사용해야 한다.


개인적으로 Mate / Cinnamon desktop 환경을 싫어하지는 않지만 특정 desktop 환경에 설치되는 프로그램 차이가 발생하여 가능하면 Ubuntu 기본 배포판을 사용하려고 하는데 쉽지가 않다. 결국 GNOME Shell desktop 환경에 내가 적응하는 방법 밖에 없는 것 같다.

GNOME Disk Utility

새로 교체 받은 PC에 우분투를 설치하기 때문에 HDD 역시 한번도 사용하지 않는 것이다. 우분투 설치시 파티션 설정하는 것은 문제가 없었으나, 우분투 설치 후 gnome-disk-utitilty를 사용하여 파티션 테이블이 존재하지 않는 HDD에 파티션 설정이 안되는 문제가 있다.


fdisk를 사용하여 간단하게 파티션 테이블을 생성한 후, gnome-disk-utility를 사용하여 GUI 환경에서 파티션을 다시 설정하면 된다. 큰 문제는 아니지만 gnome-disk-utility로 파티션 설정이 안되서 순간 당황하였다.

GCC / Perl 버전 문제

우분투는 판올림 되면서 수많은 패키지들이 같이 판올림 된다. 문제는 GCC 같은 컴파일러나 라이브러리가 판올림 되면 현재 진행하고 있는 일에 영향을 미치게 된다.


참고로 Buildroot 빌드 시스템을 사용하여 임베디드 시스템을 개발하고 있다. Buildroot는 개발에 필요한 대부분의 패키지를 Host PC에 의존하지 필요한 패키지를 그때 그때 빌드해서 사용한다. 심지어 크로스 컴파일러까지 매번 빌드해서 빌드 시간이 오래 걸리기도 한다. -.-;;


문제는 우분투 18.04의 GCC 버전은 7.3.0 버전으로 크로스 컴파일러 빌드시에 GCC 버전 의존성이 발생한다. 따라서 이 부분을 패치를 하던가 아니면 GCC 버전을 낮추어야 한다. 이것은 아래 링크를 참고하면 된다.

Buildroot 패키지중 automake와 intltool도 Perl 버전이 높아짐에 따라 강화된 정규 표현식 때문에 빌드가 안되는 문제가 발생한다. 이것은 패치를 직접 만들어 수정하였다.


마지막 ALi Chipset 제조사가 제공하는 ALiCrypto 패키지에서 사용하는 sscanf() 함수가 잘못된 메모리를 액세스하여 이미지 생성이 제대로 안되는 문제 있었는데, 이것 역시 문제가 되는 부분을 찾아서 수정하였다.


회사에서 사용하는 PC 역시 우분투 18.04를 설치하여 사용하려고 했는데, 빌드 시스템을 구성하지 못한다면 우분투 16.04 환경으로 돌아가야 한다. 좀 자존심이 용납이 안되던 상황인데 회사일이 바빠서 어쩔 수 없이 우분투 16.04 환경으로 복귀해야 하나 내적 갈등이 엄청 심하게 발생했다. -.-;;

Toolchain 문제

buildroot를 사용할 경우 toolchain을 옵션에 따라 빌드하여 사용한다.

우분투 18.04 설치한 후 2-3개월 잘 사용하였으나, 몇 일전 우분투 업데이트 후 toolchain 빌드 할 경우 아래와 같은 에러가 발생한다.

cfns.gperf:101:1: error: ‘const char* libc_name_p(const char*, unsigned int)’ redeclared inline with ‘gnu_inline’ attribute

우분투 18.04 최초 설치하였을 때도 위와 같은 문제가 발생하여, 일일이 이런 문제를 수정하기 힘들어 GCC-5를 기본 컴파일러로 설정하여 사용하였는데, 우분투가 업데이트 되면서 GCC-5에서도 동일한 문제가 발생하였다.


이 문제는 아래 링크를 참조하면 쉽게 수정할 수 있다. 아래 패치를 적용한 후 문제 없이 빌드 되는 것을 확인하였다. 시간 날때 GCC-7 버전에서도 문제가 없는지 확인해야 할 듯...

full-build를 해야 되는 상황이 발생해서 full-build를 하는데 toolchain에서 위와 같은 빌드 에러가 발생하여 2시간을 날려 먹었다. 할 일도 많은데... 정말 미치겠다.


댓글을 달아 주세요