Safe Network Node on 64-bit ARM servers Installation Guide [Manjaro minimal]

The jump has been fixed.
‘Accept or abort’ is how the manjaro team designed it.

The current issue right now is that no packages or being installed.
It seems like any systemd function called does not work in docker
and so I have a issue on my hands, since the installer uses systemd-nspawn.

1 Like

And I’m giving up on docker for the OS installment.
I will have to go back to virtualbox.
With vagrant this time.

Where does a VM come into it? I thought you were using Docker for running sn_node on the Pi.

Btw, qemu and libvirt and much better to use with Vagrant than Virtualbox.

2 Likes

It’s silly, but the VM comes in for the SD flasher.
Instead of using etcher or rufus, one uses manjaro-arm-installer which only runs on Manjaro Linux.

So you install Manjaro linux in order to install Manjaro linux.

I’m not too familiar with libvirt or qemu. I will check out libvrt later, because I don’t see the vagrant image being supported by qemu. is libvirt smaller?

Can you not just flash the SD card directly from Windows? Sorry, I’m not really familiar with Manjaro.

1 Like

You can, but the manjaro-arm-installer comes with a neat menu, where one can choose locale, timezone, and other things beforehand.

Here’s a good quick little introduction to qemu, to give you an idea:
https://drewdevault.com/2018/09/10/Getting-started-with-qemu.html

libvirt is like a wrapper around it, for better/easier management. Vagrant supports using libvirt as a provider, rather than the vbox provider. It’s worth taking an afternoon to familiarise yourself with how it works, so that you can stop using Virtualbox.

qemu is much faster and more reliable than Virtualbox. I used Virtualbox for years and it has lots and lots of issues that come up all the time. Never had any problems with qemu.

2 Likes

Libvrt is not as easy so far:

[folaht@pjehrsohmehj Vagrant]$ vagrant up
Bringing machine 'default' up with 'libvirt' provider...
...
==> default: Deleting the machine folder
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

mount -o vers=3,udp 192.168.121.1:/home/folaht/Vagrant /vagrant

Stdout from the command:



Stderr from the command:

mount.nfs: requested NFS version or transport protocol is not supported

Can you post your Vagrantfile please?

2 Likes

is that trailing space after /Vagrant correct?

try
mount -o vers=3,udp 192.168.121.1:/home/folaht/Vagrant/vagrant

1 Like
[folaht@pjehrsohmehj Vagrant]$ cat Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
  # The most common configuration options are documented and commented below.
  # For a complete reference, please see the online documentation at
  # https://docs.vagrantup.com.

  # Every Vagrant development environment requires a box. You can search for
  # boxes at https://vagrantcloud.com/search.
  config.vm.box = "Zelec/manjarolinux"

  # Disable automatic box update checking. If you disable this, then
  # boxes will only be checked for updates when the user runs
  # `vagrant box outdated`. This is not recommended.
  # config.vm.box_check_update = false

  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine. In the example below,
  # accessing "localhost:8080" will access port 80 on the guest machine.
  # NOTE: This will enable public access to the opened port
  # config.vm.network "forwarded_port", guest: 80, host: 8080

  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine and only allow access
  # via 127.0.0.1 to disable public access
  # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"

  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  # config.vm.network "private_network", ip: "192.168.33.10"

  # Create a public network, which generally matched to bridged network.
  # Bridged networks make the machine appear as another physical device on
  # your network.
  # config.vm.network "public_network"

  # Share an additional folder to the guest VM. The first argument is
  # the path on the host to the actual folder. The second argument is
  # the path on the guest to mount the folder. And the optional third
  # argument is a set of non-required options.
  # config.vm.synced_folder "../data", "/vagrant_data"

  # Provider-specific configuration so you can fine-tune various
  # backing providers for Vagrant. These expose provider-specific options.
  # Example for VirtualBox:
  #
  # config.vm.provider "virtualbox" do |vb|
  #   # Display the VirtualBox GUI when booting the machine
  #   vb.gui = true
  #
  #   # Customize the amount of memory on the VM:
  #   vb.memory = "1024"
  # end
  #
  # View the documentation for the provider you are using for more
  # information on available options.

  # Enable provisioning with a shell script. Additional provisioners such as
  # Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
  # documentation for more information about their specific syntax and use.
  # config.vm.provision "shell", inline: <<-SHELL
  #   apt-get update
  #   apt-get install -y apache2
  # SHELL
end

Difficult to do when all I’ve done is vagrant up.

