【상편·미완성】Surface Pro X(ARM64 스냅드래곤 8cx2) 커널 어댑터 - Linux 설치 실기
서문
잘 알려져 있듯이, ARM64 플랫폼 컴퓨터에서 운영체제를 실행하면 여러 호환성 문제에 부딪힙니다. 마이크로소프트의 오랜 노력 덕분에 ARM 아키텍처의 Windows는 점점 더 쾌적해지고 있으며, x86_64 애플리케이션을 번역해 실행해도 능숙하게 처리할 뿐만 아니라 성능 저하도 적고, 더 긴 배터리 사용 시간을 얻을 수 있습니다. 예를 들어 Surface Pro X는 순수 ARM 프로그램을 실행할 때 밝은 화면에서 놀랍게도 6-7시간의 배터리 수명을 자랑하는 반면, 약 20% 더 큰 배터리를 탑재한 Surface Pro 9 Intel 버전은 3.5시간 또는 그 이하(절전 모드를 사용하지 않을 경우)로 버티는 데 그칩니다. 또한 Pro X는 Pro 9보다 무려 3년 일찍 출시되었음에도 일상적인 사용에서 성능 체감이 거의 차이 나지 않으며, 오히려 고부하 상황에서는 Pro 9의 팬이 심하게 돌고 시스템이 버벅거리며 성능 발휘가 2020년에 출시된 Surface Pro X 2세대보다도 못한 경우가 있습니다. 따라서 ARM 칩에서 컴퓨터 운영체제를 실행하는 것은 휴대용 기기에 있어 점점 더 큰 잠재력을 지니고 있습니다.
하지만 현재 시중에 나와 있는 모든 Linux 배포판 중 어느 것도 스냅드래곤 칩, 특히 8cx 1세대와 2세대에 맞게 조정되어 있지 않습니다. 처음에는 배포판부터 시작해 보려고 했지만, 일곱여덟 개의 배포판을 부팅해 보려다 모두 실패했습니다. 거의 모든 자료(중국어, 영어 및 더 많은 언어의 자료 포함)를 찾아봤지만, Surface 및 기타 8cx 기기를 위한 설치 가이드를 작성한 사람이 아무도 없다는 것을 발견했습니다. 이것이 제 실천에 큰 도전이 되었습니다.
그렇다면 Windows ARM 노트북이 이렇게 좋은데, 왜 굳이 Linux를 실행하려고 애쓰는 걸까요?
이는 악명 높은 WeChat 때문입니다. WeChat은 ARM64용 Windows 버전을 제공하지 않습니다. 앞서 언급한 배터리 수명은 실행하는 모든 소프트웨어가 ARM64를 완벽히 지원한다는 전제하에 가능합니다. x86-64 소프트웨어 몇 개만 동시에 실행해도 배터리 수명은 약 4시간으로 줄어들고, 1-2시간이 사라집니다. 여전히 가치가 없습니다. 그래서 저는 이 기기에 Linux를 설치하기로 결정했습니다.
험난한 과정
이유
먼저, ARM 기기에서 운영체제를 실행하는 것 자체는 어렵지 않습니다. BIOS가 일반 컴퓨터처럼 간단하고, 칩이 호환되며, 운영체제의 커널이 이 기기의 핵심 드라이버를 지원하기만 하면, 기본적으로 ARM64 컴퓨터는 작동합니다. 일반적인 Linux 커널은 대부분의 일반적인 오픈 소스 드라이버를 통합하고 있어, 일반 컴퓨터에 Linux를 설치할 때 드라이버 설치라는 귀찮은 과정 없이 임시 부팅에 진입하고, 설치를 클릭하고, 설치 프로그램이 진행 표시줄을 끝까지 채울 때까지 기다리면 바로 사용할 수 있습니다.
하지만 이건 Surface입니다.
Surface 자체가 일반 컴퓨터와 다를 뿐만 아니라, 터치스크린, 키보드, 스피커 등이 시중에서 흔히 볼 수 있는 플러그 앤 플레이 제품이 아니기 때문에 이러한 드라이버를 구하기가 매우 어렵습니다. 게다가 스냅드래곤 8cx2 칩 자체가 거의 모든 Linux 배포판과 호환되지 않으며, 이 컴퓨터의 칩은 원래의 8cx2가 아니라 Microsoft가 개조한 Microsoft SQ2라는 이름의 칩입니다. 따라서 우리는 고수가 적응시켜 주기를 기다릴 수밖에 없습니다.
과정
첫째 날, 저는 순진하게도 배포판부터 시작하려고 했습니다: Ubuntu에서 Debian으로, CentOS에서 deepin으로. 그중 Debian 13의 비자유 하드웨어 버전이 시스템 설치 페이지까지 부팅하는 데 성공했지만, USB와 Surface 키보드, 터치스크린을 전혀 사용할 수 없었습니다. 저는 범용 커널만으로는 Surface와 같은 하드웨어에 정상적으로 설치할 수 없다는 것을 깨달았습니다.
둘째 날, 저는 linux-surface 프로젝트에 의존하기로 결정했습니다.
하지만 이 프로젝트에는 오해의 소지가 있습니다. 홈페이지의 기기 지원 목록에 Surface Pro X 지원이 명확히 명시되어 있지 않아서(지원되는 모든 기기는 x86 칩을 탑재한 기기로만 표시됨), 처음에는 이 프로젝트를 고려하지 않고 스냅드래곤 8cx 칩으로 부팅 가능한 Linux 시스템만 검색했습니다. 프로젝트 홈페이지로 돌아가 보니, 온라인 섹션에 눈에 띄지 않는 프로젝트가 하나 있었습니다: aarch64-arch-mkimg. 이것은 부팅 가능한 이미지(ArchLinuxARM, 처음에 고려했지만 공식적으로 지원되지 않음)로, 라이브 환경에서만 부팅 가능한 USB 부팅 이미지에 해당합니다. 놀랍게도, USB에 구운 후 디스플레이가 정상이고, USB가 정상이며, Surface 키보드와 Wi-Fi도 정상적으로 작동했습니다.
이 이미지를 사용하면, 비록 이 이미지를 통해 직접 하드 디스크에 Linux를 설치할 수는 없지만, 적어도 필요한 커널 프로그램을 얻을 수 있습니다.
제 생각은 AI의 지시에 따라 단계별로 디스크 파티셔닝과 설치 과정을 진행하는 것이었습니다. 하지만 개미만 한 글자가 화면에 표시되어 너무 불편했고, 한참 동안 작업한 끝에 시력이 좋아진 것 같았습니다... 하지만 성공하지 못했습니다. 시스템이 Linux로 정상 부팅되지 않았습니다.
하지만 저는 잘못된 결정을 내렸습니다: 성공적으로 부팅된 Debian을 연구하기로 한 것입니다. 자세한 설명은 생략하겠습니다. 몇 시간을 더 낭비했습니다...
막다른 골목에 다다랐을 때, 갑자기 한 가지 생각이 떠올랐습니다: Wi-Fi에 정상적으로 연결할 수 있다면, 에이전트를 사용해 SSH로 제 컴퓨터에 연결하여 AI가 작업하도록 하면 어떨까?
바로 실행에 옮겼습니다. 컴퓨터에서 Mimo Code를 사용해 Surface에 연결하고 바로 작업을 시작했습니다(사실 SSH 연결도 힘든 작업입니다. 실패할 때마다 라이브 환경으로 재부팅하고, Wi-Fi에 연결하고, root로 전환하고, SSH를 활성화해야 했으며, 매번 눈과 머리, 손가락이 고통스러웠습니다). 연속해서 일곱여덟 번 재부팅하며 오류가 발생했고, 오후 1시부터 4시까지 계속 작업했습니다.
하지만 저는 순수하게 바보였음을 깨달았습니다.
로그인하기 귀찮아서 계속 Xiaomi의 무료 기본 모델을 사용했는데, 이런 간단한 작업은 작은 모델로도 충분할 거라고 생각했습니다. 하지만 전환점은 오후 4-5시, AI 사용 피크 시간에 무료 모델이 심하게 끊기면서, 결국 Mimo에 로그인하여 다시 작업을 진행하도록 한 것입니다. 마지막으로 AI에 명령을 입력했을 때, 성공했습니다. 시스템이 Linux 명령줄 인터페이스로 성공적으로 부팅되었습니다! 비록 이것은 아직 미완성 상태였지만, 성공을 향한 큰 한 걸음이었습니다.
믿기지 않으시겠지만, 저는 이 과정을 한 번에 담은 동영상도 가지고 있습니다. Pro 모델로 전환하자마자 첫 번째 시도에 성공했습니다. 지난 이틀 동안 대체 무엇을 한 건지? 순수하게 자신을 학대한 것 아닙니까?!
셋째 날, 미완성 시스템을 꾸미기 시작했습니다. 시스템을 꾸미는 것은 정말 번거로운 일이었지만, AI의 도움 덕분에 일주일에서 이주일이 걸릴 작업을 줄일 수 있었습니다. 어려운 점은: 첫째, 시스템 드라이버가 완전하지 않아 Wi-Fi에 연결할 수 없었고, SSH로 직접 연결할 수도 없었으며, 가장 황당한 것은 계정과 비밀번호가 없었다는 것입니다. 따라서 먼저 로그인 문제를 해결해야 했습니다(이런 작은 일도 AI로 해결 가능). 그 후, 난관은 아직 네트워크에 연결할 수 없다는 것이었습니다. 유선을 연결해도 소용없었습니다. 이때 이전에 USB 부팅용으로 사용했던 USB를 포맷하고, AI가 이전에 다운로드한 유용한 커널이 포함된 이미지를 기반으로 스크립트를 작성하고, 네트워킹 도구를 설치하고, openssh를 설치하고, IP 주소를 자동으로 표시하도록 해야 했습니다. 이 단계에서도 약간의 인내심이 필요합니다. 오류 메시지를 직접 마주해야 합니다. 이후에 요점을 정리하여 공개하겠습니다.
다음 단계는 다시 SSH로 연결하는 것이었습니다. 시간은 오후가 되었습니다. 하지만 적어도 이제 어려운 점은 모두 해결되었습니다. 우리는 계속해서 손을 놓고 MimoCode가 GNOME(취향에 따라 KDE를 선택할 수도 있지만, 저는 Nyarcher를 적용하고 싶었습니다. ArchLinux를 Nyarch처럼 2차원 분위기로 물들일 수 있는 패치입니다), WeChat 및 QQ의 Linux ARM64 버전 등 일반적인 소프트웨어를 설치하도록 했습니다. (물론, 이 시점에서 Wi-Fi와 Bluetooth가 가끔 드라이버를 잃을 수 있으므로 해결해야 할 수도 있습니다.) 그리고 이 3일 동안 가장 여유로운 시간이 찾아왔습니다: 차를 마시는 시간. 아닙니다, 그것은 여러분의 이야기이고, 저는 운전면허 시험 과목 1 영상을 공부하러 가야 했고, 컴퓨터는 그냥 놔뒀습니다. (아, 수능이 끝난 지 한 달이 지난 것 같은데, 매일 일하는 것 같고, 전혀 쉬지 못하고 있네요!)
여기까지가 Surface에 Linux를 설치한 이야기입니다.
사진과 상세 튜토리얼은 하편에서 계속됩니다!