summaryrefslogtreecommitdiff
path: root/schulung_tools/rootfs_basic/scripts/create_rootfs.sh
diff options
context:
space:
mode:
Diffstat (limited to 'schulung_tools/rootfs_basic/scripts/create_rootfs.sh')
-rwxr-xr-xschulung_tools/rootfs_basic/scripts/create_rootfs.sh55
1 files changed, 55 insertions, 0 deletions
diff --git a/schulung_tools/rootfs_basic/scripts/create_rootfs.sh b/schulung_tools/rootfs_basic/scripts/create_rootfs.sh
new file mode 100755
index 0000000..1ba104a
--- /dev/null
+++ b/schulung_tools/rootfs_basic/scripts/create_rootfs.sh
@@ -0,0 +1,55 @@
+#!/bin/sh
+set -e
+
+CROSS_BASE=/opt/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf
+CROSS_LIBC=$CROSS_BASE/arm-linux-gnueabihf/libc
+
+# create directories
+mkdir -p nfsroot/dev
+mkdir -p nfsroot/proc
+mkdir -p nfsroot/sys
+mkdir -p nfsroot/lib
+mkdir -p nfsroot/bin
+mkdir -p nfsroot/etc/ld.so.conf.d
+mkdir -p nfsroot/opt/acme/lib
+
+# copy dependencies
+cp $CROSS_LIBC/lib/ld-2.23.so nfsroot/lib/
+cp $CROSS_LIBC/lib/libc-2.23.so nfsroot/lib/
+cp $CROSS_LIBC/lib/libm-2.23.so nfsroot/lib/
+
+# copy busybox + links
+cp -a busybox-1.28.1/_install/* nfsroot/
+
+# copy gdbserver
+cp $CROSS_BASE/bin/gdbserver nfsroot/bin/
+
+# copy hello/libfunc
+cp ../src/hello/hello nfsroot/bin/
+cp ../src/hello/libhello.so.0.0.1 nfsroot/opt/acme/lib/
+
+# create ldconfig configuration files
+echo 'include /etc/ld.so.conf.d/*.conf' > nfsroot/etc/ld.so.conf
+echo '/opt/acme/lib' > nfsroot/etc/ld.so.conf.d/acme.conf
+
+# create dynamic loader cache
+qemu-arm $CROSS_LIBC/sbin/ldconfig -r nfsroot
+qemu-arm $CROSS_LIBC/sbin/ldconfig -r nfsroot -p
+
+# create init configuation
+cat > nfsroot/etc/inittab << 'EOF'
+::sysinit:/etc/rcS
+::askfirst:-/bin/sh
+EOF
+
+# create start script
+cat > nfsroot/etc/rcS << 'EOF'
+#!/bin/sh
+
+mount -t proc proc /proc
+mount -t sysfs sys /sys
+mount -t tmpfs tmpfs /dev
+mdev -s
+echo /sbin/mdev > /proc/sys/kernel/hotplug
+EOF
+chmod 0755 nfsroot/etc/rcS