Thứ Hai, 4 tháng 12, 2017

[Phần 3] Box FPT chạy gì khi khởi động?



Hiện tại theo như mình biết thì Box sau khi bật nguồn sẽ thực hiện tuần tự các bước sau:
  1. Boot loader from serial flash in Sigma Designs SMP86xx chip.
  2. Boot loader from NAND flash. 
  3. Linux kernel from NAND flash. 
  4. /sbin/init and /etc/init.d/rcS 
  5. /etc/init.d/S99local 
  6. /tango/app/runme.sh 
GHI CHÚ: 
- Từ bước 1-5 đây là mặc định được cấu hình từ SDK.
- Từ bước 6 trở về sau là do dev họ quyết định...
Giải thích:

 /etc/init.d/S99local

  • Đây là script chính sẽ được chạy sau khi kernel đã được chạy, thường thì script này nó nằm luôn trong phân vùng của pt residing in the rootfs filesystem (which is the part of the Linux kernel image). -
  • This boot script performs the following steps:
  • - Loads various drivers:
  • - FIP (front interface panel) driver.
  • - IR (remote control) driver.
  • - Drivers for storage devices (SATA, USB, SD card).
  • - Drivers for additional filesystems (e.g. NTFS).
  • - NAND flash driver. - Checks for local storage devices (e.g. USB flash drive).
  • - If such devices are found, they are tried to be mounted.
  • - NOTE: All mounted local storage devices are kept mounted in /tmp/boot_mnt/; these temporary mounts points are called "boot mounts"; at a later boot stage, /tango/bdstart.sh script will further analyze them and remount them into an appropriate final location.
  • - Checks if emergency firmware recovery should be performed (triggered by "dune_firmware.dff" file in the root of any mounted local storage device).
  • - Emergency firmware recovery updates all parts of the flash memory which are updated during normal firmware upgrade process. This includes all read-only parts of the firmware, such as Linux kernel and /tango. This does not include /mnt flash memory parition which is used to store STB settings. - After emergency firmware recovery is finished, the STB hangs and the user should remove the local storage device with "dune_firmware.dff" file and manually reboot the STB. - Checks if emergency settings reset should be performed (triggered by "dune_boot_reset_settings.flag" file in the root of any mounted local storage device).
  • - Emergency settings reset reformats /mnt flash memory partition which is used to store STB settings.
  • - After emergency settings reset is finished, the STB continues normal boot process.
  • - Mounts the main read-only flash memory partition to /tango.
  • - Mounts the main read-write flash memory partition to /mnt.
  • - If this fails (e.g. the filesystem is corrupted), reformats it and retries.
  • - Calls /tango/bdstart.sh.

/tango/app/runme.sh

  • - This is the main boot script residing in the /tango partition.
  • - This boot script performs the following steps:
  • - Loads some additional drivers. 
  • - Does some additional initialization.
  • - Prepares some symlinks. 
  • - Prepares some environment variables.
  • - Prepares some required directories and files in the RAM disk (e.g. in /tmp).
  • - Handles "boot mounts", remounts some of the local storage devices to /persistfs ("system storage") and /D ("main storage") when needed.
  • - Loads Sigma Designs MRUA drivers (microcodes and kernel modules).
  • - Frees resources occupied by the boot splash.
  • - Mounts /firmware_opt and/or /flashdata flash memory partitions, when they exist.
  • - NOTE:
  • The following scripts are used here:
  • - /tango/firmware/mount_firmware_opt.sh
  • - /tango/firmware/mount_flashdata.sh
  • - Does some more initialization. In particular, calls the following extra init scripts:
  • - /tango/firmware/scripts/init_timezone.sh
  • - /tango/firmware/scripts/init_cron_apps.sh
  • - /tango/firmware/ftpserver/run
  • - /tango/firmware/smbserver/run
  • - /tango/firmware/scripts/init_ssh_server.sh
  • - Calls the following script, if it exists (can be used in custom firmware builds to do some extra custom initialization on STB boot):
  • - /tango/firmware/config/start.sh
  • - Does some more initialization.
  • - Finally, launches the following executable: /tango/firmware/bin/root

Không có nhận xét nào:

Đăng nhận xét

Cám ơn bạn đã để lại nhận xét

Cài OwnCloud lên ChainedBox L1 Pro

OwnCloud là gì? Giới thiệu (copy) Grank Karlitschek, một chuyên gia phát triển phần mềm KDE người Đức, đã bắt đầu phát triển OwnCloud vào th...

Popular Posts