MoDaCo is undergoing planned maintenance. Site functionality may be reduced - follow @modaco or @paulobrien on Twitter for updates.

  • Announcements

    • Reminder - MoDaCo position on illegal content

      ILLEGAL CONTENT I'd like to just reaffirm MoDaCo's position regarding piracy and illegal content in the light of some recent questions / postings. Posts will be censored by myself or my moderation team if the contain or link to: Illegal / pirated / cracked software or sites that host such software
      Nintendo emulators / ROMs or sites hosting them (in light of Nintendo's legal stance)


      CUSTOM ROMS

      You may discuss and post links to custom device ROMs on MoDaCo, provided the following rules are adhered to: ROMs must not be hosted directly in topic via the MoDaCo attachment system
      ROMs must not contain any illegal 3rd party software (this includes trial versions included without permission)
      ROMs must give full credit to the original author
      This decision has been taken in light of the huge amount of interest in this area of device customisation within the community, and member feedback! Please note that custom ROM discussion should be kept in specific device sub-areas, (e.g. Kaiser.MoDaCo.com for Kaiser based devices). ISSUES If you have any issues with this policy, please contact me directly via PM. P
    • Support MoDaCo by signing up to a MoDaCo Silver or Gold membership

      To sign up to an annual MoDaCo Silver subscription which will eliminate all ads from the site (as well as giving you access to the MoDaCo Online Kitchens for Android) for only £9.99 using PayPal, Credit or Debit Card, ensure you are logged in to the site, and then click the link below, which will take you directly to the subscription store! You can also sign up to an annual MoDaCo Gold subscription for £29.99, which adds the benefits listed below! PURCHASE A MODACO SUBSCRIPTION - FREE Titanium Backup Mobile for Android worth $5.99! - FREE 1 year PrivateInternetAccess.com worth $39.95! - FREE 1 year LastPass Premium worth $12! - FREE CalcConvert for Pocket PC from Binaryfish worth $17.95! - FREE Calendar Bar for Pocket PC from OmegaOne worth $9.99! - FREE CamerAware for Pocket PC and Smartphone from MoDaCo worth £19.99 / $30! - FREE Chronos for Pocket PC from ActiveKitten worth $14.95! - FREE CodeWallet Pro for Smartphone and Pocket PC from DeveloperOne worth up to $24.95! - FREE Concentrix for Pocket PC from eSoft Interactive worth $9.95! - FREE FlexMail for Pocket PC and Smartphone from WebIS worth up to $59.90! - FREE FTouchSL for Pocket PC from Vekoff s.r.o. worth 10 euro / $12.50! - FREE Jewel Challenge for Pocket PC from eSoft Interactive worth $9.95! - FREE John Cody's Alerts Pro for Smartphone from Omnisoft worth $14.95! - FREE LingvoSoft Talking Dictionary 2008 English <-> Dutch for Pocket PC from Lingvosoft worth $49.95! - FREE LingvoSoft Talking Dictionary 2008 English <-> French for Pocket PC from Lingvosoft worth $49.95! - FREE LingvoSoft Talking Dictionary 2008 English <-> German for Pocket PC from Lingvosoft worth $49.95! - FREE LingvoSoft Talking Dictionary 2008 English <-> Italian for Pocket PC from Lingvosoft worth $49.95! - FREE LingvoSoft Talking Dictionary 2008 English <-> Spanish for Pocket PC from Lingvosoft worth $49.95! - FREE LingvoSoft Dictionary English <-> Dutch for Smartphone from Lingvosoft worth $49.95! - FREE LingvoSoft Dictionary English <-> French for Smartphone from Lingvosoft worth $49.95! - FREE LingvoSoft Dictionary English <-> German for Smartphone from Lingvosoft worth $49.95! - FREE LingvoSoft Dictionary English <-> Russian for Smartphone from Lingvosoft worth $49.95! - FREE LingvoSoft Dictionary English <-> Turkish for Smartphone from Lingvosoft worth $49.95! - FREE Note2Self for Pocket PC and Smartphone from WebIS worth up to $19.90! - FREE Opera 8.60 for Pocket PC and Smartphone from Opera Software worth up to $48! - FREE Pocket Informant for Pocket PC and Smartphone from WebIS worth up to $59.90! - FREE Pocket Launcher for Pocket PC and Smartphone from Conduits worth $9.95! - FREE PTab for Pocket PC and Smartphone from z4soft worth up to $60! - FREE Resco Explorer for Pocket PC and Smartphone from Resco worth up to $49.90! - FREE Safemode for Pocket PC from monocube worth $12.95 - FREE SplashPhoto for Pocket PC and Smartphone from SplashData worth up to $59.90! - FREE Sprite Backup for Pocket PC and Smartphone from Sprite Software worth $29.95! - FREE Teksoft Glyphs UI for Pocket PC and Smartphone from Teksoft €9.95! - FREE Teksoft HeadsetRemote for Pocket PC and Smartphone from Teksoft €4.95! - FREE Traffic Jam for Pocket PC from eSoft Interactive worth $9.95! - FREE unlock (1 per year) from imei-check.co.uk - DISCOUNT of 10% at MoDaCo FairDeal - DISCOUNT of 10% at Semsons.com - FORUM - AD FREE SITE - FORUM - custom rank / title - FORUM - double competition entries - FORUM - double post attachment space - FORUM - no search flood control - FORUM - priority event registration - FORUM - triple PM space
    • Reminder: Selling items on the forum directly is not allowed

      Please note that selling items on the forum directly is not allowed by the forum rules. There is a forum for eBay auctions whereby you can list the items on eBay and link to them there. This is the ONLY forum for this type of activity. You may also advertise links to the eBay forum in your signature. Please note that selling directly in contravention of these rules will result in a warning / suspensions / ban.
Sign in to follow this  
Followers 0

How to compile your own Android kernel in linux

4 posts in this topic

Posted (edited) · Report post

First you need an original boot.img file. Extract its components
with the abootimg program.

$ abootimg -x boot.img
writing boot image config in bootimg.cfg
extracting kernel in zImage
extracting ramdisk in initrd.img

Search for the first "1F 8B 08" bytes in zImage (that's the
signature of a gzip file); make a new file starting from there
and gunzip it. This will create your Image kernel (decompressed)

In the new file search again "1F 8B 08" and make a new file out
of that and gunzip it. This will be your kernel config file.
Alternatively you can do 'zcat /proc/config.gz' on your runnig
phone to achieve the same result. For convinience I've already
edited out the CONFIG_ACER_SECURE_MOUNT define and you can
grab the file [url="http://uglyduck.ath.cx/Acer/dot_config"]here.[/url]

Install your ARM cross-compiler and toolchain from your favorite place.
grab the kernel sources opensrc_Acer_AV051_S500_RV04RC09_WW_GEN1-20130322.tar.gz
or newer; untargz them. Edit the file ./drivers/gpu/msm/adreno.c and change
in function adreno_iommu_setstate the 'unsigned int link[250];' to 240
otherwise you'll have a frame overflow error.

Also in scripts/Makefile.lib change this line (if you want)
-cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -n -f -9 > $@) || \
+cmd_gzip = (cat $(filter-out FORCE,$^) | 7z a $@ -tgzip -mx=9 -si) || \
because the 7z can also make gzip files but with much better compression.

