yashsingh1/xdaforums huggingface dataset:
[Desire Android Development] paamet:
Indeed, there are so many a2sd! Maybe it would be better to not rely on /data, but on a dedicated ext partition. Would that be possible? I see great possibilities in this project, but also see that is not very convinient when updating ROMS often.

However, it still not working for me.....I get....

<<

app_58@android:/data $ su

app_58@android:/data # apt-get update

Err http://bravo-apt.host.org bravo Release.gpg

Could not resolve 'bravo-apt.host.org'

Err http://bravo-apt.host.org/ bravo/main Translation-en

Could not resolve 'bravo-apt.host.org'

Reading package lists... Done

W: Failed to fetch http://bravo-apt.host.org/dists/bravo/Release.gpg Could not resolve 'bravo-apt.host.org'

W: Failed to fetch http://bravo-apt.host.org/dists/bravo/main/i18n/Translation-en.gz Could not resolve 'bravo-apt.host.org'

W: Some index files failed to download, they have been ignored, or old ones used instead.

>>
[Desire Android Development] loedrus:
This is the thread of the ROM: http://xdaforums.com/showthread.php?t=1426339

AFAIK it doesn't use data2sd, but merely the data++ hboot, and regular app2sd is indeed used. However, some parts of /system are on /sd-ext to enable the small /system partition (I actually use oxygenr2). To be sure, where do I find init.d?
[Desire Android Development] theGanymedes:
What the zip file does is, link /data/lib to /lib and then run a test application (/tmp/scripts/hello) and check if there is an error. In your case this may fail because of following:

1- /data couldn't be mounted - this might be because your partition table is different and system couldn't mount /data partition for some reason - but I don't think that's the case, because recovery log would show that.

2- /data/lib couldn't be symlinked to /lib. Even though no error was on the screen, the problem seems like this. The reason for this might be your recovery not mounting the / (rootfs) as read/write but read-only. try to run this on recovery with adb shell:

ln -s /data/lib /lib

and check if there is a /lib in rootfs indeed:

ls /

If there isn't a "/lib", there is not much I can do: change your recovery, or issue this command on adb shell before flashing something:

mount -o remount,rw

and try again.

If there is a "/lib", also check if there exists a "/lib/ld-linux.so.3" file there - I see in recovery log that you have tried to install glibc before and that failed as well. If there exists, try to run it like a program and see if it runs. If it does and still trying to install glibc fails, then your problem is beyond my comprehension - I really can't help you about this in here. I don't know what might be the problem.

Well,I'm using Stock HBoot and don't know about non-stock solutions. I cannot see how this would cause problem though.

The error you get is interesting in apt-get : seems like Apt-get is running, which means Glibc should be running :S For "Unable to resolve host": check if your browser opens the page http://bravo-apt.host.org . If it does, maybe your "curl" library doesn't run correctly to be able to resolve the host - which actually might be because of the GlibC as well; I don't know. BTW: I assume you have Internet connection; cause otherwise Apt is surely fail.

About your comments: thank you for your compliments; but there is not much I can do about this issue. Recovery Zip's are quite restricted about the stuff you can do on recovery, and GlibC is needed to be installed in MTD data partition in order to be available on boot time - which at a mount point everybody uses arbitrarily. As you can guess, this makes me quite limited about the design I can make, since I cannot know everything everybody does..

Also another thing is developmental: since people do stuff but only a very limited amount (I have not seen any, tbh) of people actually document what they do; I first have to reverse engineer everything first, then use them. Since I'm all alone doing this, this is quite hard, tiring and takes long time. As you can see, the end result might not be quite robust as well.

And the bad thing is; I couldn't even earn a cent for this and I'm still jobless. :/
[Desire Android Development] Droidzone:
Hey, is it ok if I add your donation link to my site? This is the only project which has helped my kernel Development project, and since the latter has been received well, I'd like to add your link to my kernel page. Unfortunately, without a credit card, I can't send a donation-Paypal's special rule for India! :( Even if I receive donation, I can't send them, have to encash it within a week..

Swyped on my Htc Desire running on Supernova Extreme - Gingerbread goodness with 2 GB of Internal memory
[Desire Android Development] loedrus:
a /lib/lib/ld-linux.so.3 or a /lib/ld-linux.so.3 file? Well there is the former but not the latter file.

