/***************************************************************************                     I.MX6 Linux Qt 启动流程跟踪*  声明:*      1. 源代码来源MY-I.MX6;*      2. 本文仅仅是对启动流程的解析,没有解释启动流程为什么是这样的问题。**                                   2015-6-13 深圳 晴 南山平山村 曾剑锋*************************************************************************/\\\\\\\\\\\\\-*- 目录 -*-                |   一、cat /etc/inittab|   二、cat /etc/rc.d/rcS|   三、cat /etc/rc.d/rc.local|   四、cat /etc/rc.d/rc_gpu.S|   五、cat /etc/profile\\\\\\\\\\\\\\\\\\\//一、cat/etc/inittab# see busybox-1.00rc2/examples/inittab formore examples::sysinit:/etc/rc.d/rcS             # 系统启动时调用的程序1#::respawn:/etc/rc.d/rc_mxc.Sttymxc0::once:/bin/login root       # 内核信息打印的串口::sysinit:/etc/rc.d/rc_gpu.S        # 系统启动时调用的程序2::ctrlaltdel:/sbin/reboot            ::shutdown:/etc/rc.d/rcS stop       # 关机时调用的程序::restart:/sbin/init                # 系统重启时调用的程序二、cat/etc/rc.d/rcS#!/bin/sh# minimal startup script, will work with msh (this is best available in# MMUless format).# load the configuration information   加载配置信息,并使其生效./etc/rc.d/rc.conf# 如果没有传入第一个参数,那么就将start字符串赋给mode# 查看inittab文件里的一下内容,就能理解这一部分:#   ::sysinit:/etc/rc.d/rcS             # 系统启动时调用的程序1#   ::sysinit:/etc/rc.d/rc_gpu.S        # 系统启动时调用的程序2#   ::shutdown:/etc/rc.d/rcS stop       # 关机时调用的程# 如上可知,开机时不传参表示start,关机传入stop表示关机mode=${1:-start}if [ $mode = "start"]              thenservices=$cfg_services          # 如果mode是start,services等于cfg_services的值elseservices=$cfg_services_r        # 如果mode是start,services等于cfg_services_r的值ficfg_services=${2:-$services}        # 如果没有传入第二个参数,cfg_services等于services# run the configured sequencefor i in$cfg_services              # 迭代cfg_servicesdoif [ -x /etc/rc.d/init.d/$i ]   # 检查文件是否可执行then/etc/rc.d/init.d/$i $mode   # 如果可执行,那么就执行,并传入对应的mode参数,start或stopfi                                                                          doneif [ $# -ge 2]                     # 如果参数个数大于2,到这里也就执行完毕了,不执行下面内容then exit0fi# show all kernel log messages      # 设置内核信息输出等级#echo8 >  /proc/sys/kernel/printk# run rc.localifpresent and executableif [ -x /etc/rc.d/rc.local ]        # 检查rc.local是否可执行then/etc/rc.d/rc.local $mode        # 运行该脚本,跟踪该脚本fi三、cat/etc/rc.d/rc.local#!/bin/sh## This script will be executed*after*all the other init scripts.# You can put your own initialization stuffinhere# 本人查看过/usr/bin/rpm文件,不存在,所以if判断里的内容可以无视# 当然系统运行起来之后,也没发现下面echo出来的调试信息if [ -x "/usr/bin/rpm" -a -e "/tmp/ltib"]thenecho"rebuilding rpm database"rm-rf /tmp/ltibrpm--rebuilddbfi# fix up permissions# 修改/home/user的权限if [ -d /home/user ]thenchown-R user.user /home/userfi# 创建一些设备节点,这之后的代码没发现对程序运行有太大价值的内容# Add nodes when running under the hypervisor andstaticdevicesif [ -r /sys/class/misc/fsl-hv/dev -a ! -r /dev/fsl-hv ]thenecho"creating hypervisor nodes"DEVID=`cat /sys/class/misc/fsl-hv/dev`if [ -n "$DEVID"]thenMAJOR="${DEVID%:*}"MINOR="${DEVID##*:}"if [ \( "$MAJOR" -gt 0 \) -a \( "$MINOR" -gt 0\) ]thenrm-f /dev/fsl-hvmknod/dev/fsl-hv c $MAJOR $MINORfififor i in 0 1 2 3 4 5 6 7domknod/dev/hvc$i c 229$idonefi# add the fm device nodesif [ -n "$(cat /proc/devices | grep fm | sed 's/\([0-9]*\).*/\1/')" -a ! -r /dev/fm0 ]thenecho"creating fman device nodes"cd/usr/share/doc/fmd-uspace-01.01/test/sh fm_dev_createcd-fifor i in 0 1 2; doif [ -e /sys/class/graphics/fb$i ]; thenchmod0666 /sys/class/graphics/fb$i/panfidone四、cat/etc/rc.d/rc_gpu.S    #!/bin/bash# 获取CPU的一些信息CPUREV=$(cat /proc/cpuinfo | grep Revision | awk '{print $3}' | awk '{print substr($0,1,2)}')# 设置一些变量,从变量的值来看,主要还解决不同CPU环境下的一些# 依赖库的问题,后面内容都是为了处理这件事FILEVG=/usr/lib/libOpenVG.soFILEVG3D=/usr/lib/libOpenVG_3D.soFILEVG355=/usr/lib/libOpenVG_355.soecho4 > /sys/module/galcore/parameters/gpu3DMinClockif  [ -e $FILEVG3D ] && [ -e $FILEVG355 ]thenif  [ $CPUREV == "61" ] || [ $CPUREV == "63" ] || [ $CPUREV == "60" ] && [ -e  $FILEVG ]thenrm-f $FILEVGfiif [ $CPUREV == "61"]thenln-s $FILEVG3D $FILEVGfiif [ $CPUREV == "63"]thenln-s $FILEVG355 $FILEVGfiif [ $CPUREV == "60"]thenln-s $FILEVG355 $FILEVGfifi五、cat/etc/profile# 设置PATH环境变量PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/binPS1='[\u@\h \W]\$'# shell中显示的提示信息格式export PATH                 # 导出PATH位环境变量alias ll='ls -l'# 设置命令别名alias la='ll -a'export PS1='\u@\h \w$'# 导出一些环境变量export PS2='>'export PS3='?'export PS4='[$LINENO]+'# 设置TSLIB、QT的库的相关信息export GST_PLUGIN_PATH=/usr/lib/fsl_mm_linux/lib/gstreamer-0.10export TSLIB_ROOT=/usr/local/tslib-installexport TSLIB_TSDEVICE=/dev/input/event1 export TSLIB_CALIBFILE=/etc/pointercal   export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf    export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts export TSLIB_FBDEVICE=/dev/fb0   export PATH=/usr/local/tslib-install:$PATHexport LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.8.5-arm/libexport QT_QWS_FONTDIR=/usr/local/Trolltech/QtEmbedded-4.8.5-arm/lib/fontsexport QWS_MOUSE_PROTO=tslib:/dev/input/event1# 查看/etc/pointercal文件是否存在并且是正规文件# 通过这个文件来确定是否需要来调用触摸屏矫正程序if [ -f /etc/pointercal ];then                  echo"MXS touchscreen have calibrate!"else/usr/local/tslib-install/bin/ts_calibrate   fi# 运行QT程序,传入qws参数,并置于后台运行/qt_app/myzr -qws &

