Πως μπορώ να ρυθμίσω αυτόματα η συνδεση να είναι `Κοινή χρήση με άλλους υπολογιστές` όταν συνδέω το raspberry pi σε μια θύρα USB?

Μια ποιο αναλυτική λύση του προβλήματος στα Αγγλικά είναι στο usb - How I can automate the connection settings as shared once a raspberry pi is plugged in? - Unix & Linux Stack Exchange

Πολλές φορές όταν συνδέω το raspbery pi μου σε linux mint 19, παρόλο που το εντοπίζει θα πρέπει να ρυθμίσω κάθε τρεις και λίγο από τον Network manager την σύνδεση του raspberry pi σαν Kοινή Χρήση με άλλους υπολογιστές όπως δείχνει το screenshot:

Συνδέσεις δικτύου_031

Οι αντίστοιχες εντολές σε τερματικό είναι:

$ nmcli con show --active
NAME                 UUID                                  TYPE      DEVICE          
br-c2a79e951b81      4bdaeccc-9945-4f1f-954d-0ce301501d80  bridge    br-c2a79e951b81 
docker0              34570b15-e323-477c-8c5c-d1dc510bbff0  bridge    docker0         
Ενσύρματη σύνδεση 1  54b4d2e3-5ebf-3f35-843f-024718b7a0b8  ethernet  enp3s0          
Ενσύρματη σύνδεση 4  2e5d60b5-5b9e-33f7-ba6e-42dd52a322aa  ethernet  enp0s20f0u1 

Και μετά τρέχω την εντολή:

nmcli connection modify "Ενσύρματη σύνδεση 4" ipv4.method shared

Αυτό που θέλω είναι όταν συνδέω το raspberry pi (με raspbian) στο PC μου, το PC να ορίζει την σύνδεση αυτόματα σαν Kοινή Χρήση με άλλους υπολογιστές χωρίς όμως να επηρρεάζονται τα υπόλοιπα Interfaces ή το interface που δημιουργούνται όταν συνδέω το κινητό μου για να κάνω tether.

Ξέρετε πως θα το κάνω αυτό;
Έχω ρωτήσει και στο: usb - How I can automate the connection settings as shared once a raspberry pi is plugged in? - Unix & Linux Stack Exchange

Δεν είμαι σίγουρος ότι έχω καταλάβει την περίπτωση, γιατί δεν έχω σκεφτεί να συνδέσω το pi μέσω USB με τον υπολογιστή και πως γίνεται αυτό.
Αλλά ρίξε μια ματιά στο παρακάτω άρθρο που αναφέρεται στο pi zero, μήπως αναφέρεται σε κάποιες χρήσιμες για την περίπτωσή σου ρυθμίσεις.

Το pi είναι σε gadget mode απλά θέλω το PC όταν το βλέπει να είναι αυτό που θα δίνει internet στο raspberry pi.

1 «Μου αρέσει»

Progress so far:

Προς το παρόν κατάφερα να ορίζω το rule στο αρχείο /etc/udev/rules.d/99_rpi_net_renamer.rules:

SUBSYSTEM=="net", ACTION=="add", ATTRS{idVendor}=="0525", ATTRS{idProduct}=="a4a2", NAME="rpi0", RUN+="ifconfig rpi0 down", RUN+="ifconfig rpi0 10.42.0.61/24 broadcast 10.42.0.255",RUN+="ifconfig rpi0 up"

Και με ifconfig -a βλέπω το interface:

