blob: 1ba104a6cce36a4789e0dd3e4c83497da4df6eae (
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
|
#!/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
|