2025년 6월 14일 토요일

"내 칩 제작 서비스" 표준 셀 디자인 킷의 운용 환경, 가상 머신 리눅스 설치

"내 칩 제작 서비스" 표준 셀 디자인 킷의 운용 환경,
가상 머신 리눅스 설치

--------------------------------------------------------------------

목차:

1. 개요
    1-1. WSL 과 가상 머신(VM)
    1-2. 가상 머신 실행에 대한 우려
    1-3. 윈도우즈 WSL 지원 기능 끄기

2. VMware 가상 머신
    2-1. VMware 의 설치
    2-2. VMware에서 우분투 리눅스 설치
    2-3. VMware 가상 머신 설정 변경
    2-4. VMware의 게스트 우분투 다듬기
    2-5. VMware 게스트 우분투에서 공유 폴더 마운트

3. VirtualBox 가상 머신
    3-1. VirtualBox 의 설치
    3-2. VirtualBox에서 우분투 리눅스 설치
    3-3. VirtualBox 가상 머신 설정 변경
    3-4. VirtualBox의 게스트 우분투 다듬기
    3-5. VirtualBox 게스트 우분투에서 공유 폴더 마운트

----------------------------------------------------------------------------------------

1. 개요

1-1. WSL 과 가상 머신(VM)

앞서 오픈-소스 반도체 설계 도구의 운용 환경으로 사용하던 WSL에 우분투 리눅스를 사용 했었다. 윈도우즈 운영체제에서 쉽게 파일 탐색이 가능 하다는 편리한 점이 있지만 리눅스 시스템 콜이 완벽하지 않고 무엇 보다도 각종 툴들의 설치에 애를 먹는 경우가 있었다. 이에 가상 머신(VM, Virtual Machine) 위에 리눅스를 설치하는 방식으로 변경하기로 한다.

    [참고] WSL 과 VM 뭐가 더 좋을까?, https://balang.tistory.com/32

윈도우즈 상에서 사용할 수 있는 가상 머신(VM, Virtual Machine)은 오라클 VertualBox와 브로드컴 VMware 가 있다. 각각 장단점이 있겠으나 두 VM 모두 오픈-소스 툴 들을 설치하고 "내 칩 제작 서비스" 표준 셀 디자인 킷 운용하는데 문제 없다.

    [참고] Oracle VirtualBox, https://www.virtualbox.org/
    [참고] Broadcom VMware, https://www.vmware.com/

1-2. 가상 머신에 대한 우려

VM이 윈도우즈 운영체제에 얹혀 있어서 실행 하는데 상당한 부담이 있을 것이라는 우려를 가질 수 있다. 하지만 따져보면 지금의 윈도우즈 조차 전통적인 x86의 CPU 구조를 가상으로 돌리고 있다는 것(Windows-on-Windows)을 감안 하면 실행 성능 저하는 그리 염려할 바는 아니다. 이미 PC용 최신 CPU는 기본적으로 하드웨어 가상화 기술(Virtualization Technology)을 장착하고 있다. 이는 가상화를 소프트웨어로 에뮬레이션 하기 보다 아예 하드웨어를 장착하고 있어 호스트와 게스트로 구분되는 머신의 성능 차이는 없다는 것이다. 다만 운영체제 마다 파일 시스템이 다르고 게스트 머신에서 호스트 측의 주변장치들에 접근 하려면 가상 입출력 장치를 거쳐야 하는 단점이 있다.

VM을 사용 할 경우 파일 시스템이 호환되지 않아서 가상 디스크 파일을 통해 접근해야 하고 그래픽 장치 같은 고성능 하드웨어를 직접 제어하지 못해 제 성능을 내지 못한다. 다행히 VM 마다 호스트의 파일 시스템을 장착(mount) 할 수 있는 방법이 마련되어 있고 호스트(윈도우즈)와 게스트(VM의 리눅스) 사이에 복사와 붙여넣기(Copy & Paste) 또한 가능한 툴들이 준비되어 있다. 가상화 리눅스는 전자 설계 도구를 운용하는 목적이라서 고성능 3D 그래픽 따위는 필요 없다. 그외 고속을 필요치 않는 USB 통신 포트, 예를 들어 시리얼 포트, JTAG 등을 무난히 작동 시킬 수 있다. 따라서 VM에 설치된 리눅스에서 아듀이노와 FPGA 장치들을 무난하게(더 쉽게!) 다룰 수 있다.