br-c2a79e951b81: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.20.0.1  netmask 255.255.255.0  broadcast 172.20.0.255
        inet6 fe80::42:6aff:fe84:54b4  prefixlen 64  scopeid 0x20<link>
        ether 02:42:6a:84:54:b4  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 384  bytes 40295 (40.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:01:c6:c9:43  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.5  netmask 255.255.255.0  broadcast 192.168.2.255
        inet6 fe80::7329:b20:ead6:5306  prefixlen 64  scopeid 0x20<link>
        ether 30:5a:3a:82:3c:2c  txqueuelen 1000  (Ethernet)
        RX packets 377772  bytes 459578524 (459.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 271550  bytes 26756506 (26.7 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 5724  bytes 562684 (562.6 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5724  bytes 562684 (562.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

rpi0: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 72:f9:26:02:b1:88  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vethf3bcc27: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::60e2:c3ff:fef1:13f0  prefixlen 64  scopeid 0x20<link>
        ether 62:e2:c3:f1:13:f0  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 580  bytes 61995 (61.9 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Ακόμα έκοψα τα κουλά του network manager, από το interface:

$ cat /etc/NetworkManager/conf.d/rpi0.conf 
[main]
no-auto-default=rpi0

[keyfile]
unmanaged-devices=rpi0

Για κάποιο λόγο δεν μπορώ να ορίσω IP. Υπάρχει τρόπος να δω το output των εντολών στο dmesg η σε κάποιο αρχείο που βόσκει στο /var/log/;

Αν ορίσω στο /etc/udev/rules.d/99_rpi_net_renamer.rules:

SUBSYSTEM=="net", ACTION=="add", ATTRS{idVendor}=="0525", ATTRS{idProduct}=="a4a2", NAME="rpi0"

Και μετά τρέξω τις εντολές με το χέρι:

sudo ifconfig rpi0 down
sudo ifconfig rpi0 10.42.0.61/24 broadcast 10.42.0.255
sudo ifconfig rpi0 up

Παίρνω IP:

rpi0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.42.0.61  netmask 255.255.255.0  broadcast 10.42.0.255
        inet6 fe80::70f9:26ff:fe02:b188  prefixlen 64  scopeid 0x20<link>
        ether 72:f9:26:02:b1:88  txqueuelen 1000  (Ethernet)
        RX packets 762  bytes 21336 (21.3 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 40  bytes 6181 (6.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Και επικοινωνώ και με το raspberry pi:

$ ping raspberrypi.local
PING raspberrypi.local (10.42.0.62) 56(84) bytes of data.
64 bytes from 10.42.0.62 (10.42.0.62): icmp_seq=1 ttl=64 time=1.05 ms
64 bytes from 10.42.0.62 (10.42.0.62): icmp_seq=2 ttl=64 time=0.430 ms
64 bytes from 10.42.0.62 (10.42.0.62): icmp_seq=3 ttl=64 time=0.398 ms
^C
--- raspberrypi.local ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2010ms
rtt min/avg/max/mdev = 0.398/0.627/1.055/0.303 ms

Any ideas, I am so clooooooose, απο ότι βλέπω το κομμάτι του udev rule:

RUN+="ifconfig rpi0 down", RUN+="ifconfig rpi0 10.42.0.61/24 broadcast 10.42.0.255",RUN+="ifconfig rpi0 up"

Δεν βλέπω να παίζει. Any ideas?

Update

In the end πρέπει να βάλω το πλήρες path των εντολών:

$ whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz

Και να φτιάξω τα σωστά το udev rule:

SUBSYSTEM=="net", ACTION=="add", ATTRS{idVendor}=="0525", ATTRS{idProduct}=="a4a2", NAME="rpi0", RUN+="/sbin/ifconfig rpi0 down", RUN+="/sbin/ifconfig rpi0 10.42.0.61/24 broadcast 10.42.0.255",RUN+="/sbin/ifconfig rpi0 up"
1 «Μου αρέσει»

Δηλαδή βρέθηκε λύση; Μπερδεύτικα…

1 «Μου αρέσει»

NAI λύση ευρέθει και δουλεύει. Ένας ποιο πλήρης οδηγός είναι στο: usb - How I can automate the connection settings as shared once a raspberry pi is plugged in? - Unix & Linux Stack Exchange

2 «Μου αρέσει»

Πολύ ωραία τότε, ήταν και δυσκολάκι αυτό, εύγε. Επίσης σημειωσε το ως λυμένο…
Τώρα όμως αναρωτιέμαι (ελπίζω να μην πω βλακεία) αν θα μπορούσε με το που συνδεθεί να ακούει σε κάποιο port, δηλαδή αν θα βοηθούσε η pyserial;

1 «Μου αρέσει»

Αν θυμάμαι το raspberry κάπου έχει serial αλλά δεν μπόρεσα να το βρω. Εγω το χρησιμοποιώ σαν gadget γιατί είναι βολικό στις ενημερώσεις (μπορώ να έχω το USB σαν Ethernet).

1 «Μου αρέσει»

Θα το βρεις ως uart. Επίσης υποθέτω θα σε βόλευε να το συνδέεις έτσι και σε άλλο μηχάνημα που δεν έχεις κάνει την ανάλογη ρύθμιση. Ίσως να αξίζει τον κόπο να το δει κάποιος (πιο έμπειρος από εμένα)

1 «Μου αρέσει»

UART θέλει adapter που για να το αγοράσω από το Ebay θα κάνει μήνες. Gadger mode παίζω με ένα απλό USB Καλώδιο ;) που κάπου θα βόσκει από κάποιο smartphone.

Fun fact από το βάλε βγάλε πιστεώ πως έκανα corrupt την SD κάρτα. Άντε φτου ξανά μανά flash.

Hmm εφόσον την φλασάρω ξανά γιατί να μην πάρω ένα DD της κάρτας καλού κακού …

1 «Μου αρέσει»

Αυτό το νήμα έκλεισε αυτόματα 2 ημέρες μετά την τελευταία απάντηση. Δεν επιτρέπονται πλέον νέες απαντήσεις.