Debian Working on Hero - G1 Android Development

So i dont know about others since there are a billion posts and a billion builds.. but i was able to get Debian working on hero today with a few changes to the code and manually typing in the start scrip myself .. i tried to make a stat script but it always fails at mounting. i tried numerous ways of mounting in the script which all fail.. any ideas?

I was having similar issues when I tried this but was able to get it by specifying the fs type of the debian image e.g.
Code:
#mount -t ext2 -o loop debian.img /data/local/mnt
This is assuming of course you are in the directory containing debian.img and you have already created the mnt dir in /data/local. I just tested this from twisted hero 5 but had success on one of the earlier JAC builds and superhero b1. No other modifications were necessary for this and I was able to mount the others listed in the mountonly script included in the 2.1 installer package similarly. I have stopped using the dootdeb script entirely and now just mount and chroot manually when needed.
Hope that helps.

daemontux said:
I was having similar issues when I tried this but was able to get it by specifying the fs type of the debian image e.g.
Code:
#mount -t ext2 -o loop debian.img /data/local/mnt
This is assuming of course you are in the directory containing debian.img and you have already created the mnt dir in /data/local. I just tested this from twisted hero 5 but had success on one of the earlier JAC builds and superhero b1. No other modifications were necessary for this and I was able to mount the others listed in the mountonly script included in the 2.1 installer package similarly. I have stopped using the dootdeb script entirely and now just mount and chroot manually when needed.
Hope that helps.
Click to expand...
Click to collapse
question since debian can run flash player has anyone installed it on there just for kicks

i tried it when i was on 1.2 before cupcake. i got as far as getting debian to work and then use lxde for gui. I got ice weasle installed then install flash which somehow broke my iceweasle browser. I would imagine it would be slower than flash on hero rom though.

superg05 said:
question since debian can run flash player has anyone installed it on there just for kicks
Click to expand...
Click to collapse
While flash is supported on many desktop linux distributions, I have not found an ARM EABI version of it. I was looking when I first put debian on the phone but without finding the correct package and considering iceweasel was painfully slow in the chroot/vnc environment even without the plugin I did not try for long. I was running a class 2 card at the time maybe it is a little better on my class 6 but I think ill wait for adobe to release an android version anyway
@maydaysos was it an armel package you installed? If so where did you find it? I only remember seeing libflash gnash and possibly swfdec in the armel deb repositories

Related

Testers needed - latest busybox compiled for Android