1-3. 윈도우즈 WSL 지원 기능 끄기

VirtualBox와 WMware는 가상 머신을 작동 시키는데 필요한 기능들을 자체적으로 갖추고 있다. 따라서 VM을 쓰기로 했으므로 윈도우즈에서 WSL을 지원하는 기능들을 모두 끈다. 꺼야할 기능은 다음과 같다.

    Hyper-V
    Virtual Machine Platform
    Windows Hypervisor Platform
    Windows Subsystem for Linux 

윈도우즈의 설정(Settings)에서 "Windows Feature on or off"를 열어 위의 기능들이 켜있을 경우 끄도록 한다.

켜져있는 기능을 끌 경우 윈도우즈를 재시작 할 수도 있다.

2. VMware 가상머신

두가지 대표적인 VM 중 브로드컴의 VMware 상에서 우분투 리눅스를 설치하는 방법을 설명한다. VM의 기본적인 개념을 이해하면 VirtualBox를 사용할 경우에도 크게 다르지 않으므로 쉽게 적용 할 수 있을 것이다.

2-1. VMware 의 설치

VMware는 무료로 전환되었지만 설치 소프트웨어를 받으려면 브로드컴에서 계정을 얻어야 한다. 브로드컴 홈 페이지에 접속한 후 우측 상단의 "Support Portal"을 누른 후 드롭-다운 메뉴에서 "Register" 버튼을 누른다. 

https://www.broadcom.com/

전자 우편(e-mail)을 입력한 후 확인 절차를 거쳐 계정 생성이 되면 VMware 홈 페이지를 통해 VMware 를 내려 받을 수 있다.

https://www.vmware.com/

"Broadcom Support"를 선택하여 로그인 한다. 이어 열린 계정 화면에서 "Software" -> "VMware Cloud Foundation" -> "My Downloads" 를 따라간다.

무료 소프트웨어 내려받기로 이동,

굉장히 많은 제품들이 보이는데,

아래로 내려보면 "VWware Workstation Pro"가 보인다.

윈도우즈가 호스트 머신 이므로, "VMware Workstation Pro 17.0 for Windows"에서 가장 최신 버젼을 골라 설치 프로그램을 내려 받는다.

윈도우즈에서 프로그램 설치는 표준화 되어 있다. 내려 받은 설치프로그램을 실행하여 VMware를 설치한다. 설치하는 중에 옵션은 "기본" 과 "추천"이 하는대로 따르도록 한다.

2-2. VMware에서 우분투 리눅스 설치

아래의 우분투 리눅스 데스크탑 배포 사이트에 들어가면 약 6기가 바이트에 이르는 iso 이미지를 내려받을 수 있다.

https://ubuntu.com/download/desktop

VMware 를 실행하여 "Create a New Virtual Machine" 선택한다. 말그대로 새로 가상 머신을 만들기로 한다.

"가상 머신 마법사(Virtual Machine Wizard)"가 나타나 설치를 도와 줄텐데 마법사를 믿고 "기본(추천)"으로 간다.

새로 생성하게될 가상 게스트 머신에 우분투 리눅스를 설치하기로 한다. 앞서 내려받은 우분투 설치 iso 이미지 파일을 넣어준다.

이후 설치는 모두 기본 절차를 따른다. 가상 머신이 부팅 하면서 iso 이미지를 읽어 우분투가 설치되는 모습을 보게 될텐데 이 역시 "Next" 또는 "Skip"하여 모두 기본으로 한다. 다만 중간에 사용자 이름과 비번을 물어올 때 적절히 입력하자. 모두 설치 하는데 약 20분 쯤 소요될 것이다. 만일 설치가 마음에 들지 않으면 얼마든지 재설치하거나 변경 할 수 있다. 컴퓨터와 운영체제를 유지보수하면서 컴퓨터 활용 공부가 될 것이다.

2-3. 가상머신 설정 변경

우분투 리눅스 설치를 마친 후 VMware의 실행 조건을 살펴보기로 한다.

메모리는 기본으로 4G 바이트로 잡혀 있을 것이다. 이정도 용량으로도 우분투는 잘 돌아간다. 추후 규모가 큰 응용프로그램을 돌릴 경우를 대비하여 호스트와 절반씩 나눠 쓰도록 설정해 보는 것도 좋다.

가상 머신이 사용할 프로세서의 갯수를 설정할 수 있다. 게스트 머신에 가용한 프로세서를 모두 동원한다고 해도 호스트가 멈추는 것은 아니므로 시험삼아 옵션을 변경해 보고 호스트 머신 윈도우즈의 "Task Manager"를 통해 CPU 사용량을 살펴보는 것도 흥미로울 것이다.

요즘 나오는 CPU들은 모두 하드웨어 가상화 기술이 적용 되어 있다. "Task Manager"에 "가상화(Virtualization)"가 켜있더라도 정작 VMware에서는 사용하지 못 할 수도 있다. 하드웨어 가상화 엔진을 사용하려면 BIOS 설정에서 이 기능을 켜 주어야 한다는데 Virtualize Intel VT-x 또는 AMD-V 가상화 엔진의 활성화에 관한 수많은 질문들이 있는 것을 보면 제대로 잘 되지 않는 모양이다. 만일 가상화 엔진이 적용되지 않는다고 미련을 갖지 않아도 좋다. 이것 없이도 가상 머신은 잘 돌아가고 반도체 설계에 컴퓨터 성늘이 아쉬울 일은 없다.

VMware의 가상 머신 기본 설치 시 가상 하드디스크의 용량은 20G 바이트 였을 것이다. 이정도 용량이면 리눅스와 웬만한 서버를 설치하는데 중분하다. 하지만 반도체 설계 도구들과 아듀이노, FPGA 용 도구들 설치하기에는 부족하다. 용량을 200G 바이트로 늘려 놓는 편이 좋다.

가상 머신 설정 창에서 설치할 때 할당해 놓은 가상 디스크 용량을 변경할 수 있지만 이를 게스트 운영체제에서 적용하려면 그 절차가 다소 복잡하다. 만일 용량이 작게 할당 되었다면 가상 머신 재설치 하길 권한다.

게임이나 고도의 그래픽 작업을 하려는 것이 아니라면 3D 가속을 끄도록 한다. 문자 기반의 명령 처리나, 평면도 그리기가 대부분인 반도체 설계에서 3D 가속은 의미없다. 오히려 성능을 저하 시킬 수 있다. 다음은 호스트 머신의 저장장소를 게스트 머신과 공유하기 위한 설정이다.

위의 경우는 호스트 머신에서 E:\ 를 E_DRIVE 라는 이름으로 공유시킨 예다. 분리되어 있는 호스트와 게스트 머신의 운영체제 사이에 클립보드 공유가 가능하다. 아래 설정으로 드래그-드롭, 복사-붙이기가 가능하다.


2-4. VMware의 게스트 우분투 다듬기

VMware의 가상 머신에 우분투 리눅스의 설치를 마쳤다. 아래의 명령으로 우분투를 최신 상태로 업데이트 한다.

    $ sudo apt update

