4.3.2. SE5使用问题¶
4.3.2.1. SE5支持的外围设备有哪些?¶
答:请参考设备支持列表:
2.5机械硬盘
供应商
型号
参数
希捷
ST2000LM015
厚度:7mm;Capacity:2TB;工作温度:0-60度
2.5 SSD
供应商
型号
参数
慧荣科技
MA619DEGMDF6
厚度:7mm;Capacity:1TB;工作温度:-40-85度
FORESEE
S801S256G
厚度:7mm;Capacity:256GB;工作温度:0-70度
USB WIFI模组
供应商
型号
参数
EDUP
EP-MS1558
300M无线网卡
EDIMAX
EW-7822UAn
300M无线网卡
USB 声卡
供应商
型号
参数
PHILIPS
SWR1656Y/93
USB转耳机口
USB 蓝牙发射器
供应商
型号
参数
UGREEN绿联
CM408
蓝牙版本5.0,传输距离10米
USB 摄像头
供应商
型号
参数
奥尼
奥尼A10 HD1080P
黑色,1920*1080分辨率,MAX FPS:30,像素500万
USB 读卡器
供应商
型号
参数
暂无
网络继电器
供应商
型号
参数
泥人科技
TCP-KP-C2
工业级,2路网络继电器,支持脱机定时,input:湿触点x1,output:常开X2
4G模组
供应商
型号
参数
广和通无线
NL668-CN-02
4G通信模组,适用于 多种网络制式,多频段。工作温度-30C~75C
广和通无线
NL668-CN-22
4G通信模组,适用于 多种网络制式,多频段。工作温度-30C~75C
485设备
供应商
型号
参数
妙观科技有限公司
TH10S-B-H
温湿度传感器,工作温度-40-125C
4.3.2.2. SE5维护窗里的Micro-USB如何使用¶
将 Mcro-USB 线与电脑连接:
在网上下载下cp2102的驱动,安装后就有串口显示:
配置com口属性,115200, 8-N-1:
下载teraterm软件, 选择连接 comX(本例com4), 点击OK:
在Setup—Terminal,将Speed改为115200:
SE5开机运行就会显示:
4.3.2.3. 若系统故障,无法进入SE5/SM5的操作系统,该如何升级或恢复固件?¶
应当使用SD卡刷的方式重新刷机。
4.3.2.4. SE5如何在Python中使用SAIL?¶
答:SE5已经预装在/system/lib下,只需要设置好环境变量,然后就可以在python中使用SAIL了:
# SE5设置环境变量
export PATH=$PATH:/system/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/system/lib/:/system/usr/lib/aarch64-linux-gnu
export PYTHONPATH=$PYTHONPATH:/system/lib
4.3.2.5. SE5安装openVPN?¶
答:只需要打开CONFIG_TUN,直接修改文件https://gitee.com/sophon-ai/bsp-sdk/blob/master/linux-linaro-stable/arch/arm64/configs/bitmain_bm1684_asic_defconfig, 在最后面加一行CONFIG_TUN=y,再按照sm5手册的第6章重新编译kernel。不需要用make menuoconfig去找。
4.3.2.6. 如何通过串口查询SE5的IP地址¶
答:1、宿主机为Linux时:使用Ubuntu连上SE5串口之后,在Terminal输入命令ping bm1684.local可以查看到盒子IP。
2、宿主机为Windows时:通过串口工具(推荐teraterm),需要安装驱动程序(直接在网上找CP210x驱动),安装好驱动之后,使用串口工具连接登录 linaro/linaro,然后使用ip addr show命令查看IP。
4.3.2.7. SE5经常自动重启,大约十几分钟到二十分钟左右重启一次?¶
答:
盒子出厂自带库克人脸应用gate,gate 文件系统,有个监控sophongate 是否活着的服务,如果10分钟左右没活着就自己reboot系统了;使用/bm_bin下bm_switch2box命令将盒子工作模式设置为box模式,关闭库克应用或重新刷机,将盒子重置为干净的系统状态;
如果仍然有问题看下硬盘各分区的使用情况,之前遇到过有些分区快满的时候,就会重启。
4.3.2.8. SE5是否可以刷Ubuntu系统?有没有版本要求?¶
答:客户没法自己随便安装系统,只能用我们发布的刷机包。目前我们使用Debian 9.9,从SDK2.7.0开始,会有official的ubuntu版本同步发布。目前有一个为其他客户定制的Ubuntu20.04,SDK2.6.0,可以下载使用:客户定制的ubuntu 20.04 with BMNNSDK2.6.0
4.3.2.9. 使用卡刷方式升级为2.6.0版本,刷完后原来的web页面不能登录?¶
答:这说明使用的卡刷包为干净的系统包;web页面是库克系统gate版本才会有的,需要刷gate版本的固件才会有。目前gate版本的固件没有SDK2.6.0版本,需要刷最新的gate版本固件后,采用替换升级文件的方式手动升级SDK到2.6.0。
4.3.2.10. SE5盒子磁盘仍然有空间,但使用apt安装软件时或进行其他操作时,都会提示系统磁盘空间不足?¶
答:通常这是由于node节点满了导致的,请使用`df -i`查看Inodes节点是否被用完,当磁盘中存在大量的小文件时,就容易发生这样的问题。可以使用扩大inodes节点数量或删除无用的小文件。
4.3.2.11. SE5盒子如何修改IP?执行bm_set_ip提示没有该命令?¶
答:
使用我们提供的命令:/bm_bin/bm_set_ip 和/bm_bin/bm_set_ip_auto(注意:bm_set_ip等SE5产品手册中描述的常用命令,2.6.0及之前是预刷了我们带有库克人脸识别系统的gate版固件才有的。干净的系统固件内并没有这个命令。您可以预先备份好/bm_bin下的这些文件,待重新刷机后拷贝到新系统中使用。2.7.0开始干净的系统固件也将预置);
修改配置文件:对于盒子来说(debian 9系统),修改/etc/network/interfaces.d下的配置文件,eth0对应WAN口,根据实际修改;eth1对应LAN口,应保持static方式固定IP 192.168.150.1不变,方便系统维护时使用固定IP连接;
使用NetManager的接口 (注意:使用nmcli使能网口,必须确保/etc/network/interfaces.d/下没有相应网卡的配置文件,否则会使能失败) :
# 修改IP nmcli c add type ethernet con-name edgeboard_eth0 ifname eth0 ipv4.addresses '192.168.1.254/24' ipv4.gateway 192.168.1.1 ipv4.method manual ipv4.route-metric 601 nmcli c up edgeboard_eth0 ifname eth0
4.3.2.12. SE5盒子如何扩展存储空间?¶
答:
配有硬盘仓,支持 2.5 英寸 7mm 高度的 SATA 接口 HDD 或 SSD 硬盘,支持容量不超过 2TB;
SD卡,SE5背部维护仓内部有SD卡插槽,速率 模式为 SDR104,最大容量 2TB;
USB接口连接外接硬盘,可临时使用,长期不推荐。
4.3.2.13. 如何实现扩展硬盘的开机自动挂载?¶
答:推荐使用启动脚本或者systemd service的方式来实现扩展硬盘的开机自动挂载;您可以修改/etc/rc.local文件,将挂载命令放在文件的末尾 exit 0 之前。我们不建议直接修改/etc/fstab文件,因为一旦挂载出现问题,系统将无法启动。为了安全起见,SE5中/etc/fstab文件不能随意修改,每次开机时只读分区的/media/root-ro/ fstab.emmc.ro会自动替换/etc/fstab。(若您一定要修改fstab文件,请先sudo mount -o remount rw /media/root-ro将分区修改为可写;然后修改 fstab.emmc.ro 文件;修改完成后,请再将分区修改回只读属性。)(如果因挂载问题出现系统无法启动的问题,请尝试使用SD卡刷的方式修复。)
4.3.2.14. 关于内核版本以及增加内核模块?¶
问:我拿到的这个盒子上uname -r拿到的版本和实际的内核模块版本不一致,另外我想加几个内核模块,盒子上源码目录下是空的,是不是需要你们帮忙重新编下内核
答:内核版本和/lib/modules不一致,说明那个盒子应该是从某个比较老的版本,通过替换内核镜像的方式升级的,所以只有内核更新了,/lib/modules没有更新。建议您用我们的卡刷包重新刷一下,就一致了。如果您想添加内核模块的话,可以参考https://gitee.com/sophon-ai/bsp-sdk,但是请了解如果您添加的kernel config对kernel API有比较大变化,会和我们以二进制形式发布的一些驱动不兼容。
4.3.2.15. SE5盒子中使用卡刷后,使用lsmod查看内核模块,比之前多了br_netfilter,它的作用是什么?和之前没有的盒子有什么区别?¶
答:安装使用k3s/k8s需要这个driver,是在某个版本开始加入的。另外,如果没有这个driver,说明盒子的固件比较老旧了,建议使用卡刷重刷一下固件,以免直接替换文件升级新版SDK后发现不可预期的问题。
4.3.2.16. k8s plugin 在哪里下载?¶
答:请联系我们的技术支持获取最新版本。
k8s plugin 1.0.8,适用于k8s, version>=1.10
在官网资料下载可获得:https://developer.sophgo.com/site/index/material/11/74.html
4.3.2.17. SoC中如何使用OpenCV?导入cv2,程序提示找不到numpy或numpy导入失败?¶
答:SoC应当使用我们改造过的BM-OpenCV以获得硬件加速支持。设置环境变量即可:
# SE5设置环境变量
export PATH=$PATH:/system/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/system/lib/:/system/usr/lib/aarch64-linux-gnu
export PYTHONPATH=$PYTHONPATH:/system/lib
但需要注意的是,目前SoC中默认没有安装numpy库,需要手动安装,请特别注意numpy的版本号,否则可能导致cv2导入时提示numpy导入失败:
# 安装numpy
# 注意:安装过程可能需要编译,比较耗时
sudo pip3 install numpy==1.17.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
4.3.2.18. 使用ffmpeg命令时报错,找不到vpu驱动怎么办?¶
答:执行/system/data/下的load.sh这个脚本,查看ko是否可以正常加载:
lsmod查看所有的ko是否加载,正常情况下jpu、vpu、bmtpu、fl2000等4个ko加载成功;
对于没有加载的ko,进入/system/data目录下手动加载查看是否报错。若报错,原因可能是升级过内核,内核和ko不匹配,建议使用卡刷修复系统。
4.3.2.19. 使用hdmi连接显示器,过一会儿不显示黑屏的问题¶
hdmi_status.sh
#!/bin/sh
count=0
service_state="init"
sleep 3
status=$(find /sys -name "hdmi_status")
path1="$status/status"
while true
do
if [ "$status" = "" ]; then
status=$(find /sys -name "hdmi_status")
path1="$status/status"
fi
STATUS=$(cat $path1)
if [ $? -eq 1 ]; then
STATUS="0"
fi
#echo $STATUS
if [ $STATUS = "0" ]; then
#delay stop service for avoid quickly hot-plug
count=$(($count + 1))
if [ $count -gt 60 ] && [ $service_state != "inactive" ]; then
echo "stop hdmi service"
systemctl stop SophonHDMI.service
service_state="inactive"
count=0
fi
else
count=0
if [ $service_state != "active" ]; then
echo "start hdmi service"
systemctl start SophonHDMI.service
service_state="active"
fi
fi
sleep 1
done
4.3.2.20. SoC查看内存使用情况?¶
答:
查看系统内存:
free -h
查看ION内存
NPU内存使用情况:
cat /sys/kernel/debug/ion/bm_npu_heap_dump/summary | head -2
VPU内存使用情况:
cat /sys/kernel/debug/ion/bm_vpu_heap_dump/summary | head -2
VPP内存使用情况:
cat /sys/kernel/debug/ion/bm_vpp_heap_dump/summary | head -2
如上,通常会有3个ION heap(即三块预留的内存区域),如名字所示,分别供TPU、VPU、VPP使用。以上示例中只打印了每个heap使用信息的开头,如果完整地cat summary文件, 可以到其中分配的每块buffer的地址和大小信息