#!/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的更多相关文章

  1. 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 ...

  2. 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中 ...

  3. 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 ...

  4. 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 ...

  5. 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 ...

  6. 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中 ...

  7. ti processor sdk linux am335x evm /bin/unshallow-repositories.sh hacking

    #!/bin/bash # # ti processor sdk linux am335x evm /bin/unshallow-repositories.sh hacking # 说明: # 本文主 ...

  8. 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 ...

  9. ti processor sdk linux am335x evm setup.sh hacking

    #!/bin/sh # # ti processor sdk linux am335x evm setup.sh hacking # 说明: # 本文主要对TI的sdk中的setup.sh脚本进行解读 ...

随机推荐

  1. Java学习第一篇:变量,数据类型,运算符,流程控制(简介)

    一.安装和配置jdk 1.jdk是什么? (1).jdk全称是Java Development Kit, Java开发工具包; (2).jdk是sun公司开发的; (3).jdk主要包括:jre(Ja ...

  2. [unity3d]手游资源热更新策略探讨

    原地址:http://blog.csdn.net/dingxiaowei2013/article/details/20079683 我们学习了如何将资源进行打包.这次就可以用上场了,我们来探讨一下手游 ...

  3. 国内最大的 Node.js 社区将 New Relic 的监控产品换成了 OneAPM

    国内最知名的 CNode 社区把 New Relic 的监控产品换成了 OneAPM .难道 APM 的老大 New Relic 已经被 OneAPM 超越? 毋庸置疑,在全球应用性能管理 SaaS ...

  4. Node.js 4.0.0:灵雀云和 OneAPM 的整合测试

    关于 Node.js 4.0.0 稳定版刚刚推出,备受期待,迫不及待地想用它写点东西:此外,要把 Demo 放到 Internet 上得有一个公网 IP ,看到灵雀云挺不错的而且提供域名解析,简直业界 ...

  5. Chp11: Sorting and Searching

    Common Sorting Algo: Bubble Sort: Runime: O(n2) average and worst case. Memory: O(1). void BubbleSor ...

  6. Mutex vs Semaphore

    What are the differences between Mutex vs Semaphore? When to use mutex and when to use semaphore? Co ...

  7. hdu 2604 Queuing(动态规划—>矩阵快速幂,更通用的模版)

    题目 最早不会写,看了网上的分析,然后终于想明白了矩阵是怎么出来的了,哈哈哈哈. 因为边上的项目排列顺序不一样,所以写出来的矩阵形式也可能不一样,但是都是可以的 //愚钝的我不会写这题,然后百度了,照 ...

  8. php集成开发环境的安装以及Zend Studio开发工具的安装

    一.集成开发环境: wampserver 下载地址: 官网: http://www.wampserver.com/ 直接下载 http://sourceforge.net/projects/wamps ...

  9. java基础知识回顾之---java String final类构造方法

    /** * String 构造方法学习 *     String(byte[ ] bytes):通过byte数组构造字符串对象. *     String(byte[] bytes, int offs ...

  10. Java程序员学C#基本语法两个小时搞定(对比学习)

    对于学习一门新的语言,关键是学习新语言和以前掌握的语言的区别,但是也不要让以前语言的东西,固定了自己的思维模式,多看一下新的语言的编程思想. 1.引包 using System;java用import ...