$(EFI_SOURCE)

 转自:http://biosengineer.blogspot.com/

$(EFI_SOURCE)

一般在.dsc 中都會去描述你的EFI Driver所在位置
而加入$(EFI_SOURCE)跟沒有加入的差別在哪裡?

答案就是:

有加 $(EFI_SOURCE) 就會是絕對位置
沒加 $(EFI_SOURCE) 就會是相對位置

#!/bin/sh # === 第一张图内容 === add_module_pre_hook() { MODULE_PRE_HOOKS="$MODULE_PRE_HOOKS $1" } add_module_post_hook() { MODULE_POST_HOOKS="$MODULE_POST_HOOKS $1" } load_kernel_module() { modprobe $1 } msg() { printf "\e[$1m$2\e[0m" } info() { msg "0;32" "$1\n" # Green } debug() { [ "$DEBUG" = "true" ] && msg "0;37" "DEBUG: $1\n" # White } fatal() { msg "1;31" "\nFATAL: $1\n" # Red while : ; do : ; done } # === 第二张图内容 === taskset -p 0x80$$ # Variables shared among modules ROOTFS_DIR="/rootfs" # where to do the switch root MODULE_PRE_HOOKS="" # functions to call before running each module MODULE_POST_HOOKS="" # functions to call after running each module MODULES_DIR=/init.d # place to look for modules EFI_DIR=/sys/firmware/efi # place to store device firmware information # make mount stop complaining about missing /etc/fstab touch /etc/fstab # initialize /proc, /sys, /run/lock and /var/lock mkdir -p /proc /sys /run/lock /var/lock mount -t proc proc /proc mount -t sysfs sysfs /sys if [ -d $EFI_DIR ]; then mount -t efivarfs none /sys/firmware/efi/efivars fi # populate bootparam environment for p in `cat /proc/cmdline`; do if [ -n "$quoted" ]; then value="$value $p" if [ "`echo $p | sed -e 's/\"$//'`" != "$p" ]; then eval "bootparam_${quoted}=\"${value}\"" unset quoted fi continue fi opt=`echo $p | cut -d'=' -f1` opt=`echo $opt | sed -e 'y/-/_/'` if [ "`echo $p | cut -d'=' -f1`" = "$p" ]; then eval "bootparam_${opt}=true" else value=`echo $p | cut -d'=' -f2-` if [ "`echo $value | sed -e 's/^\"//'`" != "$value" ]; then quoted=${opt} continue fi eval "bootparam_${opt}=\"${value}\"" fi done # === 第三张图内容 === # use /dev with devtmpfs if grep -q devtmpfs /proc/filesystems; then mkdir -p /dev mount -t devtmpfs devtmpfs /dev else if [ ! -d /dev ]; then fatal "ERROR: /dev doesn't exist and kernel doesn't have devtmpfs enabled." fi fi mkdir $ROOTFS_DIR # Load module definitions for m in $MODULES_DIR/*; do debug "source module:$m" source $m done # Load and run modules for m in $MODULES_DIR/*; do # Skip backup files if [ "`echo $m | sed -e 's/\~$//'`" != "$m" ]; then continue fi module=`basename $m | cut -d'-' -f2` debug "Loading module $module" # pre hooks for h in $MODULE_PRE_HOOKS; do debug "Calling module hook (pre): $h" eval "$h pre $module" debug "Finished module hook (pre): $h" done # Check if module enabled if ! eval "${module}_enabled"; then debug "Skipping module $module" continue fi # Execute module main function debug "Running ${module}_run" eval "${module}_run" debug "Ran ${module}_run" # post hooks for h in $MODULE_POST_HOOKS; do debug "Calling module hook (post): $h" eval "$h post $module" debug "Finished module hook (post): $h" done done # Catch all fatal "ERROR: Initramfs failed to initialize the system." 详细讲解一下这段
最新发布
08-04
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值