gitlab-ci
This commit is contained in:
1 parent
651f29c7fb
commit
90cd574266
1 file changed
+122
-122
+122
-122
@@ -63,111 +63,111 @@ download_sources() {
|
|||||||
|
|
||||||
#--------------- Building Linux Kernel ---------------------
|
#--------------- Building Linux Kernel ---------------------
|
||||||
kernel() {
|
kernel() {
|
||||||
printf "$UGREEN** Building Linux Kernel\n$RESET"
|
printf "$UGREEN** Building Linux Kernel\n$RESET" &&
|
||||||
rm -r $build/kernel &>> $fulllogfile
|
rm -r $build/kernel &>> $fulllogfile &&
|
||||||
mkdir -p $build/kernel &>> $fulllogfile
|
mkdir -p $build/kernel &>> $fulllogfile &&
|
||||||
cd $build/kernel
|
cd $build/kernel &&
|
||||||
printf "$UGREEN** Extracting Linux Kernel\n$RESET"
|
printf "$UGREEN** Extracting Linux Kernel\n$RESET" &&
|
||||||
tar -xvf $root/downloads/linux-6.7.4.tar.xz &>> $fulllogfile
|
tar -xvf $root/downloads/linux-6.7.4.tar.xz &>> $fulllogfile &&
|
||||||
check $? "Extract Linux Kernel"
|
check $? "Extract Linux Kernel" &&
|
||||||
cd linux-6.7.4
|
cd linux-6.7.4 &&
|
||||||
printf "$UGREEN** Configuring Linux Kernel\n$RESET"
|
printf "$UGREEN** Configuring Linux Kernel\n$RESET" &&
|
||||||
make mrproper &>> $fulllogfile
|
make mrproper &>> $fulllogfile &&
|
||||||
cp -v $root/kernel/config-6.7.4 .config
|
cp -v $root/kernel/config-6.7.4 .config &&
|
||||||
make oldconfig
|
make oldconfig &&
|
||||||
check $? "Configure Linux Kernel"
|
check $? "Configure Linux Kernel" &&
|
||||||
printf "$UGREEN** Building Linux Kernel\n$RESET"
|
printf "$UGREEN** Building Linux Kernel\n$RESET" &&
|
||||||
make $makeflags &>> $fulllogfile
|
make $makeflags &>> $fulllogfile &&
|
||||||
check $? "Build Linux Kernel"
|
check $? "Build Linux Kernel" &&
|
||||||
ls -lh arch/x86/boot/bzImage
|
ls -lh arch/x86/boot/bzImage
|
||||||
} # kernel
|
} # kernel
|
||||||
#-----------------------------------------------------------
|
#-----------------------------------------------------------
|
||||||
|
|
||||||
#----------- Build and Install kernel modules --------------
|
#----------- Build and Install kernel modules --------------
|
||||||
kernel_modules() {
|
kernel_modules() {
|
||||||
printf "$UGREEN** Building Linux Kernel modules\n$RESET"
|
printf "$UGREEN** Building Linux Kernel modules\n$RESET" &&
|
||||||
cd $build/kernel/linux-6.7.4
|
cd $build/kernel/linux-6.7.4 &&
|
||||||
make modules &>> fulllogfile
|
make modules &>> fulllogfile &&
|
||||||
check $? "Build Linux Kernel modules"
|
check $? "Build Linux Kernel modules" &&
|
||||||
printf "$UGREEN** Installing Linux Kernel modules into rootfs path\n$RESET"
|
printf "$UGREEN** Installing Linux Kernel modules into rootfs path\n$RESET" &&
|
||||||
mkdir -pv $rootfspath/usr/lib &>> fulllogfile
|
mkdir -pv $rootfspath/usr/lib &>> fulllogfile &&
|
||||||
cd $rootfspath
|
cd $rootfspath &&
|
||||||
ln -sv usr/lib lib &>> $fulllogfile
|
ln -sv usr/lib lib &>> $fulllogfile &&
|
||||||
cd $root/build/kernel/linux-6.7.4
|
cd $root/build/kernel/linux-6.7.4 &&
|
||||||
make INSTALL_MOD_PATH=$rootfspath modules_install &>> $fulllogfile
|
make INSTALL_MOD_PATH=$rootfspath modules_install &>> $fulllogfile &&
|
||||||
check $? "Install Linux Kernel modules"
|
check $? "Install Linux Kernel modules"
|
||||||
} # kernel_modules
|
} # kernel_modules
|
||||||
#-----------------------------------------------------------
|
#-----------------------------------------------------------
|
||||||
|
|
||||||
#------------ glibc ----------------------------------------
|
#------------ glibc ----------------------------------------
|
||||||
glibc() {
|
glibc() {
|
||||||
printf "$UGREEN** Building glibc\n$RESET"
|
printf "$UGREEN** Building glibc\n$RESET" &&
|
||||||
mkdir -p $build/glibc &>> $fulllogfile
|
mkdir -p $build/glibc &>> $fulllogfile &&
|
||||||
cd $build/glibc
|
cd $build/glibc &&
|
||||||
tar -xvf $root/downloads/glibc-2.39.tar.xz &>> $fulllogfile
|
tar -xvf $root/downloads/glibc-2.39.tar.xz &>> $fulllogfile &&
|
||||||
check $? "Extract glibc"
|
check $? "Extract glibc" &&
|
||||||
cd glibc-2.39
|
cd glibc-2.39 &&
|
||||||
mkdir build
|
mkdir build &&
|
||||||
cd build
|
cd build &&
|
||||||
echo "rootsbindir=/usr/bin" > configparms
|
echo "rootsbindir=/usr/bin" > configparms &&
|
||||||
../configure \
|
../configure \
|
||||||
--prefix=/usr \
|
--prefix=/usr \
|
||||||
--disable-werror \
|
--disable-werror \
|
||||||
--enable-kernel=4.19 \
|
--enable-kernel=4.19 \
|
||||||
--enable-stack-protector=strong \
|
--enable-stack-protector=strong \
|
||||||
--disable-nscd \
|
--disable-nscd \
|
||||||
libc_cv_slibdir=/usr/lib &>> $fulllogfile
|
libc_cv_slibdir=/usr/lib &>> $fulllogfile &&
|
||||||
check $? "Configure glibc"
|
check $? "Configure glibc" &&
|
||||||
make $makeflags &>> $fulllogfile
|
make $makeflags &>> $fulllogfile &&
|
||||||
check $? "Build glibc"
|
check $? "Build glibc" &&
|
||||||
make DESTDIR=$rootfspath install &>> $fulllogfile
|
make DESTDIR=$rootfspath install &>> $fulllogfile &&
|
||||||
check $? "Install glibc to rootfs"
|
check $? "Install glibc to rootfs" &&
|
||||||
cd $rootfspath
|
cd $rootfspath &&
|
||||||
find -name \*.a -delete &>> $fulllogfile
|
find -name \*.a -delete &>> $fulllogfile &&
|
||||||
strip --strip-unneeded $rootfspath/usr/lib/* $rootfspath/usr/bin/* &>> $fulllogfile
|
strip --strip-unneeded $rootfspath/usr/lib/* $rootfspath/usr/bin/* &>> $fulllogfile &&
|
||||||
chroot $rootfspath /bin/sh -c "mkdir -p /usr/lib/locale;localedef -i C -f UTF-8 C.UTF-8;localedef -i en_US -f UTF-8 en_US.UTF-8;localedef -i ru_RU -f UTF-8 ru_RU-UTF-8;"
|
chroot $rootfspath /bin/sh -c "mkdir -p /usr/lib/locale;localedef -i C -f UTF-8 C.UTF-8;localedef -i en_US -f UTF-8 en_US.UTF-8;localedef -i ru_RU -f UTF-8 ru_RU-UTF-8;" &&
|
||||||
cd $root
|
cd $root &&
|
||||||
check $? "Build and install glibc"
|
check $? "Build and install glibc"
|
||||||
}
|
}
|
||||||
#-----------------------------------------------------------
|
#-----------------------------------------------------------
|
||||||
|
|
||||||
#------------------ Building initramfs.img ------------------------
|
#------------------ Building initramfs.img ------------------------
|
||||||
initramfs() {
|
initramfs() {
|
||||||
printf "$UGREEN** Building initramfs\n$RESET"
|
printf "$UGREEN** Building initramfs\n$RESET" &&
|
||||||
|
|
||||||
#--------- Creating directories and files -------------------
|
#--------- Creating directories and files -------------------
|
||||||
rm -r $initramfspath &>> $fulllogfile
|
rm -r $initramfspath &>> $fulllogfile &&
|
||||||
mkdir -p $initramfspath;
|
mkdir -p $initramfspath &&
|
||||||
cd $initramfspath;
|
cd $initramfspath &&
|
||||||
mkdir -p $(cat $initramfsfile);
|
mkdir -p $(cat $initramfsfile) &&
|
||||||
cp $root/initramfs/init.in $initramfspath/init
|
cp $root/initramfs/init.in $initramfspath/init &&
|
||||||
chmod 755 $initramfspath/init
|
chmod 755 $initramfspath/init &&
|
||||||
#------------------------------------------------------------
|
#------------------------------------------------------------
|
||||||
|
|
||||||
#------------ Building initramfs busybox and copy to initramfs directory --------------------
|
#------------ Building initramfs busybox and copy to initramfs directory --------------------
|
||||||
rm -r $build/busybox &>> $fulllogfile
|
rm -r $build/busybox &>> $fulllogfile &&
|
||||||
mkdir -p $build/busybox
|
mkdir -p $build/busybox &&
|
||||||
cd $build/busybox
|
cd $build/busybox &&
|
||||||
tar -xjf $root/downloads/busybox-1.36.1.tar.bz2
|
tar -xjf $root/downloads/busybox-1.36.1.tar.bz2 &&
|
||||||
check $? "Extract busybox"
|
check $? "Extract busybox" &&
|
||||||
cd busybox-1.36.1
|
cd busybox-1.36.1 &&
|
||||||
cp $root/busybox/busybox-initramfs-config .config
|
cp $root/busybox/busybox-initramfs-config .config &&
|
||||||
export PATH=$PATH:/opt/toolchains/x86_64-buildroot-linux-uclibc-gcc/bin
|
export PATH=$PATH:/opt/toolchains/x86_64-buildroot-linux-uclibc-gcc/bin &&
|
||||||
printf "$UGREEN** Configuring busybox\n$RESET"
|
printf "$UGREEN** Configuring busybox\n$RESET" &&
|
||||||
make CROSS_COMPILE=x86_64-buildroot-linux-uclibc- oldconfig &> $fulllogfile
|
make CROSS_COMPILE=x86_64-buildroot-linux-uclibc- oldconfig &> $fulllogfile &&
|
||||||
check $? "Configure busybox all logs in .log"
|
check $? "Configure busybox all logs in .log" &&
|
||||||
printf "$UGREEN** Building busybox\n$RESET"
|
printf "$UGREEN** Building busybox\n$RESET" &&
|
||||||
make CROSS_COMPILE=x86_64-buildroot-linux-uclibc- $makeflags &> $fulllogfile
|
make CROSS_COMPILE=x86_64-buildroot-linux-uclibc- $makeflags &> $fulllogfile &&
|
||||||
check $? "Build busybox all logs in .log"
|
check $? "Build busybox all logs in .log" &&
|
||||||
cp busybox $initramfspath/bin
|
cp busybox $initramfspath/bin &&
|
||||||
cd $initramfspath/bin
|
cd $initramfspath/bin &&
|
||||||
for i in $(./busybox --list); do ln -s busybox $i; done
|
for i in $(./busybox --list); do ln -s busybox $i; done &&
|
||||||
cd ..
|
cd .. &&
|
||||||
#--------------------------------------------------------------------------------------------
|
#--------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#--------------------- Creating initramfs.img image ------------
|
#--------------------- Creating initramfs.img image ------------
|
||||||
find . | cpio -H newc -o | gzip > ../initramfs.img
|
find . | cpio -H newc -o | gzip > ../initramfs.img &&
|
||||||
check $? "Build initramfs.img image"
|
check $? "Build initramfs.img image" &&
|
||||||
cd $root
|
cd $root
|
||||||
#---------------------------------------------------------------
|
#---------------------------------------------------------------
|
||||||
|
|
||||||
@@ -176,48 +176,48 @@ initramfs() {
|
|||||||
|
|
||||||
#----------- Building rootfs ----------------------
|
#----------- Building rootfs ----------------------
|
||||||
rootfs() {
|
rootfs() {
|
||||||
printf "$UGREEN** Building rootfs\n$RESET"
|
printf "$UGREEN** Building rootfs\n$RESET" &&
|
||||||
rm -rv $rootfspath &>> $fulllogfile
|
rm -rv $rootfspath &>> $fulllogfile &&
|
||||||
mkdir -pv $rootfspath &>> $fulllogfile
|
mkdir -pv $rootfspath &>> $fulllogfile &&
|
||||||
cd $rootfspath
|
cd $rootfspath &&
|
||||||
mkdir -pv $(cat $rootfsfile) &>> $fulllogfile
|
mkdir -pv $(cat $rootfsfile) &>> $fulllogfile &&
|
||||||
ln -sv usr/lib lib &>> $fulllogfile
|
ln -sv usr/lib lib &>> $fulllogfile &&
|
||||||
ln -sv usr/lib lib64 &>> $fulllogfile
|
ln -sv usr/lib lib64 &>> $fulllogfile &&
|
||||||
ln -sv usr/bin bin &>> $fulllogfile
|
ln -sv usr/bin bin &>> $fulllogfile &&
|
||||||
ln -sv usr/bin sbin &>> $fulllogfile
|
ln -sv usr/bin sbin &>> $fulllogfile &&
|
||||||
cd usr
|
cd usr &&
|
||||||
ln -sv bin sbin &>> $fulllogfile
|
ln -sv bin sbin &>> $fulllogfile &&
|
||||||
ln -sv lib lib64 &>> $fulllogfile
|
ln -sv lib lib64 &>> $fulllogfile &&
|
||||||
cp -rv $root/rootfs/etc/* $rootfspath/etc/ &>> $fulllogfile
|
cp -rv $root/rootfs/etc/* $rootfspath/etc/ &>> $fulllogfile &&
|
||||||
cp -rv $root/rootfs/usr/* $rootfspath/usr/ &>> $fulllogfile
|
cp -rv $root/rootfs/usr/* $rootfspath/usr/ &>> $fulllogfile &&
|
||||||
cp -rv $root/rootfs/boot/* $rootfspath/boot/ &>> $fulllogfile
|
cp -rv $root/rootfs/boot/* $rootfspath/boot/ &>> $fulllogfile &&
|
||||||
|
|
||||||
rm -rv $build/busybox &>> $fulllogfile
|
rm -rv $build/busybox &>> $fulllogfile &&
|
||||||
mkdir -v $build/busybox &>> $fulllogfile
|
mkdir -v $build/busybox &>> $fulllogfile &&
|
||||||
cd $build/busybox
|
cd $build/busybox &&
|
||||||
tar -xvjf $root/downloads/busybox-1.36.1.tar.bz2 &>> $fulllogfile
|
tar -xvjf $root/downloads/busybox-1.36.1.tar.bz2 &>> $fulllogfile &&
|
||||||
cd busybox-1.36.1
|
cd busybox-1.36.1 &&
|
||||||
cp -v $root/busybox/busybox-rootfs-config .config &>> $fulllogfile
|
cp -v $root/busybox/busybox-rootfs-config .config &>> $fulllogfile &&
|
||||||
printf "$UGREEN** Configuring busybox\n$RESET"
|
printf "$UGREEN** Configuring busybox\n$RESET" &&
|
||||||
make oldconfig &> $fulllogfile
|
make oldconfig &> $fulllogfile &&
|
||||||
check $? "Configure busybox all logs in .log"
|
check $? "Configure busybox all logs in .log" &&
|
||||||
printf "$UGREEN** Building busybox\n$RESET"
|
printf "$UGREEN** Building busybox\n$RESET" &&
|
||||||
make $makeflags &> $fulllogfile
|
make $makeflags &> $fulllogfile &&
|
||||||
check $? "Build busybox all logs in .log"
|
check $? "Build busybox all logs in .log" &&
|
||||||
cp -v busybox $rootfspath/usr/bin &>> $fulllogfile
|
cp -v busybox $rootfspath/usr/bin &>> $fulllogfile &&
|
||||||
cd $rootfspath/usr/bin
|
cd $rootfspath/usr/bin &&
|
||||||
for i in $(./busybox --list); do ln -s busybox $i; done
|
for i in $(./busybox --list); do ln -s busybox $i; done &&
|
||||||
|
|
||||||
glibc
|
glibc &&
|
||||||
kernel
|
kernel &&
|
||||||
cp -v $root/build/kernel/linux-6.7.4/arch/x86/boot/bzImage $rootfspath/boot/vmlinuz-linux
|
cp -v $root/build/kernel/linux-6.7.4/arch/x86/boot/bzImage $rootfspath/boot/vmlinuz-linux &&
|
||||||
kernel_modules
|
kernel_modules &&
|
||||||
initramfs
|
initramfs &&
|
||||||
cp -v $root/build/initramfs.img $rootfspath/boot/
|
cp -v $root/build/initramfs.img $rootfspath/boot/ &&
|
||||||
|
|
||||||
chmod 640 $rootfspath/etc/shadow $rootfspath/etc/inittab
|
chmod 640 $rootfspath/etc/shadow $rootfspath/etc/inittab &&
|
||||||
chmod 755 $rootfspath/etc/init.d/* $rootfspath/usr/share/udhcpc/default.script
|
chmod 755 $rootfspath/etc/init.d/* $rootfspath/usr/share/udhcpc/default.script &&
|
||||||
chmod 644 $rootfspath/etc/{passwd,group,hostname,hosts,fstab,shells,issue} $rootfspath/etc/network/interfaces
|
chmod 644 $rootfspath/etc/{passwd,group,hostname,hosts,fstab,shells,issue} $rootfspath/etc/network/interfaces &&
|
||||||
|
|
||||||
check $? "Build rootfs"
|
check $? "Build rootfs"
|
||||||
} # rootfs
|
} # rootfs
|
||||||
@@ -225,13 +225,13 @@ rootfs() {
|
|||||||
|
|
||||||
#---------- Cleaning build and out directory ---------
|
#---------- Cleaning build and out directory ---------
|
||||||
clean() {
|
clean() {
|
||||||
printf "$UGREEN** Cleaning build and out directories\n$RESET"
|
printf "$UGREEN** Cleaning build and out directories\n$RESET" &&
|
||||||
rm -rv $root/.log/* &>> $fulllogfile
|
rm -rv $root/.log/* &>> $fulllogfile &&
|
||||||
mkdir $root/.log
|
mkdir -p $root/.log &&
|
||||||
rm -rv $out &>> $fulllogfile
|
rm -rv $out &>> $fulllogfile &&
|
||||||
mkdir $out
|
mkdir -p $out &&
|
||||||
rm -rv $build &>> $fulllogfile
|
rm -rv $build &>> $fulllogfile &&
|
||||||
mkdir $build
|
mkdir -p $build &&
|
||||||
printf "$UGREEN** SUCCESS: Cleaning build and out directories\n$RESET"
|
printf "$UGREEN** SUCCESS: Cleaning build and out directories\n$RESET"
|
||||||
} # clean
|
} # clean
|
||||||
#-----------------------------------------------------
|
#-----------------------------------------------------
|
||||||
@@ -247,10 +247,10 @@ if [ "$1" = "clean" ]; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
clean
|
clean &&
|
||||||
download_sources
|
download_sources &&
|
||||||
# kernel
|
# kernel
|
||||||
# kernel_modules
|
# kernel_modules
|
||||||
# initramfs
|
# initramfs
|
||||||
rootfs
|
rootfs &&
|
||||||
grub_rescue
|
grub_rescue
|
||||||
Reference in new issue
Block a user