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 로 우분투서버를 열어 빌드를 시도하는 방법을 선택하게 되었다
먼저 AWS EC2 로 접속하여 루트계정으로 회원가입을 해준다
회원가입 후 콘솔 홈 > EC2 페이지로 접속하여 인스턴스를 클릭해준다
웹 서버에 대한 작명을 자유롭게 해준다
사용할 서버의 종류를 선택해주는데, 아키텍처를 ARM 이 아닌 64비트(x86)으로 선택해주어야 하며 우분투 버전은 22.04 혹은 20.04 둘다 문제 없을 것이다
키 페어(공개키) 를 선택해 주면 되는데, 없을 경우 새 키 페어를 생성을 클릭하여 새로운 키를 생성하여 주면 자동으로 키파일이 다운로드 된다 (OOO.pem) 이 파일을 본인이 인지할 수 있는 경로에 이동시켜주도록 하자
나머지는 따로 설정해주지 않아도 무방하며, 인스턴스를 생성해준다
위 과정을 거쳐 새로운 우분투 서버를 아마존 클라우드 서버에 생성하여 주었다면 ssh 연결을 통해 서버에 접속을 시도해야 한다
인스턴스를 생성했다면 MAC 터미널로 우분투 서버에 접속할 수 있다!
터미널을 열고 본인이 키파일을 저장했던 경로로 이동하여 준다
cd ~/keyfiledir
ssh 연결을 시도하기 위해 명령어를 입력하여 준다
ssh -i keychain.pem ubuntu@52.111.X.XXX
✔️ 여기서 Permission denied(Public key) 에러가 발생하는 당신
왜 그럴까요? 이유는 제발 알아서 찾아보시고 검색해보시길 바랍니다
떠먹여주기만 하면 타이핑 연습이지 공부가 아니잖아요?
되게 잘 나와 있습니다...!
여기까지 잘 따라오셨다면 ssh연결로 EC2 우분투 서버에 접속하는 것을 성공하셨다 ⭐️
또한 ARM 아키텍처가 아닌 x86_64 체제에서 작동하고있는 우분투 서버인 것을 역시 확인할 수 있다 ❗️
우분투에 접속도 했으니 이제 XV6 를 빌드하기만 하면 포스트의 목적달성이다 🔥
XV6 를 설치하기 위한 로드맵은 아래 링크에서 친절하게 알려주신다!
만약 make qemu(qemu-nox) 명령어가 안되시는 분들은...
현재 EC2 서버에 가상머신 빌드를 위한 라이브러리들이 설치되어 있지 않기 때문에 아래 명령어들을 통해 설치해주도록하자
sudo apt-get install build-essential
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager
sudo systemctl is-active libvirtd
출력에 active를 확인하여 데몬이 시작되었는지 확인한다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/
좋은 정보 감사드립니다 꾸벅🙏🏻