Requirements:
An ARMv7 chipset (with VPFv3 if using armhf arch)
Loopback kernel support (if using img file as per this guide, otherwise could use dedicated partition on sdcard).
Rooted device
Busybox
Preparing an image:
On a linux machine setup filesystem for mounting on the android device, below I create a 2GB loopback image.
Code:
# dd if=/dev/zero of=wheezy-armhf.img bs=1M count=0 seek=2048
# mkfs.ext4 -F wheezy-armhf.img
# mount -o loop wheezy-armhf.img /debian
Now we populate the filesystem with the files to complete the debian installation.
Code:
# debootstrap --arch=armhf --variant=minbase --foreign wheezy /debian $DEBIANURL
# umount /debian
Complete installation:
Now on the android device we complete the debian installation.
Code:
# mount -o rw,remount rootfs /
# export LINUXROOT=/linux
# mkdir $LINUXROOT
# busybox mknod /dev/block/loop100 b 7 100
# losetup /dev/block/loop100 /path/to/wheezy-armhf.img
# mount -t ext4 /dev/block/loop100 $LINUXROOT
# busybox chroot $LINUXROOT /debootstrap/debootstrap --second-stage
# mount -t proc none $LINUXROOT/proc
# mount -t sysfs none $LINUXROOT/sys
# mount -o bind /dev $LINUXROOT/dev
# mount -t devpts none $LINUXROOT/dev/pts
Now you can setup any other mounts you want, for example I bind mount my external USB storage etc. Now to login to the debian environment and install ssh server:
Code:
# export TMPDIR=/tmp
# export USER=root
# export HOME=/root
# export SHELL=/bin/bash
# export TERM=linux
# export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/bin
# export LC_ALL=C
# export LANGUAGE=C
# export LANG=C
# busybox chroot $LINUXROOT /bin/bash
We are now inside debian envrionment and perform some first time setup:
Code:
# passwd root
# groupadd -g 3001 aid_net_bt_admin
# groupadd -g 3002 aid_net_bt
# groupadd -g 3003 aid_inet
# groupadd -g 3004 aid_net_raw
# groupadd -g 3005 aid_net_admin
# groupadd -g 3006 aid_net_bw_stats
# groupadd -g 3007 aid_net_bw_acct
# groupadd -g 3008 aid_net_bt_stack
# echo "deb $DEBIANURL wheezy main" >/etc/apt/sources.list
# apt-get update
# apt-get install openssh-server
# exit
# sync
Now have a SSH service running that allows to login via ssh. Note that if you wish to use networking for other user accounts add them to the aid_inet and aid_net_raw groups. For example for transmission I did:
Code:
# apt-get install transmission-daemon
# usermod -a -G aid_inet,aid_net_raw debian-transmission
# invoke-rc.d transmission-daemon restart
chroot: can't change root directory to '/debootstrap/debootstrap': No such file or di
Hi!
First, thanks for your guide, the only one I've seen for Android 4.2
So I have a nexus 4 on Android 4.3 with Paranoid Android custom ROM and rooted with busybox 1.21 JB bionic (included with the ROM). I've done all the steps above until chroot, which gave me an error:
Code:
[email protected]:/ # busybox chroot $LINUXROOT /debootstrap/debootstrap --second-stage
[COLOR="red"]E: No pkgdetails available; either install perl, or build pkgdetails.c from source[/COLOR]
1|[email protected]:/ #
So what now? how do I install Perl for android? Do I have to install microperl from busybox's site?
Please help me, I'm trying to install Debian for 4 days.
Pickout said:
Hi!
First, thanks for your guide, the only one I've seen for Android 4.2
So I have a nexus 4 on Android 4.3 with Paranoid Android custom ROM and rooted with busybox 1.21 JB bionic (included with the ROM). I've done all the steps above until chroot, which gave me an error:
Code:
[email protected]:/ # busybox chroot $LINUXROOT /debootstrap/debootstrap --second-stage
[COLOR="red"]E: No pkgdetails available; either install perl, or build pkgdetails.c from source[/COLOR]
1|[email protected]:/ #
So what now? how do I install Perl for android? Do I have to install microperl from busybox's site?
Please help me, I'm trying to install Debian for 4 days.
Click to expand...
Click to collapse
I have that same problem. Any solution by now?
Thanks.
m
mickmattes said:
I have that same problem. Any solution by now?
Thanks.
m
Click to expand...
Click to collapse
I'll look into it, but it sounds like it has not bootstrapped the image correctly.
Pickout said:
Hi!
First, thanks for your guide, the only one I've seen for Android 4.2
So I have a nexus 4 on Android 4.3 with Paranoid Android custom ROM and rooted with busybox 1.21 JB bionic (included with the ROM). I've done all the steps above until chroot, which gave me an error:
Code:
[email protected]:/ # busybox chroot $LINUXROOT /debootstrap/debootstrap --second-stage
[COLOR="red"]E: No pkgdetails available; either install perl, or build pkgdetails.c from source[/COLOR]
1|[email protected]:/ #
So what now? how do I install Perl for android? Do I have to install microperl from busybox's site?
Please help me, I'm trying to install Debian for 4 days.
Click to expand...
Click to collapse
No you don't need to install Perl. Something as gone wrong with one of the steps. I'll see what I can figure out. Are you using the armhf arch? Cause I could send you a premade image to see if that has any success for you.
Thanks for your help, I've finally found what's the problem (two weeks ago, I've forgotten this thread), but thanks!
(The problem was that the environment variables were not set up properly)
Thanks to these links, I've managed to install Debian 7 on a rooted Android phone. All credit goes to them:
http://linux-expert.net/?Trucs_et_astuces___Android___Tutoriel_%3A_Chroot_Debian (in french)
http://forum.xda-developers.com/showthread.php?p=45457799
http://forum.xda-developers.com/showthread.php?t=2312013
http://forum.xda-developers.com/showthread.php?t=631389
http://forum.xda-developers.com/showthread.php?t=1418546
http://forum.xda-developers.com/showpost.php?p=5671794&postcount=124
VNC
________________
I. On the PC
So first, you have to create the .img file that will contain the OS.
In a GNU/Linux environment (PC) and with the root permissions, type these commands:
Code:
# mkdir debian
# dd if=/dev/zero of=wheezy-armhf.img bs=1M count=0 seek=2048
[COLOR="Red"](NOTE: "of=" will be the name of our .img file and "seek=" the size of the file (MB). Here, we create a file named "wheezy-armhf.img" of 2 GB)[/COLOR]
# mkfs.ext4 -F wheezy-armhf.img
# mount -o loop wheezy-armhf.img /debian
Then we have to fill up the filesystem.
Code:
# debootstrap --foreign --arch=armhf wheezy debian/
# umount debian
Finally, move it to your SD Card. In my case, I moved it on /data/local/
II. On the phone
On your phone, in a terminal emulator and with the root permissions, type the following commands:
Code:
# mount -o rw,remount rootfs /
# export LINUXROOT=/linux
(NOTE: here we'll install Debian on the root of the internal memory, in "/", but we can also install Debian on the SD Card or in /data/loca/linux by changing the path after "LINUXROOT=")
# mkdir $LINUXROOT
# busybox mknod /dev/block/loop100 b 7 100
# losetup /dev/block/loop100 /sdcard/wheezy-armhf.img
# mount -t ext4 /dev/block/loop100 $LINUXROOT
# chroot $LINUXROOT /bin/sh
# export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# /debootstrap/debootstrap --second-stage
The debootstrap's second part should start. Grab a cup of coffee while it's working!
When it's finish, leave the chroot by typing
Code:
# exit
# su
Let's mount the filesystem. We're close!
Code:
# mount -t proc none /proc
# mount -t sysfs none /sys
# mount -o bind /dev /dev
# mount -t devpts none /dev/pts
Now, we have to set the environment variable. Ensure that you have set the correct path of LINUXROOT in case you've chosen another path than /linux.
Code:
# export LINUXROOT=/linux
# export TMPDIR=/tmp
# export USER=root
# export HOME=/root
# export SHELL=/bin/bash
# export TERM=linux
# export LC_ALL=C
# export LANGUAGE=C
# export LANG=C
And finally, chroot.
Code:
# chroot $LINUXROOT /bin/bash
su
Welcome on Debian!
III. DNS and Mirrors
Set a DNS. We'll set the free Google DNS but you can set yours if you want.
Code:
echo -e "domain local\nsearch local\n" >> /etc/resolv.conf
echo -e "# DNS Google\nnameserver 8.8.8.8\nnameserver 8.8.4.4\n" >> /etc/resolv.conf
You can add mirrors to your sources.list if you want. For my case, I'm french so I added french mirrors:
Code:
# echo -e "## Debian Wheezy sources.list\n\n" > /etc/apt/sources.list
# echo -e "## Debian.org FR mirror\ndeb http://ftp.fr.debian.org/debian/ wheezy main contrib non-free\ndeb-src http://ftp.fr.debian.org/debian/ wheezy main contrib non-free\n\n" >> /etc/apt/sources.list
# echo -e "## Debian security updates\ndeb http://security.debian.org/ wheezy/updates main contrib non-free\ndeb-src http://security.debian.org/ wheezy/updates main contrib non-free\n >> /etc/apt/sources.list
IV. VNC
To access your Debian in a graphical environment from your PC or your phone, you have to set up a VNC Server and install a Desktop Environment. Let's install VNC and LXDE.
We'll follow the steps described on the LXDE wiki:
Code:
su
# apt-get update
# apt-get install lxde
# apt-get install tightvncserver
Set up the VNC server by typing the following command, which will ask you to set two passwords (let the second password if you want):
Code:
# vncserver
Kill the session:
Code:
# vncserver -kill :1
Go to /root/.vnc/ and edit the xstartup file: comment out #/etc/X11/xsession and add these two lines:
icewm
lxsession
Click to expand...
Click to collapse
To start a VNC session, type "vncserver -geometry <HEIGHT>x<WIDTH>". For the Nexus 4, we would type "vncserver -geometry 1184x768"
To access your Desktop Environment from your phone, download android-vnc-viewer and launch it.
In the password field, type your password. In the address field, type "127.0.0.1", in port type "5901" and select 24-bit color (4bpp).
V. Script
I've made three scripts to mount, launch and unmount Debian. Whenever you reboot your phone, you'll have to mount Debian, set the environment variables and chroot.
VI. Credit
All credit goes to them:
http://linux-expert.net/?Trucs_et_astuces___Android___Tutoriel_%3A_Chroot_Debian (in french)
http://forum.xda-developers.com/showthread.php?t=2312013
http://forum.xda-developers.com/showthread.php?t=631389
http://forum.xda-developers.com/showthread.php?t=1418546
http://forum.xda-developers.com/showpost.php?p=5671794&postcount=124
VNC
Sorry for my bad english
Thanks for your work and solution. However I did not try it yet, because I'm trying to do it with the following solution. Perhaps I'll do this one next weekend
http://whiteboard.ping.se/Android/Debian
I really like the idea of it.
Just have a look.
P.S: By the way, I'm running Pacman-Rom (4.3) and it seems to work, if you flash googy-Kernel or some other Kernel. CM-Kernel has
some kind of SElinux restriction, which prevents you from changing the debian root password.
Wow, it sounds amazing! I will sure give it a try next week too.
Thanks for the link!
Pickout said:
Wow, it sounds amazing! I will sure give it a try next week too.
Thanks for the link!
Click to expand...
Click to collapse
I got stuck in a bootloop after flashing. I'm quite sure, that I did everything correctly...
I think my Pacman-Rom (JB 4.3) is to blame.
Thanks for the guide, was looking for something like this. I tried it first on an SD card formatted to ext4 (wanted a larger than 4GB .img file) but it failed to work. Went back to fat32 and for now kept a 4GB .img and after following you guide, it worked perfectly.
Where can I find the img ?
Hello,
Thanks for this how too!!
But where can I find the img ? wheezy-armhf.img ?
Thanks for your help,
Cheers,
Mat
matthieuDroid said:
Hello,
Thanks for this how too!!
But where can I find the img ? wheezy-armhf.img ?
Thanks for your help,
Cheers,
Mat
Click to expand...
Click to collapse
you make it yourself: the dd-command in the beginning creates a file called wheezy-armhf.img and fills it with zeros.
need enlightenment
hello,
i'm follow the instruction but get stuck with
# chroot $LINUXROOT /bin/sh
chroot: can't execute 'bin/sh': No such file or directory
Click to expand...
Click to collapse
pls help
i'm using galaxy note 3 n900 with armv7
Related
UPDATE: 01/13/11 Scrap Most of this,
got a 3G working image works 10tmes better than anything i have seen.
UPDATE go here:http://forum.xda-developers.com/showthread.php?t=912544
have networking with hamachi, ssh works coolstuff:
trying to put it together (steps to create, and emulate on your computer, an image to get worken on your phone,) it works for the epic also which i have to say i prefer because of the slide-out, ya no wat. as soon as possible 2 DAYS TOPS
To Install Ubuntu Maveric on your Phone:
Of course you must have a rooted phone, since your rom must use a kernel with Loop support, I have only tested this on CyanogenMod Nightly build 199
make sure you have busybox installed
To create the image You have to start with a computer running Ubuntu or setup Virtual Box on a Windows computer,
or go here http://w3.impa.br/~gabrield/data/ubuntu-arm-development-rootfs.tar.bz2 to download the prebuilt one ( i havnt tested it)
1: Open Terminal in Ubuntu
2: Enter:
sudo apt-get install rootstock. After installing Rootstock, again in ubuntu terminal,
Enter,
3: sudo rootstock --fqdn ubuntu --login ubuntu --password ubuntu --imagesize 2G --notarball .
You can change login and password to your desire and also change imagesize 1G 2G and soforth
Your ubuntu-arm.img will be created in about 15 min or so. Take that arm.img and use Ark to crush it down to under 200meg if you would like or and or change name to ubuntu.img.
Using file manager, Create a folder (on your phone) /sdcard/ubuntu
and transfer ubuntu.img to your sdcard folder, ubuntu.
Copy the following text including the (#) and paste into notepad++
(get it http://notepad-plus-plus.org/download) or in linux gedit or Eqvlnt.
Save as sdcard/ubuntu/bootubuntu (no extension)nothing more.
#modprobe ext2
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
export kit=/sdcard/ubuntu
export bin=/system/bin
if [ ! -d /data/local/ubuntu ]
then
mkdir /data/local/ubuntu
fi
export mnt=/data/local/ubuntu
export PATH=$bin:/usr/bin:/usr/sbin:/bin:$PATH
export TERM=linux
export HOME=/root
mknod /dev/loop1 b 7 0
losetup /dev/block/loop1 /sdcard/ubuntu/ubuntu.img
mount -t ext2 /dev/block/loop1 /data/local/ubuntu
#mount -o loop,noatime -t ext2 $kit/ubuntu.img $mnt
mount -t devpts devpts $mnt/dev/pts
mount -t proc proc $mnt/proc
mount -t sysfs sysfs $mnt/sys
sysctl -w net.ipv4.ip_forward=1
echo "Setting /etc/resolv.conf to Google Open DNS 8.8.8.8 and 8.8.4.4"
echo "nameserver 8.8.8.8" > $mnt/etc/resolv.conf
echo "nameserver 8.8.4.4" >> $mnt/etc/resolv.conf
echo "Setting localhost on /etc/hosts "
echo "127.0.0.1 localhost" > $mnt/etc/hosts
echo "READY TO ROCK AND ROLL BABY! "
echo "Brought to you by NexusOneHacks.net and the open source community! "
echo " "
chroot $mnt /bin/bash
#After exit command is executed clear it all up
echo " "
echo "Shutting down Ubuntu"
umount $mnt/dev/pts
umount $mnt/proc
umount $mnt/sys
umount $mnt
losetup -d /dev/loop1
AND DO THE SAME FOR THE NEXT 4 FILES AND NAME THEM CORRECTLY AND USE THE RIGHT TEXT EDITOR
This next file is called sdcard/ubuntu/unionfs (remember no file ext.)
busybox insmod unionfs
mount -t unionfs -o dirs=$mnt/etc=rw:/etc=ro unionfs /etc
mount -o remount,rw /
ln -s $mnt/lib /
for x in \
bin boot home media mnt \
opt selinux srv usr var
do
ln -s $mnt/$x /
done
rmdir /root
ln -s $mnt/root /
mount -o remount,ro /
mount -t unionfs -o dirs=$mnt/sbin=rw:/sbin=ro unionfs /sbin
mount -t unionfs -o dirs=$mnt/dev=rw:/dev=rw unionfs /dev
mount -t devpts devpts /dev/pts
This next file is called sdcard/ubuntu/fsrw (remember no file ext.)
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
echo "Filesytem remounted as read/write"
This next file is called sdcard/ubuntu/mountonly (remember no file ext.)
# Based on Saurik's remount.sh - modified by Mark Walker of http://www.androidfanatic.com
# Email [email protected]
modprobe ext2
clear
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
export kit=/sdcard/debian
export bin=/data/local/bin
export mnt=/data/local/mnt
export PATH=$bin:/usr/bin:/usr/sbin:/bin:$PATH
export TERM=linux
export HOME=/root
busybox insmod ext2
clear
echo " "
mount -o loop,noatime $kit/debian.img $mnt
mount -t devpts devpts $mnt/dev/pts
mount -t proc proc $mnt/proc
mount -t sysfs sysfs $mnt/sys
echo "Custom Linux IMG Mounter V1.0 - by Mark Walker"
echo "WEB: http://www.androidfanatic.com"
echo "EML: [email protected]"
sleep 1
echo "AutoMounter started"
sleep 1
echo "REBOOT PHONE TO PROPERLY DISMOUNT"
echo " "
# chroot $mnt /bin/bash
This next file is called sdcard/ubuntu/ubuntu.sh (this one has .sh for file ext)
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
modprobe ext2
clear
rm -f /data/local/bin/fsrw
rm -f /data/local/bin/bootubuntu
rm -f /data/local/bin/unionfs
rm -f /data/local/bin/installer.sh
rm -f /data/local/bin/mountonly
mkdir /data/local/mnt
clear
rm /system/bin/fsrw
rm /system/bin/bootubuntu
rm /system/bin/unionfs
rm -/system/bin/mountonly
cp -f fsrw /system/bin
cp -f bootubuntu /system/bin
cp -f unionfs /system/bin
cp -f mountonly /system/bin
cd /sdcard/ubuntu
chmod 4777 *
cd /system/bin/
chmod 4777 *
cd /
clear
echo " "
echo "Ubuntu Chroot Bootloader v0.1"
echo "Ubuntu Bootloader is now installed!"
echo "This process does NOT damage Android OS!"
echo " "
echo "Original Installer by Charan Singh"
echo "Modified for Ubuntu Chroot by Max Lee at NexusOneHacks.net"
echo " "
echo "To enter the Debian Linux console just type 'bootubuntu'"
bootubuntu
After you have,
bootubuntu
fsrw
mountonly
unionfs
ubuntu.sh
ubuntu.img
in your /sdcard/ubuntu folder
Open adb shell
Enter:
su
cd /sdcard/ubuntu
sh ./ubuntu.sh
apt-get update
apt-get install tightvncserver
apt-get install lxde
export USER=root
vncserver :0 -geometry 1024x800
cat > front
export USER=root
cd /
rm -r -f /tmp
mkdir /tmp
cd /
vncserver :0 -geometry 1024x800
(cntrl D, cntrl D then Enter)
cat front /root/.bashrc > temp
cp temp /root/.bashrc
Get Android VNC for you phone (market)
open app
enter 5900 for port
enter password you setup for vncserver
set graphics for 24 bit
Connect
let the fun begin
Next update: How to network with Hamachi
It does work
ill give this a try tommorow..
Gonna, maybe, dive in.
Fire up an ubuntu image and then connect to it with vnc... I think I'll wait for the movie to come out and save the battery life. Hey wait, thats an idea. We could make a video of someone using ubuntu, and then play it on our phone so it feels like ubuntu. Might even do better on the battery life / "useful" factor.
(I've seen this method before, so keep in mind I am poking fun at the people who would want to do this and not you for sharing this with us.)
flexgrip said:
Fire up an ubuntu image and then connect to it with vnc... I think I'll wait for the movie to come out and save the battery life. Hey wait, thats an idea. We could make a video of someone using ubuntu, and then play it on our phone so it feels like ubuntu. Might even do better on the battery life / "useful" factor.
(I've seen this method before, so keep in mind I am poking fun at the people who would want to do this and not you for sharing this with us.)
Click to expand...
Click to collapse
What is your superior method?
I believe he's referring to the idea of running Ubuntu on a phone in general. I have trouble seeing the usefulness, but it's very interesting. Thanks for the post, OP.
Sent from my PC36100 using XDA App
TheMagicalSock said:
I believe he's referring to the idea of running Ubuntu on a phone in general. I have trouble seeing the usefulness, but it's very interesting. Thanks for the post, OP.
Sent from my PC36100 using XDA App
Click to expand...
Click to collapse
If that's the case, then I gave him too much credit. This is a fantastic How-To.
I put this to anyone:
UPDATE:
FIXED WILL POST FIX SOON (had to use MAKEDEV)
THIS IS GREAT YAHOOOO
Hi i was hoping you could help me with this problem:
I am using (on a dedicated ubuntu computer with Maverick edition)"https://wiki.ubuntu.com/ARM/RootfsFromScratch" example to create a qemu image using "sudo rootstock --fqdn ubuntu --login ubuntu --password ubuntu --seed nano --notarball --imagesize 3G".
I have also used the "sudo project-rootstock/rootstock --fqdn ubuntu --login ubuntu --password ubuntu --seed nano --notarball --imagesize 3G"
and: "sudo ./rootstock --fqdn ubuntu --login ubuntu --password ubuntu --seed nano --notarball --imagesize 3G" way.
They all work great. I am able to load the image with qemu, got ssh setup and working alls great in life.
The problem lies HERE.......
I am using these images (mostly for fun), to setup ubuntu onto my Evo and Epic smartphones using this method: "http://forum.xda-developers.com/showthread.php?t=881401" to chroot the image.
ITS AWSOME IT WORKS AND LOTS OF FUN!
well sorry for screaming but it really excites me this open source Ubuntu Stuff. (i am a win user, but I found a new toy)
Using the prebuilt image everything works excellent (except for the small image size 2G) that is why i need to use my 3G built image.
My problem: My built image works flawlessly as well, with one exception, (that i have noticed) is, inside ubuntu (on my phone chrooted with android) the terminals do not have a prompt# only black, square curser, and will not except input. I have to use the terminal program inside android to apt-get and such.
I have noticed with my build images, using apt-get during install, i see "Can not write log, openpty() failed (/dev/pts not mounted?)"
error. My reserch says terminals wont work if system cannot write to /dev/pts.
The prebuilt image does not have this issue.
What is the differance with the prebuilt that is offered here "wget -c http://w3.impa.br/~gabrield/data/ubuntu-arm-development-rootfs.tar.bz2", and the images I create using the steps outlined in the article.
Is there modifications prior to or after creation, or is this someting different altogether.
I really have been pulling the little bit of hair i have left out of my head for a week now
HELP.!!!
p.s. I have tried all builds etc; karmic,lucid same results
Try mounting dev/pts says it is mounted but busy
To Homefix :
Did you try "sudo apt-get install ..." ?
To change bash prompt did you try "export PS1=#" ?
What is an output of "id" command? If you get anything other than root, add that user to root group, or just "su" maybe?
Can someone please post some pics or a video of this working?
generalExpert said:
Can someone please post some pics or a video of this working?
Click to expand...
Click to collapse
Its the same as having Ubuntu on your desktop monitor only smaller
Wouldn't unity work better on a phone
Sent from my PC36100 using XDA App
UPDATE GO HERE: http://forum.xda-developers.com/showthread.php?t=932754
Revised Ubuntu Installation Created By Homefix and RooferDave
I just put this together today, gotta get back to work, the snowstorms over (im from western NY) might be errors will edit and update as time permits
all scripts contain original authors and credits where aplicable.This tutorial will show you how to create a Debian Image, Emulate that image using The Qemu Emulator in Ubuntu.And finally setup that image on your EVO
I cannot be held responsible if your foolish enough to do, what is outlined below!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
I will take the time to post the credits soon.
However the scripts speak for themselves and the creators have left there info in them.
Thanks really goes out to them.
Most of this came from here: https://wiki.edubuntu.org/ARM/BuildArmPackages
Things you need:
# I hope you have the EVO (last i heard radio shack may have 1 left. DRIVE CAREFULLY, theres snow everywere).
# Computer BestBuy ? I prefer to build my own (Brite Computers Fishers NY).and a small note, you need ubuntu ruuning do do any of the image creation-manipulation.
I wasnt able to get VBOX to emulate the Image so... UPDATE yes i was able to get it working i was having a router issue.So give VBOX a try http://www.virtualbox.org/wiki/Downloads
you can either try to get it to work with VBOX,(goodluck), or dust off one of your old computers and get Ubuntu up.
But you may have to do what i did, i yanked out the family computer from the living room and fit in my literally 4' x 7' office to get this done.
i dont worry to much, i know they love me for spending the last 2 weeks with my face attached to the monitor.
# Rom: CyanogenMod-6. You could try others. (i tell my daughter who always copies her sister "you are your own nucklehead").(good luck finding these links) http://wiki.cyanogenmod.com/index.php?title=Latest_Version#HTC_Evo_4G
Nightlies here: (i prefer this addiction over others). http://mirror.teamdouche.net/?type=nightly # PLENTY OF PATIENCE
Get your phone ready: http://forum.xda-developers.com/wiki/index.php?title=HTC_Supersonic/Guides_%26_Tutorials#Guides_For_Root
Root: http://forum.xda-developers.com/wik...Supersonic/Guides_&_Tutorials#Guides_For_Root
Setup ADB: http://forum.xda-developers.com/showthread.php?t=694250
Setup Ubuntu http://www.ubuntu.com/desktop/get-ubuntu/download
My 3G Karmic Rootstock Image http://www.megaupload.com/?d=SJY6ZB58
login dad
passwd f
root passwd not set
then go to line 1000
let me know if i have the right one posted.
Setup Rootstock IN THE BEGINING
In your Ubuntu terminal type: "mkdir /<your home directory>/qemuArm"
(dont includ the < >'s or the ""'s) your home directory usually is /home/<your user name>/
then: cd /<your home directory>/qemuArm
then: sudo apt-get install qemu qemu-kvm-extras
then: sudo apt-get install debootstrap (if you dont have it already)
then: sudo apt-get install fakeroot (if you dont have it already)
then: sudo apt-get install bzr (if you dont have it already)
then: (download rootstock bzr branch)
sudo bzr branch lp:roject-rootstock
then: (download kernel to /<your home directory>/qemuArm) just
make sure you dont leave the, /<your home directory>/qemuArm directoryCREATION
then: (create your image)
sudo project-rootstock/rootstock --fqdn ubuntu --login ubuntu --password ubuntu --notarball --imagesize 3G --seed nano
or: custimize your image with the info in the readme file, in the /<your home directory>/qemuArm/project-rootstockfolder(when your image is complete)
then: (make a copy)
cp qemu-armel-<replace with your #>.img <whatever you name it>.img (remove the <>'s)EMULATION
Download the http://ports.ubuntu.com/ubuntu-ports/dists/lucid/main/installer-armel/current/images/versatile/netboot/ to ~/qemuArm
USE THIS WEBPAGE AND FIND THE LINK FOR YOUR KERNEL VERSATILE
https://wiki.edubuntu.org/ARM/BuildArmPackages
Then: (start your emulation) -----> dont forget to remove the <>'s <------
sudo qemu-system-arm -M versatilepb -cpu cortex-a8 -kernel ./vmlinuz -hda <whatever you name it>.img -m 256 -append "root=/dev/sda mem=256M devtmpfs.mount=0 rw"
then: (hopefully you will see a blank screen)
press alt-F1 if you do not see a login prompt go back to the beginingSO LET THER BE LIGHT
then: log in
then: (to change password)
sudo tmppwd ubuntu and to change login name never do "usermod -l newname -m -d /home/newname oldname" pic the right name at creation.
then: sudo tmppwd root (if you want to set root password) THEN THERE WERE TWO
In the Emulated terminal:
(configure network connections)sudo nano /etc/network/interfaces
add: (under existing entries of the file):
auto eth0
iface eth0 inet dhcp then cntrl-X, confirm save, and exit.
then sudo ifconfig eth0 up
then sudo dhclient eth0
then sudo apt-get update (if it aint broke dont fix it) otherwise go back to the beginningBORN AGAIN
On the Host System make sure Qemu is not running.
then: (install some more stuff)
sudo apt-get install bridge-utils
This assumes if you have a basic networking system with eht0 as interface
then: (configure network bridge)
sudo nano /etc/network/interfaces
add: (under existing entries of the file)
auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_maxwait 0 then: cntrl-X, confirm save, and exit.
then: sudo ifconfig eth0 0.0.0.0
then: sudo ifup br0
then: (Load the tun module (you can add tun to /etc/modules if you want it to load on boot)
sudo modprobe tun
then: set permissions
sudo chmod 0666 /dev/net/tun
then: (change Qemu Script)
sudo nano /etc/qemu-ifup
add: a "#" symbol to all existing entries except the first line (got it?)
add: (under existing entries of the file):
echo "Executing /etc/qemu-ifup"
echo "Bringing up $1 for bridged mode..."
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
echo "Adding $1 to br0..."
sudo /usr/sbin/brctl addif br0 $1
sleep 2
then: set permissions
sudo chmod +x /etc/qemu-ifup
then: start emulation
sudo qemu-system-arm -M versatilepb -cpu cortex-a8 -kernel ./vmlinuz -hda <whatever you name it>.img -m 256 -append "root=/dev/sda mem=256M devtmpfs.mount=0 rw" -net nic -net tapthen: login
then: sudo apt-get install openssh-server
if: that goes well, your home free (we'll discuss errors later)LEARN TO TALK
Now: you can ssh into or scp to your ARM VM from the host.
get ip address to ssh into or scp to, by simply running ifconfig in the ARM terminal.
install your applications
Or just get right to it and see what this is all aboutLEARN TO WALK
Now: we will setup the chroot
Change your imagename to ubuntu.img
Using file manager, Create a folder (on your phone) /sdcard/ubuntu,
and transfer ubuntu.img to your sdcard folder, ubuntu.Copy the following text including the (#) and paste into notepad++ (get it http://notepad-plus-plus.org/download) or in linux gedit or Eqvlnt. Save as sdcard/ubuntu/bootubuntu (no extension)nothing more.#modprobe ext2
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
export kit=/sdcard/ubuntu
export bin=/system/bin
if [ ! -d /data/local/ubuntu ]
then
mkdir /data/local/ubuntu
fi
export mnt=/data/local/ubuntu
export PATH=$bin:/usr/bin:/usr/sbin:/bin:$PATH
export TERM=linux
export HOME=/root
mknod /dev/loop1 b 7 0
losetup /dev/block/loop1 /sdcard/ubuntu/ubuntu.img
mount -t ext2 /dev/block/loop1 /data/local/ubuntu
#mount -o loop,noatime -t ext2 $kit/ubuntu.img $mnt
mount -t devpts devpts $mnt/dev/pts
mount -t proc proc $mnt/proc
mount -t sysfs sysfs $mnt/sys
sysctl -w net.ipv4.ip_forward=1
echo "Setting /etc/resolv.conf to Google Open DNS 8.8.8.8 and 8.8.4.4"
echo "nameserver 8.8.8.8" > $mnt/etc/resolv.conf
echo "nameserver 8.8.4.4" >> $mnt/etc/resolv.conf
echo "Setting localhost on /etc/hosts "
echo "127.0.0.1 localhost" > $mnt/etc/hosts
echo "READY TO ROCK AND ROLL BABY! "
echo "Brought to you by NexusOneHacks.net and the open source community! "
echo " "
chroot $mnt /bin/bash
#After exit command is executed clear it all up
echo " "
echo "Shutting down Ubuntu"
umount $mnt/dev/pts
umount $mnt/proc
umount $mnt/sys
umount $mnt
losetup -d /dev/loop1
AND DO THE SAME FOR THE NEXT 4 FILES AND NAME THEM CORRECTLY AND USE THE RIGHT TEXT EDITOR
This next file is called sdcard/ubuntu/unionfs (remember no file ext.)
busybox insmod unionfs
mount -t unionfs -o dirs=$mnt/etc=rw:/etc=ro unionfs /etc
mount -o remount,rw /
ln -s $mnt/lib /
for x in \
bin boot home media mnt \
opt selinux srv usr var
do
ln -s $mnt/$x /
done
rmdir /root
ln -s $mnt/root /
mount -o remount,ro /
mount -t unionfs -o dirs=$mnt/sbin=rw:/sbin=ro unionfs /sbin
mount -t unionfs -o dirs=$mnt/dev=rw:/dev=rw unionfs /dev
mount -t devpts devpts /dev/pts
This next file is called sdcard/ubuntu/fsrw (remember no file ext.)
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
echo "Filesytem remounted as read/write"
This next file is called sdcard/ubuntu/mountonly (remember no file ext.)
# Based on Saurik's remount.sh - modified by Mark Walker of http://www.androidfanatic.com
# Email [email protected]
modprobe ext2
clear
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
export kit=/sdcard/debian
export bin=/data/local/bin
export mnt=/data/local/mnt
export PATH=$bin:/usr/bin:/usr/sbin:/bin:$PATH
export TERM=linux
export HOME=/root
busybox insmod ext2
clear
echo " "
mount -o loop,noatime $kit/debian.img $mnt
mount -t devpts devpts $mnt/dev/pts
mount -t proc proc $mnt/proc
mount -t sysfs sysfs $mnt/sys
echo "Custom Linux IMG Mounter V1.0 - by Mark Walker"
echo "WEB: http://www.androidfanatic.com"
echo "EML: [email protected]"
sleep 1
echo "AutoMounter started"
sleep 1
echo "REBOOT PHONE TO PROPERLY DISMOUNT"
echo " "
# chroot $mnt /bin/bash
This next file is called sdcard/ubuntu/ubuntu.sh (this one has .sh for file ext)
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
modprobe ext2
clear
rm -f /data/local/bin/fsrw
rm -f /data/local/bin/bootubuntu
rm -f /data/local/bin/unionfs
rm -f /data/local/bin/installer.sh
rm -f /data/local/bin/mountonly
mkdir /data/local/mnt
clear
rm /system/bin/fsrw
rm /system/bin/bootubuntu
rm /system/bin/unionfs
rm -/system/bin/mountonly
cp -f fsrw /system/bin
cp -f bootubuntu /system/bin
cp -f unionfs /system/bin
cp -f mountonly /system/bin
cd /sdcard/ubuntu
chmod 4777 *
cd /system/bin/
chmod 4777 *
cd /
clear
echo " "
echo "Ubuntu Chroot Bootloader v0.1"
echo "Ubuntu Bootloader is now installed!"
echo "This process does NOT damage Android OS!"
echo " "
echo "Original Installer by Charan Singh"
echo "Modified for Ubuntu Chroot by Max Lee at NexusOneHacks.net"
echo " "
echo "To enter the Debian Linux console just type 'bootubuntu'"
bootubuntu
After you have,
bootubuntu
fsrw
mountonly
unionfs
ubuntu.sh
ubuntu.img
in your /sdcard/ubuntu folder
Open adb shell
Enter: su
then: cd /sdcard/ubuntu
then: sh ./ubuntu.sh
then: apt-get update
then: apt-get install tightvncserver
then: apt-get install lxde
this is LINE 1000
then: export USER=root
then: vncserver :0 -geometry 1024x800
then: cat > front
then: export USER=root
then: cd /
then: rm -r -f /tmp
then: mkdir /tmp
then: cd /
then: vncserver :0 -geometry 1024x800
then: press "cntrl D", "cntrl D" again, then Enter)
then: cat front /root/.bashrc > temp
then: cp temp /root/.bashrc
then:
Get Android VNC for you phone (market)
open app
enter 5900 for port
enter password you setup for vncserver
enter (for nick) username you picked during creation
enter (for address) localhost
set graphics for 24 bit
Connect
let the fun begin
Next update: How to network with Hamachi
It does work
nice work
Lol im usually all for this stuff but this looks much too frigthening
thetony said:
Lol im usually all for this stuff but this looks much too frigthening
Click to expand...
Click to collapse
Its really easy, download the zip,
put the ubuntu folder on your sdcard go to line 1000 in the tutorial.
Can u make or received call
alphaeagle777 said:
Can u make or received call
Click to expand...
Click to collapse
yes you have full function of your phone
Alright, I'm going to give this a try while I'm at work (shhhh). I'm curious though, why did you use Karmic? Is it possible with Maverick?
ioos said:
Alright, I'm going to give this a try while I'm at work (shhhh). I'm curious though, why did you use Karmic? Is it possible with Maverick?
Click to expand...
Click to collapse
Well? How did it go?
Hemidroids said:
Well? How did it go?
Click to expand...
Click to collapse
yes it works with maverick theres really no differance that i noticed
UPDATE GO HERE:
http://forum.xda-developers.com/showthread.php?p=10972597#post10972597
Revised Ubuntu Installation Created By Homefix and RooferDave
This tutorial will show you how to create a Debian Image, Emulate that image using The Qemu Emulator in Ubuntu.And finally setup that image on your EPIC
I just put this together yesterday, its from my EVO post: http://forum.xda-developers.com/showthread.php?t=881401 .gotta get back to work, the snowstorms over (im from western NY) might be errors will edit and update as time permits
This is made for the epic, but i will try to catch all the changes, i think i got most of em.
Listen up you knuckles, on the evo i can ssh, setup and use samba shares(using hamachi network for connectability), nautilus-shares works, programs dont close, cpu meter works, it truly is like a mini computer in your pocket.
I hope with CyanogenMod i can have the same results because obviosly the epic exceeds the evo because of the keyboard (for this kind of stuff). It sucks to loose half your screen to the input method (with the evo), But i wish the screensize was larger.
For now until there are some kernel changes(hamachi does not work) I have to spend my time playing with that.(Hamachi works in the Evo
However ubuntu seems to run better on the evo
UPDATE cant get Hamachi installed gotta wait for kernel changes -
I guess you can never have the best of both worlds
all scripts contain original authors and credits where aplicable.
I cannot be held responsible if your foolish enough to do, what is outlined below!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
I will take the time to post the credits soon.
However the scripts speak for themselves and the creators have left there info in them.
Thanks really goes out to them.
Most of this came from here: https://wiki.edubuntu.org/ARM/BuildArmPackages
Things you need:
# I hope you have the Epic (last i heard radio shack may have 1 left. DRIVE CAREFULLY, theres snow everywere).
# Computer maybe , BestBuy ? I prefer to build my own (Brite Computers Fishers NY).
and a small note, you need ubuntu ruuning do do any of the image creation-manipulation.
I wasnt able to get VBOX to emulate the Image so...
you can either try to get it to work with VBOX,(goodluck), or dust off one of your old computers and get Ubuntu up.
UPDATE: got VBOX working was router issue. so give it a try.
But you may have to do what i did, i yanked out the family computer from the living room and fit in my literally 4' x 7' office to get this done.
i dont worry to much, i know they love me for spending the last 2 weeks with my face attached to the monitor.
# Rom: CyanogenMod-6. You could try others. (i tell my daughter who always copies her sister "you are your own nucklehead").
http://android.stolenrobot.com/Epic4G/epic.htm
Nightlies here: (i prefer this addiction over others). http://mirror.teamdouche.net/?type=nightly
# PLENTY OF PATIENCE
Get your phone ready: http://forum.xda-developers.com/showthread.php?t=770388
Setup ADB: http://forum.xda-developers.com/showthread.php?t=694250
Setup Ubuntu http://www.ubuntu.com/desktop/get-ubuntu/download
My 3G Prebuilt Image is http://www.megaupload.com/?d=SJY6ZB58
login dad
passwd f
root passwd not set
DO NOT USE THOSE SCRIPTS USE THESE: http://www.megaupload.com/?d=1NLU3XDU
sorry im late, having trouble upload (free account). this is for the evo. let me know if you can create new files on your desktop, if not you will have to wait until i foward the epic image.
Setup Rootstock
IN THE BEGINING
In your Ubuntu terminal type: "mkdir /<your home directory>/qemuArm"
(dont includ the < >'s or the ""'s) your home directory usually is /home/<your user name>/
then: cd /<your home directory>/qemuArm
then: sudo apt-get install qemu qemu-kvm-extras
then: sudo apt-get install debootstrap (if you dont have it already)
then: sudo apt-get install fakeroot (if you dont have it already)
then: sudo apt-get install bzr (if you dont have it already)
then: (download rootstock bzr branch)
sudo bzr branch lproject-rootstock
then: (download kernel to /<your home directory>/qemuArm) just
make sure you dont leave the, /<your home directory>/qemuArm directory
CREATION
then: (create your image)
sudo project-rootstock/rootstock --fqdn ubuntu --login ubuntu --password ubuntu --notarball --imagesize 3G --seed nano
or: custimize your image with the info in the readme file, in the /<your home directory>/qemuArm/project-rootstockfolder
(when your image is complete)
then: (make a copy)
cp qemu-armel-<replace with your #>.img <whatever you name it>.img (remove the <>'s)
EMULATION
1.Download the http://ports.ubuntu.com/ubuntu-port...aller-armel/current/images/versatile/netboot/ to ~/qemuArm
USE THIS WEBPAGE AND FIND THE LINK FOR YOUR KERNEL VERSATILE
https://wiki.edubuntu.org/ARM/BuildArmPackages
Then: (start your emulation) -----> dont forget to remove the <>'s <------
sudo qemu-system-arm -M versatilepb -cpu cortex-a8 -kernel ./vmlinuz -hda <whatever you name it>.img -m 256 -append "root=/dev/sda mem=256M devtmpfs.mount=0 rw"
then: (hopefully you will see a blank screen)
press alt-F1 if you do not see a login prompt go back to the begining
SO LET THER BE LIGHT
then: log in
then: (to change password)
sudo tmppwd ubuntu and to change login name never do "usermod -l newname -m -d /home/newname oldname" pic the right name at creation.
then: sudo tmppwd root (if you want to set root password)
THEN THERE WERE TWO
In the Emulated terminal:
(configure network connections)
sudo nano /etc/network/interfaces
add: (under existing entries of the file):
auto eth0
iface eth0 inet dhcp
then cntrl-X, confirm save, and exit.
then sudo ifconfig eth0 up
then sudo dhclient eth0
then sudo apt-get update (if it aint broke dont fix it) otherwise go back to the beginning
BORN AGAIN
On the Host System make sure Qemu is not running.
then: (install some more stuff)
sudo apt-get install bridge-utils
This assumes if you have a basic networking system with eht0 as interface
then: (configure network bridge)
•sudo nano /etc/network/interfaces
add: (under existing entries of the file)
auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_maxwait 0
then: cntrl-X, confirm save, and exit.
then: sudo ifconfig eth0 0.0.0.0
then: sudo ifup br0
then: (Load the tun module (you can add tun to /etc/modules if you want it to load on boot)
sudo modprobe tun
then: set permissions
sudo chmod 0666 /dev/net/tun
then: (change Qemu Script)
sudo nano /etc/qemu-ifup
add: a "#" symbol to all existing entries except the first line (got it?)
add: (under existing entries of the file):
echo "Executing /etc/qemu-ifup"
echo "Bringing up $1 for bridged mode..."
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
echo "Adding $1 to br0..."
sudo /usr/sbin/brctl addif br0 $1
sleep 2
then: set permissions
sudo chmod +x /etc/qemu-ifup
then: start emulation
sudo qemu-system-arm -M versatilepb -cpu cortex-a8 -kernel ./vmlinuz -hda <whatever you name it>.img -m 256 -append "root=/dev/sda mem=256M devtmpfs.mount=0 rw" -net nic -net tap
then: login
then: sudo apt-get install openssh-server
if: that goes well, your home free (we'll discuss errors later)
LEARN TO TALK
Now: you can ssh into or scp to your ARM VM from the host.
get ip address to ssh into or scp to, by simply running ifconfig in the ARM terminal.
install your applications
Or just get right to it and see what this is all about
LEARN TO WALK
Now: we will setup the chroot
Change your imagename to ubuntu.img
Using file manager, Create a folder (on your phone) /sdcard/ubuntu,
and transfer ubuntu.img to your sdcard folder, ubuntu.
Copy the following text including the (#) and paste into notepad++
(get it http://notepad-plus-plus.org/download) or in linux gedit or Eqvlnt.
Save as sdcard/ubuntu/bootubuntu (no extension)nothing more.
Hold on HERE: these scripts are for the EVO modify the loop1 entries to loop2 or loop5 and modify mtdblock3 to mtdblock2 if things dont work
(i cant do everything)
#modprobe ext2
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
export kit=/sdcard/ubuntu
export bin=/system/bin
if [ ! -d /data/local/ubuntu ]
then
mkdir /data/local/ubuntu
fi
export mnt=/data/local/ubuntu
export PATH=$bin:/usr/bin:/usr/sbin:/bin:$PATH
export TERM=linux
export HOME=/root
mknod /dev/loop1 b 7 0
losetup /dev/block/loop1 /sdcard/ubuntu/ubuntu.img
mount -t ext2 /dev/block/loop1 /data/local/ubuntu
#mount -o loop,noatime -t ext2 $kit/ubuntu.img $mnt
mount -t devpts devpts $mnt/dev/pts
mount -t proc proc $mnt/proc
mount -t sysfs sysfs $mnt/sys
sysctl -w net.ipv4.ip_forward=1
echo "Setting /etc/resolv.conf to Google Open DNS 8.8.8.8 and 8.8.4.4"
echo "nameserver 8.8.8.8" > $mnt/etc/resolv.conf
echo "nameserver 8.8.4.4" >> $mnt/etc/resolv.conf
echo "Setting localhost on /etc/hosts "
echo "127.0.0.1 localhost" > $mnt/etc/hosts
echo "READY TO ROCK AND ROLL BABY! "
echo "Brought to you by NexusOneHacks.net and the open source community! "
echo " "
chroot $mnt /bin/bash
#After exit command is executed clear it all up
echo " "
echo "Shutting down Ubuntu"
umount $mnt/dev/pts
umount $mnt/proc
umount $mnt/sys
umount $mnt
losetup -d /dev/loop1
AND DO THE SAME FOR THE NEXT 4 FILES AND NAME THEM CORRECTLY AND USE THE RIGHT TEXT EDITOR
This next file is called sdcard/ubuntu/unionfs (remember no file ext.)
busybox insmod unionfs
mount -t unionfs -o dirs=$mnt/etc=rw:/etc=ro unionfs /etc
mount -o remount,rw /
ln -s $mnt/lib /
for x in \
bin boot home media mnt \
opt selinux srv usr var
do
ln -s $mnt/$x /
done
rmdir /root
ln -s $mnt/root /
mount -o remount,ro /
mount -t unionfs -o dirs=$mnt/sbin=rw:/sbin=ro unionfs /sbin
mount -t unionfs -o dirs=$mnt/dev=rw:/dev=rw unionfs /dev
mount -t devpts devpts /dev/pts
This next file is called sdcard/ubuntu/fsrw (remember no file ext.)
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
echo "Filesytem remounted as read/write"
This next file is called sdcard/ubuntu/mountonly (remember no file ext.)
# Based on Saurik's remount.sh - modified by Mark Walker of http://www.androidfanatic.com
# Email [email protected]
modprobe ext2
clear
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
export kit=/sdcard/debian
export bin=/data/local/bin
export mnt=/data/local/mnt
export PATH=$bin:/usr/bin:/usr/sbin:/bin:$PATH
export TERM=linux
export HOME=/root
busybox insmod ext2
clear
echo " "
mount -o loop,noatime $kit/debian.img $mnt
mount -t devpts devpts $mnt/dev/pts
mount -t proc proc $mnt/proc
mount -t sysfs sysfs $mnt/sys
echo "Custom Linux IMG Mounter V1.0 - by Mark Walker"
echo "WEB: http://www.androidfanatic.com"
echo "EML: [email protected]"
sleep 1
echo "AutoMounter started"
sleep 1
echo "REBOOT PHONE TO PROPERLY DISMOUNT"
echo " "
# chroot $mnt /bin/bash
This next file is called sdcard/ubuntu/ubuntu.sh (this one has .sh for file ext)
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
modprobe ext2
clear
rm -f /data/local/bin/fsrw
rm -f /data/local/bin/bootubuntu
rm -f /data/local/bin/unionfs
rm -f /data/local/bin/installer.sh
rm -f /data/local/bin/mountonly
mkdir /data/local/mnt
clear
rm /system/bin/fsrw
rm /system/bin/bootubuntu
rm /system/bin/unionfs
rm -/system/bin/mountonly
cp -f fsrw /system/bin
cp -f bootubuntu /system/bin
cp -f unionfs /system/bin
cp -f mountonly /system/bin
cd /sdcard/ubuntu
chmod 4777 *
cd /system/bin/
chmod 4777 *
cd /
clear
echo " "
echo "Ubuntu Chroot Bootloader v0.1"
echo "Ubuntu Bootloader is now installed!"
echo "This process does NOT damage Android OS!"
echo " "
echo "Original Installer by Charan Singh"
echo "Modified for Ubuntu Chroot by Max Lee at NexusOneHacks.net"
echo " "
echo "To enter the Debian Linux console just type 'bootubuntu'"
bootubuntu
After you have,
bootubuntu
fsrw
mountonly
unionfs
ubuntu.sh
ubuntu.img
in your /sdcard/ubuntu folder
Open adb shell
Enter: su
then: cd /sdcard/ubuntu
then: sh ./ubuntu.sh
then: apt-get update
then: apt-get install tightvncserver
then: apt-get install lxde
then: export USER=root
then: vncserver :0 -geometry 1024x800
then: cat > front
then: export USER=root
then: cd /
then: rm -r -f /tmp
then: mkdir /tmp
then: cd /
then: vncserver :0 -geometry 1024x800
then: press "cntrl D", "cntrl D" again, then Enter)
then: cat front /root/.bashrc > temp
then: cp temp /root/.bashrc
then:
Get Android VNC for you phone (market)
open app
enter 5900 for port
enter password you setup for vncserver
enter (for nick) username you picked during creation
enter (for address) localhost
set graphics for 24 bit
Connect
let the fun begin
Next update: How to network with Hamachi
It does work <-----Havent gotten that far with the epic
Let me buy you a beer or whatever you sip. I just wanted to save someone the headace of setting this up and creating there own image instead of using someone else's.
SEE ya
NICE
A very nice tutorial, TY for the attention to details.
spending lots of time with segmentation fault error (chroot)
I success to open up ubuntu GUI on my android
with following site
(first googled site with "cyanogenmod ubuntu")
but fail with other imgs(such as img in nexusonehack)
for now, I am trying to bootup ubuntu 10.10 on my gw620(smart phone whose cpu is ARMv6 Qualcomm MSM7200)
by my self.
with selfmade rootstock img and busybox and chroot
I made img my self withroot stock with following option
rootstock -f kty1104-Notebook -l kty1104 -p 1 --imagesize 2047M --notarball --seed linux-image-omap,lxde,build-essential,openssh-server,tightvncserver,x11-xserver-utils
and change name to ubuntu.img and place to /sdcard/
and apply to bootubuntu.sh
bootubuntu.sh contents is this
===============================================
#!/system/bin/sh
# Original script by Paolo Sammicheli xdatap1
#
# Based on Saurik's remount.sh modified version by Mark Walker of
# URL is here but I can't write url b/c of my account privilege
# Modified version for Cyanogenmod by potoc samdroid
mkdir /mnt/ubuntu
#remount system as read/write
remount rw
export mnt=/mnt/ubuntu
export PATH=/usr/bin:/usr/sbin:/bin:$PATH
export TERM=linux
export HOME=/root
export kit=/sdcard
export loopdev=/dev/block/loop4
losetup $loopdev $kit/ubuntu.img
mount -t ext2 $loopdev $mnt
mount -t devpts devpts $mnt/dev/pts
mount -t proc proc $mnt/proc
mount -t sysfs sysfs $mnt/sys
cat $mnt/root/logo.txt
echo " "
echo "Type EXIT to end session"
echo "Make sure you do a proper EXIT for a clean umount!"
echo " "
echo "Please reboot your device when you finished your work."
chroot $mnt /bin/bash
busybox umount -f /mnt/ubuntu/dev/pts /mnt/ubuntu/proc /mnt/ubuntu/sys /mnt/ubuntu
===============================================
do I need more option for rootstock?
or do I need special sh file for it?
I can mount ubuntu.img with
# mknod -m640 /dev/loop0 b 7 8
losetup /dev/loop0 /sdcard/ubuntu.img
mount -t ext2 /dev/loop0 /mnt/ubuntu
but when it comes to chroot, it sprit [1] segmentation fault chroot ${mnt} /b...#
if there are missing information please let me know, I will write it down
Regards.
Taeyun
I know I musn't revive old threads... but the question and the problem is already set up here.
I'm having the same problem with my HTC Magic 32A. Anybody knows what's up with the segfault?
Thanks!
I've spent a lot of time on this issue too, and as far as I can tell it's because Ubuntu versions over 9.04 (jerking jackalope or whatever idiot name they use) no longer support ARMv6. This means I can't run BT5, which is based on 10.x, but I believe Debian still supports v6.
This how-to describes how to bootstrap and configure Optware-ng. Optware-ng is my Optware firmware-independent fork. This allows to install numerous pre-compiled packages.
Lists of available packages can be found here:
ARMv7 hardfloat
Intel
ARMv7 softfloat
And the project home is currently here:
https://github.com/alllexx88/Optware-ng
Some packages may not work, since not all of them are compatible with android, but most will. There're some pre-requisites you must satisfy before you can proceed:
1. You must be rooted
2. Optware-ng relies on some standard linux commands, the easiest way to make sure you have them is to install Busybox with all the links
3. We'll create Optware-ng initialization script in /system/etc/init.d, so init.d support is needed. If you don't have it, you can either add it (google for how-tos on doing this) or edit your init.rc android startup script to include Optware-ng initialization lines (though adding init.d support is still a better idea)
The following commands should be issued from terminal as root. I suggest you use some SSH server available on the Play Store, and connect via SSH from you PC.
1. This prepares needed environment:
- Optware-ng will be installed to /data/Optware-ng with /opt symlinked to it
- Optware-ng scripts rely on /bin/sh, so we symlink it to /system/bin/sh
- Optware-ng needs /tmp temp dir: we create 64Mb RAM disk there (you may adjust the size if you like)
Code:
mkdir -p /data/Optware-ng
mount -o remount,rw /
ln -s /data/Optware-ng /opt
mkdir /bin
ln -s /system/bin/sh /bin/sh
mkdir /tmp
chmod 777 /tmp
mount -t tmpfs -o size=64M tmpfs /tmp
mount -o remount,ro /
export PATH=$PATH:/opt/bin:/opt/sbin
2. This bootstraps the feed:
2.a) for ARMv7 hardfloat (most modern android devices):
Code:
cd /tmp
wget http://optware-ng.zyxmon.org/buildroot-armeabihf/buildroot-armeabihf-bootstrap.sh
sh buildroot-armeabihf-bootstrap.sh
2.b) for Intel:
Code:
cd /tmp
wget http://optware-ng.zyxmon.org/buildroot-i686/buildroot-i686-bootstrap.sh
sh buildroot-i686-bootstrap.sh
2.c) for the unlikely case where your device is ARMv7, but lacks FPU (softfloat feed):
Code:
cd /tmp
wget http://optware-ng.zyxmon.org/buildroot-armeabi-ng/buildroot-armeabi-ng-bootstrap.sh
sh buildroot-armeabi-ng-bootstrap.sh
Unless you're using ARMv7 softfloat feed, bootstrapping process may appear to be "stuck" on this:
Configuring glibc-locale
Generating locale-archive with default locales ...
Click to expand...
Click to collapse
Don't be frightened: if your device isn't too powerful, it indeed takes a lot of time, but you have to do this just once, so please be patient.
3. Make sure environment needed for Optware-ng is restored after reboots, and also run Optware-ng startup scripts on boot:
Create init.d startup script and make it executable
Code:
mount -o remount,rw /system
echo '#!/system/bin/sh
mount -o remount,rw /
ln -s /data/Optware-ng /opt
mkdir /bin
ln -s /system/bin/sh /bin/sh
mkdir /tmp
chmod 777 /tmp
mount -t tmpfs -o size=64M tmpfs /tmp
mount -o remount,ro /
sleep 2
export PATH=$PATH:/bin:/opt/bin:/opt/sbin
for script in `ls /opt/etc/init.d/S*`; do
$script start
done' > /system/etc/init.d/S99Optware-ng
chmod 755 /system/etc/init.d/S99Optware-ng
mount -o remount,ro /system
Once again, you may adjust this line
Code:
mount -t tmpfs -o size=64M tmpfs /tmp
if you want greater/lesser RAM disk on /tmp
(4.) You're basically done, but I suggest you now install Optware-ng's dropbear-android package to act as an SSH server:
Code:
ipkg update
ipkg install dropbear-android
dropbear configs are stored in /opt/etc/default/dropbear and by default are:
Code:
DROPBEAR_ENABLE=no
DROPBEAR_PORT=2222
DROPBEAR_PASSWORD=password
Run these commands to adjust configs, enable dropbear and start it:
(replace <*> strings with actual desired values)
Code:
sed -i -e '/^DROPBEAR_PORT=/s/=.*/=<YOUR_PORT>/' -e '/^DROPBEAR_PASSWORD=/s/=.*/=<YOUR_PASSWORD>/' -e '/^DROPBEAR_ENABLE=/s/=.*/=yes/' /opt/etc/default/dropbear
/opt/etc/init.d/S51dropbear start
Now you are advised to use dropbear as SSH server to play with Optware-ng: use 'root' user, '<YOUR_PASSWORD>' password and '<YOUR_PORT>' port
For better security you may use public key authorization only: set password to blank and add your public keys to /opt/etc/dropbear/authorized_keys (don't forget to `chmod 600 /opt/etc/dropbear/authorized_keys` after you create it!) and restart dropbear or just reboot.
P.S. I'm not exactly sure that this is the right place to post this, please move it if needed.