Skip to content

Commit 42d988e

Browse files
committed
qemu/9pfs: Setup 9pfs support for redis and elfloader-basic
Signed-off-by: Neagu Dragos-Ionut <dragosneagu28@gmail.com>
1 parent 47548fa commit 42d988e

File tree

11 files changed

+134
-5
lines changed

11 files changed

+134
-5
lines changed

redis/Config.uk

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# Enable extendeded information for configuring network parameters.
55

66
config APPREDIS
7-
bool "Configure Redis server application with initrd as rootfs"
7+
bool "Configure Redis server application with 9pfs as rootfs"
88
default y
99

1010
# Select application library (Redis). Use the server main function the
@@ -19,9 +19,8 @@ default y
1919
# each select corresponding features. The other core components are
2020
# selected as dependencies of Redis.
2121
select LIBVFSCORE
22-
select LIBVFSCORE_AUTOMOUNT_UP
2322
select LIBRAMFS
24-
select LIBUKCPIO
23+
select LIBUKCPIO
2524
select LIBDEVFS
2625
select LIBDEVFS_AUTOMOUNT
2726
select LIBDEVFS_DEVSTDOUT

redis/scripts/README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,15 @@ e.g.
5454
./scripts/run/fc.x86_64
5555
./scripts/run/xen.arm64
5656
```
57+
58+
## Build and Run for <plat> / <arch> using a different file system
59+
60+
```console
61+
./scripts/run/<plat>.<arch>.<file_system>
62+
```
63+
64+
e.g.
65+
66+
```console
67+
./scripts/run/qemu.x86_64.9pfs
68+
```

redis/scripts/build/fc.x86_64

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/sh
22

33
make distclean
4-
UK_DEFCONFIG=$(pwd)/scripts/defconfig/fc.x86_64 make defconfig
4+
UK_DEFCONFIG=$(pwd)/scripts/defconfig/fc.x86_64.cpio make defconfig
55
touch Makefile.uk
66
make prepare
77
if test -z "$CC"; then
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/bin/sh
2+
3+
make distclean
4+
UK_DEFCONFIG=$(pwd)/scripts/defconfig/qemu.arm64.9pfs make defconfig
5+
touch Makefile.uk
6+
make prepare
7+
if test -z "$CC"; then
8+
make -j $(nproc)
9+
else
10+
make CC="$CC" -j $(nproc)
11+
fi

redis/scripts/build/qemu.x86_64

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/sh
22

33
make distclean
4-
UK_DEFCONFIG=$(pwd)/scripts/defconfig/qemu.x86_64 make defconfig
4+
UK_DEFCONFIG=$(pwd)/scripts/defconfig/qemu.x86_64.cpio make defconfig
55
touch Makefile.uk
66
make prepare
77
if test -z "$CC"; then
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/bin/sh
2+
3+
make distclean
4+
UK_DEFCONFIG=$(pwd)/scripts/defconfig/qemu.x86_64.9pfs make defconfig
5+
touch Makefile.uk
6+
make prepare
7+
if test -z "$CC"; then
8+
make -j $(nproc)
9+
else
10+
make CC="$CC" -j $(nproc)
11+
fi
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
CONFIG_PLAT_KVM=y
2+
CONFIG_KVM_VMM_QEMU=y
3+
CONFIG_ARCH_ARM_64=y
4+
CONFIG_LIBVFSCORE=y
5+
CONFIG_LIBVFSCORE_AUTOMOUNT_UP=y
6+
CONFIG_LIBuk9p=y
7+
CONFIG_LIB9pfs=y
8+
CONFIG_LIBDEVFS=y
9+
CONFIG_LIBDEVFS_AUTOMOUNT=y
10+
CONFIG_LIBDEVFS_DEVSTDOUT=y
11+
CONFIG_LIBUKNETDEV_EINFO_LIBPARAM=y
12+
CONFIG_ARM64_ERRATUM_858921=n
13+
CONFIG_ARM64_ERRATUM_835769=n
14+
CONFIG_ARM64_ERRATUM_843419=n
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
CONFIG_PLAT_KVM=y
2+
CONFIG_KVM_VMM_QEMU=y
3+
CONFIG_ARCH_X86_64=y
4+
CONFIG_LIBVFSCORE=y
5+
CONFIG_LIBVFSCORE_AUTOMOUNT_UP=y
6+
CONFIG_LIBuk9p=y
7+
CONFIG_LIB9pfs=y
8+
CONFIG_LIBDEVFS=y
9+
CONFIG_LIBDEVFS_AUTOMOUNT=y
10+
CONFIG_LIBDEVFS_DEVSTDOUT=y
11+
CONFIG_LIBUKNETDEV_EINFO_LIBPARAM=y

redis/scripts/run/qemu.arm64.9pfs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#!/bin/sh
2+
3+
if test ! -f "workdir/build/redis_qemu-arm64"; then
4+
echo "No kernel file workdir/build/redis_qemu-arm64." 1>&2
5+
echo "Did you run ./build.qemu.arm64 ?" 1>&2
6+
exit 1
7+
fi
8+
9+
{
10+
# Remove previously created network interface.
11+
sudo ip link set dev virbr0 down
12+
sudo ip link del dev virbr0
13+
sudo ip link set dev tap0 down
14+
sudo ip link del dev tap0
15+
} > /dev/null 2>&1
16+
17+
# Create bridge interface for QEMU networking.
18+
sudo ip link add dev virbr0 type bridge
19+
sudo ip address add 172.44.0.1/24 dev virbr0
20+
sudo ip link set dev virbr0 up
21+
22+
# Pack filesystem as an initial ramdisk CPIO file.
23+
rm -fr 9pfs-rootfs
24+
cp -r rootfs 9pfs-rootfs
25+
26+
sudo qemu-system-aarch64 \
27+
-nographic \
28+
-machine virt \
29+
-m 256 \
30+
-cpu max \
31+
-netdev bridge,id=en0,br=virbr0 -device virtio-net-pci,netdev=en0 \
32+
-append "redis netdev.ip=172.44.0.2/24:172.44.0.1::: vfs.fstab=[ \"fs0:/:9pfs:::\" ] -- /redis.conf" \
33+
-kernel workdir/build/redis_qemu-arm64 \
34+
-fsdev local,id=myid,path=$(pwd)/9pfs-rootfs/,security_model=none \
35+
-device virtio-9p-pci,fsdev=myid,mount_tag=fs0

redis/scripts/run/qemu.x86_64.9pfs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#!/bin/sh
2+
3+
if test ! -f "workdir/build/redis_qemu-x86_64"; then
4+
echo "No kernel file workdir/build/redis_qemu-x86_64." 1>&2
5+
echo "Did you run ./build.qemu.x86_64 ?" 1>&2
6+
exit 1
7+
fi
8+
9+
{
10+
# Remove previously created network interface.
11+
sudo ip link set dev virbr0 down
12+
sudo ip link del dev virbr0
13+
sudo ip link set dev tap0 down
14+
sudo ip link del dev tap0
15+
} > /dev/null 2>&1
16+
17+
# Create bridge interface for QEMU networking.
18+
sudo ip link add dev virbr0 type bridge
19+
sudo ip address add 172.44.0.1/24 dev virbr0
20+
sudo ip link set dev virbr0 up
21+
22+
# Pack filesystem as an initial ramdisk CPIO file.
23+
rm -fr 9pfs-rootfs
24+
cp -r rootfs 9pfs-rootfs
25+
26+
sudo qemu-system-x86_64 \
27+
-nographic \
28+
-m 256 \
29+
-cpu max \
30+
-netdev bridge,id=en0,br=virbr0 -device virtio-net-pci,netdev=en0 \
31+
-append "redis netdev.ip=172.44.0.2/24:172.44.0.1::: vfs.fstab=[ \"fs0:/:9pfs:::\" ] -- /redis.conf" \
32+
-kernel workdir/build/redis_qemu-x86_64 \
33+
-fsdev local,id=myid,path=$(pwd)/9pfs-rootfs/,security_model=none \
34+
-device virtio-9p-pci,fsdev=myid,mount_tag=fs0

0 commit comments

Comments
 (0)