구형 갤럭시탭 10.1(노트 10.1 계열) 리눅스 설치: SD카드로 데비안 부팅까지(루트 필수)
집에 굴러다니는 구형 갤럭시탭 10.1이 안드로이드 4.x에 멈춰 있다면, SD카드에 리눅스(Debian armhf)를 올려서 “진짜 OS”처럼 쓰는 방법이 있습니다.

다만 이건 장난 수준이 아니라, 커널 빌드 + 리커버리 파티션 덮어쓰기(dd)까지 들어가서 실수하면 부팅이 안 될 수 있어요. 준비만 깔끔하게 해두면 의외로 쓸만합니다.
주의
이 글은 루트가 이미 된 기기 기준입니다. 또한 복구(원복)를 위해 리커버리 백업을 반드시 만들어두는 걸 전제로 작성했습니다. 배터리는 70% 이상, 케이블은 상태 좋은 걸로, 중간에 강제 재부팅은 피하세요.
대상 기기 확인
원문 기준으로는 GT-N8000 / GT-N8010 / GT-N8013 계열을 기준으로 합니다.

이 모델명은 “갤럭시탭 10.1”로 불리기도 하지만, 부팅 화면에서 Samsung Galaxy Note 10.1로 표시되는 제품군이 많습니다. 모델명이 다르면 그대로 따라하면 위험합니다.
- 설정 → 디바이스 정보에서 모델명 확인
- 가능하면 CPU/칩셋도 함께 확인(동일 모델이어도 지역/통신사 변형이 있는 경우가 있습니다)
준비물
- 루트된 갤럭시탭(위 모델군)
- microSD 카드 (가급적 좋은 것, 여기로 리눅스를 올립니다)
- 리눅스 PC 1대 (SD카드 작업/디부트스트랩/ADB)
- (권장) VirtualBox + Ubuntu 14.04.x ISO (커널 빌드용)
- 시간과 여유…(처음 한 번은 꽤 잡아먹습니다)
다운로드 링크
- VirtualBox
- Ubuntu 14.04.5 (old-releases)
- Android Platform-Tools (adb)
- opensgn/N8000 (kernel/toolchain 브랜치가 있는 저장소)
- thermatk/opensgn-easy (firmware/commonfiles 용도)
- debootstrap 개요
설치 전에 태블릿에서 켜둘 설정
개발자 옵션
- 설정 → 디바이스 정보 → 빌드 번호를 여러 번 탭해서 개발자 옵션 활성화
- 설정 → 개발자 옵션에서 USB 디버깅 켜기
화면/절전
- 작업 중 화면이 꺼지면 멈춘 것처럼 보일 수 있어 화면 자동 꺼짐 시간을 길게 잡아두는 게 편합니다
루트 권한 확인
- ADB로 들어가서
su가 정상 동작하는지 미리 확인합니다
1) 커널 빌드(구형 GCC가 필요한 이유)
이 기기 커널이 매우 오래돼서 최신 GCC로 빌드하면 삐걱거릴 수 있습니다.

