Jump to content

Question 'bout kernels newer than 2.6.29


Guest PhoenixPunk

Recommended Posts

Guest PhoenixPunk

could somebody tell me what's so though about porting the modules from the huawei 2.6.29 kernel to the newer kernels?

has somebody at least tried to do it?

i'm now downloading the official android kernel source, and will try to copy all modules from huawei to the new kernel, just to try it. as i'm not so good at kernel hacking i could need some help from some kernel gurus hiding in this forums :(

Link to comment
Share on other sites

Guest PhoenixPunk

that doesn't mean it isn't possible. we maybe need more than just 1 man to do it and i'm sure there are more people here which could help to do it if they were motivated enough.

Link to comment
Share on other sites

Guest PhoenixPunk

alright, i'd like to know a few things:

1) is it possible to f**k up your phone with a incompatible kernel

2) i need specs about the hardware used in the huawei u8220. for example which wireless card, bluetooth, etc etc. for now, i only know some things i've read in this forum about the processor and about the touchscreen

i've copied the drivers and linked them with the kernel configuration.

it would be good to have a report from tom or somebody what has been done yet and where they failed.

Link to comment
Share on other sites

Guest AntonioPT
alright, i'd like to know a few things:

1) is it possible to f**k up your phone with a incompatible kernel

2) i need specs about the hardware used in the huawei u8220. for example which wireless card, bluetooth, etc etc. for now, i only know some things i've read in this forum about the processor and about the touchscreen

i've copied the drivers and linked them with the kernel configuration.

it would be good to have a report from tom or somebody what has been done yet and where they failed.

1) No, it's not possible to brick your phone with an incompatible kernel.

2) See here for some tech specs. Also, study a .config file for our phone (see my GitHub repo). That gives you many, many details about our phone's hardware.

Also, it should be easier to port a .32 kernel from a Huawei phone somewhat similar to ours (U8150 is a very good candidate). I already tried that but I can't get a zImage compiled.

If you want any help I'll be more than glad to help you :( Do you know how to work with git/GitHub? I can set up a repo for us to work together...

Link to comment
Share on other sites

Guest PhoenixPunk

ofcourse, i know to work with git. it would be great if we'd work together on that, so yes, put a repo and lets start.

i took the newest common kernel available (currently 2.6.36). lets see if it works, if not then we can use a kernel which is more compatible with our phone.

currently i took only the /drivers/huawei part and the /includes/config part to see if they compile.

btw which errors did you get while compiling?

EDIT: i get compile errors on the common kernel without the huawei parts. so lets stick to a more stable kernel, the u8150 kernel, as you recommended...

Edited by PhoenixPunk
Link to comment
Share on other sites

Guest AntonioPT
ofcourse, i know to work with git. it would be great if we'd work together on that, so yes, put a repo and lets start.

i took the newest common kernel available (currently 2.6.36). lets see if it works, if not then we can use a kernel which is more compatible with our phone.

currently i took only the /drivers/huawei part and the /includes/config part to see if they compile.

btw which errors did you get while compiling?

EDIT: i get compile errors on the common kernel without the huawei parts. so lets stick to a more stable kernel, the u8150 kernel, as you recommended...

I got a few compiling errors but I fixed them, the problem is that a zImage isn't compiled at the end of the build.

Link to comment
Share on other sites

Guest PhoenixPunk
I got a few compiling errors but I fixed them, the problem is that a zImage isn't compiled at the end of the build.

weird... no errors but no image? are you sure there weren't any errors?

can i get your sources from git or somewhere?

Link to comment
Share on other sites

Guest AntonioPT
weird... no errors but no image? are you sure there weren't any errors?

can i get your sources from git or somewhere?

Yes, no errors...

I'm setting up a GitHub repo right now.