Thanks

loedrus
[Desire Android Development] paamet:
Browser and ping can easily reach this site.

In a few weeks I get my new PC, will defintely try to compile R-cran and some other scientific programs then (following your recepie).

Now, just an idea. While GUI/desktop inviroment on screen is impressive, I think it maybe more useful to just have a linux text console which could be reached over ssh. Hey, maybe vnc or X over network. Desire screen is so small, but (stupid) windows PC are everywhere.

Cheer up! You will get a job because obviously you are a genious!
[Desire Android Development] theGanymedes:
Of course, that'd be grand! Thank you very much.

Actually, I was wondering if you had some sort of IM in India? :P That'd be better for you and I both, in case of problems, because apparently you're the only Dev that's interested in what I do.. :/
[Desire Android Development] theGanymedes:
it should be "/lib/ld-linux.so.3", if it's "/lib/lib", that's the reason of it failing!

if "/lib" itself is a symbolic link, please erase it and then retry installing the GlibC. If it's a folder, we need to do some tweak.
[Desire Android Development] Droidzone:
Don't be disheartened at that. I believe there are very few people around here who actually understand half of what you've posted. Xda is considering starting a dev training program called Xda university, and I'll definitely be recommending some training material from you.. There are devs in other device forums who'd be very interested in this.

Swyped on my Htc Desire running on Supernova Extreme - Gingerbread goodness with 2 GB of Internal memory
[Desire Android Development] theGanymedes:
Thanks, but yet again it's a bit disappointing. I know half of people doesn't understand - and I'm not expecting them to - but doing everything alone makes this stuff extremely tiring and that is something you wait a reaction.. :o

Whatever, I didn't post this just for that :)

Right now, I was trying to compile the MSM-FB driver (necessary for on-the-fly resolution and/or transformation (like rotating the screen) ) that Code Aurora guys made for Linux, and it turns out that driver requires some stuff at the Kernel side as well (the staging level drivers for MSM framebuffer device, that is). Apparently, this project will need its own kernel if we want screen rotation..

With a few tweaks at the Kernel source codes, I could manage to compile the HW3D drivers (3D Device drivers for HTC devices) too. I don't know how to use this, but at least they'll be available for someone :)

Didn't test the new kernel yet, but will keep you posted about the advances ;)
[Desire Android Development] loedrus:
It appears that /lib is used by the recovery itself, so I just flashed CWM and glibc was flashed successfully. So we can conclude that 4ext recovery is probably incompatible to flashing glibc.

Thanks,

loedrus
[Desire Android Development] theGanymedes:
4ext is actually compatible - I'm using it myself. However, "4ext Touch" might not be. Since "/lib" is defined by the GCC itself, it's not a good practice to change it (possible, but very burdensome)..

What we can do is, maybe change recovery zip a little; but that's to be done later. ;)
[Desire Android Development] Droidzone:
Btw, is modification in init.rc required. can't the same be achieved by creating a script, then using export PATH=, and calling this script from any terminal emulator?

Swyped on my Htc Desire running on Supernova Extreme - Gingerbread goodness with 2 GB of Internal memory
[Desire Android Development] theGanymedes:
Alas, no, it's required... Putting the variables into a script won't work - because the exported variable vanishes once the script ends it's job.
[Desire Android Development] theGanymedes:
New Advances in E!

Good news guys!

After 4 days of hard work, I could manage to make Xrandr work - this means that the screen in E17 will rotate with the device orientation from now on!

Another good thing is, it doesn't need kernel support for that; all we need was a modified driver (obtained from Code Aurora guys, and modified it)! I'm going to upload them soon, along with a new Xorg package.

Linux In Android APK has to be updated too, though. Will soon upload them all.

Keep up ;)
[Desire Android Development] Droidzone:
Sounds great! Waiting to try it out!
[Desire Android Development] paamet:
Great! Again...this is an amazing project. Have anyone tried this wirh ICS? I know it should work, but I can not make it run...I will look more into it and report...
[Desire Android Development] paamet:
droidzone...would you make this default in your ROM?
[Desire Android Development] Droidzone:
What, add glibc along with the ROM?

Swyped on my Htc Desire running on Supernova Extreme - Gingerbread goodness with 2 GB of Internal memory
[Desire Android Development] theGanymedes:
Actually, this is one of my projects one day: replacing bionic with complete GlibC.. Theoretically, this shouldn't be too much of a problem, but will see :)

