How to run Debian natively on the Motorola Xoom

by on Jun.19, 2011, under Uncategorized

Hey all,

I’ve seen a lot of people running linux on their xoom and other android devices but chrooted under android and using a VNC client to make use of the chrooted install. quite messy and less than efficient IMHO, so I set out to install it natively on my Xoom

I’ve managed to get Debian installed on my Xoom with the only issues being no sound and no Bluetooth, this is due to the proprietary nature of the sound drivers for the Tegra, and the lack of documentation for the BCM4329 Bluetooth under linux. if anyone has any tips with these I’d love to hear them.

Anyway, since the Xoom is an android device with an unlockable bootloader from the factory this wasn’t too difficult. the only issues were with the TegraFB and Touchscreen drivers. Thankfully Lilstevie from GalaxyLinux helped me out with the touchscreen driver and Robert Morell from NVidia provided a patch to Chromium for the FB which is here

(Todo: Add guide for using WIFI, upload prebuilt images)
(Update: Fixed the links)
(Update 14/2/12 Thanks to Thomas!)


Basically all you need to do is build a root fs and a kernel for your Debian install. this is actually quite easy. here’s how..


  1. Requirements
  2. Building the RootFS
  3. Building the Kernel
  4. Preparing the SDCard
  5. Putting it all together
  6. Rolling back to Android
  7. Acknowledgements






Building the RootFS

Before we do anything we’ll need to get the Wifi Firmware off the default install of Android

To do this run the following commands

# adb pull /system/vendor/firmware/fw_bcm4329.bin
# adb pull /system/etc/wifi/


Now lets install the tools you’ll need to create the rootfs

# apt–get install binfmt–support qemu qemu–user–static debootstrap

Once that’s done, make a directory for the rootfs to sit in until it’s ready for the SDCard and start installing the debian base

# cd ~
# mkdir deb_arm
# mkdir deb_arm/boot
# sudo /usr/sbin/debootstrap ––foreign ––arch armel squeeze deb_arm/ \

Once that’s done you’ll need to copy across some qemu files so you can chroot into the deb_arm folder and finish the installation of the base system

# sudo cp /usr/bin/qemu–arm–static deb_arm/usr/bin
# sudo chroot deb_arm
# export LC_ALL=C
# export LANGUAGE=C
# export LANG=C
# cd /debootstrap
# ./debootstrap ––second–stage

once that’s done you’ll need to edit your apt sources, to do so run the following

# echo debandroid > /etc/hostname
# echo “deb squeeze main contrib non–free” > /etc/apt/sources.list
# apt–get update

And then install any of the apps you’ll want to run on your xoom, I’d recommend at least xorg, gdm3 and gnome, so

# apt-get install xserver-xorg-video-fbdev xserver-xorg-input-evdev gdm3 gnome-session gnome-panel metacity gnome-terminal network-manager initramfs-tools wpasupplicant iceweasel network-manager-gnome

You may find that you get an error like the following

Errors were encountered while processing: bluez gnome–bluetooth gnome–user–share gnome–desktop–environment

If you do, it’s safe to ignore this for now. you can always complete the installation of any non–critical packages on the device. it seems to be something weird with the chroot or the qemu emulation of ARM (if anyone knows a way to fix this I’d be glad to hear it!)

Once that’s done, you’ll not only want to set your root password but you’ll want to add a standard user account too

# passwd root
# adduser liv2
# addgroup ––gid 3003 inet
# usermod –aG 3003 liv2

The addgroup and usermod are especially important, the android kernel doesn’t normally allow network access to non–root accounts. so we have to add the special group then give the user access to that group (or you could compile the kernel to not use the android paranoid network settings)

Clear up some space too

rm /var/cache/apt/archives/*.deb

Once that’s done, exit out of the chroot by hitting CTRL+D and copy the xorg config to deb_arm/etc/X11/ and copy in the wireless firmware you copied at the start

# mkdir ~/deb_arm/lib/firmware
# cp ~/fw_bcm4329.bin ~/deb_arm/lib/firmware
# cp ~/ ~/deb_arm/lib/firmware

Building the Kernel

For this part, make sure you’ve extracted the kernel sources, and the android–ndk to somewhere, in my case they’ve been extracted in ~/Downloads

# cd ~/Downloads/Tiamat–AOSP–Tiamat–Xoom–798572c/
# export CROSS_COMPILE=~/Downloads/android–ndk–r5b/toolchains/arm–eabi–4.4.0/prebuilt/\

# export ARCH=arm
# export INSTALL_PATH=~/deb_arm/boot
# export INSTALL_MOD_PATH=~/deb_arm
# make tiamat_defconfig
# make menuconfig

Once you’ve got the menuconfig screen up, go to Device Drivers > Character Devices > and enable “Virtual Terminal”
go to Device Drivers > Graphics Support > Console Display Driver support > enable “Framebuffer Console Support”

once you’ve enabled that, exit out and save the changes

Build the kernel and prepare it for use

# make –j2
# sudo -E make modules_install
# sudo cp arch/arm/boot/zImage ~/deb_arm/boot
# cp ~/deb_arm/boot/
# chroot ~/deb_arm
# mkinitramfs –o /boot/initrd.img.gz `ls /lib/modules`

mkinitramfs may show some warnings like “warning: can’t open /etc/mtab:” and “pkg: version ‘–v1.4.4–Full_Throttle’ has bad syntax: invalid character in version number” but it doesn’t seem to have caused any issues for me.

Preparing the SDCard

Plug your SDCard reader into your computer and insert the card, you’ll then need to partition and format it so make sure you’ve backed up the content of the card.

Partition it so you have two partitions, the first one being a FAT32 Partition for CWR and for anything you might want to use it for under Android.

Your second partition will need to be EXT3 and big enough to fit your debian install with some room to breathe (about 4GB in my case), you can check how much space you’ll need for this by running du -sh ~/deb_arm

Once you’ve partitioned it, format the first partition as FAT32 and the second partition as EXT3. once you’ve done that you should put the SDCard back in your Xoom and make a new nandroid backup just to be sure

# sudo mkfs.ext3 /dev/sdb2
# sudo mkfs.msdos /dev/sdb1

Putting it all together

First we’ll mount the SDCard on your PC and copy across the Root FS

# sudo mkdir /mnt/sdcard
# sudo mount /dev/sdb2 /mnt/sdcard
# sudo cp -arv ~/deb_arm/* /mnt/sdcard/
# umount /mnt/sdcard

Go to the folder you unpacked mkbootimg to  and copy in the boot.img from your CWR backup.

Once you’ve done that, follow the below steps to create the new boot.img for Debian to use

# cd ~/Downloads/mkbootimg
# cp ~/deb_arm/boot/zImage .
# cp ~/deb_arm/boot/initrd.img.gz .
# mkdir out
# ./unpackbootimg –i boot.img –o out/
# ./mkbootimg ––kernel zImage ––ramdisk initrd.img.gz ––base “`cat out/boot.img–base`” \
––cmdline “root=/dev/mmcblk0p2 console=tty0” –o newimg.img

Now reboot your Xoom into Fastboot mode and insert the SDCard, this can be done by holding power + volume up until the screen goes black, then power it back on and hold down the volume down key

# cp ~/Downloads/fastboot .
# ./fastboot flash boot newimg.img
# ./fastboot reboot

Your Xoom should now boot up into Debian, on the login screen select the accessibility options and enable on-screen keyboard to log in.
Alternatively, if you happen to have a USB-OTG adapter you can just use a keyboard and mouse to interact with the system.

Going Back to Android

To Roll back to Android, simply boot into Clockwork Recovery, go to Backup/Restore > Advanced Restore and restore boot.img only, reboot and you’ll be back in Android



Lopi from the IX Project was a great help, and so was everyone from #IX
Lilstevie from @GalaxyLinux provided the Touchscreen patches
Framebuffer Patch was originally provided by Robert Morell for the Chromium Project
RootFS instructions are based on info at the Debian Wiki



:, , , ,

59 Comments for this entry

  • LIV2

    Hi Enrique,

    You should not use any of them, the full export command is exactly as printed.
    The reason for this is that it will automatically prefix the commands. i.e when your make system runs GCC it will add gcc to the end of /Downloads/android-ndk-r5b/toolchains/arm–eabi–4.4.0/prebuilt/linux–x86/bin/arm-eabi- so that the command becomes /Downloads/android-ndk-r5b/toolchains/arm–eabi–4.4.0/prebuilt/linux–x86/bin/arm-eabi-gcc automatically.

  • Enrique

    Hi LIV2!, It’s me again.

    I keep trying to install Debian in my Motorola Xoom tablet.

    I saw that You use Tiamat-AOSP-Tiamat-Xoom project,but link that you provided, there is a project named: “LIV2-Xoom-GNU”, Can I use LIV2-Xoom-GNU?, because I found other proyect called just: Tiamat-AOSP.

    Well, at this moment, I was using LIV2-Xoom-GNU project, I trying buil Kernel and when I execute this line: make modules_install, I get this error:

    Warning: you may need to install module-init-tools

    I’ve module-init-tools installed, and I opened Make file to find something and I found this if condition:

    @if [ -z “`$(DEPMOD) -V 2>/dev/null | grep module-init-tools`” ]; then \
    echo “Warning: you may need to install module-init-tools”; \
    echo “See“;\
    sleep 1; \

    Do I need to apply some patch before to execute make tiamat_defconfig and make menuconfig?

  • Enrique

    Hi. Thanks a lot for your post, finally I get Debian Wheezy on my Motorola Xoom Tablet. Thanks LIV2!

  • Enrique

    Hi guys!

    Finally, I have Debian Wheezy running on my Motorola Xoom Tablet, but my wifi doesn’t work.

    After to execute: make menuconfig, I opened .config kernel file and I saw these lines:


    I changed those lines to:


    And then, I build the kernel.

    But my wifi doesn’t work. Someone Can I help me?, Any idea?. Obviously, I copied drivers to: /lib/firmware/

  • 【激安市場】コーチ COACH★レビューを書くと送料無料!小物(折りたたみ傘)

    ゲーミングデスクトップの好きです私は実際にこのようなものをwebsiteing |

  • Gatito

    =’Brand New News Fr0m The Timber Industry!!’=========Latest Profile==========Energy & Asset Technology, Inc. (EGTY)Current Price $0.15================================Recognize this undiscovered gem which is psoied to jump!! Please read the following Announcement in its Entierty and Consider the Possibilities Watch this One to Trad,e!Because, EGTY has secured the global rights to market genetically enhanced fast growing, hard-wood trees!EGTY trading volume is beginning to surge with landslide Announcement. The value of this Stoc,k appears psoied for growth! This one will not remain on the ground floor for long.KEEP READING!!!!!!!!!!!!!!!===============”BREAKING NEWS”===============-Energy and Asset Technology, Inc. (EGTY) owns a global license to marketthe genetically enhanced Global Cedar growth trees, with plans to REVOLUTIONIZE the forest-timber industry. These newly enhanced Globa| Cedar trees require only 9-12 years of growth before they can be harvested for lumber, whereas worldwide growth time for lumber is 30-50 years. Other than growing at an astonishing rate, the Global Cedar has a number of other benefits. Its natural elements make it resistant to termites, and the lack of oils and sap found in the wood make it resistant to forest fire, ensuring higher returns on investments.The wood is very lightweight and strong, lighter than Poplar and over twiceas strong as Balsa, which makes it great for construction. It also has the unique ability to regrow itself from the stump, minimizing the land andtime to replant and develop new root systems.Based on current resources and agreements, EGTY projects revenues of $140 Million with an approximate profit margin of 40% for each 9-year cycle. With anticipated growth, EGTY is expected to challenge Deltic Timber Corp. during its initial 9-year cycle.Deltic Timber Corp. currently trades at over $38.00 a share with about $153 Million in revenues. As the reputation and demand for the Global Cedar tree continues to grow around the world EGTY believes additional multi-million dollar agreements will be forthcoming. The Global Cedar nursery has produced about 100,000 infant plants and is developing a production growth target of 250,000 infant plants per month.Energy and Asset Technology is currently in negotiations with land and business owners in New Zealand, Greece and Malaysia regarding the purchase of their popular and profitable fast growing infant tree plants. Inquiries from the governments of Brazil and Ecuador are also being evaluated.Conclusion:The examples above show the Awesome, Earning Potential of littleknown Companies That Explode onto Investor s Radar Screens. This s-t0ck will not be a Secret for long. Then You May Feel the Desire to Act Right Now! And Please Watch This One Trade!! GO EGTY!All statements made are our express opinion only and should be treated as such.We may own, take position and sell any securities mentioned at any time. Any statements that express or involve discussions with respect to predictions, goals, expectations, beliefs, plans, projections, object’ives, assumptions or future events or perfo’rmance are notstatements of historical fact and may be “forward,|ooking statements.” forward,|ooking statements are based on expectations, estimates and projections at the time the statements are made that involve a number of risks and uncertainties which could cause actual results or events to differ materially from those presently anticipated. This newsletter was paid $3,000 from third party (IR Marketing). Forward,|ooking statements in this action may be identified through the use of words such as: “pr0jects”, “f0resee”, “expects”. in compliance with Se’ction 17. {b), we disclose the holding of EGTY shares prior to the publication of this report. Be aware of an inherent conflict of interest resulting from such holdings due to our intent to profit from the liquidation of these shares. Shar,es may be sold at any time, even after positive statements have been made regarding the above company. Since we own shares, there is an inherent conflict of interest in our statements and opinions. Readers of this publication are cautioned not to place undue reliance on forward,|ooking statements, which are based on certain assumptions and expectations involving various risks and uncertainties that could cause results to differ materially from those set forth in the forward- looking statements. This is not solicitation to buy or sell st-0cks, this text is or informational purpose only and you should seek professional advice from registered financial advisor before you do anything related with buying or selling st0ck-s, penny st’0cks are very high risk and you can lose your entire inves,tment.

  • 【ポイント最大26倍】江原道 マイファンスィー UVフェイスパウダー SPF50+ PA++++ 10g


  • タトゥーストッキング タトゥータイツ パメラマン PAMELA MANN レースアンクルソ


  • 【激安市場】“ふわサラ”な気持ちいい素材感 人気コクーンアイテムに


Leave a Reply

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!


A few highly recommended websites...