RDK-X3-MD-Carrier-Board 使用教程

简介

RDK X3 Module Carrier Board,作为 X3 模组的配套底板,提供了丰富的配置和接⼝,包括 USB3.0、以太⽹、HDMI、MIPI CSI、MIPI DSI、40PIN header 等,⽅便⽤户对模组的功能验证和开发。

系统安装

版本说明

2.0版本:基于RDK Linux开源代码包制作,支持RDK X3、X3模组等全系列硬件 1.0版本:RDK X3历史版本,仅支持RDK X3硬件,不支持新版本的RDK X3,系统镜像名为system_sdcard.img

烧录系统

点击下载镜像,进入版本选择页面,选择对应版本目录,进入文件下载页,该产品只支持2版本的镜像。以下载2.0.0版本的系统镜像为例,双击2.0.0,双击release,单击下载ubuntu-preinstalled-desktop-arm64.img.xz :

下载完成后,解压出Ubuntu系统镜像文件,如ubuntu-preinstalled-desktop-arm64.img RDK X3 Module支持从eMMC和SD卡两种模式启动系统

SD卡烧录

    balenaEtcher烧录镜像
      注意:使用该软件烧录时,尽量直接接在电脑的USB接口上,不要使用外接拓展,可能会导致烧录不成功。
    1. TF卡插入读卡器,读卡器接入电脑,识别到TF卡后打开balenaEtcher软件
    2. 点击Flash from file,选择你刚解压的镜像文件 system_sdcard.img

    3. 点击Select target按钮,选择TF卡对应的磁盘作为目标储存设备

    4. 点击Flash按钮开始烧录,等到工具提示Flash Comple时,表示TF卡镜像制作完成,关闭balenaEtcher,从电脑上取下读卡器,并取出TF卡

    rufus烧写镜像
    1. TF卡插入读卡器,读卡器接入电脑,识别到TF卡后打开rufus软件
    2. 点击选择按钮,在弹出的文件选择对话框中选择解压出来的 system_sdcard.img 镜像文件

    3. 点击开始按钮,软件弹出提示框,点击确定开始烧录TF卡镜像,如果弹出以下信息,点击确定。

    4. 当软件进度条完成并提示准备就绪后,表示TF卡镜像烧录完成,关闭软件,取下读卡器,取出TF卡

eMMC烧录

驱动安装

需要使用地平线hbupdate烧录工具,点击下载驱动。 hbupdate工具支持Windows、Linux两种版本,分别以 hbupdate_win64、 hbupdate_linux 开头。
注意事项:解压工具压缩包,注意解压路径中不要包含空格、中文、特殊字符等内容。 对于使用Windows系统的PC,在使用刷机工具前,需要确认是否安装过fastboot驱动程序,请按照如下步骤进行确认:

    (1)使用跳线帽将RDK X3 Module载板的Boot管脚接地,管脚位置参考下图。、


    (2)将载板的Micro USB接口与电脑通过USB线连接,接口位置参考下图。

    (3)给设备上电,然后观察电脑设备管理器端口状态,如出现USB download gadget未知设备时,需要更新设备驱动,如没有出现,可跳过下述步骤。


    (4)下载并解压驱动包 android_hobot.zip,下载链接 android_hobot 。
    (5)进入解压后的目录,以管理员身份运行 5-runasadmin_register-CA-cer.cmd,完成驱动程序的注册。
    (6)双击USB download gadget未知设备,选择驱动包解压目录,然后点击下一步。



烧录系统

    确认PC设备管理器显示fastboot设备Android Device后,运行hbupdate.exe打开烧录工具,按照以下步骤进行烧录:


    (1)选择开发板型号,必选项。

      • RDK_X3_2GB: RDK X3,2GB内存版本,仅支持烧写最小系统镜像
      • RDK_X3_4GB: RDK X3,4GB内存版本,仅支持烧写最小系统镜像
      • RDK_X3_MD_2GB: RDK X3 Module,2GB内存版本
      • RDK_X3_MD_4GB: RDK X3 Module,4GB内存版本


    (2)点击Browse按钮选择将要烧录的镜像文件,必选项。


    (3)点击Start按钮开始刷机,根据弹窗提示开始烧录:


    • 烧录镜像时,需要通过跳线帽将BOOT管脚接地,管脚位置参考功能控制接口
    • 将Micro USB接口连接到电脑,电脑设备管理器中会识别出Android Device的设备,如上一节安装USB下载驱动所描述
    • 烧录完毕断开电源,断开和电脑的连接线,将BOOT管脚跳线帽拔下,重新上电即可
    • 如果启动正常,在硬件上的ACT LED灯会进入两次快闪一次慢闪的状态

    (4)检查升级结果

    • 镜像烧录成功时,工具提示如下:


    • 镜像烧录失败时,工具提示如下,此时需要确认PC设备管理器是否存在Android Device设备


    如烧录过程发生中断,请按照上述步骤重新进行。


