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.

dm365 怎么加入启动画面?



各位前辈好,我想在代码启动的时候加入一个图片作为启动界面,就像我们的台式机bios里面的启动画面一样,请各位不吝赐教~小弟先谢过了~~

  • 您好, 你是想用VPFE还是SD输出来做这个bootlogo?

  • 感谢回复~昨天晚上我已经基本实现了,就是配置一下内核选项,/kernel/device drivers/graphics support/logo configuration 。根据help说明,需要FB或者SGI_NEWPORT_CONSOLE的支持,我不知道SGI_NEWPORT_CONSOLE是什么,于是我配置了Frame buffer support。 重新编译烧写,果然可以看见开机logo,但是有一个问题,系统总是会卡住,不能继续运行,在没有配置logo之前,绝对没有这个现象,不知道我哪里少选了,还是哪里冲突了? 多谢指教~

  • 是停在kernel还是停在哪里?按你说的,也不是每次都卡住,还是说每次卡住的地方不一样?  可能需要你提供一下当时的log

    顺便想问一下,因为你这个是kernel下的logo,从系统加电到出现logo大致需要多久?

  • 恩,确实不是每次都停,但阻塞的时候居多,程序阻塞在了AVSERVER UI: Initializing 的上一行,也就说没有能进入到avserver ui initial里面。请看下面的log:

    从上电到出现logo大约6-7s的样子。我本来是想在uboot里面实现logo,但由于之前没做过,加上看到kernel里面有logo可以配置,就图省事了。

    U-Boot 2010.12-rc2-svn2 (Sep 28 2012 - 15:31:51)                               
                                                                                   
    Cores: ARM 297 MHz                                                             
    DDR:   243 MHz                                                                 
    I2C:   ready                                                                   
    DRAM:  128 MiB                                                                 
    NAND:  256 MiB                                                                 
    MMC:   davinci: 0, davinci: 1                                                  
    Bad block table found at page 131008, version 0x01                             
    Bad block table found at page 130944, version 0x01                             
    Net:   Ethernet PHY: GENERIC @ 0x00                                            
    DaVinci-EMAC                                                                   
    Hit any key to stop autoboot:  0                                               
    123                                                                            
                                                                                   
    Loading from nand0, offset 0x400000                                            
       Image Name:   Linux-2.6.18_pro500-davinci_IPNC                              
       Created:      2013-06-04   9:21:44 UTC                                      
       Image Type:   ARM Linux Kernel Image (uncompressed)                         
       Data Size:    1666660 Bytes = 1.6 MiB                                       
       Load Address: 80008000                                                      
       Entry Point:  80008000                                                      
    ## Booting kernel from Legacy Image at 80700000 ...                            
       Image Name:   Linux-2.6.18_pro500-davinci_IPNC                              
       Created:      2013-06-04   9:21:44 UTC                                      
       Image Type:   ARM Linux Kernel Image (uncompressed)                         
       Data Size:    1666660 Bytes = 1.6 MiB                                       
       Load Address: 80008000                                                      
       Entry Point:  80008000                                                      
       Verifying Checksum ... OK                                                   
       Loading Kernel Image ... OK                                                 
    OK                                                                             
                                                                                   
    Starting kernel ...                                                            
                                                                                   
    Uncompressing Linux.............................................................
    Linux version 2.6.18_pro500-davinci_IPNC_1.5 (touptek@touptek-laptop) (gcc vers3
    CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177                  
    Machine: DaVinci DM365 IPNC                                                    
    Memory policy: ECC disabled, Data cache writeback                              
    DaVinci DM0365 variant 0x8                                                     
    PLL0: fixedrate: 24000000, commonrate: 121500000, vpssrate: 243000000          
    PLL0: vencrate_sd: 27000000, ddrrate: 243000000 mmcsdrate: 121500000           
    PLL1: armrate: 297000000, voicerate: 20482758, vencrate_hd: 74250000           
    CPU0: D VIVT write-back cache                                                  
    CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets           
    CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets             
    Built 1 zonelists.  Total pages: 13824                                         
    Kernel command line: mem=54M console=ttyS0,115200n8 root=/dev/mtdblock3 rootfstf
    PID hash table entries: 256 (order: 8, 1024 bytes)                             
    Clock event device timer0_0 configured with caps set: 07                       
    Console: colour dummy device 80x30                                             
    Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)                  
    Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)                   
    Memory: 54MB = 54MB total                                                      
    Memory: 51072KB available (2832K code, 585K data, 172K init)                   
    Mount-cache hash table entries: 512                                            
    CPU: Testing write buffer coherency: ok                                        
    NET: Registered protocol family 16                                             
    DaVinci: 104 gpio irqs                                                         
    MUX: initialized GPIO20                                                        
    MUX: initialized I2C_SCL                                                       
    MUX: initialized GIO50                                                         
    MUX: initialized GIO51                                                         
    MUX: initialized VOUT_B0                                                       
    MUX: initialized VOUT_B1                                                       
    MUX: initialized VOUT_B2                                                       
    MUX: initialized VOUT_G0                                                       
    MUX: initialized VOUT_G1                                                       
    MUX: initialized VOUT_R0                                                       
    MUX: initialized VOUT_R1                                                       
    MUX: initialized VOUT_R2                                                       
    ch0 default output "LCD", mode "1280x720"                                      
    parallel rgb mode!                                                             
    parallel rgb mode!                                                             
    parallel rgb mode!                                                             
    MUX: initialized VOUT_COUTL_EN                                                 
    VPBE Encoder Initialized                                                       
    NET: Registered protocol family 2                                              
    IP route cache hash table entries: 512 (order: -1, 2048 bytes)                 
    TCP established hash table entries: 2048 (order: 1, 8192 bytes)                
    TCP bind hash table entries: 1024 (order: 0, 4096 bytes)                       
    TCP: Hash tables configured (established 2048 bind 1024)                       
    TCP reno registered                                                            
    VFS: Disk quotas dquot_6.5.1                                                   
    Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)                     
    squashfs: version 3.1 (2006/08/19) Phillip Lougher                             
    JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.                          
    yaffs Jun  4 2013 17:04:50 Installing.                                         
    SGI XFS with no debug enabled                                                  
    io scheduler noop registered                                                   
    io scheduler anticipatory registered (default)                                 
    LTT : ltt-facilities init                                                      
    LTT : ltt-facility-core init in kernel                                         
    Console: switching to colour frame buffer device 160x45                        
    davincifb davincifb.0: dm_osd0_fb: 1280x720x16@0,0 with framebuffer size 1800KB
    davincifb davincifb.0: dm_vid0_fb: 0x0x16@0,0 with framebuffer size 2700KB     
    davincifb davincifb.0: dm_osd1_fb: 1280x720x4@0,0 with framebuffer size 1800KB 
    davincifb davincifb.0: dm_vid1_fb: 0x0x16@0,0 with framebuffer size 2700KB     
    DAVINCI-WDT: DaVinci Watchdog Timer: heartbeat 60 sec                          
    Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled      
    serial8250.0: ttyS0 at MMIO map 0x1c20000 mem 0xfbc20000 (irq = 40) is a 16550A
    serial8250.0: ttyS1 at MMIO map 0x1d06000 mem 0xfbd06000 (irq = 41) is a 16550A
    RAMDISK driver initialized: 1 RAM disks of 32768K size 1024 blocksize          
    Linux video capture interface: v2.00                                           
    Trying to register davinci display video device.                               
    layer=c04f7800,layer->video_dev=c04f7960                                       
    Trying to register davinci display video device.                               
    layer=c04f7600,layer->video_dev=c04f7760                                       
    davinci_init:DaVinci V4L2 Display Driver V1.0 loaded                           
    i2c /dev entries driver                                                        
    nand_davinci nand_davinci.0: Using 4-bit hardware ECC                          
    NAND device: Manufacturer ID: 0x2c, Chip ID: 0xda (Micron NAND 256MiB 3,3V 8-bi)
    Creating 5 MTD partitions on "nand_davinci.0":                                 
    0x00000000-0x003c0000 : "bootloader"                                           
    0x003c0000-0x00400000 : "params"                                               
    0x00400000-0x00800000 : "kernel"                                               
    0x00800000-0x02800000 : "/"                                                    
    0x02800000-0x10000000 : "data"                                                 
    nand_davinci nand_davinci.0: hardware revision: 2.3                            
    DaVinci DM365 Keypad Driver                                                    
    MUX: initialized KEYPAD                                                        
    input: dm365_keypad as /class/input/input0                                     
    Advanced Linux Sound Architecture Driver Version 1.0.12rc1 (Thu Jun 22 13:55:50.
    ASoC version 0.13.1                                                            
    CQ0093 Voice Codec 0.1                                                         
    asoc: cq93vc <-> davinci-vcif mapping ok                                       
    ALSA device list:                                                              
      #0: On-chip voice codec (cq93vc)                                             
    IPv4 over IPv4 tunneling driver                                                
    NET: Registered protocol family 1                                              
    NET: Registered protocol family 17                                             
    ieee80211: 802.11 data/management/control stack, git-1.1.13                    
    ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>
    Time: timer0_1 clocksource has been installed.                                 
    Clock event device timer0_0 configured with caps set: 08                       
    Switched to high resolution mode on CPU 0                                      
    VFS: Mounted root (cramfs filesystem) readonly.                                
    Freeing init memory: 172K                                                      
    INIT: version 2.86 booting                                                     
    0                                                                              
    mkdir: Cannot create directory `/dev/.test': Read-only file system             
    Starting the hotplug events dispatcher: udevd.                                 
    Synthesizing the initial hotplug events...done.                                
    Waiting for /dev to be fully populated...done.                                 
    0                                                                              
    insmod: /opt/ipnc/modules/g_media.ko: No such file or directory                
    CSL: Module install successful, device major num = 254                         
    CSL: Module version 0.10.00, built on Jun  4 2013 17:07:07                     
    I2C: Module install successful, device major num = 253                         
    DMA: Module install successful, device major num = 252                         
    DRV: Module install successful                                                 
    DRV: Module built on Jun  4 2013 17:07:09                                      
    DRV: EDMACC.QUEPRI  = 00000777                                                 
    DRV: SYSTEM.MSTPRI0 = 00550011                                                 
    DRV: SYSTEM.MSTPRI1 = 00000444                                                 
    DRV: ISP.BCR        = 00000002                                                 
    CMEMK module: built on Jun  4 2013 at 17:06:49                                 
      Reference Linux version 2.6.18                                               
      File /data/work/ipnc_dm365/dvsdk_2_10_01_18/linuxutils_2_24_03/packages/ti/sdc
    allocated heap buffer 0xc4000000 of size 0x4800000                             
    CMEM Range Overlaps Kernel Physical - allowing overlap                         
    CMEM phys_start (0x1000) overlaps kernel (0x80000000 -> 0x83600000)            
    cmemk initialized                                                              
    EDMAK module: built on Jun  4 2013 at 17:06:51                                 
      Reference Linux version 2.6.18                                               
      File /data/work/ipnc_dm365/dvsdk_2_10_01_18/linuxutils_2_24_03/packages/ti/sdc
    IRQK module: built on Jun  4 2013 at 17:06:51                                  
      Reference Linux version 2.6.18                                               
      File /data/work/ipnc_dm365/dvsdk_2_10_01_18/linuxutils_2_24_03/packages/ti/sdc
    irqk initialized                                                               
    Starting mounting local filesystems: mount none on /dev/shm type tmpfs (rw,size)
    none on /var/run type tmpfs (rw)                                               
    none on /tmp type tmpfs (rw,sync)                                              
    io scheduler cfq registeredCreat queue id:0                                    
                                                                                   
    queue id:0                                                                     
    Creat queue id:32769                                                           
    queue id:32769                                                                 
    queue id:32769                                                                 
    Creat queue id:65538                                                           
    queue id:65538                                                                 
    IPNC_1.5 (touptek@touptek-laptop) (gcc version 4.2.0 (MontaVist                
    queue id:65538                                                                 
                                                                                   
     DEMOCFG Value: 0                                                              
                                                                                   
    nVideocodecmode = 0                                                            
    nVideocodecres = 0                                                             
    ./av_server.out AEWB APPRO2A 720P H264 4000000 CVBR MJPEG 97 MENUOFF &         
    Check_device_version : DEVICE VER = 1 !!                                       
    insmod: /opt/ipnc/modules/exportfs.ko: No such file or directory               
    davinci-mmc davinci-mmc.0: Supporting 4-bit mode                               
    davinci-mmc davinci-mmc.0: Using DMA mode                                      
    ApproDrvInit: 7                                                                
    Creat queue id:98307                                                           
    queue id:98307 

  • 请问如何在uboot里面实现呢?如果可以在uboot里面实现是最好的了~

  • uboot里面是可以做的,不过需要你自己去配置寄存器了。可以参考开发板自带的VPFE工程去做这个

  • o,好的,多谢,我去看看。

  • 哦 ,关于内核配置这个阻塞问题,不知道您有什么看法么?

  • 我猜是内核已经做了一些显示部分的初始化,后面跑应用的时候又做了一遍,之间可能就有配置打架了

    具体要看到底停在哪里了,因为你log中打印出来的东西停在哪里,代码里未必是在那个地方的

  • 哦,好的,虽然我还不知道怎么解决他,不过非常感谢您的耐心回答~~等我弄好了贴出来办法,希望可以帮助其他人。

  • Excuse me, 我找不到你说的VPFE工程,可否告诉我在哪里可以下载到?

  • 查资料说很有可能是在VPSS初始化部分冲突了,内核默认VPSS是未初始化的,但配置LOGO后,其实是已经初始化过了,应该是这里冲突了,请问您知道内核中VPSS初始化这个该怎么修改下么。。

  • 您好。请问现在知道卡在哪里了吗。我也在启动内核时有时会卡住。我是在uboot加入logo...  

  • 这个问题叫u-boot splash

    给你一个参考的CCS工程,你可以把里面的代码加到u-boot里来实现开机界面 (多看看初始化VPBE的流程)

    但是kernel起来之后,kernel里的framebuffer驱动起来之后会重新初始化VPBE, 这样会导致闪屏

    比较好的做法是,u-boot里初始化VPBE,修改kernel里的framebuffer里的驱动,用ioremmap把u-boot里配置好的VPBE OSD/video窗口的地址映射到kernel空间来(注意地址冲突)

    video_colorbars_hd-720P_LCD1.zip
  • 你好,请问你是怎么在Uboot下面添加的LOGO呢?我也想添加,不知道如何下手,能指点下吗?谢谢~~~