Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(177)

Side by Side Diff: chromeos-base/chromeos-initramfs/chromeos-initramfs-9999.ebuild

Issue 4120005: kernel, chromeos-initramfs: overhaul for recovery support (Closed) Base URL: http://git.chromium.org/git/chromiumos-overlay.git
Patch Set: disable shim script in official mode pending http://crosbug/8390 Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chromeos-base/chromeos-initramfs/files/init » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2 # Distributed under the terms of the GNU General Public License v2 2 # Distributed under the terms of the GNU General Public License v2
3 3
4 EAPI=2 4 EAPI=2
5 5
6 inherit cros-workon 6 inherit cros-workon
7 7
8 DESCRIPTION="Create Chrome OS initramfs" 8 DESCRIPTION="Create Chrome OS initramfs"
9 HOMEPAGE="http://src.chromium.org" 9 HOMEPAGE="http://src.chromium.org"
10 10
11 LICENSE="GPL-2" 11 LICENSE="GPL-2"
12 SLOT="0" 12 SLOT="0"
13 KEYWORDS="~x86 ~arm" 13 KEYWORDS="~x86 ~arm"
14 IUSE="" 14 IUSE=""
15 DEPEND="app-arch/cpio 15 DEPEND="app-arch/cpio
16 sys-apps/busybox 16 sys-apps/busybox
17 sys-apps/rootdev
18 sys-fs/lvm2 17 sys-fs/lvm2
19 chromeos-base/vboot_reference 18 chromeos-base/vboot_reference
20 chromeos-base/chromeos-installer" 19 chromeos-base/chromeos-installer"
21 RDEPEND="" 20 RDEPEND=""
22 21
23 CROS_WORKON_LOCALNAME="../platform/initramfs" 22 CROS_WORKON_LOCALNAME="../platform/initramfs"
24 CROS_WORKON_PROJECT="initramfs" 23 CROS_WORKON_PROJECT="initramfs"
25 24
26 INITRAMFS_TMP_S=${WORKDIR}/initramfs_tmp 25 INITRAMFS_TMP_S=${WORKDIR}/initramfs_tmp
27 # Suffixed with cpio or not recognize filetype. 26 # Suffixed with cpio or not recognize filetype.
28 INITRAMFS_FILE="initramfs.cpio.gz" 27 INITRAMFS_FILE="initramfs.cpio.gz"
29 28
30 build_initramfs_file() { 29 build_initramfs_file() {
31 mkdir -p ${INITRAMFS_TMP_S}/bin ${INITRAMFS_TMP_S}/sbin 30 mkdir -p ${INITRAMFS_TMP_S}/bin ${INITRAMFS_TMP_S}/sbin
32 mkdir -p ${INITRAMFS_TMP_S}/usr/bin ${INITRAMFS_TMP_S}/usr/sbin 31 mkdir -p ${INITRAMFS_TMP_S}/usr/bin ${INITRAMFS_TMP_S}/usr/sbin
33 mkdir -p ${INITRAMFS_TMP_S}/etc ${INITRAMFS_TMP_S}/dev 32 mkdir -p ${INITRAMFS_TMP_S}/etc ${INITRAMFS_TMP_S}/dev
34 mkdir -p ${INITRAMFS_TMP_S}/root ${INITRAMFS_TMP_S}/proc 33 mkdir -p ${INITRAMFS_TMP_S}/root ${INITRAMFS_TMP_S}/proc
35 mkdir -p ${INITRAMFS_TMP_S}/sys ${INITRAMFS_TMP_S}/usb 34 mkdir -p ${INITRAMFS_TMP_S}/sys ${INITRAMFS_TMP_S}/usb
36 mkdir -p ${INITRAMFS_TMP_S}/newroot ${INITRAMFS_TMP_S}/lib 35 mkdir -p ${INITRAMFS_TMP_S}/newroot ${INITRAMFS_TMP_S}/lib
37 » mkdir -p ${INITRAMFS_TMP_S}/stateful 36 » mkdir -p ${INITRAMFS_TMP_S}/stateful ${INITRAMFS_TMP_S}/tmp
37 » mkdir -p ${INITRAMFS_TMP_S}/log
38 38
39 # Insure cgpt is statically linked 39 # Insure cgpt is statically linked
40 file ${ROOT}/usr/bin/cgpt | grep -q "statically linked" || die 40 file ${ROOT}/usr/bin/cgpt | grep -q "statically linked" || die
41 41
42 # Load libraries for busybox and dmsetup 42 # Load libraries for busybox and dmsetup
43 # TODO: how can ebuilds support static busybox? 43 # TODO: how can ebuilds support static busybox?
44 LIBS=" 44 LIBS="
45 ld-linux.so.2 45 ld-linux.so.2
46 libm.so.6 46 libm.so.6
47 libc.so.6 47 libc.so.6
48 ../usr/lib/libcrypto.so.0.9.8
48 libdevmapper.so.1.02 49 libdevmapper.so.1.02
49 libdl.so.2 50 libdl.so.2
50 libpam.so.0 51 libpam.so.0
51 libpam_misc.so.0 52 libpam_misc.so.0
52 libpthread.so.0 53 libpthread.so.0
53 librt.so.1 54 librt.so.1
55 libz.so.1
54 " 56 "
55 for lib in $LIBS; do 57 for lib in $LIBS; do
56 cp ${ROOT}/lib/${lib} ${INITRAMFS_TMP_S}/lib/ || die 58 cp ${ROOT}/lib/${lib} ${INITRAMFS_TMP_S}/lib/ || die
57 done 59 done
58 60
59 cp ${ROOT}/bin/busybox ${INITRAMFS_TMP_S}/bin || die 61 cp ${ROOT}/bin/busybox ${INITRAMFS_TMP_S}/bin || die
62
63 # For verified rootfs
60 cp ${ROOT}/sbin/dmsetup ${INITRAMFS_TMP_S}/bin || die 64 cp ${ROOT}/sbin/dmsetup ${INITRAMFS_TMP_S}/bin || die
61 » cp ${ROOT}/usr/bin/rootdev ${INITRAMFS_TMP_S}/bin || die 65
66 » # For recovery behavior
67 » cp ${ROOT}/usr/bin/tpmc ${INITRAMFS_TMP_S}/bin || die
68 » cp ${ROOT}/usr/bin/dev_sign_file ${INITRAMFS_TMP_S}/bin || die
69 » cp ${ROOT}/usr/bin/vbutil_kernel ${INITRAMFS_TMP_S}/bin || die
62 70
63 cp ${ROOT}/usr/bin/cgpt ${INITRAMFS_TMP_S}/usr/bin || die 71 cp ${ROOT}/usr/bin/cgpt ${INITRAMFS_TMP_S}/usr/bin || die
64 cp ${ROOT}/usr/sbin/chromeos-common.sh ${INITRAMFS_TMP_S}/usr/sbin || di e 72 cp ${ROOT}/usr/sbin/chromeos-common.sh ${INITRAMFS_TMP_S}/usr/sbin || di e
65 cp ${ROOT}/usr/sbin/chromeos-findrootfs ${INITRAMFS_TMP_S}/usr/sbin || d ie 73 cp ${ROOT}/usr/sbin/chromeos-findrootfs ${INITRAMFS_TMP_S}/usr/sbin || d ie
66 74
67 ln -s "busybox" "${INITRAMFS_TMP_S}/bin/sh" 75 ln -s "busybox" "${INITRAMFS_TMP_S}/bin/sh"
68 cp "${FILESDIR}/init" "${INITRAMFS_TMP_S}/init" || die 76 cp "${FILESDIR}/init" "${INITRAMFS_TMP_S}/init" || die
69 chmod +x "${INITRAMFS_TMP_S}/init" 77 chmod +x "${INITRAMFS_TMP_S}/init"
70 78
71 # The kernel emake expects the file in cpio format. 79 # The kernel emake expects the file in cpio format.
72 pushd "${INITRAMFS_TMP_S}"; find . | cpio -o -H newc | gzip -9 \ 80 pushd "${INITRAMFS_TMP_S}"; find . | cpio -o -H newc | gzip -9 \
73 > "${WORKDIR}/${INITRAMFS_FILE}" \ 81 > "${WORKDIR}/${INITRAMFS_FILE}" \
74 || die "cannot package initramfs" 82 || die "cannot package initramfs"
75 popd 83 popd
76 } 84 }
77 85
78 src_compile() { 86 src_compile() {
79 einfo "Creating ${INITRAMFS_FILE}" 87 einfo "Creating ${INITRAMFS_FILE}"
80 build_initramfs_file 88 build_initramfs_file
81 INITRAMFS_FILE_SIZE=$(stat --printf="%s" "${WORKDIR}/${INITRAMFS_FILE}") 89 INITRAMFS_FILE_SIZE=$(stat --printf="%s" "${WORKDIR}/${INITRAMFS_FILE}")
82 einfo "${INITRAMFS_FILE}: ${INITRAMFS_FILE_SIZE} bytes" 90 einfo "${INITRAMFS_FILE}: ${INITRAMFS_FILE_SIZE} bytes"
83 } 91 }
84 92
85 src_install() { 93 src_install() {
86 dodir /boot 94 dodir /boot
87 dobin ${WORKDIR}/${INITRAMFS_FILE} 95 dobin ${WORKDIR}/${INITRAMFS_FILE}
88 } 96 }
OLDNEW
« no previous file with comments | « no previous file | chromeos-base/chromeos-initramfs/files/init » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698