Hi guys,
As I'm sure most of you already know, some super-smart devs have already gotten ubuntu running on evo and nexus 1. I haven't heard any news of anyone doing this on the incredible.
I would love this functionality, but I'm no dev and have no experience building kernels. Anyone with the appropriate know how interested in having a look at the evo forum, and see if they can compile a kernel that will allow us to run ubuntu on or incredibles?
Just fyi: feedback from evo users suggest that all ubuntu functionality is working, including full flash support and even hulu.com!
Are you as excited as I am? Lets get to work on this- let me know and I'll help anyway I can.
Sent from my ADR6300 using XDA App
Ok, hadn't done this before, but it turned out to be pretty easy. I have compiled the kernel, and packaged it into an update.zip file signed with test keys. You can flash this straight from CW recovery.
If anyone is interested, this "kupdate-signed.zip" will update the kernel to the one I have compiled.
This kernel is completely identical to the stock htc kernel, except that it has the
CONFIG_BLK_DEV_LOOP=y
set so that we can run Ubuntu.
FInd it here: www<dot>4shared<dot>com/file/-kxtUfIw/kupdate-signed<dot>html
--samwathegreat
Ok, so the kernel seems to work perfectly for me, however I am unable to get ubuntu running.
I'm not sure where the problem lies, but I think it has to do with our restricted access to /system and /data.
Hopefully someone here can figure out what it is that I'm missing......I've tried following the instructions while booted into recovery and mounting /system and /data > everything works fine when I run the ubuntu.sh file, but I can't run the bootubuntu file under recovery........so after rebooting phone and trying to run bootubuntu, I get all kinds of errors and ultimately it fails.
After viewing the contents of bootubuntu file, I noticed that once again, it's trying to mount the /system partition......
If this is indeed because of the nand lock, then why does the procedure work on the evo 4g? I was under the impression that it incorporated the same nand lock as the incredible?
Any ideas?
Thanks
Edit:
The nand lock is indeed the culprit...just found out that evo users have full nand unlock available. I wasn't aware of that -hopefully we have the same soon on the incredible.
Patiently waiting...
Sent from my ADR6300 using XDA App
I was looking through the
bootubuntu a few days ago and if I remember correctly it was just moving some if the scripts into the system partition. We could probably boot into recovery and move the files in manually then edit the scripts to remove the system access.
Think its possible? I haven't looked at the scripts in a few days...
Sent from my ADR6300 using XDA App
If you need someone to test let me know.
Sent from my HTC Incredible using Tapatalk
I posted a thread about chroot earlier with no reply. No true nand unlock means no chroot which means no dual booting into ubuntu/debian/meego etc. Also no response from unrevoked if they plan on releasing a true nand unlock.
Other big problem is input.
http://forum.xda-developers.com/showthread.php?t=631389
That's about putting debian on the nexus as well using adb which might be possible but ending the session might have to be a battery pull. The big problem are sound drivers, GSM radio/modem drivers and on screen input.
Dvdivx:
Thanks, we're on the right track, however fastboot won't work on our devices either...again because of nand (that's why I had to make my kernel into an update.zip and sign with test keys - the evo boys just use fastboot to update their kernels). MAYBE we could get one of the distros installed in recovery with update.zip, but I don't see how we could boot android too if we go this method.
Shame I went to all the trouble of building that kernel....oh well. Maybe we will have nand unlock soon and get to use it yet.
Keep me posted if you find something out that hasn't been mentioned here. Thanks.
Sent from my ADR6300 using XDA App
I've been trying this for the last few days and stumbled uppon this thread when trying to get around the problem of mount -o loop.
I'm using http[://]nexusonehacks.net/nexus-one-hacks/how-to-install-ubuntu-on-your-nexus-oneandroid/ as my guide and running through the two scripts manually adjusting as needed.
Thanks to your kernel i was able to get the ubuntu.img mounted. Here is what I've done so far...
#running jager chocolate rom with
#reboot recovery
mkdir /tmp/system
mount -o rw -t yaffs2 /dev/block/mtdblock3 /tmp/system
cd /tmp/system
cp /sdcard/ubuntu/fsrw .
cp /sdcard/ubuntu/bootubuntu .
cp /sdcard/ubuntu/unionfs .
cp /sdcard/ubuntu/mountonly .
chmod 4777 fsrw
chmod 4777 bootubuntu
chmod 4777 unionfs
chmod 4777 mountonly
#reboot and connect with adb shell
export kit=/sdcard/ubuntu
export bin=/system/bin
export mnt=/data/local/ubuntu
export PATH=$bin:/usr/bin:/usr/sbin:/bin:$PATH
export TERM=linux
export HOME=/root
mkdir /data/local/ubuntu
mount -o rw,loop -t ext2 $kit/ubuntu.img $mnt
busybox mount --bind /dev/pts $mnt/dev/pts
busybox mount --bind /proc $mnt/proc
busybox mount --bind /sys $mnt/sys
sysctl -w net.ipv4.ip_forward=1
echo "nameserver 8.8.8.8" > $mnt/etc/resolv.conf
echo "nameserver 8.8.4.4" >> $mnt/etc/resolv.conf
echo "127.0.0.1 localhost" > $mnt/etc/hosts
chroot $mnt /bin/bash
So.... now I've got "[email protected]:/#"
And...
# uname -a
Linux localhost 2.6.29 #1 PREEMPT Sun Jul 11 03:35:47 EDT 2010 armv7l GNU/Linux
# chroot $mnt /bin/bash
[email protected]:/# cat /etc/issue
Ubuntu 9.10 \n \l
I think I'd call that a success.... Someone care to confirm?
Done with the following:
apt-get update
apt-get install tightvncserver
apt-get install lxde
export USER=root
vncserver
Over to androidVNC... The connection is taking forever to go through
When i go back to the terminal and cat /root/.vnc/localhost:1.log I see the following:
xrdb: No such file or directory
xrdb: can't open file /root/.Xresources
Segmentation fault
Edit: Nevermind... it works. When I entered the address in androidvnc, localhost was autocorrected as locals and I didn't notice.
The following script I saved as ubuntu.sh to handle creating the environment variables and such that is required each time you launch ubuntu. i call it with sh ubuntu.sh since I cant make it executable on the sdcard and don't feel like booting into recovery to put it in /system/bin until I work out the little issues. The only problem with below is that it is not un mounting the ubuntu image... Any ideas?
#####BEGIN ubuntu.sh#####
export kit=/sdcard/ubuntu
export bin=/system/bin
export mnt=/data/local/ubuntu
export PATH=$bin:/usr/bin:/usr/sbin:/bin:$PATH
export TERM=linux
export HOME=/root
export USER=root
mount -o rw,loop -t ext2 $kit/ubuntu.img $mnt
busybox mount --bind /dev/pts $mnt/dev/pts
busybox mount --bind /proc $mnt/proc
busybox mount --bind /sys $mnt/sys
sysctl -w net.ipv4.ip_forward=1
echo Running ubuntu!
chroot $mnt /bin/bash
#After exit, cleanup
umount $mnt/dev/pts
umount $mnt/proc
umount $mnt/sys
umount $mnt
#####END ubuntu.sh#####
Also, I was able to launch a few applications inside my VNC session including firefox. It was really really slow (i guess as expected). i would be interested in a performance comparison from someone who has both an incredible and one of other devices people have made run ubuntu in this fashion.
Ok so I've wiped my phone and started from scratch to come up with an easy procedure...
All that you need is the kernel samwathegreat posted, ubuntu.img (in /sdcard/ubuntu) and the following script. You only need to boot into recovery to do a nandroid backup and to install the kernel.
###### BEGIN ubuntu.sh ######
export PATH=/system/bin:/usr/bin:/usr/sbin:/bin:$PATH
export TERM=linux
export HOME=/root
export USER=root
mkdir /data/local/ubuntu
mount -o rw,loop -t ext2 /sdcard/ubuntu/ubuntu.img /data/local/ubuntu
busybox mount --bind /dev/pts /data/local/ubuntu/dev/pts
busybox mount --bind /proc /data/local/ubuntu/proc
busybox mount --bind /sys /data/local/ubuntu/sys
sysctl -w net.ipv4.ip_forward=1
echo waiting for things to settle...
sleep 5
echo Running ubuntu!
chroot /data/local/ubuntu /bin/bash
#After exit, cleanup
umount /data/local/ubuntu/dev/pts
umount /data/local/ubuntu/proc
umount /data/local/ubuntu/sys
umount /data/local/ubuntu
###### END ubuntu.sh ######
Here is everything in one zip file: www megaupload com/?d=WO094E5Q
FANTASTIC!
pez:
Thanks so much!
I'm thrilled that my kernel did indeed go to some good use. You obviously have greater linux knowledge than I, as i would not have been able to do the scripting myself.
In the true spirit of teamwork, we've accomplished this WITHOUT having nand access. To me, this is quite an accomplishment.
Thanks to everyone that worked on this! Also - Although I did build the kernel myself, I feel that credit must also go to "Koush", who provided the means and instructions to package the kernel into an update.zip file, and sign with test keys.
Good Luck everybody, and have fun playing with ubuntu on your Incredible!!!
-samwathegreat
Here is a really crappy video I recorded. I open the browser at the start to show I disabled all network access and am indeed connecting to localhost.
http://www.youtube.com/watch?v=HMYvQ5r_OyA
If someone else could replicate my success and post a better video I'd appreciate it.
Edit: Just saw your reply samwathegreat. Did you get a chance to try it yourself? I wrote a little howto on androidforums.com (http://androidforums.com/all-things...-run-ubuntu-droid-incredible.html#post1127643) hoping that others would be able to confirm they were successful too.
Also, the key mapping is messed up when connecting with VNC, but I haven't had time to find out why.
This is pretty awesome. I'll have to try this later just for the hell of it.
Too cool. My ROM has a kernel capable of this. I'm gonna try!
ihtfp69 said:
Too cool. My ROM has a kernel capable of this. I'm gonna try!
Click to expand...
Click to collapse
Hell, you should package this in with your rom.
Gimpeh said:
Hell, you should package this in with your rom.
Click to expand...
Click to collapse
Seconded!
Vote called motion carried, the I's have it.
Gimpeh said:
Hell, you should package this in with your rom.
Click to expand...
Click to collapse
Wouldn't having something like this in your sky raider rom bloat it and cause more battery use having it run in the background?
kentoe said:
Wouldn't having something like this in your sky raider rom bloat it and cause more battery use having it run in the background?
Click to expand...
Click to collapse
If it's running all the time. As long as you have a kill command it should be fine.
Related
I've been experimenting and gathering information all day on how to build a Debian image to run on the Tab (and any other ARM Android devices, for that matter). I've found all the stuff on how to use the Ubuntu images posted, but I really wanted to know how to build a minimal system that I could have complete control over. (I used the latest version of Debian available, Squeeze, when building this, so anything that references "Squeeze" in the commands is because of that. You can easily substitute in a more generic name for files.)
I am going to break this down into a few sections.
Requirements:
Debian or Ubuntu machine (I used a VM with Ubuntu 11.04 installed on it)
Rooted Tab with BusyBox installed
Create the Image:
On the Linux machine you will need to install debootstrap
Code:
sudo apt-get install debootstrap
Create a blank image, format it and then mount it
Code:
dd if=/dev/zero of=squeeze.img bs=1M count=512
mkfs.ext4 -F squeeze.img
sudo mkdir /mnt/squeeze/
sudo mount -t ext4 -o loop squeeze.img /mnt/squeeze/
Note: The image file above is for 512MB, change it to "count=1024" for 1GB, I tried 512MB and it was very limited in space once X was installed.
Run debootstrap and install the system into the image
Code:
sudo debootstrap --verbose --arch armel --foreign squeeze /mnt/squeeze/ http://ftp.debian.org/debian
Unmount the image
Code:
sudo umount /mnt/squeeze/
Install the Image
Create a folder on the Tab, I used /sdcard/debian/ as my storage for my Debian files. Copy your newly created image over into the folder.
Installation will involve the following:
Creating a mount point and mounting the image
Chrooting into the Debian system
Setting some variables
Running the debootstrap installation
Either in a terminal on the device or using adb, do the following to install the system. (The code is commented to better explain how things are working.)
Code:
# Gain root access
su
# Create a mount point and mount the image file into it
# You can substitute any folder instead /data/local/debian/
mkdir /data/local/debian/
mount -o loop,noatime -t ext4 /sdcard/debian/squeeze.img /data/local/debian/
# Chroot into the Debian system
chroot /data/local/debian/ /bin/sh
# Set some required variables
export PATH=$bin:/usr/bin:/usr/sbin:/bin:$PATH
export TERM=linux
export HOME=/
export USER=root
# Set the shell prompt just in case it got overwritten by something else
export PS1='[email protected]$HOSTNAME:${PWD-?} # '
# Run debootstrap
sh /debootstrap/debootstrap --second-stage
# Start a bash shell
/bin/bash
DO NOT EXIT THE SHELL BEFORE MOVING ON TO THE NEXT SECTION
First Boot
Technically the system is running, but if you start to use it you will quickly notice some things just aren't right. There are a few things that I've found that I've needed to do in order to get things running right. You should only need to do these the first time the system is run.
In the Debian shell that is still running on the Tab, do the following
Code:
# This is for working DNS
echo "nameserver 8.8.8.8" > /data/local/debian/etc/resolv.conf
echo "nameserver 8.8.4.4" >> /data/local/debian/etc/resolv.conf
echo "127.0.0.1 localhost" > /data/local/debian/etc/hosts
# Needed to install packages from the repository
echo "deb http://ftp.debian.org/debian/ squeeze main contrib non-free" > /etc/apt/sources.list
echo "deb-src http://ftp.debian.org/debian/ squeeze main contrib non-free" > /etc/apt/sources.list
# Do the initial update of the package repository
apt-get update
Once that is complete return to the Android system by running the exit command
Code:
exit
So that's a fully running system right there. But we haven't addressed starting and shutting down the system.
Here is what a simple boot script would look like to both run and stop the system:
Code:
clear
echo "Mounting Debian Squeeze..."
mount -t ext4 -o loop squeeze.img /mnt/squeeze/
echo "Setting environmental variables..."
export PATH=$bin:/usr/bin:/usr/sbin:/bin:/sbin:$PATH
export TERM=linux
export HOME=/
export USER=root
export PS1='[email protected]:${PWD-?} # '
echo "Mounting devpts/proc/sysfs..."
mount -t devpts devpts /data/local/debian/dev/pts
mount -t proc proc /data/local/debian/proc
mount -t sysfs sysfs /data/local/debian/sys
echo "Chrooting into Debian Squeeze..."
chroot /data/local/debian/ /bin/bash
echo "Unmounting devpts/proc/sysfs..."
umount /data/local/debian/dev/pts
umount /data/local/debian/proc
umount /data/local/debian/sys
echo "Unmounting Debian Squeeze..."
umount /mnt/squeeze/
You will notice that the script also mounts and unmounts additional system filesystems. Also, the script basically pauses right after the chroot command waiting for the process to end, which occurs when you type exit inside of the Debian system. In effect, the script queues up the umount commands for whenever the Debian system is exited.
I use a script similar to that (without the mount/umount because I prefer to do that myself) to start my system. I have it saved to /sdcard/debian/debian and I start the system with the following command:
Code:
su
sh /sdcard/debian/debian
Issues:
The following issues have been encountered:
If the image file is mounted then unmounted, if you try to remount the image again it will error out. (Reboot to solve)
Optional Installation:
Of course the steps above leave you with a working system, but no doubt you will want more functionality.
I've installed TightVNC using the following command:
Code:
apt-get install tightvncserver
To start it:
Code:
vncserver -geometry 1280×752
After that you can connect to it using any VNC software, either local or over the network. If you connect local, be sure to use 127.0.0.1:5901.
Note: This does not install a window manager, if you VNC into the Tab you will get a blank desktop.
I also found that the less command was missing. Turns out the easy fix was to do the following:
Code:
apt-get install less
Finally...
All of this has just been what I've encountered so far today, haven't done much more than set up the system. Please let me know if I'm missing any key parts of the system or if there are any ways that this could be more streamlined.
Hope this helps someone
Thanks man, after rooting my SGT i have been looking for something like this, i'll try it when arrive home.
does touch screen work?
hardt2788 said:
does touch screen work?
Click to expand...
Click to collapse
Dear god man read! It runs as a Virtual Machine on your tablet and you use a VNC client to control it. So yes touchscreen works but it is not a duel boot and is "piggy backing" off android.
So if someone emails you can switch to the email app then back to the vnc app.
You need pills.
Sent from my GT-P7510 using XDA Premium App
maniac3389, have you tried running lxde instead of gnome to see if it runs any faster?
hardt2788 said:
does touch screen work?
Click to expand...
Click to collapse
Sorry, been a few days since I've been on here. Well, the concept is that you run a VNC server in the Debian system and you "remote" into it via a VNC client on the Honeycomb side.
jamezelle said:
maniac3389, have you tried running lxde instead of gnome to see if it runs any faster?
Click to expand...
Click to collapse
Been a bit since I've worked with it, it installed and worked but something was quirky about it. (can't recall what it was)
This thread is now obsolete!
Use this thread to do way more!!!
THIS COULD BREAK EVERYTHING IN THE WORLD AND SCREW UP YOUR LIFE FOREVER!!!! YOUR PHONE COULD BE BRICKED!!! YOUR WIFE COULD LEAVE YOU AND YOUR PARENTS COULD DIE!!! DO THIS AT YOUR OWN RISK!!! MAKE SURE TO HAVE A COPY OF THE FASTBOOT FILES FOR THE BIONIC JUST IN CASE!!!
I got Chromium Browser to run on the Webtop. It's a little messy (have to open it through a terminal emulator) but it works. I borrowed heavily from Sogarth who made this thread.
Made it a little easier.
Unzip and place the webtopchromium folder on the root of /sdcard-ext
webtopchromium.zip
If you are plugged into a computer make sure to change USB Mode to charge only before you proceed.
Use a terminal emulator or adb to run these commands:
Code:
su
/usr/bin/sudo -H -u root bash
cd /mnt/sdcard-ext/webtopchromium
sh webtopchromium.sh
This may take 10 minutes or so...
When it is finished reboot...
Use a terminal emulator or adb to run these commands:
Code:
su
/usr/bin/sudo -H -u root bash
cd /mnt/sdcard-ext/webtopchromium
sh installdeb.sh
Now when inside webtop open a terminal emulator in the phone window and run:
Code:
su
/usr/bin/sudo -H -u adas bash
export DISPLAY=:0
chromium-browser
You can just run the installdeb.sh (much faster) if you don't want to backup webtop with rsync. You can always use the fast boot to fix either way.
**Thanks to tallnerd for suggesting the faster method**
**A huge thanks to Sogarth for discovering all this first for the Atrix**
reserved
To uninstall and revert back to the stock webtop:
Using adb with root access:
adb shell
su
mount -o rw,remount /dev/block/mmcblk0p12 /system
cd /system/bin
mv mountosh mountosh.new
mv mountosh.orig mountosh
cd /data
rm ubuntu.disk
Reboot
I tried this, but it broke my Xperia Play. The micro HDMI cable I bought also broke the micro USB port on my phone.
v1r7u41 said:
THIS COULD BREAK EVERYTHING IN THE WORLD AND SCREW UP YOUR LIFE FOREVER!!!! YOUR PHONE COULD BE BRICKED!!! YOUR WIFE COULD LEAVE YOU AND YOUR PARENTS COULD DIE!!! DO THIS AT YOUR OWN RISK!!! MAKE SURE TO HAVE A COPY OF THE FASTBOOT FILES FOR THE BIONIC JUST IN CASE!!!
I got Chromium Browser to run on the Webtop. It's a little messy (have to open it through a terminal emulator) but it works. I borrowed heavily from Sogarth who made this thread.
Get a copy of these debs and put them on your sdcard-ext.
chromium-browser
Dependencies
Make sure to unzip the debs.zip and copy the .deb files and the mountosh.new to the sdcard-ext.
Use adb or android terminal-emulator.
Now check to make sure you have at least 1G free:
Code:
/bin/df -h /data
There should be at least 1.0G under the Used column. If not, you won't have enough to create a decent disk. If so, then you can keep going:
Code:
su
/usr/bin/sudo -H -u root bash
mount -o rw,remount /dev/block/mmcblk0p12 /system
/bin/dd if=/dev/zero of=/data/ubuntu.disk bs=1024 count=1048576
/sbin/losetup /dev/block/loop7 /data/ubuntu.disk
/sbin/mkfs -t ext3 -m 1 -b 2048 /dev/block/loop7
mkdir /tmp/osh
/bin/mount -t ext3 /dev/block/loop7 /tmp/osh
At this point, we've created a 1 GB disk file (1,024×1,024=1,048,576), formatted it as ext3, and mounted it in /tmp/osh.
I'll assume that rsync is in /mnt/sdcard-ext:
Code:
mkdir /tmp/deb
/usr/bin/dpkg-deb -x /mnt/sdcard-ext/rsync* /tmp/deb
/tmp/deb/usr/bin/rsync -avx /osh/ /tmp/osh/
And now we have a duplicate of our /osh partition.
After that:
Code:
mv /system/bin/mountosh /system/bin/mountosh.orig
cp /mnt/sdcard-ext/mountosh.new /system/bin/mountosh
chmod 0755 /system/bin/mountosh
chown 0 /system/bin/mountosh
chgrp 2000 /system/bin/mountosh
You can now reboot your device, and you should now boot into the new partition we've just created.
Now Install the debs.
Code:
su
/usr/bin/sudo -H -u root bash
touch /osh/var/lib/dpkg/status
touch /osh/var/lib/dpkg/available
mkdir /osh/var/lib/dpkg/updates
dpkg -i --force-all --root=/osh /sdcard-ext/chromium*
dpkg -i --force-all --root=/osh /sdcard-ext/libxss*
dpkg -i --force-all --root=/osh /sdcard-ext/lzma*
You will get some errors from dpkg but just ignore them. Moto broke dpkg's way of telling what is already installed.
Now to run chromium you will need to start webtop like you usually do
then open a terminal-emulator in the phone window and type this
Code:
su
/usr/bin/sudo -H -u adas bash
export DISPLAY=:0
chromium-browser
Click to expand...
Click to collapse
You should make a chromium icon/app that will run that last command when you click it
Yeah. I definitely need to clean this up, but I just wanted to get things moving .
I'm anxious to try this. I'll gladly be the third person to do it, but I don't want to be the second. Someone with more experience than I give it a try.
updated to make it a little easier
Posting this from Chrome on Webtop. It is noticeably faster than Firefox. Like butta!
Thank you so much for putting this together!
Maybe I'm missing something here but when running the script/install all goes well til the very last line, when I enter the "chromium-browser" command it states bash: chromium-browser not found. Can someone give me an idea of what I'm missing or doing wrong here please
Check your /sdcard-ext/webtopchromium folder before you run the installdeb.sh and make sure these are there:
chromium-browser-inspector_12.0.742.112~r90304-0ubuntu0.10.10.1_all.deb
chromium-codecs-ffmpeg_10.0.648.205~r81283-0ubuntu0.10.10.1_armel.deb
chromium-browser_10.0.648.205~r81283-0ubuntu0.10.10.1_armel.deb
libxss1_1%3a1.2.0-2_armel.deb
lzma_4.43-14ubuntu2_armel.deb
If chromium-browser_10.0.648.205~r81283-0ubuntu0.10.10.1_armel.deb isn't there run:
Code:
cd /sdcard-ext/webtopchromium
/tmp/deb/usr/bin/wget https://answers.launchpad.net/~ubuntu-security-proposed/+archive/ppa/+build/2443315/+files/chromium-browser_10.0.648.205%7Er81283-0ubuntu0.10.10.1_armel.deb
Well this sucks, I did a full wipe/nandroid restore and now that it's done I go to download the files and they're not there. Can anyone re-upload the files for me please?
Why, oh why did Moto not use Chrome? It is faster and I have not had a single low memory warning while using Chrome. In fact, I have yet to have it register over 3% in memory manager. Thanks again V1r7.
I'll setup a host for the files soon. Check back later (im away from computer) tonight.
Sent from my DROID BIONIC using XDA App
Got the file off of my computer, still running into issues though. Verified that all of the correct files are there and installed/uninstalled a few times just to verify. Quick question are you guys running the webtop adaptor or the lapdock? I'm running on the lapdock and wondering if this would make any difference at all if you're using the webtop.
I'm using the lapdock. Sorry I don't know enough to help you out. I'm rooted and followed the instructions and it worked.
Goto your terminal and type
busybox find /osh/usr/bin -name chrom*
Let me know what you find.
Sent from my DROID BIONIC using XDA App
When I type those commands it does absolutely nothing, just goes on to the next terminal line the same as the last.
try:
busybox find /sdcard-ext/webtopchromium/ -name chrom*
v1r7u41 said:
try:
busybox find /sdcard-ext/webtopchromium/ -name chrom*
Click to expand...
Click to collapse
When I type that it comes up with these results:
/sdcard-ext/webtopchromium/chromium-browser-inspector_12.0.742.112-r90304-0ubuntu0.10.10.1_all.deb
/sdcard-ext/webtopchromium/chromium-codecs-ffmpeg_10.0.648.205-r81283-0ubuntu0.10.10.1_armel.deb
/sdcard-ext/webtopchromium/chromium-browser_10.0.648.205-r81283-0ubuntu0.10.10.1_armel.deb
/sdcard-ext/webtopchromium/chromium-browser_10.0.648.205-r81283-0ubuntu0.10.10.1_armel.deb.1
/sdcard-ext/webtopchromium/chromium-browser_10.0.648.205-r81283-0ubuntu0.10.10.1_armel.deb.2
Open terminal:
su
/usr/bin/sudo -H -u root bash
cd /sdcard-ext/webtopchromium
dpkg -i --force-all --root=/osh chrom*
exit
/usr/bin/sudo -H -u adas bash
export DISPLAY:0
chromium-browser
So yea I've been working on a proper "app2sd" solution that doesn't involve just switching the MicroSD for the eMMC, but I like the stock rom so far, so I didn't feel like flashing a rom just to get init.d, and I didn't feel like modifying the ramdisk in the kernel either. So I cooked up this script that anyone can run from terminal to get init.d support. It should work for other devices too, as long as they run /system/etc/install-recovery.sh on boot.
There's only three requirements for it to work:
#1 You must be rooted
#2 Your device must run /system/etc/install-recovery.sh
#3 You must have busybox
I tested a few times on my own device (GT-N8013), but haven't had anyone else test it, so don't freak out if it doesn't work. Just let me know what went wrong and I'll figure something out.
Running it is very simple:
#1 Open any terminal app
#2 su
#3 navigate to the folder where you have the script
#4 sh ./enableinit.sh
Your device will be rebooted once the process is done, don't freak out. If everything went fine, you'll have a file in /sdcard called init.d.log created by the test init.d script that is made by the enabler.
You can either download the attachment (rename it to enableinit.sh if you get the attachment), or create the file with the contents betlow:
Code:
#!/system/bin/sh
# Adds init.d support to any device that automatically runs /system/etc/install-recovery.sh
# on startup.
#
# Made by TweakerL, make sure to visit us at and-host.com or chat with us on freenode #and-host
echo '##################################################'
echo '## ##'
echo '## Script by TweakerL ##'
echo '## Visit us at and-host.com ##'
echo '## Chat with us at freenode #and-host ##'
echo '## ##'
echo '##################################################'
echo ''
echo 'This script will enable init.d if your device'
echo 'executes /system/etc/install-recovery.sh'
echo ''
echo 'Your tablet will be rebooted once the process'
echo 'is done.'
echo ''
echo 'If the script successfully enabled init.d you will'
echo 'have a file in /sdcard called init.d.log after'
echo 'the device is done rebooting. Remember to always'
echo 'set the proper permissions in your scripts or they'
echo 'will not work.'
echo ''
read -p "Press ENTER to continue..."
if [ ! -f /system/xbin/busybox -a ! -f /system/bin/busybox ]
then
echo 'You do not have busybox. Exiting now...'
else
# Mount system as rw in order to execute the script
busybox mount -o remount,rw -t ext4 /dev/block/mmcblk0p9 /system
# Check if install-recovery.sh already exists, and if so
# add the necessary lines, otherwise create it
if [ -f /system/etc/install-recovery.sh ]
then
if cat /system/etc/install-recovery.sh | busybox egrep -i "sysinit"
then
echo sysinit already present in install-recovery.sh, skipping this step.
else
busybox cp -f /system/etc/install-recovery.sh /sdcard/qsxdrgbhuk.sh
echo '' >> /sdcard/qsxdrgbhuk.sh
echo '/system/bin/sysinit' >> /sdcard/qsxdrgbhuk.sh
busybox cp -f /sdcard/qsxdrgbhuk.sh /system/etc/install-recovery.sh
fi
else
echo '#!/system/bin/sh' >> /sdcard/qsxdrgbhuk.sh
echo '' >> /sdcard/qsxdrgbhuk.sh
echo '/system/bin/sysinit' >> /sdcard/qsxdrgbhuk.sh
busybox cp -f /sdcard/qsxdrgbhuk.sh /system/etc/install-recovery.sh
busybox chmod 755 /system/etc/install-recovery.sh
fi
# Check if sysinit already exists and if so skip step
# otherwise create it
if [ ! -f /system/bin/sysinit ]
then
echo '#!/system/bin/sh' >> /sdcard/kuhbgrdxsq
echo 'export PATH=/sbin:/system/sbin:/system/bin:/system/xbin' >> /sdcard/kuhbgrdxsq
echo '' >> /sdcard/kuhbgrdxsq
echo '/system/bin/logwrapper busybox run-parts /system/etc/init.d' >> /sdcard/kuhbgrdxsq
busybox cp -f /sdcard/kuhbgrdxsq /system/bin/sysinit
busybox chmod 755 /system/bin/sysinit
else
echo sysinit already exists in /system/bin. init.d should already be enabled.
fi
# Cleanup
busybox rm -f /sdcard/qsxdrgbhuk.sh
busybox rm -f /sdcard/kuhbgrdxsq
#Check that init.d folder exists and if not create it
# as well as set the right permissions
if [ -d '/system/etc/init.d' ]
then
chmod 755 /system/etc/init.d
else
mkdir /system/etc/init.d
chmod 755 /system/etc/init.d
fi
# Create a test init.d script that echoes a file to
# /sdcard on successful execution
echo '#!/system/bin/sh' > /sdcard/99testinit
echo '' >> /sdcard/99testinit
echo 'echo init.d works > /sdcard/init.d.log' >> /sdcard/99testinit
busybox cp -f /sdcard/99testinit /system/etc/init.d
chmod 755 /system/etc/init.d/99testinit
busybox rm -f /sdcard/99testinit
# Sync and remount system
sync
busybox mount -o remount,ro -t ext4 /dev/block/mmcblk0p9 /system
# Reboot system to enable init.d
if [ -f /system/bin/reboot ]
then
echo Your device will reboot in 3 seconds
sleep 3
reboot
else
echo "Your device doesn't appear to have a reboot command,"
echo "please reboot your device now to avoid problems."
fi
fi
reserved
TweakerL said:
reserved
Click to expand...
Click to collapse
it is good!
TweakerL said:
reserved
Click to expand...
Click to collapse
Thanks for sharing.
Im tested my ainol elf offical rom novo0706, and worked. Thank
Sent from my Ainol Novo 7 Elf using Tapatalk 2
Pretty awesome. Will edit once i try this out.
Edit: Everything worked. Tested on GT-N8013
Thanks alot.
Sent from my GT-N8013 using Tapatalk 2
Hi, Can you tell more clearly how to make this work.
Sent from my GT-N8000 using xda app-developers app
Can any one make .zip file to flash thru recovery..thanks
The point was not to have to go into recovery...
Anyway, it's really simple...
Download the attached file
open terminal
then do the following commands
Code:
su
cd /sdcard
sh ./Download/enableinit.sh.txt
assuming that your browser saves files to /sdcard/Download
Sorry, I am a computer idiot . I really donot how to do after I had downloaded the text file. Appreciated if you can explain more detail.
Sent from my GT-N8000 using xda app-developers app
So now with init.d support ready, is it going to be possible to run proper a2sd scripts? And which one specifically would you recommend? Excuse me if i'm asking the wrong questions.
andylam16 said:
Sorry, I am a computer idiot . I really donot how to do after I had downloaded the text file. Appreciated if you can explain more detail.
Sent from my GT-N8000 using xda app-developers app
Click to expand...
Click to collapse
It has nothing to do with knowing anything about computers, as you don't need a computer to do this... just your device...
Download the file, on your device, if you're using stock browser it will go to /sdcard/Download
Make sure you have busybox, download a busybox installer from the market, install it, and run it, and tell it to install busybox
Download a terminal app from the play store for free, such as android terminal emulator, install it and open it
then type in these exact commands, just like they're in here, in the terminal:
Code:
su
sh /sdcard/Download/enableinit.sh
Assuming of course, that your stuff is getting download to /sdcard/Download.
If you can't do this... sell your android device and buy an iCrap one...
drnish83 said:
So now with init.d support ready, is it going to be possible to run proper a2sd scripts? And which one specifically would you recommend? Excuse me if i'm asking the wrong questions.
Click to expand...
Click to collapse
I'm working on my own app2sd script that should beat anything ever made. Here's what it does:
It uses a second partition in the MicroSD card for gaining extra storage, this partition has to be formatted to ext4
#1 It mounts the external ext4 partition to a new location
#2 It detects the location for /sdcard/Android; /data/data; /data/app no matter what device you have (suppose the directories aren't the same for a certain device)
#3 It has the option to mount /sdcard/Android to a folder in the external partition
#4 It has the option to mount /data/data to a folder in the external partition
#5 It has the option to mount /data/app to a folder in the external partition
#6 It has the option to automatically copy everything from any of those folders to the appropriate folder in the external partition
#7 It has the option to automatically wipe from the internal storage anything that it moves
#8 If you have all options enabled, apps will be automatically installed to the external partition and never take any space in the internal storage, while everything else (Download/recovery/backup/pictures/videos/etc...) all remain in the internal partition.
Wow... cant wait for this script
Sent from my GT-N8013 using Tapatalk 2
Thanks for explaining. Interesting indeed! Will definitely wait for it eagerly!
Here's a preview of the super app2sd script I'm working on. Much of it is already implemented, should have it all in a couple of days
confusing
I have tried your script and it has successful at first.. then i flashing my note again with stock rom and i try using ur script again but now there is nothing chance.. do you know why?? what must i do now??
You know, this is the damnedest thing, but your instructions call for Busybox installation, and I can't install Busybox on my N8013. And tips you can share?
NessLookAlike said:
You know, this is the damnedest thing, but your instructions call for Busybox installation, and I can't install Busybox on my N8013. And tips you can share?
Click to expand...
Click to collapse
Busy box installs on mine.
Sent from my GT-N8013 using Tapatalk 2
NessLookAlike said:
You know, this is the damnedest thing, but your instructions call for Busybox installation, and I can't install Busybox on my N8013. And tips you can share?
Click to expand...
Click to collapse
Only reason you wouldn't be able to install busybox is if you're not rooted.
Mr tweaker, i have done the process of init.d but there is nothing changed.. where is my false?
Sent from my GT-N8000 using XDA Premium HD app
Welly_11 said:
Mr tweaker, i have done the process of init.d but there is nothing changed.. where is my false?
Sent from my GT-N8000 using XDA Premium HD app
Click to expand...
Click to collapse
Look for these files and let me know if they're there:
/system/etc/install-recovery.sh
/system/bin/sysinit
/system/etc/init.d/99testinit
**************************************
If anybody needs help, look for me on irc - #and-host in freenode
How to install chrooted Debian 7.8 on a Chromecast (Debcast?)
English are not my native language but I will try answer any questions
Step 1 – 5 was made on a Debian 7.8 computer (raspbian)
Step 6 – 12 was made in Chromecast shell
1. Install debootstrap
Code:
su
apt-get install debootstrap
2. Download mini-installation for armhf with debootstrap, this will take a while.
Code:
debootstrap --arch=armhf --variant=minbase --foreign wheezy debian http://http.debian.net/debian
3. Tar the downloaded
Code:
tar -cvf debian.tar debian/
4. Send debian.tar to CC,data dir is writable
Code:
cat debian.tar | ssh [email protected][chromecast-ip] 'cat > /data/debian.tar'
5. ssh to chromecast
Code:
ssh [email protected](chromecast-ip)
6. Untar
Code:
cd /data
tar -xvf debian.tar
7. Create a start file for Chroot
Code:
vi /data/chroot.sh
#!/bin/sh
# Fix all PATH for Debian
export ROOT=/data/debian
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH
export HOME=/root
# remount /data. Got an error first time I loged into chroot. remount is a fix for this
# not sure if we need to do this every reboot
echo "Remounting /data"
mount -o remount,defaults /data
# Mount dev for Debian if needed
mountpoint $ROOT/dev –q
if [ ! $? -eq 0 ] ; then
echo "Mounting dev"
mount -o bind /dev $ROOT/dev
fi
# Mount pts for Debian if needed
# It's a fix for direct ssh login to chroot
mountpoint $ROOT/dev/pts –q
if [ ! $? -eq 0 ]; then
echo "Mounting ptst"
chroot $ROOT /bin/mount -t devpts -o OPTIONS devpts /dev/pts
fi
# Mount proc for Debian if needed
mountpoint $ROOT/proc –q
if [ ! $? -eq 0 ]; then
echo "Mounting proc"
mount -o bind /proc $ROOT/proc
fi
# Mount proc for Debian if needed
mountpoint $ROOT/sys –q
if [ ! $? -eq 0 ]; then
echo "Mounting sys"
mount -o bind /sys $ROOT/sys
fi
# start chroot
chroot $ROOT /bin/bash -l
8. run chroot.sh and continue with the installation, this will take a while
Code:
chmod +x chroot.sh
./chroot.sh
debootstrap/debootstrap --second-stage
9. We now got a working minimal chroot jail, almost no programs are installed, before we can install anything we need to update sources.list and add some repositories. Use http://debgen.simplylinux.ch/ to create a sources.list. I use debian mirrors for Sweden.
Code:
echo ”deb http://ftp.se.debian.org/debian stable main” > /etc/apt/sources.list
echo ”deb http://security.debian.org/ wheezy/updates main” >> /etc/apt/sources.list
apt-get update
10. Install vim and ssh
Code:
apt-get install vim ssh
11. change port from 22 to 2222 and restart ssh
Code:
vi /etc/ssh/sshd_config
/etc/init.d/ssh restart
12. Set a password
Code:
passwd
OPTIONAL
1. Install desctop and vnc server, this will take a while and our installation will rise with 400-450M (mine using about 800M total), we only got 1.1G total to play with so be carefull which program you install. A fix to this would be to create a Yaffs2 image for loop mount and then store it on a USB drive.
Code:
apt-get install xfce4 tightvncserver
2. Create a loginpassword to vnc, and choose if you need a guest login
Code:
tightvncserver
3. Start vnc server, 800x600 res.
Code:
vncserver :0 -geometry 800x600 -depth 24
4. Log into chromecast, I used a standalone RealVNC in windows and [chromecast-ip]:0 to login
5. More info at http://elinux.org/RPi_VNC_Server
INFO
- To exit root jail, just type exit
- If you started sshd in root jail you can connect to it with ssh on port 2222.
- No need to start chroot to load a program in chroot, you can start it from outside
Code:
chroot with chroot /data/debian /etc/init.d/ssh start
- you can also kill program from outside, run ps to find out ID and use kill [id]
- Chromecast does support loop mount, but not very many filesystems
o To mount a supported filesystem use
Code:
mount myImage.img /mnt/myImage –o loop=/dev/block/loop0
o does not support ext, ext2, ext3 or ext4
o Does support yaffs2, vfat…
o supported filetypes can be found in cat /proc/filesystems
o yaffs2utils can be compiled in debian (on CC), this program can make same filesystem type as /data, and this file can be loop mounted
o Install git, gcc and make. Then git clone https://github.com/justsoso8/yaffs2utils
Errors:
- stdin is not a tty. Run inside chroot jail:
Code:
/bin/mount -t devpts -o OPTIONS devpts /dev/pts
or outside chroot run
Code:
chroot /data/debian /bin/mount -t devpts -o OPTIONS devpts /dev/pts
. Then try to connect to port 2222 again.
- do this: mount -t proc proc /proc.
Run (outside chroot)
Code:
mount -t proc /proc /data/debian/proc
- Chroot and vi can be found in busybox (busybox chroot, busybox vi) you can create a symlink to it.
Code:
mkdir /data/bin & cd /data/bin
ln /bin/busybox –s vi
ln /bin/busybox –s chroot
export PATH=/data/bin:$PATH
o If you need Busybox it can be downloaded from: http://www.busybox.net/downloads/binaries/latest/busybox-armv7l
TODO:
- Autostart chroot on boot
- Does anyone know how to view shell via HDMI?
- Can keyboards and mouse be connected via a USB hub so we can use CC as a minimal computer?
LINKS:
http://www.hjackson.org/blog/archives/2008/10/18/ssh-stdin-is-not-a-tty
https://wiki.debian.org/ChrootOnAndroid
http://www.cyberciti.biz/faq/how-do-i-compress-a-whole-linux-or-unix-directory/
http://elinux.org/RPi_VNC_Server
http://debgen.simplylinux.ch/
https://bitbucket.org/inkubux/cubox-i/wiki/Plex Wheezy
https://help.ubuntu.com/community/BasicChroot
https://github.com/justsoso8/yaffs2utils
http://www.busybox.net/downloads/binaries/latest/busybox-armv7l
Screenshot:
g
Click for large
How are you using a mouse and keyboard, powered otg
Sent from my iPad using Tapatalk
it's a minimum installation of Debian, but I guess you can install xfce and use X-forwarding with sshd. They got it working on a transcend wifi sd-card so it can be made, not sure how fast it will run.
http://dmitry.gr/index.php?r=05.Projects&proj=15. Transcend WiFiSD
Cool
Ok, I tried X-forwarding, it's not a GUI, it's more like you run a program from a host, and "stream" it to some other computer using a client program and ssh.
Also installed xcfe-desctop and tightvncserver. No problem connecting to chromecast and run programs in vnc.
Is it possible to post a little 'how to' and some screenshots?
sure, give me a few days =)
Pietplezier said:
Is it possible to post a little 'how to' and some screenshots?
Click to expand...
Click to collapse
First post is updated with new information
Mape0661 said:
sure, give me a few days =)
Click to expand...
Click to collapse
Screenshots looks wicked!
Pietplezier said:
Screenshots looks wicked!
Click to expand...
Click to collapse
Thanks! It worked better then I thought it would, it's working like a small computer.
I have tryed to view shell over HDMI, would be fun, but I haven't got it to work yet, only crashed the chromecast.
This is the new fork of cyanogenmod 13/Snapdragon Camera.
I pulled it from the Nexus 7 2013 build an made a flashable zip for the Nexus 6.
It has to run as a system app and is still under heavy development but it is pretty fast while starting and focusing.
So give it a try.
No magic, just a simple script, all credits go to the original developers from CM!
Code:
#!/sbin/sh
ZIP=$3
ui_print "mounting system ..."
mount /system
mount -o rw,remount /system
mount -o rw,remount /system /system
cd /tmp
unzip -o "$ZIP"
rm -rf /system/app/Snap/
mkdir /system/app/Snap/
cp Snap.apk /system/app/Snap/Snap.apk
chown 0.0 /system/app/Snap/ /system/app/Snap/Snap.apk
chmod 755 /system/app/Snap/
chmod 644 /system/app/Snap/Snap.apk
chcon u:object_r:system_file:s0 /system/app/Snap/Snap.apk
ui_print "... done"
umount /system
sync
exit 0
Do I need CyanogenMod to run this?
@OP: Did you try this before posting? It doesnt work on my Aosp rom. I tried out Snap on Neobuddy's unofficial CM build a few days back. Many iterations of Snap(as a .zip or .apk) for AOSP roms have surfaced and so far none of them work as intended. Not surprised that this did not either. If you're gonna post a flashable .zip at least make sure it works, not worried that anything will happen to my phone. if nothing else, it's annoying trying a harmless removal of a system app without leaving residual clutter. Cheers!
has this worked for anybody on aosp?
thanks, i like this cam
5k
where can i write the script tersebeut ..
please explain, and more details to avoid errors and impact on the bootloop,
sorry i'm a beginner
thx mastah