[AT&T LG Optimus G] jaimesilva:
Hello there!

First I'll like to say a big THANK YOU for having this great hacking place where developers can share their experiences and code. And thanks to all those developers helping us to use our hardware as we wish. Lets hope some day we can use our mobile devices as we do with our PCs, installing the OS and software we want.

OK, now to the issue.

I got my LGOG E970 (AT&T) from EBay, bought it to 2ndcell, it arrived home (in Bogota - Colombia, usign a POBOX service in Miami) the past twelve of March. That same day I bought the SIM Unlock code from FreeMyBlackBerry.com as suggested on this forums, used a knife on my SIM card and got it working with my local operator: UFFmovil.com

For a couple of days I used it with the stock unrooted, locked ROM. It worked fine. Then, as a good GNU/Linux & FOSS enthusiast, I got the urge to root it and unlock the bootloader (I can't help it). So I was very sad to see that the rooting method and all methods here are for Windows users (shame on you! OMG! What am I doing!? Why am I putting on my device stuff made by windozes!?) .

I followed carret's instructions, downloaded the root exploit, read the .bat script and ran the commands on my nice bash terminal using the Android SDK's adb (I'll try to write a script for GNU/Linux users and share it latter on that thread). Did the same to install FreeGee.

Everything seemed to be working fine until I went out with my wife and son and tried to take pictures to them, the phone got frozen and I had to press the power button until it turned off and then turn it on again, tried again to take pictures and it froze again, tried and tried again and again with the same result.

I was using the 0.5 version of FreeGee, installed by command line, so went to the play store, downloaded the FreeGee app and installed that version. No change, it still froze.

I tried to return it to factory default but then I realized that I need Winsucks in order to run LGNPST (I don't understand why all the tools for a Linux based device are meant to be used in Windows! eat your own dog food people!). I have the backups made with dd of the partitions FreeGee changed so I tough about putting them back in with dd, in the same way the freegee script changes them, but I had the burning urge to get rid of AT&T's crapware so I went the other way and installed a ROM hoping it will solve the problems.

I choose SnowJB because, according to the IRC #lg-optimus-g channel and the forums, is the most stable. Then, in that forum I saw the post about MysteryEmotionz kernel, went to the thread and I read that it improves performance so I installed that kernel too.

Sadly my camera is still froze the phone, the only difference is that now I got a kernel crash message with the option to dl a RAM dump (how?).

Then I configured the camera to use internal storage instead of the external SD and voilà! it started working fine. So I realized the problem is when trying to store something on the external SD, to confirm I configured the podcast client to download to the external SD and then it also froze the phone.

I have used 'adb logcat' to capture the log since the start of the phone until it gets frozen. I'm attaching it to this post. The logcat was made by starting the phone and then trying to capture a video into the external SD.

I have tried to understand what is going on by reading that log. Here is what happens just before the kernel crash:

[ 03-30 21:43:09.297 224: 437 E/overlay ]
dscale_factor : 0 downscaling activated on display with src_w = 720, src_h = 1280, dst_w = 720, dst_h = 1280

[ 03-30 21:43:09.327 227: 2697 V/QCameraHWI ]
newFrame =0x41e82bcc, frm_type = 1

[ 03-30 21:43:09.327 227: 2849 V/MPEG4Writer ]
writeAllChunks

[ 03-30 21:43:09.337 227: 2849 V/MPEG4Writer ]
findChunkToWrite

[ 03-30 21:43:09.337 227: 2849 V/MPEG4Writer ]
writeChunkToFile: 6057775 from video track

[ 03-30 21:43:09.337 224: 437 E/overlay ]
dscale_factor : 0 downscaling activated on display with src_w = 720, src_h = 1280, dst_w = 720, dst_h = 1280

[ 03-30 21:43:09.337 217: 307 I/DirectVolume ]
[LGE][VOLD][DirectVolume.cpp][handlePartitionRemoved()] devpath :/devices/platform/msm_sdcc.3/mmc_host/mmc1/mmc1:b368/block/mmcblk1/mmcblk1p1

[ 03-30 21:43:09.337 217: 307 D/DirectVolume ]
Volume sdcard2 /storage/external_SD partition 179:33 removed

[ 03-30 21:43:09.337 217: 307 E/Vold ]
[LGE][VOLD][Volume.cpp]unmountVol() START!, force:1, revert:0

[ 03-30 21:43:09.337 217: 307 D/Vold ]
Volume sdcard2 state changing 4 (Mounted) -> 5 (Unmounting)

[ 03-30 21:43:09.337 555: 757 D/VoldConnector ]
RCV <- {632 Volume sdcard2 /storage/external_SD bad removal (179:33)}

[ 03-30 21:43:09.337 555: 757 D/VoldConnector ]
RCV <- {605 Volume sdcard2 /storage/external_SD state changed from 4 (Mounted) to 5 (Unmounting)}

[ 03-30 21:43:09.347 227: 2849 V/MPEG4Writer ]
findChunkToWrite

I noticed that tinkturtle had a similar problem on a Spring LGOG until he/she upgraded to ZV8 before unlocking. Maybe there's the solution (?).

I am an experienced GNU/Linux user, I've been using it for work and at home, hacking it, installing hardware, etc. since the late 90s, I also got some experience with Linux on embedded devices for instrumentation (measurement and control) but all that is in on GNU OS and I'm lost here.

Where is the common configuration stuff like fstab and the kernel ?

Where can I find info about the differences between GNU/Linux and Android/Linux ? In this case I need info about the boot method and how the persistent storage is handled.

I (finally) bought this device not only to use it but also with the intention to learn about its platform. I'll be very happy to help other developers to test and solve this kind of bugs and finally (since I'm also a developer) contribute code.

Here is the mount info in case it can help:

[jaime@inspironjaime LG-Optimus_G-E970-Backups]$ adb shell mount
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,relatime,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 rw,nosuid,nodev,noatime,noauto_da_alloc,resuid=1000,errors=continue,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/persist /persist ext4 rw,nosuid,nodev,relatime,nodelalloc,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 rw,nosuid,nodev,noatime,journal_checksum,journal_async_commit,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/drm /persist-lg ext4 rw,nosuid,nodev,relatime,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/mpt /mpt ext4 rw,nosuid,nodev,relatime,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/factory /factory ext4 rw,nosuid,nodev,relatime,nodelalloc,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/sns /sns ext4 rw,nosuid,nodev,relatime,data=ordered 0 0
/dev/block/mmcblk0p1 /firmware vfat ro,relatime,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=lower,errors=remount-ro 0 0
/dev/fuse /storage/sdcard0 fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/block/dm-0 /mnt/asec/com.quoord.tapatalkxdapre.activity-1 ext4 ro,dirsync,nosuid,nodev,noatime 0 0
/dev/block/vold/179:33 /storage/external_SD vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
[jaime@inspironjaime LG-Optimus_G-E970-Backups]$

Thanks in advance for any help you can give on this issue.

Here is the info I got so far (I don't know if I'm cutting important info with the grep filters):

[jaime@inspironjaime LG-Optimus_G-E970-Backups]$ grep -i volume logcat-lgog-e970-snowjb-mysteryemotionz-kernel-crash-writing-externalsd.txt | grep -v -i audio | grep -v -i mixer | grep -vi stream
Volume sdcard2 state changing -1 (Initializing) -> 0 (No-Media)
Volume sda state changing -1 (Initializing) -> 0 (No-Media)
Volume sdb state changing -1 (Initializing) -> 0 (No-Media)
Volume sdc state changing -1 (Initializing) -> 0 (No-Media)
Volume sdd state changing -1 (Initializing) -> 0 (No-Media)
Volume sde state changing -1 (Initializing) -> 0 (No-Media)
Volume sdf state changing -1 (Initializing) -> 0 (No-Media)
[ 01-10 22:12:42.516 217: 307 I/DirectVolume ]
[LGE][VOLD][DirectVolume.cpp][handleDiskAdded()] devpath :/devices/platform/msm_sdcc.3/mmc_host/mmc1/mmc1:b368/block/mmcblk1
[ 01-10 22:12:42.516 217: 307 I/DirectVolume ]
[LGE][VOLD][DirectVolume.cpp][handleDiskAdded()] mDiskNumParts :1
Volume sdcard2 state changing 0 (No-Media) -> 2 (Pending)
[ 01-10 22:12:42.516 217: 307 I/DirectVolume ]
[LGE][VOLD][DirectVolume.cpp][handlePartitionAdded()] devpath :/devices/platform/msm_sdcc.3/mmc_host/mmc1/mmc1:b368/block/mmcblk1/mmcblk1p1
Volume sdcard2 state changing 2 (Pending) -> 1 (Idle-Unmounted)
setVoiceVolume(0.571429)
setVoiceVolume newMode 0
loadEffects() loading effect volume
Initialize mVolumeValue[0] to 0
Initialize mVolumeValue[1] to 5625
Initialize mVolumeValue[2] to 6250
Initialize mVolumeValue[3] to 6875
Initialize mVolumeValue[4] to 7500
Initialize mVolumeValue[5] to 8125
Initialize mVolumeValue[6] to 9531
Initialize mVolumeValue[7] to 10000
SND -> {1 volume list}
volume list
RCV <- {200 1 Volumes listed.}
RMV <- {200 1 Volumes listed.}
volume state changed for /storage/external_SD (null -> unmounted)
volume state changed for /storage/USBstorage (null -> removed)
volume state changed for /storage/USBstorage2 (null -> removed)
volume state changed for /storage/USBstorage3 (null -> removed)
volume state changed for /storage/USBstorage4 (null -> removed)
volume state changed for /storage/USBstorage5 (null -> removed)
volume state changed for /storage/USBstorage6 (null -> removed)
setVoiceVolume(1.000000)
setVoiceVolume newMode 0
setVoiceVolume(0.833333)
setVoiceVolume newMode 0
setVoiceVolume(0.000000)
setVoiceVolume newMode 0
initial : setFmVolume(0.801217)
setFmVolume(0.801217)
Setting FM volume to 6564 (available range is 0 to 0x2000)
initial : setFmVolume(0.003087)
setFmVolume(0.003087)
Setting FM volume to 26 (available range is 0 to 0x2000)
getVibrateVolume
vibratePattern with volume index: [I@42196f98
getVibrateVolume
vibratePattern with volume index: [I@42196eb0
Initialize mVolumeValue[0] to 0
Initialize mVolumeValue[1] to 5625
Initialize mVolumeValue[2] to 6250
Initialize mVolumeValue[3] to 6875
Initialize mVolumeValue[4] to 7500
Initialize mVolumeValue[5] to 8125
Initialize mVolumeValue[6] to 9531
Initialize mVolumeValue[7] to 10000
Initialize mVolumeValue[0] to 0
Initialize mVolumeValue[1] to 5625
Initialize mVolumeValue[2] to 6250
Initialize mVolumeValue[3] to 6875
Initialize mVolumeValue[4] to 7500
Initialize mVolumeValue[5] to 8125
Initialize mVolumeValue[6] to 9531
Initialize mVolumeValue[7] to 10000
setVolume()..left 0.316228, right 0.316228
Initialize mVolumeValue[0] to 0
Initialize mVolumeValue[1] to 5625
Initialize mVolumeValue[2] to 6250
Initialize mVolumeValue[3] to 6875
Initialize mVolumeValue[4] to 7500
Initialize mVolumeValue[5] to 8125
Initialize mVolumeValue[6] to 9531
Initialize mVolumeValue[7] to 10000
setVolume()..left 0.316228, right 0.316228
[MMF] attachVolume : volume=internal
[MMF] attachVolume in Media Scanner Scan
[MMF] attachVolume >> sCurrentExternal : external volume : internal
Attached volume: internal
[MMF] attachVolume : volume=external
[MMF] attachVolume in Media Scanner Scan
[MMF] attachVolume >> sCurrentExternal : external volume : external
Attached volume: external
volume state changed for /storage/USBstorage (removed -> eject)
volume state changed for /storage/USBstorage6 (removed -> eject)
SND -> {8 volume mount /storage/external_SD}
volume mount /storage/external_SD
[LGE][VOLD][VolumeManager.cpp][mountVolume()] first_state:1
/dev/block/vold/179:33 being considered for volume sdcard2
Volume sdcard2 state changing 1 (Idle-Unmounted) -> 3 (Checking)
RCV <- {605 Volume sdcard2 /storage/external_SD state changed from 1 (Idle-Unmounted) to 3 (Checking)}
volume state changed for /storage/external_SD (unmounted -> checking)
[AUTORUN] checkStorageVolume() : mMountSDCard=false
[AUTORUN] checkStorageVolume() : mStateSDCard=checking
[AUTORUN] checkStorageVolume() : mMountInternalMemory=true
[AUTORUN] checkStorageVolume() : mStateInternalMemory=mounted
[AUTORUN] checkStorageVolume() : mMountSDCard=false
[AUTORUN] checkStorageVolume() : mStateSDCard=checking
[AUTORUN] checkStorageVolume() : mMountInternalMemory=true
[AUTORUN] checkStorageVolume() : mStateInternalMemory=mounted
[2] setVolume(1.000000, 1.000000)
setVolume(1.000000, 1.000000)
setVolume
setVolume()..left 1.000000, right 1.000000
setVolume()..left 1.000000, right 1.000000
Volume sdcard2 state changing 3 (Checking) -> 4 (Mounted)
[LGE][VOLD][Volume.cpp][mountVol()] successfully mounted
[LGE][VOLD][VolumeManager.cpp][mountVolume()] label:/storage/external_SD, mount_retry: 0, retval: 0
mountVolume:: return 0
RCV <- {605 Volume sdcard2 /storage/external_SD state changed from 3 (Checking) to 4 (Mounted)}
RCV <- {200 8 volume operation succeeded}
RMV <- {200 8 volume operation succeeded}
NDC Command {8 volume mount /storage/external_SD} took too long (6201ms)
volume state changed for /storage/USBstorage2 (removed -> eject)
volume state changed for /storage/external_SD (checking -> mounted)
volume state changed for /storage/USBstorage3 (removed -> eject)
volume state changed for /storage/USBstorage4 (removed -> eject)
volume state changed for /storage/USBstorage5 (removed -> eject)
StorageVolume [mAllowMassStorage=false, mDescriptionId=17040647, mEmulated=true, mMaxFileSize=0, mMtpReserveSpace=10, mPath=/storage/sdcard0, mRemovable=false, mStorageId=65537]
StorageVolume [mAllowMassStorage=false, mDescriptionId=17040648, mEmulated=false, mMaxFileSize=0, mMtpReserveSpace=0, mPath=/storage/external_SD, mRemovable=true, mStorageId=131073]
start scanning volume internal: [/system/media, /cust/media]
done scanning volume internal
volumeList[0] :/storage/sdcard0
volumeList[1] :/storage/external_SD
volumeList[0] :/storage/sdcard0
volumeList[1] :/storage/external_SD
volumeList[0] :/storage/sdcard0
volumeList[1] :/storage/external_SD
[AUTORUN] checkStorageVolume() : mMountSDCard=true
[AUTORUN] checkStorageVolume() : mStateSDCard=mounted
[AUTORUN] checkStorageVolume() : mMountInternalMemory=true
[AUTORUN] checkStorageVolume() : mStateInternalMemory=mounted
start scanning volume external: [/storage/sdcard0]
[MMF] attachVolume : volume=external_sd
[MMF] attachVolume in Media Scanner Scan
[MMF] attachVolume >> sCurrentExternal : external_sd volume : external
[MMF] /storage/external_SD volume ID: 1616316341
Detached volume: external
Attached volume: external
done scanning volume external
start scanning volume external_sd: [/storage/sdcard0, /storage/external_SD]
[MMF] attachVolume : volume=external_sd
[MMF] attachVolume in Media Scanner Scan
done scanning volume external_sd
[MMF] attachVolume : volume=null
[MMF] attachVolume in Single File Scan
play sampleID=1, leftVolume=1.000000, rightVolume=1.000000, priority=0, loop=0, rate=1.000000
SoundChannel::play 0x5d46a5f0: sampleID=1, channelID=1, leftVolume=1.000000, rightVolume=1.000000, priority=0, loop=0, rate=1.000000
setVolume 0x5d475790
setVolume()..left 1.000000, right 1.000000
setVolume_l()..leftVolume 0.000000, rightVolume 0.000000
setVolume()..left 0.000000, right 0.000000
play sampleID=1, leftVolume=1.000000, rightVolume=1.000000, priority=0, loop=0, rate=1.000000
SoundChannel::play 0x5cf18ab0: sampleID=1, channelID=1, leftVolume=1.000000, rightVolume=1.000000, priority=0, loop=0, rate=1.000000
setVolume 0x5ceac4a8
setVolume()..left 1.000000, right 1.000000
setVolume_l()..leftVolume 0.000000, rightVolume 0.000000
setVolume()..left 0.000000, right 0.000000
[ 03-30 21:43:09.337 217: 307 I/DirectVolume ]
[LGE][VOLD][DirectVolume.cpp][handlePartitionRemoved()] devpath :/devices/platform/msm_sdcc.3/mmc_host/mmc1/mmc1:b368/block/mmcblk1/mmcblk1p1
[ 03-30 21:43:09.337 217: 307 D/DirectVolume ]
Volume sdcard2 /storage/external_SD partition 179:33 removed
[LGE][VOLD][Volume.cpp]unmountVol() START!, force:1, revert:0
Volume sdcard2 state changing 4 (Mounted) -> 5 (Unmounting)
RCV <- {632 Volume sdcard2 /storage/external_SD bad removal (179:33)}
RCV <- {605 Volume sdcard2 /storage/external_SD state changed from 4 (Mounted) to 5 (Unmounting)}
[jaime@inspironjaime LG-Optimus_G-E970-Backups]$