【全志D1-H 哪吒开发板】Debian系统安装调教和点灯指南

全志D1-H开发板【哪吒】使用Deabian系统入门

特别说明:

  1. 因为涉及到操作较多,博文可能会导致格式丢失

  2. 其中内容,会根据后续使用做优化调整

目录:

  • 参考资料
  • 固件烧录
  • 启动
  • 调教
  • 点灯
  • 问题

〇、参考资料

  1. 官方资料
    开发板-D1开发板【哪吒】
    全志在线开发者社区 - 资源下载
    RISC-V - Debian Wiki

  2. 学习资料

    参考的学习资料较多,感谢下列资料作者:
    Debian by Sipeed - D1-H
    D1 Nezha Debian镜像基础使用教程
    Nezha D1 debian镜像更新帖 - Sipeed 开源社区
    「RVBoards-哪吒」开启 SSH 和 VNC 远程访问,摆脱烦人的鼠标键盘显示器 | RVBoards 论坛
    【Station M2】打造开发人员专用最强便携小主机 - 广受欢迎的专业电子论坛!
    Debian安装中文支持 - Linux运维 - 运维网
    Habitat: Debian WQY
    debian stretch下的 lxde 配置 | Frapples的博客
    怎样在 Debian 11 上设置静态 IP | 月灯依旧
    全志D1开发板(哪吒 RISCV64)开箱评测_专栏RISC-V MCU中文社区
    生信之旅-debian11增加开机自启脚本
    How to Change Your MAC Address on Linux
    全志在线 D1哪吒开发板开机连接wifi热点, 启动 sshd 服务
    How to set up static IP address on Debian Linux 10/11 - nixCraft
    如何在Debian 10安装vscode | myfreax

一、固件烧录

  1. 官方指导
    Debian by Sipeed - D1-H

  2. 固件下载

    链接: https://pan.baidu.com/s/1-3CocbTUWPLi2XKrb87LpA 提取码:z4gn

  3. 烧录工具
    PhoenixCard.zip

  4. SD卡准备

    准备一张8G以上的SD卡,建议至少32G,以免后悔来不及

  5. 烧录

  • 将SD卡插到读卡器,连接到电脑
  • 打开PhoenixCard,选择好固件(需解压),确认自动选择的盘正确,勾选启动卡,点击烧录即可
  • 预计15到30分钟,先干点别的
  1. 分区大小调整
    务必要到Linux环境下,调整一下SD卡上分区的大小,不然后面的apt upgrade会挂了

    查看sd卡挂载到哪个挂载点了,

    sudo fdisk -l
    Device Start End Sectors Size Type
    /dev/sda1 41464 49527 8064 3.9M Microsoft basic data
    /dev/sda2 49528 50031 504 252K Microsoft basic data
    /dev/sda3 50032 50535 504 252K Microsoft basic data
    /dev/sda4 50536 71199 20664 10.1M Microsoft basic data
    /dev/sda5 71200 72207 1008 504K Microsoft basic data
    /dev/sda6 72208 100431 28224 13.8M Microsoft basic data
    /dev/sda7 100432 16877647 16777216 8G Microsoft basic data
    /dev/sda8 16877648 60504063 43626416 20.8G Microsoft basic data

    sd卡会被分为八个区,sdX1-sdX8,将sdX替换为上一步实际显示的即可

    sudo e2fsck -f /dev/sdX7
    sudo resize2fs -p /dev/sdX7

二、启动:

  1. 插卡

    在背后插上SD卡,然后连接Type-C、网线,接上USB键盘,Type-C通电即可启动

  2. 上电

  • 启动时,会显示SIPEED的图标;然后会进入登录界面;启动速度不是很快,耐心等待
  • 默认账户:
    sipeed / licheepi
    root / licheepi
  1. 远程ssh连接
  • 进入系统后,通过开始菜单中的Netwrok connection查看当前ip地址,然后连接
  • ssh sipeedd@ip

三、调教:

默认的系统,得好好调教才好使用

  1. 了解系统基本情况

    sudo lsb_release -a
    No LSB modules are available.
    Distributor ID: Debian
    Description: Debian GNU/Linux bookworm/sid
    Release: unstable
    Codename: sid

  • 通过以上输出,可以了解系统为Debian 开发版;sid表示开发版
  1. 设置默认shell使用bash

    选择No即可

    sudo dpkg-reconfigure dash

    查看默认shell,设置后,显示为 /bin/sh -> bash

    ls -l /bin/sh

  2. 设置ssh证书登陆

    sudo vim /etc/ssh/sshd.conf

    -------- 取消下面这行的注释 --------

    PubkeyAuthentication yes

重启sshd服务

sudo systemctl restart sshd

# 设置当前用户的key登录
mkdir ~/.ssh
chmod 0700 ~/.ssh