There is so much to do first on the road first, though..
[Desire Android Development] Droidzone:
There must be aspects of it which made Google favor bionic though. ;)

Swyped on my Htc Desire running on Supernova Extreme - Gingerbread goodness with 2 GB of Internal memory
[Desire Android Development] Droidzone:
Hey, except for the last hosting mirror of glibc, all the rest are gone! DOJ seems to be cracking down on everything. :(

Swyped on my Htc Desire running on Supernova Extreme - Gingerbread goodness with 2 GB of Internal memory
[Desire Android Development] theGanymedes:
I can reupload them, that's OK.

Google favored bionic, because it's small size, developed with embedded systems in mind, and google never thought someone would run Xorg (or such) on their device :D

Licencing is also a problem for Google, not for me :D
[Desire Android Development] Droidzone:
When you get a lot of time, could you list the commands to run to properly install glibc? I've kind of got lost in all the scripts. Say I've got ext4 mmcblk0p2 mounted to /data, and mtd5 mounted to system/data.

What should I copy to where?

Symlink what?

Finally what to add to init.rc. I know you have described it in parts before, but I'm going to do this manually again.

Swyped on my Htc Desire running on Supernova Extreme - Gingerbread goodness with 2 GB of Internal memory
[Desire Android Development] cdesai:
You need to add more paths to init.rc, /data/lib n /data/bin n such - according to the install location
[Desire Android Development] Droidzone:
Yup, I understood the general layout, was hoping to get a full list of commands to not miss something. :)

Swyped on my Htc Desire running on Supernova Extreme - Gingerbread goodness with 2 GB of Internal memory
[Desire Android Development] theGanymedes:
Steps in Script

Well, actually the steps are quite complicated to cover all of them here, but you can check the scripts folder at the zip if you want to learn the details:

STEP 0

1- Mount the mmcblk0p2 partition into /sd-ext - if found

2- Try to learn the data-system: Stock, Apps2SD or Data2sd (sibere or ownhere)

3- Determine if there shall be a linkage (this is for data2sd solutions - since /data is mounted differently on system boot, the stuff installed at mtd-data will be at some other place. Due to this, we link everything we installed to MTD to mmcblk0p2 (since it's going to be /data on booted system) - the place of mtd-data at the system boot is at $linkto variable)

STEP 1

1- Copy everything in the zip to /data (note that this is MTD data - GlibC installs to MTD, but other apps might install to /sd-ext)

2- With permissions file, set the permissions

3- With "links" file, recreate the symbolic links

** These "permissions" and "links" files are created by me, using some scripts - I don't write them one by one :) ***

4- Make some system files (like init.d entries, create ld-configuration files etc. For information, check GlibC documentation about ld)

STEP 2

1- Extract the boot to image

2- Extract the ramdisk from boot image

STEP 3

1- Find "export PATH" line in init.rc file, inside the ramdisk image (extracted in /tmp/ramdisk)

2- Add /data/bin and /data/sbin into the PATH variable, if they are not existent

3- Create a line which will symlink /lib to /data/lib

--- OPTIONAL STEPS

4- Create a line which will make /tmp folder at boot

5- Mount tempfs to /tmp folder - this will work as temp - like in "normal" Linux system.

STEP 4

1- Repack the ramdisk

2- Create new boot image

3- Flash this image

STEP 5 - TEST

1- Link /lib to /data/lib

2- try to run /tmp/scripts/hello program (a simple hello world program, compiled dynamically with GlibC)

3- If it runs, all is ok, continue the steps; if it doesn't, give error and set error flag so that the recovery script will interrupt

STEP 6 - Post install

1- Link everything we installed to MTD to mmcblk0p2, so that they'll be available in /data after the system boot as well (a hack, actually ;) )

These info were available in scripts file as well and you could obtain them from reading them - I even commented them heavily.. Try to check there before next time, because not only I'm repeating myself over and over here, this also steals from my development time for other stuff ;)
[Desire Android Development] Droidzone:
Thanks, that's the explanation I required.. I did have a look at the scripts, just wanted a bird's eye view of the objective, especially since the installation script resulted in a bootloop last time. :) Won't disturb you again..

Thanks for introducing chainfire's trick of sending output to Recovery binary. It's pretty cool.

Swyped on my Htc Desire running on Supernova Extreme - Gingerbread goodness with 2 GB of Internal memory
[Desire Android Development] theGanymedes:
NP.. If the installation caused bootloop previous time, most probably the flashing ramdisk part failed. I know some "old" recoveries do cause problems - happened before - so I'd recommend you to check your recovery log about those steps.
[Desire Android Development] theGanymedes:
Last Status

Well, I just wanted to post you about the last status I've been to.

Since Android and Xorg trying to use the Framebuffer device together and since these two aren't very compatible (Xorg sets and uses 24bpp Framebuffer; whilst Android forces 32bpp - which causes weird outputs when they clash), I've been working on stuff to make them get along.

So far, even though hanging on the spiders web, I could manage that. Also, tried a few settings on E side (initial configs etc.). These are the screen outputs:

Portrait Mode:

Landscape Mode:

Once I finalize the touches, they shall be available to you as well..

** Should note that E17 itself uploaded those.. Maybe we should start compiling Firefox for it? :D

Happy Android-linux hybriting :)

