[Galaxy Ace S5830 Android Development] lagloose:
Hey,

while 'gliding' through XDA, i found that nearly all other devices which already have got ICS ROM(s) meanwhile have a working or partial working camera. I think it's time to open a thread where we can share information on how to get the camera working. So here it is...

I already did some investigation and tried to get it working. Some progress achieved but still no working or partial working camera. Here's what i did for information and as a base for others who want to try around. Ok, let's go....

- i used the msm7x727 camera lib from this thread: http://xdaforums.com/showthread.php?t=1624018

Read this thread for basic information on how they got camera working. Seem's to me that this is a 'port' of rpmv78's solution for Nexus One. Due to the fact that HTC Hero and Galaxy ACE have same chipsets there should be a chance that it works. Important for Maclaw's ICS: You'll have to rename it to 'camera.msm7x27.so' before putting it to /system/lib/hw or it won't get loaded.

- First try: i used proprietary libs (libcamera.so, liboemcamera.so etc.) from a (STOCK Galaxy ACE) gingerbread ROM. These are:

libarccamera.so

libcamera.so

liboemcamera.so

libs3cjpeg.so

Result is a missing symbol in libs. Here's part of logcat during boot:

----

D/AudioHardwareInterface( 145): setMode(NORMAL)

I/AudioHardware( 145): Set master volume to 1.

I/CameraService( 145): CameraService started (pid=145)

E/HAL ( 145): load: module=/system/lib/hw/camera.msm7x27.so

E/HAL ( 145): Cannot load library: link_image[1965]: 145 could not load needed library 'libcamera.so' for 'camera.msm7x27.so' (reloc_library[1314]: 145 cannot locate '_ZN7android7Overlay5setFdEi'...

E/HAL ( 145): )

E/CameraService( 145): Could not load camera HAL module

----

Than i tried to find out where '_ZN7android7Overlay5setFdEi...' can be found. It is in libui.so (of GB ROM). I didn't check it out, but i hardly doubt that we can simply replace an ICS libui with an GB libui.

- Second try: i used proprietary camera libs from this Hero ROM: http://xdaforums.com/showthread.php?t=1612140

Although these libs are proprietary Hero libs, camera module and HAL loaded but as soon as i start camera, i'll get:

----

V/QualcommCameraHardware( 145): openCameraHardware: call createInstance

D/QualcommCameraHardware( 145): createInstance: E

V/QualcommCameraHardware( 145): Storing the current target type as 1

V/QualcommCameraHardware( 145): constructor EX

V/QualcommCameraHardware( 145): startCamera E

D/memalloc( 453): /dev/pmem: Unmapping buffer base:0x4acc4000 size:3112960 offset:2498560

D/memalloc( 250): /dev/pmem: Freeing buffer base:0x4a408000 size:614400 offset:1884160 fd:240

D/memalloc( 250): /dev/pmem: Freeing buffer base:0x4a49e000 size:614400 offset:2498560 fd:276

D/memalloc( 250): /dev/pmem: Freeing buffer base:0x4a372000 size:614400 offset:1269760 fd:221

V/QualcommCameraHardware( 145): loading liboemcamera at 0xb000ed08

D/dalvikvm( 1034): GC_CONCURRENT freed 252K, 6% free 6747K/7175K, paused 5ms+9ms

I/mm-camera-config( 145): cam_conf fd cfgctrl.camfd:0

I/mm-camera-config( 145): Open config device node : /dev/msm_camera/config0

D/dalvikvm( 1034): GC_FOR_ALLOC freed 26K, 5% free 7010K/7367K, paused 28ms

I/ ( 145): [AWB Calibration]:ctrlfd:29

I/ ( 145): [AWB Calibration] read fuse ID fail

I/ ( 145): [AWB Calibration] cfg.fuse_id_word1:0xa94c86fd

I/ ( 145): [AWB Calibration] cfg.fuse_id_word2:0xa94c8664

I/ ( 145): [AWB Calibration] cfg.fuse_id_word3:0xa94ea124

I/ ( 145): [AWB Calibration] cfg.fuse_id_word4:0xa951db40

E/mm-camera-config( 145): config_init_ctrl: cam_conf_get_sensor_info failed!

W/ThrottleService( 250): unable to find stats for iface rmnet0

W/ActivityManager( 250): Launch timeout has expired, giving up wake lock!

W/ActivityManager( 250): Activity idle timeout for ActivityRecord{413ff410 com.android.camera/.Camera}

