Hello.
In this topic we talk about the Lenovo ICS versions and the home-brown self-made Ice Cream Sandwich I'm trying to build.
Currently I'm trying to port Ice Cream Sandwich (Android 4.0.4) to A1 IdeaPad by Lenovo.
Currently working:
* Touchscreen Input
* SGX530 Hardware Graphic Acceleration
* Orientation
* 3D Acceleration
* Brightness (using lights.omap3.so from Lenovo)
Not working:
* Audio
* ...
UPDATE 05.08.2012:
SGX530 Integration succeeded into Android AOSP ICS 4.0.4!
One should have to know that you have to use a DIFFERENT SGX DDK for ICS than for Gingerbread but that's not documented... [email protected] for ICS, 1.7.X for GB. Installed the proper components, ES=5.X and then we are rolling. I'm now trying to use some of the ICS libraries from the Lenovo ICS, but those have horrible dependencies. Thou I can most likely take the camera.omap3.so, I still want to be able to build those libraries from source, where available, so I gotta have to collect some stuff together. If this progresses nicely, I might be able to make a CM9 port here aswell, but for now, I need to get the rest of the functionallity working (WiFi driver [dhd_oob.ko] registers, but doesn't appear on the ICS yet, same for bluetooth. Sound is not working yet (E/AudioFlinger( 4034): createTrack_l() Bad parameter: sampleRate 44100 m 44100 format 1 m 1, channelMask 0x0000000 m 0x00000001 for output 0x3 with format 67520, e.a. channelMask is not doing what it should do), ...)
Again, I'm sorry that I don't have much spare time right now, so the progress is rather slow.
Status:
Right now Ice Cream Sandwich is booting, I had to patch SystemUI.apk to force hardware acceleration off. I tried to set debug.egl.hw=0 in the prop-file, but it didn't change anything, so I had to modify the source to hard-set it to accept no hardware acceleration.
I'm trying to get input to work, but it seems that the mg-capacity / Morgan Touch Capacity Display doesn't give proper values to InputReader. Since the libinput.so got massivly changed after switching from GingerBread to Ice Cream Sandwich, it doesn't seem to give proper values to the InputReader anymore. I patched/modified my libinput.so to display raw events and log them to logcat, but I gotta take a look if I have to write myself a wrapper for that.
UPDATE 31.03.2012:
- I was able to fix the missing BTN_TOUCH in the kernel sources. Now we have a working touchscreen.
- Added ro.sf.hwrotation 270, so the input is correct
UPDATE 25.07.2012:
- Sorry for the lack of updates, I currently don't have much spare time to work on this, sadly.
- What I found out is, that I was able to implement SGX530 libraries to Ice Cream Sandwich, but the driver wouldn't really activate my screen. To be honest, when i loaded the SGX drivers, my screen or speakers (not sure which) started to give this really high pitched noise. I'm not sure where it came from, but I'm sure I ****ed something up with the SGX drivers. We can't simply take the Gingerbread SGX Drivers to Ice Cream Sandwich, sadly. And we can't simply use the SGX Module from the version Lenovo provided, since they depend on a certain kernel module.
E.a. If you use a GingerBread Kernel with the Input Fix (like the one I compiled), you can boot Ice Cream Sandwich fine and stuff, but you can not use the SGX530 modules from the Lenovo ICS. (As this one flashes a new kernel version, and modifies the MBR and does other witch-craftery)
My ultimate goal would be, to use the Gingerbread Kernel from Lenovo with the additional screen input fixes for ICS and add the SGX/PowerVR 530 to that, so we would have hardware acceleration (for now). I want to avoid the 3.x kernel from Lenovo as much as possible as it seems to have various terrible problems in the regular use (disconnecting Wifi, standby problems, power supply problems, etc.)
We can't simply make an omap-kernel from the 3.x tree aswell, as we are missing lots of the arch/arm/mach-omap2/board-evt* and the important arch/arm/mach-omap2/board-evt1a.c which initializes our board for the boot process. And even if we could use a 3.x tree and implement powerVR into it, we would have to port ALL the changes Lenovo made to the sources (some MMC adaptions, power supply adaptions, modification to the rfkill, etc.) to the new kernel by which, most likely, lenovo will release either another pad or ICS for A1 (as it would take a HUGE amount of time).
So the goals are:
- Wait for Lenovo to stabilize the kernel of ICS and use their ROM.
OR:
- Use GB-Kernel from Lenovo Source Ball, try to implement PowerVR/SGX530 drivers and user-land applications to the ICS
- Slowly adapting other OMAP devices and libraries (brightness, vibration, sound, ...)
Chat:
#ideapad-a1 @ irc.freenode.net
(it's gmarkall's channel, but I hang out there.)
This is great. I look forward to seeing what you come up with.
My guess is that the Kernel is missing most of the drivers you need. I have been able to sort out this hardware so far:
CPU: TI OMAP3622 ARM® Cortex™-A8 processor
Video: PowerVR SGX530
Wireless: Broadcom BCM4329
Bluetooth: Broadcom BCM4329
Audio: TI TLV320AIC3110 (tlv320aic3111)
GPS: Broadcom BCM4751
I2C Ambient Light Sensor: Capella CM3217 (I2C) input5
Power Management: TI twl4030 (I2C)
Soft keypad?: TI twl4030 (I2C) input1
Capacitive Touch: TI twl4030 (I2C) input2
Power Button: TI twl4030 (I2C) input3
Back Camera: s5k5ca (3mp camera)
Front Camera: omap34xxcam Aptina MT9V115
Accelerometer (G sensor): Analog Devices ADXL345 (I2C) input4
Gyroscope: None
eCompass: None
Hopefully this helps when choosing kernel options.
---------- Post added at 08:58 AM ---------- Previous post was at 08:55 AM ----------
...additionally, the Nook Color is nearly the same hardware from what I can tell and they seem to be getting pretty far on ICS.
If someone can post a dmesg listing from a nook color, I can compare it to an A1 to try to document the hardware differences.
that's cool, I'm looking forward to your good news
It would be awesome to get ICS running on the a1!
nice work!
OK, some news:
It seems I'm pretty much f*cked until we get the sources for the kernel. The GB Kernel doesn't send the proper events for InputReader/EventHub.
I investigated the input within the system using the "getevent" tool (getevent -l).
The device itself seems to be able to report PRESSURE from what I've seen, just plain doesn't want to do it. (using 'dumpsys window')
It currently doesn't send a PRESSURE event which we need for activating the touchscreen. (Instead it gets sent by the redicoulus light sensor...)
One attempt would be to hack away and modify the InputReader to send a ABS_MT_PRESSURE event on every ABS_MT_X modification, or just wait for the sources.
On related note: I also tried to compile CM9 in an attempt to see if it may fix the input issuses or use a different input system, but it's just the same result as using vanilla ICS
spiegeleixxl said:
OK, some news:
It seems I'm pretty much f*cked until we get the sources for the kernel. The GB Kernel doesn't send the proper events for InputReader/EventHub.
I investigated the input within the system using the "getevent" tool (getevent -l).
The device itself seems to be able to report PRESSURE from what I've seen, just plain doesn't want to do it. (using 'dumpsys window')
It currently doesn't send a PRESSURE event which we need for activating the touchscreen. (Instead it gets sent by the redicoulus light sensor...)
One attempt would be to hack away and modify the InputReader to send a ABS_MT_PRESSURE event on every ABS_MT_X modification, or just wait for the sources.
On related note: I also tried to compile CM9 in an attempt to see if it may fix the input issuses or use a different input system, but it's just the same result as using vanilla ICS
Click to expand...
Click to collapse
Access to source would definitely make this a lot easier! Thankfully, the admin over at the Lenovo forum has promised to release the A1 source within the next week (just Google search "Lenovo Ideapad A1 source code", should be first or second link).
Thanks for spearheading this project. Would be great to see ICS on the A1!!
If you don't mind me asking, how exactly did you force hardware acceleration off inside of the SystemUI.apk? I'm currently working on doing something similar to this for the skyrocket, but I keep running into systeumui force closes.
One possible change would be changing the AndroidManifest.xml, i suppose:
frameworks/base/packages/SystemUI/AndroidManifest.xml: android:hardwareAccelerated="true"
Allthou I changed it somewhere in source, I can look it up for you later, try changing that XML option.
Great, can't wait for the A1 source being published - alas I would be glad if I would have any experience with linux/modding to help getting ICS to work on the A1 Kudos to spiegeleixxl for spearheading the development here!
Source Code released
finally Lenovo did it...
Thanks to Mark from Lenovo !
download.lenovo.com/lenovo/content/sm/A1-Kernel-Source.tgz
Unfortunately the source seems incomplete -> http://forum.xda-developers.com/showthread.php?t=1439451&page=23
drsnuggles79 said:
Unfortunately the source seems incomplete -> http://forum.xda-developers.com/showthread.php?t=1439451&page=23
Click to expand...
Click to collapse
Luckily enough the mg-i2c-driver is in there. It looks like it's failing to report some ABS_MT messages that are required for libinput/EventHub/InputReader to work. If gmarkall and me get the kernel compiled and working we can get rolling on porting ICS.
The graphics driver for ICS are also available via TI SGX SDK which is freely available.
So we're going into a good direction!
Great news. Is there anything that us noobs can do to help?!
tonyyeb said:
Great news. Is there anything that us noobs can do to help?!
Click to expand...
Click to collapse
spend money
otti17 said:
spend money
Click to expand...
Click to collapse
If by that you mean buy an A1, I'm already ahead of you!
waiting for your first build ..
how glad to see someone porting ICS to my cute A1 !
I've been searching someone trying to port ics since i bought A1 ...
wanna see a first build of ics to taste on my pad...
so much appreciate your works here .. guys....
Tint Ag Khaing said:
how glad to see someone porting ICS to my cute A1 !
I've been searching someone trying to port ics since i bought A1 ...
wanna see a first build of ics to taste on my pad...
so much appreciate your works here .. guys....
Click to expand...
Click to collapse
It's not like i can't give you a BUILD, you'll even SEE something, but you won't be able to DO something cause it doesn't register the press event.
What is the likelihood of getting to a beta stage with this?
AFAIK there are some touchscreen drivers-related issues.
[email protected]_a1
Hi,
During implementation of Ice Cream Sandwich for the Renesas Emma EV (dual A9 SoC) based tablets, Renesas support met big problems on the 3D driver (based on a SGX 530 GPU). They have spend more than 2 weeks and still can't find a solution...
I'm forwarding this request on this forum hoping some developer has some bright and smart idea...
Because SGX driver source code is strictly confidential, they can't share the soure code, but they have tries to discribe the problem as clearly as possible.
SGX driver include two parts, kernel mode driver (pvrsrvkm.ko, emxxlfb.ko) and user mode driver(*.so). When they installed the SGX driver, Android halted on finish of boot animation (seems starting to load "home launcher").
When the system halted, it does not response to adb connection and even the serial console (ttyS0) also halted. Seems to be kernel halted.
They got the same problem on official 4.0.1 and 4.0.3. They tested the default openGL test program with the driver (sgx_flip_test, sgx_render_flip_test, texture_benchmark), they all passed.
Possible reason:
1. Status Bar using a different method to draw on screen (not by gralloc.emxx.so? They remember that it doesn't use framebuffer flip operation on Eclair),
it use a unsupported operation cause system halt.
2. Something cause memory overlap, maybe halted in GC_CONCURRENT operation.
3. Other reason...
They need suggestions, any thread is welcome!
I personally found this discussion in a Blog about the official Renesas EMEV development board (requires translation from Japanese):
http://blog.kmckk.com/archives/4030770.html
It mentions something similar and also suggests a solution, but I'm not sure...
thanks!
Would it be possible to "take" some files or learn from another devices(witch also use SGX530) ROM, e.g. the Motorola Defy. If so check: CM9 for Defy
So I have the unfortiounet task of fixing a tablet for a co-worker. The co-worker origionally gave the tablet to another co-worker who, unknowingly at the time, flashed firmware for the previous generation device. To make a long story short, it boots ok, Screen sensors sound wireless etc works EXCEPT the touchscreen.
I do not think that the drivers that were with the rom he installed were correct (go figure, newer device ... larger screen etc.)
So my first question How would I go about determining the touchscreen hardware without cracking open the case?
I know in a *nix environment you can use lspci or lsusb to get some basic information about the hardware on the usb or pci busses but I dont think that archetecture exists here, I may be wrong.
Ultimatly If an existing driver cannot be found I am facing writing a driver for the hardware at hand.
Thanks in advance for advice/help.
Anyone?
Identifying touch screen controllers
I'm having trouble finding drivers too. Starting with touch screen manufacturer.
This looks promising.
w w w. touch-base. com
/documentation/ identifying%20touch%20screen%20controllers. htm
(sorry for the screwed up link. the site doesn't allow new posters to post outside links.)
If you find a good source for drivers let me know.
Thanks,
The frustrating part is NEC has a dedicated product page but they have no drivers and only the manual for the non-touch version of the monitor.
NEC AccuSync LCD51-BK-TR (i.e. ASLCD51-BK-TR) 15" LCD touch screen monitor.
Hello,
i bought an EasyCap (version UTV007) frame grabber and
bought the EasyCap Viewer from the android Play Store,
installing it on my android devices:
- Acer Iconia Tab A500 ( nvidia tegra 2 with Android 4.03)
- Created (Alps) N7 (mt6592 with Android 4.4.2)
- Xiaomi M2S (qualcomm snapdragon, Miui JLB54.0 (V5))
In the app description i read that this application should work on most devices,
but i runned it on my devices, and the only device that works with this application is the last, the Xiaomi M2S
In the 'Acer A500' when i start the application, i get a black screen and the appl is not responding.
In the 'Created N7' the application starts normally, but i dont see the video coming from the camera when i connect it.
For the 'Created N7' sent the easycap application log report to the developer (Autodroid), but after a first (not working) answer on how to fix the problem, i have no more feedback from him.
For the 'Acer A500' i cannot send the application log report, so i activated the LOGCAT and sent it to the developer, and also for this i have no feedback yet.
I would like to make the app work with at least one of the two devices (the Acer or the Created N7), because they have a big screen..(10" and 7"),
so i can view my camera better than on Xiaomi M2S (too small 4" screen to see videos)
so i need some suggestion from some expert android developer that could help me to investigate the cause of the problem
(looking the logcat, seems the appl in the Acer stop working a few seconds after start, loading the streaming library... and instead in the Created N7, seems there is some problem getting the video signal...)
Could you help me to find the answers to fix the appl problems on these two devices?
Or, if this appl cannot work, can you suggest me some alternative appl/frame grabber that can work with my devices?
Thank you!
Lodovico
Duplicate.
http://forum.xda-developers.com/general/xda-assist/help-easycap-viewer-t3091071
Stock rtl8192cu driver had limited monitor mode support(it has monitor mode but it filters out all data packets), could not change tx power and frequency so i decided to search for realtek driver that has these features...after some hours i couldn`t find it...drivers that have them are only on kernels >4...so only option left is to port one of those drivers to my old 3.4.113 kernel...and now i`m writing this post having perfectly working realtek wireless driver
I have tested only monitor mode, packet injection, parameters change(tx, freq)...works good so far...idk about other features but i hope they work too...
this driver tested on matissewifi (Samsung Galaxy Tab 4 10.1 WiFi) but may work on lots of other devices too...
Sources: https://github.com/Darkar25/realtek_rtwifi (this may be merged into kimocoder`s repo at any time)
if anyone needs help including this into your kernel feel free to dm me on telegram @darkar25 discord Darkar25#4088 or vk https://vk.com/darkar25 (i dont really read dm`s on XDA)
I just released a new RTL8XXXU with new RTL8188E and RTL8188F HAL and upstreamed. Go check it out