M7350v1_en_gpl

This commit is contained in:
T
2024-09-09 08:52:07 +00:00
commit f9cc65cfda
65988 changed files with 26357421 additions and 0 deletions
@@ -0,0 +1,10 @@
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
mkdir /proc
mkdir /sys
mount -t proc proc /proc
mount -t sysfs sysfs /sys
exec sh
@@ -0,0 +1,194 @@
#!/bin/sh -e
#
# Copyright (C) 2008-2011 Intel
#
# install.sh [device_name] [rootfs_name] [video_mode] [vga_mode]
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin
# We need 20 Mb for the boot partition
boot_size=20
# 5% for the swap
swap_ratio=5
found="no"
echo "Searching for a hard drive..."
for device in 'hda' 'hdb' 'sda' 'sdb'
do
if [ -e /sys/block/${device}/removable ]; then
if [ "$(cat /sys/block/${device}/removable)" = "0" ]; then
found="yes"
while true; do
# Try sleeping here to avoid getting kernel messages
# obscuring/confusing user
sleep 5
echo "Found drive at /dev/${device}. Do you want to install this image there ? [y/n]"
read answer
if [ "$answer" = "y" ] ; then
break
fi
if [ "$answer" = "n" ] ; then
found=no
break
fi
echo "Please answer by y or n"
done
fi
fi
if [ "$found" = "yes" ]; then
break;
fi
done
if [ "$found" = "no" ]; then
exit 1
fi
echo "Installing image on /dev/${device}"
#
# The udev automounter can cause pain here, kill it
#
rm -f /etc/udev/scripts/mount*
#
# Unmount anything the automounter had mounted
#
umount /dev/${device} 2> /dev/null || /bin/true
umount /dev/${device}1 2> /dev/null || /bin/true
umount /dev/${device}2 2> /dev/null || /bin/true
umount /dev/${device}3 2> /dev/null || /bin/true
umount /dev/${device}4 2> /dev/null || /bin/true
umount /dev/${device}5 2> /dev/null || /bin/true
umount /dev/${device}6 2> /dev/null || /bin/true
if [ ! -b /dev/sda ] ; then
mknod /dev/sda b 8 0
fi
if [ ! -b /dev/sdb ] ; then
mknod /dev/sdb b 8 16
fi
if [ ! -b /dev/loop0 ] ; then
mknod /dev/loop0 b 7 0
fi
mkdir -p /tmp
cat /proc/mounts > /etc/mtab
disk_size=$(parted /dev/${device} unit mb print | grep Disk | cut -d" " -f 3 | sed -e "s/MB//")
swap_size=$((disk_size*5/100))
rootfs_size=$((disk_size-boot_size-swap_size))
rootfs_start=$((boot_size + 1))
rootfs_end=$((rootfs_start+rootfs_size))
swap_start=$((rootfs_end+1))
bootfs=/dev/${device}1
rootfs=/dev/${device}2
swap=/dev/${device}3
echo "*****************"
echo "Boot partition size: $boot_size MB (/dev/${device}1)"
echo "Rootfs partition size: $rootfs_size MB (/dev/${device}2)"
echo "Swap partition size: $swap_size MB (/dev/${device}3)"
echo "*****************"
echo "Deleting partition table on /dev/${device} ..."
dd if=/dev/zero of=/dev/${device} bs=512 count=2
echo "Creating new partition table on /dev/${device} ..."
parted /dev/${device} mklabel msdos
echo "Creating boot partition on /dev/${device}1"
parted /dev/${device} mkpart primary 1 $boot_size
echo "Creating rootfs partition on /dev/${device}2"
parted /dev/${device} mkpart primary $rootfs_start $rootfs_end
echo "Creating swap partition on /dev/${device}3"
parted /dev/${device} mkpart primary $swap_start $disk_size
parted /dev/${device} print
echo "Formatting /dev/${device}1 to ext2..."
mkfs.ext3 $bootfs
echo "Formatting /dev/${device}2 to ext3..."
mkfs.ext3 $rootfs
echo "Formatting swap partition...(/dev/${device}3)"
mkswap $swap
mkdir /ssd
mkdir /rootmnt
mkdir /bootmnt
mount $rootfs /ssd
mount -o rw,loop,noatime,nodiratime /media/$1/$2 /rootmnt
echo "Copying rootfs files..."
cp -a /rootmnt/* /ssd
if [ -d /ssd/etc/ ] ; then
echo "$swap swap swap defaults 0 0" >> /ssd/etc/fstab
# We dont want udev to mount our root device while we're booting...
if [ -d /ssd/etc/udev/ ] ; then
echo "/dev/${device}" >> /ssd/etc/udev/mount.blacklist
fi
fi
if [ -f /ssd/etc/grub.d/40_custom ] ; then
echo "Preparing custom grub2 menu..."
sed -i "s@__ROOTFS__@$rootfs@g" /ssd/etc/grub.d/40_custom
sed -i "s/__VIDEO_MODE__/$3/g" /ssd/etc/grub.d/40_custom
sed -i "s/__VGA_MODE__/$4/g" /ssd/etc/grub.d/40_custom
mount $bootfs /bootmnt
cp /ssd/etc/grub.d/40_custom /bootmnt/40_custom
umount /bootmnt
fi
umount /ssd
umount /rootmnt
echo "Preparing boot partition..."
mount $bootfs /ssd
grub-install --root-directory=/ssd /dev/${device}
echo "(hd0) /dev/${device}" > /ssd/boot/grub/device.map
if [ -f /ssd/40_custom ] ; then
mv /ssd/40_custom /ssd/boot/grub/grub.cfg
sed -i "/#/d" /ssd/boot/grub/grub.cfg
sed -i "/exec tail/d" /ssd/boot/grub/grub.cfg
chmod 0444 /ssd/boot/grub/grub.cfg
else
echo "Preparing custom grub menu..."
echo "default 0" > /ssd/boot/grub/menu.lst
echo "timeout 30" >> /ssd/boot/grub/menu.lst
echo "title Live Boot/Install-Image" >> /ssd/boot/grub/menu.lst
echo "root (hd0,0)" >> /ssd/boot/grub/menu.lst
echo "kernel /boot/vmlinuz root=$rootfs rw $3 $4 quiet" >> /ssd/boot/grub/menu.lst
fi
cp /media/$1/vmlinuz /ssd/boot/
umount /ssd
sync
echo "Remove your installation media, and press ENTER"
read enter
echo "Rebooting..."
reboot -f
@@ -0,0 +1,108 @@
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
ROOT_MOUNT="/rootfs/"
ROOT_IMAGE="rootfs.img"
MOUNT="/bin/mount"
UMOUNT="/bin/umount"
ISOLINUX=""
early_setup() {
mkdir /proc
mkdir /sys
mount -t proc proc /proc
mount -t sysfs sysfs /sys
# support modular kernel
modprobe isofs 2> /dev/null
mkdir /run
udevd --daemon
udevadm trigger --action=add
}
read_args() {
[ -z "$CMDLINE" ] && CMDLINE=`cat /proc/cmdline`
for arg in $CMDLINE; do
optarg=`expr "x$arg" : 'x[^=]*=\(.*\)'`
case $arg in
root=*)
ROOT_DEVICE=$optarg ;;
rootfstype=*)
modprobe $optarg 2> /dev/null ;;
LABEL=*)
label=$optarg ;;
video=*)
video_mode=$arg ;;
vga=*)
vga_mode=$arg ;;
esac
done
}
boot_live_root() {
killall udevd 2>/dev/null
# use devtmpfs if available
if grep -q devtmpfs /proc/filesystems; then
mount -t devtmpfs devtmpfs $ROOT_MOUNT/dev
fi
cd $ROOT_MOUNT
exec switch_root -c /dev/console $ROOT_MOUNT /sbin/init
}
fatal() {
echo $1 >$CONSOLE
echo >$CONSOLE
exec sh
}
early_setup
[ -z "$CONSOLE" ] && CONSOLE="/dev/console"
read_args
echo "Waiting for removable media..."
while true
do
for i in `ls /media 2>/dev/null`; do
if [ -f /media/$i/$ROOT_IMAGE ] ; then
found="yes"
break
elif [ -f /media/$i/isolinux/$ROOT_IMAGE ]; then
found="yes"
ISOLINUX="isolinux"
break
fi
done
if [ "$found" = "yes" ]; then
break;
fi
sleep 1
done
case $label in
boot)
mkdir $ROOT_MOUNT
mknod /dev/loop0 b 7 0 2>/dev/null
if ! $MOUNT -o rw,loop,noatime,nodiratime /media/$i/$ISOLINUX/$ROOT_IMAGE $ROOT_MOUNT ; then
fatal "Couldnt mount rootfs image"
else
boot_live_root
fi
;;
install)
if [ -f /media/$i/$ISOLINUX/$ROOT_IMAGE ] ; then
./install.sh $i/$ISOLINUX $ROOT_IMAGE $video_mode $vga_mode
else
fatal "Couldnt find install script"
fi
# If we're getting here, we failed...
fatal "Installation image failed"
;;
esac
@@ -0,0 +1,14 @@
DESCRIPTION = "A live image init script"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
SRC_URI = "file://init-boot.sh"
PR = "r2"
do_install() {
install -m 0755 ${WORKDIR}/init-boot.sh ${D}/init
}
inherit allarch
FILES_${PN} += " /init "
@@ -0,0 +1,82 @@
#!/bin/sh
# Copyright (C) 2011 O.S. Systems Software LTDA.
# Licensed on MIT
# Adds support to dynamic debugging of initramfs using bootparam in
# following format:
# shell : starts a shell before and after each module
# shell=before:<module> : starts a shell before <module> is loaded and run
# shell=after:<module> : starts a shell after <module> is loaded and run
#
# shell-debug : run set -x as soon as possible
# shell-debug=before:<module> : run set -x before <module> is loaded and run
# shell-debug=after:<module> : run set -x after <module> is loaded and run
DEBUG_SHELL="false"
debug_hook_handler() {
status=$1
module=$2
if [ -n "$bootparam_shell" ] && [ "$bootparam_shell" != "true" ]; then
shell_wanted_status=`expr $bootparam_shell : '\(.*\):.*'`
shell_wanted_module=`expr $bootparam_shell : '.*:\(.*\)'`
if [ "$shell_wanted_status" = "before" ]; then
shell_wanted_status=pre
else
shell_wanted_status=post
fi
fi
if [ "$bootparam_shell" = "true" ] ||
( [ "$status" = "$shell_wanted_status" ] &&
[ "$module" = "$shell_wanted_module" ] ); then
if [ "$status" = "pre" ]; then
status_msg="before"
else
status_msg="after"
fi
msg "Starting shell $status_msg $module..."
sh
fi
if [ -n "$bootparam_shell_debug" ] && [ "$bootparam_shell_debug" != "true" ]; then
shell_debug_wanted_status=`expr $bootparam_shell_debug : '\(.*\):.*'`
shell_debug_wanted_module=`expr $bootparam_shell_debug : '.*:\(.*\)'`
if [ "$shell_debug_wanted_status" = "before" ]; then
shell_debug_wanted_status=pre
else
shell_debug_wanted_status=post
fi
fi
if [ "$bootparam_shell_debug" = "true" ] ||
( [ "$status" = "$shell_debug_wanted_status" ] &&
[ "$module" = "$shell_debug_wanted_module" ] ); then
if [ "$DEBUG_SHELL" = "true" ]; then
return 0
fi
if [ "$status" = "pre" ]; then
status_msg="before"
else
status_msg="after"
fi
msg "Starting shell debugging $status_msg $module..."
DEBUG_SHELL="true"
set -x
fi
}
debug_enabled() {
return 0
}
debug_run() {
add_module_pre_hook "debug_hook_handler"
add_module_post_hook "debug_hook_handler"
}
@@ -0,0 +1,28 @@
#!/bin/sh
# Copyright (C) 2011 O.S. Systems Software LTDA.
# Licensed on MIT
e2fs_enabled() {
return 0
}
e2fs_run() {
filesystems="ext4 ext3 ext2"
# load modules
for fs in $filesystems; do
load_kernel_module $fs
done
for fs in $filesystems; do
eval "fs_options=\$bootparam_${fs}"
if [ -n "$fs_options" ]; then
dev=`expr "$fs_options" : '\([^:]*\).*'`
path=`expr "$fs_options" : '[^:]*:\([^:]*\).*'`
info "Mounting $dev as $fs on $path as $fs..."
mkdir -p $path
mount -t $fs $dev $path
fi
done
}
@@ -0,0 +1,46 @@
#!/bin/sh
# Copyright (C) 2011 O.S. Systems Software LTDA.
# Licensed on MIT
finish_enabled() {
return 0
}
finish_run() {
if [ -n "$ROOTFS_DIR" ]; then
if [ -n "$bootparam_rootdelay" ]; then
debug "Sleeping for $rootdelay second(s) to wait root to settle..."
sleep $bootparam_rootdelay
fi
if [ -n "$bootparam_root" ]; then
debug "No e2fs compatible filesystem has been mounted, mounting $bootparam_root..."
if [ "${bootparam_root:0:5}" = "UUID=" ]; then
bootparam_root="/dev/disk/by-uuid/${bootparam_root/UUID=/}"
fi
if [ -e "$bootparam_root" ]; then
mount $bootparam_root $ROOTFS_DIR
else
debug "root '$bootparam_root' doesn't exist."
fi
fi
if [ ! -d $ROOTFS_DIR/dev ]; then
fatal "ERROR: There's no '/dev' on rootfs."
fi
info "Switching root to '$ROOTFS_DIR'..."
debug "Moving /dev, /proc and /sys onto rootfs..."
mount --move /dev $ROOTFS_DIR/dev
mount --move /proc $ROOTFS_DIR/proc
mount --move /sys $ROOTFS_DIR/sys
cd $ROOTFS_DIR
exec switch_root -c /dev/console $ROOTFS_DIR /sbin/init
else
debug "No rootfs has been set"
fi
}
@@ -0,0 +1,136 @@
#!/bin/sh
# Copyright (C) 2011 O.S. Systems Software LTDA.
# Licensed on MIT
#
# Provides the API to be used by the initramfs modules
#
# Modules need to provide the following functions:
#
# <module>_enabled : check if the module ought to run (return 1 to skip)
# <module>_run : do what is need
#
# Boot parameters are available on environment in the as:
#
# 'foo=value' as 'bootparam_foo=value'
# 'foo' as 'bootparam_foo=true'
# Register a function to be called before running a module
# The hook is called as:
# <function> pre <module>
add_module_pre_hook() {
MODULE_PRE_HOOKS="$MODULE_PRE_HOOKS $1"
}
# Register a function to be called after running a module
# The hook is called as:
# <function> post <module>
add_module_post_hook() {
MODULE_POST_HOOKS="$MODULE_POST_HOOKS $1"
}
# Load kernel module
load_kernel_module() {
if modprobe $1 >/dev/null 2>&1; then
info "Loaded module $1"
else
debug "Failed to load module $1"
fi
}
# Prints information
msg() {
echo "$@" >/dev/console
}
# Prints information if verbose bootparam is used
info() {
[ -n "$bootparam_verbose" ] && echo "$@" >/dev/console
}
# Prints information if debug bootparam is used
debug() {
[ -n "$bootparam_debug" ] && echo "DEBUG: $@" >/dev/console
}
# Prints a message and start a endless loop
fatal() {
echo $1 >/dev/console
echo >/dev/console
while [ "true" ]; do
sleep 3600
done
}
# Variables shared amoung modules
ROOTFS_DIR="/rootfs" # where to do the switch root
MODULE_PRE_HOOKS="" # functions to call before running each module
MODULE_POST_HOOKS="" # functions to call after running each module
MODULES_DIR=/init.d # place to look for modules
# initialize /proc and /sys
mkdir -p /proc /sys
mount -t proc proc /proc
mount -t sysfs sysfs /sys
# populate bootparam environment
for p in `cat /proc/cmdline`; do
opt="${p%%=*}"
opt=${opt/-/_}
if [ "${p/=/}" = "$p" ]; then
eval "bootparam_${opt}=true"
else
eval "bootparam_${opt}=\"${p#*=}\""
fi
done
# use /dev with devtmpfs
if grep -q devtmpfs /proc/filesystems; then
mkdir -p /dev
mount -t devtmpfs devtmpfs /dev
else
if [ ! -d /dev ]; then
fatal "ERROR: /dev doesn't exist and kernel doesn't has devtmpfs enabled."
fi
fi
mkdir $ROOTFS_DIR
# Load and run modules
for m in $MODULES_DIR/*; do
# Skip backup files
if [ "${m/\~/}" != "$m" ]; then
continue
fi
module=`basename $m | cut -d'-' -f 2`
debug "Loading module $module"
# pre hooks
for h in $MODULE_PRE_HOOKS; do
debug "Calling module hook (pre): $h"
eval "$h pre $module"
debug "Finished module hook (pre): $h"
done
# process module
source $m
if ! eval "${module}_enabled"; then
debug "Skipping module $module"
continue
fi
debug "Running ${module}_run"
eval "${module}_run"
# post hooks
for h in $MODULE_POST_HOOKS; do
debug "Calling module hook (post): $h"
eval "$h post $module"
debug "Finished module hook (post): $h"
done
done
# Catch all
fatal "ERROR: Initramfs failed to initialize the system."
@@ -0,0 +1,30 @@
#!/bin/sh
# Copyright (C) 2011 O.S. Systems Software LTDA.
# Licensed on MIT
mdev_enabled() {
if [ ! -e /sbin/mdev ]; then
debug "/sbin/mdev doesn't exist"
return 1
fi
return 0
}
mdev_run() {
# setup the environment
mount -t tmpfs tmpfs /dev
mkdir -m 1777 /dev/shm
mkdir -m 0755 /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
# load modules for devices
find /sys -name modalias | while read m; do
load_kernel_module $(cat $m)
done
}
@@ -0,0 +1,22 @@
#!/bin/sh
# Copyright (C) 2011 O.S. Systems Software LTDA.
# Licensed on MIT
udev_enabled() {
if [ ! -e /sbin/udevd ]; then
debug "/sbin/udev doesn't exist"
return 1
fi
return 0
}
udev_run() {
mkdir -p /run
udevd --daemon > /dev/null
udevadm trigger --action=add
udevadm settle
killall udevd 2>/dev/null
}
@@ -0,0 +1,57 @@
DESCRIPTION = "initramfs modular system"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
RDEPENDS = "busybox"
inherit allarch
SRC_URI = "file://init \
file://finish \
file://mdev \
file://udev \
file://e2fs \
file://debug"
do_install() {
install -d ${D}/init.d
# base
install -m 0755 ${WORKDIR}/init ${D}/init
install -m 0755 ${WORKDIR}/finish ${D}/init.d/99-finish
# mdev
install -m 0755 ${WORKDIR}/mdev ${D}/init.d/01-mdev
# udev
install -m 0755 ${WORKDIR}/udev ${D}/init.d/01-udev
# e2fs
install -m 0755 ${WORKDIR}/e2fs ${D}/init.d/10-e2fs
# debug
install -m 0755 ${WORKDIR}/debug ${D}/init.d/00-debug
}
PACKAGES = "${PN}-base \
initramfs-module-mdev \
initramfs-module-udev \
initramfs-module-e2fs \
initramfs-module-debug"
FILES_${PN}-base = "/init /init.d/99-finish"
DESCRIPTION_initramfs-module-mdev = "initramfs support for mdev"
RDEPENDS_initramfs-module-mdev = "${PN}-base"
FILES_initramfs-module-mdev = "/init.d/01-mdev"
DESCRIPTION_initramfs-module-udev = "initramfs support for udev"
RDEPENDS_initramfs-module-udev = "${PN}-base udev udev-utils"
FILES_initramfs-module-udev = "/init.d/01-udev"
DESCRIPTION_initramfs-module-e2fs = "initramfs support for ext4/ext3/ext2 filesystems"
RDEPENDS_initramfs-module-e2fs = "${PN}-base"
FILES_initramfs-module-e2fs = "/init.d/10-e2fs"
DESCRIPTION_initramfs-module-debug = "initramfs dynamic debug support"
RDEPENDS_initramfs-module-debug = "${PN}-base"
FILES_initramfs-module-debug = "/init.d/00-debug"
@@ -0,0 +1,15 @@
DESCRIPTION = "A live image init script"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
RDEPENDS = "udev"
SRC_URI = "file://init-live.sh"
PR = "r7"
do_install() {
install -m 0755 ${WORKDIR}/init-live.sh ${D}/init
}
inherit allarch
FILES_${PN} += " /init "
@@ -0,0 +1,22 @@
DESCRIPTION = "A live image init script for grub"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
SRC_URI = "file://init-install.sh"
PR = "r6"
RDEPENDS_${PN} = "grub parted e2fsprogs-mke2fs"
do_install() {
install -m 0755 ${WORKDIR}/init-install.sh ${D}/install.sh
}
# While this package maybe an allarch due to it being a
# simple script, reality is that it is Host specific based
# on the COMPATIBLE_HOST below, which needs to take precedence
#inherit allarch
INHIBIT_DEFAULT_DEPS = "1"
FILES_${PN} = " /install.sh "
COMPATIBLE_HOST = "(i.86|x86_64).*-linux"