kernel, ramdisk: some boot unification
To use the new SD building script, Linux has to be configured with loop.max_part=15 on the command line (or set at module load time) to make the loopback device see the partitions. This commit removes a lot of differences between the ARM and x86 boot ramdisk and rc scripts. It changes the ARM build from running from ramdisk to requiring a full filesystem on the SD image and booting into it. . ramdisk: remove some arm-only utilities only used for running from the shell . remove ARM-only rc.arm, proto.arm.small, ttys and mylogin.sh boot-time ramdisk files . change kernel to add "arch" variable so userland knows what we're running on from sysenv . make ARM use the regular ramdisk rc file, changed to distinguish i386-only and ARM-only drivers; requires rootdevname to be set . change /etc/rc and /usr/etc/rc to start i386-only drivers only on i386 systems . change the kernel/arm to have a special case for the memory driver to load it higher so it can be bigger . add uEnv.txt, cmdline.txt and a for now highly linux-dependent SD preparation script arm_sdimage.sh to the git repository in releasetools/ Change-Id: I68910ba4e96ee80f7a12b65e48b5d39b43ca6397
This commit is contained in:
parent
b9674650f1
commit
5acaa0814f
17 changed files with 265 additions and 164 deletions
|
@ -1,3 +1,10 @@
|
|||
20130306:
|
||||
For people building ARM images, the procedure has changed
|
||||
a bit. You need a full FS to boot now. In short, you need
|
||||
to use the new in-tree script to make a full SD image. See
|
||||
http://wiki.minix3.org/en/DevelopersGuide/MinixOnARM
|
||||
for details.
|
||||
|
||||
20130201:
|
||||
Replace our native ln with NetBSD version.
|
||||
|
||||
|
|
|
@ -29,23 +29,25 @@ ETC= system.conf master.passwd
|
|||
EXTRA= rc
|
||||
PROTO_FILES= proto.common.etc proto.common.dynamic proto.dev
|
||||
PROG_DRIVERS=
|
||||
PROG_COMMANDS= mount fsck.mfs sh service
|
||||
PROG_SERVERS= mfs
|
||||
PROG_COMMANDS= mount fsck.mfs sh service loadramdisk sysenv
|
||||
PROG_SERVERS= mfs procfs
|
||||
PROG_BIN=
|
||||
PROG_SBIN=
|
||||
PROG_USR.BIN=
|
||||
PROG_USR.SBIN=
|
||||
|
||||
.if ${MKSMALL} != "yes"
|
||||
RAMDISK_SMALL= 1
|
||||
.endif
|
||||
|
||||
.if ${MACHINE_ARCH} == "i386"
|
||||
ETC+= rs.single
|
||||
EXTRA+=
|
||||
PROG_DRIVERS+= at_wini floppy pci
|
||||
PROG_COMMANDS+= cdprobe loadramdisk sysenv
|
||||
PROG_SERVERS+= procfs
|
||||
PROG_COMMANDS+= cdprobe
|
||||
PROG_USR.SBIN+= pwd_mkdb
|
||||
|
||||
.if ${MKSMALL} != "yes"
|
||||
RAMDISK_SMALL= 1
|
||||
PROG_DRIVERS+= ahci
|
||||
PROG_DRIVERS+= virtio_blk
|
||||
PROG_SERVERS+= ext2
|
||||
|
@ -58,11 +60,7 @@ PROG_DRIVERS+= acpi
|
|||
.endif # ${MACHINE_ARCH} == "i386"
|
||||
|
||||
.if ${MACHINE_ARCH} == "earm"
|
||||
EXTRA+= rc.arm mylogin.sh ttys
|
||||
PROG_DRIVERS+= fb mmc tty gpio
|
||||
PROG_COMMANDS+= cp dd getty time sleep stty umount
|
||||
PROG_BIN+= cat ls rm sync
|
||||
PROTO= proto.arm.small
|
||||
PROG_DRIVERS+= mmc
|
||||
.endif # ${MACHINE_ARCH} == "earm"
|
||||
|
||||
.if ${LDSTATIC} == "-dynamic"
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
#!/bin/sh
|
||||
echo Welcome
|
||||
export PATH=$PATH:/mnt/bin:/mnt/usr/bin
|
||||
exec /bin/sh
|
|
@ -2,22 +2,29 @@ boot
|
|||
0 0
|
||||
d--755 0 0
|
||||
bin d--755 0 0
|
||||
#ifdef __i386__
|
||||
cdprobe ---755 0 0 cdprobe
|
||||
#endif
|
||||
sysenv ---755 0 0 sysenv
|
||||
#if RAMDISK_SMALL == 1
|
||||
fsck.mfs ---755 0 0 fsck.mfs
|
||||
#endif
|
||||
mount ---755 0 0 mount
|
||||
sh ---755 0 0 sh
|
||||
service ---755 0 0 service
|
||||
sysenv ---755 0 0 sysenv
|
||||
$
|
||||
sbin d--755 0 0
|
||||
#ifdef __i386__
|
||||
floppy ---755 0 0 floppy
|
||||
ahci ---755 0 0 ahci
|
||||
virtio_blk ---755 0 0 virtio_blk
|
||||
at_wini ---755 0 0 at_wini
|
||||
#if RAMDISK_SMALL == 1
|
||||
ext2 ---755 0 0 ext2
|
||||
#endif
|
||||
#endif
|
||||
#ifdef __arm__
|
||||
mmc ---755 0 0 mmc
|
||||
#endif
|
||||
mfs ---755 0 0 mfs
|
||||
procfs ---755 0 0 procfs
|
||||
|
@ -27,10 +34,12 @@ d--755 0 0
|
|||
loadramdisk ---755 0 0 loadramdisk
|
||||
$
|
||||
sbin d--755 0 0
|
||||
#ifdef __i386__
|
||||
#if RAMDISK_INC_ACPI == 1
|
||||
acpi ---755 0 0 acpi
|
||||
acpi ---755 0 0 acpi
|
||||
#endif
|
||||
pci ---755 0 0 pci
|
||||
#endif
|
||||
$
|
||||
$
|
||||
dev d--755 0 0
|
||||
|
|
|
@ -1,40 +0,0 @@
|
|||
boot
|
||||
0 0
|
||||
d--755 0 0
|
||||
bin d--755 0 0
|
||||
mount ---755 0 0 mount
|
||||
umount ---755 0 0 umount
|
||||
sh ---755 0 0 sh
|
||||
service ---755 0 0 service
|
||||
getty ---755 0 0 getty
|
||||
stty ---755 0 0 stty
|
||||
cp ---755 0 0 cp
|
||||
sync ---755 0 0 sync
|
||||
sleep ---755 0 0 sleep
|
||||
dd ---755 0 0 dd
|
||||
time ---755 0 0 time
|
||||
cat ---755 0 0 cat
|
||||
ls ---755 0 0 ls
|
||||
fsck.mfs ---755 0 0 fsck.mfs
|
||||
$
|
||||
sbin d--755 0 0
|
||||
fb ---755 0 0 fb
|
||||
mmc ---755 0 0 mmc
|
||||
mfs ---755 0 0 mfs
|
||||
gpio ---755 0 0 gpio
|
||||
|
||||
$
|
||||
mnt d--755 0 0
|
||||
$
|
||||
gpio d--755 0 0
|
||||
$
|
||||
usr d--755 0 0
|
||||
bin d--755 0 0
|
||||
login ---755 0 0 mylogin.sh
|
||||
$
|
||||
$
|
||||
dev d--755 0 0
|
||||
#include "proto.dev"
|
||||
$
|
||||
#include "proto.common.etc"
|
||||
$
|
|
@ -4,12 +4,8 @@
|
|||
pwd.db ---644 0 0 pwd.db
|
||||
spwd.db ---600 0 0 spwd.db
|
||||
master.passwd ---600 0 0 master.passwd
|
||||
#if defined(__i386__)
|
||||
rc ---755 0 0 rc
|
||||
#if defined(__i386__)
|
||||
rs.single ---755 0 0 rs.single
|
||||
#endif
|
||||
#if defined(__arm__)
|
||||
rc ---755 0 0 rc.arm
|
||||
ttys ---644 0 0 ttys
|
||||
#endif
|
||||
$
|
||||
|
|
|
@ -7,23 +7,32 @@ exec </dev/null
|
|||
|
||||
FSCK=/bin/fsck.mfs
|
||||
ACPI=/usr/sbin/acpi
|
||||
if [ -e $ACPI -a -n "`sysenv acpi`" ]
|
||||
then
|
||||
/bin/service -c up $ACPI
|
||||
|
||||
if [ X`/bin/sysenv arch` = Xi386 ]
|
||||
then if [ -e $ACPI -a -n "`sysenv acpi`" ]
|
||||
then
|
||||
/bin/service -c up $ACPI
|
||||
fi
|
||||
/bin/service -c up /usr/sbin/pci
|
||||
/bin/service -cn up /sbin/floppy -dev /dev/fd0
|
||||
if [ X`/bin/sysenv ahci` = Xyes ]
|
||||
then
|
||||
# this is here temporarily, for testing purposes
|
||||
/bin/service -c up /sbin/ahci -dev /dev/c0d0 -label ahci_0 -args instance=0
|
||||
elif [ X`/bin/sysenv virtio_blk` = Xyes ]
|
||||
then
|
||||
/bin/service -c up /sbin/virtio_blk -dev /dev/c0d0 -label virtio_blk_0 -args instance=0
|
||||
else
|
||||
/bin/service -c up /sbin/at_wini -dev /dev/c0d0 -label at_wini_0
|
||||
/bin/service -cr up /sbin/at_wini -dev /dev/c1d0 -label at_wini_1 -args instance=1
|
||||
fi
|
||||
fi
|
||||
/bin/service -c up /usr/sbin/pci
|
||||
/bin/service -cn up /sbin/floppy -dev /dev/fd0
|
||||
if [ X`/bin/sysenv ahci` = Xyes ]
|
||||
then
|
||||
# this is here temporarily, for testing purposes
|
||||
/bin/service -c up /sbin/ahci -dev /dev/c0d0 -label ahci_0 -args instance=0
|
||||
elif [ X`/bin/sysenv virtio_blk` = Xyes ]
|
||||
then
|
||||
/bin/service -c up /sbin/virtio_blk -dev /dev/c0d0 -label virtio_blk_0 -args instance=0
|
||||
else
|
||||
/bin/service -c up /sbin/at_wini -dev /dev/c0d0 -label at_wini_0
|
||||
/bin/service -cr up /sbin/at_wini -dev /dev/c1d0 -label at_wini_1 -args instance=1
|
||||
|
||||
if [ X`/bin/sysenv arch` = Xearm ]
|
||||
then echo starting mmc driver
|
||||
/bin/service -c up /sbin/mmc -dev /dev/c0d0
|
||||
fi
|
||||
|
||||
/bin/service up /sbin/procfs || echo "WARNING: couldn't start procfs"
|
||||
|
||||
if /bin/sysenv rootdevname >/dev/null
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
#!/bin/sh
|
||||
# LSC FIXME quick hack, we should retink the rc script so we do not
|
||||
# get two different script
|
||||
set -e
|
||||
|
||||
|
||||
exec >/dev/log
|
||||
exec 2>/dev/log
|
||||
exec </dev/null
|
||||
|
||||
#XXX
|
||||
#/bin/service -c up /sbin/mmc -dev /dev/c0d0
|
||||
#/bin/fsck.mfs -p /dev/c0d0p1
|
||||
#/bin/mount /dev/c0d0p1 /mnt
|
||||
#gpio
|
||||
#mount -t gpio none /gpio
|
||||
#service up /sbin/fb -dev /dev/fb0 -period 2HZ
|
||||
exit
|
|
@ -1,44 +0,0 @@
|
|||
#
|
||||
# from: @(#)ttys 5.1 (Berkeley) 4/17/89
|
||||
#
|
||||
# name getty type status comments
|
||||
#
|
||||
console "getty 115200" minix on secure
|
||||
#ttyc1 getty minix on secure
|
||||
#ttyc2 getty minix on secure
|
||||
#ttyc3 getty minix on secure
|
||||
tty00 "" unknown off secure
|
||||
tty01 "" unknown off secure
|
||||
|
||||
ttyp0 "" network off
|
||||
ttyp1 "" network off
|
||||
ttyp2 "" network off
|
||||
ttyp3 "" network off
|
||||
ttyp4 "" network off
|
||||
ttyp5 "" network off
|
||||
ttyp6 "" network off
|
||||
ttyp7 "" network off
|
||||
ttyp8 "" network off
|
||||
ttyp9 "" network off
|
||||
ttypa "" network off
|
||||
ttypb "" network off
|
||||
ttypc "" network off
|
||||
ttypd "" network off
|
||||
ttype "" network off
|
||||
ttypf "" network off
|
||||
ttyq0 "" network off
|
||||
ttyq1 "" network off
|
||||
ttyq2 "" network off
|
||||
ttyq3 "" network off
|
||||
ttyq4 "" network off
|
||||
ttyq5 "" network off
|
||||
ttyq6 "" network off
|
||||
ttyq7 "" network off
|
||||
ttyq8 "" network off
|
||||
ttyq9 "" network off
|
||||
ttyqa "" network off
|
||||
ttyqb "" network off
|
||||
ttyqc "" network off
|
||||
ttyqd "" network off
|
||||
ttyqe "" network off
|
||||
ttyqf "" network off
|
68
etc/rc
68
etc/rc
|
@ -11,6 +11,16 @@ PATH=/usr/local/bin:/bin:/usr/bin:/usr/sbin:/usr/pkg/bin:/usr/pkg/sbin:/sbin
|
|||
RC_TZ=/etc/rc.timezone
|
||||
export TERM PATH
|
||||
|
||||
ARCH="`sysenv arch`"
|
||||
|
||||
if [ ! "$ARCH" ]
|
||||
then # Older kernels do not provide an arch sysenv variable.
|
||||
# We assume we are on x86 then, as existing systems with
|
||||
# kernel and userland (i.e. this script) unsynchronized
|
||||
# will be x86.
|
||||
ARCH=i386
|
||||
fi
|
||||
|
||||
usage()
|
||||
{
|
||||
echo >&2 "Usage: $0 [-saf] start|stop|down"
|
||||
|
@ -114,8 +124,17 @@ start)
|
|||
then . "$RC_TZ"
|
||||
fi
|
||||
|
||||
# Try to read the hardware real-time clock, otherwise do it manually.
|
||||
readclock || intr date -q
|
||||
if [ $ARCH = i386 ]
|
||||
then
|
||||
# Try to read the hardware real-time clock, otherwise do it manually.
|
||||
readclock || intr date -q
|
||||
fi
|
||||
|
||||
if [ $ARCH = earm ]
|
||||
then
|
||||
date 201301010000
|
||||
fi
|
||||
|
||||
|
||||
# Initialize files.
|
||||
>/etc/utmp # /etc/utmp keeps track of logins
|
||||
|
@ -187,32 +206,39 @@ start)
|
|||
cp /usr/lib/em* /usr/lib/cpp* /lib
|
||||
esac
|
||||
|
||||
echo -n "Starting hotplugging infrastructure... "
|
||||
rm -f /var/run/devmand.pid
|
||||
devmand -d /etc/devmand -d /usr/pkg/etc/devmand &
|
||||
echo "done."
|
||||
if [ $ARCH = i386 ]
|
||||
then
|
||||
echo -n "Starting hotplugging infrastructure... "
|
||||
rm -f /var/run/devmand.pid
|
||||
devmand -d /etc/devmand -d /usr/pkg/etc/devmand &
|
||||
echo "done."
|
||||
fi
|
||||
|
||||
# Things should be alright now.
|
||||
;;
|
||||
down|stop)
|
||||
sync
|
||||
if [ -f /var/run/devmand.pid ]
|
||||
if [ $ARCH = i386 ]
|
||||
then
|
||||
kill -INT `cat /var/run/devmand.pid`
|
||||
# without this delay the following will
|
||||
# be printed in the console
|
||||
# RS: devman not running?
|
||||
sleep 1
|
||||
fi
|
||||
#
|
||||
# usbd needs to be stopped exactly
|
||||
# at this stage(before stopping devman
|
||||
# and after stopping the services
|
||||
# stated by devmand)
|
||||
if [ -x /usr/pkg/etc/rc.d/usbd ]
|
||||
then
|
||||
/usr/pkg/etc/rc.d/usbd stop
|
||||
if [ -f /var/run/devmand.pid ]
|
||||
then
|
||||
kill -INT `cat /var/run/devmand.pid`
|
||||
# without this delay the following will
|
||||
# be printed in the console
|
||||
# RS: devman not running?
|
||||
sleep 1
|
||||
fi
|
||||
#
|
||||
# usbd needs to be stopped exactly
|
||||
# at this stage(before stopping devman
|
||||
# and after stopping the services
|
||||
# stated by devmand)
|
||||
if [ -x /usr/pkg/etc/rc.d/usbd ]
|
||||
then
|
||||
/usr/pkg/etc/rc.d/usbd stop
|
||||
fi
|
||||
fi
|
||||
|
||||
# Tell RS server we're going down.
|
||||
service shutdown
|
||||
;;
|
||||
|
|
24
etc/usr/rc
24
etc/usr/rc
|
@ -3,6 +3,16 @@
|
|||
RANDOM_FILE=/usr/adm/random.dat
|
||||
LOCAL_FILE=/usr/etc/rc.local
|
||||
|
||||
ARCH="`sysenv arch`"
|
||||
|
||||
if [ ! "$ARCH" ]
|
||||
then # Older kernels do not provide an arch sysenv variable.
|
||||
# We assume we are on x86 then, as existing systems with
|
||||
# kernel and userland (i.e. this script) unsynchronized
|
||||
# will be x86.
|
||||
ARCH=i386
|
||||
fi
|
||||
|
||||
# Get $SERVICES_DIRS
|
||||
. /etc/rc.conf
|
||||
|
||||
|
@ -139,12 +149,18 @@ start)
|
|||
else
|
||||
up inet -script /etc/rs.inet -dev /dev/ip -devstyle STYLE_CLONE
|
||||
fi
|
||||
up -n printer -dev /dev/lp -period 10HZ
|
||||
|
||||
up -n ipc
|
||||
# start VirtualBox time sync driver if the device is there
|
||||
if grep '^[^ ]* [^ ]* 80EE:CAFE ' /proc/pci >/dev/null; then
|
||||
up -n vbox -period 10HZ
|
||||
|
||||
if [ $ARCH = i386 ]
|
||||
then
|
||||
up -n printer -dev /dev/lp -period 10HZ
|
||||
# start VirtualBox time sync driver if the device is there
|
||||
if grep '^[^ ]* [^ ]* 80EE:CAFE ' /proc/pci >/dev/null; then
|
||||
up -n vbox -period 10HZ
|
||||
fi
|
||||
fi
|
||||
|
||||
echo .
|
||||
|
||||
# Network initialization.
|
||||
|
|
|
@ -145,6 +145,7 @@
|
|||
#define INVAL_GID ((gid_t) -1) /* invalid gid value */
|
||||
|
||||
#define SERVARNAME "cttyline"
|
||||
#define ARCHVARNAME "arch"
|
||||
#define SERBAUDVARNAME "cttybaud"
|
||||
|
||||
/* Bits for s_flags in the privilege structure. */
|
||||
|
|
|
@ -123,7 +123,16 @@ void setup_mbi(multiboot_info_t *mbi)
|
|||
int i;
|
||||
for (i = 0; i < MB_MODS_NR; ++i) {
|
||||
mb_modlist[i].mod_start = MB_MODS_BASE + i * MB_MODS_ALIGN;
|
||||
mb_modlist[i].mod_end = mb_modlist[i].mod_start + MB_MODS_ALIGN - 1; mb_modlist[i].cmdline = 0;
|
||||
mb_modlist[i].mod_end = mb_modlist[i].mod_start + MB_MODS_ALIGN - 1;
|
||||
mb_modlist[i].cmdline = 0;
|
||||
|
||||
if (i == 5) {
|
||||
/* LSC HACK: Special case for memory, it is actually loaded at the
|
||||
* end, so that it can grow without having to change the
|
||||
* alignment of everything. currently reserving 64MiB */
|
||||
mb_modlist[i].mod_start = 0x96800000;
|
||||
mb_modlist[i].mod_end = mb_modlist[i].mod_start + (0x04000000) - 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Final 'module' is actually a string holding the boot cmdline */
|
||||
|
@ -193,6 +202,9 @@ void get_parameters(u32_t ebx, kinfo_t *cbi)
|
|||
}
|
||||
}
|
||||
|
||||
/* let higher levels know what we are booting on */
|
||||
mb_set_param(cbi->param_buf, ARCHVARNAME, "earm", cbi);
|
||||
|
||||
/* round user stack down to leave a gap to catch kernel
|
||||
* stack overflow; and to distinguish kernel and user addresses
|
||||
* at a glance (0xf.. vs 0xe..)
|
||||
|
|
|
@ -153,6 +153,9 @@ void get_parameters(u32_t ebx, kinfo_t *cbi)
|
|||
}
|
||||
}
|
||||
|
||||
/* let higher levels know what we are booting on */
|
||||
mb_set_param(cbi->param_buf, ARCHVARNAME, "i386", cbi);
|
||||
|
||||
/* round user stack down to leave a gap to catch kernel
|
||||
* stack overflow; and to distinguish kernel and user addresses
|
||||
* at a glance (0xf.. vs 0xe..)
|
||||
|
|
108
releasetools/arm_sdimage.sh
Executable file
108
releasetools/arm_sdimage.sh
Executable file
|
@ -0,0 +1,108 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
MP_MINIX=/tmp/minix
|
||||
MP_BOOT=/tmp/minixboot
|
||||
|
||||
: ${ARCH=evbearm-el}
|
||||
: ${OBJ=../obj.arm}
|
||||
: ${CROSS_TOOLS=${OBJ}/"tooldir.`uname -s`-`uname -r`-`uname -m`"/bin}
|
||||
: ${CROSS_PREFIX=${CROSS_TOOLS}/arm-elf32-minix-}
|
||||
: ${DESTDIR=${OBJ}/destdir.$ARCH}
|
||||
: ${FSTAB=$DESTDIR/etc/fstab}
|
||||
: ${LOOP=/dev/loop0}
|
||||
: ${EMPTYIMG=minix_arm_sd_empty.img}
|
||||
: ${IMG=minix_arm_sd.img}
|
||||
: ${QEMU=/opt/bin/qemu-system-arm}
|
||||
|
||||
BUILDSH=build.sh
|
||||
|
||||
if [ ! -f $BUILDSH ]
|
||||
then echo "Please invoke me from the root source dir, where $BUILDSH is."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f ${EMPTYIMG}.bz2 ]
|
||||
then echo Retrieving $EMPTYIMG
|
||||
wget http://www.minix3.org/arm/${EMPTYIMG}.bz2
|
||||
fi
|
||||
|
||||
if [ ! -f $IMG ]
|
||||
then echo decompressing $EMPTYIMG onto $IMG
|
||||
bzip2 -d -k ${EMPTYIMG}.bz2
|
||||
mv $EMPTYIMG $IMG
|
||||
fi
|
||||
|
||||
# remove fstab and generated pw db
|
||||
rm -rf $DESTDIR/etc
|
||||
|
||||
sh build.sh -j4 -m$ARCH -O $OBJ -D $DESTDIR -u distribution
|
||||
|
||||
cat >$FSTAB <<END_FSTAB
|
||||
/dev/c0d0p1s0 / mfs rw 0 1
|
||||
/dev/c0d0p1s2 /usr mfs rw 0 2
|
||||
/dev/c0d0p1s1 /home mfs rw 0 2
|
||||
END_FSTAB
|
||||
|
||||
rm -f $DESTDIR/SETS.*
|
||||
|
||||
${CROSS_TOOLS}/nbpwd_mkdb -V 0 -p -d $DESTDIR $DESTDIR/etc/master.passwd
|
||||
|
||||
set -x
|
||||
|
||||
umount $MP_MINIX/home || true
|
||||
umount $MP_MINIX/usr || true
|
||||
umount $MP_MINIX || true
|
||||
umount $MP_BOOT || true
|
||||
|
||||
losetup -d $LOOP || true
|
||||
losetup $LOOP $IMG
|
||||
|
||||
${CROSS_TOOLS}/nbmkfs.mfs ${LOOP}p5
|
||||
${CROSS_TOOLS}/nbmkfs.mfs ${LOOP}p6
|
||||
${CROSS_TOOLS}/nbmkfs.mfs ${LOOP}p7
|
||||
|
||||
mkdir -p $MP_BOOT
|
||||
mount ${LOOP}p1 $MP_BOOT
|
||||
|
||||
mkdir -p ${MP_MINIX}
|
||||
mount ${LOOP}p5 ${MP_MINIX}
|
||||
|
||||
mkdir -p ${MP_MINIX}/home
|
||||
mkdir -p ${MP_MINIX}/usr
|
||||
mount ${LOOP}p6 ${MP_MINIX}/home
|
||||
mount ${LOOP}p7 ${MP_MINIX}/usr
|
||||
|
||||
cp releasetools/uEnv.txt releasetools/cmdline.txt $MP_BOOT
|
||||
|
||||
${CROSS_PREFIX}objcopy ${OBJ}/kernel/kernel -O binary ${OBJ}/kernel.bin
|
||||
cp ${OBJ}/kernel.bin $MP_BOOT
|
||||
|
||||
set -x
|
||||
|
||||
rsync -a $DESTDIR/ $MP_MINIX/
|
||||
|
||||
for f in vm rs pm sched vfs ds mfs pfs init
|
||||
do
|
||||
cp ${OBJ}/servers/$f/$f ${OBJ}/$f.elf
|
||||
${CROSS_PREFIX}strip -s ${OBJ}/$f.elf
|
||||
cp ${OBJ}/$f.elf $MP_BOOT
|
||||
done
|
||||
|
||||
for f in tty memory log
|
||||
do
|
||||
cp ${OBJ}/drivers/$f/$f ${OBJ}/$f.elf
|
||||
${CROSS_PREFIX}strip -s ${OBJ}/$f.elf
|
||||
cp ${OBJ}/$f.elf $MP_BOOT
|
||||
done
|
||||
|
||||
# Unmount disk image
|
||||
sync
|
||||
|
||||
umount $MP_MINIX/home
|
||||
umount $MP_MINIX/usr
|
||||
umount $MP_MINIX
|
||||
umount $MP_BOOT
|
||||
losetup -d $LOOP
|
||||
|
||||
$QEMU -M beaglexm -drive if=sd,cache=writeback,file=$IMG -clock unix -serial pty -vnc :1 $*
|
1
releasetools/cmdline.txt
Normal file
1
releasetools/cmdline.txt
Normal file
|
@ -0,0 +1 @@
|
|||
console=tty02 rootdevname=c0d0p1s0
|
21
releasetools/uEnv.txt
Normal file
21
releasetools/uEnv.txt
Normal file
|
@ -0,0 +1,21 @@
|
|||
#uEnv.txt
|
||||
|
||||
# Set the command to be executed
|
||||
uenvcmd=run mmcbootcmd
|
||||
|
||||
# With cmdline/bootargs in cmdline.txt
|
||||
mmcbootcmd=echo starting from MMC ; mmc part 0; fatload mmc 0:1 0x80200000 kernel.bin; fatload mmc 0:1 0x90000000 ds.elf; fatload mmc 0:1 0x90800000 rs.elf; fatload mmc 0:1 0x91000000 pm.elf; fatload mmc 0:1 0x91800000 sched.elf; fatload mmc 0:1 0x92000000 vfs.elf; fatload mmc 0:1 0x96800000 memory.elf; fatload mmc 0:1 0x93000000 log.elf; fatload mmc 0:1 0x93800000 tty.elf; fatload mmc 0:1 0x94000000 mfs.elf; fatload mmc 0:1 0x94800000 vm.elf; fatload mmc 0:1 0x95000000 pfs.elf; fatload mmc 0:1 0x95800000 init.elf; mw.b 0x96000000 0 16384; fatload mmc 0:1 0x96000000 cmdline.txt; go 0x80200000
|
||||
|
||||
# Netbooting.
|
||||
#echo == Configure the server IP ==
|
||||
#serverip=192.168.12.10
|
||||
#ipaddr=192.168.12.62
|
||||
#usbnet_devaddr=e8:03:9a:24:f9:10
|
||||
#usbethaddr=e8:03:9a:24:f9:11
|
||||
#mmcbootcmd=echo starting from TFTP; usb start ; tftp 0x80200000 kernel.bin; tftp 0x90000000 ds.elf; tftp 0x90800000 rs.elf; tftp 0x91000000 pm.elf; tftp 0x91800000 sched.elf; tftp 0x92000000 vfs.elf; tftp 0x96800000 memory.elf; tftp 0x93000000 log.elf; tftp 0x93800000 tty.elf; tftp 0x94000000 mfs.elf; tftp 0x94800000 vm.elf; tftp 0x95000000 pfs.elf; tftp 0x95800000 init.elf; mw.b 0x96000000 0 16384; tftp 0x96000000 cmdline.txt; dcache off ; icache off ; go 0x80200000
|
||||
|
||||
# For mmcinfo
|
||||
#mmcbootcmd=mmcinfo; fatload mmc 0:1 0x80200000 boot.bin; go 0x80200000
|
||||
|
||||
# beaglebone
|
||||
#mmc rescan; fatload mmc 0 0x80200000 kernel.bin; go 0x80200000
|
Loading…
Reference in a new issue