Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 351861 | Differences between
and this patch

Collapse All | Expand All

(-)a/ChangeLog (+3 lines)
Lines 5-10 Link Here
5
# Distributed under the GPL v2
5
# Distributed under the GPL v2
6
# $Id$
6
# $Id$
7
7
8
	29 May 2011; Zachary Bedell <zac@thebedells.org>:
9
	Support booting to ZFS root
10
8
  28 Mar 2011; Sebastian Pipping <sping@gentoo.org> genkernel:
11
  28 Mar 2011; Sebastian Pipping <sping@gentoo.org> genkernel:
9
  Bump to 3.4.15
12
  Bump to 3.4.15
10
13
(-)a/arch/x86/modules_load (+2 lines)
Lines 28-30 MODULES_USB="ehci-hcd uhci usb-ohci hid usb-storage uhci-hcd ohci-hcd usbhid sl8 Link Here
28
# Filesystems
28
# Filesystems
29
MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs fuse"
29
MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs fuse"
30
30
31
# ZFS
32
MODULES_ZFS="zfs zcommon znvpair zavl zunicode spl zlib_deflate zlib_inflate"
(-)a/arch/x86_64/modules_load (+3 lines)
Lines 26-28 MODULES_USB="ehci-hcd uhci usb-ohci hid usb-storage uhci-hcd ohci-hcd usbhid sl8 Link Here
26
26
27
# Filesystems
27
# Filesystems
28
MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs fuse"
28
MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs fuse"
29
30
# ZFS
31
MODULES_ZFS="zfs zcommon znvpair zavl zunicode spl zlib_deflate zlib_inflate"
(-)a/defaults/initrd.scripts (+49 lines)
Lines 609-614 chooseKeymap() { Link Here
609
	fi
609
	fi
610
}
610
}
611
611
612
# Extract just the pool name from real_root formatted string
613
zfs_get_rpool() {
614
  zfsroot="${1#ZFS=}"
615
	echo "${zfsroot%%/*}"
616
}
617
618
# Extract just the pool/fs name from real_root formatted string
619
zfs_get_rootfs() {
620
  echo "${1#ZFS=}"
621
}
622
612
startVolumes() {
623
startVolumes() {
613
	#good_msg 'Checking if volumes need to be started...'
624
	#good_msg 'Checking if volumes need to be started...'
614
625
Lines 638-643 startVolumes() { Link Here
638
			fi
649
			fi
639
		fi
650
		fi
640
	fi
651
	fi
652
	
653
	if [ "${USE_ZFS}" = '1' ]
654
	then
655
		if [ -e '/usr/sbin/zpool' ] && [ -e '/usr/sbin/zfs' ]
656
		then
657
			if [ "x${REAL_ROOT}" = 'x' ]
658
			then
659
				# No root, so try to find it from bootfs attribute
660
				good_msg "ZFS: Attempting to detect real_root from ZFS pools."
661
				/usr/sbin/zpool import -f -a -N
662
				zfsbootfs=`/usr/sbin/zpool list -H -o bootfs | /bin/grep -v ^-$ -m 1`
663
				/usr/sbin/zpool list -H | while read fs rest ; do /usr/sbin/zpool export "$fs" ; done
664
				if [ "x$zfsbootfs" = 'x' ]
665
				then
666
					bad_msg "ZFS: No bootfs attribute found in importable pools.  Will not set real_root."
667
				else
668
					REAL_ROOT="ZFS=$zfsbootfs"
669
				fi
670
			else
671
				# Root specified.  See if it's ZFS.
672
				case "${REAL_ROOT}" in
673
					zfs:ZFS\=*|ZFS\=*|zfs:*)
674
						REAL_ROOT="${REAL_ROOT#zfs:}"
675
						REAL_ROOT="ZFS=${REAL_ROOT#ZFS=}"
676
						;;
677
				esac        
678
			fi
679
		else
680
			bad_msg "zpool or zfs commands not found: skipping ZFS volume activation!"
681
		fi
682
683
		if [ "${REAL_ROOT:0:4}" = 'ZFS=' ]
684
		then
685
			good_msg "ZFS: Using ${REAL_ROOT} as real_root."
686
		else
687
			bad_msg "ZFS: No root filesystem found.  Mounting nothing."
688
		fi
689
	fi
641
690
642
	if [ "${USE_LVM_NORMAL}" = '1' ]
691
	if [ "${USE_LVM_NORMAL}" = '1' ]
643
	then
692
	then
(-)a/defaults/linuxrc (-3 / +22 lines)
Lines 78-83 do Link Here
78
			ISOBOOT=`parse_opt "${x}"`
78
			ISOBOOT=`parse_opt "${x}"`
79
		;;
79
		;;
80
		# Start Volume manager options 
80
		# Start Volume manager options 
81
		dozfs)
82
			USE_ZFS=1
83
		;;
81
		dolvm)
