x210-2023-02-03
1、在尝试tftp传输windows目录文件给开发板时当配完网络相关内容想再在secureCRT上用SSH远程连接VM中的ubuntu,发现不能登录,因为没配之前是可以登录的,一个明显表现就是ubuntu和windows不能互相ping通,网上查过说可能是和升级了WIN11有关,需要将WLAN属性改为专用,然后在防火墙中专用网络的配置下的入站连接设置为允许,并添加入站规则SSH的22端口,再然后开启WLAN的共享属性,到这里经过实际测试还是不通登不上去,所以后来再想不应该按它说的开启WLAN的共享,而应该是开启VMnet8的共享属性,因为被连接的是VM里的ubuntu,而发起连接的是windows,到这里已经可以互ping而且能够登陆了。
2、解决了上面问题,将USB转网口的这个网卡配置为静态IP,但这里选用的是和windows(自动分配的1段)、VMnet8(自设的244段)都不相同的网段(10段),再在开发板想ping通windows,第一次尝试时能通,但用tftp发送文件到20008000出现死循环状态,也就是无论按q、esc、ctrl+c、ctrl+z还是按任何键,都无法输入也无法退出,其实在uboot下用md命令查看20008000这个地址也陷入死循环状态,在这个状态下折腾了一段时间没有进展,到了第二天早上,再次开机在开发板上去ping这个USB转网卡的IP已经ping不通了,而且在windows这一侧去ping这个USB转网口也不通,折腾了又一会,既然想隔离外网构造一个只有开发板、USB转网口、windows、ubuntu的独立局域网不可行,那么直接选择将这个USB转网口的IP段、开发板都设成和windows自动分配的1段一致,起码能保证开发板、USB转网口、windows互通了,因为前三者都改了,ubuntu的VMnet0网段也需要跟着动(因为VMnet0改为了桥接到USB转网口这个网卡,同时这里只是因为在windows有tftpd32软件做服务端,而到后面ubuntu了也还是要用tftp进行测试,所以一起修改了,而在ubuntu修改需要在开机状态下直接在网络配置的小窗口中修改然后重启才能生效,而这里实际修改过程出了一点插曲就是修改完,出现windows不能上网,查找后发现是重启过后windows的WLAN被还原成了一个静态的IP,改回动态分配即可),到这里就可以测试了,发现windows已经能ping通USB转网口的网卡了,而从开发板uboot中ping这个USB转网口的网卡也能ping通,所以再次开启windows的tftpd32软件然后uboot下执行tftp 20008000 a.txt,但还是陷入死循环,后面想了想,应该是这个地址未初始化不允许操作,而且友善的tiniy210和我手上的x210bv4s还是不完全一样,比较明显的就是烧录uboot的地址,所以不再采用20008000,而是继续沿用d0020010地址,但是考虑到不能破坏uboot(因为目前所有的操作都还基于uboot环境),所以查看了一下uboot大小为384KB,转换16进制之后加上d0020010作为地址再次尝试就能成功了,但是这个地址只作为测试传输效果使用,另外后面测试成功之后有试过再从开发板侧ping这个USB转网口的网卡,但是又不通了,插拔以后又好了,所以前面即便处于同一网段也不通的问题,这个 USB转网口硬件也有一定的影响。
3、前面提到tiniy210测试用的地址是20008000,但是由于手上板子并不是tiniy210,所以按自己的理解选用了一个uboot结束大小后面的地址,即d0020190(384KB+d0020010),实际上,根据后面对uboot的深入,其实会发现这个20008000是对应kernel的地址,所以只需要找到X210BV4S上对应kernel地址即可,联想到当时烧录bootloader、kernel、system时是用fastboot,所以尝试过重新用fastboot工具进行烧录,看打印信息是否指示kernel的地址,很可惜的是只有一个start=N/A,而且重新烧录uboot的过程中,发现windows下看到的uboot文件显示大小为384KB,但是实际烧录过程中会发现具体烧录的数字是39xxxxxKB,也就是测试传输时要是放到d0020190也还是不够保险的,会对uboot造成少许破坏,不过根据对uboot的再深入,会发现,其实在uboot环境的print打印出来的环境变量bootcmd就包含有kernel的地址,那就是0x30008000。