ti processor sdk linux am335x evm /bin/setup-targetfs-nfs.sh hacking
#!/bin/sh #
# ti processor sdk linux am335x evm /bin/setup-targetfs-nfs.sh hacking
# 说明:
# 本文主要对TI的sdk中的setup-targetfs-nfs.sh脚本进行解读,是为了了解
# 其工作机制。
#
# -- 深圳 南山平山村 曾剑锋 # This distribution contains contributions or derivatives under copyright
# as follows:
#
# Copyright (c) , Texas Instruments Incorporated
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# - Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# - Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# - Neither the name of Texas Instruments nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. cwd=`dirname $`
. $cwd/common.sh #
# #platform
# PLATFORM=am335x-evm
# #defconfig
# DEFCONFIG=singlecore-omap2plus_defconfig
# #Architecture
# ARCH=armv7-a
# #u-boot machine
# UBOOT_MACHINE=am335x_evm_config
# #Points to the root of the TI SDK
# export TI_SDK_PATH=/home/Qt/ti-processor-sdk-linux-am335x-evm-01.00.00.00
# #root of the target file system for installing applications
# DESTDIR=/home/Qt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/targetNFS
# #Points to the root of the Linux libraries and headers matching the
# #demo file system.
# export LINUX_DEVKIT_PATH=$(TI_SDK_PATH)/linux-devkit
# #Cross compiler prefix
# export CROSS_COMPILE=$(LINUX_DEVKIT_PATH)/sysroots/i686-arago-linux/usr/bin/arm-linux-gnueabihf-
# #Default CC value to be used when cross compiling. This is so that the
# #GNU Make default of "cc" is not used to point to the host compiler
# export CC=$(CROSS_COMPILE)gcc
# #Location of environment-setup file
# export ENV_SETUP=$(LINUX_DEVKIT_PATH)/environment-setup
# #The directory that points to the SDK kernel source tree
# LINUXKERNEL_INSTALL_DIR=$(TI_SDK_PATH)/board-support/linux-3.14.-g2489c02
# CFLAGS= -march=armv7-a -marm -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a8
# SDK_PATH_TARGET=$(TI_SDK_PATH)/linux-devkit/sysroots/cortexa8t2hf-vfp-neon-linux-gnueabi/
# MAKE_JOBS= # TI_SDK_PATH=/home/Qt/ti-processor-sdk-linux-am335x-evm-01.00.00.00
SDKinstall=`grep TI_SDK_PATH= $cwd/../Rules.make | cut -d= -f2`
# dstdefault=/home/Qt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/targetNFS
dstdefault=$SDKinstall/targetNFS echo "--------------------------------------------------------------------------------"
# 配置NFS目录
echo "In which directory do you want to install the target filesystem?(if this directory does not exist it will be created)"
read -p "[ $dstdefault ] " dst if [ ! -n "$dst" ]; then
dst=$dstdefault
fi
echo "--------------------------------------------------------------------------------" echo
echo "--------------------------------------------------------------------------------"
echo "This step will extract the target filesystem to $dst"
echo
# 需要root权限
echo "Note! This command requires you to have administrator priviliges (sudo access) "
echo "on your host."
read -p "Press return to continue" REPLY extract_fs() {
# 文件系统的tar包位置
fstar=`ls - $cwd/../filesystem/??sdk*rootfs*.tar.gz`
me=`whoami` # 获取用户名
sudo mkdir -p $ # 创建指定目录
check_status
sudo tar xzf $fstar -C $ # 将文件系统解压到指定的目录
check_status
sudo chown $me:$me $ # 改变指定目录的用户和群组
check_status
sudo chown -R $me:$me $/home $/usr $/etc $/lib $/boot # 改变指定目录下的属性
check_status # Opt isn't a standard Linux directory. First make sure it exist.
if [ -d $/opt ];
then
sudo chown -R $me:$me $/opt
check_status
fi echo
# 显示提取文件成功
echo "Successfully extracted `basename $fstar` to $1"
} # 检查目录是否存在,根据是否存在做对应的事:备份、拷贝等。
if [ -d $dst ]; then
echo "$dst already exists"
echo "(r) rename existing filesystem (o) overwrite existing filesystem (s) skip filesystem extraction"
read -p "[r] " exists
case "$exists" in
s) echo "Skipping filesystem extraction"
echo "WARNING! Keeping the previous filesystem may cause compatibility problems if you are upgrading the SDK"
;;
o) sudo rm -rf $dst
echo "Old $dst removed"
extract_fs $dst
;;
*) dte="`date +%m%d%Y`_`date +%H`.`date +%M`"
echo "Path for old filesystem:"
read -p "[ $dst.$dte ]" old
if [ ! -n "$old" ]; then
old="$dst.$dte"
fi
sudo mv $dst $old
check_status
echo
echo "Successfully moved old $dst to $old"
extract_fs $dst
;;
esac
else
extract_fs $dst
fi
# . 查看
# Qt@aplex:~/ti-processor-sdk-linux-am335x-evm-01.00.00.00$ ls -al
# total
# -rwxr-xr-x Qt Qt Aug Rules.make
# -rwxr-xr-x Qt Qt Apr setup.sh
# -rw-rw-r-- Qt Qt Aug .gdbinit
# -rw-rw-r-- Qt Qt Aug .targetfs
# drwxr-xr-x root root Aug targetNFS
# Qt@aplex:~/ti-processor-sdk-linux-am335x-evm-01.00.00.00$ cat .targetfs
# /home/Qt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/targetNFS
# Qt@aplex:~/ti-processor-sdk-linux-am335x-evm-01.00.00.00$
# Qt@aplex:~/ti-processor-sdk-linux-am335x-evm-01.00.00.00$ cat .gdbinit
# set sysroot /home/Qt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/targetNFS
# . 如上可知,.targetfs确实生成了。
echo $dst > $cwd/../.targetfs
echo "set sysroot $dst" > $cwd/../.gdbinit
echo "--------------------------------------------------------------------------------" # platform=am335x-evm
platform=`grep PLATFORM= $cwd/../Rules.make | cut -d= -f2`
echo
echo "--------------------------------------------------------------------------------"
echo "This step will set up the SDK to install binaries in to:"
echo " $dst/home/root/$platform"
echo
echo "The files will be available from /home/root/$platform on the target."
echo
echo "This setting can be changed later by editing Rules.make and changing the"
echo "EXEC_DIR or DESTDIR variable (depending on your SDK)."
echo
read -p "Press return to continue" REPLY sed -i "s=EXEC_DIR\=.*$=EXEC_DIR\=$dst/home/root/$platform=g" $cwd/../Rules.make
check_status # DESTDIR=/home/Qt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/targetNFS
sed -i "s=DESTDIR\=.*$=DESTDIR\=$dst=g" $cwd/../Rules.make
check_status echo "Rules.make edited successfully.."
echo "--------------------------------------------------------------------------------" echo
echo "--------------------------------------------------------------------------------"
echo "This step will export your target filesystem for NFS access."
echo
echo "Note! This command requires you to have administrator priviliges (sudo access) "
echo "on your host."
read -p "Press return to continue" REPLY # 检查NFS的路径是否已经设置了,如果设置了,那么就调过,如果没有设置,那么重新设置。
grep $dst /etc/exports > /dev/null
if [ "$?" -eq "" ]; then
echo "$dst already NFS exported, skipping.."
else
sudo chmod /etc/exports
check_status
sudo echo "$dst *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)" >> /etc/exports
check_status
sudo chmod /etc/exports
check_status
fi echo
sudo /etc/init.d/nfs-kernel-server stop # 关闭nfs服务器
check_status
sleep
sudo /etc/init.d/nfs-kernel-server start # 打开nfs服务为,是配置有效
check_status
echo "--------------------------------------------------------------------------------"
ti processor sdk linux am335x evm /bin/setup-targetfs-nfs.sh hacking的更多相关文章
- ti processor sdk linux am335x evm /bin/setup-package-install.sh hacking
		
