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"