diff --git a/build-image.sh b/build-image.sh index 225143da837ff6bcaf5a3216d7dd92147f905744..66cbe4a6c40678b75c90de14acca256ae6db5b85 100644 --- a/build-image.sh +++ b/build-image.sh @@ -110,8 +110,6 @@ INSTALL_PACKAGES(){ done } -trap 'UMOUNT_ALL' EXIT - prepare(){ if [ ! -d ${tmp_dir} ]; then mkdir -p ${tmp_dir} @@ -172,8 +170,9 @@ prepare(){ mkdir -p ${log_dir} fi LOG "prepare begin..." - # dnf makecache - # dnf install -y dnf-plugins-core tar parted dosfstools + dnf clean all + dnf makecache + # dnf install -y dnf-plugins-core tar parted dosfstools grep bash xz kpartx if [ -d ${rootfs_dir} ]; then rm -rf ${rootfs_dir} @@ -198,7 +197,6 @@ prepare(){ done set +e os_release_name=${OS_NAME}-release - # yumdownloader --downloaddir=${tmp_dir} ${os_release_name} -c ${repo_file} dnf ${repo_info} --disablerepo="*" --downloaddir=${tmp_dir}/ download ${os_release_name} if [ $? != 0 ]; then ERROR "Fail to download ${os_release_name}!" @@ -219,7 +217,6 @@ make_rootfs(){ UMOUNT_ALL rm -rf ${rootfs_dir} fi - mkdir -p ${rootfs_dir} mkdir -p ${rootfs_dir}/var/lib/rpm rpm --root ${rootfs_dir} --initdb rpm -ivh --nodeps --root ${rootfs_dir}/ ${os_release_name} @@ -230,10 +227,7 @@ make_rootfs(){ mkdir -p ${rootfs_dir}/etc/yum.repos.d fi cp ${repo_file} ${rootfs_dir}/etc/yum.repos.d/tmp.repo - # dnf --installroot=${rootfs_dir}/ install dnf --nogpgcheck -y # --repofrompath=tmp,${rootfs_dir}/etc/yum.repos.d/tmp.repo --disablerepo="*" dnf --installroot=${rootfs_dir}/ makecache - # dnf --installroot=${rootfs_dir}/ install -y alsa-utils wpa_supplicant vim net-tools iproute iputils NetworkManager openssh-server passwd hostname ntp bluez pulseaudio-module-bluetooth - # dnf --installroot=${rootfs_dir}/ install -y raspberrypi-kernel raspberrypi-firmware openEuler-repos set +e INSTALL_PACKAGES $CONFIG_RPM_LIST cat ${rootfs_dir}/etc/systemd/timesyncd.conf | grep "^NTP*" @@ -267,6 +261,7 @@ make_rootfs(){ make_img(){ LOG "make ${img_file} begin..." + device="" LOSETUP_D_IMG size=`du -sh --block-size=1MiB ${rootfs_dir} | cut -f 1 | xargs` size=$(($size+1100)) @@ -280,8 +275,6 @@ make_img(){ LOG "after losetup: ${device}" trap 'LOSETUP_D_IMG' EXIT LOG "image ${img_file} created and mounted as ${device}" - # loopX=`kpartx -va ${device} | sed -E 's/.*(loop[0-9])p.*/\1/g' | head -1` - # LOG "after kpartx: ${loopX}" kpartx -va ${device} loopX=${device##*\/} partprobe ${device} @@ -361,18 +354,25 @@ fi OS_NAME=openEuler -workdir=$(cd "$(dirname $workdir)"; pwd)/$(basename $workdir) -rootfs_dir=${workdir}/raspi_output/rootfs -root_mnt=${workdir}/raspi_output/root -boot_mnt=${workdir}/raspi_output/boot -tmp_dir=${workdir}/raspi_output/tmp -log_dir=${workdir}/raspi_output/log -img_dir=${workdir}/raspi_output/img +workdir=$(cd $workdir; pwd) +if [ "x${workdir}" == "x/" ]; then + workdir=/raspi_output +else + workdir=${workdir}/raspi_output +fi + +tmp_dir=${workdir}/tmp +log_dir=${workdir}/log +img_dir=${workdir}/img +rootfs_dir=${workdir}/rootfs +root_mnt=${workdir}/root +boot_mnt=${workdir}/boot euler_dir=${cur_dir}/config CONFIG_RPM_LIST=${euler_dir}/rpmlist builddate=$(date +%Y%m%d) +trap 'UMOUNT_ALL' EXIT UMOUNT_ALL prepare IFS=$'\n'