#!/bin/sh # # ti processor sdk linux am335x evm /bin/setup-package-install.sh hacking # 说明: # 本文主要对T ...
 - ti processor sdk linux am335x evm /bin/setup-uboot-env.sh hacking
		
#!/bin/sh # # ti processor sdk linux am335x evm /bin/setup-uboot-env.sh hacking # 说明: # 本文主要对TI的sdk中 ...
 - ti processor sdk linux am335x evm /bin/setup-minicom.sh hacking
		
#!/bin/sh # # ti processor sdk linux am335x evm /bin/setup-minicom.sh hacking # 说明: # 本文主要对TI的sdk中的s ...
 - ti processor sdk linux am335x evm /bin/commom.sh hacking
		
#!/bin/sh # # ti processor sdk linux am335x evm /bin/commom.sh hacking # 说明: # 本文主要对TI的sdk中的common.s ...
 - ti processor sdk linux am335x evm /bin/setup-host-check.sh hacking
		
#!/bin/sh # # ti processor sdk linux am335x evm /bin/setup-host-check.sh hacking # 说明: # 本文主要对TI的sdk ...
 - ti processor sdk linux am335x evm /bin/create-sdcard.sh hacking
		
#!/bin/bash # # ti processor sdk linux am335x evm /bin/create-sdcard.sh hacking # 说明: # 本文主要对TI的sdk中 ...
 - ti processor sdk linux am335x evm /bin/unshallow-repositories.sh hacking
		
