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如何使用

  1. 将 Mcro-USB 线与电脑连接:

    ../../_images/soc_se5_micro_usb_line.png ../../_images/soc_se5_micro_usb_board.png
  2. 在网上下载下cp2102的驱动,安装后就有串口显示:

    ../../_images/soc_se5_micro_usb_cp2102_driver_com4.png
  3. 配置com口属性,115200, 8-N-1:

    ../../_images/soc_se5_micro_usb_com_property.png
  4. 下载teraterm软件, 选择连接 comX(本例com4), 点击OK:

    ../../_images/soc_se5_micro_usb_teraterm_comX_ok.png
  5. 在Setup—Terminal,将Speed改为115200:

    ../../_images/soc_se5_micro_usb_setup_terminal_speed_115200.png
  6. SE5开机运行就会显示:

    ../../_images/soc_se5_micro_usb_se5_run_display.png

4.3.2.3. 若系统故障,无法进入SE5/SM5的操作系统,该如何升级或恢复固件?

应当使用SD卡刷的方式重新刷机。

4.3.2.4. SE5如何在Python中使用SAIL?

../../_images/soc_se5_python_sail.png

答: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经常自动重启,大约十几分钟到二十分钟左右重启一次?

答:

  1. 盒子出厂自带库克人脸应用gate,gate 文件系统,有个监控sophongate 是否活着的服务,如果10分钟左右没活着就自己reboot系统了;使用/bm_bin下bm_switch2box命令将盒子工作模式设置为box模式,关闭库克应用或重新刷机,将盒子重置为干净的系统状态;

  2. 如果仍然有问题看下硬盘各分区的使用情况,之前遇到过有些分区快满的时候,就会重启。

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安装软件时或进行其他操作时,都会提示系统磁盘空间不足?

../../_images/soc_df_h.png ../../_images/soc_failed_to_fetch.png

答:通常这是由于node节点满了导致的,请使用`df -i`查看Inodes节点是否被用完,当磁盘中存在大量的小文件时,就容易发生这样的问题。可以使用扩大inodes节点数量或删除无用的小文件。

4.3.2.11. SE5盒子如何修改IP?执行bm_set_ip提示没有该命令?

答:

  1. 使用我们提供的命令:/bm_bin/bm_set_ip 和/bm_bin/bm_set_ip_auto(注意:bm_set_ip等SE5产品手册中描述的常用命令,2.6.0及之前是预刷了我们带有库克人脸识别系统的gate版固件才有的。干净的系统固件内并没有这个命令。您可以预先备份好/bm_bin下的这些文件,待重新刷机后拷贝到新系统中使用。2.7.0开始干净的系统固件也将预置);

  2. 修改配置文件:对于盒子来说(debian 9系统),修改/etc/network/interfaces.d下的配置文件,eth0对应WAN口,根据实际修改;eth1对应LAN口,应保持static方式固定IP 192.168.150.1不变,方便系统维护时使用固定IP连接;

  3. 使用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盒子如何扩展存储空间?

答:

  1. 配有硬盘仓,支持 2.5 英寸 7mm 高度的 SATA 接口 HDD 或 SSD 硬盘,支持容量不超过 2TB;

  2. SD卡,SE5背部维护仓内部有SD卡插槽,速率 模式为 SDR104,最大容量 2TB;

  3. 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拿到的版本和实际的内核模块版本不一致,另外我想加几个内核模块,盒子上源码目录下是空的,是不是需要你们帮忙重新编下内核

../../_images/soc_uname_r.png ../../_images/soc_ls_lib_modules.png

答:内核版本和/lib/modules不一致,说明那个盒子应该是从某个比较老的版本,通过替换内核镜像的方式升级的,所以只有内核更新了,/lib/modules没有更新。建议您用我们的卡刷包重新刷一下,就一致了。如果您想添加内核模块的话,可以参考https://gitee.com/sophon-ai/bsp-sdk,但是请了解如果您添加的kernel config对kernel API有比较大变化,会和我们以二进制形式发布的一些驱动不兼容。

4.3.2.15. SE5盒子中使用卡刷后,使用lsmod查看内核模块,比之前多了br_netfilter,它的作用是什么?和之前没有的盒子有什么区别?

../../_images/soc_lsmod.png

答:安装使用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导入失败?

../../_images/soc_import_cv2.png

答: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驱动怎么办?

../../_images/opration_faults_ffmpeg_no_vpu.png

答:执行/system/data/下的load.sh这个脚本,查看ko是否可以正常加载:

  1. lsmod查看所有的ko是否加载,正常情况下jpu、vpu、bmtpu、fl2000等4个ko加载成功;

  2. 对于没有加载的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查看内存使用情况?

答:

  1. 查看系统内存:

    free -h
    
  2. 查看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
    
    ../../_images/soc_heap_occupied.png

    如上,通常会有3个ION heap(即三块预留的内存区域),如名字所示,分别供TPU、VPU、VPP使用。以上示例中只打印了每个heap使用信息的开头,如果完整地cat summary文件, 可以到其中分配的每块buffer的地址和大小信息