84
		dolvm)
82
			USE_LVM_NORMAL=1
85
			USE_LVM_NORMAL=1
83
		;;
86
		;;
Lines 456-461 do Link Here
456
					continue
459
					continue
457
				fi
460
				fi
458
				;;
461
				;;
462
			ZFS\=*)
463
				# Using a ZFS root.  Normal mount semantics aren't quite right.
464
				zfsroot="`zfs_get_rootfs ${REAL_ROOT}`"
465
				pool="`zfs_get_rpool ${REAL_ROOT}`"
466
				/usr/sbin/zpool import -f -R ${NEW_ROOT} -N ${pool} || bad_msg "Unable to import ZPOOL ${pool}"
467
				#/usr/sbin/zfs mount -o mountpoint=${NEW_ROOT} ${zfsroot}
468
				mount -t zfs ${zfsroot} ${NEW_ROOT}
469
				
470
				# I *think* it would be proper at this time to mount the rest of the fs on the root pool.  
471
				# The system won't boot correctly otherwise if multiple ZFS are used to split up the root 
472
				# (etc, usr, etc...)
473
				# I'm not sure if doing this early (before we've switched root) will mess up listings in
474
				# `mount` or `zfs list`, but we don't have much choice as necessary binaries may be on the
475
				# sub-filesystems.
476
				/usr/sbin/zfs mount -a
477
				;;
459
		esac
478
		esac
460
				
479
				
461
		if [ "${REAL_ROOT}" = '' ]
480
		if [ "${REAL_ROOT}" = '' ]
Lines 465-471 do Link Here
465
			got_good_root=0
484
			got_good_root=0
466
485
467
		# Check for a block device or /dev/nfs
486
		# Check for a block device or /dev/nfs
468
		elif [ -b "${REAL_ROOT}" ] || [ "${REAL_ROOT}" = "/dev/nfs" ]
487
		elif [ -b "${REAL_ROOT}" ] || [ "${REAL_ROOT}" = "/dev/nfs" ] || [ "${REAL_ROOT:0:4}" = 'ZFS=' ]
469
		then
488
		then
470
			got_good_root=1
489
			got_good_root=1
471
490
Lines 477-485 do Link Here
477
	done
496
	done
478
497
479
498
480
	if [ "${CDROOT}" = 1 -a "${got_good_root}" = '1' -a "${REAL_ROOT}" != "/dev/nfs" ]
499
	if [ "${CDROOT}" = 1 -a "${got_good_root}" = '1' -a "${REAL_ROOT}" != "/dev/nfs" ] || [ "${REAL_ROOT:0:4}" = 'ZFS=' ]
481
	then
500
	then
482
		# CD already mounted; no further checks necessary
501
		# CD or ZFS already mounted; no further checks necessary
483
		break
502
		break
484
	elif [ "${LOOPTYPE}" = "sgimips" ]
503
	elif [ "${LOOPTYPE}" = "sgimips" ]
485
	then
504
	then
(-)a/doc/genkernel.8.txt (+7 lines)
Lines 240-245 INITIALIZATION Link Here
240
    Add in EVMS support from static binaries if they exist on the system:
