调用adb start-server时,Linux系统会冻结

std*_*out 10 linux fedora adb

该命令adb start-server完全冻结了我的系统,需要硬重置才能恢复.

这是Fedora 21(x86_64)的全新安装.当系统冻结时,它立即生效.桌面停止响应,计算机不再接受ping请求,系统消息中没有记录任何内容.

无论我adb是以root身份还是普通用户身份运行,都会发生 当我运行命令时,它说:daemon not running. starting it now on port 5037 并且立即冻结.守护进程从未启动过.

我安装strace并运行:

# strace adb start-server
Run Code Online (Sandbox Code Playgroud)

最后的几行产出是:

socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3
connect(3, {sa_family=AF_INET, sin_port=htons(5037), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 ECONNREFUSED (Connection refused)
close(3)                                = 0
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf75ef000
write(1, "* daemon not running. starting i"..., 53* daemon not running. starting it now on port 5037 *
) = 53
pipe([3, 4])                            = 0
readlink("/proc/1880/exe", "/home/jon/Android/Sdk/platform-t"..., 4095) = 40
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xf727c768) = 1881
close(4)                                = 0
read(3, 
Run Code Online (Sandbox Code Playgroud)

无论我是否插入USB设备,都会发生此冻结.除了这个问题,计算机似乎工作正常.

计算机上是否有一些adb正在初始化的硬件,这可能导致这种冻结?我很感激有关如何排除故障的指示.

小智 4

这并不是真正的解决方案,因为冻结确实很难调试,而是一种解决方法。我怀疑问题与内核版本有关。

我降级了安装的内核并且adb工作正常,没有任何冻结。进入存储库并手动下载这些包:

 - kernel-3.17.4-301.fc21.x86_64.rpm
 - kernel-debug-devel-3.17.4-301.fc21.x86_64.rpm  
 - kernel-modules-extra-3.17.4-301.fc21.x86_64.rpm
 - kernel-core-3.17.4-301.fc21.x86_64.rpm  
 - kernel-modules-3.17.4-301.fc21.x86_64.rpm
Run Code Online (Sandbox Code Playgroud)

使用命令rpm -ivh --force kernel-*重新启动计算机并在grub显示时选择新内核来安装它。