# 设置登录pub key
sudo vim ~/.ssh/authorized_keys
# -------- 将ssh登录的pub key拷贝到这里 --------
ssh-rsa 公钥 邮箱
  • 设置完成后,即可在主机或者其他电脑上,使用对应的私钥登录
  1. 时区设置

    sudo tzselect

    依次选择4-Asia、9-China、1-Beijing Time、1-Yes

    设置当前环境时区:

    TZ='Asia/Shanghai'; export TZ

    查看当前时间:

    date

    执行下面的指令,并在最后添加时区设置

    sudo vim /etc/profile

    -----------以下内容为添加内容-------------

    TZ='Asia/Shanghai'; export TZ

    -----------以上内容为添加内容-------------

  2. 设置apt更新源

  1. 更新系统
  1. 安装中文环境支持
  • 安装中文locale、字体,并启用中文支持

    安装locales
    sudo apt install -y locales
    
    # 所有的选项,都选择zh_CN.UTF-8,然后等待完成
    sudo dpkg-reconfigure locales
    
    # 安装中文字体
    sudo apt install -y fonts-arphic-ukai fonts-arphic-gkai00mp fonts-arphic-bkai00mp
    sudo apt install -y xfonts-wqy ttf-wqy-microhei ttf-wqy-zenhei
    
    # 设置当前用户locale,按照如下信息进行设置
    vim /home/sipeed/.bashrc
    export LC_ALL="zh_CN.UTF-8"
    export LANG="zh_CN.UTF-8"
    export LANGUAGE="zh_CN.UTF-8:zh:en_US.UTF-8:en"
    
    # 设置系统全局locale,按照如下信息进行设置
    sudo vim /etc/environment
    

    LANGUAGE="zh_CN.UTF-8:zh:en_US.UTF-8:en"
    LANG="zh_CN.UTF-8"

    # 测试是否生效:设置生效后,执行data指令应返回中文
    source ~/.bashrc
    date
    
  1. 启用开机脚本
  • 后续有不少操作,需要设置开机启动,所以此处县启动,方便后续操作

  • 在rc.local服务中添加下面的信息

    sudo vim /lib/systemd/system/rc-local.service

    -----------以下内容为添加内容-------------

    [Install]
    WantedBy=multi-user.target

    -----------以上内容为添加内容-------------

    设置/etc/rc.local启动脚本

    sudo vim /etc/rc.local

    -----------以下内容为填写内容-------------

    #!/bin/sh -e

    在这里输入需要自启的脚本

    exit 0

    -----------以上内容为填写内容-------------

    设置启动脚本执行权限

    sudo chmod +x /etc/rc.local

    启动对应的服务

    sudo systemctl enable rc-local # 启用
    sudo systemctl start rc-local.service # 开始运行
    sudo systemctl status rc-local.service # 查看状态

  1. 设置有线使用固定mac地址
  • 这块板子有个奇葩的地方,有线网卡的mac地址,重启一次变一次,通过下面的方式,设置为固定值即可

    安装screen,防止网络更改中途失联,命令执行不完全

    sudo apt install -i screen macchanger
    
    # 开启screen
    screen
    
    # 查看当前的eth0 mac addr
    sudo macchanger -s eth0
    Current MAC:   86:53:0e:f0:ee:29 (unknown)
    

    Permanent MAC: 00:00:00:00:00:00 (XEROX CORPORATION)

    # 将上一步中显示Current MAC,进行设置;请根据上一步显示的实际结果设置
    sudo macchanger -m eth0 86:53:0e:f0:ee:29 eth0
    Current MAC:   86:53:0e:f0:ee:29 (unknown)
    

    Permanent MAC: 00:00:00:00:00:00 (XEROX CORPORATION)
    New MAC: 86:53:0e:f0:ee:29 (unknown)
    It's the same MAC!!

    # 重启网络
    sudo /etc/init.d/networking restart
    
    # 写入到开机启动中,将下面的对应内容,添加到/etc/rc.local启动脚本
    sudo vim /etc/rc.local
    # 在这里输入需要自启的脚本
    # -----------以下内容为添加内容------------- 
    # 设置网卡mac地址
    

    /usr/bin/macchanger -m 86:53:0e:f0:ee:29 eth0
    /etc/init.d/networking restart
    # -----------以上内容为添加内容-------------
    exit 0

  • 设置完成后,可以尝试重启板子,查看mac地址是否已经固定

  1. 设置静态IP地址
  • 请根据实际情况,设置对应的ip、掩码、网关、DNS

    备份默认配置

    sudo cp /etc/network/interfaces /etc/network/interfaces.bak
    
    sudo vim /etc/network/interfaces
    # -------- 参考如下信息进行设置 --------
    #iface eth0 inet dhcp  
    
    # The loopback network interface
    auto lo
    iface lo inet loopback
    
    auto eth0
     iface eth0 inet static
     address 192.168.1.141
     netmask 255.255.255.0
     gateway 192.168.1.1
     dns-domain wowo
     dns-nameservers 192.168.1.1
    

