屏幕黑下去後,再按POWER鍵只有背光沒有圖像
按POWER鍵進入idle模式時,logcat輸出:
request_suspend_state: sleep (0->3) at 26963560170 (2010-01-01 12:00:26.982533335 UTC)
IT7260_ts_i2c call suspend
I/power ( 72): *** set_screen_state 0
D/SurfaceFlinger( 72): About to give-up screen, flinger = 0x20b430
E/SurfaceFlinger( 72): ioctl(27, VT_RELDISP, 1) failed 22 (Invalid argument)
stop_drawing_early_suspend: timeout waiting for userspace to stop drawing
出錯了。 開始搜索SurfaceFlinger中的VT_RELDISP,然後結合kernel中對此參數的
處理,沒有發現什麼有價值的東西,然後追蹤最後一句:
stop_drawing_early_suspend: timeout waiting for userspace to stop drawing
jeff@microlink-desktop:kernel$ grep "timeout waiting for userspace to stop drawing" . -r
Binary file ./.tmp_vmlinux1 matches
Binary file ./vmlinux matches
Binary file ./.tmp_vmlinux2 matches
Binary file ./vmlinux.o matches
Binary file ./arch/arm/boot/Image matches
Binary file ./kernel/built-in.o matches
Binary file ./kernel/power/built-in.o matches
Binary file ./kernel/power/fbearlysuspend.o matches
jeff@microlink-desktop:kernel$
目標文件中包含字符,可源代碼中沒有搜索到,於是縮短些搜索:
jeff@microlink-desktop:kernel$ grep "to stop drawing" . -r
Binary file ./.tmp_vmlinux1 matches
Binary file ./vmlinux matches
Binary file ./.tmp_vmlinux2 matches
Binary file ./vmlinux.o matches
Binary file ./arch/arm/boot/Image matches
Binary file ./kernel/built-in.o matches
Binary file ./kernel/power/built-in.o matches
./kernel/power/fbearlysuspend.c:/* tell userspace to stop drawing, wait for it to stop */
./kernel/power/fbearlysuspend.c: "userspace to stop drawing\n");
Binary file ./kernel/power/fbearlysuspend.o matches
jeff@microlink-desktop:kernel$
這下終於有帶.c的文件了,查看 kernel/power/Makefile
obj-$(CONFIG_FB_EARLYSUSPEND) += fbearlysuspend.o
查看kernel根目錄下的.config
jeff@microlink-desktop:kernel$ cat .config | grep "CONFIG_FB_EARLYSUSPEND"
CONFIG_FB_EARLYSUSPEND=y
然後再查看之前android2.2內核2.6.32.9中的這項
jeff@microlink-desktop:kernel$ cat .config | grep "CONFIG_FB_EARLYSUSPEND"
# CONFIG_FB_EARLYSUSPEND is not set
於是
Power management options --->
User-space screen access (Sysfs interface) --->
( ) None
(X) Console switch on early-suspend
( ) Sysfs interface
編譯燒寫,OK!
BTW:
Device Drivers ->Graphics support --->Console display driver support --->
此選項需要先選中
Device Drivers ->Character devices --->[*] Virtual terminal
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.