[Xperia Arc Q&A, Help & Troubleshooting] sabeer.abdulla:
Same Problem | Some extra Info | Help needed

Well, I've got the same problem on my ArcS too. Been trying to figure it out for a few days now but no luck so far. Everything stock here, got it with GB, used the PCC to upgrade to .587 and boom, no auto rotate. Currently using Rotation Locker (off market apk) to lock the screen in landscape mode to watch movies etc but it is a pain in the bottom not having it auto.

Tools I used.

1. Advanced Tools aka AT by SCDevs (Found on GPlay)

2. ES File Explorer

3. Eroot 1014 (For testing purposes but has no effect either positive or negative on the rotate problem.)

Some of my findings and let me know if any of you facing the problem have the same things wrong on your phone(s) too.

1. On AT, it lists the devices that are there but the compass is not shown while the accelerometer is. The accelerometer is showing unusual readings, i.e. the normal reading for the z-axis listed by AT is supposed to be 9.8 m/s^2 (i.e. just gravitational acceleration) when laid on a flat surface (& x,y are both supposed to be 0) but mine shows z @ 20 m/s^2 which is the max reading that the device supports.

2. The compass device (AKM8975 IC) /sys/devices/i2c-0/0-000c does not have a symlink to the /sys/bus/12c/drivers/akm8975 folder. [The accelerometer is 0-0038 & bma150 respectively]. All the folders in /i2c-0 parent folder has a symlink "driver" to the respective in bus/i2c/drivers folder. I assume this means that there is no link to the drivers while booting up and this is causing the devices to get cranky. All the other device folders have the symlink to their respective drivers folder and all the other devices are working afaik.

[See Update at the bottom]

3.

Yeah, I tried that too but no go.

Like someone else mentioned on that thread, SGS2 has a completely different hardware. You can figure this out yourself (If you have root). Extract the files from the AutoRotateHotfix.zip provided in that thread. Copy the file /system/bin/sensorservice and system/lib/hw/sensors.default.so to the corresponding folders on your phone. The phone will restart automatically ( after copying only one file if you have already started AT but definitely after both). Start AT and then check the list of Sensors on the device and you'll get a completely different list compared to when the stock files were there. Incidentally with the stock files the compass was not being detected at all.

My next steps.

1. Try editing the hw_config.sh file to somehow load the driver after boot or the pre_hw_config.sh or init.rc files for pre-boot/boot process.

2. Try figure out a way to add the symlink in the /sys folders but that seems to be a no go as well since that is an in-memory file system and is automatically mounted by the kernel during boot. Which probably means any changes have to be done on the source level, too much work for auto rotate since I have the rotation locker in hand.

3. Try a different kernel and ROM combo but I'm new to this so I'll need to read up a lot on that. Flashtool for Xperia seems to have capabilities to pack the .ftf files from different ROMs together so that might be a way to go. Maybe a GB kernel and ICS ROM mashup, i don't even know if that will work at all.

Help required from

your

side.

Check is the stuff I've noted as faulty in my phone is also the same in your phone. While this by no means guarantees that that is in fact the source of the trouble, atleast it is a start.

Hopefully this can be resolved and we can all learn a few things on the way :D

Updates/Edit

Checked a ST15i Xperia Mini which has no problems with auto rotate and looks like I was right, so to speak. The Mini has the symlinks in the correct places and according to AT it has the same/similar hardware. The compass chip is AKM8975 as in the Arc S but the accelerometer is BMA250 instead of BMA150 in the Arc S. So if any of you can confirm that those symlinks are missing in your phone(s) then the source of the problem can be confirmed and maybe Sony can be updated about it for a fix, which should be simple enough considering it requires only adding a couple of symlinks. How they managed to miss out on adding them in the first place is a mystery to me as the Mini is all stock and came with the ICS .431 firmware out of the box, so no updates from GB to ICS.