Connecting from a Linux host

SSH (with shared internet)

Note

This guide only goes over Linux systems using NetworkManager or systemd-networkd

  • Connect the OreSat Linux card to host using a USB cable

  • In a terminal run the following command and wait for the two connection from the OreSat Linux card to come up.

    $ watch -n 1 ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
      ...
    2: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
      ...
    3: enp0s20f0u3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
        link/ether 60:64:05:f9:0d:06 brd ff:ff:ff:ff:ff:ff
    4: enp0s20f0u3i2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
        link/ether 60:64:05:f9:0d:08 brd ff:ff:ff:ff:ff:ff
    
  • Make a note of the second connection name. If the is a enp* connection it is usually the enp*i2 one (as show above) or if it is a enx* connection it is the one with the higher number at the end of the name.

  • Only if the Linux host uses NetworkManager

    • Install dnsmasq on your system

    • In another terminal setup a DHCP server. Replace enp0s20f0u3i2 in the follow command with the name found in previous step on your host.

      Note

      This guide use the nmcli command as the NetworkManager applet is limited

      $ nmcli connection add type ethernet ifname enp0s20f0u3i2 ipv4.method shared con-name oresat-card
      
  • Only if the Linux host uses systemd-networkd

    • Setup the DHCP server. With your favorite IDE or text editor make the /etc/systemd/network/20-oresat-card.network file and add the following. Replace enp*i2 as needed.

      [Match]
      Name=enp*i2
      
      [Network]
      Address=10.42.1.1/24
      DHCPServer=true
      IPMasquerade=ipv4
      MulticastDNS=yes
      
      [DHCPServer]
      EmitDNS=yes
      DNS=9.9.9.9
      
    • Restart systemd-networkd

      $ sudo systemctl restart systemd-networkd
      
  • SSH using an IP address

    • Go back to the terminal with watch ip a command running at wait for the address to be set. Make a note of the address and IPv4 address space, it should be something like 10.42.1.1/24.

      $ watch -n 1 ip a
      1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        ...
      2: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        ...
      3: enp0s20f0u3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
      link/ether 60:64:05:f9:0d:06 brd ff:ff:ff:ff:ff:ff
      4: enp0s20f0u3i2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
      link/ether 60:64:05:f9:0d:08 brd ff:ff:ff:ff:ff:ff
      inet 10.42.1.1/24 scope host lo
        valid_lft forever preferred_lft forever
      inet6 fe80::cbcb:674d:2adf/64 scope link noprefixroute
        valid_lft forever preferred_lft forever
      
    • Install nmap for your system

    • Run nmap to figure out the card’s IP address. Replace 10.42.1.1/24 in the follow command to be addres with the IPv4 address space found in the previous step.

      $ nmap -sn 10.42.1.1/24
      Starting Nmap 7.92 ( https://nmap.org ) at 2022-04-13 22:07 UTC
      Nmap scan report for 10.42.1.1
      Host is up (0.00079s latency).
      Nmap scan report for 10.42.1.120
      Host is up (0.0035s latency).
      Nmap done: 256 IP addresses (2 hosts up) scanned in 2.63 seconds
      
    • That should print out two IP addresses (one is the Linux host and one is the OreSat card)

    • The terminal with watch ip a running is no longer needed.

    • SSH onto the card. Password is temppwd. Replace 10.42.1.120 in the following command with other address that nmap found

      $ ssh debian@10.42.1.120
      
  • SSH using mDNS domain

    • SSH onto the card. Password is temppwd. Replace oresat-dev in the following command with other hostname

    $ ssh debian@oresat-dev.local
    
  • Make sure shared internet is working

    $ ping www.google.com
    PING www.google.com (172.217.14.228) 56(84) bytes of data.
    64 bytes from sea30s02-in-f4.1e100.net (172.217.14.228): icmp_seq=1 ttl=117 time=41.6 ms
    64 bytes from sea30s02-in-f4.1e100.net (172.217.14.228): icmp_seq=2 ttl=117 time=29.1 ms
    

Serial

  • Install picocom for your distro

  • Connect a USB to FTDI chip on the card debug board and to you system:

    $ picocom -b 115200 /dev/serial/by-id/usb-BeagleBoard*
    
  • Note: To exit control-A-X