📄 arm-linux.sh
字号:
# Before running this shell, there should be 10 files in the directory /home/download/, they are:# binutils-2.10.1.tar.gz, glibc-2.2.3.tar.gz, glibc-linuxthreads-2.2.3.tar.gz, # linux-2.4.21.tar.gz, gcc-2.95.3.tar.gz# patch-2.4.21-rmk2.gz# gcc-2.95.3-2.patch, gcc-2.95.3-no_fixinc-1.patch, gcc-2.95.3-returntype_fix-1.patch# glibc-manual-stdin.texi-1.127.patch#get preparedexport PRJROOT=/home/leon/arm-linuxexport TARGET=arm-linuxexport PREFIX=$PRJROOT/toolsexport TARGET_PREFIX=$PREFIX/$TARGETexport PATH=$PREFIX/bin:$PATHmkdir -p $PRJROOTcd $PRJROOTmkdir build-tools kernel tools cd $PRJROOT/build-toolsmkdir build-binutils build-boot-gcc build-gcc build-glibc gcc-patch glibc-patchcd /home/downloadcp binutils-2.10.1.tar.gz glibc-2.2.3.tar.gz gcc-2.95.3.tar.gz glibc-linuxthreads-2.2.3.tar.gz $PRJROOT/build-tools/cp gcc*.patch $PRJROOT/build-tools/gcc-patchcp glibc-manual-stdin.texi-1.127.patch $PRJROOT/build-tools/glibc-patchcp linux-2.4.21.tar.gz patch-2.4.21-rmk2.gz $PRJROOT/kernel/#build kernel headercd $PRJROOT/kerneltar -zxvf linux-2.4.21.tar.gzgzip -d patch-2.4.21-rmk2.gzcd linux-2.4.21patch -p1 < ../patch-2.4.21-rmk2make ARCH=arm CROSS_COMPILE=arm-linux- menuconfigmake depcd includeln -s asm-arm asmcd asmln -s arch-epxa archln -s proc-armv procmkdir -p $TARGET_PREFIX/includeln -s $PRJROOT/kernel/linux-2.4.21/include/linux $TARGET_PREFIX/include/linuxln -s $PRJROOT/kernel/linux-2.4.21/include/asm-arm $TARGET_PREFIX/include/asm#build binutilscd $PRJROOT/build-toolstar -zxvf binutils-2.10.1.tar.gzcd build-binutils../binutils-2.10.1/configure --target=$TARGET --prefix=$PREFIXmake make install#build bootstrap gcccd $PRJROOT/build-toolstar -zxvf gcc-2.95.3.tar.gzcd gcc-2.95.3patch -p1 < ../gcc-patch/gcc-2.95.3-2.patchpatch -p1 < ../gcc-patch/gcc-2.95.3-no_fixinc-1.patchpatch -p1 < ../gcc-patch/gcc-2.95.3-returntype_fix-1.patchecho timestamp > gcc/cstamp-h.incd $PRJROOT/build-tools/gcc-2.95.3/gcc/config/arm/sed -e 's/-fPIC/-fPIC -Dinhibit_libc -D__gthr_posix_h/g' t-linux > t-linux.tmprm -f t-linuxmv t-linux.tmp t-linuxcd $PRJROOT/build-tools/build-boot-gcc/../gcc-2.95.3/configure --target=$TARGET --prefix=$PREFIX --without-headers --enable-languages=c --disable-threadsmake all-gccmake install-gcc#build glibccd $PRJROOT/build-toolstar -zxvf glibc-2.2.3.tar.gzcd glibc-2.2.3patch -p1 < ../glibc-patch/glibc-manual-stdin.texi-1.127.patchcd ..tar -zxvf glibc-linuxthreads-2.2.3.tar.gz --directory=glibc-2.2.3cd build-glibcCC=arm-linux-gcc ../glibc-2.2.3/configure --host=$TARGET --prefix="/usr" --enable-add-ons --with-headers=$TARGET_PREFIX/includemakemake install_root=$TARGET_PREFIX prefix="" installcd $TARGET_PREFIX/libsed -e 's/\/lib\/libc.so.6 \/lib\/libc_nonshared.a/libc.so.6 libc_nonshared.a/g' libc.so > libc.so.tmp rm -f libc.somv libc.so.tmp libc.so#build full gcccd $PRJROOT/build-tools/build-gcc../gcc-2.95.3/configure --target=$TARGET --prefix=$PREFIX --enable-languages=c,c++make allmake install
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -