Android Tablets Forum banner

Intercept 3D Drivers

16K views 49 replies 13 participants last post by  mikeataol 
#1 ·
Intercept 3D driver package for CM6 on Novel:
http://www.mediafire.com/?l9z8jk8wr745h1w

push files using ADB

Be sure to
chown root:shell /system/bin/surfaceflinger
chmod ug+x /system/bin/surfaceflinger

Known problems:
Breaks hardware mp4 decoding, probably in opencore...
(someone please fix for me! ...I've spent days trying to figure it out)

The core graphics drivers themselves would probably work in the other, later ROMS (but probably not the surfaceflinger bin,libs)... I haven't tested.

Credit goes here:
http://forum.samdroid.net/f53/intercept-3d-drivers-cyanogemod-3601/

With a little work, someone could probably adapt this package here:
http://forum.samdroid.net/f55/graphic-drivers-mix-3574/
to stock OPDN firmwares (minus the /lib/hw stuff of course)- these will NOT work on CM6
 
See less See more
#3 ·
A couple of "screenshots"...

Quadrant Standard score of 307



GL Specs



I think we need a kernel with overclocking and framebuffer support and then we would have a respectable little device for the money....


Rock and roll, man!

+1
 
#5 ·
I have no problems with portrait mode. (TBH, I had no problems with it before the driver change, so I wonder if Rap didn't fix it and just didn't say so.)

IMO, CM6 is fully functional except for breaking hardware mp4 decoding with these drivers.

I would love some help fixing that.. and then my OCD's would be satisfied.
I'm not sure if it's some kernel differences between us and spica's, surfaceflinger, or what.

The only thing I can see is that mobo player complains about not having /dev/pmem_stream, that may or may not be an issue...
Seems that Randomblame in the CM7 rom managed to disable some of the built in s3c kernel graphics drivers in order to use some newer modules (if I read that right)- I would love to know what he did and if he managed to get a /dev/pmem_stream socket.
 
#7 ·
There is a kernel difference open fimg on Spica adds a lot of features and optimization for the gpu. Take the kernel and modules from my last cm7 build and be sure to insmod the modules in the init.rc and you'll get accelerated 2d I'm not sure if it will hurt 3d performance though terminander was working on getting 3d fixed up basically unloading our kernel driver and replacing it with a module based on the Spica improvements
 
#9 ·
Have you tried adding the Intercept drivers to CM7 yet? The only problems I would think would be with surfaceflinger and there's enough spica cm7s floating around (with intercept drivers) that I think it would be easy to cook something up.

BTW, I had no problems fusing your kernel into CM6. I also extracted your ramdisk and looked around in it. I didn't see any new modules or anything like that but I did see your wifi modifications to init. I'm consistently getting 316-320 in quadrant so I guess it made some small difference.

I also noticed the framebuffer stuff in dmesg and found the /dev/graphics/fbo,1 - so I don't know why quadrant says there's no framebuffer support. Found a little on the net that suggests that's a spica bug too.

I've spent way too much time on this (can't hand somebody with OCD's something that's broken, lol). I'm just glad it's a cheap device I'm learning on... I'd rather hose a $60 device than a $300 device... and I've been in some pretty tight spots already (leave libc alone...).
 
#13 ·
So yeah RB, I had the wrong image. The one I pulled was from the clockwork mod rom collection and not the one on pg 14 or so on the cm7 thread.

I got the right one, modified the ramdisk.img for init to insmod the modules, etc.

Got the new nifty slatedroid logo...
And of course there always has to a problem somewhere...

Code:
<br />
I/SurfaceFlinger( 1949): EGLSurface: 8-8-8-0, config=0x6<br />
I/SurfaceFlinger( 1949): flags     : 00190000<br />
I/        ( 1949): libGLESv1_CM_fimg.so was loaded and GLES 1.1 API was successf<br />
ully mapped<br />
E/        ( 1949): [3D][ERR]lock3DCriticalSection ioctl was not opened<br />
E/        ( 1949): [3D][ERR]unlock3DCriticalSection ioctl was not opened<br />
E/        ( 1949): [3D][ERR]lock3DCriticalSection ioctl was not opened<br />
E/        ( 1949): Unable to allocate 32 bytes<br />
I/DEBUG   ( 1845): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *<br />
**<br />
I/DEBUG   ( 1845): Build fingerprint: 'generic/generic/generic/:2.2.1/FRG83/eng.<br />
root.20110103.011058:eng/test-keys'<br />
I/DEBUG   ( 1845): pid: 1949, tid: 1956  >>> system_server <<<<br />
I/DEBUG   ( 1845): signal 11 (SIGSEGV), fault addr 7fefffff<br />
I/DEBUG   ( 1845):  r0 46bf2928  r1 c9a70030  r2 00000000  r3 afd499e8<br />
I/DEBUG   ( 1845):  r4 7fefffff  r5 00000020  r6 0012f8c8  r7 00119d90<br />
I/DEBUG   ( 1845):  r8 a8f050d8  r9 00000000  10 00119da0  fp 00001908<br />
I/DEBUG   ( 1845):  ip c9a70030  sp 46bf2950  lr a8f02940  pc a8f02944  cpsr 600<br />
00010<br />
I/DEBUG   ( 1845):          #00  pc 00002944  /system/lib/egl/libChunkAlloc.so (<br />
_ZN16ChunkAllocForAPI3NewEj)<br />
I/DEBUG   ( 1845):          #01  pc 0005bb44  /system/lib/egl/libGLESv1_CM_fimg.<br />
so (_ZN10ChunkAlloc3NewEj)<br />
<br />
<br />
# lsmod<br />
lsmod<br />
rtnet3070sta 107226 0 - Live 0xbf0ca000<br />
rt3070sta 721336 1 rtnet3070sta, Live 0xbf017000 (P)<br />
rtutil3070sta 26744 2 rtnet3070sta,rt3070sta, Live 0xbf00e000<br />
s3c_g3d 5696 0 - Live 0xbf007000<br />
s3c_g2d_driver_trm 7700 0 - Live 0xbf000000<br />
Hmm, I forgot to do a dmesg... wonder if I'm missing/needing another module... or maybe it's my libChunkAlloc.so? Anyway, I'm back with the old one... guess I'll mess with it later.
 
