Trying to build the stock kernel from source [SOLVED] - Huawei Ideos X5 U8800

edit: The stock kernel can be built following this thread.
I'm trying to build the stock kernel from source (the one from huaweidevice). I'm running Ubuntu 10.10 64-bit.
I've gotten this far:
- I've extracted config from phone /proc/config.gz and copied it to kernel/.config
- I went through this guide: source.android.com source initializing.html
- I created some symbolic links to get rid of file not found errors when compiling:
kernel-2.6.32-U8800-Froyo/kernel/net/netfilter$ ln -s xt_connmark.c xt_CONNMARK.c
kernel-2.6.32-U8800-Froyo/kernel/net/netfilter$ ln -s xt_HL.c xt_hl.c
kernel-2.6.32-U8800-Froyo/kernel/net/netfilter$ ln -s xt_MARK.c xt_mark.c
kernel-2.6.32-U8800-Froyo/kernel/net/ipv4/netfilter$ ln -s ipt_ECN.c ipt_ecn.c
kernel-2.6.32-U8800-Froyo/kernel/include/linux/netfilter$ ln -s xt_mark.h xt_MARK.h
kernel-2.6.32-U8800-Froyo/kernel/include/linux/netfilter_ipv4$ ln -s ipt_ecn.h ipt_ECN.h
kernel-2.6.32-U8800-Froyo/kernel/include/linux/netfilter$ ln -s xt_DSCP.h xt_dscp.h
kernel-2.6.32-U8800-Froyo/kernel/include/linux/netfilter_ipv4$ ln -s ipt_ttl.h ipt_TTL.h
kernel-2.6.32-U8800-Froyo/kernel/include/linux/netfilter_ipv6$ ln -s ip6t_hl.h ip6t_HL.h
Now for the cross compilation I've tried 3 different toolchains:
- The ones from developer.android.com sdk ndk index.html
- and codesourcery.com sgpp lite arm portal package8734/public/arm-none-eabi/arm-2011.03-42-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
then I've tried compiling with:
make -j8 ARCH=arm CROSS_COMPILE=.../android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-
and
make -j8 ARCH=arm CROSS_COMPILE=.../android-ndk-r5b/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin/arm-eabi-
and
make -j8 ARCH=arm CROSS_COMPILE=.../arm-2011.03/bin/arm-none-eabi-
they all give me output similar to this (this is with the 4.4.0 toolchain):
Code:
CHK include/linux/version.h
SYMLINK include/asm -> include/asm-arm
make[1]: `include/asm-arm/mach-types.h' is up to date.
CHK include/linux/utsrelease.h
CALL scripts/checksyscalls.sh
CHK include/linux/compile.h
CC net/netfilter/xt_MARK.o
CC net/ipv4/netfilter/ipt_ecn.o
CC net/netfilter/xt_NFQUEUE.o
CC net/ipv4/netfilter/ipt_NETMAP.o
CC net/netfilter/xt_comment.o
CC net/netfilter/xt_connlimit.o
net/netfilter/xt_MARK.c: In function 'mark_tg':
net/netfilter/xt_MARK.c:32: error: dereferencing pointer to incomplete type
net/netfilter/xt_MARK.c:32: error: dereferencing pointer to incomplete type
net/netfilter/xt_MARK.c: At top level:
net/netfilter/xt_MARK.c:41: error: invalid application of 'sizeof' to incomplete type 'struct xt_mark_tginfo2'
make[2]: *** [net/netfilter/xt_MARK.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CC net/ipv4/netfilter/ipt_REDIRECT.o
CC net/ipv4/netfilter/ipt_REJECT.o
cc1: warnings being treated as errors
net/ipv4/netfilter/ipt_ecn.c:29: error: 'struct ipt_ECN_info' declared inside parameter list
net/ipv4/netfilter/ipt_ecn.c:29: error: its scope is only this definition or declaration, which is probably not what you want
net/ipv4/netfilter/ipt_ecn.c: In function 'set_ect_ip':
net/ipv4/netfilter/ipt_ecn.c:33: error: 'XT_DSCP_MASK' undeclared (first use in this function)
net/ipv4/netfilter/ipt_ecn.c:33: error: (Each undeclared identifier is reported only once
net/ipv4/netfilter/ipt_ecn.c:33: error: for each function it appears in.)
net/ipv4/netfilter/ipt_ecn.c:33: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:40: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c: At top level:
net/ipv4/netfilter/ipt_ecn.c:48: error: 'struct ipt_ECN_info' declared inside parameter list
net/ipv4/netfilter/ipt_ecn.c: In function 'set_ect_tcp':
net/ipv4/netfilter/ipt_ecn.c:58: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:58: error: 'IPT_ECN_OP_SET_ECE' undeclared (first use in this function)
net/ipv4/netfilter/ipt_ecn.c:59: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:60: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:60: error: 'IPT_ECN_OP_SET_CWR' undeclared (first use in this function)
net/ipv4/netfilter/ipt_ecn.c:61: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:69: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:70: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:71: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:72: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c: In function 'ecn_tg':
net/ipv4/netfilter/ipt_ecn.c:84: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:84: error: 'IPT_ECN_OP_SET_IP' undeclared (first use in this function)
net/ipv4/netfilter/ipt_ecn.c:85: error: passing argument 2 of 'set_ect_ip' from incompatible pointer type
net/ipv4/netfilter/ipt_ecn.c:29: note: expected 'const struct ipt_ECN_info *' but argument is of type 'const struct ipt_ECN_info *'
net/ipv4/netfilter/ipt_ecn.c:88: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:88: error: 'IPT_ECN_OP_SET_ECE' undeclared (first use in this function)
net/ipv4/netfilter/ipt_ecn.c:88: error: 'IPT_ECN_OP_SET_CWR' undeclared (first use in this function)
net/ipv4/netfilter/ipt_ecn.c:90: error: passing argument 2 of 'set_ect_tcp' from incompatible pointer type
net/ipv4/netfilter/ipt_ecn.c:48: note: expected 'const struct ipt_ECN_info *' but argument is of type 'const struct ipt_ECN_info *'
net/ipv4/netfilter/ipt_ecn.c: In function 'ecn_tg_check':
net/ipv4/netfilter/ipt_ecn.c:101: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:101: error: 'IPT_ECN_OP_MASK' undeclared (first use in this function)
net/ipv4/netfilter/ipt_ecn.c:103: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:106: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:106: error: 'XT_DSCP_MASK' undeclared (first use in this function)
net/ipv4/netfilter/ipt_ecn.c:108: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:111: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:111: error: 'IPT_ECN_OP_SET_ECE' undeclared (first use in this function)
net/ipv4/netfilter/ipt_ecn.c:111: error: 'IPT_ECN_OP_SET_CWR' undeclared (first use in this function)
net/ipv4/netfilter/ipt_ecn.c: At top level:
net/ipv4/netfilter/ipt_ecn.c:124: error: invalid application of 'sizeof' to incomplete type 'struct ipt_ECN_info'
make[3]: *** [net/ipv4/netfilter/ipt_ecn.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[1]: *** [net/netfilter] Error 2
make[1]: *** Waiting for unfinished jobs....
make[2]: *** [net/ipv4/netfilter] Error 2
make[1]: *** [net/ipv4] Error 2
make: *** [net] Error 2
sorry for the messed up links, I'm not allowed to post links (yet).
Any ideas how to get forward?
The reason I'm doing this is that I want to fix the bug that the internal mic is disabled when a stereo headphone / or a 3.5mm jack - 2xrca cable is plugged in. I think I can fix it from kernel-2.6.32-U8800-Froyo/kernel/arch/arm/mach-msm/rpc_server_handset.c, but first I have to get my build environment working

copy missing files instead of link
xt_MARK.c and xt_mark.c are not the same, at least in my source
try copy the missing file from android source
http://android.git.kernel.org/?p=kernel/msm.git;a=tree

wmi543 said:
xt_MARK.c and xt_mark.c are not the same, at least in my source
try copy the missing file from android source
Click to expand...
Click to collapse
It worked I copied all the files from the git instead of ln -s.
"Kernel: arch/arm/boot/zImage is ready"
Thanks for the quick reply.
Then I had to remove comment out CONFIG_FB_MSM_MDDI_NT35582_WVGA=y line from .config and answer no to two questions when running make.
I used the 4.4.0 toolchain
Now I have the zImage but don't know how it'll work because the CONFIG_FB_MSM_MDDI_NT35582_WVGA probably has something to do with the display type.
BTW I've taken a backup with genokolar's recovery img. When I try this new kernel and if I can't boot, I should be able to get it to boot again by doing a restore from the earlier backup?
Now I'll start looking into packing the kernel to an .img (android-dls.com wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images#Structure_of_boot_and_recovery_images)..

OK. I copied the boot.img from the phone in bootloader mode, unpacked it with unpack-bootimg.pl. Then I bsdiffed (binary diff) the resulting boot.img-kernel.gz with the Image file I built, the patch file is only 389K so looks like they are quite similar. The only differences may be because of the display thing I changed in the Makefile.
Might try tomorrow to replace the unpacked kernel with the Image file and see if it works. What is the worst case scenario? I should always be able to restore from the old backup if it doesn't boot?
Maybe I'll also try to get the display thing to build right before trying it on the phone
edit: I read somewhere the .gz extension in the unpacked kernel file is a bug with the unpacking script, so "boot.img-kernel.gz" is actually the unpacked kernel file (so it should be the same as compiled Image) ?

Looks like the unpack-bootimg.pl and repack-bootimg.pl are not working right for the U8800 boot.img. I just tried to unpack the original boot.img and repack it, I got a blue screen when trying to boot. I could restore the original just by going to bootloader mode and copying back the original.
Any ideas how to unpack and repack the boot.img of the U8800?

You can repack the boot/recovery images with the following:
Code:
./mkbootfs RAMDISK DIRECTORY | ./minigzip > ramdisk-boot.img
./mkbootimg --kernel KERNEL --ramdisk ramdisk-boot.img --base 0x00200000 --pagesize 4096 --cmdline 'console=ttyDCC0 androidboot.hardware=huawei' -o boot.img
I just modified the repack perl script accordingly and added lines so that it will mount cust_backup and transfer the image across for me. Saves heaps of time.

stockwell said:
You can repack the boot/recovery images with the following:
Code:
./mkbootfs RAMDISK DIRECTORY | ./minigzip > ramdisk-boot.img
./mkbootimg --kernel KERNEL --ramdisk ramdisk-boot.img --base 0x00200000 --pagesize 4096 --cmdline 'console=ttyDCC0 androidboot.hardware=huawei' -o boot.img
I just modified the repack perl script accordingly and added lines so that it will mount cust_backup and transfer the image across for me. Saves heaps of time.
Click to expand...
Click to collapse
I used the unpack script from http://forum.xda-developers.com/showthread.php?t=891333 then modified the line "#$bootimg = substr($bootimg,2048);" to "$bootimg = substr($bootimg,4096);". There's still a difference of 215 bytes with the repacked img, but it works.
Now I can test the kernel I built myself. Thank you for the help.
edit: Looks like the built kernel doesn't work, now I can start tackling that

CONFIG_FB_MSM_MDDI_NT35582_WVGA=y
if you see only blue screen when you boot your own kernel, refer to my experience, edit .config, change 2 lines as below instead of comment out CONFIG_FB_MSM_MDDI_NT35582_WVGA=y should fix it
CONFIG_FB_MSM_MDDI_AUTO_DETECT=y
CONFIG_FB_MSM_TRY_MDDI_CATCH_LCDC_PRISM=y
BTW, there is a tool "abootimg" which is quite handy for packing the kernel
http://gitorious.org/ac100/abootimg

wmi543 said:
if you see only blue screen when you boot your own kernel, refer to my experience, edit .config, change 2 lines as below instead of comment out CONFIG_FB_MSM_MDDI_NT35582_WVGA=y should fix it
CONFIG_FB_MSM_MDDI_AUTO_DETECT=y
CONFIG_FB_MSM_TRY_MDDI_CATCH_LCDC_PRISM=y
BTW, there is a tool "abootimg" which is quite handy for packing the kernel
http://gitorious.org/ac100/abootimg
Click to expand...
Click to collapse
Works! great! Thanks for the help. Hopefully soon I can release my fixed kernel

Sorry, I'm new to Android. What advantages are there if you get the stock kernel or whatever?

"Stock" means the kernel that comes with the phone when you buy it. I just wanted to build it so I could modify it. I created a modified kernel that allows you to use the internal mic with headphones or for example when you connect the phone to your car stereo. The modified kernel is in the other thread.
Sent from my u8800 using XDA App

So with custom kernel you can achieve more functionality just like normal linux? Good. Would be awesome.

Related

Problems with NDK... zlib

Hello XDA-people again (specifically the developers this time)
i have been recently trying to compile a game (www.teeworlds.com) for android.
it is sdl-based, so i used the NDK and this port of SDL for android:
http://github.com/pelya/commandergenius/archives/sdl_android
things have been going relatively good so far, i think with GLES 2.0 i will be able to compile it so it will finally be working however, i am having issues with zlib when compiling:
Code:
[email protected]:/home/reverse/and/android-ndk-r3# make APP=teeworlds
Android NDK: Building for application 'teeworlds'
Compile thumb : teeworlds <= apps/teeworlds/project/jni/teeworlds/engine/e_datafile.c
apps/teeworlds/project/jni/teeworlds/engine/e_datafile.c: In function 'datafile_get_data_impl':
apps/teeworlds/project/jni/teeworlds/engine/e_datafile.c:244: error: 'Bytef' undeclared (first use in this function)
apps/teeworlds/project/jni/teeworlds/engine/e_datafile.c:244: error: (Each undeclared identifier is reported only once
apps/teeworlds/project/jni/teeworlds/engine/e_datafile.c:244: error: for each function it appears in.)
apps/teeworlds/project/jni/teeworlds/engine/e_datafile.c:244: error: expected expression before ')' token
apps/teeworlds/project/jni/teeworlds/engine/e_datafile.c: In function 'datafile_add_data':
apps/teeworlds/project/jni/teeworlds/engine/e_datafile.c:462: error: 'Bytef' undeclared (first use in this function)
apps/teeworlds/project/jni/teeworlds/engine/e_datafile.c:462: error: expected expression before ')' token
i have been modifying the headers a little, which got some "undefined method" errors removed. here are the original error messages:
Code:
SharedLibrary : libteeworlds.so
out/apps/teeworlds/armeabi/objs/teeworlds/engine/e_datafile.o: In function `datafile_crc':
/home/reverse/and/android-ndk-r3/apps/teeworlds/project/jni/teeworlds/engine/e_datafile.c:671: undefined reference to `crc32'
out/apps/teeworlds/armeabi/objs/teeworlds/engine/e_datafile.o: In function `datafile_add_data':
/home/reverse/and/android-ndk-r3/apps/teeworlds/project/jni/teeworlds/engine/e_datafile.c:458: undefined reference to `compressBound'
/home/reverse/and/android-ndk-r3/apps/teeworlds/project/jni/teeworlds/engine/e_datafile.c:461: undefined reference to `compress'
out/apps/teeworlds/armeabi/objs/teeworlds/engine/e_datafile.o: In function `datafile_get_data_impl':
/home/reverse/and/android-ndk-r3/apps/teeworlds/project/jni/teeworlds/engine/e_datafile.c:243: undefined reference to `uncompress'
collect2: ld returned 1 exit status
any ideas on how to get this fixed?
Hi,
Try to replace in engine/e_datafile.c :
#include <zlib.h>
by
#include "external/zlib/zlib.h"
It looks like that you are using an other zlib while one is included in the Teeworlds sources. If you can say to NDK that he shouldn't use an external zlib.
I've made a barely playable version, just do "git pull" on the libSDL repo, change symlink project/jni/application/src to "teeworlds", run "ChangeAppSettings.sh -a" and compile it.
(Posting links is disabled for new users? This forum is useless).
Hey there Pelya, glad to see y on xda.
To op, listen to Pelya, he knows what he's talking about.

