blob: 2b4a8a04c53e5c767bfd00efbb804d895aad6535 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
#!/bin/bash
# Variables
TINYCORE_URL="http://tinycorelinux.net/14.x/x86/release/TinyCore-current.iso" # TinyCore ISO URL
ISO_FILE="TinyCore.iso" # Local TinyCore ISO file
DISK_IMAGE="tinycore_test.img" # Disk image for TinyCore
DISK_SIZE="128M" # Size of the disk image
MOUNT_DIR="mnt_tinycore" # Mount point for the disk image
# Ensure a binary is provided as an argument
if [ -z "$1" ]; then
echo "Usage: $0 <path_to_precompiled_binary>"
exit 1
fi
BINARY="$1"
# Ensure the binary exists
if [ ! -f "$BINARY" ]; then
echo "Error: Precompiled binary '$BINARY' not found."
exit 1
fi
# Ensure dependencies are installed
REQUIRED_TOOLS=("wget" "qemu-system-x86_64" "dd" "mkfs.ext4" "mount" "losetup")
for tool in "${REQUIRED_TOOLS[@]}"; do
if ! command -v $tool &>/dev/null; then
echo "Error: $tool is required but not installed. Please install it first."
exit 1
fi
done
# Step 1: Download TinyCore Linux ISO
if [ ! -f "$ISO_FILE" ]; then
echo "Downloading TinyCore Linux ISO..."
wget -O $ISO_FILE $TINYCORE_URL
fi
# Step 2: Create a Disk Image
echo "Creating disk image..."
dd if=/dev/zero of=$DISK_IMAGE bs=1M count=${DISK_SIZE/M/}
mkfs.ext4 $DISK_IMAGE
# Step 3: Mount and Prepare Disk Image
echo "Mounting disk image..."
mkdir -p $MOUNT_DIR
sudo mount -o loop $DISK_IMAGE $MOUNT_DIR
echo "Preparing disk image for TinyCore Linux..."
sudo mkdir -p $MOUNT_DIR/tce
sudo cp $ISO_FILE $MOUNT_DIR/
# Step 4: Add Precompiled Binary
echo "Adding precompiled binary '$BINARY'..."
sudo cp "$BINARY" $MOUNT_DIR/
# Step 5: Unmount Disk Image
echo "Unmounting disk image..."
sudo umount $MOUNT_DIR
rmdir $MOUNT_DIR
# Step 6: Boot TinyCore Linux in QEMU
echo "Booting TinyCore Linux with QEMU..."
qemu-system-x86_64 \
-cdrom $ISO_FILE \
-hda $DISK_IMAGE \
-m 512M \
-boot d \
-nographic
|