#17 ·
JLO, that kernel is loading non stock 2D & 3D modules (tomqs). Try using an earlier S10 kernel, even the cm6 kernel.

Sorry RB, haven't touched the novel in weeks, too busy at work plus my Linux netbook is currently running Windows to share the internet at the campsite. If I could ever get my 3g dongle router to work with my rocket stick, I would be laughing.
 
#19 ·
It was definitely easier adding these drivers into CM7 than it was CM6, RB.

All you need is the three fimg files out of egl. (libEGL_fimg.so, libGLESv1_CM_fimg.so, libGLESv2_fimg.so).
Rename the existing libGLES_fimg.so

You can go ahead and enable egl.cfg
0 0 android
0 1 fimg

I did this on the old kernel... haven't tried the new on this.
 
#30 ·
OK, I think this is going to be my final version- I'm tired of messing with it:
http://www.mediafire.com/?e5zpdmi8nk094cg

Things I've done to it:
added the clock alarm ringtones
added the live wallpapers (y'all REALLY must check them out)
cleaned some stuff up in the ramdisk (got rid of the bluetooth and radio stuff and the pandigital reader directories, increased the wifi buffers, and messed around with the memory killer/manager stuff- to match that of the spica's)
added the kernel (so you *should* be able to directly downgrade/flash on top of CM7)
added google maps, google street view, and google sky
replaced 2d gallery with a swipe gallery (from the froyo kitchen)
replaced some libs from the froyo kitchen (stagefright *TRIES* to play hardware mp4's now, although the kernel really isn't up to the task, opencore player is still broken- still waiting for somebody to fix it for me....software rendering works pretty good though):

The kitchen is a great resource, y'all could use it to install google apps
http://android.mwyann.com/spica/kitchen

Just a FYI, I had used this guide to barebones the original rom:
http://wiki.cyanogenmod.com/wiki/Barebones

You can go through it and make a list of what needs to be added back to make gapps work and go get everything you need from the kitchen.

There is a discussion of angry birds and what's needed to get it working here:
http://forum.samdroid.net/f56/discussion-intercept-3d-drivers-cyanogemod-3602/index4.html#post90902

...it involves the egl.cfg file and basically it *may* break gallery and for sure breaks quadrant testing.

I think some of the problems with a black screen might be with the touch screen calibration, I think if you wait too long, you might have to hit the volume up twice to unlock and volume down to back out of the touchscreen calibration (although you can't see what you're doing).

and there's one too many lost+found folders in system. you're welcome to delete one. at least now I know you need to delete that before packing the system.img (one of the quirks of yaffs I guess)... and I'm not going to redo just to fix that.

And just a quick note. I found that Kewlguys stock rom v3(eclair), already has the "driver mix" in it. I also noticed that it plays HQ youtubes... It's just so clunky that it's hard to like.

and, BTW, in wi-fi settings, if you hit the volume up and go to advanced, you can change the wi-fi sleep policy to not sleep when the screen turns off.
 
#34 ·
The CWM recovery was from the original CM6 ROM found in the Clockworkmod ROM collection. Apparently it's an older one because it has the /misc errors at the top. I need to switch it out for the newer version.

I should have tested that second ROM out further before posting. I think with the things added that are using more memory and with the lowmemkiller settings in the ramdisk, it has created some problems. If you add enough widgets and have a live wallpaper, you may end up bootlooping on startup because lowmemkiller kills the system server. I need to work on it.

you could get fuse and recovery.img from one of the newer roms:
adb push fuse /data/misc
adb push recovery.img /data/misc
adb shell
cd /data/misc
chmod ug+x fuse
/data/misc/fuse recovery recovery.img

I still need to better optimize the lowmemkiller settings in the ramdisk in the second ROM as well. Our device simply doesn't have enough memory. The reason I messed with them to begin with is because mobo video player would get killed after playing 15 or so minutes of video. Tonight I ended up adding a swap partition- dunno how well that's going to work.

Also, I'm convinced that we need to have a kernel with proper pmem(_stream) support to get full hardware video decoding in opencore player. That's going to be my next major project.
 
#35 · (Edited by Moderator)
I have tested this ROM for some time yesterday and I like this. Some of the things, I wish could be improved further to make it a "go to ROM" IMHO would be...
  1. Adding Sleep function. Currently it does not sleep. In 5.5Hrs battery darin was 40% in sleep mode. System was running.
  2. Adding Gapps / Google Play
  3. Slatedrod Novel Boot screen
    (not a must though)

Quadrant score was 338 and for all the ROMs I have tested, this is highest on WPDN.
I know all are after ICS rom now and may start working on JB now. I feel, our hardware is not capable of handling those versions or Pandigital needs to release Kernel Source to get them working correctly for daily usage.

JLO- Fantastic job from your end. Hope we get to see improved version of this ROM, so that we can use the Novel everyday rather than using it only for testing purpose.
 
#36 ·
Adding a swap partition is just what the doctor ordered- especially with that second rom.

Take out the internal sdcard and put it in a card reader and fire up a linux live knoppix CD and use gparted (I found ALL win partition utilities would not work right). First partition, Fat32, primary, label doesn't matter but you do want to probably assign it a drive letter. Second partition linux swap, primary also. 80mb would probably be enough. I made mine 150 which seems to be way too big (but I'm also using a 16gb card). Put it back in the Novel and reboot.
cd /dev/block
ls
(make sure mmcblk1p2 shows up)

add a line to /system/bin/loadWiFi.sh

swapon /dev/block/mmcblk1p2

reboot
make sure it's working:
cat /proc/meminfo
Code:
<br />
MemTotal:         200444 kB<br />
MemFree:           13116 kB<br />
Buffers:             552 kB<br />
Cached:            68052 kB<br />
SwapCached:         6076 kB<br />
Active:            64484 kB<br />
Inactive:          94364 kB<br />
Active(anon):      39260 kB<br />
Inactive(anon):    51384 kB<br />
Active(file):      25224 kB<br />
Inactive(file):    42980 kB<br />
Unevictable:         272 kB<br />
Mlocked:               0 kB<br />
SwapTotal:        152568 kB<br />
SwapFree:         119456 kB<br />
Dirty:                 4 kB<br />
Writeback:             0 kB<br />
AnonPages:         86736 kB<br />
Mapped:            18904 kB<br />
Slab:               6132 kB<br />
SReclaimable:       1620 kB<br />
SUnreclaim:         4512 kB<br />
PageTables:         7448 kB<br />
NFS_Unstable:          0 kB<br />
Bounce:                0 kB<br />
WritebackTmp:          0 kB<br />
CommitLimit:      252788 kB<br />
Committed_AS:    3316832 kB<br />
VmallocTotal:     311296 kB<br />
VmallocUsed:      125464 kB<br />
VmallocChunk:     135172 kB<br />
Battery and sleep:
You can try editing /system/build.prop
and taking out the comment and setting
ro.ril.disable.power.collapse=0

also edit /etc/Wireless/RT2870STA/RT2870STA.dat
set PSMode=Max_PSP
(didn't seem to hurt my wireless any)

See if that makes a difference.

I did get some better g2d and g3d modules compiled against a 2.6.29 kernel for terminanders slatedroid logo kernel. The inserted just fine and I got further than I did last time but still ran into problems.
W/libs3c2drender( 1946): /dev/pmem_stream2 is not opened
which brings me to the point that I need a kernel with proper pmem support.

A gapps update package wouldn't be that hard to make. Eventually I guess I'll work on it. (TBH I'm not real fond of google and have no desires or intentions of using it). Being a memory hog this firmware is, I would definitely recommend a swap partition before installing gapps anyway.
 
#39 ·
Yes. Wordpad (assuming you adb pulled it). Prolly easier just text editing it with the android utility called Root Explorer though (after you push the rw button).

about wifi: I'm not happy with it either. The novel has gained a reputation for flaky wifi (more or less with all ROMs). When it crashes like that, all you can really do is completely power off the system and restart. I've been meaning to rmmod and insmod the kernel modules and see if that works. My theory is that we have old and outdated ralink drivers/kernel modules. I've downloaded the latest source and eventually I plan on compiling them against a 2.6.29 kernel with a config as close to ours as possible- the kernel really doesn't have to work, we just need the modules. I'm surprised no one has done it for us yet. I haven't had much time to get a decent cross compiling environment set up. I've tried a few, OK fought with a few, and now I'm looking at scratchbox. Also, I'm going to want to play with kernels so I've been looking at this:
http://www.sparkfun.com/products/718
Considering I only need three wires (gnd, tx, rx), I've been thinking over how/where I could add a mini phono stereo jack to the case, so I don't have to keep taking it apart.
 
#40 ·
JLO

What are the chances of adding the partitioning of the internal card for a swap file as part of the rom and the support for it.

I can not seem to get mine going, did partitioning booting with gparted-live iso on both internal and external sd cards, edited the loadWifi.sh but no go. Swap size stays 0 when checking with cat /proc/meminfo.

Thanks
 
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top