![[프로젝트] 안드로이드 기기에서 리눅스 GUI 구동하기 (with. Galaxy S20+)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FmI2Kf%2FbtsOMrB43SV%2FAAAAAAAAAAAAAAAAAAAAAG008BycUioBeU97UomsDh5bT-mmMhyZeSBR1gBhqZdx%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DTdZ6Ltp%252FynDaZQJKE%252B3jsUgbwS8%253D)
별 쓸모 없는 프로젝트인 것 같긴 하지만, 그래도 뭔가 공기계를 어떻게 사용할 수 있을까 고민하다가 리눅스용 장비로 사용할 수 있으면 좋겠다 싶어서 정리하게 된 글이다.
루팅해서 안드로이드를 싹 밀고 기기에 리눅스를 설치하면 훨씬 좋겠지만, 이건 위험 부담도 크기에 Termux라는 리눅스 터미널 에뮬레이터로 리눅스를 돌리고, GUI까지 출력할 수 있게 설정을 진행해볼 예정이다.
🧩 준비물
- 안드로이드 기반 스마트폰 (혹은 안드로이드 기반 태블릿)
이 글에서는 갤럭시 S20+ 모델(SM-G986N)을 사용하였다. 해당 모델의 하드웨어 스펙은 아래와 같다.
- CPU : 퀄컴 스냅드래곤 865
- Memory : 12GB / 256GB
🌐 참고 자료
아래 글을 참고하여, 현 시점(2025.06.23. 기준)에 맞게 일부 수정하여 진행하였다.
- Termux 리눅스 강좌 1부 : 리눅스 컨테이너 설치 및 GUI 구동하기 - 미코
- Termux 리눅스 강좌 2부 : GPU 가속 설정하기 - 미코
- Termux 리눅스 강좌 3부 : Widget으로 빠른 실행/종료 설정하기 - 미코
- Termux 리눅스 강좌 4부 : 아드레노 GPU Vulkan 드라이버 설치 - 미코
📌 Termux 소개
간단하게 Termux가 뭔지 간단하게 소개만 하고 넘어가보자.
❓Termux가 무엇인가?
- Termux는 안드로이드 운영체제에서 동작하는 터미널 에뮬레이터이자 리눅스 환경을 제공하는 애플리케이션
- 기존에 존재하던 다른 안드로이드 터미널 에뮬레이터와 달리, Debian/Ubuntu와 유사한 패키지 매니저(
apt
)를 제공하며, 별도의 루팅 없이도 다양한 리눅스 패키지 및 개발 환경을 설치하고 사용이 가능
❓Termux의 주요 특징은?
- 리눅스 사용자 공간 환경 ➡️ 안드로이드 리눅스 커널 위에 리눅스 유저랜드를 제공하여 다양한 리눅스 도구와 언어 사용 가능
- 패키지 관리 ➡️
apt
와 유사한 패키지 매니저(pkg
)를 통해 소프트웨어 설치, 업데이트, 삭제가 가능 - 비루팅 환경 지원 ➡️ 루팅이 필요 없고, 일반 사용자 권한 내에서 동작
- 확장성 ➡️ 추가 애드온 애플리케이션을 통해 안드로이드 시스템과의 연동성 강화 가능
- 스크립팅 및 개발 ➡️ 다양한 언어 런타임과 개발 환경 구축 가능
🛠️ Termux 및 리눅스 배포판(우분투) 설치
소개는 간단하게 넘어가고, 본격적으로 Termux와 리눅스 배포판(우분투) 설치를 진행해보자.
🛠️ Termux 설치
먼저 Termux 애플리케이션을 설치해야 한다.
Google Play Store에도 Termux 애플리케이션이 있긴 하지만, 개발자의 말에 따르면, 구글 플레이 정책에 따라 일부 기능이 제거되었거나 수정되었다고 한다. 안정성과 지원 기능 면에서 F-Droid나 GitHub 빌드 버전보다 부족할 수 있기 때문에 F-Droid나 GitHub 빌드에서 설치하는 것을 권장한다고 한다. 개발자의 권장에 따라, F-Droid에서 설치 APK 파일을 받아서 설치를 진행한다.
🛠️ Termux, Termux:API, Termux:Widget 설치
먼저 F-Droid에서 APK 다운로드를 통해 설치를 진행할 수 있는 Termux, Termux:API, Termux:Widget 설치를 진행한다. 아래 링크에서 APK 파일을 다운받을 수 있다. (F-Droid 애플리케이션을 다운받을 필요는 없다.)
Termux | F-Droid - Free and Open Source Android App Repository
Termux | F-Droid - Free and Open Source Android App Repository
Terminal emulator with packages
f-droid.org
Termux:API | F-Droid - Free and Open Source Android App Repository
Termux:API | F-Droid - Free and Open Source Android App Repository
Access Android functions from Termux
f-droid.org
Termux:Widget | F-Droid - Free and Open Source Android App Repository
Termux:Widget | F-Droid - Free and Open Source Android App Repository
Launch Termux commands from the homescreen
f-droid.org
설치하고자 하는 프로그램 링크를 들어가면, 아래 이미지와 같이 버전에 따라 APK 다운로드를 바로 진행할 수 있다. F-Droid 애플리케이션을 받지 말고, 아래 이미지와 같이 APK를 바로 다운받아서 설치하면 된다.
현 시점(2025.06.23. 기준)에서 최신 버전은 다음과 같다. (설치하는 시점에 따라 버전은 다르니, 설치하는 시점에서 pre-release
가 아닌 가장 최신 버전으로 설치하면 된다.
- Termux : 버전 0.118.3 (1002)
- Termux:API : 버전 0.52.0 (1001)
- Termux:Widget : 버전 0.14.0 (1000)
🛠️ Termux:X11 설치
Termux:X11은 F-Droid에 없어서 GitHub에서 APK를 다운받아서 설치해야 한다.
Releases · termux/termux-x11
Termux X-server add-on. Contribute to termux/termux-x11 development by creating an account on GitHub.
github.com
위 링크로 들어가면 Termux-X11의 최신 APK 파일을 볼 수 있다. 이 중에서 ARM64용 APK와 .deb
파일을 받으면 된다.
APK 파일을 모두 받았으면, 설치를 진행한다. 설치가 완료되면 아래와 같이 4개의 애플리케이션이 설치되어 있으면 된다.
여기까지 진행되었으면, 1단계 완료다. 가장 쉬운 단계이다.
🛠️ 리눅스 배포판(우분투) 설치
이제 리눅스 배포판인 우분투를 설치해보자. Termux 앱을 실행하면 아래와 같은 화면이 뜬다. 이 화면에서 진행하면 된다. (화면이 필요할 것 같을 때에만 사진을 첨부할 예정)
먼저 아래 명령어로 패키지 목록 업데이트와 패키지 업그레이드를 진행한다.
pkg update
pkg upgrade -y
중간에 아래와 같이 뜨면, Y
를 입력하고 Enter
를 눌러 넘어가면 된다.
아래 명령어를 입력하고, 저장소 접근 권한을 허용한다.
termux-setup-storage
여기까지 진행되었으면, SSH 연결을 먼저 진행해보자. 폰으로 직접 진행하거나 복사&붙여넣기가 불가능한 작업 환경이라면 이후 작업이 힘들 수 있기에, SSH로 연결해서 PC에서 편하게 작업을 진행할 수 있도록 세팅을 하자.
SSH 연결에 필요한 openssh
를 설치하고, sshd 명령어로 실행한다.
pkg install openssh -y
sshd
네트워크 정보를 확인하는 ifconfig
명령어를 사용하기 위해 net-tools
를 설치한다.
pkg install net-tools -y
ifconfig
로컬 호스팅 상태에서 SSH 연결을 진행할 예정이니까 id/pwd 기반 접근으로 접속을 진행하면 된다. whoami
명령어로 사용자 계정을 확인한 후, passwd
명령어로 비밀번호를 설정한다. (접속할 때마다 입력하기 귀찮으니 비밀번호는 최대한 간단하게 설정한다.)
whoami
passwd
일반적으로 SSH는 22번 포트를 사용하지만, Termux에서는 8022번 포트를 사용한다. 이는 시스템에서 사용하는 포트 번호랑 겹쳐서 그런 것으로 알고 있다. SSH 연결을 지원하는 여러 프로그램이나 터미널이 있지만, 필자는 MobaXterm을 사용하였고, IP를 통해 연결하면 아래와 같이 모바일에 설치된 Termux를 터미널 환경에서 사용할 수 있다. (스마트폰의 Termux를 종료하면 안된다.)
지금부터는 MobaXterm에서 진행한다. (당연히 Termux에서 직접 입력할 때에도 동일하게 사용하면 되고, PC와 DeX 간에 복사&붙여넣기가 안되는 관계로 SSH를 사용하여 진행한 것이다.)
우분투 설치와 오디오 환경, 그리고 파일 편집에 필요한 프로그램을 설치한다.
pkg install -y proot-distro pulseaudio vim
설치가 완료되면, PulseAudio 서버를 시작하기 위한 스크립트를 작성한다.
vim ~/.profile
생성된 .profile에 아래 스크립트를 작성하고 저장한다.
pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1
pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
그리고 아래 명령어로 우분투를 설치한다.
proot-distro install ubuntu
우분투 설치가 완료되면, 아래 명령어로 우분투로 로그인한다.
proot-distro login ubuntu --user root --shared-tmp --no-sysvipc
우분투로 로그인하면, 맨 앞에 root@localhost
라고 뜨며, root
사용자로 접속한 것을 확인할 수 있다.
우분투 패키지 목록 업데이트와 패지키 업그레이드를 진행한다. (apt
로 사용해도 되는데, 진행해본 결과 apt-get
이 더 안정적으로 사용이 되는 것 같다.)
apt-get update
apt-get upgrade -y
이렇게 설치하는 우분투는 표준 환경에서 설치되는 것이 아니기 때문에 예상하지 못한 문제가 발생할 수 있다. 대화형 UI 동작 오류를 방지하고 패키지 관리자인 APT의 여러 부가 기능을 사용하기 위한 프로그램을 설치한다.
apt-get install -y dialog apt-utils
그리고 XFCE4 관련 패키지와 진행에 필요한 패키지를 설치하기 위해 아래 명령을 입력해서 관련된 패키지를 모두 설치한다. (설치는 약 20분간 진행된다.) (XFCE4는 리눅스나 유닉스 계열 운영체제에서 동작하는 경량 데스크탑 환경 중 하나이다.)
apt-get install -y psmisc htop software-properties-common wget mesa-utils dbus-x11 xfce4 xfce4-terminal xfce4-goodies sudo nano vim git tzdata
설치가 진행되다가 아래와 같이 키보드 세팅 창이 뜨면, Korean → Korean을 선택하고 설치를 계속 진행한다.
우분투 기본 저장소에 있는 파이어폭스는 사용이 불가능하다. 따라서 Mozilla의 PPA를 추가해서 firefox-esr
을 따로 설치한다.
add-apt-repository ppa:mozillateam/ppa
apt-get update
apt-get install -y firefox-esr
설치가 완료되면, passwd
명령어로 root 계정의 비밀번호를 설정한다.
passwd
비밀번호 설정이 끝나면 아래 명령어로 3개의 그룹(storage
, wheel
, video
)을 추가한다.
groupadd storage
groupadd wheel
groupadd video
그리고 새로운 su 계정을 생성한다. 생성과 동시에 방금 만든 그룹에 포함시키기 위해 아래 명령어로 su 계정을 추가한다. (username
대신 원하는 계정명을 입력하면 된다. 영소문자로 구성한다.)
useradd -m -g users -G wheel,audio,video,storage -s /bin/bash username
그리고 passwd username
명령어로 su 계정의 비밀번호를 설정한다. (여기서도 마찬가지로 username
대신 생성한 su 계정 이름을 입력하면 된다. 앞으로 username
부분은 모두 su 계정 명으로 변경한다고 생각하면 된다.)
passwd username
비밀번호 설정이 완료되면, su 계정에서 관리자 권한(sudo
)을 사용하기 위한 설정을 해야한다. 관리자 계정 설정을 위해 아래 명령어로 sudoers
파일을 열어 편집한다.
vim /etc/sudoers
아래 부분을 찾아 아래와 같이 수정한다. (username
대신 본인의 su 계정 이름을 입력한다.)
...
# User provilege specification
root ALL=(ALL:ALL) ALL
useranme ALL=(ALL:ALL) ALL
...
권한 설정이 완료되면, 사용자 계정으로 접속한 후, 홈 디렉토리로 이동한다.
su username
cd ~
그럼 아래와 같이 root 계정이 사용자가 만든 su 계정으로 바뀐 것을 확인할 수 있다.
우분투에서 PulseAudio 서버 시작을 위해 .profile
파일을 열어 수정한다.
vim ~/.profile
아래 변수를 이미지를 참고하여 해당 위치에 변수를 추가한 후, 저장한다.
export PULSE_SERVER=127.0.0.1 && pulseaudio --start --disable-shm=1 --exit-idle-time=-1
GUI 실행 스크립트 작성을 위해 startx.sh
파일을 생성하고 편집모드로 들어간다.
vim startx.sh
아래 스크립트를 작성하고 저장한다.
export DISPLAY=:0
# XFCE4-SESSION
dbus-launch --exit-with-session startxfce4 &
스크립트 실행이 가능하도록 실행 권한을 부여한다.
chmod +x startx.sh
권한 부여가 끝나면, exit
을 두번 입력해서 우분투를 종료한다.
exit
exit
exit
을 두 번 입력하면, 아래와 같이 원래 Termux 터미널 환경으로 돌아온다.
우분투가 종료되었으면 이제 X11 기반의 GUI 화면을 띄우기 위한 작업이 필요하다. 먼저 x11-repo
를 설치한다.
pkg install x11-repo
그리고 리눅스 GUI 구동에 필요한 두 개의 패키지를 설치한다. xwayland
는 Wayland 호환 X 서버이며, xorg-server-svfb
는 가상 프레임버퍼 기반 X 서버이다.
pkg install -y xwayland xorg-server-xvfb
그리고 맨 앞에서 다운 받았던 .deb
패키지를 설치한다. 안드로이드 기기에서 해당 링크를 통해 다운로드를 받았으면 다운로드 폴더 안에 들어 있을 것이다. 경로가 같다면 아래 명령어로 설치를 진행한다.
dpkg -i storage/shared/Download/termux-x11*.deb
Termux의 속성 값을 수정하기 위해 termux.properties
를 편집모드로 연다.
vim ~/.termux/termux.properties
그리고, allow-external-apps = true
부분을 찾아서 주석을 해제한다.
여기까지 진행하면, GUI 구동을 위한 설정까지 마무리되었다. 이제 아래 명령어를 순서대로 입력한다. username
부분에는 본인이 생성한 su 계정 이름을 입력하면 된다.
XDG_RUNTIME_DIR=${TMPDIR} termux-x11 :0 -ac &
proot-distro login ubuntu --user username --shared-tmp --no-sysvipc
./startx.sh
아래와 같은 화면이 뜨면, 성공한 것이다.
그리고 Termux:X11 애플리케이션을 실행하면 아래와 같이 GUI 화면이 뜬다.
일단 GUI 구동까지는 성공! 다음은 GUI 환경에서 보다 편하게 사용하기 위한 설정을 진행해보자.
🖥️ Termux:X11 설정
Termux:X11 애플리케이션의 설정을 변경해야 한다. Termux:X11 아이콘을 길게 탭하거나 마우스 우클릭한 후 Preferences를 선택한다.
먼저 Output 설정을 진행한다. PIP Mode는 OFF로 설정하고, Fullscreen는 ON으로 설정을 변경한다.
그리고 Keyboard 설정에서 Show additional keyboard는 OFF로 설정하고, Intercept system shortcuts은 ON으로 설정한다.
여기까지 설정하면, 아래와 같이 전체 화면 모드로 실제 리눅스 GUI처럼 사용할 수 있다.
여기까지 진행하면, 스크린세이버(화면보호기)를 종료해야 한다. 좌측 상단에 있는 Applications > Settings > Xfce Screensaver를 실행한다. 만약 존재하지 않으면 아래 명령어로 설치한다. 이때 명령어는 GUI 환경에서 터미널을 실행해서 입력한다.
sudo apt-get update
sudo apt-get install -y xfce4-screensaver
Xfce Screensaver 설정 창이 뜨면, Screensaver와 Lock Screen 모두 OFF로 변경한다.
그리고 하단 패널의 브라우저 아이콘 우클릭 후 속성(Properties)을 클릭한다.
그리고 기본으로 설정되어 있는 웹 브라우저를 삭제하고, 아까 앞에서 설치했던 파이어폭스를 찾아서 추가한다.
파이어폭스를 실행하고, 주소창에 about:config
를 입력해서 설정을 실행한다. 아래와 같은 창이 뜨면 Accept the Risk and Continue 버튼을 클릭하고 계속 진행한다.
webgl.force-enabled
를 검색하고 true로 설정을 변경한다. 그럼 파이어폭스 브라우저에서 WebGL이 동작하게 된다.
⚡ 번외) Termux 완전 종료
Termux를 완전히 종료하기 위해서는 그냥 애플리케이션을 종료하는 것만으로는 안된다.
애플리케이션을 종료한 후, 설정 > 애플리케이션으로 들어간다. 그리고 Termux를 찾아 강제 중지를 시켜야 한다.
강제 중지까지 시키면, Termux는 완전히 종료된다. 만약 설치를 진행하다가 혹은 사용하다가 오류가 생겨서 Termux를 종료할 일이 생기면, 이렇게 완전히 종료한 후 작업을 진행해야 의도치 않은 오류를 방지할 수 있다.
이렇게 Termux와 관련된 모든 애플리케이션을 종료하면 완전히 깨끗하게 종료된다.
🖼️ GPU 가속 설정
그럼 이제 GPU 가속을 설정해보자. 위에 Termux를 종료하는 방법을 참고해서 Termux를 완전히 종료한 후, 다시 Termux를 실행한다.
그리고 아래 명령어로 GPU 가속을 위한 virglrenderer
와 mesa
를 설치한다.
pkg install -y virglrenderer-android
pkg install -y mesa*
만약, mesa
를 설치하는 중에 아래와 같은 오류가 뜨면 mesa-vulkan-icd-freedreno
만 설치를 진행한다. 두 개의 패키지가 충돌이 일어나는 오류이기 때문에, 둘 중에 하나만 설치하면 해결된다. 아래 명령어로 mesa 패키지에 필요한 패키지들을 하나씩 설치하면 된다.
pkg install -y mesa-vulkan-icd-swrast mesa-vulkan-icd-freedreno mesa-dev mesa mesa-demos
설치가 완료되면, virgl 서버를 실행하기 위한 명령어를 입력한다.
virgl_test_server_android &
그리고 앞서 Termux:X11을 실행하기 위한 명령어들을 입력한다. username
대신에 본인의 su 계정명을 입력한다.
XDG_RUNTIME_DIR=${TMPDIR} termux-x11 :0 -ac &
proot-distro login ubuntu --user username --shared-tmp --no-sysvipc
실행하기 위한 스크립트 파일(startx.sh
)을 수정해야 한다. 아래 명령어로 startx.sh
파일을 열어준다.
vim startx.sh
그리고 아래와 같이 수정한다.
export DISPLAY=:0 GALLIUM_DRIVER=virpipe MESA_GL_VERSION_OVERRIDE=4.3COMPAT MESA_GLES_VERSION_OVERRIDE=3.2
# XFCE4-SESSION
dbus-launch --exit-with-session startxfce4 &
그리고 수정한 startx.sh
스크립트 파일을 실행하고 Termux:X11를 실행한다.
./startx.sh
좌측 상단 메뉴인 Applications > About Xfce를 실행하면 정보를 볼 수 있다. 아래와 같이 GPU가 virgl로 변경되어 있으면 성공이다.
🖥️ GPU 가속 테스트 진행
GPU 가속 테스트 진행을 위해 neofetch
와 glmark2
, 그리고 mesa
패키지를 설치한다. Termux:X11 환경에서 터미널을 실행한 후 명령어를 입력하면 된다.
sudo apt install -y neofetch
sudo apt install -y glmark2
sudo apt install -y mesa*
아래 명령어로 glmark2 벤치마크를 돌려본다. 여기서 GPU 정보가 virgl (ex. Adreno 650)으로 표시되면 GPU 가속이 정상적으로 동작하는 것이다.
대략 glmark2에서는 130~150fps 정도의 성능이 나오는 것을 볼 수 있다.
아래 명령어로 glxgears 벤치마크를 시작할 수 있다.
glxgears
여기서는 약 300 ~ 400 fps 정도의 성능이 나오는 것을 알 수 있다.
neofetch 명령어를 입력하면 리눅스 정보와 호스트 디바이스 정보를 확인할 수 있다. 우분투의 가장 최신 LTS 버전인 24.04 버전이 설치된 것을 확인할 수 있다.
🖥️ Termux:X11 빠른 실행 및 종료 Widget 설정
실행하고 종료하는데 너무 귀찮은 작업들이 많아 이를 쉽게 Widget으로 처리해보고자 한다.이 작업을 위해 설치한 것이 바로 Termux:Widget과 Termux:API이다.
우선 실행 중인 Termux:X11과 Termux를 모두 완전히 종료한다. 그리고 Termux를 실행한다. 이번 작업은 만들어야 하는 스크립트 파일이 있기 때문에 DeX가 아닌 SSH에서 진행하였다.
아래 명령어로 termux-api
를 설치한다.
pkg install -y termux-api
그리고 아래 명령어로 termux 디렉토리 위치에 .shortcuts
디렉토리를 생성한다.
mkdir .shortcuts
그리고 리눅스 실행 스크립트를 작성하기 위해 아래 명령어를 입력한다.
echo '#!/bin/sh
virgl 실행 스크립트를 만들기 위해 아래와 스크립트를 한줄씩 입력한다. 마지막 계정id에는 본인이 만들었던 su 계정명을 입력하고, 실행이름 부분에는 공백없는 영문으로 실행을 위한 파일 이름을 입력한다. 필자는 ubuntu
로 설정했다.
killall -9 termux-x11 Xwayland pulseaudio virgl_test_server_android
termux-wake-lock; termux-toast "Starting X11"
am start --user 1 -n com.termux.x11/com.termux.x11.MainActivity
XDG_RUNTIME_DIR=${TMPDIR} termux-x11 :0 -ac &
sleep 3
pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1
pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1
virgl_test_server_android &
proot-distro login ubuntu --user 계정id --shared-tmp --no-sysvipc -- bash -c "export DISPLAY=:0 PULSE_SERVER=tcp:127.0.0.1:4713; GALLIUM_DRIVER=virpipe MESA_GL_VERSION_OVERRIDE=4.3COMPAT MESA_GLES_VERSION_OVERRIDE=3.2 dbus-launch --exit-with-session startxfce4"' > ~/.shortcuts/실행이름
이변에는 리눅스 종료 스크립트를 작성할 것이다. 아래 명령어를 입력한다.
echo '#!/bin/sh
그리고 아래 스크립트를 한줄씩 입력한다. 종료이름에는 공백없는 영문으로 종료 스크립트의 이름을 설정한다. 필자는 exit
으로 설정했다.
killall -9 termux-x11 Xwayland pulseaudio virgl_test_server_android
termux-wake-unlock; termux-toast "Stopping X11, virgl, etc."' > ~/.shortcuts/종료이름
그리고 폰 화면에 Termux:Widget을 배치하면 방금 생성한 두 개의 스크립트가 나타나는 것을 볼 수 있다.
이제 DeX 모드에서는 위젯을 지원하지 않지만, 폰 모드에서 위젯을 통해 실행한 후 DeX 모드로 접속해 Termux:X11을 실행하면 된다.
이렇게 이제 사용하지 않는 안드로이드 공기계를 이용한 리눅스 장난감 완성! 끝!
'🤖 프로젝트' 카테고리의 다른 글
[프로젝트] 스마트폰을 이용한 디스코드 봇 24시간 가동하기 (1) | 2025.06.12 |
---|---|
[프로젝트] 스마트폰을 이용한 파이썬 Flask 웹 서버 구동 (2) | 2025.06.04 |
[프로젝트] PintOS 프로젝트 - PintOS 세팅 (5) | 2025.04.06 |
since 2025.01.27. ~ 개발자를 향해....🔥