Hi,
I want to experiment with capability enabled LLVM - but would like to have a shared directory between the Morello FVP and the host linux. Please could you give some more detailed instructions on this, sorry if I have missed anything obvious in the documentation.
Thanks,
Andy
Hi Andy,
Since you say you're using CheriBSD, by default cheribuild will set up the FVP to expose the guest's SSH port 22. If you look at the arguments passed to the FVP as printed out by cheribuild, you should see a pair that looks like `-C board.virtio_net.hostbridge.userNetPorts=21846=22` (that first number will likely be different for you as it's generated based on your user's id so as to avoid collisions on shared servers), meaning you can use `ssh -p 21846 root@localhost` to connect to CheriBSD. That means you can also copy files to the guest with `scp -P 21846 /path/to/source root@localhost:/path/to/dest` and from the guest with `scp -P 21846 root@localhost:/path/to/source /path/to/dest` (note the capitalisation of `-P`).
If you update your cheribuild to the latest version in git you should now see an additional friendlier `Listening for SSH connections on localhost:21846` message printed in green (something we print for our QEMU CHERI-MIPS and CHERI-RISC-V invocations, but that did not get copied for the FVP it seems).
You can also `kldload smbfs` and mount a shared Samba filesystem using `mount_smbfs -I 10.0.2.4 -N //10.0.2.4/share_name /mnt` (where `share_name` is whatever you've configured, and you can of course `mkdir` your own mount points, `/mnt` is just there by default if you only need one). Unlike QEMU, the FVP does not have Samba integration baked into it, but here's an example config based on what QEMU auto-generates:
[global] private dir=/tmp/qemu-smb.35U1U0 interfaces=127.0.0.1 bind interfaces only=yes pid directory=/tmp/qemu-smb.35U1U0 lock directory=/tmp/qemu-smb.35U1U0 state directory=/tmp/qemu-smb.35U1U0 cache directory=/tmp/qemu-smb.35U1U0 ncalrpc dir=/tmp/qemu-smb.35U1U0/ncalrpc log file=/tmp/qemu-smb.35U1U0/log.smbd smb passwd file=/tmp/qemu-smb.35U1U0/smbpasswd security = user map to guest = Bad User load printers = no printing = bsd disable spoolss = yes case sensitive = yes usershare max shares = 0 min protocol = NT1 [my_first_share] path=/path/to/first/share read only=no guest ok=yes force user=jrtc4 [my_second_share] path=/path/to/second/share read only=no guest ok=yes force user=jrtc4
The /tmp/qemu-smb.35U1U0 path can be anything you like, it's just a dummy directory where you need to put the smb.conf. You can then start smbd with `smbd -l /tmp/qemu-smb.35U1U0 -s /tmp/qemu-smb.35U1U0/smb.conf` in the background or another terminal window.