Announcements

ILLEGAL CONTENT I'd like to just reaffirm MoDaCo's position regarding piracy and illegal content in the light of some recent questions / postings. Posts will be censored by myself or my moderation team if the contain or link to: Illegal / pirated / cracked software or sites that host such softwareNintendo emulators / ROMs or sites hosting them (in light of Nintendo's legal stance)CUSTOM ROMS You may discuss and post links to custom device ROMs on MoDaCo, provided the following rules are adhered to: ROMs must not contain any illegal 3rd party software (this includes trial versions included without permission)ROMs must give full credit to the original authorISSUES If you have any issues with this policy, please contact PaulOBrien directly via PM.

Please note that selling items on the forum directly is not allowed by the forum rules. There is a forum for eBay auctions whereby you can list the items on eBay and link to them there. This is the ONLY forum for this type of activity. You may also advertise links to the eBay forum in your signature. Please note that selling directly in contravention of these rules will result in a warning / suspension / ban.

So after a lot of gathering around, googling and bothering people, I've sources for the kernel 2.6.32.9. I've created a repo on my github for posterity and in case I can't get working sources anymore xD Please note that this sources are missing some changes needed to support gen2 devices, I'll add them in a none distant future (is actually easy) (done)

Now, I know this kernel is somewhat old, many would like to have 2.6.35 or even 3.x (yeah right xD), but right now there are only two kernels working for racer owners, vamshi's 2.6.32.9 #68/#70 and deadlink's 2.6.32.9 #186/#187.

There are sources on github of vamshi's kernel and deadlink's kernel... well, it turn's out that in both cases, the sources are incomplete :P vamshi didn't include his touchscreen driver or a config to compiles a kernel that boots (and you can't even get it from /proc in his latest kernels!), deadlink didn't include a valid config, the touchscreen driver is not his latest and gen2 support is started but not finished

With the ones already compiled that do exist there's always a trade off between what of those to choose, very quick:

- vamshi's has smartass v2, deadlink's not (if you like that governor or not is another thing).

- calibration and touch sensitivity differ, vamshi's doesn't have jump-to-left ghost clicks and uses high sensitivity (very high for some, like me), deadlink's has ghost clicks (not a lot, but they're there) and low sensitivity. So... what if you want a kernel that has smartass v2 and less sensitivity?

Also, there are things that can only be changed at kernel level or are more efficient to change it there instead of using user level applications, you want to change calibration? you need to edit the touchscreen driver, you want to support a new file system for whatever reason? you need to recompile the kernel with support for it, you want to make the kernel more efficient, smaller or bigger with full debug support when things go wrong, you need to recompile...

Want to try a newer kernel? is easier when you can check your old kernel to see how things were done there when your most needed macro doesn't exists in your new kernel....

So for all the reasons above and if you'd like to mess with it, try your own modifications, learn something, have something to "buuuh" at or whatever I'm putting the kernel source tree that compiles and boots (calibration is not the best, be warned)

Share on other sites

Just to let you know, made few changes, nothing big, haven't break anything yet D:, the changes for GEN1 and GEN2 support is done.

Also removed/changed few things from msm_ts.c (touchscreen driver). It's now more stable, still isn't perfect calibration but I think is stable enough to be usable, serve as educational resource or whatever :P (you had to see how it was before xD)

I'm using a kernel compiled from those sources, things I haven't tested are vpn, wifi tethering, radio and haven't tested bluetooth extensibly either (this are things I don't use and I don't have a good way to test the vpn thing).

I think I won't change much from master branch unless I learn a lot about this stuff xD I'll work my experiments on another branch or something or maybe since this sources seem stable enough I'll try again with .35 kernel :mellow:

Share on other sites

Which kernel sources did you use as a base? vamshi or deadlink's? Also have you changed any files except the ones you commited in your github?

The sources are based on vamshi's kernel, however msm_ts.c (touchscreen driver) and board-mooncake.c are based on deadlink's sources (since board-mooncake.c from deadlink have more hardware definitions) and I've only changed the files I've commited.

I successfully built my own kernel from your sources and now I'm checking the differences between the default .config of my stock rom and the defconfig on your github... maybe the camera, wifi and accelerometer are different in my phone and I just have to enable them in the kernel .config

I successfully built my own kernel from your sources and now I'm checking the differences between the default .config of my stock rom and the defconfig on your github... maybe the camera, wifi and accelerometer are different in my phone and I just have to enable them in the kernel .config

Equilyim's roms by default uses vamshi's kernel so you could try deadlink's kernel with that rom and see if camera, wifi, etc works.

0

Share this post

Link to post

Share on other sites

I tried that but no change... they still don't work. I noticed that the stock wifi module has different size than the prebuilt we use. I swapped them but still doesn't work. Do we have sources to build the wifi module?

0

Share this post

Link to post

Share on other sites

I tried that but no change... they still don't work. I noticed that the stock wifi module has different size than the prebuilt we use. I swapped them but still doesn't work. Do we have sources to build the wifi module?

wifi module?

just in case, wifi is handled by a kernel driver, netd is a network daemon in charge of setting configurations like ip address, netmask, dns... so, if you need the wifi kernel driver source, I don't have it if it's not part of the kernel sources we already have, meaning that you'll need Carl's kernel source to have access to the wifi driver (or sources from another kernel that has the same wifi as your phone)

Edited 11 Oct 2012 by GuyOverThere

0

Share this post

Link to post

Share on other sites

As I can see, wifi is handled by a kernel driver which is compiled as a module (/system/wifi/ar6000.ko). The same driver is used by Carl, meaning they don't have a totally different wifi chipset. I searched in the forums and I saw that ZTE Blade users also had problems with wifi because there was no source available, but it was added from another device's kernel source at some point. Blade uses the same wifi chip as Racer and Carl.

I'm trying to find the kernel source that vamshi used as a base for his sources all day... they are a lot different than deadlink's(which are based on TomGiordano's sources, which now are part of official CM sources)

I'll post a logcat with my wifi problem

0

Share this post

Link to post

Share on other sites

As I can see, wifi is handled by a kernel driver which is compiled as a module (/system/wifi/ar6000.ko). The same driver is used by Carl, meaning they don't have a totally different wifi chipset. I searched in the forums and I saw that ZTE Blade users also had problems with wifi because there was no source available, but it was added from another device's kernel source at some point. Blade uses the same wifi chip as Racer and Carl.

I'm trying to find the kernel source that vamshi used as a base for his sources all day... they are a lot different than deadlink's(which are based on TomGiordano's sources, which now are part of official CM sources)

I'll post a logcat with my wifi problem

Ahhhh now I gotcha, I haven't seen that module source (nor I have search for it to be honest since it hasn't gave me problems), from 2.3 roms I've always saw that people just moved ar6000.ko around. With devices files for mooncake you can see it's used from prebuilt, never compiled, so don't know =/ if I find anything about I'll let you know

As for vamshi, I've no idea where he got his sources, I remember reading that he modified alot of things, including gpios, structs, and the like but beyond that I don't know. It's indeed different from deadlink's sources, deadlink for instance used synaptics-rmi driver to handled virtualkeys/keypad while vamshi didn't, deadlink also didn't change much beyond what Tom had in his sources, if I remember correctly deadlink at one point said that he only integrated board-mooncake, modified one kconfig, one makefile and msm_ts.

I found that there are a lot more defconfigs available, more accelerometer/camera drivers available (including the ones used in Carl) and I compared one of the defconfigs with my original froyo kernel config. They are nearly identical. Now I'm testing and compiling to see If the new sources work

Share on other sites

The problem with official zte releases is that zte is popular for giving mangled, incomplete or otherwise broken sources since they remove binary blobs and other propietary things :-\ be careful with that.

Regarding touchscreen, check if it's really touchscreen not working or if it's a miscalibrated touchscreen, I mean, I've made tests where I though touchscreen wasn't working but it actually was, the problem being that x or y axis would give ridiculous numbers (like x:1256;y:8658) so android wasn't able to register the input. This is a problem with msm_ts.c, also check that it was indeed compiled (you have a msm_ts.o file).

What it does is to define usable touchscreen area (it doesn't account keypad space because it doesn't have to) which is later used by msm_ts.c via TSSC_AVG_STATUS, TSSC_AVG_12, TSSC_AVG_34 and the like from msm_ts_platform_data. Now, bad offsets defined here can screw big time calibration, whatever it's used beyond "real" limits (the real size of the screen) needs to be accounted for and corrected in msm_ts.c before or while reporting via input_report_key();

0

Share this post

Link to post

Share on other sites

What it does is to define usable touchscreen area (it doesn't account keypad space because it doesn't have to) which is later used by msm_ts.c via TSSC_AVG_STATUS, TSSC_AVG_12, TSSC_AVG_34 and the like from msm_ts_platform_data. Now, bad offsets defined here can screw big time calibration, whatever it's used beyond "real" limits (the real size of the screen) needs to be accounted for and corrected in msm_ts.c before or while reporting via input_report_key();

The touchscreen driver is compiled and loaded so the problem is incorrect calibration.

The quoted code from board-mooncake.c is exactly the same as mine, but in your sources they are way different

Share on other sites

Yeah, that's because deadlink used the same offsets as tigex for board-mooncake.c (for the number they used, based on blade phones I think) which deadlink later accounted for in msm_ts.c, that's why you later see in msm_ts.c things like this:

However, the driver I use for my phone doesn't use those values since to me it doesn't make sense when you can have the stock values in board-mooncake.c (min_x = 0; max_x = 239; max_y = 319) and later use something like:

Share this post

Link to post

Share on other sites

Touchscreen is working correctly now using my earlier post... however I'll adapt the code again using your latest post to make it cleaner.

Thanks for helping me so far, I'm not a dev but I've been tinkering with android for a year... this phone was given as a gift to me so I decided to have some fun learning more about android &amp; linux kernel things :P

EDIT: Camera is working now with the new sources too!

EDIT 2: Compiled new kernel with the modifications you mentioned, touchscreen doesn't work again :(

Share this post

Link to post

Share on other sites

I saw that msm_ts.c from pastebin earlier today but the soft buttons don't work with it. I'm working on the touchscreen all day... I hope something comes out of this, found lots of interesting stuff through my research.

EDIT: After looking & porting a lot of code I successfully use msm_ts.c from deadlink with some modifications to board-zte-mooncake.c with working virtual buttons/pinch-zoom/calibration except the virtual buttons don't vibrate. It seems that deadlink used kalltkaffe's sources for touchscreen & virtual buttons. Now I'm working on porting kalltkaffe's screen calibration and include it in RacerParts, almost done :)

Edited 18 Oct 2012 by mikeioannina

0

Share this post

Link to post

Share on other sites

I saw that msm_ts.c from pastebin earlier today but the soft buttons don't work with it. I'm working on the touchscreen all day... I hope something comes out of this, found lots of interesting stuff through my research.

EDIT: After looking & porting a lot of code I successfully use msm_ts.c from deadlink with some modifications to board-zte-mooncake.c with working virtual buttons/pinch-zoom/calibration except the virtual buttons don't vibrate. It seems that deadlink used kalltkaffe's sources for touchscreen & virtual buttons. Now I'm working on porting kalltkaffe's screen calibration and include it in RacerParts, almost done :)

deadlink used synaptics-rmi for the keypad however is not needed, what I did for my driver was to add the following in msm_ts.c in function msm_ts_probe:

Of course, in my case I need to compile the kernel with virtualkeys support (which deadlink didn't need since he used synaptics-rmi), also, this would allow to use touch_to_key to get haptic feedback on the keys, so for my kernel I have initramfs with touch_to_key support enabled and touch_to_key in /system/bin. I don't know yet however how to implement haptic feedback without touch_to_key, never really bother with it to be honest.

Also, thanks for reporting, this has reminded me that I need to update that fricking msm_ts driver in my github xD