[DEV][WIP]Building ICS for the OV

JerryScript

Daydream Believer
Mar 8, 2011
2,055
1,559
0
Visit site

tdm

Well-known member
Apr 11, 2011
1,409
3,596
0
Visit site
Yeah I'm hoping its a good base to start from. I can really dig in once I have a foundation that can at least make voice calls and do SMS.

I simply don't have the time to do a bring up, especially on an unsupported CPU.
 

rukin5197

Well-known member
May 26, 2011
1,105
628
0
Visit site
To the devs:

mantera said:

I looked at it and it looks like they've edited our repo to maker SMS work for them. So maybe we could put these commits in and it would work? Im not a big git expert so I don't know how I would go about doing this myself...

Sent from my Amazon Kindle Fire using Tapatalk
 

LeslieAnn

Android Developer
Feb 8, 2011
2,895
1,720
0
Visit site
I suspect some of those were initiated by Epic and Evo users, both of which have working ICS and people using them on Virgin Mobile*. Jerryscript was helping Brooksyx with it.

The OV has more pressing issues than MMS and SMS (like a working phone), once the OV gets to that point though, getting those working on ICS will be simple because of that work.



*yes, it rocks.
 

watskyhotsky

Well-known member
May 26, 2011
899
115
0
Visit site
the Motorola Triumph got a stable daily driver ICs rom. im using it right now.

phone, sms, MMS, data, and wifi work.

you guys should talk to those devs, they might be able to help figure out virgin mobile specific stuff for phone and data.

btw, ICS is really cool. definately a bigger upgrade then 2.3 was from 2.2
 

watskyhotsky

Well-known member
May 26, 2011
899
115
0
Visit site
Not a daily driver yet for sure, but it looks promising!

The one thing I dread is mapping keys. There are more than 7 files that have to be changed for any new key entries, and doing it right can be a pain!

If hw acceleration has finally been enabled for amrv6, then I'm going to have to jump back into ICS next week! ;)

I've read that hardware acceleration HAS been enabled for Adreno 200 devices (aka Nexus One) so should be a bit easier porting it to the OV, which uses a similar 1st gen snapdragon SoC (minus the scorpion core) but very similar.

on the triumph we are using the MSM7x30 cm9 stuff but that SoC is a gen 2 snapdragon part i believe. their numbering scheme is a bit strange
 

rukin5197

Well-known member
May 26, 2011
1,105
628
0
Visit site
the Motorola Triumph got a stable daily driver ICs rom. im using it right now.

phone, sms, MMS, data, and wifi work.

you guys should talk to those devs, they might be able to help figure out virgin mobile specific stuff for phone and data.

btw, ICS is really cool. definately a bigger upgrade then 2.3 was from 2.2

That's what my above post was from.. getting info from triumph devs for data and SMS ;)

Sent from my Amazon Kindle Fire using Tapatalk
 

Eollie

Well-known member
Feb 22, 2011
1,534
258
0
Visit site
At this rate ICS will be on the OV before they finally figure out how to port it to my GS4G...:(

But if the SGS4G devs focus this is suppose to be almost ready for release.

meeUI.png
 

tdm

Well-known member
Apr 11, 2011
1,409
3,596
0
Visit site
FYI, I've got lupohirp's sources compiling, mostly.

I had to make some minor changes because webrtc was emitting asm code that the arm6-vfp does not implement. lupohirp has a webrtc shlib so I'm guessing he forgot to push a change into his github. But a thread on xda-developers said to omit it and so that's what I did.

Right now I'm in the process of figuring out what Drew did to make the image boot and run. Since he didn't recompile, that should be doable by just comparing files.

I'm thinking that I should have something on par with Drew's image within 48 hours.
 

rukin5197

Well-known member
May 26, 2011
1,105
628
0
Visit site
It's been awhile...but if your get the "build/core/product_config.mk:" error when you try to start a build.
Run:
. build/envsetup.sh
breakfast

select the # for: cm_thunderc-userdebug

then:
make bacon

I just ran into this error again! Lol thanks a lot for this :)
I just ran a repo sync like 30 minutes ago. Should I run one again?

Sent from my Amazon Kindle Fire using Tapatalk
 

rukin5197

Well-known member
May 26, 2011
1,105
628
0
Visit site
I finish pushing about an hour ago...what was the error?

It was the same one I've been getting. But I didn't use those commands. I was just saying that I literally just tried repo syncing again like 30 minutes ago (haven't synced in like 2 months) and got that same error as before, then you posted this. Ironic a little :)

Sent from my Amazon Kindle Fire using Tapatalk
 

rukin5197

Well-known member
May 26, 2011
1,105
628
0
Visit site
It's been awhile...but if your get the "build/core/product_config.mk:" error when you try to start a build.
Run:
. build/envsetup.sh
breakfast

select the # for: cm_thunderc-userdebug

then:
make bacon

Hmm still not building for me. Still getting the same error

Sent from my Amazon Kindle Fire using Tapatalk
 

tdm

Well-known member
Apr 11, 2011
1,409
3,596
0
Visit site
I had to make some minor changes because webrtc was emitting asm code that the arm6-vfp does not implement. lupohirp has a webrtc shlib so I'm guessing he forgot to push a change into his github. But a thread on xda-developers said to omit it and so that's what I did.

lupohirp replied to my PM and said that he used webrtc from mikegapinski.

That seems to work, so now I have a cm9 tree that compiles clean from scratch! :D It is about four weeks old, which is just a couple days away from when lupohirp released his ROM. So maybe that was a good time to do a pull. In any event, I'm not even going to dream about syncing the tree to current until I can make some solid progress. :p

Here's the magic diff in case anyone wants it but doesn't feel like cloning mikegapinski's repo to get it:

Code:
diff --git a/src/common_audio/signal_processing_library/main/interface/spl_inl.h
index 8716ca9..6e20df6 100644
--- a/src/common_audio/signal_processing_library/main/interface/spl_inl.h
+++ b/src/common_audio/signal_processing_library/main/interface/spl_inl.h
@@ -19,10 +19,19 @@
 
 #ifdef WEBRTC_ANDROID
 
+__asm (
+   // On Android gcc compiler, the clz instruction is not supported with a
+   // target smaller than armv7, despite it being legal for armv5+.
+"   .arch armv7-a\n"
+//"   clz     %0, %1  \n"
+//"=r"    (leading_zeroes)
+//"r"     (data)
+);
+
 WEBRTC_INLINE WebRtc_Word32 WEBRTC_SPL_MUL(WebRtc_Word32 a, WebRtc_Word32 b)
 {
     WebRtc_Word32 tmp;
-    __asm__("mul %0, %1, %2":"=r"(tmp):"r"(a), "r"(b));
+    __asm__("smmul %0, %1, %2":"=r"(tmp):"r"(a), "r"(b)); //changed mul to smmu
     return tmp;
 }
 
@@ -66,7 +75,7 @@ WEBRTC_INLINE WebRtc_Word16 WebRtcSpl_AddSatW16(WebRtc_Word16 
 {
     WebRtc_Word32 s_sum;
 
-    __asm__("qadd16 %0, %1, %2":"=r"(s_sum):"r"(a), "r"(b));
+    __asm__("qadd %0, %1, %2":"=r"(s_sum):"r"(a), "r"(b));
 
     return (WebRtc_Word16) s_sum;
 }
@@ -86,7 +95,7 @@ WEBRTC_INLINE WebRtc_Word16 WebRtcSpl_SubSatW16(WebRtc_Word16 
 {
     WebRtc_Word32 s_sub;
 
-    __asm__("qsub16 %0, %1, %2":"=r"(s_sub):"r"(var1), "r"(var2));
+    __asm__("qsub %0, %1, %2":"=r"(s_sub):"r"(var1), "r"(var2));
 
     return (WebRtc_Word16)s_sub;
 }
 

tdm

Well-known member
Apr 11, 2011
1,409
3,596
0
Visit site
Well I'm pretty much stuck. I've burned hours on one little problem but can't figure it out for the life of me.

I compiled the ICS tree and put all of Drew's changes in that I can find. The kernel binary, kernel modules, proprietary binaries, init scripts, everything. The only thing that is different is that I'm building with the vendor model thunderc instead of thunderg that lupohirp used. It's so close that diffs of Drew's ramdisk and mine differ only in that one change, same with his /system/etc and mine.

But when I boot my system, it won't come up. I get adb so I can poke around.

The first issue I see is that init cannot find /system/etc/init.local.rc (which is referenced from /init.rc on the ramdisk). I didn't think that /system was mounted at the point the rc-files are parsed so I really don't know how his is reading it, but it does seem to be succeeding because there's no error in dmesg.

I set loglevel to 7 in both his and my images and compared the output. Here's init.rc about line 44:

Code:
# Right now vendor lives on the same filesystem as system,
# but someday that may change.
    symlink /system/vendor /vendor

# create mountpoints
    mkdir /mnt 0775 root system
    mkdir /mnt/sdcard 0000 system system

In his system, the two mkdir's fail with r=-17, which looks like EEXIST. But in mine they succeed. Even stranger, I don't see how do_mkdir() in system/core/init/builtins.c can return EEXIST because it checks for that and then runs chmod(), which cannot return EEXIST.

I checked the CM repo and there don't seem to be any relevant changes that would cause this issue.

The only thing I can think of is that lupohirp changed the code in system/core/init.

If anyone has a clue, please let me know. I'm totally stumped.

The only things I have left to try are: (1) PM lupohirp to see if he changed anything, and (2) go back and trace this in IHO's init because it has the same import line (it's a CM thing).
 

tdm

Well-known member
Apr 11, 2011
1,409
3,596
0
Visit site
Hmm, looks like IHO init exhibits the same behavior as Drew's init. Need to dig in and find out why.
 

Forum statistics

Threads
943,148
Messages
6,917,516
Members
3,158,846
Latest member
RemusGhostofRome