转载于:https://www.cnblogs.com/zengjfgit/p/4573255.html

I.MX6 Linux Qt 启动流程跟踪相关推荐

  1. qt multi-touch linux,I.MX6 linux Qt 同时支持Touch、mouse

    /***************************************************************************** * I.MX6 linux Qt 同时支持 ...

  2. 【内核】linux内核启动流程详细分析【转】

    转自:http://www.cnblogs.com/lcw/p/3337937.html Linux内核启动流程 arch/arm/kernel/head-armv.S 该文件是内核最先执行的一个文件 ...

  3. 【内核】linux内核启动流程详细分析

    Linux内核启动流程 arch/arm/kernel/head-armv.S 该文件是内核最先执行的一个文件,包括内核入口ENTRY(stext)到start_kernel间的初始化代码, 主要作用 ...

  4. I.MX6 linux Qt 同时支持Touch、mouse

    /****************************************************************************** I.MX6 linux Qt 同时支持T ...

  5. Linux的启动流程(CentOS 6)

    前言 Linux启动的过程在实际生产中有着至关重要的作用.试想一下,如果我们在实际生产中服务器因为某一个服务出了问题,而不能启动,这时我们应该怎么办.如果我们了解Linux的详细启动过程,知道是在哪一 ...

  6. Linux的启动流程简析(以Debian为例)

    Linux的启动流程简析(以Debian为例) 正文: 前面的文章探讨BIOS和主引导记录的作用.那篇文章不涉及操作系统,只与主板的板载程序有关.今天,我想接着往下写,探讨操作系统接管硬件以后发生的事 ...

  7. Linux驱动(4)--Linux的启动流程

    Linux的启动流程 1.Linux的启动流程概述 2. 从串口打印日志中分析 3. 以Exynos 4412启动流程为例 1.Linux的启动流程概述 ARM Linux 的启动流程大致为:Uboo ...

  8. linux的启动流程和加载程序

    linux的启动流程和加载程序 先来了解一下整个过程,大致知道linux是怎么启动的. 启动时要加载内核,让内核来驱动硬件,这样才算是一个真正的操作系统 但内核启动前是要做一些其它工作的.启动过过程如 ...

  9. linux内核启动流程(文章最后流程图)

    原文:linux内核启动流程 本文以Linux3.14版本源码为例分析其启动流程.各版本启动代码略有不同,但核心流程与思想万变不离其宗. 内核映像被加载到内存并获得控制权之后,内核启动流程开始.通常, ...

最新文章

  1. OpenDesktop 1.0开放桌面操作系统光盘启动安装过程详细图解
  2. 音视频流媒体的原理以及基础入门知识
  3. jbpm4.4+ssh配置
  4. 微信公众平台开发之留言板
  5. 2021-06-27循环控制 mapSet
  6. mybatis spring maven
  7. Vultr VPS修改root密码的方法
  8. mmlspark-101: TrainClassifier
  9. oracle 存档终点修改,修改归档模式的存档终点 archive log list
  10. 小车yolo机械臂(四)python ros 和darknet_ros 使用launch文件启动脚本
  11. 游戏App上架iOS被拒各种奇葩问题
  12. 直方图实现快速中值滤波opencv
  13. 初识SpringCache
  14. streamlit简介和使用教程1
  15. unity+Cardboard SDK VR开发Cardboard Unity SDK讲解
  16. Linux 网卡配置
  17. gss1_GSS简介:网格样式表
  18. idea安装SVN插件并使用
  19. 常用离子液体有哪些?粘度和密度是多少?(解答)
  20. java新应用_java8新特性的实际应用

热门文章

  1. 拒绝CPU挖矿矿工有责
  2. Query意图分析:记一次完整的机器学习过程(scikit learn library学习笔记)
  3. 《学习之道》第九章不要突击工作
  4. 【LeetCode】200. 岛屿的个数
  5. Cordova - 彻底搞定IOS编译!
  6. java Calendar
  7. sql server 修改表结构语法大全
  8. Android开发学习---使用Intelij idea 13.1 进行android 开发
  9. 如何给FormPanel表单中的元素赋值以及获取表单元素值
  10. 说说“开源杀死商业开发工具”