[Samsung Captivate Glide] jgilik:
My apologies for bumping a relatively ancient thread. Seems like the best place for this, though...

TL;DR: I am seeing the same issue, and am looking into diagnosing it more precisely. I do not have a solution. Yet. This post contains a lot of observations, little else.

I just picked up an AT&T Captivate Glide. I am using it on the T-Mobile network via T-Mobile's own prepaid MVNO. I'm in the US. I'm also seeing Unknown Baseband popping up when using non-stock (4.0.4 AT&T ICS) ROMs. I haven't used the 4.0.4 AT&T ICS image long enough to verify whether or not I see sporadic connection drops there. I can get my baseband and IMEI back simply by reverting to that stock image, though.

Stuff I've tried: (none of this works)

ROMs:

cm-10.1-some date (thegreatergood's build)

cm-10.2-20140225-UNOFFICIAL-i927.zip (bubor's build)

cm-11-20140402-UNOFFICIAL-i927.zip (bubor's build) (used for testing different radios and kernels)

omni-4.4.2-20140310-i927-HOMEMADE.zip (bubor's build)

LiteROM-0.9.zip (I forget whose build)

Kernels:

gk_1.2-i927.zip (bubor's build)

LiteKernel-4.2-20130221.zip (thegreatergood's build)

Radios:

UCLJ3.bin (installed via Bubor's zip installer from his CM 10.2 thread)

RUXKJ5.bin (installed via dd)

UCKI3.bin (installed via dd)

UCKL1.bin (installed via dd)

UCLH2.bin (installed via dd)

UCLJ3.bin (installed via dd)

I've been using bubor's TWRP2 build (2.6.3.1), which I installed using Odin. No CWMR here.

I've also tried backing up EFS from a working image and restoring it in a broken one. This doesn't work, similar to other users.

What I See:

I'm also seeing two of the errors people have been mentioning before. In the output of adb logcat -b radio, I see:

D/boot ( 124): <4>cbd: s_read: select TIMEOUT

In another thread (I've lost the link), dman mentioned that this line was the one that curses your boot sequence to a networkless death.

In the output of dmesg, I see something that seems to correspond (Grakernel):

<6>[ 4.905811] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
<6>[ 4.906055] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
<6>[ 4.906468] usb usb1: Product: Tegra EHCI Host Controller
<6>[ 4.906695] usb usb1: Manufacturer: Linux 3.1.10-g29a2a51 ehci_hcd
<6>[ 4.907103] usb usb1: SerialNumber: tegra-ehci.1
<6>[ 4.909057] hub 1-0:1.0: USB hub found
<6>[ 4.909538] hub 1-0:1.0: 1 port detected
<3>[ 5.034903] tegra_usb_phy_bus_connect: timeout waiting for hsic connect detect

Attempting to boot latest LiteKernel fails miserably (it infinitely loops, seeming to constantly reset state whenever the Tegra USB host controller disconnects -- which it consistently does).

It seems there's a 25 second timeout on this operation in the kernel:

#define CONNECT_DETECT_TIMEOUT 25000

...

/* connect detect on T30 requires extra wait */
if (utmi_wait_register_timeout(base + UHSIC_STAT_CFG0,
UHSIC_CONNECT_DETECT, UHSIC_CONNECT_DETECT,
CONNECT_DETECT_TIMEOUT) < 0) {
pr_err("%s: timeout waiting for hsic connect detect\n", __func__);
return -ETIMEDOUT;
}

Above source found at github.com/buborh/kernel_samsung_i927/blob/stock/arch/arm/mach-tegra/usb_phy.c (first post, cannot link)

Observations:

So, I flashed back to stock. Reflashed TWRP2. Booted into recovery, did factory (basic) wipe. Rebooted into system while installing SuperSu via TWRP2. Waited for system to come back up, went into options, enabled ADB, completed SuperSu install, and waited for system to return. I then exported the dmesg output with adb shell again, to get a 'clean' dmesg output from the stock AT&T 4.0.4 ICS image.

Interestingly, I still saw the timeout in the dmesg output:

<6>[ 4.725260] uhsic_phy_power_on : check clock valid, hsic portsc1 : 0x0c000800
<6>[ 4.725338] tegra-ehci tegra-ehci.1: Tegra EHCI Host Controller
<6>[ 4.725585] tegra-ehci tegra-ehci.1: new USB bus registered, assigned bus number 1
<6>[ 4.761089] tegra-ehci tegra-ehci.1: irq 53, io mem 0xc5004000
<6>[ 4.781072] tegra-ehci tegra-ehci.1: USB 2.0 started, EHCI 1.00
<6>[ 4.781328] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
<6>[ 4.781400] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
<6>[ 4.781524] usb usb1: Product: Tegra EHCI Host Controller
<6>[ 4.781591] usb usb1: Manufacturer: Linux 3.1.10-I927UCLJ3-CL970642 ehci_hcd
<6>[ 4.781720] usb usb1: SerialNumber: tegra-ehci.1
<6>[ 4.782909] hub 1-0:1.0: USB hub found
<6>[ 4.783069] hub 1-0:1.0: 1 port detected
<3>[ 4.833212] tegra_usb_phy_bus_connect: timeout waiting for hsic connect detect

Another curiosity -- a user in another thread or this thread mentioned seeing an oops in dmesg. That oops also occurs with a working ICS image:

<4>[ 4.921352] ------------[ cut here ]------------
<4>[ 4.921447] WARNING: at /node1/workspace/HUDSON_USA_ICECREAM_BOSE_DEV-USER/android/kernel/kernel/irq/manage.c:1158 __free_irq+0x9c/0x1c0()
<4>[ 4.921580] Trying to free already-free IRQ 362
<4>[ 4.921706] Modules linked in:
<4>[ 4.921863] [<c0014688>] (unwind_backtrace+0x0/0xfc) from [<c004f500>] (warn_slowpath_common+0x4c/0x64)
<4>[ 4.921994] [<c004f500>] (warn_slowpath_common+0x4c/0x64) from [<c004f5ac>] (warn_slowpath_fmt+0x30/0x40)
<4>[ 4.922124] [<c004f5ac>] (warn_slowpath_fmt+0x30/0x40) from [<c008fed8>] (__free_irq+0x9c/0x1c0)
<4>[ 4.922201] [<c008fed8>] (__free_irq+0x9c/0x1c0) from [<c009003c>] (free_irq+0x40/0x88)
<4>[ 4.922347] [<c009003c>] (free_irq+0x40/0x88) from [<c028877c>] (xmm6260_on+0x114/0x17c)
<4>[ 4.922479] [<c028877c>] (xmm6260_on+0x114/0x17c) from [<c0286194>] (misc_ioctl+0x258/0x334)
<4>[ 4.922618] [<c0286194>] (misc_ioctl+0x258/0x334) from [<c00daae0>] (do_vfs_ioctl+0x80/0x5ac)
<4>[ 4.922696] [<c00daae0>] (do_vfs_ioctl+0x80/0x5ac) from [<c00db044>] (sys_ioctl+0x38/0x60)
<4>[ 4.922833] [<c00db044>] (sys_ioctl+0x38/0x60) from [<c000e5c0>] (ret_fast_syscall+0x0/0x30)
<4>[ 4.922959] ---[ end trace 03428be343de11ca ]---

Next Up:

I think that the kernel is a dead-end at the moment. All kernel-related messages brought up so far have appeared in both the working image and the nonfunctional images, so I'm not going to concern myself with that. Additionally, I've seen bubor making the distinction that his builds use the open-source libril, as if there is a difference between the libril on the stock AT&T image and the open-source libril. This makes me want to target libril and cpboot-daemon (cpd) for investigation.

Why not figure out how to build CM11.0 with bubor's additions, and then delve into RILd to see if I can find out more about the select() that is timing out? CM11 RILd appears to have sources available here: github.com/CyanogenMod/android_hardware_ril

CM build instructions for RHEL/CentOS (which I am most familiar with) are available here:

wtogami.blogspot.com/2012/02/how-to-build-android-on-rhel6-or-fedora.html

marcofalchi.blogspot.com/2013/11/fedora-20-compile-cyanogenmod-110-part-1.html

A Vagrant build environment can be found here: github.com/farproc/CyanogenModBuildEnv

The official Android smoketest appears to be here: source.android.com/compatibility/cts-intro.html (Devices officially supported by CyanogenMod must pass this test, so it's a good ideal to strive for. Bold assertion per this page: wiki.cyanogenmod.org/w/Doc:_Submitting_A_Port )

Open Questions:

bubor has hinted at his process here -- does anyone have more complete instructions?: xdaforums.com/showthread.php?t=2378899&page=2

AT&T appears to be a pattern -- are we aware of any AT&T users whose phones are working with custom ROMs? If not, should we create a separate thread looking for such users to see if they exist? It would be nice to find out whether this affects all AT&T phones across the board.