240
    Add in EVMS support from static binaries if they exist on the system:
241
    you should run "emerge evms" first (in the host system).
241
    you should run "emerge evms" first (in the host system).
242
242
243
*--zfs*::
244
		Add support for ZFS root with real_root detection from bootfs attributes.
245
243
*--lvm*::
246
*--lvm*::
244
    Add in LVM support from static binaries if they exist on the
247
    Add in LVM support from static binaries if they exist on the
245
    system,  or compile static LVM binaries if static ones do not
248
    system,  or compile static LVM binaries if static ones do not
Lines 414-419 which the ramdisk scripts would recognize. Link Here
414
    location. Otherwise the location will be deduced from the DCHP
417
    location. Otherwise the location will be deduced from the DCHP
415
    request (option root-path)
418
    request (option root-path)
416
419
420
*dozfs*::
421
		Activate ZFS volumes on bootup and detect real_root from bootfs
422
		attribute on importable pools.
423
417
*doevms*::
424
*doevms*::
418
    Activate EVMS volumes on bootup
425
    Activate EVMS volumes on bootup
419
426
(-)a/gen_cmdline.sh (+5 lines)
Lines 78-83 longusage() { Link Here
78
  echo "	--evms			Include EVMS support"
78
  echo "	--evms			Include EVMS support"
79
  echo "				--> 'emerge evms' in the host operating system"
79
  echo "				--> 'emerge evms' in the host operating system"
80
  echo "				first"
80
  echo "				first"
81
  echo "	--zfs			Include ZFS support"
81
  echo "	--lvm			Include LVM support"
82
  echo "	--lvm			Include LVM support"
82
  echo "	--mdadm			Include MDADM/MDMON support"
83
  echo "	--mdadm			Include MDADM/MDMON support"
83
  echo "	--mdadm-config=<file>	Use file as mdadm.conf in initramfs"
84
  echo "	--mdadm-config=<file>	Use file as mdadm.conf in initramfs"
Lines 234-239 parse_cmdline() { Link Here
234
			echo
235
			echo
235
			print_warning 1 "Please use --evms, as --evms2 is deprecated."
236
			print_warning 1 "Please use --evms, as --evms2 is deprecated."
236
			;;
237
			;;
238
		--zfs)
239
			CMD_ZFS=1
240
			print_info 2 "CMD_ZFS: ${CMD_ZFS}"
241
		  ;;
237
		--lvm)
242
		--lvm)
238
			CMD_LVM=1
243
			CMD_LVM=1
239
			print_info 2 "CMD_LVM: ${CMD_LVM}"
244
			print_info 2 "CMD_LVM: ${CMD_LVM}"
