Related
Sources are here:
opensource.motorola.com/sf/frs/do/viewRelease/projects.droidx/frs.droidx_source.shado_x3_1_13_5_10
Hopefully I'll get some time to work on tun.ko for openvpn or vpnc.
But if someone beats me to it, please post it here.
Jeb
Downloading the source and pre-req's now. Will work on the tun.ko when I get back from dinner if no one else has it done.
Droid X source code! What!? Does this mean a bright future could be ahead for us?
XDA App = Pwnage
jebc4 said:
Sources are here:
opensource.motorola.com/sf/frs/do/viewRelease/projects.droidx/frs.droidx_source.shado_x3_1_13_5_10
Hopefully I'll get some time to work on tun.ko for openvpn or vpnc.
But if someone beats me to it, please post it here.
Jeb
Click to expand...
Click to collapse
What exactly is this?
drew630 said:
Downloading the source and pre-req's now. Will work on the tun.ko when I get back from dinner if no one else has it done.
Click to expand...
Click to collapse
Good luck to you and all for any work on this sweet phone. You rock!
Sent from my DROIDX using XDA App
Hi Drew,
Did you have any luck with tun.ko?
Thanks & all the best!
You can click in the bottom right of that that link and download all the files in one zip. SHADO_X3_1.13.5.10.zip is around 275MB.
I have unzipped that, then untarred all the individual archives.
According to the README, you need some files from source.android.com, but their link doesn't work, so that will take some more digging. (maybe I missed something...)
It appears to be the complete build process. I was just hoping to jump in and get a tun.ko modules compiled, but I still can't find the kernel config (I was just quickly looking around).
Anyway, bottom line is that I will have to get up to speed on the android build process, not just the cross compiled kernel process. This will take me some more time.
If anyone gets one before me, please post.
Thanks, Jeb
Anyone had any luck yet?
Sent from my DROIDX using XDA App
hmmm... I think that you should be able to compile the kernel with the default config options, but just enable the tun/tap module... I don't think that the module would really depend too heavily on any of the other config options?
I have compiled the module multiple times with multiple config files but none work. I get a exec failed error which is presumably because i compiled for the wrong architecture.
I have tried all the omap3 configs i found and the defconfig with no luck. I am away today but will look at it again tomorrow.
Sent from my DROIDX using XDA App
I'm no droid expert but it looks like according to the droid readme file you want ARM arch, but the compiler that youo should be using is arm-eabi-gcc (comes from the prebuilt tools from android) - in the Makefile set CROSS_COMPILE to /path/to/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- (or whatever the path to the file is on your build environment)
All the best,
Okay, after a bunch of hours I finally got it compiled
The 'exec format error' that you were probably seeing is not because it was compiled for the wrong architecture. I originally compiled the kernel modules with the default .config file that 'make menuconfig' generated.
When I tried to load it, I got the 'exec format error'. 'dmesg' showed:
<3>[46706.378570] tun: version magic '2.6.29 mod_unload modversions ARMv5 ' should be '2.6.29 preempt mod_unload ARMv7 '
So, that gave me a big hint - after a few hours of customizing I finally got the .config file to a version that will properly compile and load the openvpn module.
I'm attaching the .config file (config.zip) and tun.ko file (tun.ko.zip)
*NOTE* - I have not tested the kernel module yet, so I have no idea if it works. Even if it does work, the .config file is the default one that I manipulated so that the tun module would compile. You probably don't want to use the .config file as it may not match all of the hardware and configs of the droid x. If someone has the actual droid x .config file used by motorola then that would be very helpful.
*update* - the attacked files *do not work*. The working version is available at http://forum.xda-developers.com/showthread.php?p=7417520
Hmm... it looks like tun.ko does compile and install, but is not working properly
# lsmod
tun 11392 0 - Live 0xbf00c000
sec 4808 0 - Live 0xbf000000
# cat /dev/net/tun
/dev/net/tun: No such device
#
The response should be 'cat: /dev/net/tun: File descriptor in bad state'
If we only had the .config file from motorola this would be a lot easier.
mab2 said:
Hmm... it looks like tun.ko does compile and install, but is not working properly
# lsmod
tun 11392 0 - Live 0xbf00c000
sec 4808 0 - Live 0xbf000000
# cat /dev/net/tun
/dev/net/tun: No such device
#
The response should be 'cat: /dev/net/tun: File descriptor in bad state'
If we only had the .config file from motorola this would be a lot easier.
Click to expand...
Click to collapse
I'll post on Motodev board for the running .config (they should have left it in the running kernel at /prog/config.gz ...)
Anyway, thanks trying -- could you post any tips on getting a dev env setup?
I've been using linux for years, but this is my first android setup.
jebc4 said:
I'll post on Motodev board for the running .config (they should have left it in the running kernel at /prog/config.gz ...)
Anyway, thanks trying -- could you post any tips on getting a dev env setup?
I've been using linux for years, but this is my first android setup.
Click to expand...
Click to collapse
I'm in the same boat as you - android newbie, linux veteran.
I started out by getting the whole android environment - http://source.android.com/source/download.html - and ran 'repo init -u git://android.git.kernel.org/platform/manifest.git' - all of that was just so I could get the prebuilt directory with the arm-eabi- files that will be used below.
Then I just downloaded the entire project from opensource.motorola.com - extracted it all, went into the kernel directory and hacked away at the .config file from there.
To compile the kernel I ran:
CROSS_COMPILE=/home/MY_USERNAME/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- make -j 4 kernel
CROSS_COMPILE=/home/MY_USERNAME/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- make modules
I spent a few hours with it - playing around with environment variables and modifying some Makefiles so I may have left out a small thing or two
It looks like running 'make mapphone_defconfig' created a functioning .config file and I used that to generate tun.ko.
I've posted the files at http://forum.xda-developers.com/showthread.php?p=7417520
Attachments removed as per OP's request.
mab2 said:
I'm no droid expert but it looks like according to the droid readme file you want ARM arch, but the compiler that youo should be using is arm-eabi-gcc (comes from the prebuilt tools from android) - in the Makefile set CROSS_COMPILE to /path/to/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- (or whatever the path to the file is on your build environment)
All the best,
Click to expand...
Click to collapse
Thanks but I already got that, been compiling kernels for other Android devices for a while...
drew630 said:
Thanks but I already got that, been compiling kernels for other Android devices for a while...
Click to expand...
Click to collapse
didn't know that - no harm intended
All the best,
mab2 said:
Okay, after a bunch of hours I finally got it compiled
The 'exec format error' that you were probably seeing is not because it was compiled for the wrong architecture. I originally compiled the kernel modules with the default .config file that 'make menuconfig' generated.
When I tried to load it, I got the 'exec format error'. 'dmesg' showed:
<3>[46706.378570] tun: version magic '2.6.29 mod_unload modversions ARMv5 ' should be '2.6.29 preempt mod_unload ARMv7 '
So, that gave me a big hint - after a few hours of customizing I finally got the .config file to a version that will properly compile and load the openvpn module.
I'm attaching the .config file (config.zip) and tun.ko file (tun.ko.zip)
*NOTE* - I have not tested the kernel module yet, so I have no idea if it works. Even if it does work, the .config file is the default one that I manipulated so that the tun module would compile. You probably don't want to use the .config file as it may not match all of the hardware and configs of the droid x. If someone has the actual droid x .config file used by motorola then that would be very helpful.
*update* - the attacked files *do not work*. The working version is available at http://forum.xda-developers.com/showthread.php?p=7417520
Click to expand...
Click to collapse
i'm having a similar issue, how did you fix this ARMvX Version problem when compiling a module? Thanks in advance!
hi
i was using the instructions below and successfully compiled a kernel with ubuntu.
Code:
HOW TO BUILD KERNEL 2.6.35 FOR GT-I9000
1. Visit http://www.codesourcery.com/, download and install Sourcery G++ Lite 2009q3-68 toolchain for ARM EABI.
2. Extract kernel source and move into the top directory.
3. Execute 'make aries_eur_defconfig'.
4. Execute 'make' or 'make -j<n>' where '<n>' is the number of multiple jobs to be invoked simultaneously.
5. If the kernel is built successfully, you will find following files from the top directory:
arch/arm/boot/zImage
crypto/ansi_cprng.ko
drivers/scsi/scsi_wait_scan.ko
drivers/net/wireless/bcm4329/dhd.ko
drivers/misc/vibetonz/vibrator.ko
drivers/misc/fm_si4709/Si4709_driver.ko
drivers/bluetooth/bthid/bthid.ko
But i dont know how to integrate initram or Voodoo (lagfix,sound). Can someone give me a tip how to integrate these.
Any help is welcome.
hi guys....i've downloaded the last kernel sources of franciscofranco 2.35.10 kernel....i've added the sippolo's workaround and then increase the HZ value of the kernel(set at 500) for my custom rom.....after i've done
Code:
make thunderg-perf_defconfig
make zImage -j4
it stuck at this error
Code:
drivers/input/touchscreen/mcs6000_ts.c: In function ‘mcs6000_ts_ioctl_down’:
drivers/input/touchscreen/mcs6000_ts.c:430:6: error: implicit declaration of function ‘gpio_configure’
drivers/input/touchscreen/mcs6000_ts.c: In function ‘mcs6000_ts_probe’:
drivers/input/touchscreen/mcs6000_ts.c:733:25: warning: unused variable ‘hw_ver’
drivers/input/touchscreen/mcs6000_ts.c:733:17: warning: unused variable ‘fw_ver’
make[3]: *** [drivers/input/touchscreen/mcs6000_ts.o] Errore 1
i don't understand why......i think it is a lib problem.....but seems that all libraries are imported!!!can anyone help me??? thnx in advice
Which toolchain?
Sent from my LG-P500 using XDA Premium App
lupohirp said:
hi guys....i've downloaded the last kernel sources of franciscofranco 2.35.10 kernel....i've added the sippolo's workaround and then increase the HZ value of the kernel(set at 500) for my custom rom.....after i've done
Code:
make thunderg-perf_defconfig
make zImage -j4
it stuck at this error
Code:
drivers/input/touchscreen/mcs6000_ts.c: In function ‘mcs6000_ts_ioctl_down’:
drivers/input/touchscreen/mcs6000_ts.c:430:6: error: implicit declaration of function ‘gpio_configure’
drivers/input/touchscreen/mcs6000_ts.c: In function ‘mcs6000_ts_probe’:
drivers/input/touchscreen/mcs6000_ts.c:733:25: warning: unused variable ‘hw_ver’
drivers/input/touchscreen/mcs6000_ts.c:733:17: warning: unused variable ‘fw_ver’
make[3]: *** [drivers/input/touchscreen/mcs6000_ts.o] Errore 1
i don't understand why......i think it is a lib problem.....but seems that all libraries are imported!!!can anyone help me??? thnx in advice
Click to expand...
Click to collapse
.35 kernel have new GPIO library, you should code sippolo's workaround into new driver, do not replace whole file.
mik_os said:
.35 kernel have new GPIO library, you should code sippolo's workaround into new driver, do not replace whole file.
Click to expand...
Click to collapse
Aaaaa i don't know that thanks now it works ;-) now the next step i'm ttying to port the acer liquid multitouch fix thanks mik
Sent from my LG-P500 using XDA App
If you can fix also the tethering and the random bugs
use pdanet for tethering
now i'm stucking at this error...((
arch/arm/mm/built-in.o: In function `__flush_icache_all':
/home/pasquale/Scrivania/Franco.Kernel/2.6.35/arch/arm/include/asm/cacheflush.h:402: undefined reference to `swapper_space'
arch/arm/mm/built-in.o: In function `____atomic_set_bit':
/home/pasquale/Scrivania/Franco.Kernel/2.6.35/arch/arm/include/asm/bitops.h:46: undefined reference to `swapper_space'
arch/arm/mm/built-in.o: In function `spin_unlock':
/home/pasquale/Scrivania/Franco.Kernel/2.6.35/include/linux/spinlock.h:324: undefined reference to `swapper_space'
mm/built-in.o: In function `sync_page':
/home/pasquale/Scrivania/Franco.Kernel/2.6.35/mm/filemap.c:190: undefined reference to `swapper_space'
mm/built-in.o: In function `set_page_dirty':
/home/pasquale/Scrivania/Franco.Kernel/2.6.35/mm/page-writeback.c:1181: undefined reference to `swapper_space'
mm/built-in.o:/home/pasquale/Scrivania/Franco.Kernel/2.6.35/mm/page-writeback.c:1335: more undefined references to `swapper_space' follow
make: *** [.tmp_vmlinux1] Errore 1
Click to expand...
Click to collapse
seems another time a library problem... anyone can help me??
lupohirp said:
now i'm stucking at this error...((
seems another time a library problem... anyone can help me??
Click to expand...
Click to collapse
What have you patched?
It just says it's missing the swapper_space function header, it's not defined.
franciscofranco said:
What have you patched?
Click to expand...
Click to collapse
nothing franco....i've only added sippolo's workaround for base to port acer liquid multitouch fix and set kernel to 500hz i've worked only on mcs6000_ts......but it stuck at this error i don't know why!!! i think it is a library problem....something that is missing...but i don't know what are the libraries that i must install if it is this the problem!(
You downloaded the latest sources? Because I haven't compiled it, I just merged the patches, I might have forgot to apply something. In this case it says it misses the swapper_space reference.
http://lxr.free-electrons.com/source/mm/swap_state.c#L40
http://lxr.free-electrons.com/source/include/linux/mm.h#L771
http://lxr.free-electrons.com/source/include/linux/swap.h#L319
Add the swapper_space code to those files and compile again.
franciscofranco said:
You downloaded the latest sources? Because I haven't compiled it, I just merged the patches, I might have forgot to apply something. In this case it says it misses the swapper_space reference.
http://lxr.free-electrons.com/source/mm/swap_state.c#L40
http://lxr.free-electrons.com/source/include/linux/mm.h#L771
http://lxr.free-electrons.com/source/include/linux/swap.h#L319
Add the swapper_space code to those files and compile again.
Click to expand...
Click to collapse
yes franco i've downloaded latest sources! thanks now i'm going to add it and then try!
franco the swapper_space code that you posted is already there in the three files((
I dunno, I have to leave now, I'll look at it later.
I'm sorry to disappoint you, but there ain't a problem with the kernel, I just compiled it without any modification, just like it is in the sources and it compiles fine. Try to make clean and make distclean, then compile again.
franciscofranco said:
I'm sorry to disappoint you, but there ain't a problem with the kernel, I just compiled it without any modification, just like it is in the sources and it compiles fine. Try to make clean and make distclean, then compile again.
Click to expand...
Click to collapse
yeah franco i know.....i think it is a libraries problem on my linux distro.....but i have installe all the binutils and the header files yesterday also i have tried a dirty hack i tried to set CONFIG_SWAP=n in the thunderg_perf_defconfig configuration file....compiled succesfully but the phone doesn't started ...thanks anyway franco!
Ohai, everypwny!Wanna impress your girlfriend without spending any money? Show her your love through compiling her your own O2X stock kernel!
Requirements: A PC capable of running a virtual Linux machine -- if your PC isn't much older than 5-6 years there shouldn't be a problem. Just make sure you have enough RAM (at least 1,5 - 2 GB recommended) -- no programming - or special linux knowledge required!
## Info: The VMWare image has been created by Jonas Hendrickx for XDA (I just altered/modified it for my needs).
5 simple steps to success: -- EVERYONE can do that!
Download and install Vmware Player (Freeware): http://www.vmware.com/go/get-player (VirtualBox will work too if you like this app better)
Download the file "guestekrnL_doItYourself_developer.rar" (http://guendhoer.com:9000/guestekrnL_doItYourself_developer.rar or https://docs.google.com/open?id=0B5HJ_FpcC9ymM3ZCS0l5RFJtZnc , 1.5GB) and unpack it (using WinRar or 7Zip or...) to any folder of your choice, and afterwards double-click the file "Android Developer.vmx" -- or alternatively open VMware Player first and then import the virtual machine located in the unpacked .rar contents
Click "I copied it" and wait until virtual machine starts up, login with password "root"
Open folder "kernel_source" (on Desktop), double-click file "buildkernel" and click "run in terminal"
Wait until terminal window closes, and start using your new kernel located in folder Desktop/kernel_source/guestekrnL_BUILDS
After this an exact copy of current guestekrnL "SR99R100.1PI.1337-GoodBye" has been built and packaged to a flashable CWM-Zip.
Possible things you can easily change yourself for making your own different/improved kernel versions:
Use a different compilation toolchain
(p.ex. http://releases.linaro.org/<choose a release version>/components/android/toolchain/<choose a gcc version>/)
download the file "android-toolchain-eabi-linaro-..." and replace the folder "android-toolchain-eabi" on Desktop of virtual machine with the unpacked content of the downloaded file
There are many different builds of linaro toolchains available, resulting in different smoothness, battery life and stability of the built kernel. Important:
[*]After toolchain change you have to edit the file "buildkernel" (rightclick -> open with gedit) and change the gcc version number to the one of your new toolchain (you find it here: Desktop/android-toolchain-eabi/lib/gcc/arm-eabi/<gcc version number>), save the file afterwards
Attention: if you switch to a toolchain newer than september 2011, you MUST change
# CONFIG_ALLOW_CPU_ALIGNMENT is not set
Click to expand...
Click to collapse
to
CONFIG_ALLOW_CPU_ALIGNMENT=y
Click to expand...
Click to collapse
in file Desktop/kernel_source/arch/arm/configs/gueste_defconfig -- otherwise kernel won't boot!
Only use toolchains with a number up to "4.6" in name, the newer ones ("4.7") are for ICS and not Gingerbread!
NOT every new toolchain will work with O2X stock kernels -> p.ex. 4.6.4 might not work while 4.6.2 works. Every toolchain older or equal to september 2011 should work BUT maybe you will have to remove some of the build flags not recognized by the older chain.
Always check Desktop/kernel_source/guestekrnL_BUILDS/build.log for errors after you made a new kernel build, especially at the bottom of the file. (Warnings don't matter.)
Use a different version-name for the built kernel
right-click file "buildkernel" in kernel_source folder -> open with gedit -> change kernelVersion there
Use a different general name for the built kernel (other than "guestekrnL")
double-click file "Makefile" in kernel_source folder -> click "Display" -> change kernel name there (change ".9-guestekrnL" to ".9-<yourKernelName>")
Attention: the Android app GuesteOC won't work if it doesn't find the String "guestekrnL" in kernel name! You then have to use the function-reduced version of the OC app by TrymHansen available for all kernels!
Use different build optimization flags
double-click file "Makefile" in kernel_source folder -> click "Display" -> search "CFLAGS_GUESTE" -> edit the build flags there
you find a good overview + explainations of available build flags here http://gcc.gnu.org/onlinedocs/gcc-4.5.3/gcc/Optimize-Options.html
and an interesting article on which flags the toolchain guys use here: http://www.linaro.org/linaro-blog/2...aro-android-2011-10-and-future-optimizations/
it is completely up to YOU which flags to use and not to use!
Stock standard would be:
CFLAGS_GUESTE = -O2
Click to expand...
Click to collapse
while the flags of current guestekrnL are:
CFLAGS_GUESTE = -O3 -ffast-math \
-mtune=cortex-a9 -march=armv7-a \
-mfloat-abi=softfp -mfpu=vfpv3-d16 \
-fsingle-precision-constant -fgraphite-identity \
-ftree-loop-distribution -ftree-loop-linear \
-floop-interchange -floop-strip-mine -floop-block \
-fmodulo-sched -fmodulo-sched-allow-regmoves \
-fno-inline-functions
Click to expand...
Click to collapse
if you have many flags like above, make line-breaks using slashes like above and only put 2-3 flags in one line!
Use different basic kernel configuration values
open folder "kernel_source", click the search-icon, search for "gueste"
edit the 2 files "guestekrnl.c" and "guestekrnl.h" of the result set according to your needs
guestekrnl.c and guestekrnl.h contain many default voltage/speed/... values, you can change them easily there
if you change MAX_OVERCLOCK to a higher value, you might need to change MAX_VOLTAGE as well and have to alter the whole cpu voltage and frequency table (see next point)
Help & explainations here: http://forum.xda-developers.com/showpost.php?p=26696158&postcount=25
Change CPU scaling voltages and speed steps
Edit the file Desktop/kernel_source/arch/arm/mach-tegra/nvrm/core/common/nvrm_clocks_limits.c and alter the two arrays "FakeShmooVoltages[]" and "FakepScaledCpuLimits"
the difference from one voltage step to another one needs to be lower or equal than 100mV;; too low voltages for a step results in freezes !!
the values for MAX_VOLTAGE and MAX_OVERCLOCK are located in file guestekrnL.h!
Help & explainations here: http://forum.xda-developers.com/showpost.php?p=26696158&postcount=25
Example of creating a kernel overclockable to 1.5 GHz: http://forum.xda-developers.com/showpost.php?p=26759653&postcount=58
Enable/Disable kernel features you want to use or don't want to use
open folder "kernel_source", click the search-icon, search for "gueste", edit the file "gueste_defconfig" according to your needs
"<featureName>=y" means the feature is enabled
"#<featureName> is not set" means the feature is disabled
Google for more information about what the different kernel features do, just past the kernel feature name in Google and you will find a description for most of them
Change the text shown to user on CWM installation of kernel
Edit the file Desktop/kernel_source/zipstructure/META-INF/com/google/android/updater-script according to your needs
If you are completely bad-ass you can also compile the compilation toolchain from the official sources yourself instead of using a prebuilt one (even if the prebuilt ones tend to be much more stable than the self-compiled ones)
Useful & important additional tipps/hints: Check this out
Info: If you ever stop the compilation progress before finishing, you have to edit the file "Makefile" in kernel folder and remove the version number from the version string (so only .9-guestekrnL should remain), otherwise you will have double version number in next kernel build.
Start being a kernel developer for XDA right now, today!
Advantages:
- U can impress many users by presenting them your hard work
- You will be acknowledged
- You will be able to easily express your creativity to the world wide web
- And much much more ,,, Sign up today! Oh, wait, no signup needed
If you think you have created an extremely good version of guestekrnL or maybe a completely new kernel, think about posting it here in the thread (I will link the posted kernels here in first posting) or open your own thread for your new kernel, it is up to you
As always I'm not responsible for any harm you might do to your system
Wanna build other stock sources than the ones of guestekrnL? Check this out
Awesome, Stefan!
Downloading...
Yeehhaawwwww!!! This is what im searching for.. thank you very very very much..
Edit: You need to edit your post.. looks unorganized.. quite difficult to read..
Sent from my LG-P990 using XDA
ghadap said:
Yeehhaawwwww!!! This is what im searching for.. thank you very very very much..
Edit: You need to edit your post.. looks unorganized.. quite difficult to read..
Sent from my LG-P990 using XDA
Click to expand...
Click to collapse
Thx I restructured a bit
Great work!
sent from my wii remote
You are great, thx!!!
Hy Stefan,
thx a lot
Herzlichen Dank
Craxx
Direct download Link from my own FTP server coming soon, because some users might have problems with download of the 1.5GB .rar from current mirror
Stefan Gündhör said:
Ohai, everypwny!Wanna impress your girlfriend without spending money? Show her your love through compiling her your own O2X stock kernel!
Click to expand...
Click to collapse
LOL..! I can't think of any more evil scheme that this . Great work, Stefan..!
OH, on afterthoughts, a better thing that serves the purpose would be "How to build a theme..."
Yes Stefan, i have tried 3 times and download stops after around 300 MB, so i wait for direct download link
This is so awesome! Thanks alot!
Sent from my LG-P990 using Tapatalk
Great initiative Stefan. Download stops at ~300MB for me as well, looking forward to trying it.
Are the guestekrnl-scripts included in the finished kernel installer? (Just wondering if GuesteOC will work out of the box.)
TrymHansen said:
Great initiative Stefan. Download stops at ~300MB for me as well, looking forward to trying it.
Are the guestekrnl-scripts included in the finished kernel installer? (Just wondering if GuesteOC will work out of the box.)
Click to expand...
Click to collapse
Yeah I'm just uploading to a new FTP mirror, will take about 2 more hours I guess!
And yeah, the exact zipstructure of current guestekrnL release will be built automatically, including GuesteOC v2.1.5 + Myrt UV GUI, all working out of the box!
(In fact the most actual guestekrnL release was built exactly the way I describe it in first posting: I ran the virtual machine and double-clicked/ran the buildkernel-script. That's it.)
great tutorial Stefan...made it look very simple....NOTHING IS IMPOSSIBLE IN THIS WORLD..I am going to try doing it myself Stefan...as they say...the modern world is a place where a butcher can become a goldsmith, a carpenter can be a captain of the ship and a cleaner can be a pilot....
Thanks for the make urself tool kit mate.I am sure that we will find a lot of Kernels floating in this forum....
just a matter how many are good like urs or temaseks or vadonkas or so many others....time will tell that...have to wait to see that.
I appreciate the hard work put by you to make it so simple for starters and noobs morons like me to understand.
THANKS THANKS THANKS a million.I really mean it truthfully my friend
Stefan, will your tutorial works with original source (eg, V20q) and others (eg, spica HP)? and which file/folder to make our kernel support ext4?
My idea was using stock kernel but add ext4..
Downloading with FF stopped at 500MB, but with Free Download Manager, I could download it without problems.
The sources are very cool. Playing a bit around with them...
ghadap said:
Stefan, will your tutorial works with original source (eg, V20q) and others (eg, spica HP)? and which file/folder to make our kernel support ext4?
My idea was using stock kernel but add ext4..
Click to expand...
Click to collapse
Example of building unchanged stock kernel and only add ext4 compatibility:
start the kernelBuilder,
delete all folders located in Desktop/kernel_source except the folders "guestekrnl_BUILDS" and "zipstructure"
delete all files located in Desktop/kernel_source except the file "buildkernel"
edit the file "buildkernel" (rightClick-> open with gEdit) and change line
make ARCH=arm gueste${1}_defconfig;
Click to expand...
Click to collapse
to
make ARCH=arm star_ifx${1}_defconfig;
Click to expand...
Click to collapse
if you use v20 sources or to
make ARCH=arm star_rev_f_android${1}_defconfig;
Click to expand...
Click to collapse
if you use v10 sources
Download the official kernel sources you want from http://www.lg.com/global/support/opensource/opensource-detail.jsp?detailCustomerModelCode=LGP990
Extract the sources until you get a folder kalled "kernel"
copy the contents from inside "kernel" folder to Desktop/kernel_source
edit file Desktop/kernel_source/drivers/net/wireless/bcm4329/Makefile -> change line
-Wall -Wstrict-prototypes -Werror \
Click to expand...
Click to collapse
to
-Wall -Wstrict-prototypes \
Click to expand...
Click to collapse
edit file Desktop/kernel_source/arch/arm/configs/star_ifx_defconfig (or star_rev_f_android_defconfig): enable ext4 through replacing ext4 config (search for it in the file) with following:
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_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_JBD2=y
# CONFIG_JBD2_DEBUG is not set
Click to expand...
Click to collapse
run the buildkernel script, kernel will be built
Attention: don't use linaro/gcc toolchain newer than september 2011, otherwise kernel won't boot without additional modifications (the included default toolchain will work fine)
For every other stock kernel sources (in order to compile & zip-package them using kernelBuilder) the procedure should work similar!
Spica horsepower kernel however won't work that way, because spica does not upload his defconfig to his sources @GitHub (thus making rebuilding more difficult).
And default defconfig of stock kernel won't work with spica kernel. (Without the right defconfig the kernel does not boot.)
Older spica kernels (older than SR3) completely won't work and can't be rebuilt because spica never offered full sources @GitHub until SR3.
So in order to get a current spica kernel source working, you have to additionally
install the kernel you want to rebuild first on your phone and then
copy the file /proc/config.gz first to your internal SD and then to your PC,
unpack it and then rename the file you get to "spica_defconfig" and
place it in Desktop/kernel_source/arch/arm/configs/
finally edit the buildkernel file again so you have
make ARCH=arm spica${1}_defconfig;
Click to expand...
Click to collapse
in there!
In order to see the differences of guestekrnL compared to stock kernel, Download Meld Diff Viewer in App Store of virtual linux machine and make a folder-comparison of folder Desktop/kernel_source and a folder where you keep unchanged v10E kernel sources!
New direct download mirrors online! (Thx to cojo & myself ) Please report if the .rar files are error-free thx!
Additional tipps/hints:
change your keyboard layout to the one of your language/country (right-click top right most left icon and choose "change keyboard layout")
use versioning! :
double-click "Terminal" on desktop
enter "sudo apt-get install git-core git-gui" (internet connection is required)
enter the password ("root") , confirm installation, after install exit the window
enter "cd Desktop/kernel_source"
enter "git init"
enter "git add ./"
enter "git commit -a" then enter "first commit" & save & exit (the keyboard combinations for this are shown)
enter "git gui" and in first menu click "visualize master's history" -> you will see all commits and changes you made in each commit there
everytime you have made a few changes to the kernel, run "git commit -a" again (and if you add new file git add ./), so a new commit will be added to the commit history and you can see all changes there
use a diff viewer (Meld Diff Viewer of virtual machine linux software repository) for comparing guestekrnL sources with unchanged v10E stock kernel sources, so you can understand custom kernel making better! -- you can find orig sources here http://www.lg.com/global/support/opensource/opensource-detail.jsp?detailCustomerModelCode=LGP990 , download the v10E archive and unpack until you get a folder called "kernel", make a folder-comparison with Meld Diff Viewer afterwards!
Just take your time, begin with only compiling the kernel without changes (and try if it boots) and then slowly change more and more stuff, don't change too many things at once, always compile&try the kernel between more changes.
Learn by viewing the commits other developers make for their kernels, but pay attention that some commits might not be complete or incompatible with your kernel! Some commits of CM7 kernels can be useful, but not all will be compatible. When I started I learned much by just reading the commits of ironkrnL, from this commit page upwards: https://github.com/SetiroN/lge-kernel-star/commits/v2?page=5 (only the things "SetIron" directly commited) -- Please note that my own git repo is a mess, as I don't split up changes to single commits, I just make a commit for all changes a new kernel version has, so my repo won't help u much in learning
Always check Desktop/kernel_source/guestekrnL_BUILDS/build.log for errors after you made a new kernel build, especially at the bottom of the file. (Warnings don't matter.)
Stefan Gündhör said:
New direct download mirrors online! (Thx to cojo & myself ) Please report if the .rar files are error-free thx!
Click to expand...
Click to collapse
Downloaded from Google Docs and unpacked without incident. Now compiling under VirtualBox, which also worked without any modification.
...and as I was writing this it finished. Whole compilation job took less than 2 mins on a 4-core VM. ;-)
Main thread + features + install instructions + dev support
http://forum.xda-developers.com/showthread.php?t=2201860
PhilZ Touch is a CWM Advanced Edition that adds all the features you could ever miss in CWM
It is a well proven recovery for many phones
It also adds a full touch interface a completely configurable GUI
Please give your feedback, what works, and any bug you could encounter
Read the features, and check if you are missing something
Also, do not forget to read about the powerful aroma file manager integration and double tap shortcut
Download links
Last version can be found here:
celoxhd
http://goo.im/devs/philz_touch/CWM_Advanced_Edition
Original dev supporter:
http://www.androidfilehost.com/?w=files&flid=12461
Click to expand...
Click to collapse
Huge thanks and credits to @titanic_fanatic
He ported the sources and provided all needed stuff to build it
Excellent, many thanks for all the work you put into this for us. We very much appreciate it
On the topic of bugs, I only have two (but I really don't mind at all). The screenshot works except for the resulting image is wavy coloured lines and no vibration regardless of the setting.
We've never had either, so I'm not missing them at all, but wanted to let you know.
Take care Phil
Sent from my SGH-I757M using XDA Premium 4 mobile app
titanic_fanatic said:
Excellent, many thanks for all the work you put into this for us. We very much appreciate it
On the topic of bugs, I only have two (but I really don't mind at all). The screenshot works except for the resulting image is wavy coloured lines and no vibration regardless of the setting.
We've never had either, so I'm not missing them at all, but wanted to let you know.
Take care Phil
Sent from my SGH-I757M using XDA Premium 4 mobile app
Click to expand...
Click to collapse
Added you to credits on the device page in main thread and here in OP :good:
screen shots: forget it, I should disable it once for all on new devices. Sadly, we have no working thing for most new devices. Only some Sammy and the mako did work
vibration: can you provide the path for vibrator?, it should be in kernel drivers I guess. Currently I use:
Code:
/sys/class/timed_output/vibrator/enable
We echo some msec value there and it Bzzzzz for that msec
Phil3759 said:
Added you to credits on the device page in main thread and here in OP :good:
screen shots: forget it, I should disable it once for all on new devices. Sadly, we have no working thing for most new devices. Only some Sammy and the mako did work
vibration: can you provide the path for vibrator?, it should be in kernel drivers I guess. Currently I use:
Code:
/sys/class/timed_output/vibrator/enable
We echo some msec value there and it Bzzzzz for that msec
Click to expand...
Click to collapse
That's the correct path Maybe the driver isn't loading properly... I'll see if I can get a dmesg Log when booting recovery to see if the driver actually loads
Sent from my SGH-I757M using XDA Premium 4 mobile app
Vibrator Fixed
Hey @Phil3759, I did a whole lot of investigating tonight and have figured out and fixed the vibration issue. I discovered that it was trying to load the module from /system/lib/modules/vibrator.ko. This is my roms ko file and is currently for cm10.2. The kerenel I setup for this recovery is our cm11 kernel and uses a different module (compiled against that kernel). It was trying to load the cm10.2 module from my rom into the cm11 kernel which obviously doesn't work, so I split the recovery.img added the correct module at /tmp/system/lib/modules added the necessary lines to init.recovery.qcom.rc and repackaged the kernel and new ramdisk.
I have flashed this and tested it. it works like a charm now Can you replace the version in your repo with this new one?
titanic_fanatic said:
Hey @Phil3759, I did a whole lot of investigating tonight and have figured out and fixed the vibration issue. I discovered that it was trying to load the module from /system/lib/modules/vibrator.ko. This is my roms ko file and is currently for cm10.2. The kerenel I setup for this recovery is our cm11 kernel and uses a different module (compiled against that kernel). It was trying to load the cm10.2 module from my rom into the cm11 kernel which obviously doesn't work, so I split the recovery.img added the correct module at /tmp/system/lib/modules added the necessary lines to init.recovery.qcom.rc and repackaged the kernel and new ramdisk.
I have flashed this and tested it. it works like a charm now Can you replace the version in your repo with this new one?
Click to expand...
Click to collapse
If you update your device tree, it would be even better. That way, my next updates won't be affected again
Phil3759 said:
If you update your device tree, it would be even better. That way, my next updates won't be affected again
Click to expand...
Click to collapse
I just finished updating my device tree with the necessary fixes for the vibrator to work in recovery
https://github.com/titanic-fanatic/android_device_samsung_celoxhd/commit/6f005f4045551e48adfa0ac228641bf8d6a12128
Also, not that I care, but Amarullz was able to get screenshots working in the latest AromaInstaller (Flamboyan I think). If your interested, maybe ask him what he did to get it to work. He could probably point you to the commits
Take Care
titanic_fanatic said:
I just finished updating my device tree with the necessary fixes for the vibrator to work in recovery
https://github.com/titanic-fanatic/...mmit/6f005f4045551e48adfa0ac228641bf8d6a12128
Also, not that I care, but Amarullz was able to get screenshots working in the latest AromaInstaller (Flamboyan I think). If your interested, maybe ask him what he did to get it to work. He could probably point you to the commits
Take Care
Click to expand...
Click to collapse
Looking at it quickly: why that first extra / at end of copy files?
Also, won't be cleaner to use standard path like /lib/modules?
/tmp can be wiped and modified by installers and recovery
Phil3759 said:
Looking at it quickly: why that first extra / at end of copy files?
Also, won't be cleaner to use standard path like /lib/modules?
/tmp can be wiped and modified by installers and recovery
Click to expand...
Click to collapse
The first / is because it's part of a set of chained product copy files directives:
# Ramdisk
PRODUCT_COPY_FILES += \
device/samsung/celoxhd/ramdisk/init.qcom.usb.rc:root/init.qcom.usb.rc \
# BT firmware
PRODUCT_COPY_FILES += \
device/samsung/celoxhd/firmware/bcm4330B1.hcd:system/etc/firmware/bcm4330B1.hcd \
# Needed for vibrator to work in recovery
PRODUCT_COPY_FILES += \
device/samsung/celoxhd/recovery/root/lib/modules/vibrator.ko:recovery/root/lib/modules/vibrator.ko \
device/samsung/celoxhd/recovery/root/init.recovery.qcom.rc:recovery/root/init.recovery.qcom.rc
Click to expand...
Click to collapse
I did this only to adhere to the existing pattern in my device.mk file, the one appended to the first PRODUCT_COPY_FILES was already there from when I forked the project and took that as being a set of chained commands. If this is wrong, I will change it
I definitely see your point on the /tmp dir. I here the commit that fixes that
https://github.com/titanic-fanatic/android_device_samsung_celoxhd/commit/61da6be2d60a03797ddc31c0187cc5c62bb3a97a
titanic_fanatic said:
The first / is because it's part of a set of chained product copy files directives:
I did this only to adhere to the existing pattern in my device.mk file, the one appended to the first PRODUCT_COPY_FILES was already there from when I forked the project and took that as being a set of chained commands. If this is wrong, I will change it
I definitely see your point on the /tmp dir. I here the commit that fixes that
https://github.com/titanic-fanatic/android_device_samsung_celoxhd/commit/61da6be2d60a03797ddc31c0187cc5c62bb3a97a
Click to expand...
Click to collapse
I uploaded 6.01.2 with your fixed vibrator :good:
PRODUCT_COPY_FILES:
Maybe I am wrong, but usually, in make files, only the last element has no trailing /
Code:
# Ramdisk
PRODUCT_COPY_FILES += \
device/samsung/celoxhd/ramdisk/init.qcom.usb.rc:root/init.qcom.usb.rc
xxx-yyy \
zzz-pppp\
last_one
# BT firmware
PRODUCT_COPY_FILES += \
device/samsung/celoxhd/firmware/bcm4330B1.hcd:system/etc/firmware/bcm4330B1.hcd
# Needed for vibrator to work in recovery
PRODUCT_COPY_FILES += \
device/samsung/celoxhd/recovery/root/tmp/system/lib/modules/vibrator.ko:recovery/root/tmp/system/lib/modules/vibrator.ko \
device/samsung/celoxhd/recovery/root/init.recovery.qcom.rc:recovery/root/init.recovery.qcom.rc
Also, just for info, my full gui builds need these, often in cm.mk:
Code:
TARGET_SCREEN_HEIGHT := 1280
TARGET_SCREEN_WIDTH := 720
Phil3759 said:
I uploaded 6.01.2 with your fixed vibrator :good:
PRODUCT_COPY_FILES:
Maybe I am wrong, but usually, in make files, only the last element has no trailing /
Code:
# Ramdisk
PRODUCT_COPY_FILES += \
device/samsung/celoxhd/ramdisk/init.qcom.usb.rc:root/init.qcom.usb.rc
xxx-yyy \
zzz-pppp\
last_one
# BT firmware
PRODUCT_COPY_FILES += \
device/samsung/celoxhd/firmware/bcm4330B1.hcd:system/etc/firmware/bcm4330B1.hcd
# Needed for vibrator to work in recovery
PRODUCT_COPY_FILES += \
device/samsung/celoxhd/recovery/root/tmp/system/lib/modules/vibrator.ko:recovery/root/tmp/system/lib/modules/vibrator.ko \
device/samsung/celoxhd/recovery/root/init.recovery.qcom.rc:recovery/root/init.recovery.qcom.rc
Also, just for info, my full gui builds need these, often in cm.mk:
Code:
TARGET_SCREEN_HEIGHT := 1280
TARGET_SCREEN_WIDTH := 720
Click to expand...
Click to collapse
It seems that the extra \ was introduced in our JB branch and has never been fixed. Various examples in googles repo confirm that you are correct. I have removed the extra \ and added the properties you mentioned above to the cm.mk file. Here is the relevant commit:
https://github.com/titanic-fanatic/android_device_samsung_celoxhd/commit/6ce5f482d63cd70cf64a3d1428ad2428844e23cb
Hey @Phil3759, I just downloaded and flashed the latest version. Thanks kindly for the update
I see that I made a boo boo and forgot to update the path to the vibrator in the init.recovery.qcom.rc file and so the vibrator isn't loading. I've fixed that with the following commit:
https://github.com/titanic-fanatic/android_device_samsung_celoxhd/commit/b87b3267d75a0de1bb94f68850ae6986ac4dde92
One other thing, for some reason the background is tiled 4 times as if my devices dimensions were not set correctly. I do have that set in my cm.mk file. Here was the commit for that:
https://github.com/titanic-fanatic/android_device_samsung_celoxhd/commit/6ce5f482d63cd70cf64a3d1428ad2428844e23cb
Is there somewhere else I'm supposed to specify the device screen dimensions?
Thanks again for the new version and I apologize for missing that path in the init.recovery.qcom.rc.
titanic_fanatic said:
Hey @Phil3759, I just downloaded and flashed the latest version. Thanks kindly for the update
I see that I made a boo boo and forgot to update the path to the vibrator in the init.recovery.qcom.rc file and so the vibrator isn't loading. I've fixed that with the following commit:
https://github.com/titanic-fanatic/android_device_samsung_celoxhd/commit/b87b3267d75a0de1bb94f68850ae6986ac4dde92
One other thing, for some reason the background is tiled 4 times as if my devices dimensions were not set correctly. I do have that set in my cm.mk file. Here was the commit for that:
https://github.com/titanic-fanatic/android_device_samsung_celoxhd/commit/6ce5f482d63cd70cf64a3d1428ad2428844e23cb
Is there somewhere else I'm supposed to specify the device screen dimensions?
Thanks again for the new version and I apologize for missing that path in the init.recovery.qcom.rc.
Click to expand...
Click to collapse
About background image:
I think this is the cause:
https://github.com/CyanogenMod/android_device_samsung_celox-common/blob/cm-11.0/celox-common.mk#L45
called here:
https://github.com/titanic-fanatic/...xhd/blob/philz-recovery-cm-11.0/device.mk#L37
Your cm.mk settings are overridden
Maybe just move device resolution from cm.mk to device.mk after Line 37
About the vibrator: do you need exfat through kernel modules? If yes, let me know. It is much faster than fuse. For that, you'll need to compile the kernel with samsung exfat sources. I can guide you for that
Else, link me to what exactly is needed in your kernel for the vibrator to work. If it is just a change in defconfig, I can add it and compile along exfat
Phil3759 said:
About background image:
I think this is the cause:
https://github.com/CyanogenMod/android_device_samsung_celox-common/blob/cm-11.0/celox-common.mk#L45
called here:
https://github.com/titanic-fanatic/...xhd/blob/philz-recovery-cm-11.0/device.mk#L37
Your cm.mk settings are overridden
Maybe just move device resolution from cm.mk to device.mk after Line 37
About the vibrator: do you need exfat through kernel modules? If yes, let me know. It is much faster than fuse. For that, you'll need to compile the kernel with samsung exfat sources. I can guide you for that
Else, link me to what exactly is needed in your kernel for the vibrator to work. If it is just a change in defconfig, I can add it and compile along exfat
Click to expand...
Click to collapse
I see it, and now as you've recommended I reset the values after calling celox-common.mk. The commit is here:
https://github.com/titanic-fanatic/android_device_samsung_celoxhd/commit/cd44b44b7cbb0ddb3b649ac5c4f8d5d1f51d7998
As for exfat, I will be adding this when I have some time to rebuild this kernel. We can worry about exfat for the next time you do device updates and hopefully I'll have it ready by that time. I have your main thread in my subscriptions, so I'll know when your ready to release a new version and will remind you to sync with my repo at that time
Thanks for catching that issue with screen size
titanic_fanatic said:
I see it, and now as you've recommended I reset the values after calling celox-common.mk. The commit is here:
https://github.com/titanic-fanatic/android_device_samsung_celoxhd/commit/cd44b44b7cbb0ddb3b649ac5c4f8d5d1f51d7998
As for exfat, I will be adding this when I have some time to rebuild this kernel. We can worry about exfat for the next time you do device updates and hopefully I'll have it ready by that time. I have your main thread in my subscriptions, so I'll know when your ready to release a new version and will remind you to sync with my repo at that time
Thanks for catching that issue with screen size
Click to expand...
Click to collapse
np
Let me know if you need info to add exfat
I will update with the current fixes asap
Phil3759 said:
np
Let me know if you need info to add exfat
I will update with the current fixes asap
Click to expand...
Click to collapse
Can I get a link to these fixes please when you have it ready
titanic_fanatic said:
Can I get a link to these fixes please when you have it ready
Click to expand...
Click to collapse
https://github.com/PhilZ-cwm6/GE-Ed...mmit/a8963ca853cfd88466716f8a25434d5c469a2bb9
It is just adding the exfat folder in drivers and edit the makefile with -y to have it built as static. No need to separate modules
Phil3759 said:
https://github.com/PhilZ-cwm6/GE-Ed...mmit/a8963ca853cfd88466716f8a25434d5c469a2bb9
It is just adding the exfat folder in drivers and edit the makefile with -y to have it built as static. No need to separate modules
Click to expand...
Click to collapse
Excellent. I'll add it soon, it should be a pretty quick process.
Quick question though since we are currently having some issues with random reboots in all of my latest builds of cm-11.0. My kernel was updated at some point, and that's when my builds started having random reboots. They are actually not random, but seem rather consistent.
My question is this, do you think this will affect operation in recovery? I believe the reboots are due to kernel panic from a graphics related issue but am not sure if that will only affect the rom and not recovery.
If this might affect recovery, I think I'll build it as a module so I can just add it to my device tree instead of having to update the entire zImage. This will at least give us the old working kernel with the exfat module included.
What do you think?
Sent from my SGH-I757M using XDA Premium 4 mobile app
titanic_fanatic said:
Excellent. I'll add it soon, it should be a pretty quick process.
Quick question though since we are currently having some issues with random reboots in all of my latest builds of cm-11.0. My kernel was updated at some point, and that's when my builds started having random reboots. They are actually not random, but seem rather consistent.
My question is this, do you think this will affect operation in recovery? I believe the reboots are due to kernel panic from a graphics related issue but am not sure if that will only affect the rom and not recovery.
If this might affect recovery, I think I'll build it as a module so I can just add it to my device tree instead of having to update the entire zImage. This will at least give us the old working kernel with the exfat module included.
What do you think?
Sent from my SGH-I757M using XDA Premium 4 mobile app
Click to expand...
Click to collapse
you'll end up with magic number mismatch errors
There are some hacks to force loading on mismatch, but, in my previous experience, they failed on many devices
the drivers must be compiled along the zImage
Now, why don't we drop to celox-common kernel which seems to work fine on skyrocket and other phones?
Phil3759 said:
you'll end up with magic number mismatch errors
There are some hacks to force loading on mismatch, but, in my previous experience, they failed on many devices
the drivers must be compiled along the zImage
Now, why don't we drop to celox-common kernel which seems to work fine on skyrocket and other phones?
Click to expand...
Click to collapse
It is for the most part the same kernel with the few quirks of my device. More notably is my devices display drivers are mipi s6e8aa0_720hd and had to fork the kernel to apply some fixes to that driver as it's not maintained by cm.
Hmmm. I'll be the guinea pig. I will build with the new kernel and I'll test the recovery before you upload. I just think that the issue might be a memory leak in android causing the kernel to panic (overlay issue) and might not have an effect in recovery since its graphics are very basic.
I'll let you know when it's ready
Sent from my SGH-I757M using XDA Premium 4 mobile app