想用 psplash来显示logo,结果发现, 启动它的service 找不到 /dev/fb0 . 如果延后启动,意义就不是很大了.有没有用过的,给点提示
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
想用 psplash来显示logo,结果发现, 启动它的service 找不到 /dev/fb0 . 如果延后启动,意义就不是很大了.有没有用过的,给点提示
你是改了他的位置?还是怎么个意思?找不到这个,这时候LCD frame buffer还没初始化?
正常启动的话,应该不会出现这个问题才对。
是u-boot启动之后, 应用起来之前。也就是linux内核启动的过程中,我只有pslash的源代码,是自己创建了一个service,用systemd来启动的。
请问一下,正常启动pspfalsh是怎么启动, 有什么package或者脚本吗?
我是放在initramfs 中的。
Starting kernel ...
[ 0.001298] clocksource_probe: no matching clocksources found
[ 2.192255] wkup_m3_ipc 44e11324.wkup_m3_ipc: could not get rproc handle
[ 2.350077] omap_voltage_late_init: Voltage driver support not added
[ 2.357871] PM: Cannot get wkup_m3_ipc handle
[ 2.473706] bone_capemgr bone_capemgr: slot #0: No cape found
[ 2.517700] bone_capemgr bone_capemgr: slot #1: No cape found
[ 2.561696] bone_capemgr bone_capemgr: slot #2: No cape found
[ 2.591513] bone_capemgr bone_capemgr: Invalid signature 'ffffffff' at slot 3
[ 2.598710] bone_capemgr bone_capemgr: slot #3: No cape found
Loading, please wait...
start psplash whatever
Error opening /dev/fb0: No such file or directory
rootfs: clean, 294476/943488 files, 2055577/3817472 blocks
Error opening /dev/fb0: No such file or directory
[ 7.996499] systemd[1]: console-setup.service: Job console-setup.service/start deleted to break ordering cycle starting with basic.target/start
[ 8.010581] systemd[1]: rpcbind.service: Job rpcbind.service/start deleted to break ordering cycle starting with basic.target/start
[ 19.518317] rc.local[1020]: rc.local finished
其实, 如果显示 LOGO 如果只是一张,不做变动的话,可以在 UBOOT 进行显示 LOGO 。当然 LCD 的初始化也要在 UBOOT 显示 LOGO 之前完成初始化。
当 UBOOT 进入内核的时候,LCD 不让他再次初始化就可以,LCD 就会一直保持下去,直到你的系统起来,去刷新数据
谢谢回复。
我也想这样做,可是现在的现象是u-boot启动内核后,内核会再次 初始化LCD。 从什么地方可以禁止内核初始化LCD呢?
发现当内核输出这些内容时,frame buffer就会设置好,有没有办法把这些逻辑提前呢。
[ 34.786027] backlight supply power not found, using dummy regulator
[ 36.901905] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[ 37.347214] backlight supply power not found, using dummy regulator
[ 37.354328] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
[ 37.534397] backlight supply power not found, using dummy regulator
[ 37.687010] [drm] Initialized pvr 1.14.3699939 20110701 on minor 0
[ 37.941663] backlight supply power not found, using dummy regulator
[ 41.361819] backlight supply power not found, using dummy regulator
[ 41.420082] backlight supply power not found, using dummy regulator
[ 41.512512] TI-am335x-tsc TI-am335x-tsc: ti,charge-delay not specified
[ 41.540790] backlight supply power not found, using dummy regulator
[ 41.555534] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 41.562362] [drm] No driver support for vblank timestamp query.
[ 41.796999] input: ti-tsc as /devices/platform/ocp/44e0d000.tscadc/TI-am335x-tsc/input/input1
[ 42.252947] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
[ 42.267852] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
[ 42.362947] Console: switching to colour frame buffer device 100x30
[ 43.766595] tilcdc 4830e000.lcdc: fb0: frame buffer device
[ 44.305378] [drm] Initialized tilcdc 1.0.0 20121205 on minor 1
嗯,为之前也是遇到进入内核的时候,LCD 的 reset 管教被复位了,只需要进行设置,board-am335xevm.c 使得对应管教不被复位就可以了,你可以参考为以前发的帖子 : http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/p/123320/345144.aspx#345144
有参考过这篇文档么:
http://processors.wiki.ti.com/index.php/Customizing_the_SDK_Splash_Screen
我这边是Beagle Bone Black , TI的内核, 代码不是太一样,但是原理应该是相同的,我试一下,再来报告结果.
另外, 这里的GPIO是控制时钟的吗?所谓的不reset,是指对时钟不reset吗?我看了一下,我的lcd芯片,没有reset管脚.
P8.28 , GPIO2_24, 是下面这段代码吗?
struct omap_hwmod am33xx_gpio1_hwmod = {
.name = "gpio2",
.class = &am33xx_gpio_hwmod_class,
.clkdm_name = "l4ls_clkdm",
.flags = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
.main_clk = "l4ls_gclk",
.prcm = {
.omap4 = {
.modulemode = MODULEMODE_SWCTRL,
},
},
.opt_clks = gpio1_opt_clks,
.opt_clks_cnt = ARRAY_SIZE(gpio1_opt_clks),
.dev_attr = &gpio_dev_attr,
};
不是对 时钟进行 reset。而是 LCD 控制器引出的 IO 口,有一个管脚是 reset 管脚。所以,在进入内核的时候,会对 IO 口进行初始化。所以,应该对 LCD 所对应的复位管脚进行设置呢,使得进入内核的时候,不再进行复位。其实,就是讲上面的 flags 添加 HWMOD_INIT_NO_RESET ,实现