'$' 는 우분투 리눅스의 명령줄 프롬프트다. 어플리케이션을 운영체제의 일부로 설치해야 하므로 관리자 권한을 주기 위해 'sudo' 가 사용되었다. 'apt'(Application Packaging Tool)는 우분투의 공식 어플리케이션을 내려받아 설치하는 명령이다. 해당 어플리케에션은 물론 이에 필요한 연관 라이브러리들을 묶어 배포 사이트에서 내려받고 설치한다. apt의 보조 명령 'update'는 운영체제의 최신 상태로 갱신할 목록이 있는지 검사한다. 이어 'upgrade'를 주어 최신 상태로 갱신을 수행한다.

    $ sudo apt upgrade

다음은 깃-허브 공유 저장소에서 오픈-소스를 내려받기 위한 툴을 설치한다.

    $ sudo apt install git

'install' 은 뒤에 이어진 패키지를 설치 하라는 apt의 보조 명령으로 git 을 설치한다.  

우분투 리눅스는 범용 운용체제로 VMware를 위한 특별한 조치를 가지고 있지 않다. 호스트 머신과 VMware 게스트 리눅스 머신 사이에 파일을 공유하고 클립 보드를 공유가 가능 하게 해주는 툴 open-vm-tools과 open-vm-tools-desktop 을 설치한다.

    $ sudo apt install open-vm-tools open-vm-tools-desktop

기초적인 다듬기가 완료되었다. 리눅스를 재부팅 하면 새로운 기능들을 사용할 수 있다.

2-5. VMware 게스트 우분투에서 공유폴더 마운트

앞서 가상 머신과 공유할 호스트 폴더가 지정 되었다면 아래와 같이 확인 할 수 있다.

    $ vmware-hgfsclient
    E_DRIVE

공유 폴더의 설정 이름이 E_DRIVE 였다는 점을 기억하자. 아래 명령으로 공유된 폴더를 리눅스의 폴더에 마운트 할 수 있다.

    $ sudo vmhgfs-fuse .host:/E_DRIVE /mnt/hgfs/ -o allow_other -o uid=1000

호스트 머신에서 'E_DRIVE'라는 이름으로 공유된 폴더를 리눅스의 /mnt/hgfs에 연결(mount) 한다.

--------------------------------------

3. VirtualBox 가상 머신

3-1. VirtualBox 설치

아래 링크에서 오라클 가상 머신 VirtualBox 설치 파일을 내려 받아 설치한다.

https://www.virtualbox.org/wiki/Downloads

윈도우즈에서 리눅스를 게스트로 운영할 것이므로 "Windows hosts"를 내려 받아 설치한다. 내려받은 설치 프로그램을 실행하는 과정에서 선택 사항은 모두 기본으로 충분하다. 윈도우즈 호스트의 경우 확장 팩을 추가로 설치한다.

3-2. VirtualBox에 우분투 리눅스 설치

우분투 리눅스를 설치하려면 설치 디스크가 필요하다. 아래 링크에서 우분투 설치용 iso 이미지를 내려 받아 둔다.

    https://ubuntu.com/download/desktop

VirtualBox 를 실행하여 새로 가상 머신을 만든다. 메뉴의 Machine에서 New 를 선택 하거나 윈도우의 "New" 버튼을 누르면 가상 머신 만들기가 시작된다.

가상 머신의 이름(Name)은 적당히 적어 준다. "ISO Image"란에 먼저 받아둔 우분투 설치 iso 이미지 파일을 지정해 주면 게스트로 설치할 운영체제의 종류(Type)와 하위종류(Subtype) 등이 알아서 잡힌다.

"Unattained Install" 은 가상 머신이 만들어진 후 "ISO Image"에 지정한 운영체제 설치 이미지 를 읽어 운영체제 설치를 진행하게 되는데 이때 첫 사용자의 계정명(Username)과 비밀 번호(Password)를 입력해 준다. 우분투 리눅스의 설치 과정에서 사용자 계정 생성 과정을 생략할 수 있다.

Hardware는 가상머신이 사용할 CPU의 갯수와 메모리 용량을 지정한다. 호스트 머신이 가지고 있는 자원에 따라 사용 가능한 자원 량이 달라진다. 녹색 바의 최대치까지 올려 놓도록 하자.

