Related
This is strictly just a reference guide/tutorial! If you cannot simply follow directions and copy/paste, I'm not going to help you! This is idiot-proof.
Build Environment
Operating system -- Tested on Ubuntu 10.04 (64bit)
Terminal
Decent hardware (minimum of at least a dual core CPU and 4 GB of RAM)
Optimally have an SSD (standard mechanical drives work as well but slow down the process drastically)
Must have required packages for building installed, I will list them further down
Required Packages
Simply copy and paste this in a terminal window:
Code:
sudo apt-get install curl git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
Let that install and then proceed.
Getting the Source
Make required directories
Obtain repo binary
Add repo binary to your path
Give repo binary proper permissions
Initialize empty repo
Sync repo
Grab device tree and vendor tree which are not included in the AOKP manifest
Add Mecha to the vendor setup
Alright, so now we're getting there. I have outlined the basics of what we're about to do and broke them down as I know them. This is all pretty much going to be copy/paste so it'll be fairly difficult to screw this up
Copy/paste:
Make directory for repo binary
Code:
mkdir ~/bin
Add directory for repo binary to your path
Code:
PATH=~/bin:$PATH
Download repo binary and place it in the proper directory
Code:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
Give the repo binary the proper permissions
Code:
chmod a+x ~/bin/repo
Create directory for where the AOKP repo will be stored and synced
Code:
mkdir ~/aokp
Move to our new AOKP directory
Code:
cd ~/aokp
Initialize the AOKP repo and download the manifest
Code:
repo init -u git://github.com/AOKP/platform_manifest.git -b master
Sync AOKP source
Code:
repo sync -jX
X == Number of cores your CPU has
Start the build
This is probably the EASIEST part of all, simply copy/paste this command and walk away!
Code:
. build/envsetup.sh && lunch aokp_toro-userdebug && make otapackage -jX
Where X == cores per CPU again.
Syncing the repo is dependent upon your Internet connection. It can take anywhere from 30 minutes to several hours to fully sync. Same thing goes for build times. Don't expect this to be short. If you have patience and have no build errors, you'll end up with a flashable zip in ~/aokp/out/target/product/toro! Happy crack-flashing!
This is awesome! Thanks for taking the time to do this. Looks like I'm be building a custom AOKP for myself very soon
Looks like I have me a nice little project!
Sent from my Galaxy Nexus
tried to follow your guide but had to find a workaround I'm using 11.10 64bit, sdk and java jdk installed and working properly here's the error sorry for the huge output
"sudo apt-get install curl git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
[sudo] password for plagueis:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package lib32readline5-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
lib32readline-gplv2-dev
E: Package 'lib32readline5-dev' has no installation candidate
E: Unable to locate package gcc-4.3-multilib
E: Couldn't find any package by regex 'gcc-4.3-multilib'
E: Unable to locate package g++-4.3-multilib
E: Couldn't find any package by regex 'g++-4.3-multilib'
btw here's the howto I used combined with yours to get everything working on 11.10. http://forum.xda-developers.com/archive/index.php/t-1188298.html
vdub804 said:
tried to follow your guide but had to find a workaround I'm using 11.10 64bit, sdk and java jdk installed and working properly here's the error sorry for the huge output
"sudo apt-get install curl git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
[sudo] password for plagueis:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package lib32readline5-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
lib32readline-gplv2-dev
E: Package 'lib32readline5-dev' has no installation candidate
E: Unable to locate package gcc-4.3-multilib
E: Couldn't find any package by regex 'gcc-4.3-multilib'
E: Unable to locate package g++-4.3-multilib
E: Couldn't find any package by regex 'g++-4.3-multilib'
btw here's the howto I used combined with yours to get everything working on 11.10. http://forum.xda-developers.com/archive/index.php/t-1188298.html
Click to expand...
Click to collapse
Type this instead:
Code:
sudo apt-get install curl git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev gcc-4.3-multilib g++-4.3-multilib
Replacing lib32readline5-dev with lib32readline-gplv2-dev.
anybody can help me in getting this error when i downloading the source
Fetching projects: 99% (252/254) fatal: remote error:
AOKP/packages/apps/Mms is not a valid repository name
Email [email protected] for help
error: Cannot fetch AOKP/packages/apps/Mms
titto503 said:
anybody can help me in getting this error when i downloading the source
Fetching projects: 99% (252/254) fatal: remote error:
AOKP/packages/apps/Mms is not a valid repository name
Email [email protected] for help
error: Cannot fetch AOKP/packages/apps/Mms
Click to expand...
Click to collapse
try resync again, sometimes that error happens
also, passing -jX (where X is not the number of "cores" - it's the number of jobs that can be run by the cpu at the same time) is not very good for github's health. Do 'repo sync -j1'.
from gnu make wiki:
‘--jobs[=jobs]’
Specifies the number of recipes (jobs) to run simultaneously. With no argument, make runs as many recipes simultaneously as possible.
Click to expand...
Click to collapse
5.4 Parallel Execution
GNU make knows how to execute several recipes at once. Normally, make will execute only one recipe at a time, waiting for it to finish before executing the next. However, the ‘-j’ or ‘--jobs’ option tells make to execute many recipes simultaneously.
Click to expand...
Click to collapse
does this work for the maguro too? the unlocked version.
MrTechnikron said:
does this work for the maguro too? the unlocked version.
Click to expand...
Click to collapse
Well i have been trying, and I don't know if I have missed something or I'm just being a noob but this is what I am getting.
Code:
[email protected]:~$ cd aokp
[email protected]:~/aokp$ repo sync -j2
Fetching projects: 100% (254/254), done.
Syncing work tree: 100% (254/254), done.
[email protected]:~/aokp$ . build/envsetup.sh && lunch aokp_maguro-userdebug && make otapackage -j2
including device/hp/tenderloin/vendorsetup.sh
including device/htc/inc/vendorsetup.sh
including device/htc/supersonic/vendorsetup.sh
including device/htc/vivow/vendorsetup.sh
including device/moto/stingray/vendorsetup.sh
including device/moto/wingray/vendorsetup.sh
including device/samsung/crespo4g/vendorsetup.sh
including device/samsung/crespo/vendorsetup.sh
including device/samsung/maguro/vendorsetup.sh
including device/samsung/toro/vendorsetup.sh
including device/ti/panda/vendorsetup.sh
including vendor/aokp/vendorsetup.sh
including vendor/htc/vivow/vendorsetup.sh
including sdk/bash_completion/adb.bash
build/core/product_config.mk:196: *** _nic.PRODUCTS.[[vendor/aokp/products/otter.mk]]: "device/amazon/otter/device.mk" does not exist. Stop.
Device maguro not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Repository for maguro not found in the CyanogenMod Github repository list. If this is in error, you may need to manually add it to your local_manifest.xml.
build/core/product_config.mk:196: *** _nic.PRODUCTS.[[vendor/aokp/products/otter.mk]]: "device/amazon/otter/device.mk" does not exist. Stop.
** Don't have a product spec for: 'aokp_maguro'
** Do you have the right repo manifest?
[email protected]:~/aokp$
I don't enough about how this stuff works to diagnose whats going wrong. Hopefully someone can help because I would hate the 24 hours (yeah my connection is that bad) it took me to do the initial repo sync to be for nothing.
Cheers
cjward23 said:
Well i have been trying, and I don't know if I have missed something or I'm just being a noob but this is what I am getting.
Code:
[email protected]:~$ cd aokp
[email protected]:~/aokp$ repo sync -j2
Fetching projects: 100% (254/254), done.
Syncing work tree: 100% (254/254), done.
[email protected]:~/aokp$ . build/envsetup.sh && lunch aokp_maguro-userdebug && make otapackage -j2
including device/hp/tenderloin/vendorsetup.sh
including device/htc/inc/vendorsetup.sh
including device/htc/supersonic/vendorsetup.sh
including device/htc/vivow/vendorsetup.sh
including device/moto/stingray/vendorsetup.sh
including device/moto/wingray/vendorsetup.sh
including device/samsung/crespo4g/vendorsetup.sh
including device/samsung/crespo/vendorsetup.sh
including device/samsung/maguro/vendorsetup.sh
including device/samsung/toro/vendorsetup.sh
including device/ti/panda/vendorsetup.sh
including vendor/aokp/vendorsetup.sh
including vendor/htc/vivow/vendorsetup.sh
including sdk/bash_completion/adb.bash
build/core/product_config.mk:196: *** _nic.PRODUCTS.[[vendor/aokp/products/otter.mk]]: "device/amazon/otter/device.mk" does not exist. Stop.
Device maguro not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Repository for maguro not found in the CyanogenMod Github repository list. If this is in error, you may need to manually add it to your local_manifest.xml.
build/core/product_config.mk:196: *** _nic.PRODUCTS.[[vendor/aokp/products/otter.mk]]: "device/amazon/otter/device.mk" does not exist. Stop.
** Don't have a product spec for: 'aokp_maguro'
** Do you have the right repo manifest?
[email protected]:~/aokp$
I don't enough about how this stuff works to diagnose whats going wrong. Hopefully someone can help because I would hate the 24 hours (yeah my connection is that bad) it took me to do the initial repo sync to be for nothing.
Cheers
Click to expand...
Click to collapse
Hey man i figured that out and it worked but took like 6 hours to build. you have to install java six. if you already have it installed do it again because that is what happened to me.
---------- Post added at 06:02 PM ---------- Previous post was at 05:59 PM ----------
know i can't find where it downloaded to. it said it finished then i looked in the root folder and it was in there but i couldn't take it out of the root folder. so i cant get my rom.
i keep getting errors while trying to sync the repo...
Code:
[email protected]:~/aokp# repo init -u git://github.com/AOKP/platform_manifest.git -b master
... A new repo command ( 1.15) is available.
... You should upgrade soon:
cp /root/aokp/.repo/repo/repo /root/bin/repo
Your identity is: Nicholas W. <[email protected]>
If you want to change this, please re-run 'repo init' with --config-name
repo initialized in /root/aokp
[email protected]:~/aokp# repo sync -j1
... A new repo command ( 1.15) is available.
... You should upgrade soon:
cp /root/aokp/.repo/repo/repo /root/bin/repo
remote: Counting objects: 59553, done.
remote: Compressing objects: 100% (17905/17905), done.
error: RPC failed; result=18, HTTP code = 200B | 37 KiB/s
and this is happening everytime i try to sync
tnap1979 said:
i keep getting errors while trying to sync the repo...
and this is happening everytime i try to sync
Click to expand...
Click to collapse
Just do a "cp /root/aokp/.repo/repo/repo /root/bin/repo" and sync again.
EDIT:
Maybe some more explanation would be nice There is newer version of repo available. It has been downloaded to /root/aokp/.repo/repo/repo. So you manually have to copy the new repo file to the location of the older file. You do that with the command I mentioned above.
here is the result of the commands you mentioned
Code:
[email protected]:~$ sudo -i
[sudo] password for tnap1979:
[email protected]:~# cd ~/aokp
[email protected]:~/aokp# cp /root/aokp/.repo/repo/repo /root/bin/repo
[email protected]:~/aokp# repo init -u git://github.com/AOKP/platform_manifest.git -b master
Your identity is: Nicholas W. <[email protected]>
If you want to change this, please re-run 'repo init' with --config-name
repo initialized in /root/aokp
[email protected]:~/aokp# repo sync -j2
remote: Counting objects: 59553, done.
remote: Compressing objects: 100% (17905/17905), done.
Fetching projects: 4% (12/297) Receiving objects: 0% (182/59553), 44.00 KiBerror: RPC failed; result=18, HTTP code = 200KiB | 5 KiB/s
error: The requested URL returned error: 403 while accessing https://android.googlesource.com/device/generic/goldfish/info/refs
fatal: HTTP request failed
EDIT: also to clarify, im running 10.04 ubuntu LTS 64bit on a core i5-430m 2.26ghz 8gb ddr3 on a 160gb hd with a clean updated ubuntu install as per the tutorial also and ive followed every step in the tutorial except for the java sdk, i had to manually install oracle java 7 jdk as i kept getting errors trying to install java according to the tutorial
---------- Post added at 06:32 AM ---------- Previous post was at 06:13 AM ----------
here is the most recent errors...
this is frustrating me to high hell... and its not my internet i know that....
Code:
[email protected]:~$ sudo -i
[sudo] password for tnap1979:
[email protected]:~# cd ~/aokp
[email protected]:~/aokp# cp /root/aokp/.repo/repo/repo /root/bin/repo
[email protected]:~/aokp# repo sync
remote: Counting objects: 59553, done.
remote: Compressing objects: 100% (17905/17905), done.
Fetching projects: 5% (15/297) Receiving objects: 0% (120/59553), 36.00 KiBException in thread Thread-18:59553), 460.00 KiB | 52 KiB/s
Traceback (most recent call last):
File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
self.run()
File "/usr/lib/python2.6/threading.py", line 484, in run
self.__target(*self.__args, **self.__kwargs)
File "/root/aokp/.repo/repo/subcmds/sync.py", line 200, in _FetchHelper
clone_bundle=not opt.no_clone_bundle)
File "/root/aokp/.repo/repo/project.py", line 978, in Sync_NetworkHalf
and self._ApplyCloneBundle(initial=is_new, quiet=quiet):
File "/root/aokp/.repo/repo/project.py", line 1519, in _ApplyCloneBundle
exist_dst = self._FetchBundle(bundle_url, bundle_tmp, bundle_dst, quiet)
File "/root/aokp/.repo/repo/project.py", line 1583, in _FetchBundle
raise DownloadError('%s: %s ' % (req.get_host(), str(e)))
DownloadError: github.com: <urlopen error [Errno -2] Name or service not known>
remote: Counting objects: 1725, done.
remote: Compressing objects: 100% (790/790), done.
remote: Counting objects: 89, done.
remote: Compressing objects: 100% (62/62), done.
error: RPC failed; result=18, HTTP code = 200B | 46 KiB/s
error: RPC failed; result=18, HTTP code = 200B | 26 KiB/s
error: The requested URL returned error: 403 while accessing http://github.com/AOKP/android_device_htc_inc/info/refs
fatal: HTTP request failed
I'm not sure about the error, but I do know you should never perform any of these actions as root! So I'd suggest to start again, repeat all steps, but without the 'sudo'.
Edit:
Your build system is fine, however, you could be getting an error when -in the next step- you're gonna build with java7. But that's easy to overcome (just comment out the check in one of the make files).
I really think the errors you're getting now are caused by sudo.
what's the average time for build on a good machine?
i have a q9650 quadcore at 4ghz with 4gb ram and a raid0 array, it took around 35 minutes for a full aokp build for my maguro.
i flashed it and works fine but i thought it should take like 4/5 hours..
etoy said:
what's the average time for build on a good machine?
i have a q9650 quadcore at 4ghz with 4gb ram and a raid0 array, it took around 35 minutes for a full aokp build for my maguro.
i flashed it and works fine but i thought it should take like 4/5 hours..
Click to expand...
Click to collapse
Sounds about right. For comparison: on my i3 dual core it takes about 1.5 hours, on my i7 quadcore about 40 minutes, and on CMs build servers with dual Xeon X5675's, 12 cores and 32gb ram it takes about 9 minutes. But for us 'normal' people, everything between 30mins and 2 hours is normal
wow, great then! i thought there was some error giving such short build time. wanted to leave the pc building overnight but if it takes only 35 mins i can easily make mods and check if they work within an hour or even less. looks like my 3 years old gaming rig has still got enough muscles for ICS
this is for those who are having trouble getting java 6 jdk
https://github.com/flexiondotorg/oab-java6
follow that and you should have a working java 6 jdk installed in ubuntu 10.04
apparently the jdk was removed from the apt-get sources due to some stupid licensing issues from oracle
tnap1979 said:
this is for those who are having trouble getting java 6 jdk
https://github.com/flexiondotorg/oab-java6
follow that and you should have a working java 6 jdk installed in ubuntu 10.04
apparently the jdk was removed from the apt-get sources due to some stupid licensing issues from oracle
Click to expand...
Click to collapse
i used this guide to update jdk to 1.6.0_31 on both mint 12 (which has already jdk 1.6.0_26) and ubuntu 10.04/11.10, worked fine for each of them.
http://askubuntu.com/questions/67909/how-do-i-install-oracles-jdk-6
etoy said:
wow, great then! i thought there was some error giving such short build time. wanted to leave the pc building overnight but if it takes only 35 mins i can easily make mods and check if they work within an hour or even less. looks like my 3 years old gaming rig has still got enough muscles for ICS
Click to expand...
Click to collapse
It takes me 11 minutes on an i7-2600 and 16gb of ram
I know a lot of this has been posted before in other locations, but recently I have found some of that data to be incomplete when I was building a custom kernel for my GNex, so just bear with me.
--The Build Environment--
Operating System: Xubuntu 12.04 x86 (I haven't tested it on the x64 version yet)
Dependencies: (using sudo-apt get install)
Code:
git git-core gnupg flex bison gperf build-essential zip hexdump gedit \
curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 gcc \
libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib \
mingw32 tofrodos
Other Files Needed:
unpack-mkbootimg - Which I have forked from work4blue@github.
You can grab the modified version from: https://github.com/ClimberTy/unpack-mkbootimg.git
The mkbootimg.c has been modified to fix the default load addresses of the kernel with the GNex (See below for more details).
Android SDK - You just need the Android Debug Bridge (ADB) from the SDK.
Or you can grab a toolkit from here: http://forum.xda-developers.com/showthread.php?t=1848036 for a script that will get you the files you need (Internet connection required).
Needed:
Samsung Galaxy Nexus Prime (I9250)
The GNex Bootloader to be Unlocked (http://www.android.gs/how-to-unlock-galaxy-nexus-bootloader/)
Kernel files (See Kernel Source area for locations)
ADB and Fastboot
ARM Cross Compiler - grab from here. NOTE: You'll need the ARM EABI Release. You can also get the ARM Cross Compiler by following the "Downloading a prebuilt gcc" instructions from Google as well.
Place either of these ARM Compilers in the folder you are using to build your KERNELSOURCE.
Linux USB Driver Rules:
Open Terminal and type:
Code:
$ vim /etc/udev/rules.d/70-android.rules
You can use gEdit if you prefer.
Paste in (Ensuring that <username> is the name of your Linux profile):
Code:
# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"
# adb protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"
# adb protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"
# fastboot protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"
# fastboot protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"
# adb protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="<username>"
# adb protocol on grouper/tilapia (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0600", OWNER="<username>"
# fastboot protocol on grouper/tilapia (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0600", OWNER="<username>"
# adb protocol on manta (Nexus 10)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0600", OWNER="<username>"
# fastboot protocol on manta (Nexus 10)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0600", OWNER="<username>"
Kernel Source:
It is important that you make separate folders to put everything in. Keeping the DEV area organized will help out in the long run.
Code:
$ mkdir -p ~/Documents/Kernel/Source
CyanogenMod 10.1 Kernel from GitHub
Google's Android Kernel (See Downloading Android Kernel section below for more details)
Downloading the Android Kernel:
To download the kernel directly from Google enter in these commands.
Code:
$ git clone https://android.googlesource.com/kernel/omap.git
$ cd omap/
$ git branch -a
What you'll see in response:
Code:
* master
remotes/origin/HEAD -> origin/master
remotes/origin/android-omap-3.0
remotes/origin/android-omap-panda-3.0
remotes/origin/android-omap-steelhead-3.0-ics-aah
remotes/origin/android-omap-tuna-3.0
remotes/origin/android-omap-tuna-3.0-ics-mr1
remotes/origin/android-omap-tuna-3.0-jb-mr0
remotes/origin/android-omap-tuna-3.0-jb-mr1
remotes/origin/android-omap-tuna-3.0-jb-mr1.1
remotes/origin/android-omap-tuna-3.0-jb-pre1
remotes/origin/android-omap-tuna-3.0-mr0
remotes/origin/android-omap-tuna-3.0-mr0.1
remotes/origin/linux-omap-3.0
remotes/origin/master
remotes/origin/sph-l700-fh05
To grab the (at this time) latest Jellybean source:
Code:
$ git checkout remotes/origin/android-omap-tuna-3.0-jb-mr1.1
Otherwise just use:
Code:
$ git clone https://github.com/CyanogenMod/android_kernel_samsung_tuna.git
--Building the Kernel--
In the ~/Documents/Kernel/KERNELSOURCE (varies depending on which kernel you downloaded. For this build I used android_kernel_samsung_tuna-jb as my source directory. The ARM Cross Compiler that I downloaded from the CodeSourcery site is located inside this folder.
In the terminal type:
Code:
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=/home/user/Documents/Kernel/KERNELSOURCE/arm-2011.03/bin/arm-none-eabi-
$ make tuna_defconfig
$ make
NOTE: The [...]/arm-none-eabi- is how it is supposed to be.
Now go grab some lunch or drink a beer or two, it could take about 30-45 mins to compile. You'll know when it is finished when you see:
Code:
OBJCOPY arch/arm/boot/Image
Kernel: arch/arm/boot/Image is ready
AS arch/arm/boot/compressed/head.o
GZIP arch/arm/boot/compressed/piggy.gzip
AS arch/arm/boot/compressed/piggy.gzip.o
CC arch/arm/boot/compressed/misc.o
CC arch/arm/boot/compressed/decompress.o
SHIPPED arch/arm/boot/compressed/lib1funcs.S
AS arch/arm/boot/compressed/lib1funcs.o
LD arch/arm/boot/compressed/vmlinux
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
Building modules, stage 2.
MODPOST 4 modules
CC crypto/ansi_cprng.mod.o
LD [M] crypto/ansi_cprng.ko
CC drivers/rpmsg/rpmsg_client_sample.mod.o
LD [M] drivers/rpmsg/rpmsg_client_sample.ko
CC drivers/rpmsg/rpmsg_server_sample.mod.o
LD [M] drivers/rpmsg/rpmsg_server_sample.ko
CC drivers/scsi/scsi_wait_scan.mod.o
LD [M] drivers/scsi/scsi_wait_scan.ko
The zImage is what we need because it is the compressed Linux kernel. Note the path of where the zImage is located. We also need the *.ko files (Kernel Modules). Remember their paths because you'll need to create those same paths later when you rebuild the kernel. Probably best to move these files to a new folder, I have used /home/user/Documents/Kernel/CompiledKernel/.
--Backing Up the Original Kernel--
It is important that we save a backup of the original kernel just in case there are errors in the kernel you are creating and we need to revert. Each device has their images saved in somwhat similar spots but they can change depending on device or OS.
Before these images were located on /proc/mnt location but with this model/OS they are stored elsewhere. Your phone will most likely need to be rooted prior to this operation. So either push the SuperUser app to your phone or grab Koushik Dutta's version from ROM Manager in ClockworkMod (http://download.clockworkmod.com/test/superuser-2.zip).
How to grab the images:
Code:
$ adb shell
$ su
$ ls -l /dev/block/platform/omap/omap_hsmmc.0/by-name
Result:
Code:
lrwxrwxrwx root root 2013-02-20 06:38 boot -> /dev/block/mmcblk0p7
lrwxrwxrwx root root 2013-02-20 06:38 cache -> /dev/block/mmcblk0p11
lrwxrwxrwx root root 2013-02-20 06:38 dgs -> /dev/block/mmcblk0p6
lrwxrwxrwx root root 2013-02-20 06:38 efs -> /dev/block/mmcblk0p3
lrwxrwxrwx root root 2013-02-20 06:38 metadata -> /dev/block/mmcblk0p13
lrwxrwxrwx root root 2013-02-20 06:38 misc -> /dev/block/mmcblk0p5
lrwxrwxrwx root root 2013-02-20 06:38 param -> /dev/block/mmcblk0p4
lrwxrwxrwx root root 2013-02-20 06:38 radio -> /dev/block/mmcblk0p9
lrwxrwxrwx root root 2013-02-20 06:38 recovery -> /dev/block/mmcblk0p8
lrwxrwxrwx root root 2013-02-20 06:38 sbl -> /dev/block/mmcblk0p2
lrwxrwxrwx root root 2013-02-20 06:38 system -> /dev/block/mmcblk0p10
lrwxrwxrwx root root 2013-02-20 06:38 userdata -> /dev/block/mmcblk0p12
lrwxrwxrwx root root 2013-02-20 06:38 xloader -> /dev/block/mmcblk0p1
We need to backup the boot and recovery images.
Copying the Android Images:
Code:
cat /dev/block/mmcblk0p7 > /sdcard/boot
cat /dev/block/mmcblk0p8 > /sdcard/recovery
Pulling the Images Off the Device:
Code:
$ dab pull /sdcard/IMAGE_NAME ~/Documents/Kernel/OriginalKernel/
NOTE: This assumes you have this folder already created.
--Unpacking the Kernel--
Splitting the Image:
Using the unpack-mkbootimg-master kit you can split the image by using the ./unpackbootimg binary. The command is:
Code:
$ ./unpackbootimg -i ~/Documents/Kernel/OriginalKernel/boot
The results should be similar to this:
Code:
BOARD_KERNEL_CMDLINE
BOARD_KERNEL_BASE 80000000
BOARD_OAGE_SIZE 2048
The output files in your unpack-mkbootimg-master folder should be similar to this:
Code:
drwxrwxr-x 4 user user 4.0K Mar 3 11:22 .
drwxr-xr-x 3 user user 4.0K Mar 3 11:15 ..
-rw-rw-r-- 1 user user 9 Mar 3 11:22 boot-base
-rw-rw-r-- 1 user user 1 Mar 3 11:22 boot-cmdline
-rw-rw-r-- 1 user user 2.9K Feb 28 18:00 bootimg.h
-rw-rw-r-- 1 user user 5 Mar 3 11:22 boot-pagesize
-rw-rw-r-- 1 user user 344K Mar 3 11:22 boot-ramdisk.gz
-rw-rw-r-- 1 user user 4.0M Mar 3 11:22 boot-zImage
drwxrwxr-x 2 user user 4.0K Mar 3 11:15 libmincrypt
-rw-rw-r-- 1 user user 7.3K Mar 3 11:15 libmincrypt.a
-rwxr-xr-x 1 user user 622 Feb 28 18:00 Makefile
drwxrwxr-x 2 user user 4.0K Feb 28 18:00 mincrypt
-rwxrwxr-x 1 user user 789K Mar 3 11:15 mkbootimg
-rw-rw-r-- 1 user user 7.4K Feb 28 18:00 mkbootimg.c
-rw-rw-r-- 1 user user 8.5K Mar 3 11:15 mkbootimg.o
-rw-rw-r-- 1 user user 1.1K Feb 28 18:00 README
-rwxrwxr-x 1 user user 789K Mar 3 11:15 unpackbootimg
-rw-rw-r-- 1 user user 3.9K Feb 28 18:00 unpackbootimg.c
-rw-rw-r-- 1 user user 6.6K Mar 3 11:15 unpackbootimg.o
NOTE: This is for the Samsung Galaxy Nexus (Maguro & Tuna, possibly Toro & Toroplus)
A simple hexdump (using "hex dump -n 40") of the boot image from the GNex phone should give us the results of:
Code:
0000000 41 4e 44 52 4f 49 44 21 68 54 3f 00 00 80 00 80
0000010 4d 5c 05 00 00 00 00 81 00 00 00 00 00 00 f0 80
0000020 00 01 00 80 00 08 00 00
0000028
Results may vary between Android versions. These numbers will help us in verifying that your kernel that you're creating is indeed correct.
What is needed to be taken away from this is the so called "Android Magic" which are the first four bytes of data in the hex dump.
Code:
Android Magic = 4e41 5244 494f 2144
The next two bytes are the kernel size, in this case (0x5468 0x003f).
The rest of the byes are as follows:
Code:
Kernel Base = 8000 8000
Ramdisk Address = 8100 0000
Secondary Address = 80f0 0000
Tags Address = 8000 0100
These values are what I had to change in the mkbootimg application in the unpack-mkbootimg-master. Otherwise the kernel images would be off and they would not load correctly on the device. Look at https://github.com/ClimberTy/unpack-mkbootimg/blob/master/mkbootimg.c for more details.
Splitting the Ramdisk
For organizations sake move the boot-* files to a new folder. From here we need to open the boot-ramdisk.gz.
Code:
$ mkdir UnpackedKernel
$ mv boot-* UnpackedKernel/
$ cd UnpackedKernel/
$ gunzip -c boot-ramdisk.gz | cpio -i
This splits open the boot-ramdisk.gz file so we can place our newly created kernel modules (anything listed as .KO) in their appropriate folders or make modifications to any of the other files in the UnpackedKernel/ folder.
Remember these, we'll need them later.
--Rebuilding the Kernel--
After making the modifications and placing the kernel modules in the UnpackedKernel/ folders . Again you may need to create the directories for these kernel module locations. See your compiled kernel printout for the correct paths. Now that everything is in place you need to rebuild the boot-ramdisk.gz:
Code:
$ pwd
[…]/UnpackedKernel/
$ find . | cpio -o -H newc | gzip > ../newramdisk.cpio.gz
$ cd ..
Now copy in the /CompiledKernel/zImage into the /unpack-mkbootimg-master/ folder and run this command to build the kernel:
Code:
$ ./mkbootimg --kernel zImage --ramdisk newramdisk.cpio.gz --base 80000000 --pagesize 2048 -o newKernel.img
Now to verify that the compiled kernel is right on par with the original kernel you need to do a hexdump.
Code:
$ hex dump -n 40 newKernel.img
Should print out results similar to this:
Code:
0000000 4e41 5244 494f 2144 cee4 0044 8000 8000
0000010 3e08 004b 0000 8100 0000 0000 0000 80f0
0000020 0100 8000 0800 0000
0000028
And as you can see all the addresses line up as they should, the only thing that should have changed is the kernel size which is expected.
--Test Flashing to the Device--
Move your newKernel.img image file into its own folder (e.g. ~/Documents/Kernel/NewKernel/) then put your device into the recovery mode to test and see if it boots, if it doesn't then "wash, rinse, and repeat".
To put your device into recovery mode, first power it off then power it back on and immediately hold down the POWER, VOLUME UP and VOLUME DOWN buttons. Select RECOVERY from the menu and press POWER to enter.
Code:
$ fastboot flash boot ~/Documents/Kernel/NewKernel/newKernel.img
$ fastboot reboot
Wait a few seconds till it boots up. If you don't receive any device response after a minute or so then put your phone back into recovery and flash the original kernel. If it works then, congratulations! If not try, try rebuilding it again and verifying you have the correct addresses or all the kernel modules installed properly.
Could not be explained better .... thanks a lot ... have included the link to your guide into my thread. :good:
Amazing job dude! Thanks for the TUT. Maybe one time in my free life time... I will try something :good:
Seems very good (because Anarkia sad it :victory: ) ... but my english is bad ...
COULD YOU translate it in german language, please ?
JOOOOKE :laugh:
Thank you for you work :good: :highfive:
Thanks for this great tutorial... Just opening a thread with all that useful info and such excellently organized need a lot of time...
Sent from my Galaxy Nexus using Tapatalk 2
salahmed said:
Thanks for this great tutorial... Just opening a thread with all that useful info and such excellently organized need a lot of time...
Sent from my Galaxy Nexus using Tapatalk 2
Click to expand...
Click to collapse
Thanks I just got tired of trying to outsource my info through so many different sites, not to mention the conflicting or out of date information.
bvt-1 said:
JOOOOKE :laugh:
Click to expand...
Click to collapse
Good show ol' chap!
anarkia1976 said:
Could not be explained better .... thanks a lot ... have included the link to your guide into my thread. :good:
Click to expand...
Click to collapse
Thanks, I appreciate the work you guys are doing as well. Maybe one day I'll step up and do some ROM development and write a better tutorial about that as well. But for now I am happy just doing the kernel work.
Great guide , all the info I need in one thread , I got this one tagged
Sent from my Galaxy Nexus using Xparent Cyan Tapatalk 2
Climber Ty said:
Thanks, I appreciate the work you guys are doing as well. Maybe one day I'll step up and do some ROM development and write a better tutorial about that as well. But for now I am happy just doing the kernel work.
Click to expand...
Click to collapse
I think a tutorial for create a modded ROM step by step will be a great job for xda community. :thumbup:
Sent from my Galaxy Nexus using xda app-developers app
I always get the same error, no matter which toolchain I try
Any suggestions?
See screenshot..
t0wlie said:
I always get the same error, no matter which toolchain I try
Any suggestions?
See screenshot..
Click to expand...
Click to collapse
Your path is wrong.
Wrote "export" on terminal and verify.
Copy complete link from export and do:
ll <complite link>
If there is an error your path is wrong.
[email protected]:~/Dokumente/Kernel/maguro/omap$ make
make: /home/marc/Dokumente/Kernel/maguro/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: Kommando nicht gefunden
CHK include/linux/version.h
CHK include/generated/utsrelease.h
make[1]: »include/generated/mach-types.h« ist bereits aktualisiert.
CC kernel/bounds.s
/bin/sh: 1: /home/marc/Dokumente/Kernel/maguro/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: not found
make[1]: *** [kernel/bounds.s] Fehler 127
make: *** [prepare0] Fehler 2
[email protected]:~/Dokumente/Kernel/maguro/omap$ ll /home/marc/Dokumente/Kernel/maguro/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc
-rwxr-xr-x 1 marc marc 323104 Dez 4 10:58 /home/marc/Dokumente/Kernel/maguro/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc*
[email protected]:~/Dokumente/Kernel/maguro/omap$
t0wlie said:
I always get the same error, no matter which toolchain I try
Any suggestions?
See screenshot..
Click to expand...
Click to collapse
t0wlie said:
[email protected]:~/Dokumente/Kernel/maguro/omap$ make
make: /home/marc/Dokumente/Kernel/maguro/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: Kommando nicht gefunden
CHK include/linux/version.h
CHK include/generated/utsrelease.h
make[1]: »include/generated/mach-types.h« ist bereits aktualisiert.
CC kernel/bounds.s
/bin/sh: 1: /home/marc/Dokumente/Kernel/maguro/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: not found
make[1]: *** [kernel/bounds.s] Fehler 127
make: *** [prepare0] Fehler 2
[email protected]:~/Dokumente/Kernel/maguro/omap$ ll /home/marc/Dokumente/Kernel/maguro/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc
-rwxr-xr-x 1 marc marc 323104 Dez 4 10:58 /home/marc/Dokumente/Kernel/maguro/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc*
[email protected]:~/Dokumente/Kernel/maguro/omap$
Click to expand...
Click to collapse
Can you post export command please.
You can try to modify:
/arm-linux-androideabi-gcc
to
/arm-linux-androideabi-
I tried (on antoher user)
export PATH=/home/marc/Dokumente/Kernel/maguro/prebuilt/linux-x86/bin:$PATH
export CROSS_COMPILE=/home/marc/Dokumente/Kernel/maguro/prebuilt/linux-x86/bin/arm-linux-androideabi-
make: /home/marc/Dokumente/Kernel/maguro/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: Kommando nicht gefunden
CHK include/linux/version.h
CHK include/generated/utsrelease.h
make[1]: »include/generated/mach-types.h« ist bereits aktualisiert.
CC kernel/bounds.s
/bin/sh: 1: /home/marc/Dokumente/Kernel/maguro/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: not found
make[1]: *** [kernel/bounds.s] Fehler 127
make: *** [prepare0] Fehler 2
Try using the CodeSourcery ARM Compilers instead of the prebuilts (http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/). The version you want are the EABI release under the ARM Processors section. These compilers haven't failed me once since I've used them. Let me know if that works for you.
Thank you so much for this guide! I've been compiling my own ROM for a while now, and I feel like taking another step in development, by building my own kernel. I'm running into the following make error(s) though. I'm completely new to kernel development, so I figured I'd fire out my questions here, and hope that you guys can help me out. Below is my entire build environment (as far as I could get) - from the 'mkdir' commands to the *make* errors I'm experiencing... As you'll see, I haven't gotten very far, so I'm clearly doing something wrong at an elementary level. Any help would be appreciated. :good:
Code:
[email protected]:~$ mkdir Blowfish
[email protected]:~$ cd Blowfish
[email protected]:~/Blowfish$ mkdir kernel
[email protected]:~/Blowfish$ cd kernel
[email protected]:~/Blowfish/kernel$ mkdir source
[email protected]:~/Blowfish/kernel$ cd kerne
bash: cd: kerne: No such file or directory
[email protected]:~/Blowfish/kernel$ cd kernel
bash: cd: kernel: No such file or directory
[email protected]:~/Blowfish/kernel$ git clone https://android.googlesource.com/kernel/omap.git
Cloning into 'omap'...
remote: Sending approximately 439.05 MiB ...
remote: Counting objects: 64780, done
remote: Finding sources: 100% (18264/18264)
remote: Getting sizes: 100% (2126/2126)
remote: Compressing objects: 99% (26370/26371)
remote: Total 2138198 (delta 1785247), reused 2137592 (delta 1785041)
Receiving objects: 100% (2138198/2138198), 446.32 MiB | 340 KiB/s, done.
Resolving deltas: 100% (1786095/1786095), done.
[email protected]:~/Blowfish/kernel$ cd omap
[email protected]:~/Blowfish/kernel/omap$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/android-omap-3.0
remotes/origin/android-omap-panda-3.0
remotes/origin/android-omap-steelhead-3.0-ics-aah
remotes/origin/android-omap-tuna-3.0
remotes/origin/android-omap-tuna-3.0-ics-mr1
remotes/origin/android-omap-tuna-3.0-jb-mr0
remotes/origin/android-omap-tuna-3.0-jb-mr1
remotes/origin/android-omap-tuna-3.0-jb-mr1.1
remotes/origin/android-omap-tuna-3.0-jb-pre1
remotes/origin/android-omap-tuna-3.0-mr0
remotes/origin/android-omap-tuna-3.0-mr0.1
remotes/origin/glass-omap-xrr02
remotes/origin/glass-omap-xrr35
remotes/origin/glass-omap-xrr64b
remotes/origin/linux-omap-3.0
remotes/origin/master
remotes/origin/sph-l700-fh05
[email protected]:~/Blowfish/kernel/omap$ git checkout remotes/origin/android-omap-tuna-3.0-jb-pre1
Checking out files: 100% (37659/37659), done.
Note: checking out 'remotes/origin/android-omap-tuna-3.0-jb-pre1'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b new_branch_name
HEAD is now at e8de0e2... video: sii9234: dynamically register and unregister input device
[email protected]:~/Blowfish/kernel/omap$ export ARCH=arm
[email protected]:~/Blowfish/kernel/omap$ export SUBARCH=arm
[email protected]:~/Blowfish/kernel/omap$ export CROSS_COMPILE='/home/jjhiza/Blowfish/arm-2013.05-23-arm-none-eabi.bin'
[email protected]:~/Blowfish/kernel/omap$ make tuna_deconfig
HOSTCC scripts/basic/fixdep
make[1]: *** No rule to make target `tuna_deconfig'. Stop.
make: *** [tuna_deconfig] Error 2
[email protected]:~/Blowfish/kernel/omap$ make
make: /home/jjhiza/Blowfish/arm-2013.05-23-arm-none-eabi.bingcc: Command not found
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/lex.zconf.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf --silentoldconfig Kconfig
***
*** Configuration file ".config" not found!
***
*** Please run some configurator (e.g. "make oldconfig" or
*** "make menuconfig" or "make xconfig").
***
make[2]: *** [silentoldconfig] Error 1
make[1]: *** [silentoldconfig] Error 2
make: *** No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'. Stop.
[email protected]:~/Blowfish/kernel/omap$
jjhiza said:
Code:
[email protected]:~/Blowfish/kernel/omap$ git checkout remotes/origin/android-omap-tuna-3.0-jb-pre1
Checking out files: 100% (37659/37659), done.
Note: checking out 'remotes/origin/android-omap-tuna-3.0-jb-pre1'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b new_branch_name
HEAD is now at e8de0e2... video: sii9234: dynamically register and unregister input device
[email protected]:~/Blowfish/kernel/omap$ export ARCH=arm
[email protected]:~/Blowfish/kernel/omap$ export SUBARCH=arm
[email protected]:~/Blowfish/kernel/omap$ export CROSS_COMPILE='/home/jjhiza/Blowfish/arm-2013.05-23-arm-none-eabi.bin'
[email protected]:~/Blowfish/kernel/omap$ make tuna_deconfig
HOSTCC scripts/basic/fixdep
make[1]: *** No rule to make target `tuna_deconfig'. Stop.
make: *** [tuna_deconfig] Error 2
[email protected]:~/Blowfish/kernel/omap$ make
make: /home/jjhiza/Blowfish/arm-2013.05-23-arm-none-eabi.bingcc: Command not found
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/lex.zconf.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf --silentoldconfig Kconfig
***
*** Configuration file ".config" not found!
***
*** Please run some configurator (e.g. "make oldconfig" or
*** "make menuconfig" or "make xconfig").
***
make[2]: *** [silentoldconfig] Error 1
make[1]: *** [silentoldconfig] Error 2
make: *** No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'. Stop.
[email protected]:~/Blowfish/kernel/omap$
Click to expand...
Click to collapse
I have run into this issue before, and I believe what I did to solve this was delete all the files in the build directory and re-git them from a specific branch. For example building ICS I used:
Code:
$ git branch -a
$ git checkout remotes/origin/android-omap-tuna-3.0-ics-mr1
Try it and see if that works for your JB files. I think for you it's:
Code:
$ git checkout remotes/origin/android-omap-tuna-3.0-jb-mr1.1
jjhiza said:
Thank you so much for this guide! I've been compiling my own ROM for a while now, and I feel like taking another step in development, by building my own kernel. I'm running into the following make error(s) though. I'm completely new to kernel development, so I figured I'd fire out my questions here, and hope that you guys can help me out. Below is my entire build environment (as far as I could get) - from the 'mkdir' commands to the *make* errors I'm experiencing... As you'll see, I haven't gotten very far, so I'm clearly doing something wrong at an elementary level. Any help would be appreciated. :good:
Code:
[email protected]:~$ mkdir Blowfish
[email protected]:~$ cd Blowfish
[email protected]:~/Blowfish$ mkdir kernel
[email protected]:~/Blowfish$ cd kernel
[email protected]:~/Blowfish/kernel$ mkdir source
[email protected]:~/Blowfish/kernel$ cd kerne
bash: cd: kerne: No such file or directory
[email protected]:~/Blowfish/kernel$ cd kernel
bash: cd: kernel: No such file or directory
[email protected]:~/Blowfish/kernel$ git clone https://android.googlesource.com/kernel/omap.git
Cloning into 'omap'...
remote: Sending approximately 439.05 MiB ...
remote: Counting objects: 64780, done
remote: Finding sources: 100% (18264/18264)
remote: Getting sizes: 100% (2126/2126)
remote: Compressing objects: 99% (26370/26371)
remote: Total 2138198 (delta 1785247), reused 2137592 (delta 1785041)
Receiving objects: 100% (2138198/2138198), 446.32 MiB | 340 KiB/s, done.
Resolving deltas: 100% (1786095/1786095), done.
[email protected]:~/Blowfish/kernel$ cd omap
[email protected]:~/Blowfish/kernel/omap$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/android-omap-3.0
remotes/origin/android-omap-panda-3.0
remotes/origin/android-omap-steelhead-3.0-ics-aah
remotes/origin/android-omap-tuna-3.0
remotes/origin/android-omap-tuna-3.0-ics-mr1
remotes/origin/android-omap-tuna-3.0-jb-mr0
remotes/origin/android-omap-tuna-3.0-jb-mr1
remotes/origin/android-omap-tuna-3.0-jb-mr1.1
remotes/origin/android-omap-tuna-3.0-jb-pre1
remotes/origin/android-omap-tuna-3.0-mr0
remotes/origin/android-omap-tuna-3.0-mr0.1
remotes/origin/glass-omap-xrr02
remotes/origin/glass-omap-xrr35
remotes/origin/glass-omap-xrr64b
remotes/origin/linux-omap-3.0
remotes/origin/master
remotes/origin/sph-l700-fh05
[email protected]:~/Blowfish/kernel/omap$ git checkout remotes/origin/android-omap-tuna-3.0-jb-pre1
Checking out files: 100% (37659/37659), done.
Note: checking out 'remotes/origin/android-omap-tuna-3.0-jb-pre1'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b new_branch_name
HEAD is now at e8de0e2... video: sii9234: dynamically register and unregister input device
[email protected]:~/Blowfish/kernel/omap$ export ARCH=arm
[email protected]:~/Blowfish/kernel/omap$ export SUBARCH=arm
[email protected]:~/Blowfish/kernel/omap$ export CROSS_COMPILE='/home/jjhiza/Blowfish/arm-2013.05-23-arm-none-eabi.bin'
[email protected]:~/Blowfish/kernel/omap$ make tuna_deconfig
HOSTCC scripts/basic/fixdep
make[1]: *** No rule to make target `tuna_deconfig'. Stop.
make: *** [tuna_deconfig] Error 2
[email protected]:~/Blowfish/kernel/omap$ make
make: /home/jjhiza/Blowfish/arm-2013.05-23-arm-none-eabi.bingcc: Command not found
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/lex.zconf.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf --silentoldconfig Kconfig
***
*** Configuration file ".config" not found!
***
*** Please run some configurator (e.g. "make oldconfig" or
*** "make menuconfig" or "make xconfig").
***
make[2]: *** [silentoldconfig] Error 1
make[1]: *** [silentoldconfig] Error 2
make: *** No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'. Stop.
[email protected]:~/Blowfish/kernel/omap$
Click to expand...
Click to collapse
If you haven't had luck figuring out the problem , you need to add a hyphen at the end of your toolchain , so it would be
" export CROSS_COMPILE=~/home/jjhiza/Blowfish/arm-2013.05-23-arm-none-eabi- "
that just tells it to use all the binary files that start with eabi-
Sent from my Galaxy Nexus using Tapatalk
Climber Ty said:
I know a lot of this has been posted before in other locations, but recently I have found some of that data to be incomplete when I was building a custom kernel for my GNex, so just bear with me.
Click to expand...
Click to collapse
Dude, this tutorial is f'king amazing.
For some odd reason, my kernel will boot and run just fine temporarily using the "fastboot boot" command, but I get write errors when trying to "fastboot flash" it, and flashing the new kernel fails. I've tried in xubuntu 12.04 x86, Windows 7 x64 using command line and Windows x64 using Wug's Nexus toolkit.
Any ideas?
I tried repacking the ROM that I'm using (Shiny 4.3 10/11/13 build) with my kernel and reflashing it, but no joy. I'm sure there's more to making kernel into a flashable .zip than I realize...
Hello guys since there is no Cyanogenmod for this device only an custom recovery (no custom roms) or any really development except for stripping stockrom and tweaking it a bit i decided to make it for an friend and since 3 people of my class have this phone i am founding it pretty an unstable phone with all the stock crap bloatware.
I could make my friends phone hang with whatsapp spamming messages what is pretty pathetic.
So i contacted Corsicanu for the sourcecode of recovery what is an very important piece of the source code for not to brick you people´s phone and i also received some in/complete source code from adytzu33. I am trying to make the compiling work i am almost done with making it to completely work but i don´t have always time so if you can fix everything by yourself do it and upload it to here so i can adjust the guide for future developers for the fame. Watchout cause this sourcecode is for the galaxy fame p s6810p so far as i know.
If my tutorial broke yourphone from flashing an build then its not my fault
Check good or the partitions are good before flashing. Since i dont have the phone i cant test it.
Preparation:
What you need for building.
An decent PC with enough space i recommend like 80gb
Internet connection
Time and Patience
Up to date running Ubuntu/linux system i am using 14.04
IMPORTANT: INSTALL EVERYTHING AS A NORMAL USER. DON'T INSTALL AS ROOT!
Installation of the required packages to compile:
Code:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
python-markdown libxml2-utils schedtool pngcrush xsltproc zlib1g-dev:i386
Settings the links to the files:
Code:
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Step 2 Installing java:
You need the java development kit for building cm10 the most recommended is the one from sun jdk 6 update 38.
1. Download the jdk-6u38-linux-i586.bin from the Oracle/Sun Java Download Area. If you are on 64-bit Ubuntu as I am, you should grab jdk-6u38-linux-x64.bin
http://www.mediafire.com/download/wyb4xmxbsb7pabm/jdk-6u38-linux-x64.bin (mirror for 64bit)
2. Go to your Download location and execute this command below.
Code:
chmod +x jdk-6u38-linux-x64.bin
3. Extract the bin file:
Code:
$ ./jdk-6u38-linux-x64.bin
4. Move the extracted folder to this this location:
Code:
$ sudo mv jdk1.6.0_38 /usr/lib/jvm/./jdk-6u38-linux-x64.bin
5. Install the new Java source in system:
Code:
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/javac 1
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/java 1
$ sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/javaws 1
$ sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/javadoc 1
$ sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/javah 1
$ sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/javap 1
$ sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/jar 1
6. Select the default Java version for your system:
Code:
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javaws
$ sudo update-alternatives --config javadoc
$ sudo update-alternatives --config javah
$ sudo update-alternatives --config javap
$ sudo update-alternatives --config jar
7. Check Java version:
Code:
$ java -version
8. Verify the symlinks. Javac, Java, Javaws, Javadoc, Javah, Javap and Jar should all point to the new Java location and version:
Code:
$ ls -la /etc/alternatives/java* && ls -la /etc/alternatives/jar
Step 3: The sources
Install repo:
Repo is a tool that makes it quite easy to download and maintain the sources of Cyanogenmod.
Code:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ cd ~/bin
$ curl [url]https://dl-ssl.google.com/dl/googlesource/git-repo/repo[/url] > ~/bin/repo
$ chmod a+x ~/bin/repo
Create working directory:
Code:
$ mkdir ~/cm10
$ cd ~/cm10
Initialize Repo:
Code:
$ repo init -u git://github.com/CyanogenMod/android.git -b jellybean
and enter your credentials.
Download the sources:
Code:
$ repo sync
Wait until it's finished (takes a lot of time! depending on your internet connection)
If the process hangs use Ctrl+C to break out of it and resume the download with another
Code:
$ repo sync
Tip from ethansp: If you are running into a lot of syncing errors the reason might be that the 'repo sync' command is establishing four threads automatically. This might be too much. So try to change the command to run with one thread only by using
Code:
$ repo sync -j1
Initialize the environment
Code:
$ . build/envsetup.sh
Go to your Cm10 Repository folder and press CTRL+H
Go to .Repo/local_manifests and create local_manifest.xml
Paste these lines into it and repo sync after it again.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="wulsic/android_device_samsung_nevisp.git" path="device/samsung/nevisp" remote="github" revision="master"/>
<project name="wulsic/android_vendor_samsung_nevisp.git" path="vendor/samsung/nevisp" remote="github" revision="master"/>
<project name="corsicanu/android_kernel_samsung_nevisp.git" path="kernel/samsung/nevisp" remote="github" revision="master"/>
<project name="wulsic/android_frameworks.git" path="framework/" remote="github" revision="master"/>
</manifest>
Download the neccesary Cyanogenmod prebuilts:
Code:
~/cm10/vendor/cm/get-prebuilts
Step4: Building the rom
Now try to build it.
Code:
Brunch nevisp
And now the building process starts. Building takes from an half hour( very fast pc) to 2 hour on very slow pc´s maybe even more.
When everything gone fine (Can´t the guide is not finished there are still some little errors in compiling i need to fix or maybe you dev´s.) you can find the flashable zip in ~/cm10/out/target/product/nevisp
It would be called cm-10-DATE-UNOFFICIAL-nevisp-zip. You can directly flash it cause it is already an flashable zip.
Step5:Rebuilding with newest sources:
Code:
$ cd ~/cm10
$ repo sync
$ . build/envsetup.sh
$ brunch nevisp
The building should now take a lot less time cause it only rebuilds it and its using old parts what haven´t changed.
For more Handy tips see this link where i based the guide off http://forum.xda-developers.com/showthread.php?t=1971645
Credits:All credits goes to Raum1807 for making the guide i only edit it for people so its easier for compiling for the fame.
And to corsicanu for giving me the sourcecode from adytzu33t and the cm10.1 recovery what could be also handy for beginning cm10.1 but first cm10 and also for his uploaded kernel sourcecode on github.
and adytzu33 for the sourcecode from cm10 but unfortunatly he was last online in march.
If you have problems then post it here in the thread i can help you to get compiling so far as i am since i now have the knowledge again for cm10 and you guys can help me.
If you have the same error like me here what i will solve today after like 12hours when i standup again then you have the same progress like me.
Going to sleep now just bring the old devs back to life on this forum cause its almost completely death if you ask me.
Reserved for Progress:
Code:
target Strip: libvariablespeed (/home/wulsic/cm10/out/target/product/nevisp/obj/lib/libvariablespeed.so)
Install: /home/wulsic/cm10/out/target/product/nevisp/system/lib/libvariablespeed.so
/home/wulsic/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/wulsic/cm10/out/target/product/nevisp/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/libLLVMAsmPrinter.a(AsmPrinter.o): in function llvm::AsmPrinter::EmitFunctionHeader():external/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:477: error: undefined reference to 'llvm::DwarfDebug::beginFunction(llvm::MachineFunction const*)'
/home/wulsic/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/wulsic/cm10/out/target/product/nevisp/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/libLLVMAsmPrinter.a(AsmPrinter.o): in function llvm::AsmPrinter::EmitFunctionBody():external/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:685: error: undefined reference to 'llvm::DwarfDebug::beginInstruction(llvm::MachineInstr const*)'
/home/wulsic/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/wulsic/cm10/out/target/product/nevisp/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/libLLVMAsmPrinter.a(AsmPrinter.o): in function llvm::AsmPrinter::EmitFunctionBody():external/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:727: error: undefined reference to 'llvm::DwarfDebug::endInstruction(llvm::MachineInstr const*)'
/home/wulsic/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/wulsic/cm10/out/target/product/nevisp/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/libLLVMAsmPrinter.a(AsmPrinter.o): in function llvm::AsmPrinter::EmitFunctionBody():external/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:788: error: undefined reference to 'llvm::DwarfDebug::endFunction(llvm::MachineFunction const*)'
/home/wulsic/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/wulsic/cm10/out/target/product/nevisp/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/libLLVMAsmPrinter.a(AsmPrinter.o): in function llvm::AsmPrinter::doFinalization(llvm::Module&):external/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:895: error: undefined reference to 'llvm::DwarfDebug::endModule()'
/home/wulsic/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/wulsic/cm10/out/target/product/nevisp/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/libLLVMAsmPrinter.a(AsmPrinter.o): in function llvm::AsmPrinter::doFinalization(llvm::Module&):external/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:897: error: undefined reference to 'llvm::DwarfDebug::~DwarfDebug()'
/home/wulsic/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/wulsic/cm10/out/target/product/nevisp/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/libLLVMAsmPrinter.a(AsmPrinter.o): in function llvm::AsmPrinter::doInitialization(llvm::Module&):external/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:205: error: undefined reference to 'llvm::ARMException::ARMException(llvm::AsmPrinter*)'
/home/wulsic/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/wulsic/cm10/out/target/product/nevisp/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/libLLVMAsmPrinter.a(AsmPrinter.o): in function llvm::AsmPrinter::doInitialization(llvm::Module&):external/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:208: error: undefined reference to 'llvm::Win64Exception::Win64Exception(llvm::AsmPrinter*)'
/home/wulsic/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/wulsic/cm10/out/target/product/nevisp/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/libLLVMAsmPrinter.a(AsmPrinter.o): in function llvm::AsmPrinter::doInitialization(llvm::Module&):external/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:202: error: undefined reference to 'llvm::DwarfCFIException::DwarfCFIException(llvm::AsmPrinter*)'
/home/wulsic/cm10/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/wulsic/cm10/out/target/product/nevisp/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/libLLVMAsmPrinter.a(AsmPrinter.o): in function llvm::AsmPrinter::doInitialization(llvm::Module&):external/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:195: error: undefined reference to 'llvm::DwarfDebug::DwarfDebug(llvm::AsmPrinter*, llvm::Module*)'
collect2: ld returned 1 exit status
make: *** [/home/wulsic/cm10/out/target/product/nevisp/obj/SHARED_LIBRARIES/libbcc_intermediates/LINKED/libbcc.so] Error 1
make: *** Waiting for unfinished jobs....
Thanks for give us guide, I want to try
After I download ubuntu
Sent from my GT-S6810 using XDA Premium 4 mobile app
EDIT:
Compiling problems fixed thanks to corsicanu, he fixed the boardconfig.mk and the recovery.fstab so without him i would still be figuring out what to edit by those files.
Now we only need testers to log the problems from boot so we can fix those problems.
Here is staying the compiling guide and it will stay in update with the repository so i will push fixes to the repo and merge fixes from people who review the sourcecode.
I will create a new thread in the Original android development thread since its not modified stock but it will be the first cyanogenmod 10 for the fame.
The build wasn´t really on time it was 18 minutes later posted then i said i would make it but that doesn´t matter i think.
Development Thread:
http://forum.xda-developers.com/showthread.php?p=52756482
I can compile and install on my GT-6810B?
I am Brazilian and I'm using Google Translator
Well you can compile it but i am still finding out or everything is compatible with each other so i mean all the fame phones since i do not own it and i still need to dig In the specifications and threads here i cant promise anything. We are still trying to make logcat work on the s6810/p so i just want to say that its better that you will first wait till we have hammered out all the problems. Else you might be able to compile it but it wil not boot. Hold an Eye on the thread mentioned above for progressieve.
Verstuurd vanaf mijn Nexus 4 met Tapatalk
Thanks, I think it best to wait
John Blueh said:
Thanks, I think it best to wait
Click to expand...
Click to collapse
Maybe you can help him on this thread http://forum.xda-developers.com/showthread.php?t=2755948
Sent from my GT-S6810 using XDA Premium 4 mobile app
Thanks [emoji4]
Отправлено с моего GT-S6810 через Tapatalk
Misha_android if you got problems with compiling just post it here or send a message tot me.
Verstuurd vanaf mijn Nexus 4 met Tapatalk
CM11 coming soon.
Hello guys,
I really want to build cm10 but i can't test it because i have this phone but i really DON'T want to root it, i can fix some errors by myself because when building pac 4.4.4 for my device i was getting TONS of errors so i start building today.
EDIT: I looked at the local_manifest.xml but i don't see any line that points to the kernel,device and vendor tree.
I can't say that im right because the repo sync is still in progress but i only thnk
Sorry for bad english
EDIT 2: I see nobody has started building cm11 for this device.. i can start doing it but i need the device,vendor and kernel source if anyone has a link please give it.
using prebuilt boot.img from IMAGES...
boot size (19613696) is 58.45% of limit (33554432)
warning radio-update: no radio image in input target_files; not flashing radio
running: openssl pkcs8 -in build/target/product/security/testkey.pk8 -inform DER -nocrypt
running: java -Xmx2048m -jar /home/pranav18062001/roms/pac/out/host/linux-x86/framework/signapk.jar -w build/target/product/security/testkey.x509.pem build/target/product/security/testkey.pk8 /tmp
/tmpI0uIDc /home/pranav18062001/roms/pac/out/target/product/lettuce/pac_lettuce-ota-1cdea6516f.zip
done.
ln: failed to access ‘/home/pranav18062001/roms/pac/out/target/product/lettuce/pac_lettuce-ota-1cdea6516f.zip’: No such file or directory
build/core/Makefile:1759: recipe for target 'bacon' failed
make: *** [bacon] Error 1
#### make failed to build some targets (01:38:40 (hh:mm:ss)) ####
jasonhosu said:
using prebuilt boot.img from IMAGES...
boot size (19613696) is 58.45% of limit (33554432)
warning radio-update: no radio image in input target_files; not flashing radio
running: openssl pkcs8 -in build/target/product/security/testkey.pk8 -inform DER -nocrypt
running: java -Xmx2048m -jar /home/pranav18062001/roms/pac/out/host/linux-x86/framework/signapk.jar -w build/target/product/security/testkey.x509.pem build/target/product/security/testkey.pk8 /tmp
/tmpI0uIDc /home/pranav18062001/roms/pac/out/target/product/lettuce/pac_lettuce-ota-1cdea6516f.zip
done.
ln: failed to access ‘/home/pranav18062001/roms/pac/out/target/product/lettuce/pac_lettuce-ota-1cdea6516f.zip’: No such file or directory
build/core/Makefile:1759: recipe for target 'bacon' failed
make: *** [bacon] Error 1
#### make failed to build some targets (01:38:40 (hh:mm:ss)) ####
Click to expand...
Click to collapse
tried a lot still same
no dev to help
jasonhosu said:
using prebuilt boot.img from IMAGES...
boot size (19613696) is 58.45% of limit (33554432)
warning radio-update: no radio image in input target_files; not flashing radio
running: openssl pkcs8 -in build/target/product/security/testkey.pk8 -inform DER -nocrypt
running: java -Xmx2048m -jar /home/pranav18062001/roms/pac/out/host/linux-x86/framework/signapk.jar -w build/target/product/security/testkey.x509.pem build/target/product/security/testkey.pk8 /tmp
/tmpI0uIDc /home/pranav18062001/roms/pac/out/target/product/lettuce/pac_lettuce-ota-1cdea6516f.zip
done.
ln: failed to access ‘/home/pranav18062001/roms/pac/out/target/product/lettuce/pac_lettuce-ota-1cdea6516f.zip’: No such file or directory
build/core/Makefile:1759: recipe for target 'bacon' failed
make: *** [bacon] Error 1
#### make failed to build some targets (01:38:40 (hh:mm:ss)) ####
Click to expand...
Click to collapse
no dev to help me?
repo sync will help ?
jasonhosu said:
repo sync will help ?
Click to expand...
Click to collapse
Did you try make clean && make clobber?
I have been building LineageOS 15.1 for Samsung S6 and S6 Edge for a while without any real issues.
I am using my own 'zero' repo's that are duplicates of the ones available on the official LineageOS github repo with a few local fixes.
My build environment is an Ubuntu 16.04 VM. The build tools recently forced me to upgrade to Python 3.6.3 which I had to install manually.
Since then the build fails whilst compiling the Exynos7420 Kernel. The error message seems to vary but its always at the Exynos7420 kernel part.
I am building with my own certificates so the script is a little different from a standard LineageOS build:
Code:
source build/envsetup.sh
breakfast zeroltexx
mka target-files-package dist otatools
The last lines of the output and the error I got the last time:
Code:
[ 0% 2/93156] Generated: (/home/andy/android...ut/target/product/zeroltexx/android-info.txt)
FAILED: /home/andy/android/lineage/out/target/product/zeroltexx/android-info.txt
/bin/bash -c "(build/tools/check_radio_versions.py ) && (echo \"board=universal7420\" > /home/andy/android/lineage/out/target/product/zeroltexx/android-info.txt )"
File "build/tools/check_radio_versions.py", line 56
print "*** Error opening \"%s.sha1\"; can't verify %s" % (fn, key)
^
SyntaxError: invalid syntax
[ 0% 7/93156] Building Kernel Config
make: Entering directory '/home/andy/android/lineage/kernel/samsung/exynos7420'
GEN /home/andy/android/lineage/out/target/product/zeroltexx/obj/KERNEL_OBJ/Makefile
Kconfig:15:warning: environment variable ANDROID_MAJOR_VERSION undefined
arch/arm64/configs/lineageos_zeroltexx_defconfig:624:warning: override: reassigning to symbol INET_DIAG
#
# configuration written to .config
#
make: Leaving directory '/home/andy/android/lineage/kernel/samsung/exynos7420'
make: Entering directory '/home/andy/android/lineage/kernel/samsung/exynos7420'
GEN /home/andy/android/lineage/out/target/product/zeroltexx/obj/KERNEL_OBJ/Makefile
scripts/kconfig/conf --savedefconfig=defconfig Kconfig
Kconfig:15:warning: environment variable ANDROID_MAJOR_VERSION undefined
make: Leaving directory '/home/andy/android/lineage/kernel/samsung/exynos7420'
ninja: build stopped: subcommand failed.
19:27:22 ninja failed with: exit status 1
#### failed to build some targets (08:22 (mm:ss)) ####
Any pointers as to how I debug this? It must be something to do with the upgrade to python 3.6.3, however I am not skilled in the arts of scripting...
Cheers
Andy
If I clean everything out of the /out folder and re-run the commands it always fails at the same point:
Code:
FIPS : Generating hmac of fmp and updating vmlinux...
HMAC-SHA256(builtime_bytes.bin)= 5d384fe6b55f757aa0ef31391e8cbb5ffb947cd886235203f2690988f879aec8
FIPS : Generating hmac of crypto and updating vmlinux...
HMAC-SHA256(builtime_bytes.bin)= d6e18e7da3d688cd63ab5598991c05bd4c538f71d383fbe7e9f668f23d1e040a
OBJCOPY arch/arm64/boot/Image
make: Leaving directory '/home/andy/android/lineage/kernel/samsung/exynos7420'
Building DTBs
make: Entering directory '/home/andy/android/lineage/kernel/samsung/exynos7420'
CC scripts/mod/devicetable-offsets.s
GEN scripts/mod/devicetable-offsets.h
HOSTCC scripts/mod/file2alias.o
HOSTLD scripts/mod/modpost
make[2]: Nothing to be done for 'dtbs'.
make: Leaving directory '/home/andy/android/lineage/kernel/samsung/exynos7420'
Building Kernel Modules
make: Entering directory '/home/andy/android/lineage/kernel/samsung/exynos7420'
GEN /home/andy/android/lineage/out/target/product/zeroltexx/obj/KERNEL_OBJ/Makefile
CHK include/generated/uapi/linux/version.h
Using /home/andy/android/lineage/kernel/samsung/exynos7420 as source for kernel
CHK include/generated/utsrelease.h
CC scripts/mod/devicetable-offsets.s
GEN scripts/mod/devicetable-offsets.h
HOSTCC scripts/mod/file2alias.o
CALL /home/andy/android/lineage/kernel/samsung/exynos7420/scripts/checksyscalls.sh
HOSTLD scripts/mod/modpost
Building modules, stage 2.
MODPOST 0 modules
/home/andy/android/lineage/kernel/samsung/exynos7420/scripts/Makefile.fwinst:45: target '/lib/firmware/tsp_stm/stm_z1.fw' given more than once in the same rule
/home/andy/android/lineage/kernel/samsung/exynos7420/scripts/Makefile.fwinst:45: target '/lib/firmware/abov/abov_valley.fw' given more than once in the same rule
make: Leaving directory '/home/andy/android/lineage/kernel/samsung/exynos7420'
ninja: build stopped: subcommand failed.
23:05:52 ninja failed with: exit status 1
#### failed to build some targets (17:53 (mm:ss)) ####
Anyone?
ADB100 said:
If I clean everything out of the /out folder and re-run the commands it always fails at the same point:
Code:
FIPS : Generating hmac of fmp and updating vmlinux...
HMAC-SHA256(builtime_bytes.bin)= 5d384fe6b55f757aa0ef31391e8cbb5ffb947cd886235203f2690988f879aec8
FIPS : Generating hmac of crypto and updating vmlinux...
HMAC-SHA256(builtime_bytes.bin)= d6e18e7da3d688cd63ab5598991c05bd4c538f71d383fbe7e9f668f23d1e040a
OBJCOPY arch/arm64/boot/Image
make: Leaving directory '/home/andy/android/lineage/kernel/samsung/exynos7420'
Building DTBs
make: Entering directory '/home/andy/android/lineage/kernel/samsung/exynos7420'
CC scripts/mod/devicetable-offsets.s
GEN scripts/mod/devicetable-offsets.h
HOSTCC scripts/mod/file2alias.o
HOSTLD scripts/mod/modpost
make[2]: Nothing to be done for 'dtbs'.
make: Leaving directory '/home/andy/android/lineage/kernel/samsung/exynos7420'
Building Kernel Modules
make: Entering directory '/home/andy/android/lineage/kernel/samsung/exynos7420'
GEN /home/andy/android/lineage/out/target/product/zeroltexx/obj/KERNEL_OBJ/Makefile
CHK include/generated/uapi/linux/version.h
Using /home/andy/android/lineage/kernel/samsung/exynos7420 as source for kernel
CHK include/generated/utsrelease.h
CC scripts/mod/devicetable-offsets.s
GEN scripts/mod/devicetable-offsets.h
HOSTCC scripts/mod/file2alias.o
CALL /home/andy/android/lineage/kernel/samsung/exynos7420/scripts/checksyscalls.sh
HOSTLD scripts/mod/modpost
Building modules, stage 2.
MODPOST 0 modules
/home/andy/android/lineage/kernel/samsung/exynos7420/scripts/Makefile.fwinst:45: target '/lib/firmware/tsp_stm/stm_z1.fw' given more than once in the same rule
/home/andy/android/lineage/kernel/samsung/exynos7420/scripts/Makefile.fwinst:45: target '/lib/firmware/abov/abov_valley.fw' given more than once in the same rule
make: Leaving directory '/home/andy/android/lineage/kernel/samsung/exynos7420'
ninja: build stopped: subcommand failed.
23:05:52 ninja failed with: exit status 1
#### failed to build some targets (17:53 (mm:ss)) ####
Anyone?
Click to expand...
Click to collapse
I know it's old, but did you manage to solve it?
I have the same problem