EDIT: Done. Check it out. :(

Edited by AntonioPT
Link to comment
Share on other sites

Guest AntonioPT
got it. do you have the .config file you used?

I used the .config file from CM 0.40, but now I understand that it was probably not the right thing to do...

I'm going to generate a new config, a U8150 config. Then I'll just build the kernel using that config and see if a zImage comes up.

If that works, we can start modifying the .config and incorporating (if needed) Pulse drivers.

EDIT: I just took an U8150 .config file from here. Compiling now...

EDIT2: Yep it builds. I now have a pretty zImage in my build folder :(

Edited by AntonioPT
Link to comment
Share on other sites

Guest PhoenixPunk

ok i got to go now, bbl in about 2 hrs.

this source is giving me errors right now, but it's the same errors which i've managed to resolve on my source.

Link to comment
Share on other sites

Guest PhoenixPunk
I used the .config file from CM 0.40, but now I understand that it was probably not the right thing to do...

I'm going to generate a new config, a U8150 config. Then I'll just build the kernel using that config and see if a zImage comes up.

If that works, we can start modifying the .config and incorporating (if needed) Pulse drivers.

EDIT: I just took an U8150 .config file from here. Compiling now...

EDIT2: Yep it builds. I now have a pretty zImage in my build folder :(

the 8150 config builds for sure, but we need the 8220 to build. ok we know one thing with the build, that the kernel is intact. but that was obvious on the start. i patched a few simple things in the kernel, so give me permissions to push please so we can sync. i would like to call all the other people in this forum who know anything about programming and compiling linux kernels to help us so we will have a good endproduct, with your permission. my username: thomas-spigel. im not yet home but ill be soon back

Link to comment
Share on other sites

Guest PhoenixPunk

ok, first error i couldn't resolve, any help would be appreciated:

  CC	  drivers/video/msm/lcdc_hx8357a_hvga.o

drivers/video/msm/lcdc_hx8357a_hvga.c:64:5: warning: "TRACE_LCD_DEBUG" is not defined

drivers/video/msm/lcdc_hx8357a_hvga.c: In function 'hx8357a_hvga_panel_on':

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_S6D74A0_SAMSUNG_HVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_ILI9325_INNOLUX_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_ILI9325_BYD_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_ILI9325_WINTEK_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_SPFD5408B_KGM_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_HX8357A_BYD_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_HX8368A_SEIKO_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_HX8347D_TRULY_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_HX8347D_INNOLUX_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_ILI9325C_WINTEK_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_ILI9331B_TIANMA_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_HX8368A_TRULY_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_MAX_NUM' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_NONE' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c: In function 'hx8357a_hvga_panel_off':

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_S6D74A0_SAMSUNG_HVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_ILI9325_INNOLUX_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_ILI9325_BYD_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_ILI9325_WINTEK_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_SPFD5408B_KGM_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_HX8357A_BYD_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_HX8368A_SEIKO_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_HX8347D_TRULY_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_HX8347D_INNOLUX_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_ILI9325C_WINTEK_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_ILI9331B_TIANMA_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_HX8368A_TRULY_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_MAX_NUM' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_NONE' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c: At top level:

drivers/video/msm/lcdc_hx8357a_hvga.c:482:5: error: unknown field 'set_contrast' specified in initializer

drivers/video/msm/lcdc_hx8357a_hvga.c:482:5: warning: initialization from incompatible pointer type

Link to comment
Share on other sites

Guest AntonioPT
ok, first error i couldn't resolve, any help would be appreciated:

  CC	  drivers/video/msm/lcdc_hx8357a_hvga.o

drivers/video/msm/lcdc_hx8357a_hvga.c:64:5: warning: "TRACE_LCD_DEBUG" is not defined

drivers/video/msm/lcdc_hx8357a_hvga.c: In function 'hx8357a_hvga_panel_on':

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_S6D74A0_SAMSUNG_HVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_ILI9325_INNOLUX_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_ILI9325_BYD_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_ILI9325_WINTEK_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_SPFD5408B_KGM_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_HX8357A_BYD_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_HX8368A_SEIKO_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_HX8347D_TRULY_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_HX8347D_INNOLUX_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_ILI9325C_WINTEK_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_ILI9331B_TIANMA_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_HX8368A_TRULY_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_MAX_NUM' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:386:6: warning: enumeration value 'LCD_NONE' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c: In function 'hx8357a_hvga_panel_off':

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_S6D74A0_SAMSUNG_HVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_ILI9325_INNOLUX_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_ILI9325_BYD_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_ILI9325_WINTEK_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_SPFD5408B_KGM_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_HX8357A_BYD_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_HX8368A_SEIKO_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_HX8347D_TRULY_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_HX8347D_INNOLUX_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_ILI9325C_WINTEK_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_ILI9331B_TIANMA_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_HX8368A_TRULY_QVGA' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_MAX_NUM' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c:408:6: warning: enumeration value 'LCD_NONE' not handled in switch

drivers/video/msm/lcdc_hx8357a_hvga.c: At top level:

drivers/video/msm/lcdc_hx8357a_hvga.c:482:5: error: unknown field 'set_contrast' specified in initializer

drivers/video/msm/lcdc_hx8357a_hvga.c:482:5: warning: initialization from incompatible pointer type

Those are just warnings, they don't affect the compilation. Just ignore them.

I'll add you as a collaborator on my GitHub repo tomorrow.

Link to comment
Share on other sites

Guest PhoenixPunk
Those are just warnings, they don't affect the compilation. Just ignore them.

I'll add you as a collaborator on my GitHub repo tomorrow.

drivers/video/msm/lcdc_hx8357a_hvga.c:482:5: error: unknown field 'set_contrast' specified in initializer

Edited by PhoenixPunk
Link to comment
Share on other sites

i would caution against using .config from other devices, unless we can confirm that the hardware is the exact same spec. otherwise, we will have all sorts of dependency issues later on.

i would start with the phone specific config from the current kernel. you can get current config from /proc/confi.gz. use gunzip to extract.

$ adb pull /proc/config.gz

$ gunzip config.gz

$ mv config .config

alternatively, you can extract the .config from boot.img.

please, always use device specific kernel configs.

Edited by ve100
Link to comment
Share on other sites

Guest PhoenixPunk
i would caution against using .config from other devices, unless we can confirm that the hardware is the exact same spec. otherwise, we will have all sorts of dependency issues later on.

i would start with the phone specific config from the current kernel. you can get current config from /proc/confi.gz. use gunzip to extract.

$ adb pull /proc/config.gz

$ gunzip config.gz

$ mv config .config

alternatively, you can extract the .config from boot.img.

please, always use device specific kernel configs.

i know about the config, i have mine already from my phone. i'll upload it as soon as i become collaborator with the patches i made.

EDIT: i planned to make a diff between the two configs to see what wants to compile (and is part of the 8150 kernel) but fails (because i used default values for everything that is not in my config), to exclude it from the compilation.

Edited by PhoenixPunk
Link to comment
Share on other sites

Guest AntonioPT
drivers/video/msm/lcdc_hx8357a_hvga.c:482:5: error: unknown field 'set_contrast' specified in initializer

I worked that error out by commenting that driver, as it's not needed for our phone. Dirty hack, but it works.

Patch:

diff --git a/drivers/video/msm/Makefile b/drivers/video/msm/Makefile

--- a/drivers/video/msm/Makefile

+++ b/drivers/video/msm/Makefile

@@ -103,7 +103,7 @@ obj-y += lcdc_ili9331b.o

 obj-y += lcdc_hx8368a_qvga.o

 obj-y += huawei_backlight.o

 endif

-obj-y += lcdc_hx8357a_hvga.o

+# obj-y += lcdc_hx8357a_hvga.o

 obj-$(CONFIG_FB_MSM_TVOUT_NTSC) += tv_ntsc.o

 obj-$(CONFIG_FB_MSM_TVOUT_PAL) += tv_pal.o

what maximum size can the kernel be?

A:

On U8220 (Pulse) and old U8230 models the boot partition is only 20 pages x 131 072 bytes = 2 621 440 bytes.

On newest U8230 the boot partition is 40 pages x 131 072 bytes = 5 242 880 bytes.

We can see these sizes in fastboot screen (in pages) or with terminal typing cat /proc/mtd (in bytes)

Link to comment
Share on other sites

Guest PhoenixPunk
I worked that error out by commenting that driver, as it's not needed for our phone. Dirty hack, but it works.

Patch:

diff --git a/drivers/video/msm/Makefile b/drivers/video/msm/Makefile

--- a/drivers/video/msm/Makefile

+++ b/drivers/video/msm/Makefile

@@ -103,7 +103,7 @@ obj-y += lcdc_ili9331b.o

 obj-y += lcdc_hx8368a_qvga.o

 obj-y += huawei_backlight.o

 endif

-obj-y += lcdc_hx8357a_hvga.o

+# obj-y += lcdc_hx8357a_hvga.o

 obj-$(CONFIG_FB_MSM_TVOUT_NTSC) += tv_ntsc.o

 obj-$(CONFIG_FB_MSM_TVOUT_PAL) += tv_pal.o

A:

i already fixed that error. i pushed all changes so you can try to compile it, maybe you have better luck.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.