1 Like

Yes but check that path is correct

ls -al /home/folaht/Vagrant /vagrant

and
ls -al /home/folaht/Vagrant/vagrant

There is no /home/folaht/Vagrant/vagrant only a Vagrantfile and a .vagrant folder at /home/folaht/Vagrant.

I had no problem with this using Virtualbox @chriso.

1 Like

Ignore me _ I had a brainfart and thought /home/folaht/Vagrant /vagrant was a path, not part of a mapping D’oh

Hmm, the box came up fine for me.

The output indicates that the VM is being destroyed right away. Try running vagrant with debugging output: VAGRANT_LOG=debug vagrant up to see if you can get any more info.

1 Like
...
 INFO interface: error: Vagrant failed to install an updated NFS exports file. This may be
due to overly restrictive permissions on your NFS exports file. Please
validate them and try again.

command: sudo chown 0:0 /tmp/vagrant20210810-13703-15djs47
stdout:
stderr: sudo: délai d'attente dépassé durant la lecture du mot de passe
sudo: il est nécessaire de saisir un mot de passe

Vagrant failed to install an updated NFS exports file. This may be
due to overly restrictive permissions on your NFS exports file. Please
validate them and try again.

command: sudo chown 0:0 /tmp/vagrant20210810-13703-15djs47
stdout:
stderr: sudo: délai d'attente dépassé durant la lecture du mot de passe
sudo: il est nécessaire de saisir un mot de passe

Hmm, not much to go on there. I’m guessing that’s happening when it’s just trying to share the current directory on the guest. For me it uses rsync:

Bringing machine 'default' up with 'libvirt' provider...
==> default: Checking if box 'Zelec/manjarolinux' version '20210506.1239946350' is up to date...
==> default: Creating image (snapshot of base box volume).
==> default: Creating domain with the following settings...
==> default:  -- Name:              manjaro_default
==> default:  -- Description:       Source: /home/chris/dev/github/jacderida/vagrant-boxes/manjaro/Vagrantfile
==> default:  -- Domain type:       kvm
==> default:  -- Cpus:              1
==> default:  -- Feature:           acpi
==> default:  -- Feature:           apic
==> default:  -- Feature:           pae
==> default:  -- Clock offset:      utc
==> default:  -- Memory:            512M
==> default:  -- Management MAC:    
==> default:  -- Loader:            
==> default:  -- Nvram:             
==> default:  -- Base box:          Zelec/manjarolinux
==> default:  -- Storage pool:      default
==> default:  -- Image():     /var/lib/libvirt/images/manjaro_default.img, 20G
==> default:  -- Disk driver opts:  cache='default'
==> default:  -- Kernel:            
==> default:  -- Initrd:            
==> default:  -- Graphics Type:     vnc
==> default:  -- Graphics Port:     -1
==> default:  -- Graphics IP:       127.0.0.1
==> default:  -- Graphics Password: Not defined
==> default:  -- Video Type:        cirrus
==> default:  -- Video VRAM:        9216
==> default:  -- Sound Type:	
==> default:  -- Keymap:            en-us
==> default:  -- TPM Backend:       passthrough
==> default:  -- TPM Path:          
==> default:  -- INPUT:             type=mouse, bus=ps2
==> default: Creating shared folders metadata...
==> default: Starting domain.
==> default: Waiting for domain to get an IP address...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 192.168.121.116:22
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection refused. Retrying...
    default: Warning: Connection refused. Retrying...
    default: 
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default: 
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Installing rsync to the VM...
==> default: Rsyncing folder: /home/chris/dev/github/jacderida/vagrant-boxes/manjaro/ => /vagrant

You could try installing rsync on your host to see if that would get vagrant to use that rather than NFS.

1 Like

If it can go wrong with NFS, it will go wrong with NFS…

and theres an awful lot of things that can go wrong with NFS

1 Like

It already is installed.

[folaht@pjehrsohmehj Vagrant]$ sudo pacman -Ss rsync
[sudo] Mot de passe de folaht :
extra/rsync 3.2.3-4 [installé]
    A fast and versatile file copying tool for remote and local files

[update]

Editing the Vagrantfile seems to work.

...
config.nfs.verify_installed = false
config.vm.synced_folder '.', '/vagrant', disabled: true
...

How does one get USB support on libvrt?
Manjaro-arm-installer needs to find the SD card.

[update]

I found it, but virt-machine doesn’t seem to find the USB device properly.