[T-Mobile, Samsung Galaxy SIII] metalfingers_:
I finally got the chance to purchase a Galaxy S III yesterday and so far it's proving to be a gorgeous device. Not being a huge fan of TouchWiz, I decided to go the CM route, and decided to be brave and use the 10.1 nightlies. Everything works except the camera, which upon being started, displays "Camera error: Cannot connect to camera" and the app exits.

This is not just a bug with CM Nightly. (Otherwise I wouldn't be asking for support.) This symptom has been observed with the following ROMs:

CyanogenMod 10.1 nightly (2013-01-16) - flashed via CWM and TWRP

CyanogenMod 10.0 stable - flashed via TWRP

LiquidSmooth JB v2.1 beta 2 (based on 4.2.1) - flashed via CWM

It appears that only one other person has had this issue with d2tmo. My device is brand new, as in purchased 18 hours ago new. Date on the box is December 31, 2012. It's a 16GB Titanium Grey T-Mobile model, if that is of any relevance.

I have not yet encountered any AOSP based ROM in which the camera works. I have already attempted the following troubleshooting steps, with no luck:

Wipe dalvik cache/cache partition

Fix permissions (via the option in both TWRP and CWM)

Manually shelling in and chmodding /dev/video* to 0666. They were owned previously by root/camera with mode 0660.

I did an adb logcat and found the Java traceback where the camera open fails:

I/ActivityManager( 643): Displayed com.android.gallery3d/com.android.camera.CameraLauncher: +390ms
D/dalvikvm( 4160): GC_CONCURRENT freed 1410K, 6% free 18148K/19252K, paused 3ms+4ms, total 32ms
D/dalvikvm( 4160): WAIT_FOR_CONCURRENT_GC blocked 17ms
D/qdoverlay( 237): Unset pipe=RGB1 dpy=0;
E/Sensors ( 643): accelHandler 3.133883 2.830913 8.935818
D/qdoverlay( 237): Set pipe=RGB1 dpy=0;
E/mm-camera( 240): mm_camera_open: ctrl_fd = -1
E/mm-camera( 240): Errno:5
E/MP-Decision( 1326): DOWN Ld:34 Ns:1.100000 Ts:190 rq:0.100000 seq:196.000000
E/mm-camera( 240): mm_camera_open: ctrl_fd = -1
E/mm-camera( 240): Errno:5
E/mm-camera( 240): mm_camera_open: opened, break out while loop
E/mm-camera( 240): mm_camera_open: after while loop
E/QCameraHWI( 240): startCamera: cam_ops_open failed: id = 0
W/QualcommCamera2( 240): int android::camera_device_open(const hw_module_t*, char const*, hw_device_t**): end
E/CameraClient( 240): Could not open camera 0: -1
E/CameraClient( 240): initialize: Camera 0: unable to initialize device: Operation not permitted (-1)
I/CameraClient( 240): Destroying camera 0
E/CameraHolder( 4160): fail to connect Camera
E/CameraHolder( 4160): java.lang.RuntimeException: Fail to connect to camera service
E/CameraHolder( 4160):	at android.hardware.Camera.native_setup(Native Method)
E/CameraHolder( 4160):	at android.hardware.Camera.<init>(Camera.java:340)
E/CameraHolder( 4160):	at android.hardware.Camera.open(Camera.java:302)
E/CameraHolder( 4160):	at com.android.camera.CameraManager.cameraOpen(CameraManager.java:283)
E/CameraHolder( 4160):	at com.android.camera.CameraHolder.open(CameraHolder.java:210)
E/CameraHolder( 4160):	at com.android.camera.Util.openCamera(Util.java:358)
E/CameraHolder( 4160):	at com.android.camera.PhotoModule$CameraStartUpThread.run(PhotoModule.java:327)
D/qdoverlay( 237): Unset pipe=RGB1 dpy=0;

So my theory is a permissions issue. I poked around for anything in /dev that was owned by the "camera" group and chmodded it to 0666, just to temporarily see if it'd work... no dice.

I'm certainly no Linux noob, though I don't hack on android much and I don't know all the terrible things they've done to the kernel, but if anyone has more advanced troubleshooting suggestions, throw 'em at me.

Any help would be much appreciated. Thanks!