busybox 의 셸 스 크 립 트 를 다운로드 하고 교차 컴 파일 합 니 다.
[root:/root/workpath/rootfs/busybox]#tree -L 3
.
|-- build.sh
|-- busybox-1.18.4.tar.bz2
`-- patch
`-- busybox-1.18.4.config
1 directory, 3 files
[root:/root/workpath/rootfs/busybox]#cat build.sh
#!/bin/sh
#+--------------------------------------------------------------------------------------------
#|Description: This shell script used to download busybox source code and cross compile it.
#| Author: GuoWenxue <[email protected]>
#| ChangeLog:
#| 1, Initialize 1.0.0 on 2011.04.21
#+--------------------------------------------------------------------------------------------
PRJ_PATH=`pwd`
APP_NAME="busybox-1.18.4"
PACK_SUFIX="tar.bz2"
DL_ADDR="http://www.busybox.net/downloads/busybox-1.18.4.tar.bz2"
INST_PATH=
ARCH=$1
ARM920T_CROSS="/opt/buildroot-2011.02/arm920t/usr/bin/arm-linux-"
ARM926T_CROSS="/opt/buildroot-2011.02/arm926ejs/usr/bin/arm-linux-"
sup_arch=("" "s3c2410" "s3c2440" "at91sam9260")
function select_arch()
{
echo "Current support ARCH: "
i=1
len=${#sup_arch[*]}
while [ $i -lt $len ]; do
echo "$i: ${sup_arch[$i]}"
let i++;
done
echo "Please select: "
index=
read index
ARCH=${sup_arch[$index]}
}
function decompress_packet()
(
echo "+---------------------------------------------+"
echo "| Decompress $1 now"
echo "+---------------------------------------------+"
if [ `ls $1 | grep "tar.bz2"` ] ; then
set -x
tar -xjf $1
set +x
fi
if [ `ls $1 | grep "tar.gz"` ] ; then
set -x
tar -xzf $1
set +x
fi
)
if [ -z $ARCH ] ; then
select_arch
fi
if [ $ARCH = "s3c2440" -o $ARCH = "s3c2410" ] ; then
CROSS="$ARM920T_CROSS"
elif [ $ARCH = "at91sam9260" ] ; then
CROSS="$ARM926T_CROSS"
else
echo "+------------------------------------------------------------------+"
echo "| ERROR: Unsupport platform to cross compile "
echo "+------------------------------------------------------------------+"
exit -1;
fi
# Download source code packet
if [ ! -s $APP_NAME.$PACK_SUFIX ] ; then
echo "+------------------------------------------------------------------+"
echo "| Download $APP_NAME.$PACK_SUFIX now "
echo "+------------------------------------------------------------------+"
wget $DL_ADDR
fi
# Decompress source code packet
if [ ! -d $APP_NAME ] ; then
decompress_packet $APP_NAME.tar.*
fi
#Copy the configure file
if [ ! -s .config ]; then
cp patch/$APP_NAME.config $APP_NAME/.config
fi
if [ ! -s $APP_NAME/.config ]; then
echo "+------------------------------------------------------------------+"
echo "| ERROR: Miss default configure file"
echo "+------------------------------------------------------------------+"
exit -2
fi
if [ -z $INST_PATH ] ; then
INST_PATH=$PRJ_PATH/../$ARCH/mnt
fi
cd $APP_NAME
#Modify the cross config in the configure file
line=`sed -n '/CONFIG_CROSS_COMPILER_PREFIX/=' .config`
sed -i -e ${line}s"|.*|CONFIG_CROSS_COMPILER_PREFIX=\"$CROSS\"|" .config
#Modify the install path in the configure file
line=`sed -n '/CONFIG_PREFIX=/=' .config`
sed -i -e ${line}s"|.*|CONFIG_PREFIX=\"$INST_PATH\"|" .config
echo "+------------------------------------------------------------------+"
echo "| Cross compile $APP_NAME now "
echo "| ARCH: \"$ARCH\""
echo "| CROSS: \"$CROSS\""
echo "+------------------------------------------------------------------+"
set -x
make clean
make
set +x
#Check Root filesystem mount or not
mountpoint $INST_PATH
if [ 0 != $? ] ; then
echo "+------------------------------------------------------------------+"
echo "| WARNING: Root Filesystem $INST_PATH not mounted, don't install."
echo "+------------------------------------------------------------------+"
exit
fi
#install busybox
sudo rm -rf $INST_PATH/bin/*
sudo rm -rf $INST_PATH/sbin/*
make install
cd
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ZSH에서 물고기까지ZSH는 수년 동안 내 기본 셸이었습니다. 이제 몇 달 동안 사용하면서 ZSH 구성에 대해 몇 가지 사항을 발견했습니다. 우리는 을 제공하는 시스템과 더 빨리 상호 작용하는 경향이 있습니다. 내.zshrc 구성에는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.