Mercurial > hg > aboriginal
annotate system-image.sh @ 1089:b7efc55a3b09
Make test.sh able to use/print environment variables from the proper context.
author | Rob Landley <rob@landley.net> |
---|---|
date | Fri, 21 May 2010 22:25:10 -0500 |
parents | e992bc65b048 |
children | 3c6263354ca9 |
rev | line source |
---|---|
177 | 1 #!/bin/bash |
109
d9dae1196ea7
Package ext2 filesystem image using UML.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
2 |
888 | 3 # Package a root filesystem directory into a filesystem image, with |
4 # associated bootable kernel binary and launch scripts. | |
109
d9dae1196ea7
Package ext2 filesystem image using UML.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
5 |
669 | 6 source sources/include.sh || exit 1 |
109
d9dae1196ea7
Package ext2 filesystem image using UML.
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
7 |
744
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
728
diff
changeset
|
8 # Parse the sources/targets/$1 directory |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
728
diff
changeset
|
9 |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
728
diff
changeset
|
10 read_arch_dir "$1" |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
728
diff
changeset
|
11 |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
728
diff
changeset
|
12 # Do we have our prerequisites? |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
728
diff
changeset
|
13 |
783
db06a8c1bfed
Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents:
773
diff
changeset
|
14 [ -z "$NATIVE_ROOT" ] && NATIVE_ROOT="$BUILD/root-filesystem-$ARCH" |
744
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
728
diff
changeset
|
15 if [ ! -d "$NATIVE_ROOT" ] |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
728
diff
changeset
|
16 then |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
728
diff
changeset
|
17 [ -z "$FAIL_QUIET" ] && echo No "$NATIVE_ROOT" >&2 |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
728
diff
changeset
|
18 exit 1 |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
728
diff
changeset
|
19 fi |
759adf5a0fe9
Refactor so include.sh mostly just sets environment variables. Move read_arch_dir to function and call it explicitly (no more need for $NO_ARCH). Make blank_tempdir a function, called explicitly by stages when needed, with some sanity checks. Insert prerequisite tests to later stages so they can detect failure early and provide an explicit erro rmessage, and have those tests happen before blanking $WORK dir, to preserve debugging info. Make buildall.sh depend on prerequisite tests rather than trying to avoid calling later stages (and thus do flow control from asynchronous context). Add FAIL_QUIET option so buildall.sh doesn't spam the log with the new prerequisite error messages.
Rob Landley <rob@landley.net>
parents:
728
diff
changeset
|
20 |
913
6a0f58ba29d3
Use killtree instead of mysetsid.
Rob Landley <rob@landley.net>
parents:
908
diff
changeset
|
21 # Kill our background tasks when we exit prematurely |
719
428df726cf7f
Have system-image.sh do its own setsid variant so when it does dienow() it can kill all its own backgrounded processes, but won't take down the parent shell that ran it.
Rob Landley <rob@landley.net>
parents:
712
diff
changeset
|
22 |
913
6a0f58ba29d3
Use killtree instead of mysetsid.
Rob Landley <rob@landley.net>
parents:
908
diff
changeset
|
23 trap "killtree $$" EXIT |
719
428df726cf7f
Have system-image.sh do its own setsid variant so when it does dienow() it can kill all its own backgrounded processes, but won't take down the parent shell that ran it.
Rob Landley <rob@landley.net>
parents:
712
diff
changeset
|
24 |
813
e2fc10ede93f
Consistently use STAGE_DIR as the output directory. (root-filesystem.sh already did, host-tools.sh was using $HOSTTOOLS, cross-compiler.sh was using $CROSS, and system-image.sh was using SYSIMAGE.)
Rob Landley <rob@landley.net>
parents:
783
diff
changeset
|
25 # Announce start of stage. (Down here after the recursive call above so |
e2fc10ede93f
Consistently use STAGE_DIR as the output directory. (root-filesystem.sh already did, host-tools.sh was using $HOSTTOOLS, cross-compiler.sh was using $CROSS, and system-image.sh was using SYSIMAGE.)
Rob Landley <rob@landley.net>
parents:
783
diff
changeset
|
26 # it doesn't get announced twice.) |
764
dc34da83204d
Cosmetic fix: don't announce system-image.sh stage twice.
Rob Landley <rob@landley.net>
parents:
747
diff
changeset
|
27 |
dc34da83204d
Cosmetic fix: don't announce system-image.sh stage twice.
Rob Landley <rob@landley.net>
parents:
747
diff
changeset
|
28 echo "=== Packaging system image from root-filesystem" |
dc34da83204d
Cosmetic fix: don't announce system-image.sh stage twice.
Rob Landley <rob@landley.net>
parents:
747
diff
changeset
|
29 |
1056
4a6f0088450c
Only rebuild kernel when we need to.
Rob Landley <rob@landley.net>
parents:
1005
diff
changeset
|
30 mkdir -p "$STAGE_DIR" |
815
8129df56091b
Extended setupfor/cleanup to create binary package tarballs if the configure option BINARY_PACKAGE_TARBALLS is set. These tarballs extract into the current directory and add all the changed files installed by this package build, so you can pick and choose when assembling your own filesystem.
Rob Landley <rob@landley.net>
parents:
813
diff
changeset
|
31 blank_tempdir "$WORK" |
764
dc34da83204d
Cosmetic fix: don't announce system-image.sh stage twice.
Rob Landley <rob@landley.net>
parents:
747
diff
changeset
|
32 |
728
14b9373956a7
Teach squashfs to create /dev/console and change default image time to squashfs.
Rob Landley <rob@landley.net>
parents:
720
diff
changeset
|
33 [ -z "$SYSIMAGE_TYPE" ] && SYSIMAGE_TYPE=squashfs |
581
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
34 |
783
db06a8c1bfed
Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents:
773
diff
changeset
|
35 USRDIR="" |
db06a8c1bfed
Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents:
773
diff
changeset
|
36 [ -z "$ROOT_NODIRS" ] && USRDIR=/usr |
572
1277d5ae4507
Move bin/qemu-setup.sh to sbin/init.sh and do more work on initramfs packaging. (Doesn't work yet.)
Rob Landley <rob@landley.net>
parents:
553
diff
changeset
|
37 |
581
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
38 # This next bit is a little complicated; we generate the root filesystem image |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
39 # in the middle of building a kernel. This is necessary to embed an |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
40 # initramfs in the kernel, and allows us to parallelize the kernel build with |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
41 # the image generation. Having the other image types in the same if/else |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
42 # staircase with initramfs lets us detect unknown image types (probably typos) |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
43 # without repeating any. |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
44 |
553
80f3356577fc
Move kernel building from mini-native to package-mini-native in preparation for initramfs packaging option.
Rob Landley <rob@landley.net>
parents:
537
diff
changeset
|
45 # Build a linux kernel for the target |
80f3356577fc
Move kernel building from mini-native to package-mini-native in preparation for initramfs packaging option.
Rob Landley <rob@landley.net>
parents:
537
diff
changeset
|
46 |
1056
4a6f0088450c
Only rebuild kernel when we need to.
Rob Landley <rob@landley.net>
parents:
1005
diff
changeset
|
47 if [ "$SYSIMAGE_TYPE" == initramfs ] || [ ! -e "$STAGE_DIR/zImage-$ARCH" ] |
4a6f0088450c
Only rebuild kernel when we need to.
Rob Landley <rob@landley.net>
parents:
1005
diff
changeset
|
48 then |
1065
1d776e44b908
Save the uClibc and linux .config files in the native toolchain, and install them with the rest of the native toolchain. Don't bother extracting and configuring the kernel if we don't need to.
Rob Landley <rob@landley.net>
parents:
1056
diff
changeset
|
49 setupfor linux |
1d776e44b908
Save the uClibc and linux .config files in the native toolchain, and install them with the rest of the native toolchain. Don't bother extracting and configuring the kernel if we don't need to.
Rob Landley <rob@landley.net>
parents:
1056
diff
changeset
|
50 [ -z "$BOOT_KARCH" ] && BOOT_KARCH=$KARCH |
1d776e44b908
Save the uClibc and linux .config files in the native toolchain, and install them with the rest of the native toolchain. Don't bother extracting and configuring the kernel if we don't need to.
Rob Landley <rob@landley.net>
parents:
1056
diff
changeset
|
51 cp "$(getconfig linux)" mini.conf || dienow |
1d776e44b908
Save the uClibc and linux .config files in the native toolchain, and install them with the rest of the native toolchain. Don't bother extracting and configuring the kernel if we don't need to.
Rob Landley <rob@landley.net>
parents:
1056
diff
changeset
|
52 [ "$SYSIMAGE_TYPE" == "initramfs" ] && |
1d776e44b908
Save the uClibc and linux .config files in the native toolchain, and install them with the rest of the native toolchain. Don't bother extracting and configuring the kernel if we don't need to.
Rob Landley <rob@landley.net>
parents:
1056
diff
changeset
|
53 (echo "CONFIG_BLK_DEV_INITRD=y" >> mini.conf || dienow) |
1d776e44b908
Save the uClibc and linux .config files in the native toolchain, and install them with the rest of the native toolchain. Don't bother extracting and configuring the kernel if we don't need to.
Rob Landley <rob@landley.net>
parents:
1056
diff
changeset
|
54 make ARCH=$BOOT_KARCH KCONFIG_ALLCONFIG=mini.conf $LINUX_FLAGS \ |
1d776e44b908
Save the uClibc and linux .config files in the native toolchain, and install them with the rest of the native toolchain. Don't bother extracting and configuring the kernel if we don't need to.
Rob Landley <rob@landley.net>
parents:
1056
diff
changeset
|
55 allnoconfig >/dev/null || dienow |
1d776e44b908
Save the uClibc and linux .config files in the native toolchain, and install them with the rest of the native toolchain. Don't bother extracting and configuring the kernel if we don't need to.
Rob Landley <rob@landley.net>
parents:
1056
diff
changeset
|
56 |
1d776e44b908
Save the uClibc and linux .config files in the native toolchain, and install them with the rest of the native toolchain. Don't bother extracting and configuring the kernel if we don't need to.
Rob Landley <rob@landley.net>
parents:
1056
diff
changeset
|
57 # Build kernel in parallel with initramfs |
1d776e44b908
Save the uClibc and linux .config files in the native toolchain, and install them with the rest of the native toolchain. Don't bother extracting and configuring the kernel if we don't need to.
Rob Landley <rob@landley.net>
parents:
1056
diff
changeset
|
58 |
999
4bd1bc15a744
Move distcc setup to dev-environment.sh. Fix bug where CPUS wasn't defined if distcc wasn't being used (leading to make -j with no limit, and OOM conditions in the emulated system).
Rob Landley <rob@landley.net>
parents:
988
diff
changeset
|
59 echo "make -j $CPUS ARCH=$BOOT_KARCH $DO_CROSS $LINUX_FLAGS $VERBOSITY" && |
1056
4a6f0088450c
Only rebuild kernel when we need to.
Rob Landley <rob@landley.net>
parents:
1005
diff
changeset
|
60 maybe_fork "make -j $CPUS ARCH=$BOOT_KARCH $DO_CROSS $LINUX_FLAGS $VERBOSITY || dienow" |
4a6f0088450c
Only rebuild kernel when we need to.
Rob Landley <rob@landley.net>
parents:
1005
diff
changeset
|
61 fi |
581
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
62 |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
63 # Embed an initramfs image in the kernel? |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
64 |
719
428df726cf7f
Have system-image.sh do its own setsid variant so when it does dienow() it can kill all its own backgrounded processes, but won't take down the parent shell that ran it.
Rob Landley <rob@landley.net>
parents:
712
diff
changeset
|
65 echo "Generating root filesystem of type: $SYSIMAGE_TYPE" |
428df726cf7f
Have system-image.sh do its own setsid variant so when it does dienow() it can kill all its own backgrounded processes, but won't take down the parent shell that ran it.
Rob Landley <rob@landley.net>
parents:
712
diff
changeset
|
66 |
1056
4a6f0088450c
Only rebuild kernel when we need to.
Rob Landley <rob@landley.net>
parents:
1005
diff
changeset
|
67 rm "$STAGE_DIR/image-$ARCH"* 2>/dev/null |
4a6f0088450c
Only rebuild kernel when we need to.
Rob Landley <rob@landley.net>
parents:
1005
diff
changeset
|
68 |
581
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
69 if [ "$SYSIMAGE_TYPE" == "initramfs" ] |
553
80f3356577fc
Move kernel building from mini-native to package-mini-native in preparation for initramfs packaging option.
Rob Landley <rob@landley.net>
parents:
537
diff
changeset
|
70 then |
588
965923c576f3
More initramfs fixes. Still doesn't work yet.
Rob Landley <rob@landley.net>
parents:
586
diff
changeset
|
71 $CC usr/gen_init_cpio.c -o my_gen_init_cpio || dienow |
965923c576f3
More initramfs fixes. Still doesn't work yet.
Rob Landley <rob@landley.net>
parents:
586
diff
changeset
|
72 (./my_gen_init_cpio <( |
597
3d67228ceb1e
Rename $NATIVE to $NATIVE_ROOT and allow it to be supplied externally so system-image.sh can package up an arbitrary native root filesystem source dir.
Rob Landley <rob@landley.net>
parents:
593
diff
changeset
|
73 "$SOURCES"/toys/gen_initramfs_list.sh "$NATIVE_ROOT" |
3d67228ceb1e
Rename $NATIVE to $NATIVE_ROOT and allow it to be supplied externally so system-image.sh can package up an arbitrary native root filesystem source dir.
Rob Landley <rob@landley.net>
parents:
593
diff
changeset
|
74 [ ! -e "$NATIVE_ROOT"/init ] && |
783
db06a8c1bfed
Lots of changes to move buildall.sh functionality into build.sh.
Rob Landley <rob@landley.net>
parents:
773
diff
changeset
|
75 echo "slink /init $USRDIR/sbin/init.sh 755 0 0" |
597
3d67228ceb1e
Rename $NATIVE to $NATIVE_ROOT and allow it to be supplied externally so system-image.sh can package up an arbitrary native root filesystem source dir.
Rob Landley <rob@landley.net>
parents:
593
diff
changeset
|
76 [ ! -d "$NATIVE_ROOT"/dev ] && echo "dir /dev 755 0 0" |
590
8e7db79a3d75
Make initramfs work, add "--memory MEGS" option to ./run-emulator.sh and make run-from-build.sh use it.
Rob Landley <rob@landley.net>
parents:
588
diff
changeset
|
77 echo "nod /dev/console 660 0 0 c 5 1" |
588
965923c576f3
More initramfs fixes. Still doesn't work yet.
Rob Landley <rob@landley.net>
parents:
586
diff
changeset
|
78 ) || dienow |
965923c576f3
More initramfs fixes. Still doesn't work yet.
Rob Landley <rob@landley.net>
parents:
586
diff
changeset
|
79 ) | gzip -9 > initramfs_data.cpio.gz || dienow |
965923c576f3
More initramfs fixes. Still doesn't work yet.
Rob Landley <rob@landley.net>
parents:
586
diff
changeset
|
80 echo Initramfs generated. |
354
d96741481221
User Mode Linux found a new way to break: now when it panics, it sends a kill
Rob Landley <rob@landley.net>
parents:
353
diff
changeset
|
81 |
581
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
82 # Wait for initial kernel build to finish. |
572
1277d5ae4507
Move bin/qemu-setup.sh to sbin/init.sh and do more work on initramfs packaging. (Doesn't work yet.)
Rob Landley <rob@landley.net>
parents:
553
diff
changeset
|
83 |
773
2b9e8af90917
Remove wait4background, the shell has a builtin "wait" and we don't care about non-zero wait counts anymore.
Rob Landley <rob@landley.net>
parents:
764
diff
changeset
|
84 wait |
572
1277d5ae4507
Move bin/qemu-setup.sh to sbin/init.sh and do more work on initramfs packaging. (Doesn't work yet.)
Rob Landley <rob@landley.net>
parents:
553
diff
changeset
|
85 |
1277d5ae4507
Move bin/qemu-setup.sh to sbin/init.sh and do more work on initramfs packaging. (Doesn't work yet.)
Rob Landley <rob@landley.net>
parents:
553
diff
changeset
|
86 # This is a repeat of an earlier make invocation, but if we try to |
1277d5ae4507
Move bin/qemu-setup.sh to sbin/init.sh and do more work on initramfs packaging. (Doesn't work yet.)
Rob Landley <rob@landley.net>
parents:
553
diff
changeset
|
87 # consolidate them the dependencies build unnecessary prereqisites |
1277d5ae4507
Move bin/qemu-setup.sh to sbin/init.sh and do more work on initramfs packaging. (Doesn't work yet.)
Rob Landley <rob@landley.net>
parents:
553
diff
changeset
|
88 # and then decide that they're newer than the cpio.gz we supplied, |
1277d5ae4507
Move bin/qemu-setup.sh to sbin/init.sh and do more work on initramfs packaging. (Doesn't work yet.)
Rob Landley <rob@landley.net>
parents:
553
diff
changeset
|
89 # and thus overwrite it with a default (emptyish) one. |
1277d5ae4507
Move bin/qemu-setup.sh to sbin/init.sh and do more work on initramfs packaging. (Doesn't work yet.)
Rob Landley <rob@landley.net>
parents:
553
diff
changeset
|
90 |
573
de6725a2fdad
Fix an "it doesn't boot" bug dating back to commit 553. Sigh.
Rob Landley <rob@landley.net>
parents:
572
diff
changeset
|
91 echo "Building kernel with initramfs." |
572
1277d5ae4507
Move bin/qemu-setup.sh to sbin/init.sh and do more work on initramfs packaging. (Doesn't work yet.)
Rob Landley <rob@landley.net>
parents:
553
diff
changeset
|
92 [ -f initramfs_data.cpio.gz ] && |
1277d5ae4507
Move bin/qemu-setup.sh to sbin/init.sh and do more work on initramfs packaging. (Doesn't work yet.)
Rob Landley <rob@landley.net>
parents:
553
diff
changeset
|
93 touch initramfs_data.cpio.gz && |
1277d5ae4507
Move bin/qemu-setup.sh to sbin/init.sh and do more work on initramfs packaging. (Doesn't work yet.)
Rob Landley <rob@landley.net>
parents:
553
diff
changeset
|
94 mv initramfs_data.cpio.gz usr && |
944
fc134a13357e
Largeish refactoring and cleanup of compiler build:
Rob Landley <rob@landley.net>
parents:
925
diff
changeset
|
95 make -j $CPUS ARCH=$BOOT_KARCH $DO_CROSS $LINUX_FLAGS || dienow |
581
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
96 |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
97 # No need to supply an hda image to emulator. |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
98 |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
99 IMAGE= |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
100 elif [ "$SYSIMAGE_TYPE" == "ext2" ] |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
101 then |
597
3d67228ceb1e
Rename $NATIVE to $NATIVE_ROOT and allow it to be supplied externally so system-image.sh can package up an arbitrary native root filesystem source dir.
Rob Landley <rob@landley.net>
parents:
593
diff
changeset
|
102 # Generate a 64 megabyte ext2 filesystem image from the $NATIVE_ROOT |
3d67228ceb1e
Rename $NATIVE to $NATIVE_ROOT and allow it to be supplied externally so system-image.sh can package up an arbitrary native root filesystem source dir.
Rob Landley <rob@landley.net>
parents:
593
diff
changeset
|
103 # directory, with a temporary file defining the /dev nodes for the new |
3d67228ceb1e
Rename $NATIVE to $NATIVE_ROOT and allow it to be supplied externally so system-image.sh can package up an arbitrary native root filesystem source dir.
Rob Landley <rob@landley.net>
parents:
593
diff
changeset
|
104 # filesystem. |
581
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
105 |
616
a95cb8f13284
Add SYSIMAGE_HDA_MEGS config parameter (defaulting to 64).
Rob Landley <rob@landley.net>
parents:
597
diff
changeset
|
106 [ -z "$SYSIMAGE_HDA_MEGS" ] && SYSIMAGE_HDA_MEGS=64 |
a95cb8f13284
Add SYSIMAGE_HDA_MEGS config parameter (defaulting to 64).
Rob Landley <rob@landley.net>
parents:
597
diff
changeset
|
107 |
581
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
108 IMAGE="image-${ARCH}.ext2" |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
109 DEVLIST="$WORK"/devlist |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
110 |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
111 echo "/dev d 755 0 0 - - - - -" > "$DEVLIST" && |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
112 echo "/dev/console c 640 0 0 5 1 0 0 -" >> "$DEVLIST" && |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
113 |
671
fda459e9515a
Autodetect the amount of space in a mini-native directory for genext2fs.
Rob Landley <rob@landley.net>
parents:
669
diff
changeset
|
114 # Produce a filesystem with the currently used space plus 20% for filesystem |
fda459e9515a
Autodetect the amount of space in a mini-native directory for genext2fs.
Rob Landley <rob@landley.net>
parents:
669
diff
changeset
|
115 # overhead, which should always be big enough. |
642
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
640
diff
changeset
|
116 |
712
9d766670154a
genext2fs needs a minimum amount of free space or it dies.
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
117 BLOCKS=$[1024*(($(du -m -s "$NATIVE_ROOT" | awk '{print $1}')*12)/10)] |
9d766670154a
genext2fs needs a minimum amount of free space or it dies.
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
118 [ $BLOCKS -lt 4096 ] && BLOCKS=4096 |
9d766670154a
genext2fs needs a minimum amount of free space or it dies.
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
119 |
9d766670154a
genext2fs needs a minimum amount of free space or it dies.
Rob Landley <rob@landley.net>
parents:
711
diff
changeset
|
120 genext2fs -z -D "$DEVLIST" -d "$NATIVE_ROOT" -b $BLOCKS -i 1024 \ |
813
e2fc10ede93f
Consistently use STAGE_DIR as the output directory. (root-filesystem.sh already did, host-tools.sh was using $HOSTTOOLS, cross-compiler.sh was using $CROSS, and system-image.sh was using SYSIMAGE.)
Rob Landley <rob@landley.net>
parents:
783
diff
changeset
|
121 "$STAGE_DIR/$IMAGE" && |
581
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
122 rm "$DEVLIST" || dienow |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
123 |
642
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
640
diff
changeset
|
124 # Extend image size to HDA_MEGS if necessary, keeping it sparse. (Feeding |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
640
diff
changeset
|
125 # a larger -b size to genext2fs is insanely slow, and not particularly |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
640
diff
changeset
|
126 # sparse.) |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
640
diff
changeset
|
127 |
1056
4a6f0088450c
Only rebuild kernel when we need to.
Rob Landley <rob@landley.net>
parents:
1005
diff
changeset
|
128 echo "$(stat -c %s "$STAGE_DIR/$IMAGE") -lt $SYSIMAGE_HDA_MEGS" |
4a6f0088450c
Only rebuild kernel when we need to.
Rob Landley <rob@landley.net>
parents:
1005
diff
changeset
|
129 |
4a6f0088450c
Only rebuild kernel when we need to.
Rob Landley <rob@landley.net>
parents:
1005
diff
changeset
|
130 if [ ! -z "$SYSIMAGE_HDA_MEGS" ] && |
4a6f0088450c
Only rebuild kernel when we need to.
Rob Landley <rob@landley.net>
parents:
1005
diff
changeset
|
131 [ $((`stat -c %s "$STAGE_DIR/$IMAGE"` / (1024*1024) )) -lt "$SYSIMAGE_HDA_MEGS" ] |
642
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
640
diff
changeset
|
132 then |
1056
4a6f0088450c
Only rebuild kernel when we need to.
Rob Landley <rob@landley.net>
parents:
1005
diff
changeset
|
133 echo resizing image to $SYSIMAGE_HDA_MEGS |
813
e2fc10ede93f
Consistently use STAGE_DIR as the output directory. (root-filesystem.sh already did, host-tools.sh was using $HOSTTOOLS, cross-compiler.sh was using $CROSS, and system-image.sh was using SYSIMAGE.)
Rob Landley <rob@landley.net>
parents:
783
diff
changeset
|
134 dd if=/dev/zero of="$STAGE_DIR/$IMAGE" bs=1k count=1 seek=$[1024*1024-1] && |
e2fc10ede93f
Consistently use STAGE_DIR as the output directory. (root-filesystem.sh already did, host-tools.sh was using $HOSTTOOLS, cross-compiler.sh was using $CROSS, and system-image.sh was using SYSIMAGE.)
Rob Landley <rob@landley.net>
parents:
783
diff
changeset
|
135 resize2fs "$STAGE_DIR/$IMAGE" ${SYSIMAGE_HDA_MEGS}M || dienow |
1056
4a6f0088450c
Only rebuild kernel when we need to.
Rob Landley <rob@landley.net>
parents:
1005
diff
changeset
|
136 echo resize complete |
642
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
640
diff
changeset
|
137 fi |
c92dc77da038
Since gene2fs can't produce large images in a reasonable amount of time, make a 64 meg image and resize it if necessary. (This means the minimum image size is 64 megs, because gene2fs won't run unless you specify a size, but it knows right away if the size you gave it wasn't big enough. I don't understand this either.)
Rob Landley <rob@landley.net>
parents:
640
diff
changeset
|
138 |
648
a72f7f70c003
Now that the 2.6.29 kernel is out with squashfs, add squashfs to host-tools.sh and system-image.sh.
Rob Landley <rob@landley.net>
parents:
643
diff
changeset
|
139 elif [ "$SYSIMAGE_TYPE" == "squashfs" ] |
a72f7f70c003
Now that the 2.6.29 kernel is out with squashfs, add squashfs to host-tools.sh and system-image.sh.
Rob Landley <rob@landley.net>
parents:
643
diff
changeset
|
140 then |
a72f7f70c003
Now that the 2.6.29 kernel is out with squashfs, add squashfs to host-tools.sh and system-image.sh.
Rob Landley <rob@landley.net>
parents:
643
diff
changeset
|
141 IMAGE="image-${ARCH}.sqf" |
813
e2fc10ede93f
Consistently use STAGE_DIR as the output directory. (root-filesystem.sh already did, host-tools.sh was using $HOSTTOOLS, cross-compiler.sh was using $CROSS, and system-image.sh was using SYSIMAGE.)
Rob Landley <rob@landley.net>
parents:
783
diff
changeset
|
142 mksquashfs "${NATIVE_ROOT}" "$STAGE_DIR/$IMAGE" -noappend -all-root \ |
1074
dd5be60a2794
Show squashfs progress indicator when not in FORK mode.
Rob Landley <rob@landley.net>
parents:
1072
diff
changeset
|
143 ${FORK:+-no-progress} -p "/dev d 755 0 0" \ |
dd5be60a2794
Show squashfs progress indicator when not in FORK mode.
Rob Landley <rob@landley.net>
parents:
1072
diff
changeset
|
144 -p "/dev/console c 666 0 0 5 1" || dienow |
586
c9c7420e952b
More tweaks to make hw- targets work.
Rob Landley <rob@landley.net>
parents:
581
diff
changeset
|
145 else |
c9c7420e952b
More tweaks to make hw- targets work.
Rob Landley <rob@landley.net>
parents:
581
diff
changeset
|
146 echo "Unknown image type." >&2 |
c9c7420e952b
More tweaks to make hw- targets work.
Rob Landley <rob@landley.net>
parents:
581
diff
changeset
|
147 dienow |
553
80f3356577fc
Move kernel building from mini-native to package-mini-native in preparation for initramfs packaging option.
Rob Landley <rob@landley.net>
parents:
537
diff
changeset
|
148 fi |
80f3356577fc
Move kernel building from mini-native to package-mini-native in preparation for initramfs packaging option.
Rob Landley <rob@landley.net>
parents:
537
diff
changeset
|
149 |
581
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
150 # Wait for kernel build to finish (may be a NOP) |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
151 |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
152 echo Image generation complete. |
773
2b9e8af90917
Remove wait4background, the shell has a builtin "wait" and we don't care about non-zero wait counts anymore.
Rob Landley <rob@landley.net>
parents:
764
diff
changeset
|
153 wait |
581
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
154 trap "" EXIT |
9dffdd74c186
More changes for initramfs and hw- targets with a base architecture.
Rob Landley <rob@landley.net>
parents:
580
diff
changeset
|
155 |
553
80f3356577fc
Move kernel building from mini-native to package-mini-native in preparation for initramfs packaging option.
Rob Landley <rob@landley.net>
parents:
537
diff
changeset
|
156 # Install kernel |
1056
4a6f0088450c
Only rebuild kernel when we need to.
Rob Landley <rob@landley.net>
parents:
1005
diff
changeset
|
157 if [ ! -e "$STAGE_DIR/zImage-$ARCH" ] |
4a6f0088450c
Only rebuild kernel when we need to.
Rob Landley <rob@landley.net>
parents:
1005
diff
changeset
|
158 then |
4a6f0088450c
Only rebuild kernel when we need to.
Rob Landley <rob@landley.net>
parents:
1005
diff
changeset
|
159 cp "$KERNEL_PATH" "$STAGE_DIR/zImage-$ARCH" |
4a6f0088450c
Only rebuild kernel when we need to.
Rob Landley <rob@landley.net>
parents:
1005
diff
changeset
|
160 fi |
553
80f3356577fc
Move kernel building from mini-native to package-mini-native in preparation for initramfs packaging option.
Rob Landley <rob@landley.net>
parents:
537
diff
changeset
|
161 |
1066
21ec839a416f
Bugfix: don't cleanup kernel if we skipped setupfor.
Rob Landley <rob@landley.net>
parents:
1065
diff
changeset
|
162 [ -e "$WORK" ] && cleanup |
553
80f3356577fc
Move kernel building from mini-native to package-mini-native in preparation for initramfs packaging option.
Rob Landley <rob@landley.net>
parents:
537
diff
changeset
|
163 |
893
9ae3c9520bec
Split out kernel_cmdline from qemu-defaults.
Rob Landley <rob@landley.net>
parents:
888
diff
changeset
|
164 # Provide qemu's common command line options between architectures. |
9ae3c9520bec
Split out kernel_cmdline from qemu-defaults.
Rob Landley <rob@landley.net>
parents:
888
diff
changeset
|
165 |
1081
e992bc65b048
Remove unnecessary "function" label from shell functions.
Rob Landley <rob@landley.net>
parents:
1074
diff
changeset
|
166 kernel_cmdline() |
893
9ae3c9520bec
Split out kernel_cmdline from qemu-defaults.
Rob Landley <rob@landley.net>
parents:
888
diff
changeset
|
167 { |
9ae3c9520bec
Split out kernel_cmdline from qemu-defaults.
Rob Landley <rob@landley.net>
parents:
888
diff
changeset
|
168 [ "$SYSIMAGE_TYPE" != "initramfs" ] && |
9ae3c9520bec
Split out kernel_cmdline from qemu-defaults.
Rob Landley <rob@landley.net>
parents:
888
diff
changeset
|
169 echo -n "root=/dev/$ROOT rw init=$USRDIR/sbin/init.sh " |
9ae3c9520bec
Split out kernel_cmdline from qemu-defaults.
Rob Landley <rob@landley.net>
parents:
888
diff
changeset
|
170 |
9ae3c9520bec
Split out kernel_cmdline from qemu-defaults.
Rob Landley <rob@landley.net>
parents:
888
diff
changeset
|
171 echo -n "panic=1 PATH=\$DISTCC_PATH_PREFIX${USRDIR}/bin console=$CONSOLE" |
9ae3c9520bec
Split out kernel_cmdline from qemu-defaults.
Rob Landley <rob@landley.net>
parents:
888
diff
changeset
|
172 echo -n " HOST=$ARCH ${KERNEL_EXTRA}\$KERNEL_EXTRA" |
9ae3c9520bec
Split out kernel_cmdline from qemu-defaults.
Rob Landley <rob@landley.net>
parents:
888
diff
changeset
|
173 } |
9ae3c9520bec
Split out kernel_cmdline from qemu-defaults.
Rob Landley <rob@landley.net>
parents:
888
diff
changeset
|
174 |
1081
e992bc65b048
Remove unnecessary "function" label from shell functions.
Rob Landley <rob@landley.net>
parents:
1074
diff
changeset
|
175 qemu_defaults() |
325
51bcd6de223d
Redo plumbing that constructs run-emulator.sh. Group common qemu command
Rob Landley <rob@landley.net>
parents:
317
diff
changeset
|
176 { |
893
9ae3c9520bec
Split out kernel_cmdline from qemu-defaults.
Rob Landley <rob@landley.net>
parents:
888
diff
changeset
|
177 echo -n "-nographic -no-reboot -kernel \"$2\" \$WITH_HDC \$WITH_HDB" |
9ae3c9520bec
Split out kernel_cmdline from qemu-defaults.
Rob Landley <rob@landley.net>
parents:
888
diff
changeset
|
178 [ "$SYSIMAGE_TYPE" != "initramfs" ] && echo -n " -hda \"$1\"" |
9ae3c9520bec
Split out kernel_cmdline from qemu-defaults.
Rob Landley <rob@landley.net>
parents:
888
diff
changeset
|
179 echo -n " -append \"$(kernel_cmdline)\" \$QEMU_EXTRA" |
325
51bcd6de223d
Redo plumbing that constructs run-emulator.sh. Group common qemu command
Rob Landley <rob@landley.net>
parents:
317
diff
changeset
|
180 } |
51bcd6de223d
Redo plumbing that constructs run-emulator.sh. Group common qemu command
Rob Landley <rob@landley.net>
parents:
317
diff
changeset
|
181 |
490
004f9509349b
Rip out User Mode Linux, switch to genext2fs instead. (Based on an old patch from James Davidson.)
Rob Landley <rob@landley.net>
parents:
486
diff
changeset
|
182 # Write out a script to call the appropriate emulator. We split out the |
004f9509349b
Rip out User Mode Linux, switch to genext2fs instead. (Based on an old patch from James Davidson.)
Rob Landley <rob@landley.net>
parents:
486
diff
changeset
|
183 # filesystem, kernel, and base kernel command line arguments in case you want |
004f9509349b
Rip out User Mode Linux, switch to genext2fs instead. (Based on an old patch from James Davidson.)
Rob Landley <rob@landley.net>
parents:
486
diff
changeset
|
184 # to use an emulator other than qemu, but put the default case in qemu_defaults |
004f9509349b
Rip out User Mode Linux, switch to genext2fs instead. (Based on an old patch from James Davidson.)
Rob Landley <rob@landley.net>
parents:
486
diff
changeset
|
185 |
1005
ed8e33b81032
Make run-emulator.sh executable.
Rob Landley <rob@landley.net>
parents:
1000
diff
changeset
|
186 cat > "$STAGE_DIR/run-emulator.sh" << EOF && |
1000
6a6a9e8de6ef
Finish previous commit: fix HDB and HDC and make run_emulator() a function. (And finally, if you say DEBUG=1 you get the emulator command output! Yay!)
Rob Landley <rob@landley.net>
parents:
999
diff
changeset
|
187 ARCH=$ARCH |
6a6a9e8de6ef
Finish previous commit: fix HDB and HDC and make run_emulator() a function. (And finally, if you say DEBUG=1 you get the emulator command output! Yay!)
Rob Landley <rob@landley.net>
parents:
999
diff
changeset
|
188 run_emulator() |
6a6a9e8de6ef
Finish previous commit: fix HDB and HDC and make run_emulator() a function. (And finally, if you say DEBUG=1 you get the emulator command output! Yay!)
Rob Landley <rob@landley.net>
parents:
999
diff
changeset
|
189 { |
6a6a9e8de6ef
Finish previous commit: fix HDB and HDC and make run_emulator() a function. (And finally, if you say DEBUG=1 you get the emulator command output! Yay!)
Rob Landley <rob@landley.net>
parents:
999
diff
changeset
|
190 [ ! -z "\$DEBUG" ] && set -x |
6a6a9e8de6ef
Finish previous commit: fix HDB and HDC and make run_emulator() a function. (And finally, if you say DEBUG=1 you get the emulator command output! Yay!)
Rob Landley <rob@landley.net>
parents:
999
diff
changeset
|
191 $(emulator_command "$IMAGE" zImage-$ARCH) |
6a6a9e8de6ef
Finish previous commit: fix HDB and HDC and make run_emulator() a function. (And finally, if you say DEBUG=1 you get the emulator command output! Yay!)
Rob Landley <rob@landley.net>
parents:
999
diff
changeset
|
192 } |
6a6a9e8de6ef
Finish previous commit: fix HDB and HDC and make run_emulator() a function. (And finally, if you say DEBUG=1 you get the emulator command output! Yay!)
Rob Landley <rob@landley.net>
parents:
999
diff
changeset
|
193 |
6a6a9e8de6ef
Finish previous commit: fix HDB and HDC and make run_emulator() a function. (And finally, if you say DEBUG=1 you get the emulator command output! Yay!)
Rob Landley <rob@landley.net>
parents:
999
diff
changeset
|
194 if [ "\$1" != "--norun" ] |
6a6a9e8de6ef
Finish previous commit: fix HDB and HDC and make run_emulator() a function. (And finally, if you say DEBUG=1 you get the emulator command output! Yay!)
Rob Landley <rob@landley.net>
parents:
999
diff
changeset
|
195 then |
6a6a9e8de6ef
Finish previous commit: fix HDB and HDC and make run_emulator() a function. (And finally, if you say DEBUG=1 you get the emulator command output! Yay!)
Rob Landley <rob@landley.net>
parents:
999
diff
changeset
|
196 run_emulator |
6a6a9e8de6ef
Finish previous commit: fix HDB and HDC and make run_emulator() a function. (And finally, if you say DEBUG=1 you get the emulator command output! Yay!)
Rob Landley <rob@landley.net>
parents:
999
diff
changeset
|
197 fi |
6a6a9e8de6ef
Finish previous commit: fix HDB and HDC and make run_emulator() a function. (And finally, if you say DEBUG=1 you get the emulator command output! Yay!)
Rob Landley <rob@landley.net>
parents:
999
diff
changeset
|
198 EOF |
1005
ed8e33b81032
Make run-emulator.sh executable.
Rob Landley <rob@landley.net>
parents:
1000
diff
changeset
|
199 chmod +x "$STAGE_DIR/run-emulator.sh" && |
864
5660a438421b
Make system-image.sh write out dev-environment.sh from a here document.
Rob Landley <rob@landley.net>
parents:
863
diff
changeset
|
200 |
1072
94b0b4ef1157
Add native-build.sh to system-image (it takes only one argument now, the build control system image file). Make system-image.sh script processing understand an INCLUDE syntax to insert unique-port, and trim the unique-port comment to something less distracting.
Rob Landley <rob@landley.net>
parents:
1071
diff
changeset
|
201 # Write out development wrapper scripts, substituting INCLUDE lines. |
94b0b4ef1157
Add native-build.sh to system-image (it takes only one argument now, the build control system image file). Make system-image.sh script processing understand an INCLUDE syntax to insert unique-port, and trim the unique-port comment to something less distracting.
Rob Landley <rob@landley.net>
parents:
1071
diff
changeset
|
202 |
94b0b4ef1157
Add native-build.sh to system-image (it takes only one argument now, the build control system image file). Make system-image.sh script processing understand an INCLUDE syntax to insert unique-port, and trim the unique-port comment to something less distracting.
Rob Landley <rob@landley.net>
parents:
1071
diff
changeset
|
203 for FILE in dev-environment.sh native-build.sh |
94b0b4ef1157
Add native-build.sh to system-image (it takes only one argument now, the build control system image file). Make system-image.sh script processing understand an INCLUDE syntax to insert unique-port, and trim the unique-port comment to something less distracting.
Rob Landley <rob@landley.net>
parents:
1071
diff
changeset
|
204 do |
94b0b4ef1157
Add native-build.sh to system-image (it takes only one argument now, the build control system image file). Make system-image.sh script processing understand an INCLUDE syntax to insert unique-port, and trim the unique-port comment to something less distracting.
Rob Landley <rob@landley.net>
parents:
1071
diff
changeset
|
205 (export IFS="$(echo -e "\n")" |
94b0b4ef1157
Add native-build.sh to system-image (it takes only one argument now, the build control system image file). Make system-image.sh script processing understand an INCLUDE syntax to insert unique-port, and trim the unique-port comment to something less distracting.
Rob Landley <rob@landley.net>
parents:
1071
diff
changeset
|
206 cat "$SOURCES/toys/$FILE" | while read -r i |
94b0b4ef1157
Add native-build.sh to system-image (it takes only one argument now, the build control system image file). Make system-image.sh script processing understand an INCLUDE syntax to insert unique-port, and trim the unique-port comment to something less distracting.
Rob Landley <rob@landley.net>
parents:
1071
diff
changeset
|
207 do |
94b0b4ef1157
Add native-build.sh to system-image (it takes only one argument now, the build control system image file). Make system-image.sh script processing understand an INCLUDE syntax to insert unique-port, and trim the unique-port comment to something less distracting.
Rob Landley <rob@landley.net>
parents:
1071
diff
changeset
|
208 if [ "${i:0:8}" == "INCLUDE " ] |
94b0b4ef1157
Add native-build.sh to system-image (it takes only one argument now, the build control system image file). Make system-image.sh script processing understand an INCLUDE syntax to insert unique-port, and trim the unique-port comment to something less distracting.
Rob Landley <rob@landley.net>
parents:
1071
diff
changeset
|
209 then |
94b0b4ef1157
Add native-build.sh to system-image (it takes only one argument now, the build control system image file). Make system-image.sh script processing understand an INCLUDE syntax to insert unique-port, and trim the unique-port comment to something less distracting.
Rob Landley <rob@landley.net>
parents:
1071
diff
changeset
|
210 cat "$SOURCES/toys/${i:8}" || dienow |
94b0b4ef1157
Add native-build.sh to system-image (it takes only one argument now, the build control system image file). Make system-image.sh script processing understand an INCLUDE syntax to insert unique-port, and trim the unique-port comment to something less distracting.
Rob Landley <rob@landley.net>
parents:
1071
diff
changeset
|
211 else |
94b0b4ef1157
Add native-build.sh to system-image (it takes only one argument now, the build control system image file). Make system-image.sh script processing understand an INCLUDE syntax to insert unique-port, and trim the unique-port comment to something less distracting.
Rob Landley <rob@landley.net>
parents:
1071
diff
changeset
|
212 # because echo doesn't support --, that's why. |
94b0b4ef1157
Add native-build.sh to system-image (it takes only one argument now, the build control system image file). Make system-image.sh script processing understand an INCLUDE syntax to insert unique-port, and trim the unique-port comment to something less distracting.
Rob Landley <rob@landley.net>
parents:
1071
diff
changeset
|
213 echo "$i" || dienow |
94b0b4ef1157
Add native-build.sh to system-image (it takes only one argument now, the build control system image file). Make system-image.sh script processing understand an INCLUDE syntax to insert unique-port, and trim the unique-port comment to something less distracting.
Rob Landley <rob@landley.net>
parents:
1071
diff
changeset
|
214 fi |
94b0b4ef1157
Add native-build.sh to system-image (it takes only one argument now, the build control system image file). Make system-image.sh script processing understand an INCLUDE syntax to insert unique-port, and trim the unique-port comment to something less distracting.
Rob Landley <rob@landley.net>
parents:
1071
diff
changeset
|
215 done |
94b0b4ef1157
Add native-build.sh to system-image (it takes only one argument now, the build control system image file). Make system-image.sh script processing understand an INCLUDE syntax to insert unique-port, and trim the unique-port comment to something less distracting.
Rob Landley <rob@landley.net>
parents:
1071
diff
changeset
|
216 ) > "$STAGE_DIR/$FILE" |
94b0b4ef1157
Add native-build.sh to system-image (it takes only one argument now, the build control system image file). Make system-image.sh script processing understand an INCLUDE syntax to insert unique-port, and trim the unique-port comment to something less distracting.
Rob Landley <rob@landley.net>
parents:
1071
diff
changeset
|
217 |
94b0b4ef1157
Add native-build.sh to system-image (it takes only one argument now, the build control system image file). Make system-image.sh script processing understand an INCLUDE syntax to insert unique-port, and trim the unique-port comment to something less distracting.
Rob Landley <rob@landley.net>
parents:
1071
diff
changeset
|
218 chmod +x "$STAGE_DIR/$FILE" || dienow |
94b0b4ef1157
Add native-build.sh to system-image (it takes only one argument now, the build control system image file). Make system-image.sh script processing understand an INCLUDE syntax to insert unique-port, and trim the unique-port comment to something less distracting.
Rob Landley <rob@landley.net>
parents:
1071
diff
changeset
|
219 done |
490
004f9509349b
Rip out User Mode Linux, switch to genext2fs instead. (Based on an old patch from James Davidson.)
Rob Landley <rob@landley.net>
parents:
486
diff
changeset
|
220 |
004f9509349b
Rip out User Mode Linux, switch to genext2fs instead. (Based on an old patch from James Davidson.)
Rob Landley <rob@landley.net>
parents:
486
diff
changeset
|
221 # Tar it up. |
004f9509349b
Rip out User Mode Linux, switch to genext2fs instead. (Based on an old patch from James Davidson.)
Rob Landley <rob@landley.net>
parents:
486
diff
changeset
|
222 |
988
30e4bab11f9e
Rename SKIP_STAGE_TARBALLS to NO_STAGE_TARBALLS (for consistency), and make system-image.sh use it instead of doing it by hand.
Rob Landley <rob@landley.net>
parents:
972
diff
changeset
|
223 ARCH="$ARCH_NAME" create_stage_tarball |
267
98c1a2136322
Update package-mini-native.sh to create qemu-image-$ARCH.tar.bz2
Rob Landley <rob@landley.net>
parents:
264
diff
changeset
|
224 |
1067
d4b0e9d731fc
Minor cleanup, collate the === announce lines.
Rob Landley <rob@landley.net>
parents:
1066
diff
changeset
|
225 echo "=== Packaging complete" |