집에 굴러다니는 구형 갤럭시탭 10.1이 안드로이드 4.x에 멈춰 있다면, SD카드에 리눅스(Debian armhf)를 올려서 “진짜 OS”처럼 쓰는 방법이 있습니다.

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

이 모델명은 “갤럭시탭 10.1”로 불리기도 하지만, 부팅 화면에서 Samsung Galaxy Note 10.1로 표시되는 제품군이 많습니다. 모델명이 다르면 그대로 따라하면 위험합니다.
su가 정상 동작하는지 미리 확인합니다이 기기 커널이 매우 오래돼서 최신 GCC로 빌드하면 삐걱거릴 수 있습니다.

그래서 Ubuntu 14.04(32bit) VM 같은 “옛날 환경”을 하나 만들어두면 편합니다.
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은 꺼도 됩니다.
/dev/sdX1로 표기합니다(본인 환경에 맞게 확인)sudo mount /dev/sdX1 /mnt
sudo apt update
sudo apt install -y debootstrap qemu-system-arm qemu-user-static
원문은 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
구형 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
sudo cp -r results/boot /mnt/
sudo cp -r results/lib/modules /mnt/lib/
sudo cp -r results/opt /mnt/
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가 만들어졌습니다.
키보드가 없으면 첫 부팅이 답답할 수 있어 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
리눅스 PC에서 ADB가 필요합니다.
sudo apt install -y 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
첫 부팅은 오래 걸릴 수 있습니다
멈춘 것처럼 보여도 실제로는 디스크 작업/초기 설정 중인 경우가 많습니다. 괜히 껐다 켜면 파일시스템이 꼬일 수 있어요.
혹시 문제가 생기면, 백업해둔 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. 이 기기 커널이 너무 오래돼서 “최신 유저랜드”가 오히려 트러블을 만드는 경우가 있습니다. 잘 올라가는 조합부터 잡고, 그 다음에 욕심내는 게 속이 편합니다.
| 넥스폰 실사용 관점 안드로이드·리눅스·윈도우11 한 손에 담는 트리플 OS 스마트폰 (0) | 2026.01.28 |
|---|---|
| 갤럭시탭 우분투 설치 방법 Termux로 간단하게 VNC로 GUI 설정 (7) | 2026.01.27 |
| 구글 OTP 복구·백업 (핸드폰 분실·번호 변경·기기 교체·내보내기) (0) | 2026.01.27 |