11.远程桌面登录

11.1 安装vnc

apt install tigervnc-standalone-server -y

11.2 启停vnc

  • 首次启动时,会提示设置用户密码,请仔细设置

    启动,可添加参数-geometry 1280x800设置分辨率

    vncserver -localhost no -display :1

    查看

    vncserver -list

    停止

    vncserver -kill :1

11.3 设置开机启动

#在开机脚本exit 0前面添加下面的脚本
sudo vim /etc/rc.local
# -----------以下内容为添加内容-------------
echo "start vnc server"
export HOME=/home/sipeed
/usr/bin/sudo -u sipeed -i vncserver -localhost no -display :1 -geometry 1280x800
echo "vnc server started"
# 这里需要先配置 HOME 环境变量, vncserver 需要
# -----------以上内容为添加内容-------------
exit 0
  • 列表设置完成后,重启时,将会自动启动vnc server,方便远程桌面连接

11.4 远程连接:

  1. 安装vscode[跳过]
  • 安装好vscode,就能当开发小强用了

  • vscode目前还没有提供Debian@risc-v的运行版本,以下操作跳过

    导入微软GPG秘钥:

    sudo apt install -y software-properties-common apt-transport-https curl
    curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

    添加微软vscode安装源

    sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"

    更新安装源索引,并安装vscode

    sudo apt update
    sudo apt install code

四. 点灯

  • 最激动人心的时刻,不就是点个灯么;好在这个Debian by Sipeed已经提供了LED支持,使用下面的代码,就能很方便的点灯了

    vim ~/test_led.sh
    # -----------以下内容为填写内容-------------
    #!/bin/bash

    function set_led(){
    echo $1 > /sys/class/leds/sunxi_led0r/brightness
    echo $2 > /sys/class/leds/sunxi_led0g/brightness
    echo $3 > /sys/class/leds/sunxi_led0b/brightness
    }

    let type=8
    for i in $(seq 1 1000);
    do
        if [[ $((i % type)) -eq 0 ]];then
           set_led 0 0 0
       elif [[ $((i % type)) -eq 1 ]];then
           set_led 255 0 0
       elif [[ $((i % type)) -eq 2 ]];then
           set_led 0 255 0
       elif [[ $((i % type)) -eq 3 ]];then
           set_led 0 0 255
       elif [[ $((i % type)) -eq 4 ]];then
           set_led 255 255 0
       elif [[ $((i % type)) -eq 5 ]];then
           set_led 255 0 255
       elif [[ $((i % type)) -eq 6 ]];then
           set_led 0 255 255
       elif [[ $((i % type)) -eq 7 ]];then
           set_led 255 255 255
        fi
    
       sleep 0.5
    done
      # -----------以上内容为填写内容-------------     
    
    # 设置执行权限
    chmod a+x test_led.sh
    
    # 执行
    sudo ./test_led.sh
    

现在请看板子,板载WS2812 LED欢快的亮起来了,颜色还是变化的!

相关推荐
FlechazoCLF10 分钟前
小柴冲刺软考中级嵌入式系统设计师系列三、嵌入式硬件设计(1)嵌入式系统电源管理
嵌入式硬件
杭州_燕十三9 小时前
从零开始学习 sg200x 多核开发之 sample 打包
risc-v·sg2002
深圳市青牛科技实业有限公司 小芋圆11 小时前
【青牛科技】 GC2803:白色家电与安防领域的卓越驱动芯片可替代ULN2803
科技·单片机·嵌入式硬件·电脑·白色家电·电动卷帘门·工业设备
BreezeJuvenile14 小时前
STM32总体架构简单介绍
stm32·单片机·嵌入式硬件
可乐鸡翅好好吃16 小时前
STM32的中断(什么是外部中断和其他中断以及中断号是什么)
c语言·stm32·单片机·嵌入式硬件·mcu·物联网·51单片机
没有余地 EliasJie18 小时前
深度学习图像视觉 RKNN Toolkit2 部署 RK3588S边缘端 过程全记录
人工智能·嵌入式硬件·深度学习
嵌入式大圣18 小时前
单片机在电路板中的应用
单片机·嵌入式硬件
美式小田20 小时前
单片机学习笔记 10. 中断系统(理论)
笔记·单片机·嵌入式硬件·学习
我不是码农 嘤嘤嘤21 小时前
单片机GPIO的8种工作模式
单片机·嵌入式硬件
相醉为友21 小时前
006 单片机嵌入式中的C语言与代码风格规范——常识
c语言·单片机·嵌入式硬件