Commit Graph

83 Commits

Author SHA1 Message Date
Ng, Mei Yeen
1781a9afc6 init-install-efi: fix script for eMMC installation
Running the install option from bootloader to install image to eMMC will fail
with error:
Formatting /dev/mmcblk01 to vfat...
mkfs.fat 3.0.28 (2015-05-16)
/dev/mmcblk01: No such file or directory

This issue impacts both grub and gummiboot install option to eMMC device.
The installation failure is due to the following:
[1] Unable to partition eMMC as the partition prefix 'p' is not appended
The condition checking failed with the additional /dev/ appended with
the target device name.
[2] The partition uuid for boot, root and swap partition is not captured
for eMMC

This fix updated the condition checking and changed the variables to
reference the boot, root and swap partitions for UUID.

[YOCTO #8710]
(From OE-Core rev: a7d081c3db776c8b0734942df6bf96f811f15bd3)

Signed-off-by: Ng, Mei Yeen <mei.yeen.ng@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-12-01 21:32:14 +00:00
Ng, Mei Yeen
f8087475de init-install-efi: fix script for gummiboot loader
After running gummiboot loader install option, the installed target
storage device boot parameter for root=PARTUUID is empty causing boot failure.
This issue is only observed with gummiboot and not with GRUB loader.

This fix assign the rootuuid of the rootfs partition for gummiboot loader.

[YOCTO #8709]
(From OE-Core rev: fd5fa06fe45ca1fdf20df4198ae323967244af5b)

Signed-off-by: Ng, Mei Yeen <mei.yeen.ng@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-12-01 21:32:14 +00:00
Leonardo Sandoval
5acf99d1af init-install-efi.sh: Avoid /mnt/mtab creation if already present
The base-files recipe installs /mnt/mtab (it is a softlink of /proc/mounts),
so if an image includes the latter, there is no new to created it again inside
the install-efi.sh script, otherwise an error may occur as indicated on the
bug's site.

[YOCTO #7971]

(From OE-Core rev: 6c6c6528954952e1e323f5a26afd93b99913e6f2)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-09-18 09:05:21 +01:00
Leonardo Sandoval
445c49ce50 init-install-efi.sh: Check if an installation device is present
In case there is no installation device present, give a better
message to the user and abort installation.

[YOCTO #7971]

(From OE-Core rev: f1596b7169146afcb38db683eb6170a480422d73)

Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-08-01 22:24:07 +01:00
Awais Belal
525ba4ce29 initrdscripts: handle mmc device as installer medium
Platforms which have the capability of using the MMC as an
installer medium will present the same MMC device as an
installation candidate. This happens because the MMC
devices appear as mmcblk<X> and the current script strips
up the <X> which is needed to identify an MMC device
uniqely.
This patch now updates the way device identifier stripping
is done and handles the exclusion of installer device from
installation candidates more generically.

(From OE-Core rev: 80ec9f62791575de4948d7635dc6674abfac2193)

Signed-off-by: Awais Belal <awais_belal@mentor.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-16 15:09:19 +01:00
Ed Bartosh
2173a0ec28 init-install: Properly delete partition table
Fixed deletion of the partition table by increasing
amount of sectors from 2(correct for msdos PT) to 35 as
GPT size is 34 sectors + 1 sector for protective MBR.

(From OE-Core rev: 9be59c02901a6c9ecaaa293aea2e938edf9b122c)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-06-23 11:47:29 +01:00
Ed Bartosh
68d8f6d2e4 init-install: code cleanup: replace /dev/$device -> $device
Shortened code by including /dev/ prefix into variable.

(From OE-Core rev: f2fe5735a2d2c5a5cbadd3486aa24a4931655526)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-06-23 11:47:28 +01:00
Ed Bartosh
99a7c5b50d init-install: code cleanup: Replace tabs with spaces
Cleaned up spaces from init-install* shell scripts.

(From OE-Core rev: 2cc5492a7e196adaab8bc35b48299c9e4d229ebc)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-06-23 11:47:28 +01:00
Ed Bartosh
a10c4481f1 init-install: Specify partition name in parted command line
parted allows to use names for partitions if GPT partition table
is used on the device. msdos partitioning can have only partition
types: 'primary', 'logical' or 'extended'.

Used meaningful partition names in parted command line for GPT
partitioning.

(From OE-Core rev: ef2c6df7fcfd02ed45637f2e6b48f324d7a56b88)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-06-23 11:47:27 +01:00
Ed Bartosh
891cdacb62 init-install: Specify filesystem type in parted command line
Explicitly specified filesystem type for parted mkpart command.
This makes partition table to look more informative.

(From OE-Core rev: 945a5172c2b996f0f307813d061250c39f77ebd2)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-06-23 11:47:26 +01:00
Ed Bartosh
1f7d16b6db init-install: Implement UUID support
Used partition UUID in kernel command line to specify root partition.
Searched root device by file system uuid in GRUB configuration.
Used partition UUID in /etc/fstab to specify swap partition.
Used filesystem UUID in /etc/fstab to specify boot partition.

[YOCTO #6101]

(From OE-Core rev: 4c223e0bd8770909dca1131580878eba6855e085)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-06-23 11:47:25 +01:00
Ed Bartosh
04bff65585 init-install: Use GPT table with GRUB 2
Changed partition type from 'msdos' to 'gpt'.
Added special partition for grub stage2 bootloader.

NOTE: This is done only for GRUB 2 as legacy GRUB is
rarely used and doesn't support GPT partitions.

(From OE-Core rev: 9544ac920d65edb7ddb267482c84d6fc1b464912)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-06-23 11:47:25 +01:00
Ed Bartosh
78bacee0ac init-install-efi: Implement UUID support
Using UUID in favor of device names is more reliable as
UUID names are persistent.

Device names can change as the order of adding device nodes
is arbitrary. This sometimes results in device names switching
on each boot, which can cause system fail to boot.
Persistent naming solves these issues.

Used partition UUID in kernel command line to specify root partition.
Used partition UUID in /etc/fstab to specify swap partition.
Used filesystem UUID in /etc/fstab to specify boot partition.

[YOCTO #6101]

(From OE-Core rev: f51b050e0df6ceaea07fbda99f54dc4aeaab334c)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-06-23 11:47:24 +01:00
Awais Belal
e1de8af487 initrdscripts: make boot drive detection more generic
The init script that invokes install and install-efi scripts
passes the first parameter that identifies the boot drive but
in cases when this disk is labeled and kernel configurations
allow disk labeling under /run/media/ this would pass the disk
label.
The earlier implementation considered that the drive name will
be passed and in case the label is passed it fails and provides
the boot drive as an option for installation driver.
We now use a more generic approach to identify the boot drive
which can handle both drive name as well as label if passed.

(From OE-Core rev: 1964b697ddadc59e27087f9f1f6b24236f4addcc)

Signed-off-by: Awais Belal <awais_belal@mentor.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-05-24 07:19:18 +01:00
Reinette Chatre
fc15878af4 init-install-efi.sh: fix gummiboot entry installation
After selecting the "install" gummiboot option of a Live image we are
seeing boot failure resulting from the gummiboot entries not being
installed correctly. This seems to be a problem in this init-install-efi.sh
script where it incorrectly installs the gummiboot entries into the root
filesystem, not the boot partition. We fix it by installing the entries in
the boot partition.

(From OE-Core rev: c9b06c79ed8a082d1b385e9f61721aeeda9bf1af)

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Acked-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-04-21 07:20:27 +01:00
Drew Moseley
cade601651 init-install: Skip CDROM devices during probe
(From OE-Core rev: e8ee8b765183fb3ebe5e94df6375c2fad111dcc7)

Signed-off-by: Drew Moseley <drew_moseley@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-02 09:26:17 +01:00
Drew Moseley
112674d9fc init-install: Strip partition number from live_dev_name
This is needed in case the boot disk was created with mkdiskimage.
In that case the parameter passed is a variant of /dev/sda4 which
includes the partition number.  Without this change this install script
will offer to install onto the live media.

(From OE-Core rev: 9f6d7d42eaad225698de730d5c76bfe9523f4a78)

Signed-off-by: Drew Moseley <drew_moseley@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-02 09:26:16 +01:00
Drew Moseley
7a81bd4c34 init-install-efi.sh: Verify /sys based files exist before displaying them
Some mmc cards do not have all the data files in /sys/block
populated.  Check for existence before displaying the files
to avoid erroring out of the install process.

(From OE-Core rev: 4abe5563f61a228963e1e442ebc2df9f2d01be80)

Signed-off-by: Drew Moseley <drew_moseley@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-02 09:26:16 +01:00
Brian Lloyd
ba46e51717 Move boot media to /media/realroot for easy access after boot.
There are cases where software after boot may need to know the
current boot disk.  Under the current system, it is not guaranteed
which disk is the boot.  While /media/sda is a good guess, it
isn't always right, nor is it a good assumption that only one boot
disk is in the system.  This gives a standard path to the original
boot disk mount which can be used to, for instance, update the
syslinux file on the boot media with a newer kernel, or updating
the boot parameters to add user options for future boots.  Knowing
which disk is the boot media keeps from updating the non-boot
disk when for instance multiple syslinux boot medias are plugged in
(ie ensure correct syslinux is updated when the booted system is
updated).

(From OE-Core rev: 2be3b2607fd164d18498299dbfc020ff17dd2ca9)

Signed-off-by: Brian Lloyd <blloyd@familyhonor.net>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-10 17:38:33 +01:00
Drew Moseley
2f7c92c4b5 init-install-efi.sh: improve hard drive searching process
(This patch was originally done against init-install.sh in
OE-Core rev 358f0584d779825307eec08c023b5ff14e72cf9e)

Previously, only unremovable hard drives are searched and are treated
as candidates of target disks to intall into.

However, it's possible that we're going to install the live image into
a removable media such as an USB. This patch enables this possibility.

In addition, this patch presents more information about the hard drives
so that user may have more knowledge about which hard drive they are
going to install their image into.

(From OE-Core rev: 7386acf4ab63a5959e4907b29459b767f2bf2fdb)

Signed-off-by: Drew Moseley <drew_moseley@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-10 17:38:33 +01:00
Drew Moseley
ae724e46f4 init-install-efi.sh: fix to handle the boot partition correctly
(This patch was originally done against init-install.sh in
OE-Core rev aa67b1333b4774e1845f562085f7048df65a644f)

Previously, the boot partition was created for the target hard drive
but there was no corresponding entry for it in /etc/fstab. Besides,
even if the boot partition was mounted, it would just result in odd
directory hierarchy like /boot/boot/grub. However, what we really need
is /boot/grub. This patch fixes this problem.

Besides, for future maintance work, this patch also renames some of the
intermediate directories. It uses more descriptive names like /tgt_root
and /src_root. The name of /ssd is dropped.

(From OE-Core rev: 3b1bae7ad8d36930aae840175c6a3433c1469772)

Signed-off-by: Drew Moseley <drew_moseley@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-10 17:38:33 +01:00
Drew Moseley
7b861d0eeb init-install.sh: Verify /sys based files exist before displaying them
Some mmc cards do not have all the data files in /sys/block
populated.  Check for existence before displaying the files
to avoid erroring out of the install process.

(From OE-Core rev: 1d73e3f9d9977382efdb0c111c556c6048bd60b4)

Signed-off-by: Drew Moseley <drew_moseley@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-10 17:38:32 +01:00
Corneliu Stoicescu
5aec84dc65 init-install-testfs.sh: add '--hotkey x' to 'test' menuentry
Add a hotkey for the GRUB 'test' menuentry. This can be used by expect scripts to boot into 'test' when doing runtime hardware tests.

(From OE-Core rev: 17b97fd6c724ba6e506cbadb18facdfd9c472e79)

Signed-off-by: Corneliu Stoicescu <corneliux.stoicescu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-03 17:41:15 +01:00
Drew Moseley
184dddfb9a initrdscripts: Try to boot if boot label is unknown
The init-live.sh scripts assumes that the boot label set by
the LABELS variable is either "boot", "install", or
"install-efi".  If that variable is overridden to something else
we fall off the end of the case statement and the system locks
up.  If the boot label is unknown, at least attempt to boot.

(From OE-Core rev: 98353862c08be2f1724aaad7aa4ed0521e3621f2)

Signed-off-by: Drew Moseley <drew_moseley@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-29 09:04:21 +01:00
Cristian Iorga
809350a23f init-install-testfs: create signature file for master image
Also small cosmetic changes.

(From OE-Core rev: 33c464269155f268cb08f086e530187bac61c299)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-23 17:54:30 +01:00
Cristian Iorga
a8f453d5b2 init-install-testfs: fix typo
_EOF marker was not used properly
(space left before end of line).

(From OE-Core rev: 913fd224499c57c7596bd49e1eec5f570c3edf68)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-23 17:54:30 +01:00
Cristian Iorga
566cba1f12 oe-core/init-install-testfs.sh: do not overwrite /etc/mtab if the link already exist
Overwriting of /etc/mtab would fail as below if the /etc/mtab link already
exist during installation phase, this patch fix this problem by checking
existance of the link before try to overwrite it.

Error message during installation if the /etc/mtab exists:
"cat: /proc/mounts: input file is output file"

(From OE-Core rev: 5cd96e28825d345650be878d4b7be4fea2996839)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-23 17:54:30 +01:00
Cristian Iorga
94fea43746 init-install-testfs: add grub serial line support
For automated hardware testing, boot process control
via serial interface is needed. As such, in grub, serial
line support is added upon testmaster image install.

Also add a specific timeout to automatically start
the master image upon start of testing phase.

Tested on multiple hardware targets without issues.

(From OE-Core rev: 219228805a4d5d822894c8f6c2526e1b9a8609ff)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-23 17:54:30 +01:00
Shan Hai
e922be50b3 oe-core/init-install.sh: do not overwrite /etc/mtab if the link already exist
Overwriting of /etc/mtab would fail as below if the /etc/mtab link already
exist during installation phase, this patch fix this problem by checking
existance of the link before try to overwrite it.

Error message during installation if the /etc/mtab exists:
"cat: /proc/mounts: input file is output file

(From OE-Core rev: 26a5121e966f465386da4ead40cc558fd877ce2b)

Signed-off-by: Shan Hai <shan.hai@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-10 17:24:19 +01:00
Roy Li
c2e63957d5 grub-2.00: remove our 40_custom
We have this in recipes-bsp/grub/grub/40_custom:

[snip]
menuentry "Linux" {
    set root=(hd0,1)
    linux /vmlinuz root=__ROOTFS__ rw __CONSOLE__ __VIDEO_MODE__ __VGA_MODE__ quiet
}
[snip]

These lines are only for initrdscripts/files/init-install.sh, the side
effect is that it would make the target's grub-mkconfig doesn't work
well since the 40_custom will be installed to /etc/grub.d/40_custom, the
grub-mkconfig will run the 40_custom, and there will always be a
'menuentry "Linux"' menu in grub.cfg no matter it is valid or not, we
can do this in init-install.sh rather than grub to fix the problem,
which is also much simpler.

We have done the related work in init-install.sh, now we need remove our own
40_custom, and use grub's own 40_custom which is the right one.

(From OE-Core rev: e5f6dc48930c8ff35df5cff3550ec2ee86641faf)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Roy Li <rongqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-06 10:24:07 +01:00
Robert Yang
45bbe3528e initramfs-live-install: avoid using grub.d/40_custom
We have this in recipes-bsp/grub/grub/40_custom:

[snip]
menuentry "Linux" {
    set root=(hd0,1)
    linux /vmlinuz root=__ROOTFS__ rw __CONSOLE__ __VIDEO_MODE__ __VGA_MODE__ quiet
}
[snip]

These lines are only for initrdscripts/files/init-install.sh, the side
effect is that it would make the target's grub-mkconfig doesn't work
well since the 40_custom will be installed to /etc/grub.d/40_custom, the
grub-mkconfig will run the 40_custom, and there will always be a
'menuentry "Linux"' menu in grub.cfg no matter it is valid or not, we
can do this in init-install.sh rather than grub to fix the problem,
which is also much simpler.

(From OE-Core rev: 8ae89d08454c11035eb2826a06e2243c9f2568b4)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-27 16:11:53 +01:00
Chen Qi
8293f56468 initrdscripts: fix for /run/media
mount.sh in udev-extraconf was modified to use /run/media instead
of /media. Unfortunately, our scripts in initrdscripts have some
dependency on the auto-mounting mechanism proviced by udev-extraconf.
So these scripts should also be fixed to use /run/media instead /media,
otherwise, our live image cannot work correctly.

(From OE-Core rev: be0327b6a900be5434b6b1f08277faf2f65d5da8)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-20 14:53:12 +01:00
Chen Qi
77b4b25c36 init-live.sh: list block devices correctly
Instead of using 'ls /dev/sd*' command to list block devices, we
should rather use 'cat /proc/partitions'.

(From OE-Core rev: fc5dfad6490d0b3f2529f84ae9dfbd6b00b5c380)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-05-20 14:53:12 +01:00
Stefan Stanacar
a4447e3650 initrdscripts: add install scripts with a second rootfs
These are meant to be used by a master image, for a simple
initial setup.
The install scripts are similar to the default ones, but:
- custom partitioning, replaces the swap partiton with a second root filesystem
- adds labels to the partitions
- preconfigures a boot loader entry for the second rootfs

Part of [YOCTO #5614]

(From OE-Core rev: 39fcab00cd3b85d40966689e31b4c7748f630739)

Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-31 22:53:46 +01:00
Stefan Stanacar
5f05bdda0b classes: Add gummiboot class
Adds a gummiboot class similar to grub-efi class and makes the necessary
changes so it can be used for live/hddimg images as well.

One can set EFI_PROVIDER = "gummiboot" in local.conf to use gummiboot instead of grub-efi.
Gummiboot requires some kernel options that are not enabled by default, so one has to build
with KERNEL_FEATURES_append = " cfg/efi-ext".

The install scripts have been updated too, keeping the old behaviour around,
but accounting for the new boot loader config files (if they exist).
It can be argued that the installer and bootimg are a bit wierd and not necessarily correct,
but I wanted to have the exact same behviour with gummiboot.
With the default EFI_PROVIDER = "grub-efi" nothing changes, everthing should be just as before.

I've tested live boot, install and normal boot on:
    - FRI2
    - genericx86-64 on NUC
with:
  EFI_PROVIDER = "gummiboot"
  KERNEL_FEATURES_append = " cfg/efi-ext"
in local.conf.

(From OE-Core rev: b457e40fc69cc6503dc566f16495f03606e5333b)

Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-11 09:30:14 -07:00
Saul Wold
d9d6f01aa7 initrdscripts: Add rootimage option
This allows for setting the ROOT_IMAGE name on the kernel command line

[YOCTO #5387]

(From OE-Core rev: 00e3acde7910a5fb1d2e6b71187f2d9283319e71)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-28 14:01:11 +00:00
Krzysztof Sywula
e917b074d6 initrdscripts: add $CMDLINE to init-live switch_root
init-live.sh: $CMDLINE variable should be provided to switch_root
to let user specify runlevel on grub command line.
Feeding with -c /dev/console as well as busybox switch_root enables that option.

(From OE-Core rev: 5a2f4feeaac4f9278fa0cf808c2f495f0c19324f)

Signed-off-by: Krzysztof Sywula <krzysztof.m.sywula@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-01-16 12:05:48 +00:00
Chen Qi
abbc34580e init-live.sh: remove the '-c /dev/console' for switch_root
The '-c DEV' option is specific to the switch_root provided by busybox.
switch_root from util-linux doesn't recognize this option. As a result,
if we we this init-live.sh script together with util-linux, we would get
a kernel panic when executing switch_root.

Besides, this option doesn't seem to have any useful effect as far as I
can see. Removing it doesn't affect the behaviours of our live images.

(From OE-Core rev: 6f50ccb8ae9e11870f99bb3b191f677c3633cd0d)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-05 14:25:29 +00:00
Darren Hart
1917544d2f init-install-efi.sh: Remove unnecessary udev rules file to avoid errors
Fixes [YOCTO #5233]

Modeled after Chen Qi's fix to [YOCTO #3924] from oe-core commit:
6b6db7b4fb7aa17b8e29076decc830149b9d35bc
init-install.sh: remove unnecessary udev rules file to avoid error messages

/etc/udev/scripts/mount.sh is removed by init-install-efi.sh, but the
udev rules file which specifies the invocation of this script is not
removed, thus causing the error message during a live install:

/etc/udev/scripts/mount.sh: No such file or directory

The /etc/udev/rules/automount.rules no longer works once the mount.sh
script is removed. Remove it to avoid the error message.

(From OE-Core rev: 1f5a2b616d902b1158e348bf8c33b6d36e21cadc)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: mihaix.lindner@linux.intel.com
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-24 17:24:14 +01:00
Darren Hart
e42fefe717 init-install-efi.sh: Fix root= specification
Fixes [YOCTO #5237]

The current grub.cfg manipulation depends on an existing root=
parameter. If this doesn't exist, the correct root= parameter will not
be added.

Instead, remove any existing root= parameters and add the correct one
explicitly.

(From OE-Core rev: 14b124122c1b7d10b9a3a96fe4617c6fc1c661c5)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: mihaix.lindner@linux.intel.com
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-24 17:24:14 +01:00
Ross Burton
242ad61580 Revert "initrdscripts: look for new systemd-udevd location"
systemd-udevd is back in /lib, so revert this change.

This reverts commit 27bb516be4.

(From OE-Core rev: 3f6324a86cb8c1c253af06a1033ac71fa61c58d3)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:19 +01:00
Chen Qi
4c3f8d2063 init-live.sh: distinguish between a read-only image and a read-write image
The iso and hddimg share a common concept of 'live image', and they
use the same initramfs and thus the same init. However, that init
script in initramfs made a wrong assumption that the rootfs image
was read-only by itself. This is apparently not true for hddimg.

To make things work as expected, this init script should at least
distinguish between a read-only rootfs image and a read-write one.

This patch adds this ability to the init script. After this change,
the init script would be able to check whether the rootfs image is
read-only or not. If the rootfs image is read-write, the image will
be mounted and then booted directly. No union mounts will be attempted
in this case.

[YOCTO #5164]

(From OE-Core rev: 29f869b68a9017502f75915784a924f0fe9d4be1)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 11:05:05 +01:00
Chen Qi
059db226a0 init-install.sh: fix to handle the boot partition correctly
Previously, the boot partition was created for the target hard drive
but there was no corresponding entry for it in /etc/fstab. Besides,
even if the boot partition was mounted, it would just result in odd
directory hierarchy like /boot/boot/grub. However, what we really need
is /boot/grub. This patch fixes this problem.

Besides, for future maintance work, this patch also renames some of the
intermediate directories. It uses more descriptive names like /tgt_root
and /src_root. The name of /ssd is dropped.

[YOCTO #5018]

(From OE-Core rev: aa67b1333b4774e1845f562085f7048df65a644f)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-20 15:31:25 +01:00
Chen Qi
d9e7fbad52 init-install.sh: improve hard drive searching process
Previously, only unremovable hard drives are searched and are treated
as candidates of target disks to intall into.

However, it's possible that we're going to install the live image into
a removable media such as an USB. This patch enables this possibility.

In addition, this patch presents more information about the hard drives
so that user may have more knowledge about which hard drive they are
going to install their image into.

[YOCTO #5018]

(From OE-Core rev: 358f0584d779825307eec08c023b5ff14e72cf9e)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-20 15:31:25 +01:00
Chen Qi
7ab93ec664 init-live.sh: make $ROOT_MOUNT/media writable when necessary
If the live image is mounted as read-only, we cannot make necessary
directories under $ROOT_MOUNT/media, so trying to move the mount points
lead to errors.

So in case that no unification filesystem mechanism is available in kernel
and the rootfs is mounted as read-only, we mount tmpfs on $ROOT_MOUNT/media
so that it's possible to make necessary directories under it.

[YOCTO #4881]
[YOCTO #4103]

(From OE-Core rev: aeeb3418ff08dfd29edc0ce8a41cb6887d4e11fe)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-16 11:14:34 +01:00
Ross Burton
ec0e7f7fc7 Revert "initrdscripts: mount / as read-only when live-booting"
My test environment must have been messed up as now hddimgs are failing to
re-mount / as read-write.

This reverts commit 7af92f8fa3.

(From OE-Core rev: 4174dcbd3328e6badb269d09b024f2b83408bd8c)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-07-29 13:09:15 +01:00
Ross Burton
7af92f8fa3 initrdscripts: mount / as read-only when live-booting
So that the root filesystem can be fsck'd properly, mount it read only.  Either
initscripts or systemd will re-mount as read-write in early boot.

(From OE-Core rev: 1ace2bdd8d6d950038fb6d9b83f6eceba276f588)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-07-24 11:35:33 +01:00
Chen Qi
29e55997ca init-live.sh: try to make a union mount when possible
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]

(From OE-Core rev: 3cd6fedd815688b2f3fd97a56feb5f8696ebeace)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-06-28 11:02:40 +01:00
Chen Qi
76ccbba748 initrdscripts: unionfs cleanup
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]

(From OE-Core rev: ba5e437bc7335468a70ea293496f78e1a9d66287)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-06-28 11:02:40 +01:00
Hongxu Jia
337125545d init-live.sh: fix automount failed occasionally
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]

(From OE-Core rev: 2f209a7045a93e7e42f90418a42f464827b4a7f8)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-06-28 09:14:04 +01:00