Related
OK, here is the latest update. Instead of using kernel extracted from Rogers stock ROM, I compiled HTC kernel source downloaded from developer.htc.com.
To make touch screen work, one has to update sapphire_defconfig. Only one configuration has to be changed -- that is, to make the following unset.
#CONFIG_TOUCHSCREEN_CONCATENATE_REPORT=y
Then, compile kernel as usual and touch screen works with AOSP Froyo.
Hopefully, the above information is useful. Wifi is fine. But, camera is not working.
==================================
Guys, help is needed here.
In the past two weeks, I tried to compile AOSP Froyo (branch 2.2_r1) with HTC kernel (2.6.29) extracted from Rogers stock ROM. The compilation went fine. Boot also went smoothly until it reaches the screen that requires users to enter PIN code. At the moment, I found that I CANNOT enter anything from screen. (touch screen is gone)
As far as I can tell from the android architecture, touch screen is something related to kernel, right? HTC kernel does support touch screen. So, I was lost???
I tried to read init.rc, init.sapphire.rc, and init.goldfish.rc, and system/etc/ files to see if I missed some configurations. But found nothing.
What should I do? Any help is appreciated.
the driver in the kernel .29 do not fit the android 2.2 you need a different kernel, i got touchscreen by using the .34 kernel from froyorider
sharpt71 said:
Guys, help is needed here.
In the past two weeks, I tried to compile AOSP Froyo (branch 2.2_r1) with HTC kernel (2.6.29) extracted from Rogers stock ROM. The compilation went fine. Boot also went smoothly until it reaches the screen that requires users to enter PIN code. At the moment, I found that I CANNOT enter anything from screen. (touch screen is gone)
As far as I can tell from the android architecture, touch screen is something related to kernel, right? HTC kernel does support touch screen. So, I was lost???
I tried to read init.rc, init.sapphire.rc, and init.goldfish.rc, and system/etc/ files to see if I missed some configurations. But found nothing.
What should I do? Any help is appreciated.
Click to expand...
Click to collapse
I bet that you have a MyTouch with a 3.5mm headphone jack huh?
If not then you need to include more information.
In regards to the 3.5mm headphone jack version (also known as Fender or 1.2) it has slightly different hardware drivers that require the patch made by Voxluna. Most developers include this in their roms by default however if you are using any other source then odds are that they won't include the patch thus creating your problem.
capychimp said:
the driver in the kernel .29 do not fit the android 2.2 you need a different kernel, i got touchscreen by using the .34 kernel from froyorider
Click to expand...
Click to collapse
Since HTC source code was just released, will you please point me to the right files/folders so that I can find out the reasons why .29 does NOT work with Froyo?
I had once compiled AOSP Froyo with HTC kernel .27 by following instructions on http://www.lingnu.com/en/howto/72-android-aosp-htc-32a.html. Although camera (and maybe other devices) did not work, touch screen worked fine. Due to this experience and the limited reading of android architecture, I thought I could simply replace the kernel without affecting other layers. Hmm, to use layers design, why didn't google keep APIs intact?
Binary100100 said:
I bet that you have a MyTouch with a 3.5mm headphone jack huh?
If not then you need to include more information.
Click to expand...
Click to collapse
Sorry for not making this clean in the first place. Mine is a 32A which is running Rogers stock rom with root (made by capychimp) + chinese support + htc_cime (cooked by myself).
Ciompilation involved roughly the follwings:
1. AOSP froyo branch 2.2_r1
2. Comppilation of Froyo by following http://xy0811.spaces.live.com/blog/cns!F8AECD2A067A6B17!1526.entry?wa=wsignin1.0&sa=474748515 (which is similar to dferreira's howto)
3. unziped capy's Rogers_21_capychimp.zip instead of signed-google_ion-ota-14721.zip.
4. extracted kernel and wlan.ko from the boot.img in Rogers_21_capychimp.zip
the source from htc is for sense roms, way different drivers. I have a perfect .34 kernel for froyo but no cam so far.
carz12 said:
the source from htc is for sense roms, way different drivers. I have a perfect .34 kernel for froyo but no cam so far.
Click to expand...
Click to collapse
Thanks for the info. I just updated the current status at the 1st post.
From what I did, I kind of wondering whether or not the not-working camera problem is related to "configurations" because camera works on 2.1. But, I am not a kernel guy and will not be one.
sharpt71 said:
Then, compile kernel as usual and touch screen works with AOSP Froyo.
Click to expand...
Click to collapse
A screenshot of software information is attached. Oh, sdcard cannot be mounted unless it has no ext/swap partitions.
nice on the touch screen, will come in handy thx will try it on my wildfire port
[Kernel][Ref] Samsung Gravity Smart SGH-T589 Technical info & custom kernel project
The Samsung Gravity SMART is a low-midrange Froyo-based Android phone. It hasn't gotten a lot of attention because it's on an unpopular carrier (T-Mobile) and LOL QWERTY KEYBOARD. I intend to change that.
Technical Specifications
Below is information I've gleaned from spec sheets, Internet research, and judicious use of a loupe on my wife's broken phone.
Platform: Qualcomm S1 Snapdragon 7227 @ 800Mhz
CPU: ARM1136EJ-S
Touchscreen: ATMEL mXT224E
WiFi: Broadcom 4329
GPU: Adreno 200
RAM: 320MB, 275MB accessible
Bluetooth: ???
[more later--I'm at work and don't have all my notes]
Kernel development
I don't have anything to release yet. As a proof-of-concept, I've successfully compiled the sources provided by Samsung. It boots, but two big issues prevent me from releasing anything:
The coordinates on the digitizer are inverted--i.e. tapping the top left corner activates the bottom right, and vice versa.
The menu, back, and search capacitive buttons don't work at all.
Upcoming Features
Here's what I'm planning to add to the kernel once driver issues are resolved:
More CPU frequency scaling options
More scheduler/governor options
What's not planned
Gingerbread/ICS (phone needs updated boot loader to support 2.6.35 or later Linux kernels so we are stuck w/ Froyo for now)
I managed to hack the touchscreen driver to kinda-sorta work (at least the axes are correct now), but it's still not quite right. It's very inaccurate, which makes drawing anything (i.e. trying to play Draw Something) not work at all.
ATMEL has released drivers for the mXT series (including the 224E) but I'm having trouble getting it to work properly. Going to compare it against the kinda-working driver and see if I can fix it.
I found part of the problem, but I'm still having trouble with getting the driver to even load. Still, I discovered that the stock touchscreen driver only supports 2 simultaneous touches--the chip actually supports up to 10 simultaneous. I'm hoping to get the driver working so it's actually usable.
I have a friend with this phone i'm curious to see what you can do with it!
Man, this touchscreen driver is kicking my butt.
The official Atmel drivers don't work at all--the i2c call(s) fail during initialization and you get no touchscreen input.
The driver in the kernel released by Samsung is broken, too. In the default configuration, both axis are inverted so you have to tap the top-right of the screen to tap on something that's actually in the bottom-left. And the navigation buttons at the bottom don't work at all (menu/back/search).
So far all I've managed to do is at least get the orientation fixed, but the driver's still broken--you can't tap on anything on the edges (left/right), and the scaling is wrong so taps are mis-aligned in different parts of the screen. It's hard to describe, but comparing the output of YAMTT on stock kernel vs. compiled kernel shows glaring problems.
At this point I am trying to fix the Samsung driver, since it at least partially works. In the process, I'm doing a pretty massive code cleanup, mainly code organization and complete debug info that will make it easier to dissect exactly how the driver works and hopefully find the cause of the freaky behavior.
I've overhauled the debug output of the Samsung driver so that it's easier to parse via grep. The next trick will be actually fixing the driver.. but I'm going to be gone for annual training for the next two weeks, so things will be on hold until I get back.
I'm very excited to see what can be done with this for the phone.
This is my girlfriend's first android phone and while she's enjoying it, I want the experience to be better for her.
Good luck with your training!
SefEXE said:
I'm very excited to see what can be done with this for the phone.
This is my girlfriend's first android phone and while she's enjoying it, I want the experience to be better for her.
Good luck with your training!
Click to expand...
Click to collapse
Nice choice
This is a powerful device but unfourtuneally is an unpopular one, so there is not many developers with the Gravity
I strongly recommend you to install to follow and install this ROM on your girlfriend's phone: http://forum.xda-developers.com/showthread.php?t=1320187
Well, I've managed to get a 3.6.35.7 kernel to boot on the phone.
Samsung released the kernel source for the SGH-T589W which seems to be a Gingerbread edition of the Gravity Smart. The kernel builds successfully and manages to boot, but it gets stuck on a black screen. However, it does show up in the 'adb devices' list, so it's a start.
I believe the problem is the lack of both the OneNAND driver (AKA LinuStoreIII) and the RFS filesystem support. The modules from the stock kernel are compiled against 3.6.32.x so they don't work with the newer kernel.
My Google-Fu has turned up partial source for the same version of LinuStoreIII for the 3.6.35.7 kernel, and it successfully compiled. However, I haven't had any luck finding an RFS module.
EDIT: I think I found what I need, but I won't know until I get home!
gblues said:
Well, I've managed to get a 3.6.35.7 kernel to boot on the phone.
Samsung released the kernel source for the SGH-T589W which seems to be a Gingerbread edition of the Gravity Smart. The kernel builds successfully and manages to boot, but it gets stuck on a black screen. However, it does show up in the 'adb devices' list, so it's a start.
I believe the problem is the lack of both the OneNAND driver (AKA LinuStoreIII) and the RFS filesystem support. The modules from the stock kernel are compiled against 3.6.32.x so they don't work with the newer kernel.
My Google-Fu has turned up partial source for the same version of LinuStoreIII for the 3.6.35.7 kernel, and it successfully compiled. However, I haven't had any luck finding an RFS module.
EDIT: I think I found what I need, but I won't know until I get home!
Click to expand...
Click to collapse
NICE, keep us with update with the news :highfive:
Well, I thought I had something, but it's still not working quite right. I've got the parts for my debug cable on order. Should get here within the next week.
Well, I haven't yet gotten the serial output yet, but I do have a much more detailed output from dmesg now. I'm attaching it below.
Ugh. Samsung's OSRC is being a pain in the butt.
I contacted them requesting the correct driver. Their response: "That is the correct driver."
I responded, "Did you actually test it? Because when I compile the code you provided, the x/y axes are inverted." Their response: "Herp derp Samsung Proprietary."
My most recent response: "Don't give me that proprietary BS. The driver is GPL. If you used any of the code that's in that driver, you need to publish your modifications to it."
We'll see what happens next...
Your dedication to this project continues to provide me with a glimmer of hope for the 589. I thank you sir. Down with herp derp.
Sent from my SGH-T589 using xda app-developers app
Well, now they're claiming that the driver is the one they used in the shipping kernel. Oy!
In other news... I successfully booted Gingerbread on the phone using a stock kernel. I cheated a bit, though. I'll describe how I did it, in case anyone doubts me. The post is intentionally vague because it's not fully usable, wifi doesn't work at all, and I'm not currently at home and able to fully document the process. If anyone is actually interested in trying this out, I'll consider writing a script to automate it.
Known issues with this method:
- network time doesn't seem to work right
- wifi definitely doesn't work right
- usb mode doesn't appear at all
- The phone reports itself as a Galaxy Ace in the Settings screen.
OK, the steps:
First, the things you will need:
1) Stock SGH-T589 firmware (samfirmware.com has it)
2) Stock Galaxy Ace firmware (again on samfirmware.com)
3) unpack-bootimg.pl (google it). This is used to extract the kernel and ramdisk from boot.img
4) mkbootimg (google, or build from source). This is used to re-create the boot.img file
Steps:
- Start by unpacking each firmware package into its own folder.
- From the SGH-T589 folder, delete everything except boot.img
- From the Ace folder, delete everything except boot.img and system.rfs (MAKE SURE YOU DELETE arm11boot.img)
- Now, make an empty folder and copy the stock boot.img into it. Unpack it with unpack-boot.img.pl
- Make another empty folder and put the Ace's boot.img into it. Unpack it also.
- delete the boot.img-kernel.gz from the Ace's folder
- delete boot.img-ramdisk/lib/modules/*.ko
- copy boot.img-kernel.gz from the stock folder to the ace one.
- copy boot.img-ramdisk/lib/modules/*.ko from stock folder to corresponding dir of the ace one.
- copy boot.img-ramdisk/COOPER.rle from stock folder to ace one (optional, preserves the Gravity Smart boot splash screen)
- now, repack the boot.img-ramdisk folder into the CPIO archive
- next rebuild the boot.img file
- lastly, create ODIN archive with the rebuilt boot.img and the Ace's system.rfs
Flash the resulting tar.md5 file using Odin 4.40 USA.
Hi gblues. Very good work so far! Are you planning on porting CWM recovery? It's been ported to very similar phones, like the Ace, Gio, and Mini.
ShaunOfTheLive said:
Hi gblues. Very good work so far! Are you planning on porting CWM recovery? It's been ported to very similar phones, like the Ace, Gio, and Mini.
Click to expand...
Click to collapse
I used a similar technique (unpack, replace kernel/kernel drivers, repack) on the Galaxy Ace CWM recovery and it seems to work. Unfortunately, when I tried to use it to flash the Ace's ICS port, I get a black screen with "A N D R O I D" in the middle (note: this is after extracting the boot.img and doing the unpack/swap/repack process and flashing with ODIN). I suspect that ICS requires kernel features that simply aren't in the stock 2.6.32 kernel.
After doing some more long-term tests, my accomplishment above is a good proof-of-concept but it's not ready for prime time. Landscape mode is completely broken. Games like "Cut the Rope" only give you a black screen. The QWERTY keyboard is borked (mainly alt-keys). The SD card disappeared completely until a reboot. USB mode doesn't work. The accelerometer doesn't seem to work. The stock web browser crashes. Wifi doesn't work. The list goes on.
So that gets back to getting a custom kernel working...
It seems that finally I was able to boot custom kernel with working radio
It's not very stable yet(it stops/crashes at bootanimation quite frequently), and is quite laggy just after boot, but once it boots it seems to be almost usable. Wifi works, sdcard also. Haven't checked bluetooth.
Credits for this goes to:
* milestone1 devs... for sharing 2ndboot source code and providing so much info regarding milestone1/2 phones
* Motorola ... for providing source code(not fully working, but was a great help anyway) for enabling UART over micro usb for debugging purposes(without this I woudn't make any progress)
* tezet... for making quite good roms used by 2ndboot
If you wish to try it(BEWARE THAT IT MIGHT BRICK YOUR PHONE, SO DON'T SAY THAT I HAVEN'T WARNED YOU ), then do as follows:
1. Install tezet's JB10(if you don't have one already).
2. extract 2ndboot.tar(attached) into /data folder, check that /data/2ndboot/hbootuser file has execute permissions.
3. overwrite /system/bootmenu/script/2nd-boot.sh(DON'T TOUCH 2nd-init.sh!!!) with the one from tar(2nd-boot.sh.tar) and check it has execute permissions.
4. reboot into bootmenu
5. change the default boot method to 2ndboot
6. Restart your phone. Most likely it will crash few times at bootlogo, but be patiant, it finally should boot
7. If you wish to get back to 2nd-init, then enter bootmenu again and change default boot method back to 2nd-init, or manually boot 2nd-init
Click to expand...
Click to collapse
Please let me know if someone actually run it and was able to boot(so that to find out if I haven't forgot to include some more files(see changelog for 03.10.2012)
KNOWN LIMITATIONS
Boots very sloooowly
Its' quite laggy just after boot.
GPS does not seem to work yet
Click to expand...
Click to collapse
CHANGELOG
01.10.2012 - corrected battery problems(thanks to Quarx and kabaldan)
03.10.2012 - corrected ramdisk(previous one was calling some script which I forgot to attach to this post, new one has this script inside), so that now you should be able to boot it; updated instructions how to install it; enabled TLS in the kernel(thanks to kabaldan)
04.10.2012 - touch driver updated, now should work with lastest JB(thanks to Eleanor_Ir, Quarx), adb fixed(I hope, stability fix(thanks to Quarx)
Click to expand...
Click to collapse
NOTES for devs
In milestone2(as probably in many others UMTS phones made by Motorola) the BP is somehow very sensible and does not like to be disconnected/reenumerated. The main goal of this 2ndboot is then to not allow it to be disconnected. To do this, in the new kernel I've skipped a few resets(EHCI, TLL, individual port resets), and instead of enumerating BP, I've used the hardcoded usb device address(which for milestone2 seems to be equal to 2).
I attach patch(radio.patch) with the changes I've done to the kernel sources from here:
http://sourceforge.net/projects/milestone.motorola/files/MILS2_U6_4.1-22/
This seems to work(sometime) for both milestone2 and defy.
For other motorola phones:
1. First of all, check with lsusb what's the address and vendor/product id of your BP(for milestone2 it's 0x22b8 and 0x40e6).
2. If the BP usb device address is 2, then just apply the patch(probably it will need some small modifications), and check if it works.
3. If the BP usb device address is not 2, then edit usb/core/hub.c function hub_port_init(providing that it's there for your kernel), and replace 0x02 in the place where usb_control_msg to get descriptors is sent with address of your device
If it does not work, then you can try the following:
Create a procedure to send usb GetDescriptors request using omap3 ehci registers, and call it at different boot stages/usb initialization stages to find out how long the radio remains attached, and comment/change appropriate fragments of kernel code, to preserve this until usb port is initialized. If you wish, I can share the procedure I've written(in the patch file this is that czecho_get_descriptors called in many places) for milestone2, but it probably would need some modification to work with your device).
2ndboot module sources are here:
https://github.com/czechop/2ndboot
Wow, thats perfect This could bring M2 development to another level.
Holding thumbs up and keep it up!
Great news! Thx for your work. I've just bought an OTG cable to start playing with kernel stuff and here's a surprise
Fabulous! That means it starts a new era in the development of our MS2 Roms!
Wonderful job man
Brilliant
Sent from my A953 using Tapatalk 2
I'm gonna try on the Motorola Bravo as soon as PA is done uploading. Hopefully this'll work on Froyo kernels as well :fingers-crossed:
What kernel are you using? A recompiled MS2 GB kernel unmodified?
Awesome job man. This could possibly be the start of a new generation of roms for our common platform if this works on other similar phones like the Defy\Bravo. Only time will tell .
Well good work OP, can this be implemented on other Moto phones like Defy?
Great work !
I see that your work is based on Moto's Linux kernel (2.6 branch as far as I remember...)
Any hope of using another kernel source one day ?
Great News!, Thanks
Waiting for source code
Wow! Tezet and Quarx on the same thread?! I feel like up on the Mount Olypmus lol
Great job, man!...been following your work from General section.
P.S. add Kabaldan to the list Clash of the Moto Titans
skeevy420 said:
I'm gonna try on the Motorola Bravo as soon as PA is done uploading. Hopefully this'll work on Froyo kernels as well :fingers-crossed:
What kernel are you using? A recompiled MS2 GB kernel unmodified?
Awesome job man. This could possibly be the start of a new generation of roms for our common platform if this works on other similar phones like the Defy\Bravo. Only time will tell .
Click to expand...
Click to collapse
Yes, I use MS2 GB U6_4.1-22(http://sourceforge.net/projects/milestone.motorola/files/MILS2_U6_4.1-22/) kernel... but with modified usb host driver.
nidhish91 said:
Well good work OP, can this be implemented on other Moto phones like Defy?
Click to expand...
Click to collapse
I think it can be.
With defy it probably should be easy, as I've seen there was 2ndboot(without radio) already build for it, so most likely only new kernel would need some tuning
czechop said:
I think it can be.
With defy it probably should be easy, as I've seen there was 2ndboot(without radio) already build for it, so most likely only new kernel would need some tuning
Click to expand...
Click to collapse
XT720 users also waiting for instructions for new kernel tuning, cause we have working 2ndboot without radio. =)
boorce.com said:
Great work !
I see that your work is based on Moto's Linux kernel (2.6 branch as far as I remember...)
Any hope of using another kernel source one day ?
Click to expand...
Click to collapse
It should be easy to apply some(perhaps most) 2.6.32 upstream patches to the motorola kernel sources.
Don't know however how difficult it would be to start from another kernel version. Don't know also how motorola proprietary modules/libs would behave with newever kernel version. But, as they say, impossible is nothing
czechop said:
I think it can be.
With defy it probably should be easy, as I've seen there was 2ndboot(without radio) already build for it, so most likely only new kernel would need some tuning
Click to expand...
Click to collapse
In kernel only modified usb driver or some more changes for boot?
fjfalcon said:
XT720 users also waiting for instructions for new kernel tuning, cause we have working 2ndboot without radio. =)
Click to expand...
Click to collapse
Will share source code probably early next week(currently am at work, and during weekend most likely won't be sober enough
Quarx said:
In kernel only modified usb driver or some more changes for boot?
Click to expand...
Click to collapse
In 2ndboot module I've added code to disable lcd before starting new kernel(otherwise new kernel could not initialise properly dss), and in new kernel I've only modified usb driver(perhaps more things will need to be modified, as I'm facing problem with BATTD sayins something about power ic fail, BTW, does someone know what that could mean?), so that it skips restaring EHCI, TLL and don't start enumeration, but just used the old usb device address(assigned by the original kernel), which for M2 is always 2(at least during my tests).
I2c Fail can be caused by wrong permissions for /dev/cpp*
I tried your prebuilt binaries on defy http://pastebin.com/jKjQ2ykn
Black screen + buttons lights and reboot after ~20sec
Quarx said:
I2c Fail can be caused by wrong permissions for /dev/cpp*
I tried your prebuilt binaries on defy http://pastebin.com/jKjQ2ykn
Black screen + buttons lights and reboot after ~20sec
Click to expand...
Click to collapse
Thanks for hint regarding permissions...will check that
Regarding prebuilt binaries on defy, hard to say what's wrong(not sure how much the phones differ). Anyway, you probably would need to use devtree from your device. Also you could unpack ramdisk, and check the init.*.rc scripts if they are ok(e.g. I mount system partion using p21, not sure if that's the same for defy, and staff like that).
Since I can't post in dev, I'm asking here.
Where the problem is?
Is it kernel and missing modules (i don't have them in my kernel, like usb-storage etc. )
or there is more than that such as hardware limitations?
Is someone trying to resolve this problem or someone tried and failed (what did they learn?)
I'm not just curious and waiting for job to be done by someone else, I want to contribute myself.
Motorola A956 has OMAP3630.
OMAP kernel has usb support (git.omapzoom.org/?p=kernel/omap.git;a=summary)
Also A956 has a TI 51001582002 Power management IC wich has usb transciver supporting usb otg (becouse droid 1 has the same ic)
So as far as i know its probably only the software problem to get it running...
We can't load a modified kernel in D2G unless we have kexec. Motorola has posted the source for the kernel and I guess you could try to insmod kexec module + script to load your custom kernel with usb host support. Check out the IRC logs of detule and others for Droid 3 because are pioneers for custom kernels on a locked Moto device.
Motorola Droid 2 Global Source: http://sourceforge.net/projects/droid2we.motorola/files/
Doid 3 Kexec project: https://gitorious.org/droid3-kexec
here is also something interesting to consider: http://blog.hash-of-codes.com/
Good luck! I would love to see this happen but I haven't had a chance to try out myself because my hands are full with other unfinished projects.
Hello all.
Sorry for noob question, but I am just a beginner.
I have a tablet (GoClever R105KB) with Rockchip RK3066 chipset.
So far, I did not find any alternative ROM for it.
I am quite happy with the stock firmware (I just rooted it), but I'd like to modify a single thing - the USB_OTG driver.
The stupid device designer compiled the kernel with the flag CONFIG_USB_OTG_BLACKLIST_HUB enabled.
Therefore my keyboard with integrated hub and mouse port does not work.
I'd like to recompile the kernel, however, the device manufacturer did not post any sources.
I am thinking about downloading the kernel sources for 3.0.8+, compile the hub.c myself and somehow force the module to the kernel.
Can anyone advice if this is even possible?
Thanks.
I now found out that there is some option to patch already running kernel, or maybe disassemble the kernel, remove the condition and assemble it back.
Does anyone have experience with such activity?