Finally after you've copied the '.config' in the kernel tree
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- zImage
... and wait. After a while you'll have yout new zImage file.

Now the ramdisk: make a 'work' directory and cd to it.
$ zcat ../initrd.img | cpio -i
edit the default.prop file to 'ro.secure=0' and 'ro.debuggable=1'
and then convert back to compressed cpio:
$ find . ! -name "." | cpio -o -H newc | 7z a ../initrd.img -tgzip -mx=9 -si
now 'cd ..' and put everything back together
$ abootimg --create boot.img -k zImage -r initrd.img
look at the new size of your boot.img modify in bootimg.cfg the bootsize
value (in hex) to reflect this new size and run again with the -f parameter
$ abootimg --create boot.img -f bootimg.cfg -k zImage -r initrd.img

Done. [url="http://uglyduck.ath.cx/Acer/kernel_patch.zip"]Here[/url] is my compiled version. Edited by zelea2
2

Share this post


Link to post
Share on other sites

Posted · Report post

So this is a kernel ? Mount RW/RO works with this kernel ? What this kernel contains ? What gouvernors? And what did you modified ?
0

Share this post


Link to post
Share on other sites

Posted (edited) · Report post

Thanks for your tutorial zelea2!! It helped me a lot with building my own kernel. I did a few things in an alternative way:

In adb shell on the device I did:
[CODE]cat /proc/config.gz > /external_sd/config.gz[/CODE]
Then in shell I did:
[CODE]adb pull /external_sd/config.gz[/CODE]
to transfer the file to the current directory. Then I did a [CODE]gunzip config.gz[/CODE] to unzip the config file.

After modifying the config file (just modified the CONFIG_ACER_SECURE_MOUNT from n to y) I build the kernel. I did not modify anything else!!

I did get an error while repacking the ramdisk when using your command. To succesfully repack I used [CODE]find . | cpio -o -H newc | gzip > ../initrd.img[/CODE]

After creating a boot.img it runs perfectly. I get the same benchmark results with my own compiled kernel as with the original (even slightly better!)

What do you mean with the frame overflow buffer? Without modification my kernel seems to run fine or am I missing something?
Do you also know how I can make the S500 let accept a [CODE]adb remount[/CODE] command?

Thanks in advance! Edited by bobbes
0

Share this post


Link to post
Share on other sites

Posted · Report post

Would it be unwise to change other stuff in the build.prop? I'm thinking things like lcd density ( value up or down?),
acer shell, ...
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

MoDaCo is part of the MoDaCo.network, © Paul O'Brien 2002-2015. MoDaCo uses IntelliTxt technology.