-
Notifications
You must be signed in to change notification settings - Fork 126
Open
Description
Hi,
I'm just wondering if anyone has managed to build rumprun for the Pi?
I'm trying the following so far:
docker run -it resin/rpi-raspbian:jessie
Then in the docker:
sudo apt-get update
sudo apt-get install make
sudo apt-get install git
sudo apt-get install gcc-4.9
sudo apt-get install zlib1g-dev
git clone https://github.com/dave-tucker/rumprun.git
git checkout raspberrypi
Modify:
./src-netbsd/sys/arch/arm/include/aeabi.h
./src-netbsd/sys/sys/cdbr.h
./src-netbsd/lib/libc/locale/setlocale_local.h
./src-netbsd/sys/crypto/camellia/camellia.h
./src-netbsd/crypto/external/bsd/openssl/dist/crypto/camellia/camellia.h
adding:
typedef unsigned int size_t;
I also commented out
TARGETS+= compiler_rt
In platform/Makefile.inc.
Then ran:
export HOST_CC=gcc-4.9
export CC=gcc-4.9
./build-rr.sh -b rpi -j4 hw -- -r -j4 -F ACFLAGS="-march=armv6k -march=armv6zk -mcpu=arm1176jz-s -mfloat-abi=hard"
Which gave:
>>
>> Finished ./build-rr.sh for hw
>>
>> For Rumprun developers (if you're not sure, you don't need it):
. "/root/tucker2/rumprun/./obj-evbearmhf-el-hw-raspberrypi/config"
>>
>> toolchain tuple: arm-rumprun-netbsdelf-eabihf
>> cc wrapper: arm-rumprun-netbsdelf-eabihf-gcc
>> installed to "/root/tucker2/rumprun/./rumprun-raspberrypi"
>>
>> ./build-rr.sh ran successfully
I then did:
Created file rumprun-bake2.conf:
#
# rumpbake default configuration file
#
version 20150930
#
# First, define internal convenience sets.
#
create _foundation "basic components for the Rumprun unikernel"
add _foundation \
-lrumpvfs \
-lrumpkern_bmktc \
-lrumpkern_mman \
-lrumpdev \
-lrumpfs_tmpfs \
-lrumpnet_config \
-lrumpnet \
-lrumpdev_bpf \
-lrumpdev_vnd \
-lrumpdev_rnd
create _virtio "virtio drivers"
add _virtio \
-lrumpdev_virtio_if_vioif \
-lrumpdev_virtio_ld \
-lrumpdev_virtio_viornd \
-lrumpdev_pci_virtio \
-lrumpdev_pci
create _audio "audio subsystem and some PCI audio device drivers"
add _audio \
-lrumpdev_audio \
-lrumpdev_audio_ac97 \
-lrumpdev_pci_auich \
-lrumpdev_pci_eap \
-lrumpdev_pci_hdaudio \
-lrumpdev_hdaudio_hdafg
create _netinet "TCP/IP (v4)"
add _netinet \
-lrumpnet_netinet \
-lrumpnet_net \
-lrumpnet
create _netinet6 "TCP/IP (v6)"
add _netinet6 \
-lrumpnet_netinet6 \
-lrumpnet_net \
-lrumpnet
create _netunix "local domain sockets"
add _netunix \
-lrumpnet_local \
-lrumpnet
create _stdfs "selection of file system drivers"
add _stdfs \
-lrumpfs_ffs \
-lrumpfs_cd9660 \
-lrumpfs_ext2fs \
-lrumpdev_disk \
-lrumpvfs
create _pciether "PCI Ethernet NIC drivers"
add _pciether \
-lrumpdev_pci_if_wm \
-lrumpdev_miiphy \
-lrumpdev_pci
create _usb "USB stack incl. PCI USB host controllers"
add _usb \
-lrumpdev_pci_usbhc \
-lrumpdev_usb \
-lrumpdev_umass \
-lrumpdev_scsipi \
-lrumpdev_pci
# this is a config so that it can be assimilated
create _sysproxy "system call proxy support"
add _sysproxy \
-lrumpkern_sysproxy
create _miconf "general useful MI/pseudo driver set"
assimilate _miconf \
_foundation \
_stdfs \
_sysproxy
create hw_generic2 "generic targets, includes (almost) all drivers"
assimilate hw_generic2 \
_miconf \
CC=rumprun/rumprun-raspberrypi/bin/arm-rumprun-netbsdelf-eabihf-gcc
$CC 1.c -o a.out
rumprun-bake -c rumprun-bake2.conf hw_generic2 test2.bin a.out
qemu-system-arm -cpu arm1176 -m 128 -M raspi2 -kernel test2.bin
qemu-system-arm -nographic -cpu arm1176 -m 256 -M raspi2 -serial mon:stdio -kernel test2.bin
However no output is produced either graphically or via the serial output (I listed the command for the serial version above). And it seems to give high CPU usage on all cores.
Without the custom conf file I get:
root@56604f6e742f:~# rumprun-bake hw_generic a2.bin a.out
!!!
!!! NOTE: rumprun-bake is experimental. syntax may change in the future
!!!
/usr/bin/ld: cannot find -lrumpdev_virtio_if_vioif
/usr/bin/ld: cannot find -lrumpdev_virtio_ld
/usr/bin/ld: cannot find -lrumpdev_virtio_viornd
/usr/bin/ld: cannot find -lrumpdev_pci_virtio
/usr/bin/ld: cannot find -lrumpdev_pci
/usr/bin/ld: cannot find -lrumpdev_audio_ac97
/usr/bin/ld: cannot find -lrumpdev_pci_auich
/usr/bin/ld: cannot find -lrumpdev_pci_eap
/usr/bin/ld: cannot find -lrumpdev_pci_hdaudio
/usr/bin/ld: cannot find -lrumpdev_hdaudio_hdafg
/usr/bin/ld: cannot find -lrumpdev_pci_if_wm
/usr/bin/ld: cannot find -lrumpdev_miiphy
/usr/bin/ld: cannot find -lrumpdev_pci_usbhc
collect2: error: ld returned 1 exit status
Any suggestions would be most appreciated!
Cheers
Chris
zatkh
Metadata
Metadata
Assignees
Labels
No labels