diff --git a/tools/tools/nanobsd/defaults.sh b/tools/tools/nanobsd/defaults.sh --- a/tools/tools/nanobsd/defaults.sh +++ b/tools/tools/nanobsd/defaults.sh @@ -102,6 +102,7 @@ # Newfs parameters to use NANO_NEWFS="-b 4096 -f 512 -i 8192 -U" +NANO_MAKEFS="-o bsize=4096,density=8192,fsize=512,softupdates=1,version=2" # The drive name of the media at runtime NANO_DRIVE=ada0 @@ -684,6 +685,18 @@ mount -o async ${dev} ${mnt} ) +nano_makefs ( ) { + local dir image metalog options size + options=$1 + metalog=$2 + size=$3 + image=$4 + dir=$5 + + makefs ${options} -F "${metalog}" -N "${NANO_WORLDDIR}/etc" \ + -s "${size}b" -T "${NANO_TIMESTAMP}" -t ffs "${image}" "${dir}" +} + # Convenient spot to work around any umount issues that your build environment # hits by overriding this method. nano_umount ( ) ( @@ -998,6 +1011,7 @@ export_var NANO_IMGNAME export_var NANO_IMG1NAME export_var NANO_MAKE + export_var NANO_MAKEFS export_var NANO_MAKE_CONF_BUILD export_var NANO_MAKE_CONF_INSTALL export_var NANO_MEDIASIZE diff --git a/tools/tools/nanobsd/legacy.sh b/tools/tools/nanobsd/legacy.sh --- a/tools/tools/nanobsd/legacy.sh +++ b/tools/tools/nanobsd/legacy.sh @@ -93,6 +93,17 @@ ' > ${NANO_LOG}/_.partitioning ) +_xxx_adjust_code_size() +{ + # XXX adjust the CODE_SIZE value by rounding it up to + # a bsize of 32768 (DFL_BLKSIZE). + # Otherwise makefs -s will fail because of the guard + # introduced in 5ad283b3c60d. + codesize=$1 + bsize=32768 + echo $(( ((codesize + (bsize - 1)) / bsize) * bsize )) +} + create_code_slice ( ) ( pprint 2 "build code slice" pprint 3 "log: ${NANO_OBJ}/_.cs"