| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
This fixes "error while loading shared libraries libgcc_s.so.1 cannot
open shared object file" when attempting to import a root pool on ARM.
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
|
|
|
| |
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
|
|
|
|
|
|
| |
Proper use of call_func_timeout() requires that we return an exit status
of 1 upon success.
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
|
|
|
|
|
| |
zdb is useful for debugging during early boot.
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Although the shipping kernel-config with genkernel has ~10 of these
various RTC hardware drivers marked as modules, the resulting built
kernel & initramfs has these things disabled. Here's an excerpt from
arch/x86_64/kernel-config:
CONFIG_RTC_CLASS=m
CONFIG_RTC_DRV_DS1374=m
CONFIG_RTC_DRV_MAX6900=m
CONFIG_RTC_DRV_M41T80=m
CONFIG_RTC_DRV_CMOS=m
CONFIG_RTC_DRV_DS1553=m
CONFIG_RTC_DRV_DS1742=m
CONFIG_RTC_DRV_STK17TA8=m
CONFIG_RTC_DRV_M48T86=m
CONFIG_RTC_DRV_M48T59=m
CONFIG_RTC_DRV_V3020=m
The problem is that CONFIG_RTC_CLASS is a boolean, not tristate, so =m
is not valid, and so all things depending on RTC_CLASS get dropped from
the config. Changing this to CONFIG_RTC_CLASS=y should fix the issue, I
have tested this locally with success.
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
genkernel's initramfs image is built incrementally by appending to the
cpio file. The introduction of copy_binaries resulted in copying
libraries from the host system, which causes the cpio to include certain
libraries multiple times whenever different stages depended upon the
same library. We address this by extracting the cpio to a temporary
directory and then compressing it again to "finalize" it. The extraction
eliminates the duplicate files.
This makes generated initramfs images slightly smaller and in theory,
should make the initramfs load slightly faster.
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
|
|
|
|
|
| |
These additional features were suggested by Fabio in bug #472312.
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
|
|
|
|
|
|
|
|
|
| |
Commit 3a054014e880e5b1ff28e3d87767c45a073da6b5 replaced our modprobe
with busybox's modprobe. Unfortunately, this caused a regression where
busybox's modprobe fails to properly load certain modules. This can be
addressed by abandoning CONFIG_MODPROBE_SMALL=y. We also set a few other
features to make module loading more fully featured.
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit 3a054014e880e5b1ff28e3d87767c45a073da6b5 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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
|
|
|
|
|
|
| |
zpool.cache and zdev.conf are optional files, so instead of warning when
they are missing, we print a message when they are copied.
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
This should have been included as part of commit 12e4bee, but it was
omitted, so add it now.
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
|
|
|
|
|
|
| |
Every other tool that we run has its output suppressed, so lets be
consistent.
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
|
|
|
|
|
|
| |
The old command we used to generate a change history for announcement
emails no longer works, so we switch to git-shortlog.
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
|
|
|
| |
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
|
|
|
| |
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
|
|
|
| |
Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Users were seeing the following error message printed:
cp: cannot stat ‘/etc/zfs/zdev.conf’: No such file or directory
Both zdev.conf and zpool.cache are optional files. We print a warning
when they are absent, but cp printed its own error in addition to our
warning. We suppress that.
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
|
|
|
|
|
|
|
|
| |
Commit 3a054014e880e5b1ff28e3d87767c45a073da6b5 replaced our modprobe
with busybox's modprobe, which broke the code responsible for making
options from /etc/modprobe.d work. We replace the old mechanism with a
new one that copies /etc/modprobe.d to correct that.
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
|
|
|
|
|
|
|
| |
sysctl is necessary to modify chroot restrictions when performing
recovery operations on Gentoo Hardened systems.
Reported-by: Matthew Thode <prometheanfire@gentoo.org>
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
initialization
"quiet" is already used by the kernel to avoid printing messages on the
console unless they are errors or warnings. Genkernel should do the same
wrt its initramfs initialization code.
This has also the advantage of improving the boot speed.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
scandelay=<secs> should be always preferred. Moreover, nowadays
automatically sleeping waiting for USB storage to come up in
the way we were used to do it doesn't work as one expects, because
USB is very common and USB storage devices are very likely to be
present on a system.
Furthermore, the initialization code after setup_slowusb is already
waiting for devices to come up.
|
|
|
|
|
| |
While this makes out of the box booting a bit harder on some ancient CD/DVD
drives, it really speeds up the common use case by not sleeping for 3 seconds.
|
| |
|
|
|
|
| |
Linux 2.2 and 2.4 are no longer supported. RIP old kernels.
|
|
|
|
|
|
|
| |
Our modprobe is an ancient heritage from the past, probably dating to
a time where busybox's modprobe features were limited. There is no reason
at all to keep using our own version instead of the busybox one.
This commit also makes modules_scan 15% faster.
|
|
|
|
|
|
|
|
| |
Nearly every general documentation including the one in the
kernel tree and the scripts for GRUB2 all expects this flag
to work.
Signed-off-by: Peter Hjalmarsson <xake@rymdraket.net>
|
|
|
|
| |
Thanks to Adrian.Bassett@hotmail.co.uk for reporting this.
|
|
|
|
|
|
| |
As suggested by Vapier in bug #450688.
Signed-off-by: Peter Hjalmarsson <xake@rymdraket.net>
|
|
|
|
|
|
|
|
| |
On some system the output from the new lddtree does not match with what
genkernel expects, however lddtree have insted gained a new option that
essentially gives what we want with less code.
Signed-off-by: Peter Hjalmarsson <xake@rymdraket.net>
|
|
|
|
|
|
|
|
| |
If INIT_OPTS='' is not specified before the argument loop, scoping rules
will prevent it from being seen by the switch_root invocation.
Signed-off-by: Toralf Förster <toralf.foerster@gmx.de>
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
|
|
|
|
|
|
| |
Clean up documentation and functionality of "part" argument to
initramfs. It is meant to imitate the same option to the kernel.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
|
|
|
|
|
|
|
| |
The default value of ${ZPOOL_USAGE} is unset, quoting it would result into
a "" argument passed to zpool. The workaround to this is to use "dozfs=force"
boot argument.
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Whenever /etc/zfs/{zdev.conf,zpool.cache} was missing, we would fail.
zpool.cache is not generated during cross compilation, which causes a
failure in Catalyst when building LiveCDs. Users that do not follow a
strict set of installation instructions can also suffer failures as a
consequence of this.
zpool.cache includes information about known pools that enables ZFS to
detect situations where an entire pool disappears. It is also required
to do pool import in corner cases, such as those those involving
file-based pools, and has the beneficial effect of reducing pool import
times. Unconditional omission of zpool.cache in general is not an
option, but for the situations identified, it is okay to convert the
failure into a warning, which is what we do.
Reported-by: Rick Farina <zero_chaos@gentoo.org>
Reported-by: Alexander Zubkov <green@msu.ru>
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
| |
|
|
|
|
| |
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
|
|
|
| |
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
|
|
|
|
|
|
|
| |
LUKS keydevs now support mount by UUID/LABEL.
X-Gentoo-Bug: 378105
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=378105
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
|
|
|
| |
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
|
|
|
| |
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
|
|
|
|
|
|
|
|
| |
We do not support ramdisk, only initramfs nowdays.
So init= is a dead command, and we may as well have it do the same as
it does for dracut and in the Linux kernel documentation.
(Use rdinit to choose the initramfs init file)
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
We only support creating initramfs nowdays, so RAM disk support is not needed.
Since initramfs does not need root=/dev/ram0 (and we actually ignore it if it is set),
we should not tell people to use it.
We should also stop tell people to use real_root.
Conflicts:
genkernel
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
|
|
|
| |
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
| |
|