리눅스 운영체제는 사용자의 용도에 따라 그 무게가 달라진다. 단일 사용자가 문자 기반의 명령 줄 사용자 인터페이스(CLI, Command-Line Interface)를 사용하는 응용인 경우 그리 큰 메모리 용량을 요구하지 않는다. 대부분 랩-탑 PC에서 4G 바이트만 할당 해도 원할하게 돌아간다.

가상 머신이 사용할 하드 디스크의 용량을 설정한다. 기본적으로 25G 바이트로 놓고 있는데 반도체 설계 소프트 웨어의 용량이 매우 크므로 200G 바이트 이상으로 설정하길 권한다. 향후 아듀이노 IDE, 알테라와 자일링스 FPGA 도구들을 설치하게 될텐데 이들 도구들을 모두 설치하면 약 100G 바이트 가량 하드 디스크 공간을 차지한다.

가상 머신을 구성하는 기본 설정을 마치면 "Finish" 버튼을 누른다. 가상 머신 만들기와 우분투 리눅스 설치가 자동으로 진행된다. 설치도중 옵션 선택은 "Next" 또는 "Skip"으로 넘어 가도록 한다. 가상머신과 우분투 리눅스의 설치가 완료되면 VirtualBox 윈도우즈 확장팩을 설치한다. 확장 팩 설치는 따로 절차 없이 앞서 내려 받아 둔 파일을 실행하면 된다. 확장 팩을 설치하면 호스트와 게스트 머신 사이에 클립 보드 공유를 통해 "복사와 붙여넣기", "드래그 앤드 드롭"이 가능하다.

3-3. VirtualBox 가상 머신 설정 변경

가상 머신에 우분투 리눅스가 게스트로 설치 되었다. 가상 머신의 몇가지 세부 설정을 살펴보기로 한다. 설치한 가상 머신의 "설정(Settings)"을 눌러 시스템(System) 항목을 보자.

일반 항목(General)의 "고급(Advanced)"에서 "공유 클립 보드" 와 "드래그 앤드 드롭"을 양방향(Bidirectional)으로 설정한다.

마더보드(Motherboard)의 부팅 장치에서 "플로피"와 "오티컬" 디스크는 뺀다. 아울러 가상 머신에서 사용할 기본 메모리 용량을 설정한다. 기본으로 4G 바이트 정도의 용량으로도 우분투는 잘 돌아간다. 추후 규모가 큰 응용프로그램을 돌릴 경우를 대비하여 호스트와 절반씩 나눠 쓰도록 설정해 보는 것도 좋다.

기본 메모리 용량은 언재든 재설정 할 수 있지만 메모리 용량이 변경되면 게스트 운용체제의 스왑(swap) 디스크를 재설정 하느라 리눅스의 부팅이 느려질 수 있다. 스왑 디스크 재설정은 메모리 용량 변경 후 최초 부팅 시에만 영향을 받는다.

디스플레이(Display) 설정, 큰 화면을 대비하여 비디오 메모리는 32~64M 바이트로 늘려 놓는다. 게스트에서 멀티 모니터를 할 것이 아니므로 모니터 갯수는 1개, 그래픽 컨트롤러는 VBoxVGA와 VMSVGA 중 고를 수 있다. VBoxVGA 를 선택하면 게스트에서 데스크 탑 해상도를 동적으로 변경 할 수 있지만 간혹 잘 작동하지 않을 때(검은 화면에서 멈춤)도 있다. 기본 설정은 VMSVGA 다.

저장장소(Storage) 설정이다. IDE와 SATA, 두종류의 컨트롤러가 있다. IDE에 플로피나 옵티컨 드라이브의 미디엄이 있다면 제거한다. SATA에는 우부투가 설치된 가상 디스크 미디엄이 부착 되어 있다.

호스트 머신의 공유 폴더를 지정하면 게스트에서 마운트할 수 있다.

