From 113677b55f77537f08491a92ee3ac4bdcc9f05f9 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Thu, 30 Apr 2009 11:20:47 +0000 Subject: install fstab. fix module dep tracing. make sure iso boots --- Makefile | 4 ++-- mkinitfs.in | 55 ++++++++++++++++++++++++++++++++++++------------------- modules.d/base | 1 + 3 files changed, 39 insertions(+), 21 deletions(-) diff --git a/Makefile b/Makefile index 4e1d33f..02d6342 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ datarootdir ?= /usr/share datadir ?= $(datarootdir)/mkinitfs SBIN_FILES := mkinitfs bootchartd -SHARE_FILES := initramfs-init +SHARE_FILES := initramfs-init fstab CONF_FILES := mkinitfs.conf \ modules.d/ata \ modules.d/ide \ @@ -19,7 +19,7 @@ CONF_FILES := mkinitfs.conf \ files.d/bootchart \ files.d/base -SCRIPTS := $(SBIN_FILES) $(SHARE_FILES) +SCRIPTS := $(SBIN_FILES) initramfs-init IN_FILES := $(addsuffix .in,$(SCRIPTS)) GIT_REV := $(shell git describe || echo exported) diff --git a/mkinitfs.in b/mkinitfs.in index 3024c46..2e2dce6 100755 --- a/mkinitfs.in +++ b/mkinitfs.in @@ -4,8 +4,9 @@ VERSION=@VERSION@ sysconfdir=@sysconfdir@ datadir=@datadir@ -config="$sysconfidir"/mkinitfs.conf +config="$sysconfdir"/mkinitfs.conf init="$datadir"/initramfs-init +fstab="$datadir"/fstab startdir=$PWD _cp() { @@ -33,7 +34,11 @@ feature_files() { fi for glob in $(cat "$dir/$f"); do for file in $glob; do - echo $glob + if [ -d $file ]; then + find $file -type f + else + echo $file + fi done done done @@ -43,7 +48,7 @@ initfs_base() { local i= dirs= glob= file= echo "==> initramfs: copying base files" >&2 for i in dev proc sys sbin bin .modloop lib/modules media/cdrom \ - media/floppy media/usb newroot; do + etc/apk media/floppy media/usb newroot; do dirs="$dirs $tmpdir/$i" done [ -z "$list_sources" ] && mkdir -p $dirs @@ -55,7 +60,8 @@ initfs_base() { # copy init if [ -z "$list_sources" ]; then cd $startdir - install -m755 "$init" "$tmpdir"/init + install -m755 "$init" "$tmpdir"/init || return 1 + install -Dm644 "$fstab" "$tmpdir"/etc/fstab || return 1 else echo "$init" fi @@ -83,7 +89,7 @@ BEGIN { } { - mod["/"$0] = 1; + mod[$0] = 1; } END { @@ -92,22 +98,26 @@ END { }' -v modulesdep="$basedir/lib/modules/$kernel/modules.dep" } -initfs_kmods() { - local glob= file= files= dirs= - [ -z "$list_soruces" ] && rm -rf "$tmpdir"/lib/modules +find_kmods() { cd "$kerneldir" || return 1 - echo "==> initramfs: copying kernel $kernel modules" >&2 - files=$( for file in $(feature_files $modulelists_dir); do if ! [ -e ${file} ]; then echo "$file: No such file or directory" >&2 continue fi - echo $file - done | find_kmod_deps) + echo /lib/modules/$kernel/$file + done | find_kmod_deps +} + +initfs_kmods() { + local glob= file= files= dirs= + [ -z "$list_sources" ] && rm -rf "$tmpdir"/lib/modules + echo "==> initramfs: copying kernel $kernel modules" >&2 + files=$(find_kmods) for file in $files; do - _cp "$basedir"/lib/modules/$kernel/$file + _cp "$basedir"/$file done + [ -z "$list_sources" ] && depmod $kernel -b "$tmpdir" } initfs_cpio() { @@ -118,11 +128,12 @@ initfs_cpio() { usage() { cat <