[Q] Need help to compile CM build from source on Mac

Hello folks, I hope this is going to the right section, otherwise mods please move it to the right one as I have no clue of where to post it ...
Ok, lets being saying I followed this to letter and even though I did exactly what is said on the wiki I am facing lots of weird errors when trying to compile fastboot and mkbootimg from my mac (intel).. I didn't try to compile anything else as I just need those two tools atm and however I don't think it will work..
Those are the errors I am talking about
Code:
Pietros-MacBook-Pro:fastboot Pietro$ make fastboot
cc fastboot.c -o fastboot
fastboot.c:40:21: error: bootimg.h: No such file or directory
fastboot.c:41:29: error: zipfile/zipfile.h: No such file or directory
fastboot.c:45: error: expected ‘)’ before ‘*’ token
fastboot.c:47: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
fastboot.c: In function ‘load_bootable_image’:
fastboot.c:261: error: ‘BOOT_MAGIC’ undeclared (first use in this function)
fastboot.c:261: error: (Each undeclared identifier is reported only once
fastboot.c:261: error: for each function it appears in.)
fastboot.c:261: error: ‘BOOT_MAGIC_SIZE’ undeclared (first use in this function)
fastboot.c:262: error: ‘boot_img_hdr’ undeclared (first use in this function)
fastboot.c:262: error: expected expression before ‘)’ token
fastboot.c:282: warning: assignment makes pointer from integer without a cast
fastboot.c:287: error: expected expression before ‘)’ token
fastboot.c: At top level:
fastboot.c:294: error: expected ‘)’ before ‘zip’
fastboot.c:414: error: expected ‘)’ before ‘zip’
fastboot.c: In function ‘do_update’:
fastboot.c:430: error: ‘zipfile_t’ undeclared (first use in this function)
fastboot.c:430: error: expected ‘;’ before ‘zip’
fastboot.c:437: error: ‘zip’ undeclared (first use in this function)
fastboot.c:440: warning: assignment makes pointer from integer without a cast
fastboot.c:444: warning: assignment makes pointer from integer without a cast
fastboot.c:457: warning: assignment makes pointer from integer without a cast
fastboot.c:462: warning: assignment makes pointer from integer without a cast
fastboot.c:468: warning: assignment makes pointer from integer without a cast
make: *** [fastboot] Error 1
Code:
Pietros-MacBook-Pro:mkbootimg Pietro$ make mkbootimg
cc mkbootimg.c -o mkbootimg
mkbootimg.c:25:26: error: mincrypt/sha.h: No such file or directory
mkbootimg.c: In function ‘main’:
mkbootimg.c:111: error: ‘SHA_CTX’ undeclared (first use in this function)
mkbootimg.c:111: error: (Each undeclared identifier is reported only once
mkbootimg.c:111: error: for each function it appears in.)
mkbootimg.c:111: error: expected ‘;’ before ‘ctx’
mkbootimg.c:112: error: nested functions are disabled, use -fnested-functions to re-enable
mkbootimg.c:112: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
mkbootimg.c:112: error: ‘sha’ undeclared (first use in this function)
mkbootimg.c:224: error: ‘ctx’ undeclared (first use in this function)
mkbootimg.c:232: error: ‘SHA_DIGEST_SIZE’ undeclared (first use in this function)
make: *** [mkbootimg] Error 1
I have posted this already on the Cyanogenmod forum but I have gotten no response so far ..
Any help would be much appreciated.
Thanks
any help??
If you have missing header file, first thing you have to do is get those files. If you have those files u have to set the environment so that ur compilers gets those files.
Sent from my LG-P500 using XDA Premium App
There's a thread on the g2 section about building cm on Mac by fat tire
Sent from my HTC Vision using XDA App
http://forum.xda-developers.com/showthread.php?t=840079
Sent from my HTC Vision using XDA App
Sorry about the delay, but I been kinda busy with crazy shifts at work and I was unable to check out the post.
However, the guide posted on the link you gave me is the same as the one I followed on the cyanogenmod wiki, the only different among the guides is that the guidein the post u gave me covers the G2 compiling process on the mac, instead the one I followed covers the Hero.
Same process though...
ultma75 said:
http://forum.xda-developers.com/showthread.php?t=840079
Sent from my HTC Vision using XDA App
Click to expand...
Click to collapse
What are those header files you'r talking about???
Thanks for helping
4silvertooth said:
If you have missing header file, first thing you have to do is get those files. If you have those files u have to set the environment so that ur compilers gets those files.
Sent from my LG-P500 using XDA Premium App
Click to expand...
Click to collapse

