Preface
最近需要一款带emmc,并且接口精简的板卡。Nanopi NEO Core/Core 2/Air这三款板卡吸引了我。
这三款板子还有大哥,分别叫NanoPi NEO 和NEO 2.为了便于理解,将谱系图列举如下:
正如你所看到的Core和Core2均没有直接对外的网口或无线。Air还好点有个wifi。但是在我的应用中无线并不是一个优势。而网口的尺寸有太大。但是调试的时候无线或者有线就很有用。有几个解决办法:1、买官方适配的载板,你可以用来实现程序配置。
2、自己焊接一块小板子将网口印出来 3、将usb或sdio引出连接wifi模组。当然还有别的方法。第一种方法当然最简单也最好用的办法。在设备调试期间用来连接网络下载和更新固件。但是价格稍贵。2、如果你可以画个pcb,这种方法是最简单的。但太费劲,花费不一定低3、引出usb连接wifi或者rj45网口也是一种办法。但是需要去搞一块适配的wifi模组。官网wiki上有已经测试的模块列表。这种方法挺好的。可惜的是手边没有模组。但是又想2快速实验。怎么办?
Background
在开始介绍正式版本之前,让我先交代一下我的linux板卡配置。烧写的是armbian系统,这个系统质量很高。版本用uname -a列举如下:Linux nanopineo 5.10.4-sunxi #20.11.7 SMP Tue Jan 5 23:17:54 CET 2021 armv7l GNU/Linux
目前使用的core版本不知道是不是v1.1,不知道如何区分。但是用的是512内存,8G emmc的版本。
安装完系统,只占了18%的容量。
USB Gadget
其实在rpi zero和pocketbone中,这是经常用来连接以太网的方式。就是把设备插到电脑上,会自动虚拟出一个名字为USB Ethernet/RNDIS Gadget的网口设备。然后设备就可以通过usb上网了。
How
说来方法简单但是实验的时候却有些曲折。
Step 1:
安装armbian系统。这里不再具体介绍:基本就是下载镜像文件、制作sdcard image,将sd插上启动系统,然后通过putty等串口工具进入linux系统,然后使用nand-sata-install工具将系统copy到emmc。然后重启电脑。其实最后一步之后做也可以。但是我喜欢emmc的稳定性。
Step 2:
插上usb接口,同时插上usb转串口模块(连接到core的uart0上)。
尽管你可以通过usb自带的串口连接到电脑,但是在下面的操作中此端口可能会丢失。丢失之后终端就连不上了。所以使用uart0的原生串口可避免此问题。
Step 3.1:
移除usb默认serial驱动,添加USB Gadget驱动。若有必要在主机电脑上安装驱动。(以win10为例)
rmmod g_serial
modprobe g_ether
ifconfig usb0 192.168.10.1
此方法在每次重启时失效。
Step 3.2:
修改/etc/modules文件将g_serial修改为g_ether
修改/etc/network/interfaces文件,添加:
allow-hotplug usb0
iface usb0 inet static
address 192.168.7.2
netmask 255.255.255.0
network 192.168.7.0
broadcast 192.168.7.255
gateway 192.168.7.1
请注意这个192.168.?.*这个地址?以后可能还要修改。
设置pc上core usb生成的网卡,设置ip为192.168.7.1.此时pc将作为core的网关。但是这个网关暂时没有连接上以太网。
Step 3.3:
在win10中找到可以上网的网络,并选择将其共享给nano core usb生成的网络。
此时core联网的路径就是core->pc上的usb网卡->pc上的网口或者wifi->以太网
暂时不知道共享网络的ip时怎么设置的。本来想使用192.168.7.1但是win10提示改成137
不知道那一步错了。
Step 3.4
重启neo core
step 3.5
通过putty或者wsl就可以使用ssh连接neo core了。并且此时可以上网了
试一下sudo apt update吧
links
1、linux-sunxi对于USB Gadget介绍
2、NanoPi Neo USB OTG with Armbian mainline 4.x kernel
3、Armbian User Guide
4、NEO Core Wiki
5、 Turning your Raspberry Pi Zero into a USB Gadget
6、