sophpi u-boot 默认未开启网络功能,需要手动开启,为了在 u-boot 下可以通过 tftp 下载固件,先测试 u-boot 下网络功能。
u-boot 网络功能开启
在 build/boards/cv181x/sg2002_wevb_riscv64_sd/u-boot/cvitek_sg2002_wevb_riscv64_sd_defconfig 文件中加入以下配置:
CONFIG_CMD_NET=y
CONFIG_CMD_TFTPBOOT=y
CONFIG_NET_TFTP_VARS=y
CONFIG_CMD_NFS=y
CONFIG_CMD_PING=y
再次编译,即可开启 u-boot 网络功能。
u-boot 环境变量修改
- 在系统启动后 u-boot 倒计时阶段,按回车即可进入 u-boot 命令行。在 u-boot 启动后,可以通过以下命令查看环境变量:
sophpi# printenv
BOOT_PART_OFFSET=0x0
BOOT_PART_SIZE=0x40000
ROOTFS_PART_OFFSET=0x40000
ROOTFS_PART_SIZE=0x180100
arch=riscv
baudrate=115200
board=cv181x
board_name=cv181x
bootcmd=run sdboot
bootdelay=1
consoledev=ttyS0
cpu=generic
fdtcontroladdr=8a781a10
gatewayip=192.168.0.11
ipaddr=192.168.0.3
netdev=eth0
netmask=255.255.255.0
othbootargs=earlycon=sbi riscv.fwsz=0x80000 loglevel=9
root=root=/dev/mmcblk0p2 rootwait rw
sdboot=setenv bootargs ${reserved_mem} ${root} ${mtdparts} console=$consoledev,$baudrate $othbootargs;echo Boot from SD ...;mmc dev 0 && fatload mmc 0 ${uImage_addr} boot.sd; if test $? -eq 0; then bootm ${uImage_addr}#config-cv1812cp_milkv_duo256m_sd;fi;
serverip=192.168.56.101
stderr=serial
stdin=serial
stdout=serial
uImage_addr=0x81800000
update_addr=0x8b300000
vendor=cvitek
Environment size: 791/131068 bytes
通过以下命令修改环境变量:
sophpi# setenv ipaddr 192.168.188.180
sophpi# setenv serverip 192.168.188.20
sophpi# setenv netmask 255.255.255.0
sophpi# setenv gatewayip 192.168.188.1
注:IP 地址请根据实际情况修改。
- 完成配置后,可使用 ping 命令测试当前网络连接情况:
sophpi# ping 192.168.31.35
Speed: 100, full duplex
Using ethernet@4070000 device
host 192.168.31.35 is alive
显示网络正常。
保存环境变量
通过以下命令保存环境变量:
sophpi# saveenv
Unknown command 'saveenv' - try 'help'
看起来没有这个命令未使能,原因待查。