系统启动

RDK X3 Module支持从eMMC和SD卡两种模式启动系统: 当模组上的eMMC没有烧录过系统镜像的情况下,插入制作好系统的SD卡到载板即可通过从SD卡启动系统。

如果模组上的eMMC已经烧录过系统镜像,可以按照以下步骤进行eMMC和SD卡启动的切换。
1、默认情况下会从eMMC启动系统

2、禁用eMMC的启动切换到使用SD卡启动系统,登录系统后,执行以下命名把eMMC的第二个分区的启动标志删除,并重启系统生效:

sudo parted /dev/mmcblk0 set 2 boot off
sudo reboot

3、在uboot下会发现eMMC没有启动分区而去寻找SD卡的启动分区,从SD卡加载系统启动,登录系统后执行mount命令可以看到根文件系统挂载在 SD 卡的 第二个分区,config分区也使用的SD卡的第一个分区。

/dev/mmcblk2p2 on / type ext4 (rw,relatime,data=ordered) 
/dev/mmcblk2p1 on /boot/config type vfat

从SD卡启动切换回从eMMC启动

当在使用SD卡启动系统时,并且eMMC上已经烧录过系统,执行以下命令恢复回从eMMC启动,重启系统生效。

sudo parted /dev/mmcblk0 set 2 boot on
sudo reboot

Ubuntu Desktop版本系统启动完成后,会通过HDMI接口在显示器上输出系统桌面,如下图:

远程登录

有线以太网:开发板默认采用静态IP模式,IP地址为192.168.1.10,掩码255.255.255.0,网关 192.168.1.1
无线WiFi:开发板IP地址一般由路由器分配,可在设备命令行中通过ifconfig命令查看wlan0网络的IP地址

串口登录操作

方法一:putty串口登录

    硬件连接好,驱动安装完毕后,打开设备管理器,你会看到以下端口:


    打开putty软件,按照下图配置(以实际识别到的端口为准)。


    开发板上电,pytty窗口便会看到有信息打印,然后登陆即可。
    输入命令

    ifconfig

    获取开发板的IP地址

    ifconfig eth0  代表以太网络(指网线),刚烧录的系统默认为192.168.1.10
    ifconfig wlan0 代表WiFi网络


方法二:MobaXterm串口登录

    硬件连接好后,给开发板上电,打开MobaXterm软件,按照下图配置。


    开发板上电,MobaXterm便会看到有信息打印,然后登陆即可。

SSH登录

