Hi all,
I am currently running the Morello FVP on a CheriBSD instance, built with the cheribuild script.
I added a test file (helloworld.txt) to the root filesystem of the machine under ~/cheri/output/rootfs-morello-purecap/root
I then rebuilt the machine and disk image with ./cheribuild.py run-fvp-morello-purecap -d
I assumed this would take into account the changes I've made, and would rebuild the machine/disk image to include them. However, when going to /root on the CheriBSD instance after rebuilding, the file isn't there. It has also been removed from the host system under ~/cheri/output/rootfs-morello-purecap/root
Why is this happening? And what is the best way to make amendments to a CheriBSD instance, such as adding files, so that when the machine is rebuilt/booted with the cheribuild script they are included?
Thanks!
samDobson said:I'm now looking at compiling the target nginx-morello-purecap. Once I have cross-compiled this, where would it live on the CheriBSD instance?
If you run cheribuild --pretend nginx-morello-purecap (or do the actual build and look at the messages) you can see how exactly nginx is built and installed. In particular, the configure invocation passes --prefix=/opt/morello-purecap/nginx, so that's where it will live.
samDobson said:Would I configure this like a normal Nginx web server?
Yes. Just note that we build it with the default settings, so configuration lives in /opt/morello-purecap/nginx/conf rather than overriding it to something like /etc/nginx like some distributions do.
samDobson said:How would you suggest configuring the IP so that I can communicate between the Ubuntu host system and the CheriBSD VM running inside QEMU to view the Nginx front-end?
Easiest way is to port-forward with --run-morello-purecap/extra-tcp-forwarding=$HOST_PORT:80, then it should be available on localhost:$HOST_PORT on the host.
Jessica Clarke said:If you run cheribuild --pretend nginx-morello-purecap (or do the actual build and look at the messages) you can see how exactly nginx is built and installed.
Just done this with the --logfile option so I can have a look at the build steps in detail. In which directory is this logfile produced?
Jessica Clarke said:Easiest way is to port-forward with --run-morello-purecap/extra-tcp-forwarding=$HOST_PORT:80, then it should be available on localhost:$HOST_PORT on the host.
Brilliant I'll give this a shot! Just to confirm, would it be --run-morello-purecap/extra-tcp........ or --run-fvp-morello-purecap/extra-tcp.........
Before then, I am currently looking at getting a very simple database configured with postgres-morello-purecap. I've made a new user (dbadmin) for this as postgres can be a bit funny when using root. I've navigated to it's directory at /opt/morello-purecap/postgres/bin and I can't seem to start the postgres service with ./postgres as I get this error message below, any ideas? There is also no entry for the postgres service in /etc/rc.d
dbadmin@cheribsd-morello-purecap:/opt/morello-purecap/postgres/bin $ ./postgrespostgres does not know where to find the server configuration file.You must specify the --config-file or -D invocation option or set the PGDATA environment variable.
I also can't create a database with ./createdb as I am met with this error message:
dbadmin@cheribsd-morello-purecap:/opt/morello-purecap/postgres/bin $ ./createdb testcreatedb: could not connect to database template1: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Thanks for all your help!
samDobson said:Just done this with the --logfile option so I can have a look at the build steps in detail. In which directory is this logfile produced?
~/cheri/build/nginx-morello-purecap-build/ will have .log files, but those are solely for the output from running configure and make. The output from cheribuild itself isn't saved anywhere.
samDobson said:Brilliant I'll give this a shot! Just to confirm, would it be --run-morello-purecap/extra-tcp........ or --run-fvp-morello-purecap/extra-tcp.........
It depends whether your using our Morello QEMU or Arm's Morello FVP.
samDobson said: I've navigated to it's directory at /opt/morello-purecap/postgres/bin and I can't seem to start the postgres service with ./postgres as I get this error message below, any ideas?
As it says you need to tell it where your data directory is.
samDobson said:There is also no entry for the postgres service in /etc/rc.d
Upstream PostgreSQL doesn't provide an rc.d file, if you want one you'll have to copy it from the FreeBSD Ports tree at https://github.com/freebsd/freebsd-ports/blob/main/databases/postgresql14-server/files/postgresql.in or write your own. Note that this includes passing -D to address the above error.
samDobson said:I also can't create a database with ./createdb as I am met with this error message:
createdb and initdb are different things. The former is for adding new databases to a running PostgreSQL instance. The latter is for setting up the first database that a server can then be started with. See https://www.postgresql.org/docs/current/creating-cluster.html and https://www.postgresql.org/docs/current/manage-ag-createdb.html. You'll need to run initdb pointed at where you want the data directory to be.