D/dalvikvm( 250): GC_CONCURRENT freed 551K, 10% free 9416K/10439K, paused 12ms+8ms

I/InputDispatcher( 250): Application is not responding: AppWindowToken{41309880 token=Token{41396428 ActivityRecord{413ff410 com.android.camera/.Camera}}}. 5005.8ms since event, 5005.6ms since wait started

I/WindowManager( 250): Input event dispatching timed out sending to application AppWindowToken{41309880 token=Token{41396428 ActivityRecord{413ff410 com.android.camera/.Camera}}}

I/Process ( 250): Sending signal. PID: 1034 SIG: 3

I/dalvikvm( 1034): threadid=3: reacting to signal 3

I/dalvikvm( 1034): Wrote stack traces to '/data/anr/traces.txt'

I/Process ( 250): Sending signal. PID: 250 SIG: 3

I/dalvikvm( 250): threadid=3: reacting to signal 3

I/dalvikvm( 250): Wrote stack traces to '/data/anr/traces.txt'

I/Process ( 250): Sending signal. PID: 442 SIG: 3

I/dalvikvm( 442): threadid=3: reacting to signal 3

I/dalvikvm( 442): Wrote stack traces to '/data/anr/traces.txt'

I/Process ( 250): Sending signal. PID: 365 SIG: 3

I/dalvikvm( 365): threadid=3: reacting to signal 3

I/dalvikvm( 365): Wrote stack traces to '/data/anr/traces.txt'

D/dalvikvm( 250): GC_CONCURRENT freed 546K, 9% free 9597K/10439K, paused 4ms+9ms

D/dalvikvm( 250): GC_EXPLICIT freed 76K, 9% free 9600K/10439K, paused 6ms+8ms

E/ActivityManager( 250): ANR in com.android.camera (com.android.camera/.Camera)

E/ActivityManager( 250): Reason: keyDispatchingTimedOut

E/ActivityManager( 250): Load: 7.27 / 3.0 / 1.11

E/ActivityManager( 250): CPU usage from 12799ms to 2797ms ago:

E/ActivityManager( 250): 3.9% 250/system_server: 2.9% user + 1% kernel / faults: 83 minor

E/ActivityManager( 250): 1.7% 68/bma_wq: 0% user + 1.7% kernel

E/ActivityManager( 250): 0.5% 64/synaptics_wq: 0% user + 0.5% kernel

E/ActivityManager( 250): 0.5% 365/com.android.systemui: 0.4% user + 0.1% kernel / faults: 4 minor

E/ActivityManager( 250): 0.5% 442/com.android.phone: 0.4% user + 0.1% kernel / faults: 1 minor

E/ActivityManager( 250): 0.3% 27/ksmd: 0% user + 0.3% kernel

E/ActivityManager( 250): 0.1% 5/events/0: 0% user + 0.1% kernel

E/ActivityManager( 250): 0.1% 15/kondemand/0: 0% user + 0.1% kernel

E/ActivityManager( 250): 0% 61/file-storage: 0% user + 0% kernel

E/ActivityManager( 250): 0.1% 65/check_ic_wq: 0% user + 0.1% kernel

E/ActivityManager( 250): 0% 101/jbd2/stl13-8: 0% user + 0% kernel

E/ActivityManager( 250): 0% 139/vold: 0% user + 0% kernel / faults: 51 minor

E/ActivityManager( 250): 0% 218/logcat: 0% user + 0% kernel

E/ActivityManager( 250): 4.3% TOTAL: 2.8% user + 1.4% kernel

E/ActivityManager( 250): CPU usage from 587ms to 1122ms later with 99% awake:

E/ActivityManager( 250): 11% 250/system_server: 5.5% user + 5.5% kernel

E/ActivityManager( 250): 9.2% 318/InputDispatcher: 1.8% user + 7.4% kernel

E/ActivityManager( 250): 1.8% 252/GC: 1.8% user + 0% kernel

E/ActivityManager( 250): 1% 15/kondemand/0: 0% user + 1% kernel

E/ActivityManager( 250): 7.5% TOTAL: 7.5% user + 0% kernel

D/dalvikvm( 250): GC_FOR_ALLOC freed 323K, 10% free 9486K/10503K, paused 74ms

----

The problem seem's to be here: 'E/mm-camera-config( 145): config_init_ctrl: cam_conf_get_sensor_info failed!'. Combining 'solution 2' together with liboemcamera.so from a stock ACE GB-Rom resulted in crashing libcamera.so.

Now let's start to try and discuss to finally get it working....