でびあんの initrd (6)

今日はハマッてへろへろなので軽めで。
続きを読みます。一発目の run_scripts です。

# Don't do log messages here to avoid confusing usplash
run_scripts /scripts/init-top

デフォルトだと init-top 配下は以下。

$ find scripts/init-top
scripts/init-top
scripts/init-top/framebuffer
$

ち。一個かよ。PREREQ も指定ナシ。

#!/bin/sh

PREREQ=""
prereqs()
{
        echo "$PREREQ"
}
case $1 in
# get pre-requisites
prereqs)
        prereqs
        exit 0
        ;;
esac

依存関係はこのディレクトリ配下では無し。ぢつは中身は置いといて依存の解決云々で誤魔化そうと思ってたんですが駄目か (何
えと、この framebuffer については疎い部分なので内容トレイス略で。

続き

maybe_break modules
log_begin_msg "Loading essential drivers..."
load_modules
log_end_msg

load_modules のみ。

# Load custom modules first
load_modules()
{
	if [ -e /conf/modules ]; then
		cat /conf/modules | while read m; do
			# Skip empty lines
			if [ -z "$m" ];  then
				continue
			fi
			# Skip comments - d?ash removes whitespace prefix
			com=$(printf "%.1s" "${m}")
			if [ "$com" = "#" ]; then
				continue
			fi
			modprobe -q $m
		done
	fi
}

/conf/modules を cat して一行づつ m に渡している。ループの中では

  • 空行は skip
  • 先頭が '#' ならコメントなので skip
  • そうでなければエントリを modprobe
    • '-q' というオプションは_日和見的にプローブ_との事

とりあえず最初に insmod するナニは /conf/modules に書いておけば良い模様。今日はちょっとこれで終了。