EDIT: Voila! The driver is ready to be shipped. Alas, I couldn't make compositing work, so we cannot have fancy window animations (because MSM fb doesn't support alpha channel, I guess)...

Now I'm going to start tweaking the tslib - it's damn too sensitive! Also, there is a "virtual keyboard" (very nice one actually) in "Touchscreen (Illume) mode" but not in Desktop mode, so also got to find a good virtual keyboard.
[Desire Android Development] Droidzone:
I found you a friend... ;)

http://xdaforums.com/showthread.php?t=1444792
[Desire Android Development] theGanymedes:
Well, I started this before him, and evidently went further :) Apparently, he statically links the libraries, so is not of my interest much - but of course, it can be studied to learn the steps necessary to build..

I personally do those steps myself, because some packages doesn't work "out of the box".

Very hard work, though, because not only building it, he's also writing scripts to build it .. :)
[Desire Android Development] Droidzone:
Yup. Have u had experience with the code sourcery toolchain that he recommends? Our toolchain should be better?

By the way, remember all the issues that I was facing while building the toolchain,and how some options were missing in my CT-ng menuconfig? I was using an old version of ct-ng- 1.9

I'd no idea. After downloading the latest tarball, input the options and it went on right to the end without any errors! Didn't even comment about missing headers. And this with the latest source of binutils, glibc, gcc 4.6.2 etc.

Swyped on my Htc Desire running on Supernova Extreme - Gingerbread goodness with 2 GB of Internal memory
[Desire Android Development] theGanymedes:
I had no idea as well :D

CodeSourcery toolchain isn't maintained anymore, so I'd recommend ct-ng. The good thing about CodeSourcery is, they publish binary toolchains, but as I said, this is shipped with old glibc/gcc versions.
[Desire Android Development] smitna:
Sorry Droidzone and theGanymedes to disturb this thread :o

I don't recommend anything and I am of course not related to Mentor.

I am also not in competition with anyone. My target is to help people to make the cross-compiling a little but easier, not more, not less.

If I reach this - fine.

It should be possible to use an other compiler in my script with a few changes (without tested this, bash ist build with NDK to work as a root shell). But I have made some bad experience with Linearo and NDK and problems with buildroot (2011.08). Likewise I have no experience with a custom self build glibc, but it should of course be possible to link against a self-baken lib.

I do not use the toolchain, only the compiler with tools (binutils) and the libs. gcc is nearly "up to date":

arm-none-linux-gnueabi-gcc -v

gcc version 4.6.1 (Sourcery CodeBench Lite 2011.09-70)

If Mentor release a new version, it also not too hard to change the download link in my script to get it.

I have deep respect for your work, theGanymedes, but please correct the facts in post #351
[Desire Android Development] theGanymedes:
Oh, sorry, I ment no harm. I just relayed my experience. Before I found out CT-NG, the codeSourcery toolkits' dates were much older than the Ct-ng ones; and I've read somewhere that toolkit is no longer given away but supplied with some other package etc. so I deduced that. This might be wrong, sorry for that.

I didn't mean to insult your project or so, never. I really appreciate what you do: since I compile lots of stuff myself, too; I know how hard to make them in scripts and I really appreciate your effort for that. I just said what I know of.