3-4. VirtualBox의 게스트 우분투 다듬기

VirtualBox 가상 머신에 우분투 리눅스의 설치를 마쳤다. 아래의 명령으로 우분투를 최신 상태로 업데이트 한다.

    $ sudo apt update

'$' 는 우분투 리눅스의 명령줄 프롬프트다. 어플리케이션을 운영체제의 일부로 설치해야 하므로 관리자 권한을 주기 위해 'sudo' 가 사용되었다. 'apt'(Application Packaging Tool)는 우분투의 공식 어플리케이션을 내려받아 설치하는 명령이다. 해당 어플리케에션은 물론 이에 필요한 연관 라이브러리들을 묶어 배포 사이트에서 내려받고 설치한다. apt의 보조 명령 'update'는 운영체제의 최신 상태로 갱신할 목록이 있는지 검사한다. 이어 'upgrade'를 주어 최신 상태로 갱신을 수행한다.

    $ sudo apt upgrade

다음은 깃-허브 공유 저장소에서 오픈-소스를 내려받기 위한 툴을 설치한다.

    $ sudo apt install git

'install' 은 뒤에 이어진 패키지를 설치 하라는 apt의 보조 명령으로 git 을 설치한다.  

우분투 리눅스는 범용 운영체제로 가상 머신에 대한 특별한 조치를 가지고 있지 않다. VirtualBox 가상 머신 설정에서 클립 보드 공유를 활성화 시켜도 게스트에서 바로 동작하지 않는다. 게스트로 설치한 리눅스 운영체제에 이를 지원하는 툴을 설치해야 한다. VirtualBox 의 확장 팩을 설치 했다면 이에 필요한 파일들을 묶은 iso 디스크 이미지 파일이 제공된다. 이를 설치하기 위해 VirtualBox 설정에서 광학 드라이브를 추가하고,

이어 미디엄으로 VBoxGuestAdditions.iso 를 지정한다.

게스트 운영체제를 부팅 시킨 후 VirtualBox의 메뉴 "Devices" > "Insert Guest Additions CD image" 를 선택 하면,

좌측 태스크 바에 CD 디스크 아이콘이 생기고 이를 열어 "Run software" 를 실행 시킨다.

3-5. VirtualBox 게스트 우분투에서 공유 폴더 마운트

클립 보드 공유를 통한 '복사와 붙여넣기'외에 호스트와 게스트 머신 사이에 파일을 주고 받는 방법으로 호스트 머신의 폴더를 게스트 파일 시스템의 한 디렉토리에 연결 할 수 있다. 호스트에서 공유할 폴더를 지정하고 게스트에서 참조할 이름을 붙여 놓는다. 아래 예는 호스트의 C:\ 를 C_DRIVE 라는 이름으로 공유 하도록 설정 하였다.

게스트 리눅스에서 공유된 폴더를 연결할 지점으로 폴더를 생성 해두고,

    $ mkdir ~/C_DISK

호스트의 공유명 "C_DRIVE"를 을 이 지점에 연결한다.

    % sudo mount -t vboxsf C_DRIVE ~/C_DISK

--------------------------------------

윈도우즈를 호스트로 하는 가상 머신에 게스트 운영체제 리눅스를 설치하는 방법을 설명 했다. "내 칩"을 제작하기 위해 오픈-소스 반도체 설계도구를 운용 하는데 두가지 가상 머신 중 어느 것이든 상관 없다. VMware 가 성능 면에서 우수 하다고 하지만 반도체 설계를 목적으로 사용하면서 체감할 정도는 아니다. VirtualBox 가 USB 장치(아듀이노, FPGA JTAG 등) 사용 면에서 더 안정성이 있었다. 굳이 고르라면 VirtualBox 다.

다음에는 "내 칩 제작 서비스" 표준 셀 디자인 킷을 깃-허브에서 클로닝으로 내려받은 후 오픈-소스 설계도구들을 설치해 보기로 한다.





댓글 없음:

댓글 쓰기