I.MX6 Linux Qt 启动流程跟踪

/***************************************************************************                     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 for more 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 exit 0fi# show all kernel log messages      # 设置内核信息输出等级#echo 8 >  /proc/sys/kernel/printk# run rc.local if present 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 stuff in here# 本人查看过/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 and static devicesif [ -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 ]; thenchmod 0666 /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.soecho 4 > /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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263258.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

deploy.php

<?php namespace Deployer;require recipe/common.php;// Project name set(application, tp_web);// Project repository set(repository, git地址);// [Optional] Allocate tty for git clone. Default value is false. set(git_tty, true); // Shared files/dirs betwee…

LeetCode—59. 螺旋矩阵 II

59. 螺旋矩阵 II 题目描述&#xff1a; 给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 考察重点&#xff1a;way数组记录走的方向&#xff0c;结合DFS实现矩阵螺旋遍历。 int way[][] …

dos下查看机器端口占用情况

在dos下有一个命令netstat -a&#xff0c;但是有时候识别不出来&#xff0c;偶就遇到了这种情况。怎么解决呢&#xff1f; 在我的电脑里C:\WINDOWS\system32下有个net.exe之类的文件。 步骤如下&#xff1a; 1&#xff0c;cmd 2&#xff0c;cd C:\WINDOWS\system32 3, C:\…

HTTP调试之保持连接状态(微软知识库文章)

HTTP性能调试优化之二&#xff08;翻译&#xff0c;微软知识库文章&#xff09; 原文出自 http://technet2.microsoft.com/WindowsServer/en/library/d92d338e-efdc-4e11-83a7-9af34c8bb5291033.mspx?mfrtrue 有一系列文章&#xff0c;其中第一篇是关于HTTP 压缩的&#xff0c…

(DBA之路【十一】)master-slave 机制原理

个人分析&#xff1a;master-slave优缺点1.物理服务器增加&#xff0c;负荷增加2.主从只负责各自的写和读&#xff0c;极大程度的缓解X锁和S锁争用3.从库可配置myisam引擎&#xff0c;提升查询性能以及节约系统开销4.丛库通过主库发送来的binlog恢复数据&#xff0c;但是&#…

基于C API的SQLite3基本数据库操作

SQLite是一款开源嵌入式文件型数据库&#xff0c;这个主要是和其他一些C/S架构的关系型数据库比较而来的&#xff0c;比如MySQL等。 说他是嵌入式&#xff0c;因为SQLite的所有功能全部包装在一个dll中&#xff0c;我们只需要使用其中的导出接口就可以操作SQLite数据库&#xf…

LeetCode—307. 区域和检索 - 数组可修改

307. 区域和检索 - 数组可修改 题目描述&#xff1a; 给你一个数组 nums &#xff0c;请你完成两类查询。 其中一类查询要求 更新 数组 nums 下标对应的值 另一类查询要求返回数组 nums 中索引 left 和索引 right 之间&#xff08; 包含 &#xff09;的nums元素的 和 &#x…

loadrunner利用虚拟IP测试

LoadRunner 使用虚拟IP测试流程 设置虚拟IP地址 首先&#xff0c;load Generator机器必须使用固定的IP&#xff0c;不能使用动态IP 确定网络中不冲突的IP地址 打开&#xff1a;开始-〉程序-〉loadrunner-〉tools-〉ip wizard&#xff0c; 说明&#xff1a;增加新IP选择第一项&a…

33Exchange Server 2010跨站点部署-分支机构邮件从分支机构出

16.6 SH-ROBIN外网邮件从分部出16.6.1 创建SH-ROBIN发送连接器在上海分支机构的集线器上创建一个发送连接器SH-To Internet添加地址空间&#xff0c;并设定成本添加上海分支机构的两台HT创建好上海分支机构的发送连接器16.6.2 SH-ROBIN站的TOM发送邮件给公网CONTOSOCONTOSO的张…

74HC595芯片使用说明

74HC595是具有8位移位寄存器和一个存储器&#xff0c;三态输出功能。 移位寄存器和存储器是分别的时钟。数据在SHcp的上升沿输入&#xff0c;在STcp的上升沿进入的存储寄存器中去。如果两个时钟连在一起&#xff0c;则移位寄存器总是比存储寄存器早一个脉冲。移位寄存器有一个串…

我的设计模式之旅(4)——生成器(建造者)模式Builder

Builder模式也是创建型模式中的一种。主要用来应对构成复杂但构成结构和顺序相对稳定的对象的创建工作。目的是省去在对象发生变化时&#xff0c;需要修改代码中每一处对象创建的地方&#xff0c;应用这种模式&#xff0c;可以在一个复杂对象的内部结构(由许多其他子对象构成的…

LeetCode—309. 最佳买卖股票时机含冷冻期

309. 最佳买卖股票时机含冷冻期 题目描述&#xff1a; 给定一个整数数组prices&#xff0c;其中第 prices[i] 表示第 i 天的股票价格 。​ 设计一个算法计算出最大利润。在满足以下约束条件下&#xff0c;你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff…

display:inline-block的深入理解 转

在使用CSS实现表现的时候&#xff0c;会经常接触到display:inline-block这一属性&#xff0c;无论是初接触Web标准还是接触标准已久的朋友&#xff0c;大都会对这一属性感觉很迷惑和模糊。 display:inline-block 引用:将对象呈递为内联对象&#xff0c;但是对象的内容作为块对象…

innosetup区分正常状态和静默安装状态(通过传递的参数)

命令行运行程序&#xff0c;如&#xff1a; myprogram.exe /abc /bcd 如果我们想获取其中的参数&#xff0c;“/abc”、“/bcd” 1. 直接使用innosetup自带的方法&#xff0c; GetCmdTail() 将所有参数作为一个字符串返回&#xff0c;安装和卸载都适用 注意&#xff1a;如果打…

测试计划排期内容和格式要求,测试邮件回复统一格式

公司最近在做一些测试流程规范&#xff0c;每次项目立项后&#xff0c;需要确认本次项目测试负责人&#xff0c;由测试项目负责人参加完需求评审后&#xff0c;协调资源 给出测试计划排期与对应子模块负责人员到项目经理处。 下面提供给大家一个测试计划排期内容和格式文档 2.测…

LeetCode—剑指 Offer 4、9、26、35、53

剑指 Offer 4. 二维数组中的查找、9. 用两个栈实现队列、26. 树的子结构、35. 复杂链表的复制、53 - I. 在排序数组中查找数字 I 题目描述&#xff1a; [4] 在一个 n * m 的二维数组中&#xff0c;每一行都按照从左到右递增的顺序排序&#xff0c;每一列都按照从上到下递增的顺…

关于VerifyError

http://slurp.doc.ic.ac.uk/pubs/observing/linking.htmlhttp://blog.csdn.net/smilingleo?viewmodelist转载于:https://www.cnblogs.com/diyunpeng/archive/2011/08/30/2159108.html

Ubuntu 安装 JDK 问题

2019独角兽企业重金招聘Python工程师标准>>> 1. 下载并解压缩 2. mv到/usr/lib/jdk 3. 在~/.bashrc文件末尾添加环境变量 export JAVA_HOME/usr/lib/jdkexport CLASSPATH${JAVA_HOME}/libexport PATH${JAVA_HOME}/bin:$PATH 4. 重启终端&#xff0c;输入javac -vers…

Asp.net中水晶报表的使用

在我们对VS.Net中的水晶报表&#xff08;Crystal Reports&#xff09;进行研究之前&#xff0c;我和我朋友对如何将这个复杂的东东加入我们的Web应用有着非常的好奇心。一周以后&#xff0c;在阅读了大量的“HOWTO”文档之后&#xff0c;我们成功地将一些简单的报告加入到了我们…

Html颜色值 to RGB

//Html颜色值转换为RGBfunction HhtmlColorToRGB(color){var str"0x" color.substring(1,color.length);var rstr&0x0000FF;var g(str&0x00FF00)>>8;var b(str&0xFF0000)>>16;return b "," g "," r;}转载于:https:…