mirror of
https://gitee.com/gfdgd-xi/deep-wine-runner
synced 2026-06-10 06:52:26 +08:00
添加独立的qemu mips包
This commit is contained in:
Executable
+131
@@ -0,0 +1,131 @@
|
||||
#! /bin/sh
|
||||
### BEGIN INIT INFO
|
||||
# Provides: qemu-guest-agent
|
||||
# Required-Start: $remote_fs $syslog
|
||||
# Required-Stop: $remote_fs $syslog
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: QEMU Guest Agent startup script
|
||||
# Description: Start the QEMU Guest Agent if we're running
|
||||
# in a QEMU virtual machine
|
||||
### END INIT INFO
|
||||
|
||||
# Author: Michael Tokarev <mjt@tls.msk.ru>
|
||||
|
||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||
DESC="QEMU Guest Agent"
|
||||
NAME=qemu-ga
|
||||
DAEMON=/usr/sbin/$NAME
|
||||
PIDFILE=/var/run/$NAME.pid
|
||||
|
||||
# config
|
||||
DAEMON_ARGS=""
|
||||
# default transport
|
||||
TRANSPORT=virtio-serial:/dev/virtio-ports/org.qemu.guest_agent.0
|
||||
|
||||
# Exit if the package is not installed
|
||||
[ -x "$DAEMON" ] || exit 0
|
||||
|
||||
# Read configuration variable file if it is present
|
||||
[ -r /etc/default/qemu-guest-agent ] && . /etc/default/qemu-guest-agent
|
||||
|
||||
# Load the VERBOSE setting and other rcS variables
|
||||
. /lib/init/vars.sh
|
||||
|
||||
# Define LSB log_* functions.
|
||||
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
|
||||
# and status_of_proc is working.
|
||||
. /lib/lsb/init-functions
|
||||
|
||||
#
|
||||
# Function that checks whenever system has necessary environment
|
||||
# It also splits $TRANSPORT into $method and $path
|
||||
#
|
||||
do_check_transport() {
|
||||
method=${TRANSPORT%%:*}; path=${TRANSPORT#*:}
|
||||
case "$method" in
|
||||
virtio-serial | isa-serial)
|
||||
if [ ! -e "$path" ]; then
|
||||
log_warning_msg "$NAME: transport endpoint not found, not starting"
|
||||
return 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
#
|
||||
# Function that starts the daemon/service
|
||||
#
|
||||
do_start()
|
||||
{
|
||||
# Return
|
||||
# 0 if daemon has been started
|
||||
# 1 if daemon was already running
|
||||
# 2 if daemon could not be started
|
||||
start-stop-daemon -Sq -p $PIDFILE -x $DAEMON --test > /dev/null \
|
||||
|| return 1
|
||||
start-stop-daemon -Sq -p $PIDFILE -x $DAEMON -- --daemonize \
|
||||
$DAEMON_ARGS -m "$method" -p "$path" \
|
||||
|| return 2
|
||||
}
|
||||
|
||||
#
|
||||
# Function that stops the daemon/service
|
||||
#
|
||||
do_stop()
|
||||
{
|
||||
# Return
|
||||
# 0 if daemon has been stopped
|
||||
# 1 if daemon was already stopped
|
||||
# 2 if daemon could not be stopped
|
||||
# other if a failure occurred
|
||||
start-stop-daemon -Kq --retry=TERM/30/KILL/5 -p $PIDFILE --name $NAME
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
do_check_transport || exit 0
|
||||
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" $NAME
|
||||
do_start
|
||||
case "$?" in
|
||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
||||
esac
|
||||
;;
|
||||
stop)
|
||||
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" $NAME
|
||||
do_stop
|
||||
case "$?" in
|
||||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
|
||||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
|
||||
esac
|
||||
;;
|
||||
status)
|
||||
status_of_proc "$DAEMON" $NAME && exit 0 || exit $?
|
||||
;;
|
||||
restart|force-reload) # we do not support reload
|
||||
do_check_transport || exit 0
|
||||
log_daemon_msg "Restarting $DESC" $NAME
|
||||
do_stop
|
||||
case "$?" in
|
||||
0|1)
|
||||
do_start
|
||||
case "$?" in
|
||||
0) log_end_msg 0 ;;
|
||||
1) log_end_msg 1 ;; # Old process is still running
|
||||
*) log_end_msg 1 ;; # Failed to start
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
# Failed to stop
|
||||
log_end_msg 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
echo "Usage: /etc/init.d/qemu-guest-agent {start|stop|status|restart|force-reload}" >&2
|
||||
exit 3
|
||||
;;
|
||||
esac
|
||||
|
||||
:
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Script to shut down a network (tap) device for qemu.
|
||||
# Initially this script is empty, but you can configure,
|
||||
# for example, accounting info here.
|
||||
|
||||
:
|
||||
Executable
+42
@@ -0,0 +1,42 @@
|
||||
#! /bin/sh
|
||||
# Script to bring a network (tap) device for qemu up.
|
||||
# The idea is to add the tap device to the same bridge
|
||||
# as we have default routing to.
|
||||
|
||||
# in order to be able to find brctl
|
||||
PATH=$PATH:/sbin:/usr/sbin
|
||||
ip=$(which ip)
|
||||
|
||||
if [ -n "$ip" ]; then
|
||||
ip link set "$1" up
|
||||
else
|
||||
brctl=$(which brctl)
|
||||
if [ ! "$ip" -o ! "$brctl" ]; then
|
||||
echo "W: $0: not doing any bridge processing: neither ip nor brctl utility not found" >&2
|
||||
exit 0
|
||||
fi
|
||||
ifconfig "$1" 0.0.0.0 up
|
||||
fi
|
||||
|
||||
switch=$(ip route ls | \
|
||||
awk '/^default / {
|
||||
for(i=0;i<NF;i++) { if ($i == "dev") { print $(i+1); next; } }
|
||||
}'
|
||||
)
|
||||
|
||||
# only add the interface to default-route bridge if we
|
||||
# have such interface (with default route) and if that
|
||||
# interface is actually a bridge.
|
||||
# It is possible to have several default routes too
|
||||
for br in $switch; do
|
||||
if [ -d /sys/class/net/$br/bridge/. ]; then
|
||||
if [ -n "$ip" ]; then
|
||||
ip link set "$1" master "$br"
|
||||
else
|
||||
brctl addif $br "$1"
|
||||
fi
|
||||
exit # exit with status of the previous command
|
||||
fi
|
||||
done
|
||||
|
||||
echo "W: $0: no bridge for guest interface found" >&2
|
||||
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/bin/sh
|
||||
|
||||
# This script is executed when a guest agent receives fsfreeze-freeze and
|
||||
# fsfreeze-thaw command, if it is specified in --fsfreeze-hook (-F)
|
||||
# option of qemu-ga or placed in default path (/etc/qemu/fsfreeze-hook).
|
||||
# When the agent receives fsfreeze-freeze request, this script is issued with
|
||||
# "freeze" argument before the filesystem is frozen. And for fsfreeze-thaw
|
||||
# request, it is issued with "thaw" argument after filesystem is thawed.
|
||||
|
||||
LOGFILE=/var/log/qga-fsfreeze-hook.log
|
||||
FSFREEZE_D=$(dirname -- "$0")/fsfreeze-hook.d
|
||||
|
||||
# Check whether file $1 is a backup or rpm-generated file and should be ignored
|
||||
is_ignored_file() {
|
||||
case "$1" in
|
||||
*~ | *.bak | *.orig | *.rpmnew | *.rpmorig | *.rpmsave | *.sample | *.dpkg-old | *.dpkg-new | *.dpkg-tmp | *.dpkg-dist | *.dpkg-bak | *.dpkg-backup | *.dpkg-remove)
|
||||
return 0 ;;
|
||||
esac
|
||||
return 1
|
||||
}
|
||||
|
||||
# Iterate executables in directory "fsfreeze-hook.d" with the specified args
|
||||
[ ! -d "$FSFREEZE_D" ] && exit 0
|
||||
for file in "$FSFREEZE_D"/* ; do
|
||||
is_ignored_file "$file" && continue
|
||||
[ -x "$file" ] || continue
|
||||
printf "$(date): execute $file $@\n" >>$LOGFILE
|
||||
"$file" "$@" >>$LOGFILE 2>&1
|
||||
STATUS=$?
|
||||
printf "$(date): $file finished with status=$STATUS\n" >>$LOGFILE
|
||||
done
|
||||
|
||||
exit 0
|
||||
@@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=QEMU Guest Agent
|
||||
BindsTo=dev-virtio\x2dports-org.qemu.guest_agent.0.device
|
||||
After=dev-virtio\x2dports-org.qemu.guest_agent.0.device
|
||||
|
||||
[Service]
|
||||
ExecStart=-/usr/sbin/qemu-ga
|
||||
Restart=always
|
||||
RestartSec=0
|
||||
|
||||
[Install]
|
||||
@@ -0,0 +1,2 @@
|
||||
SUBSYSTEM=="virtio-ports", ATTR{name}=="org.qemu.guest_agent.0", \
|
||||
TAG+="systemd" ENV{SYSTEMD_WANTS}="qemu-guest-agent.service"
|
||||
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
qemu/pxe-e1000.rom
|
||||
@@ -0,0 +1 @@
|
||||
qemu/pxe-e1000.rom
|
||||
+1
@@ -0,0 +1 @@
|
||||
qemu/pxe-eepro100.rom
|
||||
+1
@@ -0,0 +1 @@
|
||||
qemu/pxe-ne2k_pci.rom
|
||||
+1
@@ -0,0 +1 @@
|
||||
qemu/pxe-pcnet.rom
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
qemu/pxe-rtl8139.rom
|
||||
+1
@@ -0,0 +1 @@
|
||||
qemu/pxe-virtio.rom
|
||||
Binary file not shown.
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
+141
@@ -0,0 +1,141 @@
|
||||
#! /bin/sh -e
|
||||
#
|
||||
# $Id: qemu-make-debian-root 353 2008-10-16 20:28:22Z aurel32 $
|
||||
#
|
||||
# Script to make a debian root image.
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
which debootstrap >/dev/null || {
|
||||
echo "error: missing debootstrap package" >&2
|
||||
exit 1
|
||||
}
|
||||
which sfdisk >/dev/null || {
|
||||
echo "error: missing fdisk package" >&2
|
||||
exit 1
|
||||
}
|
||||
which mke2fs >/dev/null || {
|
||||
echo "error: missing e2fsprogs package" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
KEEPFS=0
|
||||
SPARSE=0
|
||||
|
||||
while :; do
|
||||
case "$1" in
|
||||
-k)
|
||||
KEEPFS=1
|
||||
;;
|
||||
-s)
|
||||
SPARSE=1
|
||||
;;
|
||||
-ks|-sk)
|
||||
KEEPFS=1
|
||||
SPARSE=1
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if [ $# -lt 4 ]; then
|
||||
echo Usage: "$0 [-ks] size-in-MB distrib deburl image [files_to_copy_in_/root]" >&2
|
||||
echo "eg $0 150 sid http://proxy:10000/debian qemu" >&2
|
||||
echo "-k keep file system -s sparse image" >&2
|
||||
echo "$0 is normally run as root." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SIZE=$1 # In Mib
|
||||
DISTRO=$2
|
||||
URL=$3
|
||||
IMAGE=$4
|
||||
shift 4
|
||||
|
||||
# now files to copy are in "$@". We don't put them in a variable
|
||||
# because that would coufuse spaces-in-filenames with
|
||||
# whitespace-separation.
|
||||
|
||||
|
||||
if [ $SIZE -lt 130 ]; then
|
||||
echo 'Size must be at least 130 megabytes (Debian unstable takes 100)' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cleanup()
|
||||
{
|
||||
echo Cleaning up... >&2
|
||||
umount -d $TMP_DIR || true
|
||||
losetup -d $LOOP || true
|
||||
rm -f $IMAGE
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
# Create a filesystem: one track for partition table.
|
||||
if [ "$SPARSE" = "1" ]; then
|
||||
truncate -s ${SIZE}M "$IMAGE"
|
||||
else
|
||||
dd bs=1M count=$SIZE if=/dev/zero of=$IMAGE
|
||||
fi
|
||||
|
||||
SECT=63 # first sector of a partition
|
||||
|
||||
# Partition so one partition covers entire disk.
|
||||
echo "$SECT," | sfdisk -uS -L $IMAGE
|
||||
|
||||
# Find an unused loop device and set it up.
|
||||
LOOP=`losetup -f`
|
||||
losetup -o $(($SECT*512)) $LOOP $IMAGE
|
||||
|
||||
# Create filesystem.
|
||||
mke2fs -q -m1 $LOOP
|
||||
|
||||
TMP_DIR="$(mktemp -d /tmp/mount.XXXXXX)" || \
|
||||
{ echo >&2 "Failed to create temporary directory"; exit 1; }
|
||||
|
||||
# Mount it.
|
||||
mount $LOOP $TMP_DIR
|
||||
|
||||
# Do debian install on it.
|
||||
debootstrap --variant=minbase $DISTRO $TMP_DIR $URL
|
||||
|
||||
# Final configuration.
|
||||
cat > $TMP_DIR/etc/fstab <<EOF
|
||||
/dev/hda1 / ext2 errors=remount-ro 0 1
|
||||
proc /proc proc defaults 0 0
|
||||
EOF
|
||||
|
||||
# Console on ttyS0, not tty1, and no other gettys.
|
||||
sed 's,1:2345:respawn:/sbin/getty 38400 tty1,1:2345:respawn:/sbin/getty 38400 ttyS0,' < $TMP_DIR/etc/inittab | sed 's,^.:23:respawn.*,,' > $TMP_DIR/etc/inittab.new
|
||||
mv $TMP_DIR/etc/inittab.new $TMP_DIR/etc/inittab
|
||||
|
||||
# Set hostname to base of image name.
|
||||
basename $IMAGE > $TMP_DIR/etc/hostname
|
||||
|
||||
# Create /etc/shadow
|
||||
chroot $TMP_DIR pwconv
|
||||
|
||||
# Set root password to "root"
|
||||
sed 's/^root:[^:]*/root:$1$aybpiIGf$cB7iFDNZvViQtQjEZ5HFQ0/' < $TMP_DIR/etc/shadow > $TMP_DIR/etc/shadow.new
|
||||
mv $TMP_DIR/etc/shadow.new $TMP_DIR/etc/shadow
|
||||
|
||||
# Remove packages we don't need
|
||||
chroot $TMP_DIR /usr/bin/dpkg --remove console-common console-tools console-data base-config man-db manpages
|
||||
# Try to remove all libraries: some won't be removable.
|
||||
chroot $TMP_DIR dpkg --remove `chroot $TMP_DIR dpkg --get-selections | sed -n 's/^\(lib[^ \t]*\)[\t ]*install/\1/p'` 2>/dev/null || true
|
||||
|
||||
|
||||
# Copy wanted files to /root if asked to
|
||||
if [ $# -gt 0 ]; then
|
||||
cp -a "$@" $TMP_DIR/root/
|
||||
fi
|
||||
umount -d $TMP_DIR
|
||||
|
||||
trap "" EXIT
|
||||
|
||||
echo Done.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
../extboot.bin
|
||||
@@ -0,0 +1 @@
|
||||
../kvmvapic.bin
|
||||
@@ -0,0 +1 @@
|
||||
../linuxboot.bin
|
||||
@@ -0,0 +1 @@
|
||||
../multiboot.bin
|
||||
@@ -0,0 +1 @@
|
||||
../vapic.bin
|
||||
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
kvmvapic.bin
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user