Help on Kernel 2.6.35.10 Compilation Error

I encounter the following error when compiling the kernel 2.6.35.10.
drivers/mmc/host/msm_sdcc.c: In function 'msmsdcc_request_end':
drivers/mmc/host/msm_sdcc.c:208: error: 'struct msmsdcc_host' has no member named 'req_tout_timer'
drivers/mmc/host/msm_sdcc.c: In function 'msmsdcc_dma_complete_tlet':
drivers/mmc/host/msm_sdcc.c:350: error: 'struct msmsdcc_host' has no member named 'req_tout_timer'
drivers/mmc/host/msm_sdcc.c: In function 'msmsdcc_start_command_deferred':
drivers/mmc/host/msm_sdcc.c:560: error: 'struct msmsdcc_host' has no member named 'req_tout_timer'
drivers/mmc/host/msm_sdcc.c:561: error: 'MSM_MMC_REQ_TIMEOUT' undeclared (first use in this function)
drivers/mmc/host/msm_sdcc.c:561: error: (Each undeclared identifier is reported only once
drivers/mmc/host/msm_sdcc.c:561: error: for each function it appears in.)
drivers/mmc/host/msm_sdcc.c: In function 'msmsdcc_probe':
drivers/mmc/host/msm_sdcc.c:1897: error: 'struct msmsdcc_host' has no member named 'req_tout_timer'
drivers/mmc/host/msm_sdcc.c:1948: error: 'struct msmsdcc_host' has no member named 'req_tout_timer'
drivers/mmc/host/msm_sdcc.c: In function 'msmsdcc_remove':
drivers/mmc/host/msm_sdcc.c:2010: error: 'struct msmsdcc_host' has no member named 'req_tout_timer'
make[3]: *** [drivers/mmc/host/msm_sdcc.o] Error 1
make[2]: *** [drivers/mmc/host] Error 2
make[1]: *** [drivers/mmc] Error 2
make: *** [drivers] Error 2
My compliation steps are as follows
1. download kernel 2.6.35.10 is from microslav_mm's git webpage:
$ cd /home/username/android/
$ git clone git://github.com/mmxtrem/android_kernel_swift.git
$ cd cm-kernel after a little rename
2. pull out the /proc/config.gz from my GT540 phone (SDSL 2.1) for kernel configuration.
$ adb pull /proc/config.gz .
$ cat config.gz | gunzip > .config
$ make ARCH=arm CROSS_COMPILE=$CCOMPILER oldconfig
3. configure the cross-compiler and trigger the compilation
$ export CCOMPILER=/home/username/android/system/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
$ make ARCH=arm CROSS_COMPILE=$CCOMPILER -j`grep 'processor' /proc/cpuinfo | wc -l`
How can I fix this compilation error? Any suggestions will be appreciated.
Shawn
csqjxiao said:
I encounter the following error when compiling the kernel 2.6.35.10.
drivers/mmc/host/msm_sdcc.c: In function 'msmsdcc_request_end':
drivers/mmc/host/msm_sdcc.c:208: error: 'struct msmsdcc_host' has no member named 'req_tout_timer'
drivers/mmc/host/msm_sdcc.c: In function 'msmsdcc_dma_complete_tlet':
drivers/mmc/host/msm_sdcc.c:350: error: 'struct msmsdcc_host' has no member named 'req_tout_timer'
drivers/mmc/host/msm_sdcc.c: In function 'msmsdcc_start_command_deferred':
drivers/mmc/host/msm_sdcc.c:560: error: 'struct msmsdcc_host' has no member named 'req_tout_timer'
drivers/mmc/host/msm_sdcc.c:561: error: 'MSM_MMC_REQ_TIMEOUT' undeclared (first use in this function)
drivers/mmc/host/msm_sdcc.c:561: error: (Each undeclared identifier is reported only once
drivers/mmc/host/msm_sdcc.c:561: error: for each function it appears in.)
drivers/mmc/host/msm_sdcc.c: In function 'msmsdcc_probe':
drivers/mmc/host/msm_sdcc.c:1897: error: 'struct msmsdcc_host' has no member named 'req_tout_timer'
drivers/mmc/host/msm_sdcc.c:1948: error: 'struct msmsdcc_host' has no member named 'req_tout_timer'
drivers/mmc/host/msm_sdcc.c: In function 'msmsdcc_remove':
drivers/mmc/host/msm_sdcc.c:2010: error: 'struct msmsdcc_host' has no member named 'req_tout_timer'
make[3]: *** [drivers/mmc/host/msm_sdcc.o] Error 1
make[2]: *** [drivers/mmc/host] Error 2
make[1]: *** [drivers/mmc] Error 2
make: *** [drivers] Error 2
My compliation steps are as follows
1. download kernel 2.6.35.10 is from microslav_mm's git webpage:
$ cd /home/username/android/
$ git clone git://github.com/mmxtrem/android_kernel_swift.git
$ cd cm-kernel after a little rename
2. pull out the /proc/config.gz from my GT540 phone (SDSL 2.1) for kernel configuration.
$ adb pull /proc/config.gz .
$ cat config.gz | gunzip > .config
$ make ARCH=arm CROSS_COMPILE=$CCOMPILER oldconfig
3. configure the cross-compiler and trigger the compilation
$ export CCOMPILER=/home/username/android/system/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
$ make ARCH=arm CROSS_COMPILE=$CCOMPILER -j`grep 'processor' /proc/cpuinfo | wc -l`
How can I fix this compilation error? Any suggestions will be appreciated.
Shawn
Click to expand...
Click to collapse
Same here. Any ideas?
Can you guys put the errors in a code tag? not so messy
These errors comes with arm-eabi-linaro-4.6.2
Compiling with arm-eabi-4.4.3 also print this error but compilation of kernel continues to the end. But. Where can I find kernel image? I suppose it should be in arch/arm/boot/ but it isn't. Or where I have to looking for the Image file?
Code:
[email protected] ~/android/kernel/$ ls -l arch/arm/boot/
razem 16
drwxr-xr-x 2 smogf smogf 4096 04-01 23:27 bootp
drwxr-xr-x 2 smogf smogf 4096 04-01 23:27 compressed
-rw-r--r-- 1 smogf smogf 1274 04-01 23:27 install.sh
-rw-r--r-- 1 smogf smogf 3118 04-01 23:27 Makefile
[email protected] ~/android/kernel/mmxtrem-android_kernel_swift-6010f54
I've tried once again with make zImage and compilation fails with the same error as before. I have no idea. Any help will be useful.
smogf said:
These errors comes with arm-eabi-linaro-4.6.2
Compiling with arm-eabi-4.4.3 also print this error but compilation of kernel continues to the end. But. Where can I find kernel image? I suppose it should be in arch/arm/boot/ but it isn't. Or where I have to looking for the Image file?
Code:
[email protected] ~/android/kernel/$ ls -l arch/arm/boot/
razem 16
drwxr-xr-x 2 smogf smogf 4096 04-01 23:27 bootp
drwxr-xr-x 2 smogf smogf 4096 04-01 23:27 compressed
-rw-r--r-- 1 smogf smogf 1274 04-01 23:27 install.sh
-rw-r--r-- 1 smogf smogf 3118 04-01 23:27 Makefile
[email protected] ~/android/kernel/mmxtrem-android_kernel_swift-6010f54
I've tried once again with make zImage and compilation fails with the same error as before. I have no idea. Any help will be useful.
Click to expand...
Click to collapse
It seems bootp, Compressed, install.sh and Makefile is in the folder your looking at...
Otherwise I think the image name starts with initrd
Sent using the LG GT540 Polishblood PreRC CM9 4.0 using XDA Premium

