We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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.