Conecte o Milk-v duo via USB à máquina Linux e acesse a Internet
Introdução
Voluntários do Akihabara Robot Club compraram o Milk-V Duo e estão conduzindo
individualmente vários experimentos e reportando-os no grupo de estudo.
Milk-V Duo é conhecido como um computador RISC-V de US$ 9.
O hardware é o seguinte.
- CPU: CVITEK CV1800B (C906@1Ghz + C906@700MHz)
- Núcleos RV64 duplos rodando até 1 GHz
- 64MB de RAM
- Conecte-se à Ethernet a velocidades de 10/100 Mbps com placa adicional opcional
Ao conectar o terminal USB-C desta placa a uma máquina Linux ou Windows comum cabo USB, ele será reconhecido como um módulo LAN exibido como RNDIS.
Máquinas conectadas por meio de um cabo USB podem se comunicar entre siusando aplicativos compatíveis com Ethernet, mas o Milk-v Duo não se conectará à Internet como está.
Neste artigo, apresentaremos as configurações para conectar o Milk-v Duoconectado a uma máquina Linux à Internet.
Estou usando um Raspberry pi 4** com Raspberry pi OS instalado como umamáquina Linux.---
**Testamos no UBUNTU (Virtual Box)
---
Voluntários do Akihabara Robot Club compraram o Milk-V Duo e estão conduzindo
individualmente vários experimentos e reportando-os no grupo de estudo.
Milk-V Duo é conhecido como um computador RISC-V de US$ 9.
O hardware é o seguinte.
- CPU: CVITEK CV1800B (C906@1Ghz + C906@700MHz)
- Núcleos RV64 duplos rodando até 1 GHz
- 64MB de RAM
- Conecte-se à Ethernet a velocidades de 10/100 Mbps com placa adicional opcional
---
**Testamos no UBUNTU (Virtual Box)
---
Milk-v Duo em uma máquina Linux
Após conectar o Milk-v Duo e a máquina Linux com um cabo USB, se você digitar “dmesg” no prompt de comando da máquina Linux, verá que o Milk-v Duo está conectado ao RNDIS.
[ 71.883752] usb 1-1.3: new high-speed USB device number 3 using xhci_hcd
[ 71.985050] usb 1-1.3: New USB device found, idVendor=3346, idProduct=1009, b cdDevice= 5.10
[ 71.985078] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber =3
[ 71.985095] usb 1-1.3: Product: RNDIS
[ 71.985110] usb 1-1.3: Manufacturer: Cvitek
[ 71.985123] usb 1-1.3: SerialNumber: 0123456789
[ 72.078021] usbcore: registered new interface driver cdc_ether
[ 72.083816] rndis_host 1-1.3:1.0 usb0: register 'rndis_host' at usb-0000:01:0 0.0-1.3, RNDIS device, e2:e8:cf:87:0b:b2
[ 72.083981] usbcore: registered new interface driver rndis_host
[ 72.091112] usbcore: registered new interface driver rndis_wlan
Verifique a placa de interface de rede (doravante denominada NIC) com "ip".
osboxes@osboxes:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:d9:ec:e4 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.249/24 brd 192.168.100.255 scope global dynamic noprefixroute enp0s3
valid_lft 85052sec preferred_lft 85052sec
inet6 2804:d57:76c7:6f00:fc7b:2463:f9ad:327/64 scope global temporary dynamic
valid_lft 7058sec preferred_lft 7058sec
inet6 2804:d57:76c7:6f00:cee2:8be3:267c:1181/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 7058sec preferred_lft 7058sec
inet6 fe80::992:b7e1:f2fb:4dec/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: enp0s11u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether de:57:b0:dc:9f:0a brd ff:ff:ff:ff:ff:ff
inet 192.168.42.13/24 brd 192.168.42.255 scope global dynamic noprefixroute enp0s11u1
valid_lft 2364sec preferred_lft 2364sec
inet6 fe80::675b:d922:864f:ead1/64 scope link noprefixroute
valid_lft forever preferred_lft forever
“emp0s3” é a NIC da máquina Linux e “enp0s11u1” é a NIC do Milk-v Duo.
Você pode ver que eles pertencem a redes diferentes.
Após conectar o Milk-v Duo e a máquina Linux com um cabo USB, se você digitar “dmesg” no prompt de comando da máquina Linux, verá que o Milk-v Duo está conectado ao RNDIS.
[ 71.883752] usb 1-1.3: new high-speed USB device number 3 using xhci_hcd
[ 71.985050] usb 1-1.3: New USB device found, idVendor=3346, idProduct=1009, b cdDevice= 5.10
[ 71.985078] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber =3
[ 71.985095] usb 1-1.3: Product: RNDIS
[ 71.985110] usb 1-1.3: Manufacturer: Cvitek
[ 71.985123] usb 1-1.3: SerialNumber: 0123456789
[ 72.078021] usbcore: registered new interface driver cdc_ether
[ 72.083816] rndis_host 1-1.3:1.0 usb0: register 'rndis_host' at usb-0000:01:0 0.0-1.3, RNDIS device, e2:e8:cf:87:0b:b2
[ 72.083981] usbcore: registered new interface driver rndis_host
[ 72.091112] usbcore: registered new interface driver rndis_wlan
Verifique a placa de interface de rede (doravante denominada NIC) com "ip".
osboxes@osboxes:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:d9:ec:e4 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.249/24 brd 192.168.100.255 scope global dynamic noprefixroute enp0s3
valid_lft 85052sec preferred_lft 85052sec
inet6 2804:d57:76c7:6f00:fc7b:2463:f9ad:327/64 scope global temporary dynamic
valid_lft 7058sec preferred_lft 7058sec
inet6 2804:d57:76c7:6f00:cee2:8be3:267c:1181/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 7058sec preferred_lft 7058sec
inet6 fe80::992:b7e1:f2fb:4dec/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: enp0s11u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether de:57:b0:dc:9f:0a brd ff:ff:ff:ff:ff:ff
inet 192.168.42.13/24 brd 192.168.42.255 scope global dynamic noprefixroute enp0s11u1
valid_lft 2364sec preferred_lft 2364sec
inet6 fe80::675b:d922:864f:ead1/64 scope link noprefixroute
valid_lft forever preferred_lft forever
“emp0s3” é a NIC da máquina Linux e “enp0s11u1” é a NIC do Milk-v Duo.
Você pode ver que eles pertencem a redes diferentes.
Configurações de rede no lado da máquina Linux
$ sudo sysctl net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
$ sudo iptables -P FORWARD ACCEPT
$ sudo iptables -t nat -A POSTROUTING -o emp0s3 -j MASQUERADE
Verifique como as configurações são refletidas usando "ifconfig".
Somente alterações são mostradas aqui.
osboxes@osboxes:~$ ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.100.249 netmask 255.255.255.0 broadcast 192.168.100.255
inet6 2804:d57:76c7:6f00:cee2:8be3:267c:1181 prefixlen 64 scopeid 0x0<global>
inet6 fe80::992:b7e1:f2fb:4dec prefixlen 64 scopeid 0x20<link>
inet6 2804:d57:76c7:6f00:fc7b:2463:f9ad:327 prefixlen 64 scopeid 0x0<global>
ether 08:00:27:d9:ec:e4 txqueuelen 1000 (Ethernet)
RX packets 31770 bytes 33898623 (33.8 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 15625 bytes 2198522 (2.1 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp0s11u1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.42.14 netmask 255.255.255.0 broadcast 192.168.42.255
inet6 fe80::675b:d922:864f:ead1 prefixlen 64 scopeid 0x20<link>
ether de:57:b0:dc:9f:0a txqueuelen 1000 (Ethernet)
RX packets 7223 bytes 896133 (896.1 KB)
RX errors 1 dropped 0 overruns 0 frame 0
TX packets 15859 bytes 17468648 (17.4 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 1558 bytes 163174 (163.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1558 bytes 163174 (163.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
osboxes@osboxes:~$
O endereço IP de “usb0” foi alterado para “192.168.42.14”.
$ sudo sysctl net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
$ sudo iptables -P FORWARD ACCEPT
$ sudo iptables -t nat -A POSTROUTING -o emp0s3 -j MASQUERADE
Verifique como as configurações são refletidas usando "ifconfig".
Somente alterações são mostradas aqui.
osboxes@osboxes:~$ ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.100.249 netmask 255.255.255.0 broadcast 192.168.100.255
inet6 2804:d57:76c7:6f00:cee2:8be3:267c:1181 prefixlen 64 scopeid 0x0<global>
inet6 fe80::992:b7e1:f2fb:4dec prefixlen 64 scopeid 0x20<link>
inet6 2804:d57:76c7:6f00:fc7b:2463:f9ad:327 prefixlen 64 scopeid 0x0<global>
ether 08:00:27:d9:ec:e4 txqueuelen 1000 (Ethernet)
RX packets 31770 bytes 33898623 (33.8 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 15625 bytes 2198522 (2.1 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp0s11u1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.42.14 netmask 255.255.255.0 broadcast 192.168.42.255
inet6 fe80::675b:d922:864f:ead1 prefixlen 64 scopeid 0x20<link>
ether de:57:b0:dc:9f:0a txqueuelen 1000 (Ethernet)
RX packets 7223 bytes 896133 (896.1 KB)
RX errors 1 dropped 0 overruns 0 frame 0
TX packets 15859 bytes 17468648 (17.4 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 1558 bytes 163174 (163.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1558 bytes 163174 (163.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
osboxes@osboxes:~$
O endereço IP de “usb0” foi alterado para “192.168.42.14”.
Configurações de rede no lado Milk-v Duo
Defina-o usando "192.168.42.14" que você verificou anteriormente.
"8.8.8.8" é o endereço do servidor DNS.
[root@milkv-duo]~# ip r add default via 192.168.42.14
[root@milkv-duo]~#echo "nameserver 8.8.8.8" >> /etc/resolv.conf
Verifique imediatamente se você está conectado à Internet.
[root@milkv-duo]~# ping www.yahoo.co.jp
PING www.yahoo.co.jp (182.22.31.252): 56 data bytes
64 bytes from 182.22.31.252: seq=0 ttl=56 time=35.350 ms
64 bytes from 182.22.31.252: seq=1 ttl=56 time=22.402 ms
64 bytes from 182.22.31.252: seq=2 ttl=56 time=21.581 ms
64 bytes from 182.22.31.252: seq=3 ttl=56 time=21.462 ms
^C
--- www.yahoo.co.jp ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 21.462/25.198/35.350 ms
[root@milkv-duo]~#
Conectado a "www.yahoo.co.jp".
Tente baixar o arquivo usando o comando wget.
[root@milkv-duo]~# wget www.yahoo.co.jp
Connecting to www.yahoo.co.jp (182.22.16.251:80)
wget: not an http or ftp url: https://www.yahoo.co.jp:443/
[root@milkv-duo]~#
"wget" para Milk-v Duo parece suportar apenas "http" e "ftp".
Defina-o usando "192.168.42.14" que você verificou anteriormente.
"8.8.8.8" é o endereço do servidor DNS.
[root@milkv-duo]~# ip r add default via 192.168.42.14
[root@milkv-duo]~#echo "nameserver 8.8.8.8" >> /etc/resolv.conf
Verifique imediatamente se você está conectado à Internet.
[root@milkv-duo]~# ping www.yahoo.co.jp
PING www.yahoo.co.jp (182.22.31.252): 56 data bytes
64 bytes from 182.22.31.252: seq=0 ttl=56 time=35.350 ms
64 bytes from 182.22.31.252: seq=1 ttl=56 time=22.402 ms
64 bytes from 182.22.31.252: seq=2 ttl=56 time=21.581 ms
64 bytes from 182.22.31.252: seq=3 ttl=56 time=21.462 ms
^C
--- www.yahoo.co.jp ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 21.462/25.198/35.350 ms
[root@milkv-duo]~#
Conectado a "www.yahoo.co.jp".
Tente baixar o arquivo usando o comando wget.
[root@milkv-duo]~# wget www.yahoo.co.jp
Connecting to www.yahoo.co.jp (182.22.16.251:80)
wget: not an http or ftp url: https://www.yahoo.co.jp:443/
[root@milkv-duo]~#
"wget" para Milk-v Duo parece suportar apenas "http" e "ftp".
Conclusão
Existem maneiras de conectar o Milk-v duo à Internet usando um adaptador LAN
dedicado ou placa IO.Se você tiver uma máquina Linux em mãos, esta configuração permitirá conectar o
Milk-V Duo à Internet sem nenhum investimento adicional.Ref:
dedicado ou placa IO.
Milk-V Duo à Internet sem nenhum investimento adicional.
Ref:
Sobre a SMARTCORE
A SMARTCORE FORNECE CHIPS E MÓDULOS PARA IOT, COMUNICAÇÃO WIRELESS, BIOMETRIA, CONECTIVIDADE, RASTREAMENTO E AUTOMAÇÃO. NOSSO PORTFÓLIO INCLUI MODEM 2G/3G/4G/NB-IOT, SATELITAL, MÓDULOS WIFI, BLUETOOTH, GPS, SIGFOX, LORA, LEITOR DE CARTÃO, LEITOR QR CCODE, MECANISMO DE IMPRESSÃO, MINI-BOARD PC, ANTENA, PIGTAIL, BATERIA, REPETIDOR GPS E SENSORES.
A SMARTCORE FORNECE CHIPS E MÓDULOS PARA IOT, COMUNICAÇÃO WIRELESS, BIOMETRIA, CONECTIVIDADE, RASTREAMENTO E AUTOMAÇÃO. NOSSO PORTFÓLIO INCLUI MODEM 2G/3G/4G/NB-IOT, SATELITAL, MÓDULOS WIFI, BLUETOOTH, GPS, SIGFOX, LORA, LEITOR DE CARTÃO, LEITOR QR CCODE, MECANISMO DE IMPRESSÃO, MINI-BOARD PC, ANTENA, PIGTAIL, BATERIA, REPETIDOR GPS E SENSORES.
Nenhum comentário:
Postar um comentário