그래서 Ubuntu 14.04(32bit) VM 같은 “옛날 환경”을 하나 만들어두면 편합니다.
VirtualBox에 Ubuntu 14.04 VM 만들기
- 가능하면 CPU 코어/메모리는 넉넉히
- VM 설정에서 PAE/NX 활성화
- 디스크 용량도 여유 있게(커널 컴파일/툴체인 포함)
- 공유 폴더를 하나 잡아두고 자동 마운트 켜기(결과물 빼낼 때 편합니다)
- Guest Additions 설치(공유 폴더 동작 확인)
- 공유 폴더 권한이 안 보이면 아래처럼 그룹 추가 후 재부팅
sudo usermod -aG vboxsf USERNAME
의존 패키지 설치
sudo apt-get update
sudo apt-get install -y git build-essential libncurses5-dev
소스/툴체인 내려받기
mkdir opensgn
cd opensgn
git clone https://github.com/opensgn/N8000.git -b arch-r4p0
mv N8000 kernel
git clone https://github.com/opensgn/N8000.git -b toolchain
mv N8000 toolchain
sudo mv toolchain /var/local/
git clone https://github.com/thermatk/opensgn-easy.git -b commonfiles
mv opensgn-easy firmware
커널 설정/빌드
cd kernel
make mrproper
export CROSS_COMPILE=/var/local/toolchain/bin/arm-linux-gnueabihf-
export ARCH=arm
export SUBARCH=armv7h
make n8000_linux_mali_defconfig
make menuconfig
메뉴에서 Boot options 쪽 커맨드라인을 아래처럼 바꿉니다.
root=/dev/mmcblk1p1 rw rootfstype=ext4 rootwait vmalloc=144M
저장 후 빌드합니다. (아래의 -j2는 코어 수에 맞춰 조절)
export INSTALL_MOD_PATH=$(pwd)/compiledmodules
make -j2
make modules_install
rm compiledmodules/lib/modules/3.0.31+/source
rm compiledmodules/lib/modules/3.0.31+/build
결과물 모으기
cd ..
mkdir -p results/{boot,opt}
cp kernel/arch/arm/boot/zImage results/boot/
cp kernel/System.map results/boot/
cp kernel/.config results/boot/config-$(ls kernel/compiledmodules/lib/modules/)
cp -r kernel/compiledmodules/lib/ results/
cp -r firmware/firmware/* results/opt
여기까지 완료되면 VM 공유 폴더로 results 폴더를 복사해두고, VM은 꺼도 됩니다.
2) SD카드에 루트 파일시스템 만들기(Debian armhf)
SD카드 파티션
- SD카드를 PC에 꽂고 ext4 단일 파티션으로 준비합니다
- 예시는
/dev/sdX1로 표기합니다(본인 환경에 맞게 확인)
sudo mount /dev/sdX1 /mnt
필요 패키지 설치
sudo apt update
sudo apt install -y debootstrap qemu-system-arm qemu-user-static
Debootstrap 실행
원문은 Debian Jessie(armhf)를 예로 들지만, 2026년 기준으로는 “최신 배포판”이 구형 커널에서 잘 안 돌아갈 수 있습니다. 성공률을 우선하면 구형 Debian 루트파일시스템을 쓰는 쪽이 편합니다.
sudo debootstrap --foreign --arch=armhf jessie /mnt http://ftp.debian.org/debian/
이후 ARM 2차 설치를 위해 qemu를 넣고 chroot로 들어갑니다.
sudo cp /usr/bin/qemu-arm-static /mnt/usr/bin
sudo mount -t proc /proc /mnt/proc
sudo mount -t devpts /dev/pts /mnt/dev/pts
sudo mount -t sysfs /sys /mnt/sys
sudo chroot /mnt /bin/bash
chroot 안에서 2차 설치를 마칩니다.
/debootstrap/debootstrap --second-stage
APT 저장소(구형 배포판이면 꼭 확인)
구형 Debian은 미러가 바뀌면서 업데이트가 막히는 경우가 있습니다.

이 경우엔 Debian 아카이브를 써야 합니다. 아래는 “되는 쪽”으로만 남겨두면 됩니다.
echo "deb http://ftp.debian.org/debian/ jessie main contrib non-free" > /etc/apt/sources.list
echo "deb http://ftp.debian.org/debian/ jessie-updates main contrib non-free" >> /etc/apt/sources.list
echo "deb http://security.debian.org/ jessie/updates main contrib non-free" >> /etc/apt/sources.list
apt-get update
apt-get dist-upgrade -y
이어서 initramfs와 abootimg를 설치합니다.
apt-get install -y abootimg initramfs-tools
chroot를 빠져나옵니다.
exit
커널 결과물 SD카드에 복사
sudo cp -r results/boot /mnt/
sudo cp -r results/lib/modules /mnt/lib/
sudo cp -r results/opt /mnt/
initramfs + recovery.img 생성
sudo chroot /mnt /bin/bash
cd /boot
mkinitramfs -o initrd.img $(ls /lib/modules/)
abootimg --create recovery.img -k zImage -r initrd.img -c "cmdline = root=/dev/mmcblk1p1"
exit
이제 SD카드 쪽 /boot/recovery.img가 만들어졌습니다.
3) (선택) 처음부터 데스크톱까지 같이 올려두기
키보드가 없으면 첫 부팅이 답답할 수 있어 GUI를 미리 올려두면 편합니다. 가벼운 조합으로 XFCE + lightdm + 네트워크매니저를 많이 씁니다.
sudo chroot /mnt /bin/bash
apt-get install -y locales
dpkg-reconfigure locales
apt-get install -y xorg xinput xvkbd xfce4 network-manager network-manager-gnome pulseaudio lightdm lightdm-gtk-greeter sudo
와이파이 모듈 옵션(원문 그대로)도 추가합니다.
echo "options dhd op_mode=0 nvram_path=/opt/wifi/nvram_net.txt_murata firmware_path=/opt/wifi/bcmdhd_sta.bin" >> /etc/modprobe.d/dhd.conf
echo "dhd" >> /etc/modules-load.d/dhd.conf
유저도 하나 만듭니다.
useradd -m -s /bin/bash -G sudo USERNAME
passwd USERNAME
로그인 화면에서 온스크린 키보드를 쓰려면 LightDM 설정을 만집니다.
nano /etc/lightdm/lightdm-gtk-greeter.conf
#keyboard=라인이 있으면#를 지우고keyboard=xvkbd로 변경show-indicators=~language;~session;~power를show-indicators=~language;~a11y;~session;~power로 변경
exit
4) 태블릿에 리커버리 올리고 SD카드로 리눅스 부팅
PC에 ADB 설치
리눅스 PC에서 ADB가 필요합니다.
sudo apt install -y adb
recovery.img를 태블릿 내부 저장소로 복사
- 태블릿을 USB로 연결
- MTP로 내부 저장소가 보이면 recovery.img를 내부 저장소 루트(또는 찾기 쉬운 폴더)로 복사
ADB 연결 확인
adb devices
리커버리 파티션 확인(강력 추천)
원문은 /dev/block/mmcblk0p6를 리커버리로 가정합니다. 기기마다 다를 수 있으니, 루트 쉘에서 by-name을 먼저 확인하는 게 안전합니다.
adb shell
su
ls -l /dev/block/platform/*/by-name
여기서 recovery가 어디를 가리키는지 확인한 뒤, 아래 dd 대상에 반영합니다.
리커버리 백업 + 덮어쓰기
아래는 원문 그대로의 예시입니다. 본인 기기에서 확인한 리커버리 블록으로 바꿔서 사용하세요.
cd /storage
dd if=/dev/block/mmcblk0p6 of=recovery.old
dd if=recovery.img of=/dev/block/mmcblk0p6
exit
exit
SD카드 장착
- PC에서 SD카드를 분리해서 태블릿에 삽입
특수 리커버리로 부팅
- 전원 + 볼륨 업(전원 버튼에서 더 먼 쪽 볼륨키) 누른 상태로 재부팅
- 스플래시 화면이 뜨면 버튼에서 손을 뗍니다
- 정상이라면 SD카드의 데비안 루트파일시스템으로 부팅이 시작됩니다
첫 부팅은 오래 걸릴 수 있습니다
멈춘 것처럼 보여도 실제로는 디스크 작업/초기 설정 중인 경우가 많습니다. 괜히 껐다 켜면 파일시스템이 꼬일 수 있어요.
원복(리커버리 되돌리기)
혹시 문제가 생기면, 백업해둔 recovery.old로 원래 리커버리를 되돌릴 수 있습니다. (마찬가지로 리커버리 블록은 기기에서 확인한 값 기준)
adb shell
su
cd /storage
dd if=recovery.old of=/dev/block/mmcblk0p6
exit
exit
FAQ
Q. “Tab 10.1 2014”라고 들었는데 모델명이 N8000 계열이면 맞나요?
A. N8000/N8010/N8013은 부팅 화면에 Note 10.1로 뜨는 경우가 많습니다. 이 작업은 모델/파티션 구조가 맞아야 해서, “비슷해 보여서” 진행하면 위험합니다.
Q. 왜 굳이 Ubuntu 14.04 VM을 쓰나요?
A. 커널 소스가 오래돼서 최신 GCC에서 에러가 나거나 경고가 폭발할 수 있습니다. 옛날 환경이 오히려 덜 삐걱거립니다.
Q. SD카드는 꼭 ext4인가요?
A. 원문 커맨드라인이 ext4를 전제로 잡혀 있습니다. 다른 파일시스템으로 바꾸려면 커맨드라인/설정도 같이 맞춰야 합니다.
Q. dd가 무서운데, 확인 방법이 있나요?
A. /dev/block/platform/*/by-name에서 recovery가 가리키는 블록을 먼저 확인하고, 그 값으로 dd를 실행하는 게 가장 안전합니다.
Q. 최신 데비안/우분투로 올리면 더 좋은가요?
A. 이 기기 커널이 너무 오래돼서 “최신 유저랜드”가 오히려 트러블을 만드는 경우가 있습니다. 잘 올라가는 조합부터 잡고, 그 다음에 욕심내는 게 속이 편합니다.
'IT 리뷰 > 안드로이드' 카테고리의 다른 글
| 넥스폰 실사용 관점 안드로이드·리눅스·윈도우11 한 손에 담는 트리플 OS 스마트폰 (0) | 2026.01.28 |
|---|---|
| 갤럭시탭 우분투 설치 방법 Termux로 간단하게 VNC로 GUI 설정 (0) | 2026.01.27 |
| 구글 OTP 복구·백업 (핸드폰 분실·번호 변경·기기 교체·내보내기) (0) | 2026.01.27 |