#!/bin/bash # # ti processor sdk linux am335x evm /bin/unshallow-repositories.sh hacking # 说明: # 本文主 ...
 - ti processor sdk linux am335x evm /bin/setup-tftp.sh hacking
		
#!/bin/sh # # ti processor sdk linux am335x evm /bin/setup-tftp.sh hacking # 说明: # 本文主要对TI的sdk中的setu ...
 - ti processor sdk linux am335x evm setup.sh hacking
		
#!/bin/sh # # ti processor sdk linux am335x evm setup.sh hacking # 说明: # 本文主要对TI的sdk中的setup.sh脚本进行解读 ...
 
随机推荐
- C#序列化与反序列化(Serialize,Deserialize)实例详解
			
这篇文章主要介绍了C#序列化与反序列化(Serialize,Deserialize)的方法,实例分析了C#序列化与反序列化的常见技巧,需要的朋友可以参考下 本文实例讲述了C#序列化与反序列化(Seri ...
 - Chrome浏览器下调试SASS
			
网上说的方案各有各的说法,尝试多个才找到有效方案,为避免后来者麻烦,现在讲讲如何调试 笔者ruby版本为3.4.19,因为sass文件的编译是需要ruby环境的,使用sass前需要先安装! 第一步(核 ...
 - thinpad E43系列WIN8装WIN7系统
			
昨晚WIN8系统下装WIN7 折腾了好久,故此总结一下写一篇U盘装WIN7 : 先简述一下思路:BOSS设置启动项------->U盘启动--------> 进入PE删除所有分区----- ...
 - 关于JS及应用程序开发的一些体会
			
代码通常从 一,生命周期 二,业务流程 这几方面来看. JS Client可以和Server端分离. JS端的生命周期. Server端就是 JS能处理的只是HTTP协议.
 - tomcat 解析(三)-启动框架
			
TOMCAT源码分析(启动框架)前言: 本文是我阅读了TOMCAT源码后的一些心得. 主要是讲解TOMCAT的系统框架, 以及启动流程.若有错漏之处,敬请批评指教!建议: 毕竟TOMCAT的框 ...
 - c#操作剪切板
			
C#定义了一个类System.Windows.Forms.Clipboard来简化剪切板操作,这个类有一个静态方法,主要有: Clear 清除剪切板中的所有数据: ContainsData,Conta ...
 - java基础知识回顾之java Thread类学习(五)--java多线程安全问题(锁)同步的前提
			
这里举个例子讲解,同步synchronized在什么地方加,以及同步的前提: * 1.必须要有两个以上的线程,才需要同步. * 2.必须是多个线程使用同一个锁. * 3.必须保证同步中只能有一个线程在 ...
 - WPF / Win Form:多线程去修改或访问UI线程数据的方法( winform 跨线程访问UI控件 )
			
WPF:谈谈各种多线程去修改或访问UI线程数据的方法http://www.cnblogs.com/mgen/archive/2012/03/10/2389509.html 子线程非法访问UI线程的数据 ...
 - hdu1875
			
http://acm.hdu.edu.cn/showproblem.php?pid=1875 2 2 10 10 20 20 3 1 1 2 2 1000 1000 给定坐标 //最小生成树 #inc ...
 - 546C. Soldier and Cards
			
题目链接 题意 两个人玩扑克,共n张牌,第一个人k1张,第二个人k2张 给定输入的牌的顺序就是出牌的顺序 每次分别比较两个人牌的第一张,牌上面数字大的赢,把这两张牌给赢的人,并且大的牌放在这个人的牌最 ...