Files
BPI-CM9-Linux/amlbian/patches/ramfs/hook
T

89 lines
2.0 KiB
Bash
Raw Normal View History

2026-08-13 11:28:40 +08:00
#!/bin/sh
set -e
PREREQ=""
prereqs()
{
echo "$PREREQ"
}
case "$1" in
prereqs)
prereqs
exit 0
;;
esac
. /usr/share/initramfs-tools/hook-functions
amlramfs=/usr/local/amlramfs
modules_dir=/lib/modules/
echo "Installing custom ramfs... ${version}"
#
# 1. 替换默认 init
#
mkdir -p "${DESTDIR}"
cp "${DESTDIR}/init" "/usr/local/init_back"
mv "${DESTDIR}/init" "${DESTDIR}/init2"
cp -a "${amlramfs}/init" \
"${DESTDIR}/init"
chmod 755 "${DESTDIR}/init"
#
# 3. 拷贝模块
#
2026-11-11 08:50:43 +08:00
ramdisk_source="/lib/modules/${version}/modules/ramdisk"
ramdisk_order="${ramdisk_source}/ramdisk_modules.order"
ramdisk_installer="${ramdisk_source}/ramdisk_install.sh"
ramdisk_target="${DESTDIR}/modules/ramdisk"
if [ ! -f "${ramdisk_order}" ]; then
echo "ERROR: ramdisk module list missing: ${ramdisk_order}" >&2
exit 1
2026-08-13 11:28:40 +08:00
fi
2026-11-11 08:50:43 +08:00
if [ ! -f "${ramdisk_installer}" ]; then
echo "ERROR: ramdisk installer missing: ${ramdisk_installer}" >&2
exit 1
fi
echo "Installing ramdisk modules ..."
mkdir -p "${ramdisk_target}" || exit 1
cp -a "${ramdisk_order}" "${ramdisk_installer}" "${ramdisk_target}/" || exit 1
while IFS= read -r module; do
[ -n "${module}" ] || continue
module_path="$(find "/lib/modules/${version}/kernel" \
-type f -name "${module}" -print -quit)"
if [ -z "${module_path}" ]; then
echo "ERROR: ramdisk module missing from kernel tree: ${module}" >&2
exit 1
fi
cp -a "${module_path}" "${ramdisk_target}/${module}" || exit 1
done < "${ramdisk_order}"
2026-08-13 11:28:40 +08:00
# 修复 init 脚本依赖的工具
copy_exec /bin/grep # 用于 upstream_emmc_mount()
copy_exec /usr/bin/expr # 用于 read_args()
# 文本处理工具
copy_exec /bin/sed # 可能被其他脚本使用
copy_exec /bin/mawk # 通用文本处理
ln -sf mawk ${DESTDIR}/usr/bin/awk
# 编辑器
copy_exec /usr/bin/vim.tiny # vi 编辑器
copy_exec /bin/nano # 简单的替代编辑器
# 文件查看工具
copy_exec /usr/bin/less # 更好的文件查看
copy_exec /bin/more # 基础文件查看
echo "Custom ramfs installed."