make-linux.sh-20180507
#!/bin/bash
# add variables
i1=0
if [ "$1" ]; then
i1=$1
fi
#echo
#echo -e "\033[30m 黑色字oldboy trainning \033[0m"
#echo -e "\033[31m 红色字oldboy trainning \033[0m"
#echo -e "\033[32m 绿色字oldboy trainning \033[0m"
#echo -e "\033[33m ***字oldboy trainning \033[0m"
#echo -e "\033[34m 蓝色字oldboy trainning \033[0m"
#echo -e "\033[35m 紫色字oldboy trainning \033[0m"
#echo -e "\033[36m 天蓝字oldboy trainning \033[0m"
#echo -e "\033[37m 白色字oldboy trainning \033[0m"
#echo
#echo -e "\033[40;37m 黑底白字 welcome to old1boy\033[0m"
#echo -e "\033[41;37m 红底白字 welcome to old2boy\033[0m"
#echo -e "\033[42;37m 绿底白字 welcome to old3boy\033[0m"
#echo -e "\033[43;37m 黄底白字 welcome to old4boy\033[0m"
#echo -e "\033[44;37m 蓝底白字 welcome to old5boy\033[0m"
#echo -e "\033[45;37m 紫底白字 welcome to old6boy\033[0m"
#echo -e "\033[46;37m 天蓝白字 welcome to old7boy\033[0m"
#echo -e "\033[47;30m 白底黑字 welcome to old8boy\033[0m"
#echo
# add functions
function prompt()
{
read -p "$1 [YES/NO]: " input
}
# script name
function myecho0script()
{
echo
echo '==========================================================='
echo "$1"
echo '==========================================================='
echo
}
# task title
function myecho1task()
{
echo
if [ "$1" ]; then
# 蓝底白字
echo -e "\033[44;37m --> $i1. $1\033[0m"
fi
i1=$[$i1+1]
}
# things title
function myechoh2thing()
{
echo
# 红色字
#echo -e "\033[31m - $1 \033[0m"
# 绿色字
echo -e "\033[32m - $1 \033[0m"
# 红底白字
#echo -e "\033[41;37m- $1\033[0m"
}
# steps title
function myechoh3step()
{
echo
#echo -e "\t[ $1 ]"
echo -e "\t* $1"
}
# reference title
function myecho4ref()
{
#echo
echo -e "$1"
}
# highlight title
function myechoy()
{
# 黄底黑字
echo -e "\033[43;30m$1\033[0m"
#echo -e "\t\t\033[43;30m$1\033[0m"
#echo -e "\t\t$1"
}
# call outside script
function mysource()
{
(source $1 $i1)
i1=$[$i1+1]
}
# new chapter
myecho1task 'make and install Linux System'
myechoy 'http//www.alterawiki.com/wiki/Compiling_u-boot_and_Linux_Kernel_for_Cyclone_V_SoC'
myecho4ref 'reference: https://blog.csdn.net/foolishcsdn/article/details/53558933'
myecho4ref 'https://blog.csdn.net/ffmxnjm/article/details/72933915'
myechoh2thing 'download linux kernel'
myechoh3step 'https://www.kernel.org'
myecho4ref 'kernel 4.4.131'
myecho4ref 'kernel 4.16.7'
myechoh2thing 'install prerequisites'
myechoh3step 'https://www.cnblogs.com/acm-icpcer/p/8029656.html'
sudo apt-get install libncurses5-dev libssl-dev
sudo apt-get install build-essential openssl
sudo apt-get install zlibc minizip
sudo apt-get install libidn11-dev libidn11
myechoh2thing 'make linux kernel'
#tar Jxvf linux-4.4.131.tar.xz
myechoh3step 'make menuconfig'
#mkdir -p linux-4.4.131/build
cd linux-4.4.131/
sudo make mrproper
sudo make clean
sudo make O=build menuconfig
myechoh3step 'make'
# 1. local make and install
prompt 'Be careful, do you want to install on local marchine? '
# way 1: default output dir
#sudo make -j16
#sudo make modules_install //安装内核模块
#sudo make install //安装内核
# way 2: use output dir
sudo make O=build/kernel -j16
#sudo make O=build/kernel modules_install
#sudo make O=build/kernel install
# 2. cross make and install
make O=build/kernel-zimage zImage
#make bzImage
cd -
echo
echo '==========================================================='
echo 'End'