Age | Commit message (Collapse) | Author | Files |
|
This patch tries to make a union mount in live image. For example,
if aufs is enabled with the aufs-enable.scc configuration fragment,
the init-live.sh script will use aufs to make a union mount.
Although overlayfs is not supported by Yocto kernel yet, this patch
still takes it into consideration with the expect that the related
code should at least serve as a placeholder.
[YOCTO #1487]
[YOCTO #4761]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
The unionfs has been disabled for more than a year and it's not going
to be used any more.
This patch cleans up the unionfs related code.
[YOCTO #4761]
[YOCTO #1487]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Reboot system repeatedly, occasionally found usb automount failed, a
low probability but it happens.
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
none 1024972 4 1024968 0% /dev
/dev/sda3 7689384 3540940 3757840 49% /media/sda3
/dev/sda2 146127424 1238432 137466120 1% /media/sda2
/dev/sda1 17845 14570 2354 86% /media/sda1
/dev/sdb 293400 288560 4840 98% /media/sdb
/dev/sdc4 457632 32 457600 0% /media/sdc4
/dev/sdc1 475018 2321 447749 1% /media/sdc1
/dev/sdd 1382298 1382298 0 100% /media/sdd
/dev/sdc2 475694 2320 448374 1% /media/sdc2
/dev/loop0 270649 181249 75644 71% /
df: /media/sdc3: No such file or directory
tmpfs 1029352 0 1029352 0% /dev/shm
tmpfs 1029352 2816 1026536 0% /run
tmpfs 1029352 0 1029352 0% /sys/fs/cgroup
tmpfs 1029352 4 1029348 0% /tmp
tmpfs 1029352 0 1029352 0% /media/ram
tmpfs 1029352 116 1029236 0% /var/volatile
When boot media has been found, udev will be killed. If udev is busy
to mount other medias at the killing time (especially medias is many),
the above issue will occur occasionally.
Invoke `udevadm settle' before killing udev will resolve this
issue, it watches the udev event queue, and exits if all current
events are handled.
Use variable `_UDEV_DAEMON' to replace hardcoded `udevd' to keep
consistent with previous.
[YOCTO #4745]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
1, This issue happens to BSP only.
After a BSP board is booted with Yocto linux from USB drive, "cat /proc/mounts" shows:
...
/dev/sda3 /media/sda3 ext3 rw,relatime,errors=continue,user_xattr,acl,barrier=1,data=ordered 0 0
/dev/sda1 /media/sda1 ext3 rw,relatime,errors=continue,barrier=1,data=ordered 0 0
/dev/sda2 /media/sda2 ext3 rw,relatime,errors=continue,user_xattr,acl,barrier=1,data=ordered 0 0
...
but actually the directory /media/sda1 doesn't exist at all, "df" shows:
...
df: /media/sda3: No such file or directory
df: /media/sda1: No such file or directory
df: /media/sda2: No such file or directory
...
2, This is because the mount data comes from proc setup during early boot
before the change root, which then uses a different root filesystem, the
media is not in the new root filesystem.
3, During early boot before switch_root, use `mount --move' to move all
medias to the new root filesystem could also fix this issue.
[YOCTO #2064]
[YOCTO #3705]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
This was not the correct fix for this issues, it turns out that
base-files package was getting installed un-intentionally when
rpm-postinsts was split out. The base-files recipe lays down the
link that caused the cat failure.
[YOCTO #4504]
This reverts commit 45e460d0846f0f660128dc06064b597ce40282b3.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
The install boot option was giving the following error when one tried to
install the live image on a permanent storage of a BSP.
cat: write error Invalid argument
Installation image failed
sh: can't access tty: job control turned off
Further digging into the issue, found out that the install script was trying
to do this:
cat /proc/mounts > /etc/mtab
And in the base-files recipe the /etc/mtab is made soft link to /proc/mounts.
So the cat command was failing to write on /etc/mtab. As the contents of
the /proc/mounts is already reflected in the /etc/mtab file due to the
symlink-ing, there is no need for this step to recreate /etc/mtab in the
install script. So just removing this unnecessary step, which solves the
install issue of the live images.
Fixes this bug:
[YOCTO #4229]
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
init-live.sh depends on udev performing automounting, which happens in
udev-extraconf. Explicitly depend on it so that we always have it installed.
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
As per the previous commit, systemd-udevd is now in /sbin/systemd/.
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
For better or worse we need to use base_sbindir for udev's libexec dir. This
updates the initrdscripts to also cover the new location. I'd prevously assumed
that it was already covered but its not. udev internal binaries shouldn't be in
PATH so we have to do this to deal with the issue.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
/etc/udev/scripts/mount.sh is removed by init-install.sh, but the udev
rules file which specifies the invocation of this script is not removed,
thus causing the error message '/etc/udev/scripts/mount.sh: No such file
or directory' shown at a live install.
The /etc/udev/rules/automount.rules no longer works once the mount.sh script
is removed. So we remove it to avoid the error message.
[YOCTO #3924]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Fixes [YOCTO #3870] atom-pc - cannot boot image on netbook after install
The problem here is that grub2 is installed but a grub 1 menu.lst is
created at install time. At boot, grub2 doesn't find a grub.cfg file and
drops to the grub shell.
This happens because the installer is looking for 40_custom (a grub2
file) on the rootfs, but grub2 isn't installed on the rootfs. It exists
in the initramfs. Patching the installer to look on the initramfs
resolves the problem.
Note that the problem may have occurred if grub2 used to be installed on
the rootfs but was later removed. In any case, the installer is HORRIBLE
and really needs to be completely redesigned as part of the deployment
effort. For now, this should get the live image installer limping along
again.
Tested on a Toshiba NB-305.
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: alexandru.c.georgescu@intel.com
Cc: sgw@linux.intel.com
Cc: ross.burton@intel.com
Cc: richard.purdie@intel.com
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Set the RDEPENDS on the specific package that has the dependency and stop it
being applied to for example ${PN}-doc (and others).
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
In cases where other initramfs modules need to rely on
udev running (ie in my case I have to load firmware on
a device that is slow to start) there needs to be a way
to keep it running during the lifecycle of the initramfs
but still be shut down before swith_root is called. I
added a module_pre_hook that will shut down udev before
the finish module is called.
Signed-off-by: Ian Reinhart Geiser <igeiser@devonit.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Previously, the /media/xxx which contains the root image was not
moved to be under the real root filesystem. Because of this, the
output of the 'mount' command is somewhat confusing, that is, it
has some mount point that is not even in the filesystem.
Besides, on some machine, it caused the recovery procedure when we
booted it next time.
This patches fixes this issue by moving the /media/xxx over to be
under the real root filesystem.
[YOCTO #2064]
[YOCTO #3705]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
udevd isn't on $PATH and is in different places depending on what version of
udev is being used. Copy the code from initramfs-framework to search for the
right udevd at boot time instead of hard-coding a location.
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
A live system had duplicate mount points for the same filesystem
in the output of 'mount' command. That was because we didn't handle
the temporary mounts properly before switch_root.
This patch fixes this problem by moving the mount points of some
filesystems to the corresponding directories in the real root filesystem.
[YOCTO #3155]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
Adds "debugshell" command line parameter for live/install images.
If the init live fails to find and mount a root-fs image,
dumps to a shell after timeout so that the developer can figure
what's wrong.
Timeout defaults to 30 seconds, but it can be changed as param
argument.
Prior art in Ubuntu. Also, leaving a system stale isn't good form.
Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
This allows use of udev daemon for different installation destinations
so allowing use of udev's from systemd code for initramfs.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
For a completely quiet boot using recent versions of utilities, the
/etc/fstab and /var/lock need to be available.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
udevd moved location and isn't in $PATH anymore, so use an absolute path to
start it.
The control socket path moved too, so mkdir the directory it's in.
Mounts the new devtmpfs on /dev device tree.
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Alexandru Damian <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
This had nowhere near enough testing...
This reverts commit ffb6928f5783e5202d9849c3a185e29be1d41c63.
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
This patch make "mkdir foo" not fail if foo already exists.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
set -e allows to exit if a command fails. We install a trap and execute
emergency_shell() when either the init script exits or when ctrl-c is
typed (say if we are stuck somewhere and we want to debug it).
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
[YOCTO #1919]
Create a basic EFI installer script modeled after the existing installer
and add it to a new initramfs-live-install-efi recipe. Update the
init-live.sh script to distinguish between LABEL=install and
LABEL=install-efi and select the appropriate script. Add the efi
installer to core-image-minimal-initramfs.
Update grub-efi.bbclass to use "LABEL=install-efi" when it detects a
label of "install". This is clearly not ideal, but a proper fix would
involve decoupling the LABELS assignment from the image-live.bbclass
usage of SYSLINUX_LABELS. We should be able to address that in a
follow-on clean-up series.
V2: Include missing initramfs-live-install-efi_1.0.bb
V3: Rebase after Radu's console_params fix
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Live image installer did not preserve BSP specified console= kernel parameter.
This patch updates the init scripts that are responsible for grub.cfg creation
so that options like console= are passed allong from installer to installed img
[YOCTO #2426]
Signed-off-by: Radu Moisan <radu.moisan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
The current partitioning scheme leaves a 1MB gap between all the
generated partitions by adding a 1 to the end of the last partition to
use as the start of the next. parted is smart enough to not overlap
start and end positions of the same value. This avoids the 1 MB gaps.
Rather than pad the disk with 1MB in the beginning and cut it off at the
MB boundary on the end, we can use 0% and 100% to allow parted to do the
required math and use as much of the disk as possible.
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
|
|
We create both the boot and root partitions as ext3 now, update the
logging accordingly.
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
|
|
swap_size currently uses a hard coded percentage and ignores the
swap_ratio variable. Fortunately they are the same value currently. Make
the calculation use the variable to avoid problems in the future.
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
|
|
Fixes [YOCTO #2385]
The installer only searches for hd[ab] sd[ab]. Some newer BSPs have mmcblk
devices that should be used as the install target. These devices also have a
partition prefix (mmcblk0p1 instead of mmcblk01). As they are detected
asynchronously, it is necessary to add the rootwait kernel parameter to avoid
a race condition trying to mount the root device.
As BSPs like the FRI2 and the sys940x have mmc devices and will have a 1.2
release, we should push this to 1.2.1. The changes are perfectly contained and
easily verified.
Test for an mmcblk device and add the p partition prefix if necessary. Add the
rootwait kernel parameter when an mmcblk device is detected. Replace the series
of explicit umount commands with a single umount using a wildcard. This will
find all the partitions and will not try to unmount non-existant devices. Avoid
copy and paste errors by replacing /dev/${device}${pX} references with the
previously assigned rootfs, bootfs, and swap variables.
These changes have been tested on the FRI2 Sato image which installed to
/dev/mmcblk0 as well as the N450 Sato image which installed to /dev/sda. Both
were successful.
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
are resolved
There are issues with the current unionfs when making a union mount over "/".
Until these are resolved we can't use unionfs for live booting so disable this
temporarily as a workaround.
unionfs is usable in other circumstances.
[YOCTO #2331 workaround]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
[YOCTO #1487]
When booting up with liveCD image, init scripts can't work well on read-only filesystem. Unionfs,
which is supported in Yocto kernel, allows a filesystem to appear as writeable, but without
actually allowing writes to change the filesystem.
Use unionfs to mount rootfs and make root file system can be writen when using liveCD to boot up.
Set UNION_FS variable depending on kernel config, so that it can work with kernel which doesn't
have unionfs feature.
[RP: Mark recipe as machine specific due to kernel dependency]
Signed-off-by: Yang Shi <yang.shi@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
As suggested by Darren Hart
[YOCTO #725]
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
Provides the API and modules for a modular initramfs. The currently
included modules are:
* initramfs-module-debug adds support to dynamic debugging of
initramfs using bootparams
* initramfs-module-udev: enables udev usage
* initramfs-module-mdev: enables mdev usage
* initramfs-module-e2fs: adds support for ext4, ext3 and ext2
filesystems
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
|
|
The script was making some assumptions that enforced many requirement
in the machine kernel configuration and usage, besides it were too
while booting.
Changes included:
* fix indentation;
* rdepends on udev;
* allow use of isofs as module;
* remove rootdelay param parsing as it was unused;
* don't verbosely kill udevd and mknod;
* mount devtmpfs into rootfs, if available, before swithing root;
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
|
|
If we don't set PATH, then the shell will specify one for us.
Busybox adds the sbin dirs, but bash does not. I hit an
issue where bash (among other things) ended up in my initrd
and the boot scripts failed due to a bad default PATH. While
that is a separate issue, we should not be at the mercy of the
shell's default PATH. Update the initrdscripts to all specify:
PATH=/sbin:/bin:/usr/sbin:/usr/bin
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
RDEPENDS is package-specific, so add ${PN} to it.
Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
grub2 needs a different set of install steps from grub 0.97. This
adds them to init-install.sh and adds an install-time check that
determines which version is being used and which steps to use
depending on the version of grub selected.
Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
|
|
[YOCTO #1428]
Because the underlying grub 0.97 the initramfs-live-install RDEPDNEDS on
only supports 32bit x86 target, set the COMPATIBLE_HOST accordingly.
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
|
|
Both hddimg and livecd use init-live.sh script to boot the rootfs.img.
But the paths of rootfs.img in hddimg and livecd are different. So we add
a variable "ISOLINUX" to provide a correct path.
Signed-off-by: Jingdong Lu <jingdong.lu@windriver.com>
|
|
Fix bug: [YOCTO #686]
Because the variable "ROOT_IMAGE" in init-live.sh is not correct, it fails to
run when using liveCD. Modify value of "ROOT_IMAGE" to "isolinux/rootfs.img".
If we want to use liveCD, we also need to add some kernel options related to
CDROM support when compling kernel.
Signed-off-by: Jingdong Lu <jingdong.lu@windriver.com>
|
|
[YOCTO #1151]
Change the offset from the beginning of the disk to aligne the blocks.
In this script, we use mkfs.ext3 to create file system after partition, but we use mkpartfs to create file system repeatly,
and get some warnings about choose another specific tools to create file system for reliability.
So use mkpart instead of mkpartfs and only use mkfs.ext3 to create file system.
Signed-off-by: Mei Lei <lei.mei@intel.com>
|
|
configuration file
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
initramfs-live-install is only compatible with i.86|x86_64 so
shouldn't inherit 'allarch'. This comments it out.
More specifically, commit 52295fa3deef3b0374b99829626d524cefae6001
(Improve handling of 'all' architecture recipes and their interaction
with sstate) sets TARGET_ARCH which due to the COMPATIBLE_HOST setting
in the recipe causes it to be skipped and gives the following error
for any -live build:
NOTE: Resolving any missing task queue dependencies
NOTE: Runtime target 'initramfs-live-install' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['initramfs-live-install']
ERROR: Required build target 'core-image-sato-live' has no buildable providers.
Missing or unbuildable dependency chain was: ['core-image-sato-live', 'core-ima\
ge-minimal-initramfs', 'initramfs-live-install']
ERROR: Nothing RPROVIDES 'initramfs-live-install'
Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Commented out with explaination instead of remove
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
|
The existing PACKAGE_ARCH = "all" mechanism of sharing packages is problematic
with sstate since there are a variety of variables which have target specific
values and the sstate package therefore correctly changes signature depending
on the MACHINE setting.
This patch creates a new "allarch" class which sets:
PACKAGE_ARCH = "all"
(as per the existing convention)
INHIBIT_DEFAULT_DEPS = "1"
(since its not target specific and therefore can't depend on the cross
compiler or target libc)
TARGET_ARCH = "all"
TARGET_OS = "linux"
TARGET_CC_ARCH = "none"
(since these variables shouldn't change between the different packages and
target compiler flags shouldn't be getting used)
PACKAGE_EXTRA_ARCHS = ""
(since we shouldn't be depending on any architecture specific package architectures)
Not all PACKAGE_ARCH = "all" recipes can use this class since some run configure
checks on the compiler. This means they have target specific components and therefore
the "all" classification is incorrect.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
Fixes [BUGID #693]
The init-live.sh script starts udevd in init-live.sh:early_setup(),
but doesn't account for the possibility that the root device may have
already been registered by the kernel before udevd starts up.
If the device is detected after udevd starts up, everything's fine -
udevd gets the 'add' uevent for the device, the root image shows up at
e.g. /media/sda/rootfs.img, and the boot continues.
If however the device is detected before udevd starts up, udevd misses
the 'add' uevent and the root image never shows up, causing it to stay
in the 'waiting for removable media' loop forever.
The 'udevadm trigger' command is meant to be used to avoid this
situation, but init-live.sh doesn't use it. Furthermore, since the
default was changed in udev 152 from 'add' to 'change', the command
needs to explicity name 'add' as the action.
Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
|
|
An investigation into undocumented variables uncovered a few mispellings
of the variable DESCRIPTION.
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
|
|
Add COPYING.MIT file checksum to bb file
Signed-off-by: Mei Lei <lei.mei@intel.com>
|