Changeset View
Changeset View
Standalone View
Standalone View
head/release/tools/arm.subr
Show First 20 Lines • Show All 59 Lines • ▼ Show 20 Lines | umount_loop() { | ||||
done | done | ||||
return 0 | return 0 | ||||
} | } | ||||
arm_create_disk() { | arm_create_disk() { | ||||
# Create the target raw file and temporary work directory. | # Create the target raw file and temporary work directory. | ||||
chroot ${CHROOTDIR} gpart create -s ${PART_SCHEME} ${mddev} | chroot ${CHROOTDIR} gpart create -s ${PART_SCHEME} ${mddev} | ||||
if [ "${PART_SCHEME}" == "GPT" ]; then | |||||
chroot ${CHROOTDIR} gpart add -t efi -l efi -a 512k -s ${FAT_SIZE} ${mddev} | |||||
chroot ${CHROOTDIR} newfs_msdos -L efi -F ${FAT_TYPE} /dev/${mddev}p1 | |||||
chroot ${CHROOTDIR} gpart add -t freebsd-ufs -l rootfs -a 64k ${mddev} | |||||
chroot ${CHROOTDIR} newfs -U -L rootfs /dev/${mddev}p2 | |||||
fi | |||||
if [ "${PART_SCHEME}" == "MBR" ]; then | |||||
chroot ${CHROOTDIR} gpart add -t '!12' -a 512k -s ${FAT_SIZE} ${mddev} | chroot ${CHROOTDIR} gpart add -t '!12' -a 512k -s ${FAT_SIZE} ${mddev} | ||||
chroot ${CHROOTDIR} gpart set -a active -i 1 ${mddev} | chroot ${CHROOTDIR} gpart set -a active -i 1 ${mddev} | ||||
chroot ${CHROOTDIR} newfs_msdos -L msdosboot -F ${FAT_TYPE} /dev/${mddev}s1 | chroot ${CHROOTDIR} newfs_msdos -L msdosboot -F ${FAT_TYPE} /dev/${mddev}s1 | ||||
chroot ${CHROOTDIR} gpart add -t freebsd ${mddev} | chroot ${CHROOTDIR} gpart add -t freebsd ${mddev} | ||||
chroot ${CHROOTDIR} gpart create -s bsd ${mddev}s2 | chroot ${CHROOTDIR} gpart create -s bsd ${mddev}s2 | ||||
chroot ${CHROOTDIR} gpart add -t freebsd-ufs -a 64k /dev/${mddev}s2 | chroot ${CHROOTDIR} gpart add -t freebsd-ufs -a 64k /dev/${mddev}s2 | ||||
chroot ${CHROOTDIR} newfs -U -L rootfs /dev/${mddev}s2a | chroot ${CHROOTDIR} newfs -U -L rootfs /dev/${mddev}s2a | ||||
fi | |||||
return 0 | return 0 | ||||
} | } | ||||
arm_create_user() { | arm_create_user() { | ||||
# Create a default user account 'freebsd' with the password 'freebsd', | # Create a default user account 'freebsd' with the password 'freebsd', | ||||
# and set the default password for the 'root' user to 'root'. | # and set the default password for the 'root' user to 'root'. | ||||
chroot ${CHROOTDIR} /usr/sbin/pw -R ${DESTDIR} \ | chroot ${CHROOTDIR} /usr/sbin/pw -R ${DESTDIR} \ | ||||
▲ Show 20 Lines • Show All 73 Lines • ▼ Show 20 Lines | echo '# Disable the beastie menu and color' \ | ||||
>> ${CHROOTDIR}/${DESTDIR}/boot/loader.conf | >> ${CHROOTDIR}/${DESTDIR}/boot/loader.conf | ||||
echo 'beastie_disable="YES"' \ | echo 'beastie_disable="YES"' \ | ||||
>> ${CHROOTDIR}/${DESTDIR}/boot/loader.conf | >> ${CHROOTDIR}/${DESTDIR}/boot/loader.conf | ||||
echo 'loader_color="NO"' \ | echo 'loader_color="NO"' \ | ||||
>> ${CHROOTDIR}/${DESTDIR}/boot/loader.conf | >> ${CHROOTDIR}/${DESTDIR}/boot/loader.conf | ||||
} | } | ||||
arm_install_base() { | arm_install_base() { | ||||
if [ "${PART_SCHEME}" == "GPT" ]; then | |||||
chroot ${CHROOTDIR} mount /dev/${mddev}p2 ${DESTDIR} | |||||
fi | |||||
if [ "${PART_SCHEME}" == "MBR" ]; then | |||||
chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${DESTDIR} | chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${DESTDIR} | ||||
fi | |||||
eval chroot ${CHROOTDIR} make -C ${WORLDDIR} \ | eval chroot ${CHROOTDIR} make -C ${WORLDDIR} \ | ||||
TARGET=${EMBEDDED_TARGET} \ | TARGET=${EMBEDDED_TARGET} \ | ||||
TARGET_ARCH=${EMBEDDED_TARGET_ARCH} \ | TARGET_ARCH=${EMBEDDED_TARGET_ARCH} \ | ||||
DESTDIR=${DESTDIR} KERNCONF=${KERNEL} \ | DESTDIR=${DESTDIR} KERNCONF=${KERNEL} \ | ||||
${CONF_FILES} installworld installkernel distribution | ${CONF_FILES} installworld installkernel distribution | ||||
chroot ${CHROOTDIR} mkdir -p ${DESTDIR}/boot/msdos | chroot ${CHROOTDIR} mkdir -p ${DESTDIR}/boot/msdos | ||||
arm_create_user | arm_create_user | ||||
arm_setup_usb_otg | arm_setup_usb_otg | ||||
arm64_setup_multicons | arm64_setup_multicons | ||||
arm_setup_fdt_overlays | arm_setup_fdt_overlays | ||||
arm_setup_minimal_loader | arm_setup_minimal_loader | ||||
arm_do_quirk | arm_do_quirk | ||||
echo '# Custom /etc/fstab for FreeBSD embedded images' \ | echo '# Custom /etc/fstab for FreeBSD embedded images' \ | ||||
> ${CHROOTDIR}/${DESTDIR}/etc/fstab | > ${CHROOTDIR}/${DESTDIR}/etc/fstab | ||||
if [ "${PART_SCHEME}" == "GPT" ]; then | |||||
echo "/dev/ufs/rootfs / ufs rw 1 1" \ | echo "/dev/ufs/rootfs / ufs rw 1 1" \ | ||||
>> ${CHROOTDIR}/${DESTDIR}/etc/fstab | >> ${CHROOTDIR}/${DESTDIR}/etc/fstab | ||||
echo "/dev/msdosfs/efi /boot/efi msdosfs rw,noatime 0 0" \ | |||||
>> ${CHROOTDIR}/${DESTDIR}/etc/fstab | |||||
fi | |||||
if [ "${PART_SCHEME}" == "MBR" ]; then | |||||
echo "/dev/ufs/rootfs / ufs rw 1 1" \ | |||||
>> ${CHROOTDIR}/${DESTDIR}/etc/fstab | |||||
echo "/dev/msdosfs/MSDOSBOOT /boot/msdos msdosfs rw,noatime 0 0" \ | echo "/dev/msdosfs/MSDOSBOOT /boot/msdos msdosfs rw,noatime 0 0" \ | ||||
>> ${CHROOTDIR}/${DESTDIR}/etc/fstab | >> ${CHROOTDIR}/${DESTDIR}/etc/fstab | ||||
fi | |||||
echo "tmpfs /tmp tmpfs rw,mode=1777,size=50m 0 0" \ | echo "tmpfs /tmp tmpfs rw,mode=1777,size=50m 0 0" \ | ||||
>> ${CHROOTDIR}/${DESTDIR}/etc/fstab | >> ${CHROOTDIR}/${DESTDIR}/etc/fstab | ||||
local hostname | local hostname | ||||
hostname="$(echo ${KERNEL} | tr '[:upper:]' '[:lower:]')" | hostname="$(echo ${KERNEL} | tr '[:upper:]' '[:lower:]')" | ||||
echo "hostname=\"${hostname}\"" > ${CHROOTDIR}/${DESTDIR}/etc/rc.conf | echo "hostname=\"${hostname}\"" > ${CHROOTDIR}/${DESTDIR}/etc/rc.conf | ||||
echo 'ifconfig_DEFAULT="DHCP"' >> ${CHROOTDIR}/${DESTDIR}/etc/rc.conf | echo 'ifconfig_DEFAULT="DHCP"' >> ${CHROOTDIR}/${DESTDIR}/etc/rc.conf | ||||
echo 'sshd_enable="YES"' >> ${CHROOTDIR}/${DESTDIR}/etc/rc.conf | echo 'sshd_enable="YES"' >> ${CHROOTDIR}/${DESTDIR}/etc/rc.conf | ||||
echo 'sendmail_enable="NONE"' >> ${CHROOTDIR}/${DESTDIR}/etc/rc.conf | echo 'sendmail_enable="NONE"' >> ${CHROOTDIR}/${DESTDIR}/etc/rc.conf | ||||
echo 'sendmail_submit_enable="NO"' >> ${CHROOTDIR}/${DESTDIR}/etc/rc.conf | echo 'sendmail_submit_enable="NO"' >> ${CHROOTDIR}/${DESTDIR}/etc/rc.conf | ||||
echo 'sendmail_outbound_enable="NO"' >> ${CHROOTDIR}/${DESTDIR}/etc/rc.conf | echo 'sendmail_outbound_enable="NO"' >> ${CHROOTDIR}/${DESTDIR}/etc/rc.conf | ||||
echo 'sendmail_msp_queue_enable="NO"' >> ${CHROOTDIR}/${DESTDIR}/etc/rc.conf | echo 'sendmail_msp_queue_enable="NO"' >> ${CHROOTDIR}/${DESTDIR}/etc/rc.conf | ||||
echo 'growfs_enable="YES"' >> ${CHROOTDIR}/${DESTDIR}/etc/rc.conf | echo 'growfs_enable="YES"' >> ${CHROOTDIR}/${DESTDIR}/etc/rc.conf | ||||
sync | sync | ||||
umount_loop ${CHROOTDIR}/${DESTDIR} | umount_loop ${CHROOTDIR}/${DESTDIR} | ||||
return 0 | return 0 | ||||
} | } | ||||
arm_install_boot() { | arm_install_boot() { | ||||
FATMOUNT="${DESTDIR%${KERNEL}}/fat" | FATMOUNT="${DESTDIR%${KERNEL}}/fat" | ||||
UFSMOUNT="${DESTDIR%${KERNEL}}/ufs" | UFSMOUNT="${DESTDIR%${KERNEL}}/ufs" | ||||
chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}" | chroot ${CHROOTDIR} mkdir -p "${FATMOUNT}" "${UFSMOUNT}" | ||||
chroot ${CHROOTDIR} mount_msdosfs /dev/${mddev}s1 ${FATMOUNT} | if [ "${PART_SCHEME}" == "GPT" ]; then | ||||
chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT} | dospart="/dev/${mddev}p1" | ||||
ufspart="/dev/${mddev}p2" | |||||
fi | |||||
if [ "${PART_SCHEME}" == "MBR" ]; then | |||||
dospart="/dev/${mddev}s1" | |||||
ufspart="/dev/${mddev}s2a" | |||||
fi | |||||
chroot ${CHROOTDIR} mount_msdosfs ${dospart} ${FATMOUNT} | |||||
chroot ${CHROOTDIR} mount ${ufspart} ${UFSMOUNT} | |||||
if [ "${EMBEDDED_TARGET}" == "arm" ]; then | if [ "${EMBEDDED_TARGET}" == "arm" ]; then | ||||
chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \ | chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \ | ||||
${FATMOUNT}/ubldr.bin | ${FATMOUNT}/ubldr.bin | ||||
fi | fi | ||||
BOOTFILES="$(chroot ${CHROOTDIR} \ | BOOTFILES="$(chroot ${CHROOTDIR} \ | ||||
env TARGET=${EMBEDDED_TARGET} TARGET_ARCH=${EMBEDDED_TARGET_ARCH} \ | env TARGET=${EMBEDDED_TARGET} TARGET_ARCH=${EMBEDDED_TARGET_ARCH} \ | ||||
Show All 27 Lines |