(-)a/gen_determineargs.sh (+1 lines)
Lines 107-112 determine_real_args() { Link Here
107
 	set_config_with_override 1 SYMLINK              CMD_SYMLINK
107
 	set_config_with_override 1 SYMLINK              CMD_SYMLINK
108
	set_config_with_override 2 INSTALL_MOD_PATH     CMD_INSTALL_MOD_PATH
108
	set_config_with_override 2 INSTALL_MOD_PATH     CMD_INSTALL_MOD_PATH
109
	set_config_with_override 1 OLDCONFIG            CMD_OLDCONFIG
109
	set_config_with_override 1 OLDCONFIG            CMD_OLDCONFIG
110
	set_config_with_override 1 ZFS                  CMD_ZFS
110
	set_config_with_override 1 LVM                  CMD_LVM
111
	set_config_with_override 1 LVM                  CMD_LVM
111
	set_config_with_override 1 EVMS                 CMD_EVMS
112
	set_config_with_override 1 EVMS                 CMD_EVMS
112
	set_config_with_override 1 DMRAID               CMD_DMRAID
113
	set_config_with_override 1 DMRAID               CMD_DMRAID
(-)a/gen_dylibs.sh (+216 lines)
Line 0 Link Here
1
# Functions imported from Dracut to help locate, unsymlink, strip, and install
2
# executables and the libraries they require to run.
3
# Dracut is licensed under the terms of GPL-2.
4
#
5
### Original Dracut copyright message:
6
###
7
### Copyright 2005-2009 Red Hat, Inc.  All rights reserved.
8
###
9
### This program is free software; you can redistribute it and/or modify
10
### it under the terms of the GNU General Public License as published by
11
### the Free Software Foundation; either version 2 of the License, or
12
### (at your option) any later version.
13
###
14
### This program is distributed in the hope that it will be useful,
15
### but WITHOUT ANY WARRANTY; without even the implied warranty of
16
### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
### GNU General Public License for more details.
18
###
19
### You should have received a copy of the GNU General Public License
20
### along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
22
ddebug() {
23
  print_info 4 "$1"
24
}
25
26
# Install a directory, keeping symlinks as on the original system.
27
# Example: if /lib64 points to /lib on the host, "inst_dir /lib/file"
28
# will create ${initdir}/lib64, ${initdir}/lib64/file,
29
# and a symlink ${initdir}/lib -> lib64.
30
inst_dir() {
31
    local dir="$1"
32
    [[ -e ${initdir}$dir ]] && return 0
33
34
    # iterate over parent directories
35
    local file=""
36
    local IFS="/"
37
    for part in $dir; do
38
        [[ $part ]] || continue
39
        file="$file/$part"
40
        [[ -e ${initdir}$file ]] && continue
41
42
        if [[ -L $file ]]; then
43
            # create link as the original
44
            local target=$(readlink "$file")
45
            ln -sfn "$target" "${initdir}$file" || return 1
46
            # resolve relative path and recursively install destination
47
            [[ $target == ${target#/} ]] && target="$(dirname "$file")/$target"
48
            inst_dir "$target"
49
        else
50
            # create directory
51
            mkdir -m 0755 -p "${initdir}$file" || return 1
52
        fi
53
    done
54
}
55
56
# $1 = file to copy to ramdisk
57
# $2 (optional) Name for the file on the ramdisk
58
# Location of the image dir is assumed to be $initdir
59
# We never overwrite the target if it exists.
60
inst_simple() {
61
    local src target
62
    [[ -f $1 ]] || return 1
63
    src=$1 target="${2:-$1}"
64
    if ! [[ -d ${initdir}$target ]]; then
65
        [[ -e ${initdir}$target ]] && return 0
66
        inst_dir "${target%/*}"
67
    fi
68
    # install checksum files also
69
    if [[ -e "${src%/*}/.${src##*/}.hmac" ]]; then
70
        instd "${src%/*}/.${src##*/}.hmac" "${target%/*}/.${target##*/}.hmac"
71
    fi
72
    ddebug "Installing $src to ${initdir}$target" 
73
    cp -pfL "$src" "${initdir}$target"
74
}
75
76
# find symlinks linked to given library file
77
# $1 = library file
78
# Function searches for symlinks by stripping version numbers appended to
79
# library filename, checks if it points to the same target and finally
80
# prints the list of symlinks to stdout.
81
#
82
# Example:
83
# rev_lib_symlinks libfoo.so.8.1
84
# output: libfoo.so.8 libfoo.so
85
# (Only if libfoo.so.8 and libfoo.so exists on host system.)
86
rev_lib_symlinks() {
87
    [[ ! $1 ]] && return 0
88
89
    local fn="$1" orig="$(readlink -f "$1")" links=''
90
91
    [[ ${fn} =~ .*\.so\..* ]] || return 1
92
93
    until [[ ${fn##*.} == so ]]; do
94
        fn="${fn%.*}"
95
        [[ -L ${fn} && $(readlink -f "${fn}") == ${orig} ]] && links+=" ${fn}"
96
    done
97
98
    echo "${links}"
99
}
100
101
# Same as above, but specialized to handle dynamic libraries.
102
# It handles making symlinks according to how the original library
103
# is referenced.
104
inst_library() {
105
    local src=$1 dest=${2:-$1} lib reallib symlink
106
    [[ -e $initdir$dest ]] && return 0
107
    if [[ -L $src ]]; then
108
        # install checksum files also
109
        if [[ -e "${src%/*}/.${src##*/}.hmac" ]]; then
110
            instd "${src%/*}/.${src##*/}.hmac" "${dest%/*}/.${dest##*/}.hmac"
111
        fi
112
        reallib=$(readlink -f "$src")
113
        lib=${src##*/}
114
        inst_simple "$reallib" "$reallib"
115
        inst_dir "${dest%/*}"
116
        (cd "${initdir}${dest%/*}" && ln -s "$reallib" "$lib")
117
    else
118
        inst_simple "$src" "$dest"
119
    fi
120
121
    # Create additional symlinks.  See rev_symlinks description.
122
    for symlink in $(rev_lib_symlinks $src) $(rev_lib_symlinks $reallib); do
123
        [[ ! -e $initdir$symlink ]] && {
124
            ddebug "Creating extra symlink: $symlink"
125
            inst_symlink $symlink
126
        }
127
    done
128
}
129
130
# find a binary.  If we were not passed the full path directly,
131
# search in the usual places to find the binary.
132
find_binary() {
133
    local binpath="/bin /sbin /usr/bin /usr/sbin" p
134
    if [[ -z ${1##/*} ]]; then
135
        if [[ -x $1 ]] || ldd $1 &>/dev/null; then
136
            echo $1
137
            return 0
138
        fi
139
    fi
140
    for p in $binpath; do
141
        [[ -x $p/$1 ]] && { echo "$p/$1"; return 0; }
142
    done
143
    return 1
144
}
145
146
# Same as above, but specialized to install binary executables.
147
# Install binary executable, and all shared library dependencies, if any.
148
inst_binary() {
149
    local bin target
150
    bin=$(find_binary "$1") || return 1
151
    target=${2:-$bin}
152
    inst_symlink $bin $target && return 0
153
    local LDSO NAME IO FILE ADDR I1 n f TLIBDIR
154
    [[ -e $initdir$target ]] && return 0
155
    # I love bash!
156
    LC_ALL=C ldd $bin 2>/dev/null | while read line; do
157
        [[ $line = 'not a dynamic executable' ]] && return 1
158
        if [[ $line =~ not\ found ]]; then
159
            dfatal "Missing a shared library required by $bin."
160
            dfatal "Run \"ldd $bin\" to find out what it is."
161
            dfatal "genkernel cannot create an initramfs."
162
            exit 1
163
        fi
164
        so_regex='([^ ]*/lib[^/]*/[^ ]*\.so[^ ]*)'
165
        [[ $line =~ $so_regex ]] || continue
166
        FILE=${BASH_REMATCH[1]}
167
        [[ -e ${initdir}$FILE ]] && continue
168
        # see if we are loading an optimized version of a shared lib.
169
        lib_regex='^(/lib[^/]*).*'
170
        if [[ $FILE =~ $lib_regex ]]; then
171
            TLIBDIR=${BASH_REMATCH[1]}
172
            BASE=${FILE##*/}
173
            # prefer nosegneg libs, then unoptimized ones.
174
            for f in "$TLIBDIR/i686/nosegneg" "$TLIBDIR"; do
175
                [[ -e $f/$BASE ]] || continue
176
                FILE=$f/$BASE
177
                break
178
            done
179
            inst_library "$FILE" "$TLIBDIR/$BASE"
180
            IF_dynamic=yes
181
            continue
182
            fi
183
            inst_library "$FILE"
184
    done
185
    inst_simple "$bin" "$target"
186
}
187
188
# same as above, but specialized for symlinks
189
inst_symlink() {
190
    local src=$1 target=$initdir${2:-$1} realsrc
191
    [[ -L $1 ]] || return 1
192
    [[ -L $target ]] && return 0
193
    realsrc=$(readlink -f "$src")
194
    [[ $realsrc = ${realsrc##*/} ]] && realsrc=${src%/*}/$realsrc
195
    instd "$realsrc" && mkdir -m 0755 -p "${target%/*}" && \
196
        ln -s "$realsrc" "$target"
197
}
198
199
# general purpose installation function
200
# Same args as above.
201
instd() {
202
    case $# in
203
        1) ;;
204
        2) [[ ! $initdir && -d $2 ]] && export initdir=$2
205
            [[ $initdir = $2 ]] && set $1;;
206
        3) [[ -z $initdir ]] && export initdir=$2
207
            set $1 $3;;
208
        *) dfatal "inst only takes 1 or 2 or 3 arguments"
209
            exit 1;;
210
    esac
211
    #inst_script
212
    for x in inst_symlink inst_binary inst_simple; do
213
        $x "$@" && return 0
214
    done
215
    return 1
216
}
(-)a/gen_initramfs.sh (+31 lines)
Lines 234-239 append_iscsi(){ Link Here
234
	rm -rf "${TEMP}/initramfs-iscsi-temp" > /dev/null
234
	rm -rf "${TEMP}/initramfs-iscsi-temp" > /dev/null
235
}
235
}
236
236
237
append_zfs(){
238
	if [ -d "${TEMP}/initramfs-zfs-temp" ]
239
	then
240
		rm -r "${TEMP}/initramfs-zfs-temp/"
241
	fi
242
	
243
	print_info 1 '          ZFS: Adding support using local binaries w/ dylibs'
244
	
245
	cd ${TEMP}
246
	mkdir -p "${TEMP}/initramfs-zfs-temp/bin/"
247
	mkdir -p "${TEMP}/initramfs-zfs-temp/sbin/"
248
	mkdir -p "${TEMP}/initramfs-zfs-temp/usr/bin"
249
	mkdir -p "${TEMP}/initramfs-zfs-temp/usr/sbin"
250
	mkdir -p "${TEMP}/initramfs-zfs-temp/etc/zfs/"
251
	
252
	for f in zfs zpool zpool_layout zpool_id zvol_id mount.zfs hostid
253
	do
254
		print_info 2 "          ZFS: >> Installing $f"
255
		instd $f "${TEMP}/initramfs-zfs-temp/" || gen_die "          ZFS: >> Unable to install $f"
256
	done
257
  
258
	# Copy over a cache if we have one.
259
	[ -f /etc/zfs/zpool.cache ] && cp /etc/zfs/zpool.cache "${TEMP}/initramfs-zfs-temp/etc/zfs/"
260
261
	cd "${TEMP}/initramfs-zfs-temp/"
262
	find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" || gen_die "compressing zfs cpio"
263
	cd "${TEMP}"
264
	rm -r "${TEMP}/initramfs-zfs-temp/"
265
}
266
237
append_lvm(){
267
append_lvm(){
238
	if [ -d "${TEMP}/initramfs-lvm-temp" ]
268
	if [ -d "${TEMP}/initramfs-lvm-temp" ]
239
	then
269
	then
Lines 673-678 create_initramfs() { Link Here
673
	append_data 'base_layout'
703
	append_data 'base_layout'
674
	append_data 'auxilary' "${BUSYBOX}"
704
	append_data 'auxilary' "${BUSYBOX}"
675
	append_data 'busybox' "${BUSYBOX}"
705
	append_data 'busybox' "${BUSYBOX}"
706
	append_data 'zfs' "${ZFS}"
676
	append_data 'lvm' "${LVM}"
707
	append_data 'lvm' "${LVM}"
677
	append_data 'dmraid' "${DMRAID}"
708
	append_data 'dmraid' "${DMRAID}"
678
	append_data 'iscsi' "${ISCSI}"
709
	append_data 'iscsi' "${ISCSI}"
(-)a/genkernel (+2 lines)
Lines 41-46 source ${GK_SHARE}/gen_arch.sh || gen_die "Could not read ${GK_SHARE}/gen_arch.s Link Here
41
source ${GK_SHARE}/gen_determineargs.sh || gen_die "Could not read ${GK_SHARE}/gen_determineargs.sh"
41
source ${GK_SHARE}/gen_determineargs.sh || gen_die "Could not read ${GK_SHARE}/gen_determineargs.sh"
42
source ${GK_SHARE}/gen_compile.sh || gen_die "Could not read ${GK_SHARE}/gen_compile.sh"
42
source ${GK_SHARE}/gen_compile.sh || gen_die "Could not read ${GK_SHARE}/gen_compile.sh"
43
source ${GK_SHARE}/gen_configkernel.sh || gen_die "Could not read ${GK_SHARE}/gen_configkernel.sh"
43
source ${GK_SHARE}/gen_configkernel.sh || gen_die "Could not read ${GK_SHARE}/gen_configkernel.sh"
44
source ${GK_SHARE}/gen_dylibs.sh || gen_die "Could not read ${GK_SHARE}/gen_dylibs.sh"
44
source ${GK_SHARE}/gen_initramfs.sh || gen_die "Could not read ${GK_SHARE}/gen_initramfs.sh"
45
source ${GK_SHARE}/gen_initramfs.sh || gen_die "Could not read ${GK_SHARE}/gen_initramfs.sh"
45
source ${GK_SHARE}/gen_moddeps.sh || gen_die "Could not read ${GK_SHARE}/gen_moddeps.sh"
46
source ${GK_SHARE}/gen_moddeps.sh || gen_die "Could not read ${GK_SHARE}/gen_moddeps.sh"
46
source ${GK_SHARE}/gen_package.sh || gen_die "Could not read ${GK_SHARE}/gen_package.sh"
47
source ${GK_SHARE}/gen_package.sh || gen_die "Could not read ${GK_SHARE}/gen_package.sh"
Lines 347-352 then Link Here
347
	print_info 1 'WARNING... WARNING... WARNING...'
348
	print_info 1 'WARNING... WARNING... WARNING...'
348
	print_info 1 'Additional kernel cmdline arguments that *may* be required to boot properly...'
349
	print_info 1 'Additional kernel cmdline arguments that *may* be required to boot properly...'
349
	[ "${SPLASH}" = '1' ] && print_info 1 "add \"vga=791 splash=silent,theme:${SPLASH_THEME} console=tty1 quiet\" if you use a splash framebuffer ]"
350
	[ "${SPLASH}" = '1' ] && print_info 1 "add \"vga=791 splash=silent,theme:${SPLASH_THEME} console=tty1 quiet\" if you use a splash framebuffer ]"
351
	[ "${ZFS}" = '1' ] && print_info 1 'add "dozfs" for ZFS support'
350
	[ "${LVM}" = '1' ] && print_info 1 'add "dolvm" for lvm support'
352
	[ "${LVM}" = '1' ] && print_info 1 'add "dolvm" for lvm support'
351
	[ "${EVMS}" = '1' ] && print_info 1 'add "doevms" for evms support'
353
	[ "${EVMS}" = '1' ] && print_info 1 'add "doevms" for evms support'
352
	[ "${DMRAID}" = '1' ] && print_info 1 'add "dodmraid" for dmraid support'
354
	[ "${DMRAID}" = '1' ] && print_info 1 'add "dodmraid" for dmraid support'
(-)a/genkernel.conf (+3 lines)
Lines 53-58 USECOLOR="yes" Link Here
53
# compile static LVM binaries if static ones do not exist.
53
# compile static LVM binaries if static ones do not exist.
54
# LVM="no"
54
# LVM="no"
55
55
56
# Add in ZFS support using installed system dynamic libraries.
57
# ZFS="no"
58
56
# Add in Luks support. Needs sys-fs/cryptsetup with -dynamic installed.
59
# Add in Luks support. Needs sys-fs/cryptsetup with -dynamic installed.
57
# LUKS="no"
60
# LUKS="no"
58
61

Return to bug 351861