-
-
[求助]nexus5重新编译手机内核,手机WiFi无法正常使用
-
发表于:
2019-9-14 17:20
3634
-
[求助]nexus5重新编译手机内核,手机WiFi无法正常使用
打开WiFi,一直是:正在搜索WLAN网络...
没刷自己编译的内核前,可以正常使用WiFi。刷回官方boot.img,也可以正常使用WiFi。
手机是nexus5,代号hammerhead,系统:安卓 6.0.0_r1。
系统是自己用源码编译的,正常使用无任何问题。
然后下载内核源码,只改动了一个错误,防止编译出错。
内核源码链接:https://aosp.tuna.tsinghua.edu.cn/kernel/msm.git
我下载的分支:origin/android-msm-hammerhead-3.4-marshmallow-mr3
手机原本内核信息:
1 | Linux version 3.4.0-g2aa165e (android-build@wped19.hot.corp.google.com) (gcc version 4.8 (GCC) )
|
初步怀疑是我下载的内核有问题,可能它本身WiFi就有问题。
各位大佬们,我该怎么确定哪个版本的内核适合我的手机,可以正常使用呢?求指点
内核修改内容:
报错(编译结束却没有生成文件,就是报错!!!):
1 2 3 4 5 | Can 't use ' defined(@array)' (Maybe you should just omit the defined()?) at kernel /timeconst .pl line 373.
/home/xmhwws/Android/AndroidKernal/msm/kernel/Makefile :129: recipe for target 'kernel/timeconst.h' failed
make [1]: *** [kernel /timeconst .h] Error 255
Makefile:950: recipe for target 'kernel' failed
make : *** [kernel] Error 2
|
其实,提示的错误信息已经明确告诉你了,你应该省略defined().
这里,我们打开 kernel/timeconst.pl
@val = @{$canned_values{$hz}};
if (!defined(@val)) {
@val = compute_values($hz);
}
output($hz, @val);
将if (!defined(@val)) 改为if (!(@val)),即将第373行的defined删除,再次编译就可以通过了。
查了一下更新,发现其中有一项是perl版本升级到了 v5.22.1,然后查了perl官方文档,发现官网因为一个bug,该版本将defined(@array)去掉了。可以直接使用数组判断非空。
[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!
最后于 2019-9-14 17:29
被xmhwws编辑
,原因: