专栏底层软件J5开机流程详细介绍

J5开机流程详细介绍

已解决
共产主义接班人2022-11-18
103
4

用户您好,请详细描述您所遇到的问题。

1.硬件获取渠道:

2.当前系统镜像版本:hobot-j5-matrix

3.当前天工开物版本:

4.问题定位:

5.开发的demo/案例:

6.需要提供的解决方案:详细介绍J5开机流程,对应的相关代码以及后续优化方向(比如去掉一些模块,加快开机时间)

底层软件
评论1
0/1000
  • 船到桥头
    Lv.1
    你好,我简单回答下,希望可以提供一些思路。

    启动流程:BootROM 启动流程:BootROM --> SPL SPL --> BL31(ATF) BL31(ATF) --> uboot uboot --> Linux Kernel

    ootROM ootROM --> SPL SPL --> BL31(ATF) BL31(ATF) --> uboot启动时间测量,在uboot命令行执行:setenv silent;saveenv;reset后,可以看到各个函数阶段的耗时,如下所示:
    内核启动时间测量:在uboot命令行执行:setenv extra_bootargs 'initcall_debug quiet';saveenv,重启后内核可以看到各个模块的耗时,可以选择优化。

    rootfs脚本时间测量:脚本中通过echo time_record > /sys/kernel/boot_time/mark,即可打点记录时间到内核。使用cat /sys/kernel/boot_time/report查看记录的时间点,启动“bootloader”表示启动到内核前的耗时,其他的项表示内核启动后打点的时间戳。可以选择优化。
    2022-11-18
    0
    3
    • 共产主义接班人回复船到桥头:

      谢谢,还请把启动流程调用关系,比如init.rc这些,先后启动顺序,大概做了哪些事情,相关代码路径,大致介绍一下。

      2022-11-18
      0
    • 船到桥头回复共产主义接班人:

      这里介绍下initrc中系统软件这边的启动流程,以下是基于j5dvb开发板,其他开发板可能略有不同。主要进行了分区准备、挂载;加载驱动;网络配置;启动日志系统;启动应用init.sh等

      /init.rc

      /init.normal.rc

      /init.normal.j5dvb.rc

      etc/init.d/banner.sh //执行

      banner_ready //设置标记

      service sysfs /etc/init.d/sysfs.sh //根据标记调用

      etc/init.d/sysfs.sh //被调用

      sysfs_ready

      service udev /etc/init.d/udev start

      service pcirescan /sbin/pcirescan

      etc/init.d/udev

      udev_ready

      service modutils /etc/init.d/modutils.sh

      etc/init.d/modutils.sh

      modutils_ready

      service devpts /etc/init.d/devpts.sh

      etc/init.d/devpts.sh

      pstty_ready

      service bootmisc /etc/init.d/bootmisc.sh

      etc/init.d/bootmisc.sh

      bootmisc_ready

      service dmesg /etc/init.d/dmesg.sh

      service hostname /etc/init.d/hostname.sh

      service networking /etc/init.d/networking start

      service pkafirmwareload /etc/init.d/pka-elf-load.sh

      etc/init.d/hostname.sh

      hostname_ready

      service start_tty /sbin/getty -l /usr/sbin/autologin -n -L console 0 vt102

      block_ready

      service 1mkfs /etc/init.d/1mkfs.sh

      usr/sbin/autologin

      tty_ready

      etc/init.d/1mkfs.sh

      mkfs_ready

      service mountall /etc/init.d/mountall.sh

      etc/init.d/ln_byname_dev.sh(1mkfs.sh调用)

      etc/init.d/mountall.sh

      mountmost_ready

      service load_ko /etc/init.d/load_ko.sh

      service vio_service /system/bin/vio_service &

      service rptimesync /usr/bin/hrut_remoteproc_timesync &

      service ntp_timesync /etc/init.d/chronyd.sh

      service loadmcore /lib/firmware/echo_virtio.sh

      service loadvdsp /lib/firmware/load_vdsp.sh

      mount_ready

      service log-daemon /etc/init.d/log-daemon start

      service updatecheck /etc/init.d/ota_check.sh

      service dropbear /etc/init.d/dropbear start

      service adbd /etc/init.d/adbd.sh &

      etc/init.d/load_ko.sh

      loadko_ready

      etc/init.d/ota_check.sh

      etc/rcS.d/S9updatecheck.sh

      otacheck_ready

      service defaultip /etc/rc5.d/S45defaultip

      etc/rc5.d/S45defaultip

      /usr/bin/defaultip.sh

      defaultip_ready

      service app /etc/init.d/appinit.sh

      etc/init.d/appinit.sh

      /mnt/init.sh

      etc/init.d/log-daemon

      /usr/bin/hobot-log

      usr/bin/hobot-log

      syslog_class

      service syslog /etc/init.d/syslog start

      service klog /etc/init.d/start_log klogd

      service logcat /etc/init.d/start_log logcat

      service mcore /etc/init.d/start_log mcore

      service dsp0 /etc/init.d/start_log dsp0

      service dsp1 /etc/init.d/start_log dsp1

      service bl31 /etc/init.d/start_log bl31

      etc/init.d/syslog

      /sbin/syslogd -n $SYSLOG_ARGS

      2022-11-18
      0
    • 共产主义接班人回复船到桥头:

      非常感谢

      2022-11-18
      0