And as I always say: I'm no master in this topic, just began with those stuff a few months ago.. :)
[Desire Android Development] Droidzone:
As for me, both projects are a big blessing. TheGanymedes project was extremely useful for getting my own toolchain with which I build my kernel every day, while my different secondary objective is to build static binaries, not dynamic. So, best of both the worlds. And automated build script is a blessing, since even though TheGanymedes explained compiler flags, I seem to get it wrong each time I build something manually. :p

Swyped on my Htc Desire running on Supernova Extreme - Gingerbread goodness with 2 GB of Internal memory
[Desire Android Development] Droidzone:
Hey,how's Enlightment going?

Swyped on my Htc Desire running on Supernova Extreme - Gingerbread goodness with 2 GB of Internal memory
[Desire Android Development] beanbean50:
just wondering if you guys missed this one...?

http://xdaforums.com/showthread.php?t=1465026
[Desire Android Development] theGanymedes:
Just waiting for a proper time to upload... Both E and Runner are ready.. :)

Started working on APT frontend now
[Desire Android Development] Droidzone:
By the way, I found that something's happening to my boot partition when it's expanded and re written to. When it's re flashed, it's getting corrupted. Hence there are no recovery error messages, and your hello world too works. I'll probably have to add the symlink myself. Wish Android had something like .bashrc for paths and aliases

By the way, would it be harder to cross compile an arm version of LFS, instead of having both of them side by side?
[Desire Android Development] theGanymedes:
That's weird.. Actually, when installing bash, I'm making such a change so that we never flash boot image again - setting ENV variable to some file (it's "/etc/profile" usually but you can change that) makes bash read this file before opening, so all variables become exported. I don't know if the "stock" bash supports it, so I didn't put this into GlibC package.

"Hello World" test doesn't rely on boot image, so it can pass but you may still have bootloops. I definitely recommend you to use a Recovery with kernel version at least is 2.6.15 - because the busybox that's compiled with Glibc to be used for install requires that.

I'm using 4EXT (not touch, normal one) so I recommend that one for you as well - for since I test on my own device. Bootloops generally occur because of cpio (comes with the busybox) can't work on old kernels - and this doesn't produce error but just an empty image.

Well, about LFS with ARM - no, not harder; but just longer :) I just didn't want to compile stuff that I aren't needed, so I didn't try to produce a complete LFS - that's require to do something about telephony part, gps part etc etc etc - the stuff which works well under Android :)
[Desire Android Development] Droidzone:
In that case, wouldn't it be far too easier if you were to provide a static version of bash. Execute bash and everything else in the environment becomes automatically installed. No ramdisk modification required at all? The rest (symlinks and permissions for glibc) can be done one time, or via init.d)?

I use 4ext touch, and per my request, Max has removed /lib usage from recovery so as to not interfere with your code (I thought that might have been an issue, but apparently it isn't.)
[Desire Android Development] theGanymedes:
Apparently, there are still some issues with that recovery.. I'll install it myself today to test and change glibc per need.

Static version of bash is simply too huge to fit into /system; so not possible. Yet, GlibC dependent version is compiled and packaged already; and yes - if you install that package, you don''t need to modify ramdisk for environmental variables ever again.

By the way: repo is updated tonight. The new runner is at the bottom of this entry. Please try to minimize the Android using screen - because screen may get garbled if Android and E work on screen together. IF you get a garbled screen, just rotate your device and rotate back, that outta fix it.

LinuxInAndroid Application is here.

ADDENDUM: With latest 4EXT Touch recovery (RC3), with Cool BravoS v10 ROM and Data2SD (ownhere); a bootloop had been seen. Most probably this is because we added a library which is existent in the system, and this causes a lib-clash. Will fix it today. Please get the latest version today.

Thanks for your cooperation.

EDIT: It was because of me, while creating the recovery zip - I used an old, experimental and unstable script accidentally, so it failed :) Will swap and test and upload the new (and working one) in a few hours. Please stand by.
[Desire Android Development] Droidzone:
Standing by.. :)

Don't forget that data2sd marker is /cache/log/data2sd.on, and that we mount mtd5 to /system/data, though it would be better to use ext partition mounted as /data, as far as possible. I'd like to conserve space on mtd as far as possible for remounting dalvik-cache.