Fabio Erculiani
90983b4fd2
initrd.scripts: move splash functions to a separate file
...
Start to make the genkernel code a bit modular. Also add initrd.d
support to gen_initramfs.sh
12 years ago
Fabio Erculiani
f0775326eb
initrd.scripts: refactor start_volumes(), improve readability
12 years ago
Fabio Erculiani
382691d467
initrd.scripts: improve code style of mount_devfs
12 years ago
Fabio Erculiani
231ffd477a
initrd.scripts: improve code style of fs_type_in_use
12 years ago
Fabio Erculiani
d518964d6a
initrd.scripts: improve code style of check_loop if test
12 years ago
Fabio Erculiani
8c70f27a93
initrd.scripts: improve code style of check_loop
12 years ago
Fabio Erculiani
9d043ca938
initrd.scripts: rename findnfsmount to find_nfs
12 years ago
Fabio Erculiani
f4b4d6d0d6
initrd.scripts: improve findnfsmount(), simplify code and branches
12 years ago
Fabio Erculiani
7a7e01c47e
initrd.scripts: refactor findnfsmount(), improve readability
12 years ago
Fabio Erculiani
3790c6345a
initrd.scripts: wrap >80 chars lines in devicelist()
12 years ago
Fabio Erculiani
ce1e10241b
genkernel: migrate ALL the code to 4-spaces tabs
...
\t must die!
12 years ago
Fabio Erculiani
ebc7806e16
repo: add `make install` support, bundle busybox, bashcomp and initramfs.mounts
12 years ago
Fabio Erculiani
24e26f1b77
initrd.scripts: add more TODOs
12 years ago
Fabio Erculiani
bda76debee
initrd.scripts: kill tuxonice support with a LOT of fire
...
tuxonice is almost dead. Last update was in 2011 and they're now
trying to resurrect this ugly and non-upstream friendly thing.
Moreover, the tuxonice genkernel code is the ugliest thing I have
ever seen in it. Well no, unionfs was even worse.
So please, let's forget about tuxonice for now and focus on the
good looking code. I am willing to accept patches that restore
tuxonice support if they're good quality ones.
Burn tuxonice init code, burn in hell.
12 years ago
Fabio Erculiani
068e7da618
initrd.scripts: add a couple of TODOs
12 years ago
Fabio Erculiani
556f991201
initrd.scripts: fix wording in fstype_init
12 years ago
Fabio Erculiani
1ac43bf8a6
initrd.scripts: use get_device_fstype to execute fstype specific init code
...
This logic replaces the old and buggy setup_btrfsctl code
12 years ago
Fabio Erculiani
43a4651da2
initrd.scripts: simplify rootdev_init. Break if conditions for better readability
12 years ago
Fabio Erculiani
f5d1084646
initrd.scripts: make rootdev_init use find_real_device
12 years ago
Fabio Erculiani
755eb93994
initrd.scripts: make resume_init use find_real_device
12 years ago
Fabio Erculiani
addfa95e96
initrd.scripts: fix find_real_device output
...
The crazy function should only return to stdout valid devices in
case of UUID= or LABEL=. Other cases are just ignored and not checked
as it was before.
12 years ago
Fabio Erculiani
12af5dfd3a
gen_initramfs, initrd.scripts: migrate to /sbin/btrfs
...
btrfsctl is deprecated.
12 years ago
Fabio Erculiani
c27d3ac25d
initrd.scripts: add get_device_fstype
...
This fuction prints the device file system type to standard output
and will be used in future for executing fstype specific tasks.
12 years ago
Fabio Erculiani
9d8560729f
linuxrc: trivial, improve code style of linuxrc
12 years ago
Fabio Erculiani
a7def21edc
linuxrc: drop another /dev (tty1) pointless check
12 years ago
Fabio Erculiani
35443c24ae
linuxrc: drop useless /dev nodes check
...
The code just moved /dev over, so the checks are pointless
12 years ago
Fabio Erculiani
5e96e6f7dc
linuxrc: move mountpoints move code to move_mounts_to_chroot
12 years ago
Fabio Erculiani
afea330cb1
linuxrc: default REAL_INIT to /sbin/init
12 years ago
Fabio Erculiani
682acf0274
linuxrc: improve code style at the end of the file
12 years ago
Fabio Erculiani
68892f5c65
linuxrc: move devmgr termination code to devmgr_terminate
12 years ago
Fabio Erculiani
8ab82e8b23
linuxrc: unbundle is_livecd() from setup_real_root
12 years ago
Fabio Erculiani
0cac67fa67
linuxrc: move livecd mount code to livecd_mount()
12 years ago
Fabio Erculiani
1b282a7c9f
initrd.scripts: mount livecd / tmpfs with mode=0755 (instead of 0777)
12 years ago
Fabio Erculiani
faf020424d
linuxrc: move root device detection/init code to rootdev_init
12 years ago
Fabio Erculiani
37121be638
initrd.scripts: add is_nfs(), replace ${REAL_ROOT} = /dev/nfs checks
12 years ago
Fabio Erculiani
6f6befff99
linuxrc: call ensure_initramfs_mounts after mounting ${REAL_ROOT}
...
This makes possible to deal with systemd and separate /usr support
as discussed in bug #479730 .
12 years ago
Fabio Erculiani
51a455d49c
linuxrc: use is_livecd() rather than ${CDROOT} value check
12 years ago
Fabio Erculiani
b0418a0272
initrd.scripts: ensure_initramfs_mounts: check if partition is mounted
...
Before trying to mount a filesystem, check if it's already mounted first.
This way we can call ensure_initramfs_mounts multiple times during
the pivot root initialization.
12 years ago
Fabio Erculiani
8fa61e098d
linuxrc: move /etc/initramfs.mounts handling to a separate function
12 years ago
Fabio Erculiani
7f41ae2800
linuxrc: fix zfs call, subshell call was missing
12 years ago
Fabio Erculiani
c0bfc7b123
Revert "linuxrc: do not look for ${REAL_INIT} inside the mounted partition"
...
This reverts commit 3bb6c62bd9
.
12 years ago
Fabio Erculiani
86967ea400
linuxrc: move livecd initialization code to livecd_init()
12 years ago
Fabio Erculiani
3bb6c62bd9
linuxrc: do not look for ${REAL_INIT} inside the mounted partition
...
If ${REAL_INIT} is on a separate partition, the check will erroneously
fail. Don't try to be too smart and fix bug #479730
12 years ago
Fabio Erculiani
af1f319509
linuxrc: move resume initialization code to resume_init()
12 years ago
Fabio Erculiani
3f14137bc0
linuxrc: create is_livecd(), stop doing weird ${CDROOT} comparisons
12 years ago
Fabio Erculiani
3c9f0c6850
linuxrc: break condition for luks and resume apart
12 years ago
Fabio Erculiani
f269237602
linuxrc: trivial, use a more compact syntax
12 years ago
Fabio Erculiani
798c45d3da
linuxrc: simplify iscsi setup code
12 years ago
Fabio Erculiani
138b1f8492
linuxrc: move the devmgr initialization code to devmgr_init()
12 years ago
Fabio Erculiani
613a7047a1
linuxrc: move REAL_ROOT* setup to setup_real_root()
12 years ago
Fabio Erculiani
d8af91e3e8
linuxrc: move modules initialization code to modules_init
12 years ago
Fabio Erculiani
f1f04247f4
linuxrc: move splash initialization to splash_init()
12 years ago
Fabio Erculiani
7048779cbc
linuxrc: remove bogus comments
12 years ago
Fabio Erculiani
bbd4283b07
linuxrc: remove pointless comments
12 years ago
Fabio Erculiani
5908a425f4
linuxrc: remove deprecated dolvm2 boot parameter
12 years ago
Fabio Erculiani
ecdb16659b
linuxrc: move zfs initialization code to zfs_init() in initrd.scripts
12 years ago
Fabio Erculiani
071fff18b1
initrd.scripts: <80 chars
12 years ago
Fabio Erculiani
4559ecca82
defaults: fix code style
12 years ago
Fabio Erculiani
36d21e9a5f
defaults: drop trailing whitespaces
12 years ago
Fabio Erculiani
3ec035cccd
Remove MODULES_PLYMOUTH
...
MODULES_PLYMOUTH is only useful to mdev and doesn't do any good
to udev because it dynamically loads what's needed
12 years ago
Fabio Erculiani
af182ed72a
Move gpg executable to /usr/bin/gpg, bug #476276
...
The gpg executable is not at /sbin/gpg, but rather at /usr/bin/gpg
12 years ago
Richard Yao
755798b933
Workaround busybox modprobe's inability to load ZFS modules
...
Commit 3a054014e8
replaced our modprobe
with busybox's modprobe. Unfortunately, busybox's modprobe appears to be
unable to properly load modules with more than 1 level of dependencies.
The zfs and zpool commands will invoke modprobe if /dev/zvol is missing,
which concealed this problem. However, this caused problems because some
invocations would fail and under certain circumstances, init would be
killed, causing a kernel panic. This issue was made clear by commit
c812c35100771bb527f6b03853fa6d8ef66a48fe, which ensured that the zpool
and zfs commands were not run until the ZFS module was loaded.
busybox modprobe's failure to load module dependencies correctly appears
to occur because busybox modprobe does not wait until until a module is
loaded before loading a module that depends on it, which is a race. It
would be best to correct this race by waiting until the module has
properly loaded, but it is not clear that the race is the only thing
going wrong and developer time is a premium.
We implement a workaround by modifying the busy loop added in the
previous commit to explicit call `modprobe zfs` on each iteration. While
the first few calls fail due to bugs in busybox modprobe, it will
eventually work, after which each call is a noop. This lets us keep
looping until either the loop exit condition that /dev/zvol exist is
reached or the 5 second timeout is reached.
Once the busybox modprobe issue is fixed, this workaround should be safe
to revert.
Signed-off-by: Richard Yao <ryao@gentoo.org>
12 years ago
Richard Yao
9bb2beea5b
Import pool after ZFS module finishes loading
...
There is a race between ZFS module initialization and our attempt to
import pools. We address this by doing a busy wait for the /dev/zfs
device to appear. We wait a maximum of 5 seconds for the device to
appear.
We also slightly alter output messages to be more readable.
Signed-off-by: Richard Yao <ryao@gentoo.org>
Conflicts:
defaults/initrd.scripts
12 years ago
Richard Yao
c188fcedff
Add call_func_timeout helper function
...
call_func_timeout permits us to call a helper function and kill it
should it exceed some timeout. This is derived from example code posted
on Stack Overflow:
http://stackoverflow.com/a/11056286
Signed-off-by: Richard Yao <ryao@gentoo.org>
Conflicts:
defaults/initrd.scripts
12 years ago
Richard Yao
6c0e6f6ee6
Refactor ZFS module load hook
...
Signed-off-by: Richard Yao <ryao@gentoo.org>
12 years ago
Richard Yao
80c1c1669a
Load xhci-plat when available
...
At least one kernel configuration generates an addition module that we
need to load for USB 3.0 support, so lets load it.
Reported-by: Robin Johnson <robbat2@gentoo.org>
Signed-off-by: Richard Yao <ryao@gentoo.org>
12 years ago
Fabio Erculiani
f1dbe547be
busybox: issue a full make menuconfig against busybox 1.21
12 years ago
Fabio Erculiani
d5a0bfe470
busybox: switch away from MODPROBE_SMALL, see bug #472312#c27
12 years ago
Fabio Erculiani
39cb3a0a16
Revert "linuxrc: add depmod call as workaround for missing modules.dep.bb"
...
This reverts commit ece907ea64
.
12 years ago
Fabio Erculiani
7ee24b6776
Revert "initrd.scripts: busybox depmod doesn't support -v even though it declares so"
...
This reverts commit f3570c3957
.
12 years ago
Richard Yao
c408c1942a
Build USB 3.0 support by default, bug #452888
...
Signed-off-by: Richard Yao <ryao@gentoo.org>
12 years ago
Fabio Erculiani
f3570c3957
initrd.scripts: busybox depmod doesn't support -v even though it declares so
12 years ago
Fabio Erculiani
ece907ea64
linuxrc: add depmod call as workaround for missing modules.dep.bb
...
busybox depmod -b is broken, and busybox modprobe does not seem
to correctly deal with module dependencies.
See bug #472312
12 years ago
Fabio Erculiani
4b4d3f6d3e
initrd.scripts: uniform function names, use the underscore convention
12 years ago
Fabio Erculiani
9eb774b02f
initrd.scripts: drop whitespaces
12 years ago
Fabio Erculiani
8924ef00ae
initrd.scripts: uniform {} style
12 years ago
Fabio Erculiani
eae66a8b4b
initrd.scripts: drop subshell in setup_squashfs_aufs
12 years ago
Fabio Erculiani
79de6f5fd6
initrd.scripts: text if ${device} is set before messing with /sys/power
12 years ago
Fabio Erculiani
ba0a7ea078
linuxrc: call udevadm settle after modules_load
...
udev may still be processing rules and this can cause very bad
things. For instance, modules_load may have loaded an usb host
controller driver and we must wait for the udev rules to terminate.
However, this may lead to other race conditions, but we have
observed that adding scandelay=n where n >= 5 actually fixes the
issue of booting off USB under certain scenarios.
12 years ago
Fabio Erculiani
08cd7890bf
Merge branch 'master' into plymouth
...
Conflicts:
arch/x86/modules_load
arch/x86_64/modules_load
defaults/modules_load
12 years ago
Fabio Erculiani
7505a99952
modules_load: do not forcibly load radeon and nouveau, they may kill a system
12 years ago
Fabio Erculiani
06af416264
Kill trailing whitespaces!!!!!
12 years ago
Fabio Erculiani
90da2a1a66
Drop backticks from initramfs code
12 years ago
Fabio Erculiani
734ab6d239
Merge branch 'master' into cleanup-cruft
...
Conflicts:
gen_initramfs.sh
12 years ago
Fabio Erculiani
08e7dbdfe5
Drop old and no longer working /etc/module_options support
12 years ago
Fabio Erculiani
a8f8f754cc
Revert "software: hardcode busybox version"
...
This reverts commit 04fe3fd1f4
.
12 years ago
Fabio Erculiani
04fe3fd1f4
software: hardcode busybox version
12 years ago
Fabio Erculiani
4313f7ba20
modules_load: add virtio modules
12 years ago
Fabio Erculiani
8ea38a7db9
modules_load: add MODULES_CRYPT, improve backward compatibility
12 years ago
Fabio Erculiani
c29e0ef023
Complete Plymouth integration. Fix the last set of minor bugs
12 years ago
Fabio Erculiani
fb6fa7903d
Make plymouth ask-for-password work as expected
12 years ago
Fabio Erculiani
bea8085444
Introduce initial support to Plymouth
12 years ago
Fabio Erculiani
5d8c6d3873
Use iscsistart from system, don't compile it
12 years ago
Fabio Erculiani
5750b8ac63
Use /sbin/gpg from system, don't compile it
12 years ago
Fabio Erculiani
546d990402
Fuse is not used by anything, kill it
12 years ago
Fabio Erculiani
4288a38895
Drop commented out code, cruft of the past
12 years ago
Fabio Erculiani
f1487fa8b6
Drop support for unionfs, broken and broken
12 years ago
Fabio Erculiani
4d5e8e4e69
linuxrc: don't try to be too smart wrt resolving REAL_ROOT symlink
...
This breaks LVM support with udev, don't do it, there is absolutely no reason
12 years ago
Fabio Erculiani
874707d0f7
gen_compile: use MDADM from system
12 years ago
Fabio Erculiani
7e73673abe
gen_compile: use DMRAID from system, don't compile our own
12 years ago