PLEASE NOTE: THIS THREAD IS NOW OBSOLETE, BUSYBOX COMES WITH JUST ABOUT EVERY COOKED ROM
Hi all,
This is my first attempt at compiling anything for the android platform. My reason for doing this is whilst the busybox version does what we need it to do when rooting our HTC Dream's / G1's, as an everyday app it fails because it segfaults all the time.
This isn't a dig at Benno because to be honest, he's a bit of a hero for compiling it the first time round, without him it would have been a lot harder (if not impossible) to root our G1's.
Problem is, his version of busybox was compiled over a year ago (14 nov 2007 if his blog is anything to go by) and segfaults quite a lot (probably because it wasn't compiled for the G1, but more for the Android emulator), particularly if you try and do "ls -al"..
So what I've done is I've compiled the latest stable version of busybox (1.13.1 as of 14 December 2008) for the G1, I've tested this on my own G1 and it seems to work fine, but I could do with some help extensively testing it.
You can grab it here (for G1: long press -> save, for other browsers: right click -> save as / save target)
Installation Instructions:
Download the above file to your G1, it should be saved as /sdcard/download/busybox2.asc
(if you downloaded it with the G1 browser that is, otherwise please copy it to your G1's SD card to that exact path / name)
Remount your /system partition with this command:
Code:
mount -o remount,rw /dev/block/mtdblock3 /system
Copy the busybox binary into the /system/bin/ folder by running this command:
Code:
dd if=/sdcard/download/busybox2.asc of=/system/bin/busybox
Set the busybox binary as executable with suid bit by running this:
Code:
chmod 4755 /system/bin/busybox
Remount your /system/bin partition as read only again (unless you want to create more shortcuts) by doing the following:
Code:
mount -o remount,ro /dev/block/mtdblock3 /system
And thats it! Please test it as thoroughly as you can and let me know in this post if you have any problems
Ps. I take no responsibility for any damage that occurs directly or indirectly from using this program. Although I will try and make amends if something doesn't work as expected, you must acknowledge that you are solely responsible for your actions when modifying the filesystem of your G1.
Please note, this version is compiled as follows:
* It is compiled against regular libC so is 1.8MB big
* It is compiled with the soft links options
I'm investigating compiling it against uClibC to get the size down dramatically, and compiling it with a seperate set of options so it auto-identifies when to use itself when you're shell is busybox sh.
Appears to have installed alright! Haven't had a chance to test it out otherwise, but I'll let you know if my phone explodes.
Excellent going through it now!!!
Thank you!
anybody else get
Code:
/system/bin/busybox: write error: no space left on device, 1045+0 records in , 1044+0 records out, then the speed stats
Im just gonna chmod it anyway, I wonder which file it forgot?
man all my G1 hack went smooth till I tried the market cache move, i got 1 file and 100 force closes, tried moving them back to no avail..HARD RESET, now I messed up this one somehow, Its par for my course these days, f'it...
bhang
edit:
I reran the "dd" command after I freed up almost a meg and it output same write error: no space left on device 1+0 records in 0+0 out, looks like it copied the last file I missed in the first run? do I need to chmod everything again since I dunno which 1 of the files it may have been..
on second thought 'dd' looks like it may have realized it only needed the 1 file but still needed more room cause 0+0 out, I dunno im confused any advice?
good work
installed successfully. so far no problems. does this new version contain commands not found in the previous versions, ie/ the version JesusFreke used in modified rc30 v1.2 (Sauriks' version from here: http://www.telesphoreo.org/pipermail/g1-hackers/2008-November/000032.html)?
edit: just realized that the previous ver i had installed was 1.12.2 (2008-11-16)
I think JesusFreke was compiling the bionic version last night. Might wanna check on that before you spend your time doing if it you have not already.
Darkrift said:
I think JesusFreke was compiling the bionic version last night. Might wanna check on that before you spend your time doing if it you have not already.
Click to expand...
Click to collapse
uninstall is just as easy as installing
-beers!
Bhang, have you installed anything else on your /system partition bar the stock files?
I'm working on a solution at the moment that moves all this to the /data partition to provide some more usability. For now I suggest you delete busybox from /system/bin/ so you don't fill up your /system partition.
syntax?
I could not quite get this to work as stated. I am no command line expert, so I guessed at what might work. I did the following:
Instead of this:
mount -o remount, rw /dev/block/mtdblock3 /system
I did this:
mount -o remount, -rw /dev/block/mtdblock3 /system
At the last I did this:
mount -o remount, -r /dev/block/mtdblock3 /system
Then I rebooted. Everything seems fine. I looked up some busybox commands, but they don't seem to do anything. Any way to know for sure?
my bad, it works!
Excuse a noob, I didn't know you had to type "busybox" in front of the command...
Hi, the link is down, can someone please re-upload? Thank you .
Please note, this is now obsolete as busybox comes with just about every other ROM out there.
foxdie said:
Please note, this is now obsolete as busybox comes with just about every other ROM out there.
Click to expand...
Click to collapse
Unfortunitally there have been people releasing versions without busybox recentl for the mytouch series mainly and we need a good version of Busybox if possible
Hi,
I know that, but I'm having problems getting SUFBS (http://forum.xda-developers.com/showthread.php?t=530271) to work correctly. I read through the thread and someone tried your busybox and it worked. Also, the one I have (using myhero 0.0.7) is using 1.8.1.
You can actually rip the busybox binary out of any of the roms that come with it.
Any instructions? It'd be simpler if foxdie's busybox is re-uploaded though. Thanks!
Wysie said:
Any instructions? It'd be simpler if foxdie's busybox is re-uploaded though. Thanks!
Click to expand...
Click to collapse
try this out, it's what i used http://benno.id.au/blog/2007/11/14/android-busybox
http://www.busybox.net/downloads/snapshots/busybox-snapshot.tar.bz2
can anyone please compile the latest source or explain how to do this with windows and visual studio?
I tried to build busybox latest with android bionic lib and gave up on passwd.
I had problems with bionic umtp, no strchrnul in string.h and no pw_gecos in passwd.
I can not understand how other busybox builds where able to get build. Any experiances?
EDIT: Doh, stupid me. I made 2 big mistakes. I will give it a new try with an other compile.
EDIT2: wich lib was taken to compile busybox? androids c lib bionic was not possible for me.

[HOWTO] Running debian via chroot on OO

This tutorial is based on this one for G1: http://www.saurik.com/id/10
Hi,
I'll show you how to run debian in chroot on our optimus one. It wont affect android in any way, and they can run simultaneously, side by side. You are only running bash from debian, not its kernel or any other low-level part. But you can use debian's programs.
Requirements
* Linux on your pc or in virtual machine
You need debootstrap to make debian image, so you need debian distro (maybe in *buntu it is too, but I am not sure). You dont need GUI, bash is all you need.
* Busybox(-> rooted phone)
Most custom roms comes with busybox, I am not sure how about store ROM.
* Terminal emulator on phone and/or ADB
I suggest you to make sure you have adb, because you dont wanna write it all on small touch keyboard.
Some knowledge about linux systems
If you are following this tutorial only because you want to /flex on your friends and you dont know anything about linux, then you really _should_ stop reading this tutorial.
I also recommend you to have a2sd, so we can put debian image on its partition, when it is on sdcard main partition, it _may_ cause some problems with usb mass storage.
So, lets start.
1. Getting debian image
Boot into debian and get bootstrap tool:
Code:
apt-get install debootstrap
Now, create an empty disk image, I'd say minimum size is about 150mb, but I recommend you use more:
Code:
dd if=/dev/zero of=debian.img seek=*size_in_bytes* bs=1 count=1
You need to create ext filesystem in image with this tool(you can try it with "sudo" if you have problems):
Code:
mke2fs -F debian.img
Image is ready now, now lets mount it so we can install debian into it:
Code:
mkdir debian
mount -o loop debian.img debian
Debootstrap tool will do all the work for us. You can try to use squeeze instead of lenny or download it from your country's mirror. "--variant=minbase" argument will install just base system with apt-get and only few other packages. (This also may need sudo)
Code:
debootstrap --verbose --arch armel --foreign lenny debian http://ftp.cz.debian.org/debian
umount debian
2. Mount the image
Now, we will use ADB shell to mount the image and finish debian installation. Do not forget to write "su" before you start, we need root for this.
You need to decide where to put debian.img. I suggest you to put it on a2sd partition, which is system/sd, so :
Code:
cp /sdcard/debian.img /system/sd
export kit=/system/sd
Our mount point will be /data/local/mnt, so lets make some variable to make it easier:
Code:
export mnt=/data/local/mnt
busybox mkdir -p $mnt
We also need to set these enviroment variables, and we can also make alias for busybox so we dont have to write busybox all the time.
Code:
export PATH=/usr/bin:/usr/sbin:/bin:$PATH
export TERM=linux
export HOME=/root
alias _=busybox
Now we need to create loop device for image:
Code:
_ mknod /dev/loop0 b 7 0
And if nothing went wrong, you should be able to mount image now ("mount: no /etc/mtab" is normal) :
Code:
_ mount -o loop,noatime $kit/debian.img $mnt
3. Finalizing installation of debian
With mounted image, we can proceed to second stage of debian bootstrap:
Code:
_ chroot $mnt /debootstrap/debootstrap --second-stage
If you want install some packages with apt-get, you also need to add repo to sources.list. Of course, if you downloaded squeeze instead of lenny, you need to change "lenny" to "squeeze"
Code:
echo 'deb http://ftp.cz.debian.org/debian lenny main' >$mnt/etc/apt/sources.list
Set correct DNS servers - debian can't take them from Android.
Code:
echo 'nameserver 4.2.2.2' >$mnt/etc/resolv.conf
Done, installation over.
4. Running debian bash
To get to debian bash, use this command. You can try "cat /etc/issue.net" or "uname -a" so you can see its really debian.
Code:
_ chroot $mnt /bin/bash
But its not all yet, you need to mount some things for debian:
Code:
mount -t devpts devpts /dev/pts
mount -t proc proc /proc
mount -t sysfs sysfs /sys
Now link mtab to /proc/mounts. You need to do this only once.
Code:
rm -f /etc/mtab
ln -s /proc/mounts /etc/mtab
And if you want to use ssh server to log in into debian, you also should set root pass:
Code:
passwd root
5. Installing packages
First, you need to update packages list:
Code:
apt-get update
and now you can install whatever you want with "apt-get install"!
6. Finishing
I suggest you to write some .sh script so you can mount it all with one command, for example something like this: http://pastebin.com/VT6272d5
What packages have you tested?
sshd - works great, you can connect to phone via putty or ssh
mc - works, but phone screen is to small
gcc-avr - if you are programming for avr microcontrollers, you can compile it on your phone
netcat - telnet connection
git-core - works great
htop - you can see this on screnshot below
apache2 - works like a charm
xfce4, Xorg server and tightvncserver - working but slow, see screenshots
gnash - working but slow, see screenshots. This is the only option how to run flash content on optimus one xD
Iceweasel - if you are using vnc server, you can browse web pages
gcc, g++, autoreconf, cmake and whatever else is needed to build mangos - working
mysql-server - you have to set "user = root" in /etc/mysql/my.conf, but works
MaNGOS - http://getmangos.com/ takes long to build, but works! See this post and also this one.
..and maybe some more which I dont remember.
Hope this tutorial helped you
I'll try bootstrapping debian when I figure out what the hell is wrong with my system. I can't download files from ftp (but I can with wget and other progs. just not with pacman, debootstrap, and the like).
debian on optimus v
searched around to avoid multiple posts, and found this.
I've been running chroot debian on my V as well, squeeze then sid now going back to squeeze.
the main problem I've encountered was in the "debootstrap --second-stage", which generally froze at "I: configuring sysvinit". I thought that was from overloading the CPU, but turns out android init doesn't create /dev/initctl like debian does, so debootstrap hangs waiting for a response reading/writing /dev/initctl
I didn't have that issue using SL4A's shell instead of android terminal.
being a bit of a 'noid, I have used "mknod /dev/initctl p" in the chroot before running "debootstrap --second-stage" since reading of that solution. not sure if it's making much difference, because that didn't fix the issue before I found SL4A and was still using android terminal for shell functions.
I like xfce4 as a window manager in the VNC, it's small but still functional.
I did a bit of things different than saurik, but used his guide extensively, along with much googling for other deb->droid ports.
my chroot runs in the android root directory with bind-mounts since the custom kernel I like doesn't include unionfs. I also directly use an ext4 2nd partition on the SD rather than a loop-mounted filesystem image. (yes, ext4 journals will eventually frag my SD but the cost of another is worth the crash-resistance to me.)
my short-term goal is to mix inits between the two os's and run X through an android app frontend to avoid the framebuffer copy lag from the VNC. my 3 main reasons for debian on the phone are program development (works currently,) flash (actually gnash, and needs a working full-speed access to framebuffer, not working yet,) and emulators for J2ME and MAME (same boat as flash.)
so far trying to run X directly blanks my screen and forces a battery pull to get it back, so kinda giving up that route for the moment.
so installing Archlinux on O1 must be possible? how?
pymebrahimi said:
so installing Archlinux on O1 must be possible? how?
Click to expand...
Click to collapse
All must work, as long as they support running on ARM. AFAIK Arch doesn't have an (official) ARM port. You can try Arch Mobile though
This command fails me
Code:
_ mount -o loop,noatime $kit/debian.img $mnt
The error I get is no device or file exists.
Tried creating more number of loop devises too. Still it didn't work. I am using cyanogemmod 2.3.3 ROM.
onehomelist said:
This command fails me
Code:
_ mount -o loop,noatime $kit/debian.img $mnt
The error I get is no device or file exists.
Tried creating more number of loop devises too. Still it didn't work. I am using cyanogemmod 2.3.3 ROM.
Click to expand...
Click to collapse
What is the exact wording of the error?
The exact error that I get:
Code:
# busybox mknod /dev/loop0 b 7 0
# busybox mount -o loop,noatime $kit/debian.img $mnt
mount: can't setup loop device: No such file or directory
Instead of using $kit/debian.img, try manually pointing to the debian image.
For example, if you have it on the sdcard's debian folder:
Code:
/sdcard/debian/debian.img
That too didn't work.
make sure that debian image is where it should be. Also try to "ls /dev/" and look for loop0 - i had some problems with loop devices on mik's 2.3, but I did not really solved it, because I went back to froyo after while.
The loop0 device exists is /dev. As you have experienced same issue on the same ROM, I am convinced that its a ROM issue.
I just tried to install xorg, xfce4 & tightvncserver - everything work just fine, although its kinda slow
ext partition instead of loop filesystem
Tasssadar said:
I just tried to install xorg, xfce4 & tightvncserver - everything work just fine, although its kinda slow
Click to expand...
Click to collapse
I think it runs faster from a sdcard partition than a loop filesystem, if I remember right. I tested a loop-mounted preconstructed debian img from some tutorial for another device before debootstrapping my own.
partition your card with a second partition, ext2 if you're worried about journalling wearing out your sd, or ext4 if you're more worried about corrupting your precious debian filesystem in a crash or unclean umount. gparted in ubuntu seemed to work well for me.
resize your ntfs partition instead of deleting it or android may complain.
with your debian img mounted as a loop filesystem on a linux box at the same time as your new partition, you can copy everything from the img to the ext partition by:
Code:
cp -av /path/to/loopmountedimg/* /path/to/extpartition
if you replace the loop-mounting code in your boot script with a vold mount of your ext partition, android is supposed to umount the partition cleanly on powerdown or reboot.
on my optimus v, the mount looks like the following in my boot script (I'm posting the comments too for info)
# mount 2nd sdcard partition from vold, should prevent dirty unmount at reboot
# if your linux is on a different partition than 2, substitute that number for the 2 in .../vold/179:2 below
# first unmount it; if not already mounted, system will echo 'umount: can't forcibly umount /dev/block/vold/179:2: Invalid argument' but this isn't an error to worry about
Code:
umount -l /dev/block/vold/179:2
mount -o noatime,exec,suid /dev/block/vold/179:2 /$mnt
maybe someone here can use this info.
also, for anyone who wants to save some hours and bandwidth, I have a basic squeeze debootstrap uploaded to 4shared.
it shouldn't be missing any of the readme's or licensing docs, so it should be GPL ok AFAIK.
resolv.conf and sources.list are already configured for 3g access and the main Debian repository, so it's pretty much plug-n-play.
no extra packages. you'll need to apt-get tightvncserver and a window manager unless you just want the bash shell.
the first time you chroot in, you should use passwd to set a root password, and adduser to get a non-root account on there.
the only glitch is that I accidentally tar'd it into a compressed folder; so you can't just untar it into the ext partition, it needs unpacked with an archive manager. sorry!
here is the filesystem image
uncompressed, 9645 items, totalling 264.3 MB
compressed, 116.3 MB (121929580 Bytes)
Tried to put it on ext2 partition without image, its a bit faster but still very slow.
But i took some screenshots this time. You can see flash (well, gnash) player on optimus one working on last screenshot
And I have one question: is debian using its own libc or android's bionic?
Tasssadar said:
Tried to put it on ext2 partition without image, its a bit faster but still very slow.
Click to expand...
Click to collapse
guess I'm biased, first linux I used was on a 100MHz pentium 1, so this handheld flies by comparison.
But i took some screenshots this time. You can see flash (well, gnash) player on optimus one working on last screenshot
Click to expand...
Click to collapse
I could only get gnash to play ads. boo. froze up iceweasel every time I tried to open a flash video. what browser are you using? oh, man, it's iceweasel, isn't it?? also, chromium just refused to start on my optimus.
And I have one question: is debian using its own libc or android's bionic?
Click to expand...
Click to collapse
pretty sure it's standard debian libc. you could integrate the android toolchain if you were so motivated, probably.
bigsupersquid said:
I could only get gnash to play ads. boo. froze up iceweasel every time I tried to open a flash video. what browser are you using? oh, man, it's iceweasel, isn't it?? also, chromium just refused to start on my optimus.
Click to expand...
Click to collapse
Chromium does not work for me, too.
Well, it froze for me too, but after while it at least got to show what you see on the screenshot
bigsupersquid said:
pretty sure it's standard debian libc. you could integrate the android toolchain if you were so motivated, probably.
Click to expand...
Click to collapse
I was just thinking if this is possible, then normal android aplication could have libc included, if its needed.
Do you know MaNGOS? It is open-source server for World of Warcraft (for more info go to http://getmangos.com/). I just compiled it and I run it on my optimus one. And guess what - without world db, its really fast! I am extracting UDB to database right now, I will post some screenshots and results with full-featured db soon.
And thats why I love linux and android
I got no words to describe my eyes when reading that at the moment.
So, what you might wanna know if you wanna try it too:
All packages needed for mangos to compile are working good, except for mysql server: you need to set "user = root" in my.cnf - it is located in /etc/mysql/ - because you cant put any root rights to any other user than root, so mysql user cant create tcp socket.
You will most likely need swap file - optimus has plenty of RAM, but yet not enough. All you need is to compile kernel with CONFIG_SWAP=y and follow this tutorial: http://www.cyberciti.biz/faq/linux-add-a-swap-file-howto/. 512mb swap is enough. Just for the record, swap is working on optimus one, I think nobody tried it here yet.
Now as for the compilation of mangos, it is mostly working as it is, only problems are intel tbb library and g3dlite library.
TBB is not available for arm yet, so you need to compile without it. Use -DUSE_STD_MALLOC=0 in cmake line.
As for the g3dlite, things are little bit more tricky - you need it, and there are some asm() instructions in it, which are different for arm. I only commented them, because I dont know assembler: https://github.com/Tasssadar/mangos-arm/commit/67c442fa0c10e82b282b83a8fe485588f8786e12
I have no idea how it can even work without all that code in g3dlite, but it just does.
You can use scriptdev2 from its git, theres no problem in it.
Thats all, after that just "make" and get something good to read, because it will take really long. At least 5 hours for compilation and nearly hour and a half for linking of scriptdev2 and mangosd binary.
Creating of databases is just like on normal pc, so I just skip it...same goes for dbc files, maps and vmaps.
Loading of mangos takes around 4 minutes with full-featured db. mangos then takes around 180mb of ram and cpu usage is...surprisingly low, considering the fact that our cpu does not have hw float operations. I tried to clear Azjol Nerub instance (well, solo with gm character) and maximal cpu usage was 60%, when fighting a boss with lots of spawns. I could imagine some 5-man dungeon run would be just fine
Also, you will get slight lag when moving into new location, when phone loads map files from sdcard.
Thats all, see screenshots

Working aircrack-ng with monitor mode and packet injection !

Hi,
so after few days of playing with drivers patches kernel sources i finally got aircrack-ng working on g1 ! ( If you dont know whats aircrack-ng http://www.aircrack-ng.org/) I tested airodump for 1h, had it dumping packets to the sdcard to a cap file with channel switching and aireplay with deauth attack. I monitored this from my laptop to see if the packets are being sent ok and the client was disconnected from the network as expected.
I used patches for the n900 form the "download here" link at the bottom of this page http://david.gnedt.eu/blog/wl1251/. I also followed this tutorial http://bobcopeland.com/android_wifi.html and used his excellent kernel patch to get the msm_wifi.ko module. I then used the kernel and the zip file herehttp://forum.xda-developers.com/showpost.php?p=14768272&postcount=2427
You will want to make a backup of your system before you do anything. With that kernel you won't be able to use wifi in the Android UI.
Requirements to use attached files:
2.2 Rom
Debian installed in chroot on g1 with aircrack-ng installed ( you can use this img http://www.mediafire.com/?0ab95ia8xbale0i , just extract in on /sdcard/ so debian.img path is /sdcard/debian/debian.img )
How to make it work ?
steps 1-5 are one time only
First boot your android ROM and type
adb shell
$ su
# mount -o remount,rw /
# cd /system/etc/firmware
# ln -s ../wifi/Fw1251r1c.bin wl1251-fw.bin
# cat /proc/calibration > wl1251-nvs.bin
# mount -o remount,ro /
Click to expand...
Click to collapse
Extract attached files ( g1_wl1251.zip ) to sdcard
Apply ez_1.5.1_wl1251.signed.zip from recovery ( it got 2708 and ebi0 kernel for now will add ebi1 later)
Boot the phone
adb shell
su
cd /sdcard/wl1251_modules
sh ../insmod.sh
Click to expand...
Click to collapse
Now chroot into you debian installation ( if you used mine debian.tar.bz2 there is script startdeb just write: sh /sdcard/debian/startdeb and you should be chrooted correctly )
screen ( dont know why airodump doesnt give any output without screen on adb shell ?! )
bash
airmon-ng start wlan0
airodump-ng -i mon0
and DONE
How com compile it
First you need to get sources:
kernel sources i used https://github.com/ezterry/kernel-biff-testing tag ezgb-2636-v1.5.1-20110820
prepatched compat-wireless-2010-12-22 ( attached in sources.zip. I did some small build fixes and applied every patch from wl1251-maemo/patches/wireless-testing/ EXCEPT 0003-wl1251-fix-scan-behaviour-while-not-associated.patch as i got build errors with it )
rest of the files in patches.zip
Kernel:
You can just apply all patches in the kernel dir
If you want to make your config by yourself you have to compile as module cfg80211 and mac80211, compile in CONFIG_RFKILL_PM, CONFIG_CRC7 and UNSET CONFIG_TIWLAN1251. Its important as there as some ifdefs for CONFIG_TIWLAN1251 in drivers/mmc/core/core.c which is compiled in and with CONFIG_TIWLAN1251 WL1251 drivers doesnt work !
Compat wireless:
there is make.sh script edit it and change the patchs for your crosscompile toolchain and kernel location
./make.sh
and copy all *.ko modules
I hope everything is clear and more ppl can use it in custom roms If something is unclear plz write about it
too bad i sold my g1!
Thank you for the great tutorial! I think many people are using Gingerbread right now with several different incompatible ROMs. I think it would be useful if you list your ROM version as well as SPL & Radio info. Also if you could PLEASE make an image of your G1 with the debian install, it would help a lot. If you don't want your personal data in the image then I can remove it for you and will host the image. At the very least people need to know how exactly you installed debian before attempting this.
Please PM me if you can supply the image, thanks again!
Debian location can by anywhere, nothing depends on it and i got it on sdcard so g1 dump wont do anything. But i can send u ready debian.img to mount it with wireless tools installed just want to add new kismet and as i cant find ready deb for debian i would need to compile it probably. As for the radio u can use that new 2708 radio and old one for kernel i provided. I used cm6 for it but i think you can use any 2.2 rom as its froyo kernel. I need to clean up everything and redo it to write good tutorial how to compile it for any kernel and how to patch drivers.
zewelor said:
Debian location can by anywhere, nothing depends on it and i got it on sdcard so g1 dump wont do anything. But i can send u ready debian.img to mount it with wireless tools installed just want to add new kismet and as i cant find ready deb for debian i would need to compile it probably. As for the radio u can use that new 2708 radio and old one for kernel i provided. I used cm6 for it but i think you can use any 2.2 rom as its froyo kernel. I need to clean up everything and redo it to write good tutorial how to compile it for any kernel and how to patch drivers.
Click to expand...
Click to collapse
Thanks for the response. I just upgraded my hboot to a version that CM6 doesn't support, but I can use a different Froyo ROM that is still working.
On Gingerbread I am having a very hard time getting ext2.ko loaded. I already have an EXT(4) partition mounted, but since I am not on Froyo none of the kernel modules can be loaded correctly. I also think that ext2 support is already there but I don't know how to make use of it. There are filesystem modules under /system/lib/modules/2.6.36.4-s3-cos/.
My goal is to create a clockwork image of a Froyo/Debian install (with working injection driver) and use it as needed while keeping a 2.3.4/2.3.5 Android image for testing newer Apps that don't work on 2.2.
For anyone that just needs the Debian image, you can download it from the original G1 Debian tut site here: http://www.saurik.com/id/10
Please PM me if you are willing to upload a copy of your .img container file & I will host it for everyone to use. Thanks!
If u want u can still flash cm6 and after flashing it, flash kernel.zip from attached zip in 1st post ( it got also kernel for newer radio, but i havent tested it as i got older radio). As i saw in ezterry's kernel config ext2 partitions are mounted using ext4 so u dont have to load ext2 ( it works at least in froyo version of ezterry's kernel ). I can send now debian.img without working kismet but i think its better to get also kismet running so ppl wont have to redownload it. My debian.img its normal debian only with aircrack-ng installed nothing special in it. Only magic is kernel config and modules with patches compiled for that kernel thats it nothing more.
zewelor said:
If u want u can still flash cm6 and after flashing it, flash kernel.zip from attached zip in 1st post ( it got also kernel for newer radio, but i havent tested it as i got older radio). As i saw in ezterry's kernel config ext2 partitions are mounted using ext4 so u dont have to load ext2 ( it works at least in froyo version of ezterry's kernel ). I can send now debian.img without working kismet but i think its better to get also kismet running so ppl wont have to redownload it. My debian.img its normal debian only with aircrack-ng installed nothing special in it. Only magic is kernel config and modules with patches compiled for that kernel thats it nothing more.
Click to expand...
Click to collapse
Yes, let's wait until Kismet is working and then you can upload the image. I will try your suggestion and use EXT4. If I still have trouble I will create a flashable ZIP that has Froyo optimized for Debian with your Kernel patch included and a startup app to launch Debian via UI. Thanks again for your great contribution!
But when you mount debian img just write mount -o loop -t ext2 not ext4 it should work
Updated first post with some instructions how to compile drivers and kernel
Constantly getting "mount: can't setup loop device: No such file or directory"
I tried "mknod /dev/loop0 b 7 0" but neither "mount -o loop,noatime /mnt/sdcard/debian.img /data/local/mnt" nor other variations using ext2 work. I did mount / as rw and created the /data/local/mnt directory. I also tried 2 versions of busybox and so far no luck; I guess you are using the version that comes with CM6? Thanks
Yes i used busybox from cyanogenmod
Copy debian.img to /sdcard/debian/debian.img ( or change location in startdeb script )
First do mkdir -p /data/local/debian/mnt
then sh /sdcard/debian/startdeb ( or where u got it )
startdeb script i used:
#!/system/bin/sh
if [ ! -e /dev/block/loop99 ]
then
mknod -m 660 /dev/block/loop99 b 7 99
fi
if [ ! -e /dev/loop1 ]
then
ln /dev/block/loop99 /dev/loop0
fi
mount -o loop -t ext2 /sdcard/debian/debian.img /data/local/debian/mnt
busybox mount -o bind /sdcard /data/local/debian/mnt/sdcard
export PATH=/usr/bin:/usr/sbin:/bin:$PATH
export TERM=linux
export HOME=/root
export USER=root
busybox mount -t proc none /data/local/debian/mnt/proc
busybox mount -t sysfs sysfs /data/local/debian/mnt/sys
busybox mount -t devpts devpts /data/local/debian/mnt/dev/pts
busybox chroot /data/local/debian/mnt/ /bin/bash
Click to expand...
Click to collapse
can u do it for lg optimus black ?
That depends on wifi chipset there, if its wl1251 it should be doable.
nice work, a year ago I did the same work (I think I posted it in the modaco android forum), however there was no injection patch at that time, so only packet capturing worked. The HTC Hero has the same TI wifi chip (wl1251). By the way you don't need an entire linux environment it is sufficient to compile static binaries (aircrack, kismet..). If i remember correctly compiling aircrack was very straight forward, however for kismet I had to make a dirty hack because it complained for a missing environment variable, but int he end Kismet worked fine too, even the gps . Unfortunately I lost my dev environment due to a harddisk failure, otherwise I would share the patches and binaries.
[EDIT]
HA! I found the aircrack binaries on an old backup disc
If you want to copy the files on your sdcard remember to remount it with (mount -o,exec,remount /mnt/scard), because by default the noexec flat is set or you copy the files to internal memory.
Thx for that aircrack I have chosen debian to avoid recompiling everything i will like to use and to have normal command line enviroment. Except aircrack and kismet u can also like to have iw / wireless tools / ping / nmap /tcpdump etc so you will have to search for it or recompiling staticly everything. I just prefer to find .deb file and install it, as using apt-get on g1 takes forever Also htc magic got wl1251 as afaik its the same as g1 (?).
yeah thats true, I decided to compile everything statically because I had very poor performance using debian (apt-get, compiling stuff etc), another advantage is you can start the programs very easily from the homescreen using gscript, sl4a..., in the end its just a question of preference
Sorry for asking in wrong topic, but:
Is there any airdump app that works well on HD2 ? (Broadcom chip: bmc 4329).
Or maybe the right question is : If it is even possible to create such app for hd2/nexus ?
misieq666 said:
Sorry for asking in wrong topic, but:
Is there any airdump app that works well on HD2 ? (Broadcom chip: bmc 4329).
Or maybe the right question is : If it is even possible to create such app for hd2/nexus ?
Click to expand...
Click to collapse
The problem is not the app, the problem is having wireless driver that support packet injection/Promiscuous-mode for the specific wireless chip, which in this case are afaik not available.
And even not a driver but firmware for specific chipset that allow to do that. As i read the main problem in bmc4329 is the firmware as driver can only do what firmware will allow. Well u can rewrite driver to workaround some limitations in firmware etc. Anyway here is a page u can follow http://linuxwireless.org/en/users/Drivers/brcm80211 they even got monitor mode in todo so maybe it can be done
Hi guy, final step, I got this:
airmon-ng start wlan0
Interface Chipset Driver
wlan0 wl1251_sdio - [phy0]SIOCSIFFLAGS: No such file or directory
(monitor mode enabled on mon0)
Click to expand...
Click to collapse
and this:
airodump-ng mon0
ioctl(SIOCSIFFLAGS) failed: No such file or directory
Click to expand...
Click to collapse
how should i fix this? plz.
Thank you.

Using Debian binaries instead of busybox (Yes you can!)

Yes, it is possible to use Debian (or any other ARM based distribution) binaries instead of busybox. These devices have plenty of horsepower, and a fair amount of space on them. There should be enough room to get proper versions of command line apps baked in
NOTE: This is a PROOF OF CONCEPT. Do not attempt unless you are familiar with linux, chroot, and are fine with potentially screwing up your phone!
Frankly, I got tired of the limited feature set and compatibility issues that come with busybox. So, I decided to see if I could come up with something better... all it took was a free app from the market, 4 GB carved out of my SD card, and a little bit of time.
I've played a bit with chroot (mostly using the "Linux Installer" app):
https://market.android.com/details?id=com.galoula.LinuxInstall&hl=en
My SD card has a 4GB SD-EXT partition on it, formatted as EXT4, and then a FAT32 partition. I have my phone set up to never unmount the SD-EXT partition. And, since I'm using ICS, it's not using that partition for anything yet anyways.
In any case, to save a whole lot of trouble and deal with potential corruption issues, I set up the linux chroot to use a folder instead of an image. This turned out to be handy, because I can access files and play around with bind mounts much more easily than I can with an image file.
Right now I've got Debian Stable installed using chroot to my SD-EXT partition. After getting to a Debian prompt, I updated apt:
apt-get update
apt-get install build-essential
Now we have a fully working GCC environment to use. However, the environment that Linux Installer provides comes with most tools already at your disposal.
Now what? I don't want to have to chroot to use these utilities. That's a waste of my time
Here, we have two options... one is somewhat easy, and one is really easy.
These are not statically compiled applications, so we do need a few libraries. To replicate the functionality of busybox (and so much more), you really only need about 15 of them.
---------------------- THE REALLY EASY WAY ----------------------
The really easy way to do this is to bind mount the following folders from the "chroot" (in my case it's /sd-ext/linux) to the root of the android device:
/bin
/lib
/usr
/sbin
I'm writing this from memory, but I believe (off the top of my head) the proper command is:
busybox mount -o bind,rw /sd-ext/linux/bin /bin
busybox mount -o bind,rw /sd-ext/linux/lib /lib
busybox mount -o bind,rw /sd-ext/linux/usr /usr
busybox mount -o bind,rw /sd-ext/linux/sbin /sbin
Please correct me if I'm wrong (and this is assuming that your chroot environment is in /sd-ext/linux
On some devices, /bin and /sbin already exist. Deal with that however you want.
Now, all you have to do is:
EXPORT PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/sbin
If you've done it properly, you can shut down your chroot environment, go to /bin, and run ./ping 8.8.8.8
If it doesn't work, you screwed up somewhere (or I did!).
---------------------- THE SOMEWHAT EASY WAY ----------------------
On the android side, make the following folder structure:
/bin
/lib
/sbin
/usr
/usr/bin
/usr/lib
/usr/local/bin
Also, set your path so you can actually use the programs:
EXPORT PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/sbin
Now, let's say we want to have Debian's version of 'ping' without having to chroot. Do the following:
Pop into your chroot environment, head into the /bin folder, and run the following command:
ldd /bin/ping
This will tell you what shared libraries ping uses. In my case, it uses:
/lib/libgcc_s.so.1
/lib/libc.so.6
/lib/ld-linux.so.3
Pop back over to the android side, and run the following commands (assuming that /sd-ext/linux is your chroot environment, and adjusting as necessary for the libraries that are actually used by the program you are attempting to make work)
cp /sd-ext/linux/bin/ping /bin
cp /sd-ext/linux/lib/libgcc_s.so.1 /lib
cp /sd-ext/linux/lib/libc.so.6 /lib
cp /sd-ext/linux/lib/ld-linux.so.3 /lib
Now type:
/bin/ping
You will get either get an error message about a shared library, command not found, or (if you're lucky) the Debian version of ping.
If you're not so lucky, i'd suggest copying over /usr/bin/ldd from the debian side and using it to figure out (on the android side) which libraries you're missing.
***HUGE NOTE***: Remember that folder structure we're using? It will disappear when you reboot your phone, so back it up! I would actually recommend using bind mounts and a shell script to have a more "persistent" folder structure, but that's just me...
Like I said, there's really only about 15 shared libraries or so that are needed to give us a plethora of applications at our disposal. I'll give up a bit of my phone's system space to be able to drop to a proper bash command line and pull up nano, use the full and complete version of tar, gzip, or whatever utility I want.
As I'm still playing with this, I don't have a test package or anything to put up. This is more of a proof of concept idea (that I've already partially implemented on my phone).
Also, GCC can get you a long way Since we're compiling on-device, there is no cross-compiler necessary. Inside of the chroot, I compiled patchELF
http://nixos.org/patchelf.html
I thought that utility might come in handy. Compiles slowly (this is a phone we're compiling on), but it works great.
The next step is to see if I can bake it in...

[KERNEL/MOD] [LINUX] [Rootbind] [Native EMMC/all TF101&TF101G/fast/tested] [2-Jul-13]

[KERNEL/MOD] [LINUX] [Rootbind] [Native EMMC/all TF101&TF101G/fast/tested] [2-Jul-13]
UPDATE 2013/11/08: New kernel released with USB and framebuffer fixed. See post #3.
UPDATE 2014/05/16: New Ubuntu 14.04 filesystem. See point #2 below under Installation.
UPDATE 2014/06/03: New kernel released with USB and framebuffer fixed, OC to 1.5 GHz. See post #3 and #326.
UPDATE 2014/07/09: New kernel released with OC to 1.5 GHz fully working, boots every time. See post #3 and #334.
This is a kernel/initrd mod that allows you to run Linux (Ubuntu, Debian, Arch,...) on your TF101 from the internal EMMC (/data partition in Android) without repartitioning your tab.
Disclaimer:
This works on my tablet and I use it daily. However, I am not responsible for any bricks or if you damage your beloved TF. YOU ARE DOING THIS AT YOUR OWN RISK!
Features and advantages:
Fast (and I mean about as fast as it's gonna get on this device). See post #2 for benchmarks.
No need to repartition to get this. Previously TF101 users could run Linux on EMMC but they had to repartition with wheelie/nvflash, but it wasn't available to TF101G users (of which I'm one).
Any free space on your /data partition is available to both Linux and Android. When you delete stuff on either operating system, the free space is available for both again, as they are running off the same partition. Previously, when you re-partitioned e.g. with OLiFE you had to allocate a certain space (8GB by default) for Linux, then this was not available for Android even if you're not using all of it in Linux.
Way faster than loopmount, especially for disk writes.
Way faster than running Linux off a MicroSD card ext4 partition (even with class 10).
Dualboot is achieved just by flashing either the Android or the Linux kernel.
So how does this work?
The kernel/initrd is modded to take an extra parameter "bind=/path/to/linux/rootfs" on the command line. This will then bind-mound that path to the Linux root mount. It works pretty similar to the way a loop-mounted linux image is loaded and set up during boot, except that now bind-mount is used, not a loop-mount. This is possible because both Android and Linux use the ext4 filesystem, so they can actually share the same partition.
N.B. This thread is not a guide on how to get Ubuntu running on your TF101. There are plenty of guides for that, e.g.
http://forum.xda-developers.com/wiki/ASUS_Eee_Pad_Transformer/How_to_install_Ubuntu
http://forum.xda-developers.com/wiki/ASUS_Eee_Pad_Transformer/How_to_install_Ubuntu/Ubuntu_Install
Tubuntu by x3maniac - http://forum.xda-developers.com/showthread.php?t=1995157
Net-Install by NoDiskNoFun - http://forum.xda-developers.com/showthread.php?t=1852702
Transformazing by transformador - http://forum.xda-developers.com/showthread.php?t=2167224
Make sure to read those threads to get an idea of how this works.
READ THESE INSTRUCTIONS CAREFULLY!
Installation:
Take a Nandroid backup, just in case something goes wrong.
Get a Linux root filesystem if you don't already have one.
See this thread for a discussion of various filesystems available for rootbind.
Alternatively roll your own using debootstrap as described by shaola:
http://forum.xda-developers.com/showthread.php?t=1476835
NEW! For a fully working Kubuntu 14.04 image (with graphics acceleration using the Nvidia drivers) see this post: http://forum.xda-developers.com/showpost.php?p=52697775&postcount=303
This is already an image in a tar file so it doesn't need to be mounted, so instead of the code below you can merely do the following:
Code:
mkdir -p /data/linuxroot
busybox chmod 755 /data/linuxroot
cd /data/linuxroot
tar -xpjf /path/to/my/saved/kubuntu-14.04.tar.bz2
Running Android, copy the root filesystem to a directory on your /data partition, preserving the permissions. The easiest is with the "tar" command (see below). The default install assumes that Linux lives in /data/linuxroot under Android.
For a Linux image in a file that is used for loop-mount (assume it is in /sdcard/ubuntu.img, or edit accordingly), run the following in a terminal when running Android (make sure you are root):
Code:
busybox mount -o remount,rw /
mkdir -p /data/linuxroot
busybox chmod 755 /data/linuxroot
mkdir -p /mnt/ubuntu
busybox mount -o loop /sdcard/ubuntu.img /mnt/ubuntu
cd /mnt/ubuntu
tar -cvp * | tar -C /data/linuxroot -xp
cd /
busybox umount /mnt/ubuntu
rmdir /mnt/ubuntu
busybox mount -o remount,ro /
(note in tar command first -c is lowercase, second -C is uppercase)
For a Linux rootfs that lives on a separate partition (e.g. 2nd part. on MicroSD), run the following (assumes linux is in /dev/block/mmcblk1p2, otherwise edit accordingly):
Code:
busybox mount -o remount,rw /
mkdir -p /data/linuxroot
busybox chmod 755 /data/linuxroot
mkdir -p /mnt/ubuntu
busybox mount -t ext4 /dev/block/mmcblk1p2 /mnt/ubuntu
cd /mnt/ubuntu
tar -cvp * | tar -C /data/linuxroot -xp
cd /
busybox umount /mnt/ubuntu
rmdir /mnt/ubuntu
busybox mount -o remount,ro /
Copy kernel modules to your rootfs. Download modules-3.1.10-9.tar.gz to your /sdcard. then:
Code:
cd /data/linuxroot/lib/modules
tar -xzf /sdcard/modules-3.1.10-9.tar.gz
Flash the Linux kernel. Either flash the zip from recovery or copy the kernelblob directly to the staging partition with dd (if you don't know what I'm talking about here, then use the recovery method).
Reboot 'n enjoy! Remember to run "sudo depmod -a" after the first Linux boot, and reboot. Otherwise your modules won't load and wifi, etc., won't work.
To re-boot into Android, simply flash the boot image/kernelblob from your Android ROM.
Notes:
The kernel is compiled from Jhinta's source with a few modifications to the config - http://forum.xda-developers.com/showthread.php?t=1683145
Make sure not to have a /host directory in your Linux rootfs - this interferes with the bind mount!
The Linux rootfs can live anywhere on your Android /data partition (the default is /data/linuxroot). If you want to change this, then you'll have to blobunpack the kernelblob-rootbind, unpack the boot image (kernelblob-rootbind.LNX) with abootimg, change the command line as desired, re-pack the boot image with abootimg, and re-pack the blob for flashing.
The "bind" cmdline argument is the location of your Linux rootfs without the initial "/data". So if your Linux rootfs lives on /data/my/linux/path under Android, then you'd have to change the cmdline parameter to "bind=/my/linux/path".
Make sure, however, not to put the Linux rootfs to the "internal storage" (/data/media) or any subdirectories thereof. This plays havoc with the Android media scanner when re-booting into Android and your tablet may slow down to a crawl.
Under Android your EMMC partitions are /dev/block/mmcblk0p1,2,3,....
Under Linux, this is /dev/mmcblk0p1,2,3....
Thanks to:
lilstevie - for bringing Ubuntu to our tablet
Jhinta - for his 3.1.10 kernel
shaola - for his debootstrap guide
x3maniac - for his Tubuntu installer
transformador - for his mountloop instructions
TomTcom - for all his Ubuntu-related guides on xda
Kingzak34 - for his dualboot guide and general help/discussion
DjDill - for putting together the collection of rootbind filesystem images
(if your name should be here and I have forgotten you, please PM me...)
Benchmarks
Using "fio" (available from Ubuntu repos). All speeds in kB/s.
In the below, loopmount refers to a loopmounted image on internal storage, MicroSD refers to running linux from an ext4 partition off a class-10 MicroSD card, and rootbind refers to the method described in this thread.
Test: sequential read (64 MB)
rootbind 31906
loopmount 29088
MicroSD 15312
Test: random read (64 MB)
rootbind 5605
loopmount 11340
MicroSD 1620
Test: sequential write (8 MB)
rootbind 9694
loopmount 1373
MicroSD 3040
Test: random write (8 MB)
rootbind 4659
loopmount 1102
MicroSD 722
New kernel
New kernel for Linux rootbind:
based on kernel source from @Sni
See here: http://forum.xda-developers.com/showpost.php?p=43203818&postcount=569
N.B. If you use this kernel you will have to copy new firmware for the wifi driver into /lib/firmware. Get it from Sni's post (link above).
USB hotplug fixed and fully working!
framebuffer fixed (Ctrl-Alt-F1 to F6 for console access)
hardware graphics acceleration now fully working with the latest Nvidia Linux-4-tegra drivers. es2gears no longer throws errors.
Two versions: one clocked to standard 1.0 GHz, the other one overclocked to 1.2GHz. Remember to extract the relevant modules to your linux root filesystem. For installation, I have provided a CWM or TWRP flashable zip, or a blob that you can flash directly with dd to the staging partition (if you don't know how to do this, use the recovery method).
I have tried at great length to overclock to higher frequencies but could not succeed. For some reason the TF just froze with a black screen after booting. I tried many combinations of voltages and frequencies. At least it's oc'ed to 1.2 and stable (in my hands), but if you are experiencing problems you can revert to the 1.0GHz or keep using the previous kernel which is oc'ed to 1.6 but USB is broken.
If anyone wants to take a stab at this you are more than welcome
My sources: https://github.com/jmrohwer/TF101-GNU-kernel
EDIT: New kernel 3.1.10-15 overclocked to 1.5GHz. Boots every time! Needs configuration of your overlock speeds with cpufrequtils. Read this post:
http://forum.xda-developers.com/showpost.php?p=54031885&postcount=334
MD5SUM:
3aee8cacf9037dfc3c8ef0363780254f Ubuntu-3.1.10-15-rootbind-oc1.5.zip
Seems to be great, and very very easy to dual boot, as TWTR will be always avaible to flash the kernels.
The reason I left linux behind on my TF is that team EOS has a plenty of updates and I like to keep up with the devs and the dual boot method i used overwrites the custom recovery.
Now it seems to be perfect forme.
Simply amazing, an other victory for TF101 ! And in addition of more speed than mountloop it's even easier to manage.
Thanks once again, I think my mounltoop will became a full install
Forgive my ignorance, but I've googled and searched the TF101 forums to no avail; what is TWTR? With Google I only found a video of someone running what looked like regular CWM touch on a TF101...
Edit: Nevermind, I figured out that it must be referring to the TeamWin recovery, which until now I've only ever seen referred to as "TWRP".
Thanks! I will test this tomorrow.
smokesignals said:
Forgive my ignorance, but I've googled and searched the TF101 forums to no avail; what is TWTR? With Google I only found a video of someone running what looked like regular CWM touch on a TF101...
Edit: Nevermind, I figured out that it must be referring to the TeamWin recovery, which until now I've only ever seen referred to as "TWRP".
Click to expand...
Click to collapse
It is TWRP, but I guess TWTR = Team Win Touch Recovery
---------- Post added at 11:52 PM ---------- Previous post was at 11:23 PM ----------
I am root, but this command says read only file system
mkdir -p /mnt/ubuntu
Made the folder using a file manager instead
Next step
mount -o loop /sdcard/ubuntu.img /mnt/ubuntu
Fails and just gives me a list of possible options for the mount command
*Detection* said:
It is TWRP, but I guess TWTR = Team Win Touch Recovery
---------- Post added at 11:52 PM ---------- Previous post was at 11:23 PM ----------
I am root, but this command says read only file system
mkdir -p /mnt/ubuntu
Made the folder using a file manager instead
Next step
mount -o loop /sdcard/ubuntu.img /mnt/ubuntu
Fails and just gives me a list of possible options for the mount command
Click to expand...
Click to collapse
I had that problem too. Not sure how to fix it on the tablet, I just copied the image I wanted to use (in this case the Arch Linux ARM one -- about which more later) to my Linux box, loop mounted it, tar'd up the files there, copied that to an SD card, and extracted it on the tablet.
However, about Arch Linux ARM, I learned not to bother using the image from the Tubuntu thread and instead just get the latest version from the ALARM downloads page. Use the "NVIDIA Tegra2 TrimSlice" one. The default root password is "root".
The reason not to use the one from the Tubuntu thread is that it is out of date -- Arch has merged /bin and /sbin into /usr, but the image in the Tubuntu thread predates that, and it's a huge pain to upgrade it properly.
smokesignals said:
I had that problem too. Not sure how to fix it on the tablet, I just copied the image I wanted to use (in this case the Arch Linux ARM one -- about which more later) to my Linux box, loop mounted it, tar'd up the files there, copied that to an SD card, and extracted it on the tablet.
However, about Arch Linux ARM, I learned not to bother using the image from the Tubuntu thread and instead just get the latest version from the ALARM downloads page. Use the "NVIDIA Tegra2 TrimSlice" one. The default root password is "root".
The reason not to use the one from the Tubuntu thread is that it is out of date -- Arch has merged /bin and /sbin into /usr, but the image in the Tubuntu thread predates that, and it's a huge pain to upgrade it properly.
Click to expand...
Click to collapse
Thanks for that, at least I know I'm not doing something wrong my end, I was trying the Ubuntu 12.04 netinstall from the Transformazing thread, I`ll no doubt try a few until I find one I like
I don't have a Linux box atm, but a quick fix with a wubi or VM install tomorrow and I`ll give your method a shot
Cheers
Hey jrohwer can you have a look at this ? It may interest you
http://forum.xda-developers.com/showpost.php?p=43203818&postcount=569
A silly question.... But do i need pre installed mountloop?
I am kinda confused though lol.
Kingzak34 said:
Hey jrohwer can you have a look at this ? It may interest you
http://forum.xda-developers.com/showpost.php?p=43203818&postcount=569
Click to expand...
Click to collapse
Looks interesting, I can see whether I can compile his sources, but it will have to wait a while (don't have a lot of time atm).
*Detection* said:
It is TWRP, but I guess TWTR = Team Win Touch Recovery
---------- Post added at 11:52 PM ---------- Previous post was at 11:23 PM ----------
I am root, but this command says read only file system
mkdir -p /mnt/ubuntu
Click to expand...
Click to collapse
Yes, sorry for got to add the step to remount / in rw mode. OP is updated.
Made the folder using a file manager instead
Next step
mount -o loop /sdcard/ubuntu.img /mnt/ubuntu
Fails and just gives me a list of possible options for the mount command
Click to expand...
Click to collapse
Most probably you are using the Android mount command. The busybox mount command has more functionality. I added the OP to explicitly call the busybox mount/umount commands (I have mine aliased by default). Indeed I checked and the Android mount command does not work for loop mount.
vietchinh said:
A silly question.... But do i need pre installed mountloop?
I am kinda confused though lol.
Click to expand...
Click to collapse
No you just need a mountloop image which you can then mount as described in the OP, to copy the files over to /data/linuxroot.
jrohwer said:
Yes, sorry for got to add the step to remount / in rw mode. OP is updated.
Most probably you are using the Android mount command. The busybox mount command has more functionality. I added the OP to explicitly call the busybox mount/umount commands (I have mine aliased by default). Indeed I checked and the Android mount command does not work for loop mount.
Click to expand...
Click to collapse
Thanks, I`ll give this another shot tonight then with the new instructions
jrohwer said:
Looks interesting, I can see whether I can compile his sources, but it will have to wait a while (don't have a lot of time atm).
Click to expand...
Click to collapse
Yup of course take your time I think something good is coming
Tapatalké depuis mon Nexus 4 MIUI !
jrohwer said:
No you just need a mountloop image which you can then mount as described in the OP, to copy the files over to /data/linuxroot.
Click to expand...
Click to collapse
Thanks, but i have new problem. Uh i cant execute this line: tar -xzf /sdcard/modules-3.1.10-9.tar.gz. It give's me this:Tar invalid option bla bla bla ;3 SO CLOSE TO COMPLETING T.T.
vietchinh said:
Thanks, but i have new problem. Uh i cant execute this line: tar -xzf /sdcard/modules-3.1.10-9.tar.gz. It give's me this:Tar invalid option bla bla bla ;3
Click to expand...
Click to collapse
Leave the - off. so it would be
Code:
tar xvf /sdcard/modules-3.1.10-9.tar.gz
Usually works for me.
bfmetcalf said:
Leave the - off. so it would be
Code:
tar xvf /sdcard/modules-3.1.10-9.tar.gz
Usually works for me.
Click to expand...
Click to collapse
In valid tar magic ._.
i assume i need extract manually heh

Categories

Resources