M1 맥북에서 XV6(qemu) 빌드하기

Wiiiiiii·2022년 9월 22일
0

Dev log

목록 보기
1/2
post-thumbnail

M1 맥북에서 우분투를 이용해 XV6를 빌드하려고 시도했었다. 그러나 다음과 같은 문제점들이 발생했다!

  • XV6 를 ARM 아키텍처에서 구동하려면 gcc-multilib 즉, 크로스 컴파일러가 설치되어야 하는데, 터미널에서 brew install gcc-multilib 를 실행하면 정상적으로 설치가 되지 않는다

  • UTM 으로 ubuntu20.04 버전으로 가상머신을 생성한 후 sudo apt-get install gcc-multilib g++ 을 수행하면 역시 정상적으로 설치가 되지 않는다

그리하여 M1 MAC 로컬환경에서 XV6를 빌드하여 장장 6일간의 삽질 끝에 하나의 조언을 얻게 되었다

AWS EC2 로 SSH 연결해서 해보세요 🔥

처음에는 ubuntu22.04 LTS 버전의 이슈인줄 알았고, UTM으로 20.04 버전으로 다운그레이드 후에 시도했지만 역시나 같은 에러를 뿜어냈었다. 더이상의 삽질이 두려웠기에 EC2 로 우분투서버를 열어 빌드를 시도하는 방법을 선택하게 되었다


EC2 인스턴스 생성하기

  1. 먼저 AWS EC2 로 접속하여 루트계정으로 회원가입을 해준다

  2. 회원가입 후 콘솔 홈 > EC2 페이지로 접속하여 인스턴스를 클릭해준다

  3. 웹 서버에 대한 작명을 자유롭게 해준다

  4. 사용할 서버의 종류를 선택해주는데, 아키텍처를 ARM 이 아닌 64비트(x86)으로 선택해주어야 하며 우분투 버전은 22.04 혹은 20.04 둘다 문제 없을 것이다

  5. 키 페어(공개키) 를 선택해 주면 되는데, 없을 경우 새 키 페어를 생성을 클릭하여 새로운 키를 생성하여 주면 자동으로 키파일이 다운로드 된다 (OOO.pem) 이 파일을 본인이 인지할 수 있는 경로에 이동시켜주도록 하자

  6. 나머지는 따로 설정해주지 않아도 무방하며, 인스턴스를 생성해준다

위 과정을 거쳐 새로운 우분투 서버를 아마존 클라우드 서버에 생성하여 주었다면 ssh 연결을 통해 서버에 접속을 시도해야 한다


ssh 연결하는법?

인스턴스를 생성했다면 MAC 터미널로 우분투 서버에 접속할 수 있다!

  1. 터미널을 열고 본인이 키파일을 저장했던 경로로 이동하여 준다
    cd ~/keyfiledir

  2. ssh 연결을 시도하기 위해 명령어를 입력하여 준다
    ssh -i keychain.pem ubuntu@52.111.X.XXX

✔️ 여기서 Permission denied(Public key) 에러가 발생하는 당신

왜 그럴까요? 이유는 제발 알아서 찾아보시고 검색해보시길 바랍니다
떠먹여주기만 하면 타이핑 연습이지 공부가 아니잖아요?
되게 잘 나와 있습니다...!

  1. ssh 연결에 성공하면 아래와 같은 화면이 표시된다

여기까지 잘 따라오셨다면 ssh연결로 EC2 우분투 서버에 접속하는 것을 성공하셨다 ⭐️
또한 ARM 아키텍처가 아닌 x86_64 체제에서 작동하고있는 우분투 서버인 것을 역시 확인할 수 있다 ❗️


XV6 빌드하기

우분투에 접속도 했으니 이제 XV6 를 빌드하기만 하면 포스트의 목적달성이다 🔥

XV6 를 설치하기 위한 로드맵은 아래 링크에서 친절하게 알려주신다!

XV6-tools- KAIST OS Lab

만약 make qemu(qemu-nox) 명령어가 안되시는 분들은...

현재 EC2 서버에 가상머신 빌드를 위한 라이브러리들이 설치되어 있지 않기 때문에 아래 명령어들을 통해 설치해주도록하자

  1. sudo apt-get install build-essential
  2. sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager
  3. sudo systemctl is-active libvirtd 출력에 active를 확인하여 데몬이 시작되었는지 확인한다
  4. 가상머신을 만들고 관리하려면 "libvirt" 및 "kvm" 그룹에 사용자를 추가해주어야 한다 sudo usermod -aG libvirt $USER 그리고 sudo usermod -aG kvm $USER 를 입력하여 설정해준다

삽질은 좋은 동기부여가 됩니다 ❗️

참고 |
https://stackoverflow.com/questions/56507764/error-couldnt-find-a-working-qemu-executable
https://oslab.kaist.ac.kr/xv6-tools/

profile
리액트를 주로 연구중입니다! FE Junior

2개의 댓글

comment-user-thumbnail
2022년 9월 22일

좋은 정보 감사드립니다 꾸벅🙏🏻

1개의 답글