Overview
I'm going to discuss forking CM11-based configs to OmniROM, I will not dicuss adapting device configs to TWRP because it's been done to death and most devices do have TWRP.
I'm not going to discuss how to move device, kernel and vendor configs into their proper folders, work at this level is very basic and I'm writing this under the assumption folks have a general understanding of how to build CM11 outside of just using 'breakfast' on an officially supported device. I will be writing this guide assuming you know where to put what, but just don't know how to structure them.
I'll be writing this guide under the assumption that you are using 'moto_msm8960', which I'll be using as an example; however this should apply to any device generally.
Rename the following file from:
cm.mk -> omni_moto_msm8960.mk
https://github.com/CyanogenMod/android_device_motorola_moto_msm8960/blob/cm-11.0/cm.mk
full_moto_msm8960.mk (will be merged into omni_moto_msm8960.mk)
https://github.com/CyanogenMod/andr...oto_msm8960/blob/cm-11.0/full_moto_msm8960.mk
If your device config file does not follow this format it's fine. If you have a "Full_device.mk" you will need to import it into your newly made omni_moto_msm8960.mk
I realize you're told to not do this, It's ok hold my hand and we'll walk into the darkness together.
Both files have "device Identifier" values and when using two makefiles with Omni this will cause compile issues 90% of the time unless the entry:
PRODUCT_NAME := full_moto_msm8960
Is above all the other Product_values. (but PRODUCT_value entries must be at the very END of the makefile)
If your Omni has built but has an under 100MB size, do not use dual-makefiles.
Let's construct the omni_moto_msm8960.mk:
#---------------------------#
# Moto_msm8960 unified #
# - OmniROM 4.4 - #
#---------------------------#
# Main product makefile
#---------------------------#
# First revision, everything is good here.
#---------------------------#
# Define screen resolution #
#---------------------------#
# * Change this for HDPI devices like Razr M
TARGET_SCREEN_WIDTH := 720
TARGET_SCREEN_HEIGHT := 1280
#---------------------------#
# Phone-specific config #
#---------------------------#
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
#---------------------------#
# Build for a CDMA phone #
#---------------------------#
$(call inherit-product, vendor/omni/config/cdma.mk)
#---------------------------#
# Use generic Omni configs #
#---------------------------#
$(call inherit-product, vendor/omni/config/common.mk)
#---------------------------#
# Phone-specific config #
#---------------------------#
$(call inherit-product, device/motorola/moto_msm8960/device_moto_msm8960.mk)
#---------------------------#
# Product [name] values #
#---------------------------#
PRODUCT_NAME := omni_moto_msm8960
PRODUCT_DEVICE := moto_msm8960
PRODUCT_BRAND := motorola
PRODUCT_MODEL := MOTOROLA MSM8960
PRODUCT_MANUFACTURER := motorola
Click to expand...
Click to collapse
Of course some things will vary; If you use a GSM phone you will not use Omnis CDMA config file, but will ALWAYS use common.
The product-values should reflect what is found in your makefile and PRODUCT_NAME should always be at the very top, screen resolution should be the very first thing specified followed by device specific telephony configs, everything inbetween does not matter as much.
Now we must edit Androidproducts.mk to reflect such a dramatic change, as we're now only using a single makefile.
#---------------------------#
# Moto_msm8960 unified #
# - OmniROM 4.4 - #
#---------------------------#
# Product Root makefile
#---------------------------#
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/omni_moto_msm8960.mk
Click to expand...
Click to collapse
Modify this file in the following way, also make sure entries point to build paths and not something on Github.
cm.dependencies -> omni.dependencies
If not present, add a 'vendorsetup.sh' file containing the following entry
# ----------------------------------------
# Moto_msm8960 unified configuration
# - OmniROM 4.4 -
# ----------------------------------------
# Enable support for 'brunch' command
# ----------------------------------------
add_lunch_combo omni_moto_msm8960-userdebug
add_lunch_combo omni_moto_msm8960-eng
Click to expand...
Click to collapse
With your kernel and supporting device configs & vendor files intact, Omni will now be able to build functionally.
IF you recieve config.xml error, simply remove that line in config.xml or delete your Overlay folder.
If OmniROM builds but does not seem to boot; use Logcat, do you have this error?
E/Fence ( 220): sync_fence_info returned NUL
If so find the following commit in your kernel:
msm: mdp: Update sync pt. behaviour
and revert it.
Is this possible for cm13 and omnirom 6.0.1 too?
I tried to follow your guide, but it seems cm has changed a lot... I couldn't find the lines you have in your config files in the cm13 .mk files. And I could not find all the files.
I try to port omnirom 6.0.1 to S4 mini aka GT-I9195 aka serranoltexx.
Related
Radio (BP): OLYMPUSBP_01.92.00R
Release Date: Apr 29, 2011
Webtop version : EMARA Retail generic: OSHWT_U1_6.54.0
http://forum.androidfan.ru/index.php?showtopic=8052
Are there any details about the origin of this file?
Sent from my MB860 using Tapatalk
going to try as soon as its downloaded hopefully works okay...OLYEM U4 1.4.2 worked hope OLYEM U4 2.1.1 works
be cool if it was gingerbread
Is this for bell or att?
Sent from my Motorola Olympus
Flashing as we speak...
Flash was successful. Default language was set to French. Motoblur register was able to be skipped.
Just trying to root right now.
thgi you are on a bell atrix probably, by the name of the flash file it suggests that its for the bell versions and not for the att versions... what is the kernel and android version tho thgi?
I'm downloading now, just curious as to what it is before I flash.. Tghi, look forward to what this sbf does... and of course if it is for Bell I wouldn't but I figure doesn't hurt to download
crnkoj said:
thgi you are on a bell atrix probably, by the name of the flash file it suggests that its for the bell versions and not for the att versions... what is the kernel and android version tho thgi?
Click to expand...
Click to collapse
Yes, I am on a Bell Atrix.
Root (permanent) was successful: http://forum.xda-developers.com/showthread.php?t=1045634
build.prop and default.prop for this ROM is as follows:
Code:
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=OLYEM_U4_2.1.1
ro.build.display.id=OLYEM_U4_2.1.1
ro.build.version.incremental=4009634
ro.build.version.sdk=8
ro.build.version.codename=REL
ro.build.version.release=2.2.2
ro.build.date=Fri Apr 29 00:01:01 CST 2011
ro.build.date.utc=1304006461
ro.build.type=user
ro.build.user=e13392
ro.build.host=zch68lnxdroid46
ro.build.tags=ota-rel-keys,release-keys
ro.product.model=MB860
ro.product.model.internal=MB860
ro.product.brand=MOTO
ro.product.name=MB860_RTFR
ro.product.device=olympus
ro.product.board=olympus
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=motorola
ro.product.locale.language=fr
ro.product.locale.region=FR
ro.wifi.channels=
ro.board.platform=tegra
# ro.build.product is obsolete; use ro.product.device
ro.build.product=olyem
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=olympus-user 2.2.2 OLYEM_U4_2.1.1 ota-rel-keys,release-keys
ro.build.fingerprint=MOTO/MB860_RTFR/olympus/olympus:2.2.2/OLYEM_U4_2.1.1/4009634:user/ota-rel-keys,release-keys
# end build properties
#BEGIN ikolympus-145 ndkj78 04/29/10 add properties for RIL
rild.libpath=/system/lib/libmoto_ril.so
#ikolymp-874 increment channels to support EFEM
persist.ril.mux.noofchannels=9
persist.ril.mux.ttydevice=/dev/ttyHS3
#Begin IKOLYMP-2372 jqc837 31.aug.10 Short music file set as ringtone does not play in loop when receiving incoming call
#Begin IKOLYMP-425 jqc837 31.aug.10 ro.cdma.home.operator.numeric should not be set
ro.telephony.call_ring.multiple=false
#End IKOLYMP-2372 IKOLYMP-425
#added property for modem ikolympus-203
persist.ril.modem.ttydevice=/dev/ttySPI0
#added property for default RIL mode to be UMTS ikolymp2180
persist.ril.modem.mode=2
#IKOLYMP-4257 add feature GENERIC_OEM_HOOK flag
#IKOLYMP-4894 add feature MUX_PANIC_NOTIF flag
#IKOLYMP-5747 add feature BDTSE_FOR_DTMF flag
#IKOLYMP-7714 Remove feature BDTSE_FOR_DTMF. Revert to DTSE for DTMF
#IKOLYMP-8033 Restore BDTSE_FOR_DTMF. Remove GENERIC_OEM_HOOK (no longer used)
persist.ril.features=0x24
#IKOLYMP-9894 Increase the PPP max failure threshold to 12
#IKOLYMP-10006 Increase the PPP max failure threshold to 16
persist.ril.pppd.start.fail.max=16
#end
#IKOLYMP-9157 libgps send_rds retry number+1
persist.libgps.send.rds.retry=4
ro.hdmi.mirror.enable=false
ro.hdmi.default.app=
hw.overlay.path.config=
# temporary enable AT&T NSUI feature from system prop.
# This should be removed once Flex is enabled in Olympus.
ro.mot.FTR.NSUI=false
# for larger screen support
# 3.75" WVGA == 248dpi
# 4.0" qHD == 275dpi
ro.sf.lcd_density=240
dalvik.vm.heapsize=32m
# Enable FP sensor
ro.mot.hw.fingerprint.enable=1
# required for UDD backup tcmd
ro.mot.hw.calibratedImager=1
# Time between scans in seconds. Keep it high to minimize battery drain.
# This only affects the case in which there are remembered access points,
# but none are in range.
wifi.supplicant_scan_interval = 45
#For enabling Wispr Feature
#disable att wifi hotspot, IKOLYEM-254
ro.mot.wifi.hotspot=0
# To enable Google Froyo Tethering (USB & WIFI hotspot)
ro.tether.denied=false
# To set wifi (AP) driver's firmware path
ro.wifi-ap.fw-path=/system/etc/firmware/wifi/sdio-g-cdc-roml-reclaim-wme-apsta-idsup-idauth.bin
# Enabling EONS feature IKOLYMP-1962
persist.cust.tel.eons=1
ro.opengles.version = 131072
# For docked touchpad keyboard map
android.keylayout.evfwd=/system/usr/keylayout/evfwd.kl
android.keychar.evfwd=/system/usr/keychars/evfwd.kcm.bin
# To send 70 touch events per second
windowsmgr.max_events_per_sec = 70
debug.mot.extwmlog=0
debug.mot.extamlog=0
#proximit sensor screen off delay
mot.proximity.delay=450
#proximit sensor disable touch distance
mot.proximity.distance=60
# Enable HAC support
ro.mot.hw.HAC=1
# BEGIN Motorola, w30250, 4-Nov-2010, IKOLYMP-6198 turn on entitlement check
# BEGIN Motorola, e13085, 9-Dec-2010, IKOLYHKTW-1 turn off entitlement check
ro.mot.entitlement_check=false
# END
# END
# The property "ro.camera.sound.forced" is defined by google.
# Use this property to decide whether camera shutter tone is forced: 1 forced; 0 not-forced.
# BEGIN Motorola, e7482c, 1-Dec-2010, IKOLYEM-76
ro.camera.sound.forced=0
# BEGIN Motorola, w30495 IKOLYMP-9553, add property to control maximum number of hidden apps
ro.MAX_HIDDEN_APPS=50
# END
# BEGIN Motorola, e7482c IKOLYEM-486, add property to control if disable background data when making call
ro.mot.background_data.disabled=false
# BEGIN Motorola, w20919 IKOLYEM-993, add property to control if email auto config after skip the blur setting
ro.mot.auto.email=true
# END
#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.config.alarm_alert=Alarm_Classic.ogg
media.stagefright.enable-player=false
media.stagefright.enable-meta=false
media.stagefright.enable-scan=false
media.stagefright.enable-http=false
ro.default_usb_mode=0
ro.product.multi_touch_enabled=true
ro.product.max_num_touch=2
ro.setupwizard.mode=DISABLED
ro.com.google.gmsversion=2.2_r9
ro.config.sync=no
ro.browser.useragent=0
gsm.sim.mot.simswap=1
ro.config.sync=no
ro.media.dec.vid.wmv.enabled=1
ro.media.dec.aud.wma.enabled=1
ro.media.enc.hprof.file.format=3gp
ro.media.enc.hprof.aud.hz=44100
ro.media.enc.hprof.aud.ch=2
ro.media.enc.hprof.codec.aud=aac
ro.media.enc.hprof.aud.bps=128000
ro.media.enc.hprof.vid.bps=4000000
ro.media.enc.hprof.vid.width=1280
ro.media.enc.hprof.vid.height=720
ro.media.enc.hprof.codec.vid=h264
ro.media.enc.hprof.vid.fps=30
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
ro.com.google.clientid=android-motorola
ro.url.legal=http://www.google.com/intl/%s/mobile/android/basic/phone-legal.html
ro.url.legal.android_privacy=http://www.google.com/intl/%s/mobile/android/basic/privacy.html
ro.mot.hw.uaprof=http://uaprof.motorola.com/phoneconfig/MotoMB860/profile/MotoMB860.rdf
ro.build.version.full=Blur_Version.4.2.11.MB860.Retail.en.FR
ro.config.ringtone=Piano.ogg
ro.config.notification_sound=Kinetic_Bell.ogg
ro.com.google.clientidbase.am=android-motorola
ro.com.google.clientidbase=android-motorola
ro.com.google.clientidbase.gmm=android-motorola
ro.com.google.clientidbase.yt=android-motorola
ro.com.google.locationfeatures=1
ro.com.google.clientidbase.ms=android-motorola
thanks for the info thgi, i got one more little question/request if you got the time. Could you please copy the three wifi driver binarys from /system/etc/firmware/wifi/ zip them up and upload them somewhere/pm me with a link or something, i would really like to try if they fix the wifi issue that some of us see on unlocked att devices.
what languages are there?
Here is the wifi drivers.
aleve1983 said:
what languages are there?
Click to expand...
Click to collapse
Languages are: German, English, Spanish, French, Italian, Portugese
Thank you very much!
edit:
just checked them it seems they are the same version as on the att roms , anyhow thanks for the effort
is it flashable to att atrix
will it help with enabling GPRS outside america ?
http://gititbit.ch/ogsd1 mirror
does anyone know to import a language firmware?
more info on new features? bugs? and such?
Carrier name still in notification bar?
android 2.2.2 or 2.2.1?
For some weeks I've been trying to set up an environment in which I'm able to compile the stock kernel for my LG2X on my own. Following various tips and hints were unsuccessful and several restarts were required until a kernel which was compiled on my own box was running on my phone. Since I had to patch together all the information because there was no complete guide available/findable, I'd like to list here all the steps from the beginning which I had to perform to boot my own compiled kernel. Maybe this is also useful for others. Note: again, this approach is for compiling STOCK kernel sources which are based on the public sources from LG. (The build process for CM is different and cannot be applied to stock kernels)
I began with a freshly installed Ubuntu 11.10 32bit (http://www.ubuntu.com/download/ubuntu/download) running in a VMware virtual machine. In it I entered a shell and switched to root to be able to perform the required actions:
Code:
sudo su -
The next step was to add the package-sources for the cross-compiler toolchain (see next step) and to bring the system up to the latest state.
Code:
add-apt-repository ppa:linaro-maintainers/toolchain
apt-get update
apt-get upgrade
This takes some time but after it's finished I installed the cross-compiler toolchain to be able to compile applications for the LGs ARM platform
Code:
apt-get install gcc-linaro
apt-get install gcc-linaro-arm-linux-gnueabi
After this I've been ready to begin with the source-works. I closed the root-shell and opened up a new one (required to make sure that all paths are correctly set and recognized again). Test it by executing
Code:
arm-linux-gnueabi-gcc --version
When this executed without error I started with downloading the sources for version 20q from http://www.lg.com/global/support/opensource/opensource-detail.jsp?detailCustomerModelCode=LGP990 into a new directory.
When the file 'LGP990_Android_Gingerbread_V20Q.zip' had finished downloading I unzipped the complete package by
Code:
unzip LGP990_Android_Gingerbread_V20Q.zip
resulting in three files. A README, one .tar.gz with the ROM sources and finally one .tar.gz with the kernel sources. To unpack the kernel sources I issued
Code:
tar xvzf P990_Stardop_IFX_GingerBread_V20Q_KERNEL.tar.gz
and the complete LG 20q kernel sources were finally located in a new 'kernel' subdirectory.
The kernel sources themselves are not yet ready to be compiled. This is because LG most probably has a different/special build environment and our standard environment produces errors and unbootable kernels. Some patching is required to succeed to a running kernel.
Firstly the compilation options for the wireless module have to be tweaked as the default settings break compilation at some unused variables in the source. This is set to be just treated as warnings for the wireless-module by applying following patch:
Code:
diff -u -r original/kernel/drivers/net/wireless/bcm4329/Makefile kernel/drivers/net/wireless/bcm4329/Makefile
--- original/kernel/drivers/net/wireless/bcm4329/Makefile 2012-01-31 04:36:22.000000000 -0800
+++ kernel/drivers/net/wireless/bcm4329/Makefile 2012-02-14 11:41:59.972467559 -0800
@@ -53,7 +53,7 @@
-DBCMLXSDMMC \
-DBCMPLATFORM_BUS \
-DSDIO_ISR_THREAD \
- -Wall -Wstrict-prototypes -Werror \
+ -Wall -Wstrict-prototypes -Werror -Wno-unused-but-set-variable -Wno-array-bounds \
-I$(SRCROOT) \
-I$(SRCROOT)/include \
-I$(SRCROOT)/shared \
Also the main Makefile requires tuning to contain the proper compilation options to produce code which correctly runs on the phone (thanks to spica1234 for providing me with the correct options).
Code:
diff -u -r original/kernel/Makefile kernel/Makefile
--- original/kernel/Makefile 2012-01-31 04:36:21.000000000 -0800
+++ kernel/Makefile 2012-02-28 13:21:20.038003539 -0800
@@ -323,12 +323,12 @@
CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \
-Wbitwise -Wno-return-void $(CF)
-MODFLAGS = -DMODULE
-CFLAGS_MODULE = $(MODFLAGS)
+MODFLAGS = -DMODULE -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a9 -march=armv7-a -fno-common -fsingle-precision-constant -fno-gcse -funsafe-math-optimizations -ffinite-math-only -fgcse-las -fgcse-sm -fivopts -fbtr-bb-exclusive -fvect-cost-model -fmodulo-sched -fmodulo-sched-allow-regmoves
+CFLAGS_MODULE = $(MODFLAGS)
AFLAGS_MODULE = $(MODFLAGS)
LDFLAGS_MODULE = -T $(srctree)/scripts/module-common.lds
-CFLAGS_KERNEL =
-AFLAGS_KERNEL =
+CFLAGS_KERNEL = -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a9 -march=armv7-a -fno-common -fsingle-precision-constant -fno-gcse -funsafe-math-optimizations -ffinite-math-only -fgcse-las -fgcse-sm -fivopts -fbtr-bb-exclusive -fvect-cost-model -fmodulo-sched -fmodulo-sched-allow-regmoves
+AFLAGS_KERNEL = -mfloat-abi=softfp -mfpu=vfpv3-d16 -mtune=cortex-a9 -march=armv7-a -fno-common -fsingle-precision-constant -fno-gcse -funsafe-math-optimizations -ffinite-math-only -fgcse-las -fgcse-sm -fivopts -fbtr-bb-exclusive -fvect-cost-model -fmodulo-sched -fmodulo-sched-allow-regmoves
CFLAGS_GCOV = -fprofile-arcs -ftest-coverage
# 20100705, [email protected],[LGE_START]
@@ -544,7 +544,8 @@
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
KBUILD_CFLAGS += -Os
else
-KBUILD_CFLAGS += -O2
+KBUILD_CFLAGS += -Ofast
+KBUILD_CFLAGS += $(call cc-option, -Wno-unused-but-set-variable)
endif
We're not finished yet. We've to create the correct kernel configuration and (again) apply some patches. I'm not so sure about these changes but the kernel refused to boot on my phone without them. It is again provided by spica1234 and contains a number of changes. I did not research which of these changes allowed to boot since most of them are generally useful and I didn't do the work trying them out one-by-one.
Code:
make ARCH=arm star_ifx_defconfig
Code:
--- .config.orig 2012-02-28 13:22:09.322001449 -0800
+++ .config.spica_working 2012-03-02 08:41:21.757696988 -0800
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.32.9-HP_2X_Xtreme_RC12-RevOTF
-# Tue Feb 28 13:22:09 2012
+# Tue Feb 28 13:24:15 2012
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -56,16 +56,16 @@
CONFIG_LOG_BUF_SHIFT=18
CONFIG_GROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
-# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_RT_GROUP_SCHED=y
# CONFIG_USER_SCHED is not set
CONFIG_CGROUP_SCHED=y
CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is not set
# CONFIG_CGROUP_NS is not set
-CONFIG_CGROUP_FREEZER=y
-CONFIG_CGROUP_DEVICE=y
+# CONFIG_CGROUP_FREEZER is not set
+# CONFIG_CGROUP_DEVICE is not set
# CONFIG_CPUSETS is not set
-CONFIG_CGROUP_CPUACCT=y
+# CONFIG_CGROUP_CPUACCT is not set
# CONFIG_RESOURCE_COUNTERS is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
CONFIG_RELAY=y
@@ -121,7 +121,8 @@
# GCOV-based kernel profiling
#
# CONFIG_GCOV_KERNEL is not set
-# CONFIG_SLOW_WORK is not set
+CONFIG_SLOW_WORK=y
+# CONFIG_SLOW_WORK_DEBUG is not set
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
@@ -146,10 +147,10 @@
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_DEFAULT_AS is not set
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
+CONFIG_DEFAULT_DEADLINE=y
+# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_DEFAULT_IOSCHED="deadline"
CONFIG_FREEZER=y
#
@@ -1676,16 +1677,25 @@
# File systems
#
CONFIG_EXT2_FS=y
-# CONFIG_EXT2_FS_XATTR is not set
-# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT2_FS_XATTR=y
+# CONFIG_EXT2_FS_POSIX_ACL is not set
+# CONFIG_EXT2_FS_SECURITY is not set
+CONFIG_EXT2_FS_XIP=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_POSIX_ACL is not set
# CONFIG_EXT3_FS_SECURITY is not set
-# CONFIG_EXT4_FS is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_XATTR=y
+# CONFIG_EXT4_FS_POSIX_ACL is not set
+# CONFIG_EXT4_FS_SECURITY is not set
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_FS_XIP=y
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
+CONFIG_JBD2=y
+# CONFIG_JBD2_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
@@ -1769,7 +1779,22 @@
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
-# CONFIG_NETWORK_FILESYSTEMS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+# CONFIG_NFS_FS is not set
+# CONFIG_NFSD is not set
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_WEAK_PW_HASH is not set
+# CONFIG_CIFS_UPCALL is not set
+# CONFIG_CIFS_XATTR is not set
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DFS_UPCALL is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
#
# Partition Types
After these patches, were finally ready to compile the kernel
Code:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- STAR_TMUS_REV=TMUS_10 TARGET_STAR_HWREV=TMUS_E TARGET_MODEM=ifx
Now go grab some coffee. This takes a while. When it's finished, the compressed kernel-image is found in
arch/arm/boot/zImage
For the experienced kernel-hackers this might be enough. It wasn't for me and I wanted to have it easily installable like other kernels from the forum. So I downloaded a kernel zip package, eg. the one from spica1234 at http://forum.xda-developers.com/showpost.php?p=18253696&postcount=1
Any version will do as long as the kernel is contained in a .zip archive and installable via CWM. In my case I downloaded the kernel zip in a new directory 'build' and unpacked it.
Code:
unzip HP_2x_RC12-RevOTF-PRO.zip
This creates the subdirectories 'data', 'kernel', 'META-INF' and 'system'. Here we now have to replace the kernel and the kernel-modules with our self-compiled versions.
Code:
cd ~build/kernel
rm zImage
cp ~kernel/arch/arm/bootzImage ./zImage
cd ../system/lib/modules
rm *.ko
find ~kernel/ -name "*.ko" -exec cp '{}' . \;
cd ../../..
One last step, creating the zip which carries the new kernel:
Code:
zip -r -FS new_kernel.zip data/ kernel/ META-INF/ system/
This new_kernel.zip can now be flashed with CWM and should boot without problems.
For easier usage, I've attached the three patched files in the build_set.zip attachment so you don't have to patch the stock files by hand. Just extract it in the kernel directory and overwrite the existing files.
I hope I did not make any error in the compilation of this information and that it can be helpful for the interested reader.
Thanks goes especially to spica1234 and the material which he provided me to come through to a successful boot.
Very good explanation. I wish such useful info available b4 an year for me while i published 1st kernel at samdroid for my older device
Sent from my LG-P990 using Tapatalk
Bloody hell! I never realised it took so much to simply compile!!!! (I build JEE systems at work, but we scripted most of it, stuff that used to take a day and half now takes a few minutes).
Excellent guide Kosi! I'm a linux and kernel n00b and I understand your instructions pretty well.
Ubuntu 11 is not the best choice though I currently use it myself. v11 can cause problems, especially when not compiling kernels but compiling Android ROMs.
Ubuntu 10 is the better choice.
Also there is a VMware Android Developer Environment available for download, providing nearly all the necessary tools for compilation preinstalled and set-up.
http://forum.xda-developers.com/showthread.php?t=1386918
You can compile your kernel directly in the virtual machine p.ex. on your Windows 7 PC. That's the way I do it for my kernel. VMware Player is available for free, so you can just run the image.
Also install VMware tools, so you can set up a directory for exchanging files between your Windows Host and the virtual Machine Ubuntu. In this directory I usually paste the compiled kernel for further use under Win7 (making the CWM update ZIPs).
Just note that you should have a dual/quadcore CPU strong enough to host the linux and compile the kernel in an acceptable time (usually it takes me 1-2 minutes for complete kernel compilation under virtual machine ubuntu using -j24 option on make).
Can u guys add a bit in this tutorial, example, at which file / folder need to edit for OCUV, add swap function, enable ext4, etc.. seriously like this thread..
Sent from my LG-P990 using XDA
ghadap said:
Can u guys add a bit in this tutorial, example, at which file / folder need to edit for OCUV, add swap function, enable ext4, etc.. seriously like this thread..
Click to expand...
Click to collapse
As the topic of this thread is just how to get the stock kernel compiling I won't step into modifying it. Please open a separate thread for that.
Small hints though, OCUV requires deeper code changes, swap and ext4 can just be enabled in the kernel config.
Hey,
I follow the guide, but ubuntu (11.04 64 bit) doesn't find the pack
Code:
apt-get install gcc-linaro
so I can't install the pack
Code:
apt-get install gcc-linaro-arm-linux-gnueabi
Edit: With Ubuntu 11.10, it works.
Has anyone compiled and booted a kernel successfully with this guide? Can't get mine to boot, so before I look any further I'd thought I'd check if anyone else has gotten a workable kernel out of it.
TrymHansen said:
Has anyone compiled and booted a kernel successfully with this guide? Can't get mine to boot, so before I look any further I'd thought I'd check if anyone else has gotten a workable kernel out of it.
Click to expand...
Click to collapse
Which version it shows "arm-linux-gnueabi-gcc --version"
If its 4.6.2?
Sent from my LG-P990 using Tapatalk
Stefan Gündhör said:
Ubuntu 11 is not the best choice though I currently use it myself. v11 can cause problems, especially when not compiling kernels but compiling Android ROMs.
Ubuntu 10 is the better choice.
Also there is a VMware Android Developer Environment available for download, providing nearly all the necessary tools for compilation preinstalled and set-up.
http://forum.xda-developers.com/showthread.php?t=1386918
You can compile your kernel directly in the virtual machine p.ex. on your Windows 7 PC. That's the way I do it for my kernel. VMware Player is available for free, so you can just run the image.
Also install VMware tools, so you can set up a directory for exchanging files between your Windows Host and the virtual Machine Ubuntu. In this directory I usually paste the compiled kernel for further use under Win7 (making the CWM update ZIPs).
Just note that you should have a dual/quadcore CPU strong enough to host the linux and compile the kernel in an acceptable time (usually it takes me 1-2 minutes for complete kernel compilation under virtual machine ubuntu using -j24 option on make).
Click to expand...
Click to collapse
Ubuntu 11.xx is still a good choise if you want to build ROMs it is very easy to set it up (it is just one step more then on 10.xx)
i also use ubuntu 11.10 and it is working fine for me with building android ROMs
and of course it can take 1-2 minutes but it also can take up to an hour for a kernel to compile
it all depends on how good your computer is
on my home computer i build a kernel in a matter of seconds (clobber builds)
but when i am at my girlfriend my build (also clobber) on her craptop will take up to 20 minutes
nice guide kosi2801!
spica1234 said:
Which version it shows "arm-linux-gnueabi-gcc --version"
If its 4.6.2?
Click to expand...
Click to collapse
Yap. This
Code:
arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.6.2-14ubuntu2~ppa1) 4.6.2
to be specific.
Trymhanson, Try to downgrade with 4.5.3. 4.6.2 is causing this unable to boot issue which was not happening earlier with 4.6.1
try this
apt-get install gcc-4.5-arm-linux-gnueabi
apt-get install g++-4.5-arm-linux-gnueabi
rm /usr/bin/arm-linux-gnueabi-gcc
ln -s /usr/bin/arm-linux-gnueabi-gcc-4.5 /usr/bin/arm-linux-gnueabi-gcc
Thanks, that did it. I also had to change the -Ofast flag back to -O2 as -Ofast wasn't recognized by the 4.5.3 version. So now I'm thinking maybe the -Ofast flag was to blame, so I'll try a fresh 4.6.2 install with -O2. Thanks again.
TrymHansen said:
Thanks, that did it. I also had to change the -Ofast flag back to -O2 as -Ofast wasn't recognized by the 4.5.3 version. So now I'm thinking maybe the -Ofast flag was to blame, so I'll try a fresh 4.6.2 install with -O2. Thanks again.
Click to expand...
Click to collapse
no may be ofast is not to blame but 4.6.2. Ofast was introduced with 4.6.0 and doesnt work with < 4..6. 4.6.2 doesnt even work with o2. And IMHO kernel compiled with 4.5.3 ismore stable
Sent from my LG-P990 using Tapatalk
http://db.tt/jN4fU9Vz
Thisis my recent sr3r2 patch created against original v20Q sourceswith Full OTF V2.0. Anybody interested can use it. It will transform to fully noo oc version of SR3r2
It wont work with CM but only stock v20q
Sent from my LG-P990 using Tapatalk
For anyone interested, currently I'm building with
arm-linux-gnueabihf-gcc (Ubuntu/Linaro 4.6.1-7ubuntu2) 4.6.1
For my usage patterns the kernel works pretty well, but YMMV.
Thanks spica for the updated patch!
kosi2801 said:
For anyone interested, currently I'm building with
arm-linux-gnueabihf-gcc (Ubuntu/Linaro 4.6.1-7ubuntu2) 4.6.1
For my usage patterns the kernel works pretty well, but YMMV.
Thanks spica for the updated patch!
Click to expand...
Click to collapse
Use my recent cflags its most stable and used in sr3r2
As you are using gnueabihf relace mfloat-abi=softfp with mfloat-abi=hard
Sent from my LG-P990 using xda premium
spica1234 said:
Use my recent cflags its most stable and used in sr3r2
As you are using gnueabihf relace mfloat-abi=softfp with mfloat-abi=hard
Click to expand...
Click to collapse
Thanks for the tip. I already thought about that some time ago but forgot again. Gained some additional performance points
Can someone upload a compiled stock v20q kernel flashable zip? Thanks!
This is the web address www .lg. com/global/support/opensource/opensource-detail.jsp
www .lg.c om/global/support/opensource/opensource.jsp
Ahjohnwon said:
This is the web address www .lg. com/global/support/opensource/opensource-detail.jsp
www .lg.c om/global/support/opensource/opensource.jsp
Click to expand...
Click to collapse
can you edit the proper adress ??
nyanyanyanyanyanyanyanyanyanyanyan
Ahjohnwon said:
This is the web address www .lg. com/global/support/opensource/opensource-detail.jsp
www .lg.c om/global/support/opensource/opensource.jsp
Click to expand...
Click to collapse
I don't get it.
Ahjohnwon said:
This is the web address www .lg. com/global/support/opensource/opensource-detail.jsp
www .lg.c om/global/support/opensource/opensource.jsp
Click to expand...
Click to collapse
That's nothing new....
"Welcome to the LG Electronics Open Source Distribution system.
LG Electronics, Inc. ("LGE") is pleased to make available source code relating to certain open source software on this website.
The copyright in the source code is owned by LGE and/or other third parties.
The source code is made available subject to the conditions of the licence terms specifically referred to in LGE's Open Source Software Notices.
The open source software and source code are provided to you on an "AS IS" basis and LGE, its affiliates and subsidiaries disclaim any and all warranties and representations with respect to such software and related source code, whether express, implied, statutory or otherwise, including without limitation, any implied warranties of title, non-infringement, merchantability, satisfactory quality, accuracy or fitness for a particular purpose.
LGE shall not be liable to make any corrections to the open source software or source code or to provide any support or assistance with respect to it.
LGE disclaims any and all liability arising out of or in connection with the use of this software and/or source code.
This statement does not impair or enhance any warranty or disclaimer which LGE provides in respect of any LGE product which incorporate our relevant open source software.
This site opened in August 2010. For information regarding products released prior to this date, please refer to the relevant product manuals."
If its good or if will help us , I don't know...
One downlodable "LGP880(X3)_Android_ICS_V10a.zip" have a "readme.txt" file that says:
"How to build
1. Android build
(1) Get the android base source code.
- Download the original android source code (Android 4.0.3 IceCreamSandwitch)(P880) from http://source.android.com
(2) Overwrite modules that you want to build.
- Untar opensource packages of LGP880_ICS_Platform.tar.gz into downloaded android source directory
- And, merge the source into the android source code.
(3) Merge the below code into android source file(bionic\libdl\Android.mk) at the last line.
##################################################################
# -begin
include $(CLEAR_VARS)
#LOCAL_LDFLAGS := -Wl,--exclude-libs=libgcc.a
LOCAL_SRC_FILES:= libdl.c
LOCAL_CFLAGS := -DLIBC_STATIC
LOCAL_MODULE:= libdl
ifeq ($(TARGET_ARCH),sh)
# for SuperH, additional code is necessary to handle .ctors section.
GEN_SOBEGIN := $(TARGET_OUT_STATIC_LIBRARIES)/sobegin.o
$(GEN_SOBEGIN): $(LOCAL_PATH)/arch-sh/sobegin.S
@mkdir -p $(dir [email protected])
$(TARGET_CC) -o [email protected] -c $<
GEN_SOEND := $(TARGET_OUT_STATIC_LIBRARIES)/soend.o
$(GEN_SOEND): $(LOCAL_PATH)/arch-sh/soend.S
@mkdir -p $(dir [email protected])
$(TARGET_CC) -o [email protected] -c $<
LOCAL_ADDITIONAL_DEPENDENCIES := $(GEN_SOBEGIN) $(GEN_SOEND)
endif
include $(BUILD_STATIC_LIBRARY)
# -end
#################################################################
(4) In other to compile the path (external\wfd_rtsp\librtsp) you have to separate and use NDK 6.0.
Please create the Android.mk file in the path (wfd_rtsp\librtsp\project\jni)
#####################################
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
RTSP_SRC_PATH := $(LOCAL_PATH)/src
RTSP_INC_PATH := $(LOCAL_PATH)/include
LOCAL_SRC_FILES := \
$(subst $(LOCAL_PATH)/,,$(wildcard $(RTSP_SRC_PATH)/usageenvironment/*.c*)) \
$(subst $(LOCAL_PATH)/,,$(wildcard $(RTSP_SRC_PATH)/basicusageenvironment/*.c*)) \
$(subst $(LOCAL_PATH)/,,$(wildcard $(RTSP_SRC_PATH)/groupsock/*.c*)) \
$(subst $(LOCAL_PATH)/,,$(wildcard $(RTSP_SRC_PATH)/livemedia/*.c*))
LOCAL_C_INCLUDES := \
$(RTSP_INC_PATH)/usageenvironment \
$(RTSP_INC_PATH)/basicusageenvironment \
$(RTSP_INC_PATH)/groupsock \
$(RTSP_INC_PATH)/livemedia
LOCAL_CFLAGS := -DNULL=0 -DSOCKLEN_T=socklen_t -DNO_SSTREAM -DDEBUG
LOCAL_CPPFLAGS := -DBSD=1 -fexceptions
LOCAL_LDLIBS := -lm -llog -lz
LOCAL_MODULE := live_rtsp
include $(BUILD_SHARED_LIBRARY)
#############################################
(5) Run the build scripts.
- You have to add google original prebuilt source(toolchain) before running build scripts.
- Run the following scripts to build android
a) . build/envsetup.sh
b) make -j4
into the android folder
- If the android is built sucessfully, you will find the outputs in this directory,
"out/target/product/generic".
2. Kernel Build
- Untar using following command at the android folder:
tar xvfj LGP880_Kernel.tar.gz
- change directory to kernel root
cd kernel
- make kernel zImage:
make ARCH=arm CROSS_COMPILE=(absolute path of Android 4.0.3 IceCreamSandwitch)/prebuilt/linux-x86/toolcahin/arm-eabi-4.4.3/bin/arm-eabi- x3_defconfig zImage"
And contains two more files... "LGP880_Kernel.tar.gz" and "LGP880_ICS_Platform.tar.gz"
I found strange that they have two options, P880 (LGP880(X3)_Android_ICS_V10a) and P880G (LGP880G(X3)_Android_ICS_V10c).
What that means??? Cause to be the different firmware version, they should have more once that exists the V10d/e/f...
Didn't understood... thanks if someone can explain it :good:
Well V10E/F were just minimal updates to fix bug issues and such. The original firmwares are the V10A/C.
And this is old news already guys. There is already a thread about Open Source.
Hi!
Is fusion3_yuga_defconfig the actual configuration that is being used on stock C6603?
If not, is there a way to obtain the stock kernel configuration? (it seems that IKCONFIG is not used)
*assa* said:
Hi!
Is fusion3_yuga_defconfig the actual configuration that is being used on stock C6603?
If not, is there a way to obtain the stock kernel configuration? (it seems that IKCONFIG is not used)
Click to expand...
Click to collapse
I was wrong. IKCONFIG is used, and I did extract the kernel configuration from the 3.4.0-g43a9ba9 (10.3.1.A.2.67) kernel.
Both the extracted file and the defconfig in the kernel src were *almost* exact match (after running make fusion3_yuga_defconfig).
Code:
--- C6603-3.4.0-g43a9ba9.config 2013-10-04 00:40:24.978644602 +0200
+++ fusion3_yuga_defconfig 2013-10-04 00:51:40.230673469 +0200
@@ -371,16 +371,9 @@
# CONFIG_MACH_MPQ8064_DTV is not set
CONFIG_MACH_SONY_FUSION3=y
# CONFIG_MACH_SONY_DOGO is not set
-# CONFIG_MACH_SONY_DOGO_DCM is not set
-# CONFIG_MACH_SONY_GAGA_KDDI is not set
CONFIG_MACH_SONY_YUGA=y
-# CONFIG_MACH_SONY_YUGA_DCM is not set
# CONFIG_MACH_SONY_ODIN is not set
# CONFIG_MACH_SONY_POLLUX is not set
-# CONFIG_MACH_SONY_POLLUX_CDB is not set
-# CONFIG_MACH_SONY_POLLUX_WINDY_CDB is not set
-# CONFIG_MACH_SONY_POLLUX_WINDY is not set
-# CONFIG_MACH_SONY_POLLUX_DCM is not set
# CONFIG_MACH_MSM_DUMMY is not set
#
Hmm.. I wonder why there are options (although not used) present in the extracted kernel but not in the defconfig from kernel source...
I have uploaded the extracted config here:
http://d-h.st/gIe
It for CM12 (tested on Octos)
I used Omap4 CM 12 Kernel Source
cpufreq_interactive is Maybe not needs (I try to overclock.ko but failed)
If you want try to compile another modules try this (All work on Ubunto 14.04 x64)
1. Download kernel source code and extract it
2. Copy .config to extracted path
3. Download Toolchain (If you know about it download it)
4. Make your make file and run 'make'
Code:
MODULES := cpufreq_smartass2.o
obj-m := cpufreq_smartass2.o
ARCH := arm
COMPILER := /home/user/work/arm-eabi-4.6/bin/arm-eabi-
obj-m := $(MODULES)
KDIR := /home/user/work/android_kernel_motorola_omap4-common-cm-12.0
default:
$(MAKE) -C $(KDIR) M=/home/user/work ARCH=$(ARCH) CROSS_COMPILE=$(COMPILER)
clean:
$(MAKE) -C $(KDIR) M=/home/user/work ARCH=$(ARCH) clean
KDIR = Your Omap4 kernel source code path
COMPILER = Your Toolchain path
/home/user/work = your makefile&source's path (you can replace by 'pwd' command but maybe not work well)
NTFS Module
Not compiled by me and not tested
I can mount this module and check filesystem support added
Hi bro...do you have a compiled version? Thanks!
Enviado desde mi XT894 mediante Tapatalk
rblanca said:
Hi bro...do you have a compiled version? Thanks!
Enviado desde mi XT894 mediante Tapatalk
Click to expand...
Click to collapse
It contain source files and KO files