SSH登陆前我们需要配置电脑IP
从串口登录我们已经获取到了RDK X3的 IP 地址 (192.168.127.10)
为了使电脑与RDK X3进行通信需要进行以下操作:

  • 开发板、PC 机 IP 地址前三段相同,例如开发板:192.168.127.10 PC 机:192.168.127.100
  • 开发板、PC 机的子网掩码、网关保持一致
  • PC 机网络防火墙处于关闭状态
    1. 配置电脑 IP 主要进行如下几步:
    2. 在网络连接中找到对应的以太网设备并右击选择属性


    3. 找到 Internet 协议版本 4 选项并双击打开
    4. 在下图红框位置填入对应的网络参数,然后点击确定
    5. MobaXterm登录



      注意:开机输入用户名和密码必须在60S内完成,没完成的重新在60S内再输入一次即可。

      VNC 登录

      打开VNC软件,在地址栏输入RDK X3的IP地址,回车,按照以下图片配置即可


      命令行登录

      ubuntu虚拟机打开终端输入:

      ssh sunrise@192.168.127.10


      示例程序

      GPIO调用

      开发板 /app/40pin_samples/ 目录下,预置了多种40PIN管脚的功能测试代码,包括gpio的输入/输出测试、PWM、I2C、SPI、UART等测试。所有测试程序均使用python语言编写,详细信息可以查阅 40PIN 功能使用。

      图像分类算法示例

      开发板上安装了test_mobilenetv1.py 程序用于测试mobilenet v1图像分类算法功能。
      该程序读取 zebra_cls.jpg 静态图片作为模型的输入,并在命令行终端输出分类结果cls id: 340 Confidence: 0.991851

      cd /app/pydev_demo/01_basic_sample/
      sudo ./test_mobilenetv1.py
      

      USB摄像头使用

      开发板上安装了 usb_camera_fcos.py 程序用于测试USB摄像头的数据通路,该示例会实时采集USB摄像头的图像数据,然后运行目标检测算法,最后把图像数据和检测结果融合后通过HDMI接口输出。

      USB摄像头接入到开发板上,确认生成/dev/video8设备节点
      通过HDMI线缆连接开发板和显示器
      cd /app/pydev_demo/02_usb_camera_sample/
      sudo python3 ./usb_camera_fcos.py

      程序执行后,显示器会实时显示摄像头画面及目标检测算法的结果(目标类型、置信度)。

      MIPI摄像头使用

      将MIPI摄像头模组连接到开发板MIPI CSI接口,通过HDMI线缆连接开发板和显示器,执行以下命令:

       cd /app/pydev_demo/03_mipi_camera_sample/
       sudo python3 ./mipi_camera.py 
      

      程序执行后,显示器会实时显示摄像头画面及目标检测算法的结果(目标类型、置信度)

      系统配置

      系统更新

      出于系统安全、稳定性的考虑,推荐用户安装完系统后,通过 APT 命令对系统进行更新。
      在/etc/apt/source.list 文件中,保存了 APT 命令的软件源列表,在安装软件前,需要先通过apt 命令更新 package 列表。
      首先打开终端命令行,并输入如下命令:

      sudo apt update

      其次,升级所有已安装的软件包到最新版本,命令如下:

      sudo apt full-upgrade

      注意:推荐使用 full-upgrade 而不是简单的 upgrade 命令,这样当相关依赖发生变动时,也会同步更新依赖包。
      当运行 sudo apt full-upgrade 命令时,系统会提示数据下载和磁盘占用大小,但是 apt 不会检查磁盘空间是否充足,推荐用户通过

       df -h

      命令手动检查。此外,升级过程中下载的 deb 文件会保存在/var/cache/apt/archives 目录中,用户可以通过

      sudo apt clean 

      命令删除缓存文件以释放磁盘空间。
      执行 full-upgrade 之后,可能会重新安装驱动和升级RDK X3的内核,所以建议都重启一下设备,命令如下:

      sudo reboot



      网线网络配置

      开发板网络配置保存在/etc/network/interfaces 文件中 在使用 vim 编辑器时保存时请先按下Esc键,再输入

       :wq!

      推荐使用 nano 编辑器,安装命令如下:

      sudo apt update
      sudo apt-get install nano

      静态 IP 修改

      通过修改 address、netmask、gateway 等字段,可完成对静态 IP 配置的修改
      例如:

      sudo vim /etc/network/interfaces
      # interfaces(5) file used by ifup(8) and ifdown(8)
      # Include files from/etc/network/interfaces.d:
      source-directory /etc/network/interfaces.d
      auto eth0
      iface eth0 inet static
          address 192.168.1.10
          netmask 255.255.255.0
          gateway 192.168.1.1
          metric 700

      修改完成后,命令行输入

      sudo systemctl restart NetworkManager

      让配置生效。
      重启更新网络频段:

      sudo reboot

      修改 DHCP 配置

      DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配 IP 地址,使网络环境中的主机动态的获得 IP 地址、Gateway 地址、DNS 服务器地址等信息,并能够提升地址的使用率。开发板的 DHCP 网络配置保存在/etc/network/interfaces 文件,通过修改 eth0 相关配置,可完成对 DHCP 模式的修改,例如终端输入:

      sudo vim /etc/network/interfaces

      修改以下内容:

      source-directory /etc/network/interfaces.d
      auto lo
      iface lo inet loopback
      auto eth0
      iface eth0 inet dhcp
          metric 700
      修改完成后,命令行输入
      sudo systemctl restart NetworkManager

      命令让配置生效。
      重启更新网络频段:

      sudo reboot

      修改 MAC 地址配置

      如需修改开发板默认 MAC 地址,可通过在/etc/network/interfaces 文件中增加 pre-up 配置信息,指定用户需要的 MAC 地址,例如:

      sudo vim /etc/network/interfaces

      修改以下内容:

      # interfaces(5) file used by ifup(8) and ifdown(8)# Include files from
      /etc/network/interfaces.d:
      source-directory /etc/network/interfaces.d
      auto eth0
      iface eth0 inet static
          address 192.168.1.10
          netmask 255.255.255.0
          gateway 192.168.1.1
          pre-up ifconfig eth0 hw ether 00:11:22:9f:51:27

      修改完成后,命令行输入

      sudo systemctl restart NetworkManager

      使配置生效。
      重启更新网络频段

      sudo reboot

      无线网络配置

      Ubuntu Desktop 版本系统

      连接上 WiFi 后如下图标注位置会变成 WiFi 样式


      Ubuntu Server 版本系统

      输入 WiFi 扫描命令:

      sudo nmcli device wifi rescan

      如果出现 Error: Scanning not allowed immediately following previous scan.的提示,表示扫描太频繁,请等一会后再扫描
      显示扫描到的 WiFi:

      sudo nmcli device wifi list

      使用命令连接 WiFi:

      sudo wifi_connect "SSID" "PASSWD"
      sudo wifi_connect "JSBPI" "waveshare0755" 

      返回以下命令表示成功,出现其他问题按照错误提示进行修改即可
      Device 'wlan0' successfully activated with '********-****-****-****-************'
      如果提示 Error: No network with SSID 'WiFi-Test' found.,说明是热点还没有刷新出来,可以执行

      sudo nmcli device wifi rescan

      命令重新扫描即可。


      无线网络软AP

      无线网络软 AP 可以理解为手机上的 WiFi 热点。
      AP6212 的 wifi 支持软 AP 和 Station 两种模式,默认运行在 Station 模式下,如果要使用软 AP 功能请按照以下步骤进行配置。

    6. 安装 hostapd 和 isc-dhcp-server
      sudo apt update
      sudo apt install hostapd
      sudo apt install isc-dhcp-server

      配置 hostapd,打开

      sudo vim /etc/hostapd.conf

      无密码的热点配置请添加以下内容:

      interface=wlan0
      driver=nl80211
      ctrl_interface=/var/run/hostapd
      ssid=Sunrise
      channel=6
      ieee80211n=1
      hw_mode=g
      ignore_broadcast_ssid=0

      有密码的热点配置请添加以下内容

      interface=wlan0
      driver=nl80211
      ctrl_interface=/var/run/hostapd
      ssid=Sunrise
      channel=6
      ieee80211n=1
      hw_mode=gignore_broadcast_ssid=0
      wpa=2
      wpa_key_mgmt=WPA-PSK
      rsn_pairwise=CCMP
      wpa_passphrase=12345678
      
    7. 配置 isc-dhcp-server 终端输入
      sudo vim /etc/default/isc-dhcp-server

      如下定义使用的网络接口,保存并退出:INTERFACESv4="wlan0"

      终端输入:

      sudo vim /etc/dhcp/dhcpd.conf

      取消以下字段的注释:
      authoritative;

      然后输入:

      sudo vim /etc/dhcp/dhcpd.conf 

      在文件的末尾增加以下配置:

      subnet 10.5.5.0 netmask 255.255.255.0 {
        range 10.5.5.100 10.5.5.254;
        option subnet-mask 255.255.255.0;
        option routers 10.5.5.1;
        option broadcast-address 10.5.5.31;
        default-lease-time 600;
        max-lease-time 7200;}
    8. 停止 wpa_supplicant 服务,并重启 wlan0
      注意:从这一步开始最好进入超级用户的模式
      第一次进入超级用户,请按照下面进行操作
      设置进入 root 用户的密码:
      sudo passwd root

      然后输入 3 次密码,设置密码、确认密码、第二次确认
      进入 root 用户:

      su root / sudo su

      然后输入密码
      退出 root 用户:

      su sunrise

      输入下面的命令停止 wpa_supplicant 服务,并重启 wlan0

      systemctl stop wpa_supplicant
    9. 启动 hostapd 服务
      sudo hostapd -B /etc/hostapd.conf

      会打印以下信息:

      root@ubuntu:~# sudo hostapd -B /etc/hostapd.conf
      Configuration file: /etc/hostapd.conf
      Using interface wlan0 with hwaddr 08:e9:f6:af:18:26 and ssid "sunrise"
      wlan0: interface state UNINITIALIZED->ENABLED
      wlan0: AP-ENABLED
    10. 配置无线接口 wlan0 的 IP 和网段 注意要跟上面的配置一致。
      sudo ifconfig wlan0 10.5.5.1 netmask 255.255.255.0
    11. 开启 dhcp 服务器,连上热点会从 10.5.5.100 到 10.5.5.255 之间分配一个 ip 地址给客户端。
      sudo systemctl start isc-dhcp-server
      sudo systemctl enable isc-dhcp-server
      打开手机连接 Sunrise 这个热点名

    12. 切换回 Station 模式
      # 停止 hostapd
      killall5 -9 hostapd
      # 清除 wlan0 的地址
      ip addr flush dev wlan0
      sleep 0.5
      ifconfig wlan0 down
      sleep 1
      ifconfig wlan0 up
      # 重启 wpa_supplicant
      systemctl restart wpa_supplicant
      # 连接热点, 具体操作可以查看上一章节 “无线网络”
      wifi_connect "JSBPI" "waveshare0755"
    13. DNS 服务

        DNS(Domain Name Server)是进行域名(domain name)和与之相对应的 IP 地址转换的服务器。开发板 DNS 配置过/etc/systemd/resolved.conf 文件管理,用户可通过修改该文件完成 DNS 相关配置, 在其中取消 #DNS 前面的 # 号
        1. 修改/etc/systemd/resolved.conf 文件:
          sudo vim /etc/systemd/resolved.conf

          添加 DNS 服务器地址:

          DNS=8.8.8.8 114.114.114.114
        2. 使能新的 DNS 配置:
          sudo systemctl restart systemd-resolved
          sudo systemctl enable systemd-resolved
          sudo mv /etc/resolv.conf /etc/resolv.conf.bak
          sudo ln -s /run/systemd/resolve/resolv.conf /etc/

      CPU 调频策略

        开发板在 Linux 内核中采用 CPUFreq 驱动对 CPU 工作状态进行管理,默认状态为 ondemand 模式,此时 CPU 会根据负载动态调节频率,以达到降功耗目的,用户可通过如下命令将 CPU 强制工作在 1.2GHz 最高频率下:
        sudo bash -c 'echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor' 

        开发板在系统中提供了超频功能,可将CPU最高频率从1.2GHz提升到1.5GHz,配置命令如下:

        sudo bash -c 'echo 1 > /sys/devices/system/cpu/cpufreq/boost'

        注意,CPU 超频可能会造成系统稳定性问题,如遇稳定性问题,需要关闭超频功能,命令如下:

        sudo bash -c 'echo 0 > /sys/devices/system/cpu/cpufreq/boost'

        特别声明: CPU 超频仅限于开发者 Geek 尝试使用,在做超频处理前,需要保证给芯片做好扇热措施,保证 CPU 长时间运行下,芯片结温能够保持在 95 摄氏度以下,避免因芯片在高温情况下长时间运行导致芯片故障。CPU 超频同时会导致一些目前还无法预知的芯片可靠性问题,请开发者谨慎操作。查看芯片当前的结温温度、CPU 运行频率、BPU 运行频率和 BPU 使用率的命令如下:

        sudo hrut_somstat

    蓝牙

      调用脚本完成初始化
      sudo startbt6212.sh

      脚本调用初始化完成了以下工作:

      • 复位蓝牙
      • 创建 messagebus 用户和用户组,dbus-daemon 程序运行时需要使用该用户
      • 运行 brcm_patchram_plus 完成蓝牙的驱动加载和固件加载
      • 循环检查 /sys/class/bluetooth/hci0 目录是否存在,确认蓝牙驱动已经正常运行
      • 出现 Done setting line discpline 表示蓝牙启用成功
      • 执行 hciconfig hci0 up 完成蓝牙的 Link Up
      • 执行 hciconfig hci0 piscan 进行蓝牙扫描,本步骤可以根据情况去掉
      • 如下图:


      • 执行成功后,确认以下进程是否正常运行:
      cd /usr/bin
      *ls #查看是否有dbus-daemon和brcm_patchram_plus文件
      *cd ..#返回上一级
      *cd lib/bluetooth #进入目录
      *ls #查看是否有bluetooth文件

      命令行操作

      进入交互模式下的蓝牙配置界面

      sudo bluetoothctl


      表示蓝牙已被识别
      输入show查看蓝牙详细信息

      注意蓝牙的Powered(上电)、Discovera(可被搜索到)的状态

      power on      使能蓝牙
      power off     关闭蓝牙
      discoverable on 使设备可以被检测到
      discoverable off 使设备无法被检测到
      scan on 开始扫描附近的蓝牙设备
      scan off 关闭扫描

      配对对应的蓝牙设备,注意根据提示输入 yes

      pair [targetMAC] 
      比如:pair 9C:5A:81:3E:97:4C

      配对成功后,使用指令下次自动连接

      trust [targetMAC]
      比如:trust 9C:5A:81:3E:97:4C


      Bluetoothctl 命令扩展

      • exit :退出 bluetoothctl 交互界面
      • help :获取 bluetoothctl 支持的命令表
      • Connect :连接 BLE 设备,输入 connect BLE MAC 连接指定 BLE 设备,连接成功会提示 connect successfully, 第一次连接成功后,会把该 BLE 设备支持的属性都显示出来;无法搜索到指定设备,会提示 not available
      • disconnect :断开设备连接

      更多操作请访问 BlueZ 官网 :

      http://www.bluez.org/
      https://blog.csdn.net/zhuo_lee_new/article/details/106626680

      桌面软件操作

      选择右上角的图标或菜单栏对蓝牙进行操作

      或者点击Application。

      Bluetooth Adapters :用来配置本机蓝牙设置

      tooth Manager :用来扫描蓝牙设备并连接

      拓展

      查看是否识别蓝牙模块:
      hciconfig -a
      查看蓝牙模块的地址:
      hcitool dev
      激活蓝牙:
      sudo hciconfig hci0 up
      此次测试设置蓝牙模块为服务端且不需要配对码:
      hciconfig hci0 noauth

      编辑文件,开启蓝牙设备:

      sudo vi /etc/systemd/system/dbus-org.bluez.service

      找到ExecStart=/usr/lib/bluetooth/bluetoothd,更改并添加为:

      ExecStart=/usr/lib/bluetooth/bluetoothd -C
      ExecStartPost=/usr/bin/sdptool add SP

    文件传输

    samba

    操作方法
  • 打开终端,查询Linux版本号
    cat /etc/issue

  • 更新当前软件
    sudo apt-get upgrade
    sudo apt-get update
    sudo apt-get dist-upgrade
  • 安装samba软件
    sudo apt-get install samba samba-common

    检查是否成功安装samba服务:

    samba -V   (如果出现下面的版本号说明已经安装了samba服务)


  • 创建一个共享samba目录
    sudo mkdir /home/share
  • 给共享的目录设置权限
    sudo chmod 777 /home/sunrise
  • 添加samba访问账号和密码
    注意:这里需要和配置文件里的对应 添加samba用户用于其他人或设备认证,这里添加的用户需要在系统账号中存在,否则会添加失败
    sudo smbpasswd -a sunrise

    然后输入访问密码

  • 扩展
    创建用户名映射文件并配置(根据配置文件来定义)
    sudo vim /etc/samba/smbusers

    在文件中粘贴保存

    share= "network username"
  • smbpasswd命令的用法

    smbpasswd 命令的用法
    smbpasswd -a 增加用户(要增加的用户必须以是系统用户)
    smbpasswd -d 冻结用户,就是这个用户不能在登录了
    smbpasswd -e 恢复用户,解冻用户,让冻结的用户可以在使用
    smbpasswd -n 把用户的密码设置成空. 要在 global 中写入 null passwords -true
    smbpasswd -x 删除用户
    # 查看 samba 用户列表(需要 root 权限)
    pdbedit -L
    # 对 samba 用户进行管理(用户已经在系统中创建)(需要 root 权限)
    smbpasswd -h #查看支持的命令列表
    # 异常时可查看日志情况
    cat /var/log/samba/log.%m
    
  • 备份smb.conf配置文件
    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
  • 配置 samba 的配置文件
    这里如果失误,可以使用之前备份的文件复原
    sudo vi /etc/samba/smb.conf

    在配置文件 smb.conf 的最后添加下面的内容:

    [global]
      workgroup = WORKGROUP
      unix charset = UTF-8
      dos charset = cp936
      guest ok = no
      security = user
      username map = /etc/Samba/smbusers

    [share]
      comment = Shared Folder with username and password
      path = /home/sunrise/
      public = no
      valid users = sunrise
      browsable = no
      create mask = 777
      directory mask = 777
      force user = sunrise
      force group = sunrise
      available = yes
      browseable = yes
      writable = yes

    上述操作的意义: [global] 创建工作组 设定 Samba Server 所要加入的工作组或者域

    workgroup = WORKGROUP
    

    为了防止出现中文目录乱码的情况。其中根据你的 local,UTF-8 有可能需要改成 cp936

    display charset = UTF-8
    unix charset = UTF-8
    dos charset = cp936
    

    是否允许 guest 用户访问

    guest ok = no
    

    注:如果 #security 存在就直接修改,不存在就创建

    security = user
    

    安全模式 我们设置用户安全级别

    security = user
    

    说明:用来定义用户名映射,比如可以将 root 换成 administrator、admin 等。不过要事先在 smbusers 文件中定义好。这样就可以用 administrator 或 admin 这两个用户来代替 root 登陆 Samba :

    root = administrator admin
    

    username map就是用户名别名表,让 Samba 能识别不同客户端用户名并映射到正确的 Linux 用户上:

    username map = /etc/Samba/smbusers
    

    共享名,即共享标签,该名字为在电脑上看到的共享名(注意网络映射的路径是这标签名字不是共享路径的名字)

    [share]
    共享内容描述
    comment = Shared Folder with username and password
    共享文件夹路径
    path = /home/sunrise/
    表示是否允许匿名访问该共享目录
    public = no
    配置的 Samba 访问账号 指明可以访问的用户
    valid users = sunrise
    表示是否可以在 Window Explorer 中显示该目录
    browsable = no
    指明新建立的文件的属性
    create mask = 777
    指明新建立的目录的属性
    directory mask = 777
    force group 和 force user 规定创建的文件或文件夹的拥有者和组拥有者是谁
    一般这两个值为空,则表示拥有者和组拥有者为创建文件者。 如设定值,如 
    force group=sunrise
    force user=sunrise,则不管是谁创建的文件和文件夹,拥有者都为 sunrise 和 sunrise 组。
    force user 强制把建立文件的属主是谁。如果我有一个目录,让 guest 可以写,那么 guest就可以删除,
    如果我用force user=sunrise强制建立文件的属主是sunrise,同时限制create mask = 0755,这样 guest 就不能删除了。
    force user = sunrise
    force group = sunrise
    available 用来指定该共享资源是否可用
    available = yes
    共享路径读权限 设置共享是否可浏览,如果 no 则表示隐藏,需要通过"//ip/共享目录"进行访问
    browseable = yes
    共享路径写权限
    
    writable = yes
  • 重启 samba 服务器
    sudo service smbd restart 或者 /etc/init.d/samba restart

    有的版本路径不是/etc/init.d/samba 可以尝试用:

    sudo /etc/init.d/samba restart
    #sudo /etc/init.d/samba-ad-dc restar
    
  • 在电脑上依次点击电脑文件资源管理器,网络,在地址栏输入RDK X3的IP地址回车,便可以使用文件共享功能

    将共享路径映射到 win 磁盘(可选)

    若经常使用的共享,可直接映射为 Windows 的磁盘,不用每次都输 ip,但RDK X3 IP变了需要重新映射,所以建议不要经常修改IP,右键,选择映射网络驱动器。

    开启win 的 samba 客服端

    如果上述方法不可行,尝试以下方法:
    Win10 依次打开控制面板->程序->windows 功能启动或关闭->打开 smb 客户端,重启生效。

    官方资料

    软件

    示例程序

    FAQ

    技术支持

    周一-周五(9:30-6:30)周六(9:30-5:30)

    手机:13434470212

    邮箱:services04@spotpear.cn

    QQ:202004841