[Q] Get kernel framebuffer console

Hello XDA users!
I'm so confused with this thing. I've been trying to do that nearly a month. After a billion google queries and phone reboots (if my N4 could throw up, it would) I got nothing.
First of all, I can't compile the kernel.
Sys info: I'm on Arch Linux 3.12.1-3-ARCH 64 bit.
I have all the three google toolchains (arm-linux-androideabi-4.{6,7,8}) and currently I'm trying with 4.8.
With default config (I stress that) I get this: http://showterm.io/1a41b9af919653f53a890
I use google's repo (https://android.googlesource.com/kernel/msm.git) on the android-msm-mako-3.4-kitkat-mr0 branch (I use occam-krt16o build on my N4).
I know this must be noobish problem, but I have no idea what's the problem...
Thanks in advance!
I've got some news!
First of all, you need to edit scripts/gcc-wrapper.py to use python2.7 and not 3.
However, 4.8 toolchain spits some errors and I'm not really into casting spells just to compile with 4.8 instead of 4.7. If there is a major difference between them (performance improvements etc.) I'll look into it.
Now it's time to implement the framebuffer changes to the .config
for more info:
http://forum.xda-developers.com/showpost.php?p=10075806&postcount=3
http://forum.xda-developers.com/showpost.php?p=18256605&postcount=1
UPDATE: Well, I applied this patch (https://github.com/Tasssadar/kernel...a9d#diff-94babbe85a910bf17f882465a760c431R608), I can only get blank screen. Any ideas?
Bump.
Hi does anyone know how to get this to work.
I have an Alcatel OT918D ANDROID 2.3.5.
I have managed to compile my own kernel and boot it. But for adding the frame buffer option in the makefile I get this error during compilation:
**************************************************************************************************************
drivers/video/console/fbcon.c:638: note: expected 'struct file *' but argument is of type 'struct fb_info *'
drivers/video/console/fbcon.c:638: error: too few arguments to function 'info->fbops->fb_open'
drivers/video/console/fbcon.c: In function 'con2fb_release_oldinfo':
drivers/video/console/fbcon.c:670: warning: passing argument 1 of 'oldinfo->fbops->fb_release' from incompatible pointer type
drivers/video/console/fbcon.c:670: note: expected 'struct file *' but argument is of type 'struct fb_info *'
drivers/video/console/fbcon.c:670: error: too few arguments to function 'oldinfo->fbops->fb_release'
drivers/video/console/fbcon.c:673: warning: passing argument 1 of 'newinfo->fbops->fb_release' from incompatible pointer type
drivers/video/console/fbcon.c:673: note: expected 'struct file *' but argument is of type 'struct fb_info *'
drivers/video/console/fbcon.c:673: error: too few arguments to function 'newinfo->fbops->fb_release'
drivers/video/console/fbcon.c: In function 'fbcon_startup':
drivers/video/console/fbcon.c:868: warning: passing argument 1 of 'info->fbops->fb_open' from incompatible pointer type
drivers/video/console/fbcon.c:868: note: expected 'struct file *' but argument is of type 'struct fb_info *'
drivers/video/console/fbcon.c:868: error: too few arguments to function 'info->fbops->fb_open'
drivers/video/console/fbcon.c: In function 'fbcon_exit':
drivers/video/console/fbcon.c:3388: warning: passing argument 1 of 'info->fbops->fb_release' from incompatible pointer type
drivers/video/console/fbcon.c:3388: note: expected 'struct file *' but argument is of type 'struct fb_info *'
drivers/video/console/fbcon.c:3388: error: too few arguments to function 'info->fbops->fb_release'
make[3]: *** [drivers/video/console/fbcon.o] Error 1
make[2]: *** [drivers/video/console] Error 2
make[1]: *** [drivers/video] Error 2
make: *** [drivers] Error 2
make: *** Waiting for unfinished jobs....
CC [M] ../mediatek/source/kernel/drivers/lttng/probes/net-extended-trace.o
CC [M] ../mediatek/source/kernel/drivers/lttng/probes/block-trace.o
CC ../mediatek/source/kernel/kernel/trace_mt65xx_mon.o
LD [M] ../mediatek/source/kernel/drivers/lttng/ltt-relay.o
CC ../mediatek/source/kernel/drivers/m4u/m4u_kernel.o
../mediatek/source/kernel/drivers/m4u/m4u_kernel.c: In function 'm4u_user_v2p':
../mediatek/source/kernel/drivers/m4u/m4u_kernel.c:66: warning: format '%d' expects type 'int', but argument 3 has type 'struct task_struct *'
************************************************************************************************************

Kernel error while building Omni ROM

So I am building Omni Rom for my device which is not currently supported by Omni. I have declared the kernel, device in the local manifest. I am getting the below error:
No private recovery resources for TARGET_DEVICE d2att
build/core/tasks/kernel.mk:65: ***************************************************************
build/core/tasks/kernel.mk:66: * Using prebuilt kernel binary instead of source *
build/core/tasks/kernel.mk:67: * THIS IS DEPRECATED, AND WILL BE DISCONTINUED
http://hastebin.com/yapimovido.md
Putting the kernel repo in local_manifest.xml is not enough. You have to add the path to the kernel local source and its target defconfig to your device's BoardConfig.mk.
For example, see n7100 BoardConfig.mk here: https://github.com/omnirom/android_device_samsung_n7100/blob/android-4.4/BoardConfig.mk
Lines 30-32.
chasmodo said:
Putting the kernel repo in local_manifest.xml is not enough. You have to add the path to the kernel local source and its target defconfig to your device's BoardConfig.mk.
For example, see n7100 BoardConfig.mk here: https://github.com/omnirom/android_device_samsung_n7100/blob/android-4.4/BoardConfig.mk
Lines 30-32.
Click to expand...
Click to collapse
I fixed that by changing the reference of the d2 kernel in the d2-common folder.
Now I am getting the following error:
http://hastebin.com/cehadiwika.vhdl
matrixzone said:
I fixed that by changing the reference of the d2 kernel in the d2-common folder.
Now I am getting the following error:
http://hastebin.com/cehadiwika.vhdl
Click to expand...
Click to collapse
Go to device/samsung/d2-common/overlay/frameworks/base/core/res/res/values/config.xml and comment out the three lines containing
config_forceDisableHardwareKeyboard
config_panelAutoBrightnessValue
config_enableTorch
like this
<!-- <bool name="config_forceDisableHardwareKeyboard">true/false/whatever</bool> -->
chasmodo said:
Go to device/samsung/d2-common/overlay/frameworks/base/core/res/res/values/config.xml and comment out the three lines containing
config_forceDisableHardwareKeyboard
config_panelAutoBrightnessValue
config_enableTorch
like this
<!-- <bool name="config_forceDisableHardwareKeyboard">true/false/whatever</bool> -->
Click to expand...
Click to collapse
Thanks for your response but I have deleted the overlay folder. Will that work?
matrixzone said:
Thanks for your response but I have deleted the overlay folder. Will that work?
Click to expand...
Click to collapse
No, it won't. Even if you pull off a build with no errors, many of the device specific settings will be lost.
rm -rf /device folder, resync and solve the overlay error in the proper fashion.
chasmodo said:
No, it won't. Even if you pull off a build with no errors, many of the device specific settings will be lost.
rm -rf /device folder, resync and solve the overlay error in the proper fashion.
Click to expand...
Click to collapse
That fixed the issue. Thanks.
Now new error:
----- Making recovery image ------
error: could not load kernel '/home/kunal/android/omni/kernel/samsung/d2att'
make: *** [/home/kunal/android/omni/out/target/product/d2att/recovery.img] Error 1
I have defined the correct location of the kernel, but still getting the above error
Getting this error:
hardware/qcom/media-caf/mm-video/vidc/venc/src/video_encoder_device.cpp:3227:9: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'int' [-Wformat]
hardware/qcom/media-caf/mm-video/vidc/venc/src/video_encoder_device.cpp:3248:9: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'int' [-Wformat]
hardware/qcom/media-caf/mm-video/vidc/venc/src/video_encoder_device.cpp:3260:9: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'int' [-Wformat]
hardware/qcom/media-caf/mm-video/vidc/venc/src/video_encoder_device.cpp:3270:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
make: *** [/home/kunal/android/omni/out/target/product/d2att/obj/SHARED_LIBRARIES/libOmxVenc_intermediates/src/video_encoder_device.o] Error 1
Manage to nail all error, now stuck in the below:
hardware/qcom/media-caf/mm-video/vidc/venc/src/video_encoder_device.cpp:1615:3: error: 'struct venc_entropycfg' has no member named 'longentropysel'

Categories

Resources