제가 2년 동안 진행해 온 프로젝트는 최신 버전의 Linux에서 KVM(libvirt 및 virt-manager 지원)을 활성화하고 오래되었지만 여전히 우수한 ARM Chromebook 모델 xe303c12에서 커널을 활성화하는 것입니다.
내 목표는 armV7용 FreeBSD 13.2를 가상화하는 것입니다. 이 프로젝트가 거의 끝났어요. 현재 저는 Ubuntu 22.04를 사용하고 있습니다(하지만 Devuan 5에서도 작동합니다). KVM이 활성화되어 있고 virt-manager가 제대로 실행되고 있습니다.
FreeBSD를 거의 가상화할 수 있게 되었습니다. 거의 해결해야 할 문제를 발견했기 때문입니다. 그렇지 않으면 전체 프로젝트가 실패할 것입니다. Ubuntu는 사용 가능한 메모리를 1GB만 인식하지만 ARM Chromebook에는 2GB의 메모리가 마더보드에 납땜되어 있습니다. 따라서 이전 커널(및 우분투) 버전으로 KVM을 활성화하려고 시도한 첫 번째 프로젝트를 전환하는 동안 1GB의 메모리가 손실되었습니다. 여기에서 확인할 수 있습니다.
http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook/#setting-up-the-boot-medium
내 프로젝트는 최신 커널 버전(5.4)과 우분투 버전(22.04)을 사용합니다. 커널을 다시 컴파일할 때 Virtual Open Systems 개발자가 사용하는 3.13 커널에서 활성화된 일부 커널 항목이 손실된 것 같습니다. 불행하게도 내 커널 구성에서 어떤 항목이 누락되었는지 알 수 없습니다.
다음 명령을 실행하는 운영 체제의 사용 가능한 메모리를 확인했습니다.
# free -m
1GB의 메모리를 복원하지 않고는 FreeBSD를 가상화할 수 없습니다. 왜냐하면 1GB는 호스트 및 게스트 운영 체제를 모두 실행할 수 있는 매우 작은 양의 메모리이기 때문입니다.
그렇다면 2GB의 메모리를 모두 사용하려면 어떤 커널 항목을 추가해야 하는지 찾는 데 도움을 주실 수 있나요?
Virtual Open System은 자체 커널 구성 파일을 제공하며 여기에 저장했습니다.
https://pastebin.ubuntu.com/p/j4B54TChKD/
커널 프로필을 사용하여 총 2GB의 여유 메모리가 있음을 확인했습니다(Linux를 로드하는 데 400MB를 소비했기 때문에 600MB만 남았습니다. 이는 좋지 않습니다. 실제로 qemu 충돌이 많이 발생했습니다). 하지만 내 프로필을 사용하고 OS가 1GB로만 시작되면
두 개의 커널 구성 파일을 공유하고 싶습니다.
- 커널 3.13 dmesg 로그 파일은 다음과 같이 2GB를 인식합니다.
https://pastebin.ubuntu.com/p/gsw9SM4zY3/
- 커널 5.4 dmesg 로그 파일은 다음과 같이 1GB만 인식합니다.
https://pastebin.ubuntu.com/p/W6Mgj4jGg2/
dmesg 로그(커널 3.13 대 커널 5.4 프로필)를 비교했는데 이것이 바로 여유 메모리가 1GB밖에 없는 이유라고 생각합니다.
OF: fdt: 메모리 범위 0x40000000 - 0x80000000 무시
이 줄은 커널 3.13 dmesg 로그 파일에는 없지만 커널 5.4 dmesg 로그 파일에는 있습니다. dtb 파일 생성과 관련된 것 같습니다.
어떻게 생각하나요?