导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页
    1. 主页
    2. baiwen
    3. 帖子
    • 资料
    • 关注 3
    • 粉丝 25
    • 我的积分 4413
    • 主题 66
    • 帖子 136
    • 最佳 52
    • 群组 1

    baiwen 发布的帖子

    • 回复: D1-H/D1s真的要卷起来了!!!

      100ASK_D1s-PRO开发板真的是最大限度使用并复用了所有的IO引脚,做了多种兼容设计,可以直接外界模块 调试等操作。

      发布在 MR Series
      baiwen
      100ask
    • D1-H/D1s真的要卷起来了!!!
      • 拥有功能最丰富的D1s底板+ D1s邮票孔核心板,真的要把D1使劲卷起来了。
        3006cff9-c84d-4683-b524-43a76a71ac8f-image.png
      发布在 MR Series
      baiwen
      100ask
    • 回复: 全志V853上的ARM A7和RISC-V E907是如何通信的

      @xiaowenge 别一点一点上啊,一把梭哈全放出来过瘾

      发布在 V Series
      baiwen
      100ask
    • 回复: 百问网韦老师 D1 开发板 ---- 东山哪吒STU

      好多flash哇🤔 焊接技术

      发布在 MR Series
      baiwen
      100ask
    • 回复: 百问网韦老师 D1 开发板 ---- 东山哪吒STU

      @whycan 在 D1 开发板 东山哪吒STU 中说:

      验证体验东山哪吒ST

      晕哥拍照就是帅😍

      发布在 MR Series
      baiwen
      100ask
    • 回复: Buildroot-2022.2主线已经支持Nezha开发板,原来有这么多大佬喜欢这款芯片,真的太香了!

      @yuzukitsuru 但是 这确实是一个走向开源不错的开端!

      发布在 MR Series
      baiwen
      100ask
    • 回复: Buildroot-2022.2主线已经支持Nezha开发板,原来有这么多大佬喜欢这款芯片,真的太香了!
      • 感兴趣的同学可以先下载我编译好的整个工程。
        传输链接:https://cowtransfer.com/s/81255560080d44 或 打开【奶牛快传】cowtransfer.com 使用传输口令:t7aikl 提取;
      • 生产的镜像文件 sdcard.zip 可以直接解压缩 烧写使用。
      发布在 MR Series
      baiwen
      100ask
    • Buildroot-2022.2主线已经支持Nezha开发板,原来有这么多大佬喜欢这款芯片,真的太香了!

      尝试编译运行

      1. 配置开发环境

      参考 之前文章 安装必要软件包 链接文本

      获取源码

      buildroot官网 点击下载 最新长期支持稳定版本 https://buildroot.org/download.html
      6117d136-673e-4bce-a9b4-2b00c234f614-image.png

      配置编译

      1. 拷贝下载下来的压缩包到 Ubuntu系统下,进行解压缩。
      2. 进入 buildroot-2022.02 目录下
      3. 执行 make nezha_defconfig 指定配置文件
      4. 执行 make 命令开始编译。
        等待编译结束......

      编译输出文件

      b98d1329-ad20-4751-afa1-5002da609dc9-image.png
      进入output找到 sdcard.img 使用 dd命令 或者Windows下使用 wind32diskimg工具 直接烧录进TF卡 插到开发板 上电启动。

      • 如果您的网络环境不是很好 可以使用下面我编译好的整个项目工程,工程正在压缩 后面再单独回复。

      • 我们可以看到 buildroot其实早在 去年就已经首次支持了
        392b1711-b96b-4026-8573-782191e61f25-129d14d793f0d8fef8dde64d250b995.png

      发布在 MR Series
      baiwen
      100ask
    • DongshanNezhaSTU RISCV架构学习开发板来啦!

      感谢 全志陈总、酷哇社区晕哥、芒果大佬 的鼎力相助。历经3个月的不间断折腾,东山哪吒STU 教育 开发板终于批量生产出来了。
      东山哪吒STU开发板是 百问网公司作为 进入RISCV全国产架构的首款开发板,它具有 最基本的常用接口,同时为了更好扩展学习,也有更加丰富的配套扩展接口用于更深入的了解riscv在嵌入式Linux中与arm架构的开发差异,她的主要配置如下

      • 板载 Allwinner D1 主控芯片
      • 板载 512M DDR3 内存芯片
      • 板载千兆 RTL RJ45有线网卡
      • 板载 TYPEC 转 TTL调试芯片
      • 板载 标准HDMI显示接口
      • 板载 TF卡可弹出式座子
      • 板载 TYPEC OTG烧写接口
      • 预留 SPI FLASH芯片焊盘

      另外我们也提供了多种产品级的配套底板,目前已有 全阵脚引出的 DIY 底板,用于广大爱好者进行扩展,另外还有一个针对于 产品级的86控制面板 项目在准备阶段。
      说了这么多废话,给大家来点实际的:

      • 价格上:主板仅售149元,配套DIY底板 售 29元。
      • 配套资源上:支持 Tina-sdk 支持新版buildroot 支持riscv裸机 当然还有 产品级项目,有文档 视频 以及专门的交流社区。

      下面给大家先来几张产品图。
      DongshanNezhaSTU-Core-TOP.jpg
      DongshanNezhaSTU-Core-Bottom.jpg
      另外底板由于样板还没生产出来 就先给大家看一下 PCB图吧
      企业微信截图_16467168123573.png Snipaste_2022-03-08_19-31-04.png
      对了 我们配套的DIY底板 是全开源的,工程文件也给大家放出来吧。还有配套的原理图等。
      DongshanNezhaSTU-DIY-BASE_v1.0.zip
      DongshanNezhaSTU_DIY-BASE_SCH_V1.0.pdf
      DongshanNezhaSTU_CORE_SCH_V1.0.pdf
      同时也欢迎大家留言交流你们对 东山哪吒STU 开发的建议与看法!

      发布在 MR Series
      baiwen
      100ask
    • 搞嵌入式Linux开发 感觉就很离谱!

      6c034d45-7d33-4a77-b0aa-ae779188a28a-嵌入式Linux开发领域.jpg
      欢迎各位大佬在此 提交建议&反馈
      https://github.com/100askTeam/Embedded-Linux-Development-Learning-Path/discussions此

      发布在 MR Series
      baiwen
      100ask
    • 同学们 东山哪吒STU 开发板 一次打样成功!

      71e89d14-7d5b-4bfa-9d99-00134f14d860-image.png
      af058491-665b-4aab-8e1c-5e8718ffc92e-0337196fb9f60582166edb7bca6b3878.jpg ea75850e-5b43-4814-91f9-88291a0ba83d-b30741801063669f48c9e042c5aa6567.jpg
      a4fdfba1-80ed-478d-b01e-e2a61071cf6c-image.png
      75628871-5802-4327-b46a-477de5f7858b-5716081f62b809a67979c7f419e47da5(1).jpg

      有个不好的消息是,网卡座子和tf卡座子封装搞反了😰 导致看起来很别扭。

      • 配套源码与镜像地址 https://github.com/DongshanPI/buildroot-external-DongshanNezhaSTU
      发布在 MR Series
      baiwen
      100ask
    • 回复: 麻雀D1s开发板支持buildroot 一件构建了。

      @lyr2021 buildroot默认有adb这个包,选中配置一下 编译就可以了。

      发布在 MR Series
      baiwen
      100ask
    • 回复: 麻雀D1s开发板支持buildroot 一件构建了。

      @kakatoo 可以集成 直接make menuconfig选中你想要增加的 WiFi模块就好。

      发布在 MR Series
      baiwen
      100ask
    • 回复: 麻雀D1s开发板支持buildroot 一件构建了。

      @hilson 前期的测试与驱动开发不适合用CI自动构建,建议是等所有模块本地测试完成后再push到相关仓库,然后触发CI自动完整构建。

      发布在 MR Series
      baiwen
      100ask
    • 回复: 麻雀D1s开发板支持buildroot 一件构建了。

      大家可以试试白嫖 Github CI自动化构建,快还省事。
      https://github.com/100askTeam/buildroot-external-mq/blob/main/.github/workflows/buildroot-external-mq.yml
      自己增加一个专门的自动构建脚本,在上面的Actions里面启用自动化构建。
      c7683d48-f732-45a5-9945-6fc307a99763-image.png

      构建完成后,会在当前页面输出一个 sdcard.img镜像文件 可以直接下载。
      感觉大大增加了开发效率,最主要是免费😀 。

      发布在 MR Series
      baiwen
      100ask
    • 麻雀D1s开发板支持buildroot 一件构建了。
      • 麻雀Buildroot扩展支持 https://github.com/100askTeam/buildroot-external-mq.git
      • 全志在线buildroot https://github.com/100askTeam/buildroot_aw-ol.git

      MQ-D1S Buildroot external tree

      这个Git仓库专门支持全志在线 RV64 的平台。这个是针对 芒果PI MQ 开发板专门支持的 BR2_EXTERNAL 外部扩展支持。

      快速开始

      环境配置

      为了使用 Buildroot,您需要在您的工作站上安装 Linux 发行版。 任何最新的 Linux 发行版(Ubuntu、Debian、Fedora、Redhat、OpenSuse 等)都可以正常工作。
      但是你需要安装一些必要软件包至您的Linux工作站才可以使用Buildroot manual System requirements section. 对于 Debian/Ubuntu发行版系统,需要参考下述命令安装列出来的软件包。

      $ sudo apt install debianutils sed make binutils build-essential gcc g++ bash patch gzip bzip2 perl tar cpio unzip rsync file bc git
      

      获取代码

      这个 BR2_EXTERNAL会配合着最新的LTS版本一起使用,所以版本会随着 上游的更新而建立新的分支进行更新,目前Buildroot最新 BR2_EXTERNAL最新LTS版本是 2021-02 。

      首先我们获取 buildroot最新lts版本源码。

      • 使用git clone
      $ git clone https://github.com/100askTeam/buildroot_aw-ol.git  buildroot
      

      获取buildroot源码后,可以单独获取 芒果PI MQ 的 BR2_EXTERNAL 源码。

      $ git clone -b main https://github.com/100askTeam/buildroot-external-mq.git
      

      获取完成后,可以看到 一个 buildroot目录和一个 buildroot-external-mq目录。

      配置并构建

      首先进入到buildroot目录

      $ cd buildroot/
      

      接下来执行配置命令,来使用 mq_core_defconfig配置文件进行配置。

      buildrot/ $ make BR2_EXTERNAL=../buildroot-external-mq mq_core_defconfig
      

      指定配置文件后,可以使用 make menuconfig 命令来增加自己需要的包。

      增加完成软件包后,就可以直接执行 make 命令开始编译了。

      buildroot/ $ make
      

      编译时会自动下载所需的软件包,进行配置编译最后打包成一个完成的系统镜像,整个时间受网络环境而定,一般情况下 只需要60分钟。

      烧写并启动系统

      编译完成后,会生成一个sdcard.img 系统镜像,镜像文件存放在 output/images/目录下。
      6257fb94-a41b-4be8-b386-d0b52f162838-image.png
      执行如下命令讲镜像烧录进 tf卡即可,注意 /dev/sdX sdX 指的是tf卡设备的主分区。
      或者可以使用 wind32diskimage进行烧写。

      buildroot/ $ dd if=output/images/sdcard.img of=/dev/sdX bs=1M
      

      烧写完成后,将卡插入至开发板,连接电源线,设置为 tf卡启动,即可启动开发板,之后连接串口,等待进入终端命令行,系统默认的登录用户名是 root 。

      注意这个只是最小系统,大家想做什么二次开发 直接在上面进行适配即可。
      5704024d-1aea-44d9-bb70-c999fceb322d-image.png

      发布在 MR Series
      baiwen
      100ask
    • D1芯片DDR3原理图线序问题

      参考 D1_SCHEMATIC_NEZA_V1_2.pdf在设计硬件时DDR3的线序问题。
      eef1388c-9fa0-44f6-b19b-ea7ed813fcbc-a726d0bb137956dc605c965adebcbef.png
      a4c1bf16-8b87-44bd-8bd2-e6c43a0473bf-8d1b8a60d32c1ad69dff68a2015d606.png

      发布在 MR Series
      baiwen
      100ask
    • 回复: 【实践操作】自己从头构建riscv 64 ubuntu等发行版系统!

      @allwinnertech 附上两张启动logs 大家可以自行构建尝试哦 neza-ubuntu-18.0400.jpg neza-ubuntu-18.0401.jpg

      发布在 MR Series
      baiwen
      100ask
    • 【实践操作】自己从头构建riscv 64 ubuntu等发行版系统!
      • 相关参考资料及源码仓库地址
        • gitee仓库地址 https://gitee.com/weidongshan/riscv-release-rootfs.git
        • github仓库地址 https://github.com/100askTeam/riscv-release-rootfs.git

      第一章 使用官方提供的源码包进行构建

      1.搭建开发环境

      1.1 开发涉及的环境/工具:

      • Windows下虚拟化工具VMware workstation pro。

      • vmware 下运行的ubuntu /debian 虚拟机系统。

      • riscv 架构的ubuntu根文件系统源码包。

      • ch-mount.sh挂载文件系统脚本。

      1.2 安装qemu虚拟化工具

      1.2.1 apt安装

      Ubuntu终端下需要安装qemu虚拟化工具,在终端下执行如下命令。

      book@100ask:~$ sudo apt-get install qemu-user-static
      

      安装完成后,在文件系统下执行如下命令测试是否安装成功。

      book@100ask:~$ qemu-riscv64-static -version

      1.2.2 手动交叉编译安装

      # see https://wiki.qemu.org/Hosts/Linux#Required_additional_packages
      book@100ask:~$ sudo apt-get install -y pkg-config git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev
      book@100ask:~$ git clone https://git.qemu.org/git/qemu.git -b v4.2.0 --depth=1
      book@100ask:~$ cd qemu && mkdir build && cd build
      book@100ask:~$ mkdir out
      # You have to build as a static binary.
      book@100ask:~$ ../configure --static --target-list=riscv64-linux-user --prefix=$(pwd)/out
      book@100ask:~$ make && make install
      book@100ask:~$ cd ../../
      

      2. 获取riscv架构ubuntu根文件系统

      使用浏览器访问 http://cdimage.ubuntu.com/ubuntu-base/ 此地址,即可看到ubuntu基本系统所有的版本镜像文件,这里我们选择releases发布版。

      ​ 我们点击 release 发布版本的连接后进入如下图所示界面,这里列出了ubuntu base各个版本的下载地址,如下图根据红框所示,点击20.04 目前只有ubuntu 20支持了riscv64架构。

      ​ 点击20.04后在弹出新的页面内继续点击 releases 。

      ​ 之后页面就跳入ubuntu base 20.04 lts文件系统的下载页面了,这里列出了各种架构的文件系统源码包,不同的历史版本,我们页面往下滑,找到最新的架构为 riscv64的ubuntu系统源码包,如下图红框所示,下载 ubuntu-base-20.04.2-base-riscv64.tar.gz 到电脑磁盘上,让后上传此文件到VMware Ubuntu系统内。

      3.Vmware ubuntu-16.04挂载arm架构ubuntu文件系统

      3.1. 解压缩arm架构ubuntu-16.04文件系统到ubuntu下

      在VMware Ubuntu-16.04虚拟机家目录下创建一个 ubuntu-rootfs目录,用于解压缩保存文件使用。

      book@100ask:~$ mkdir ubuntu-rootfs
      
      book@100ask:~$ sudo tar -xvf ubuntu-base-20.04.2-base-riscv64.tar.gzz -C ubuntu-rootfs/
      

      查看当前路径下的文件结构已经OK

      3.1.2 拷贝qemu模拟工具到riscv64架构ubuntu-rootfs文件系统下

      book@100ask:~$ sudo cp usr/bin/qemu-riscv64-static ubuntu-rootfs/usr/bin/
      

      注意:qemu-riscv64-static 指的是riscv64架构的虚拟化工具,果是其他架构的则拷贝其他文件。

      如果你是手动编译生成的qemu-riscv64-static文件,则参考下述命令。

      book@100ask:~$ sudo cp ./qemu/build/out/bin/qemu-riscv64 ./riscv/usr/bin/qemu-riscv64-static
      

      ubuntu-roofs/usr/bin/ 指的是你当前解压riscv64架构的ubuntu20.04文件系统后的所在目录下的 usr/bin。

      拷贝主机DNS配置文件到arm架构Ubuntu文件系统内(必须拷贝,否则可能会导致下面操作无法进行)。

      book@100ask:~$  sudo cp /etc/resolv.conf  ubuntu-rootfs/etc/resolv.conf
      

      3.1.2 chroot到模拟riscv64文件系统下

      我们需要使用chroot 改变根目录来挂载riscv架构的ubuntu根文件系统,并配置或安装一些必要资源,首先创建ch-mount.sh 脚本。

      book@100ask:~$ vi ch-mount.sh
      

      将以下的内容复制到ch-mount.sh中。

      #!/bin/bash
      
      function mnt() {
          echo "MOUNTING"
          sudo mount -t proc /proc ${2}proc
          sudo mount -t sysfs /sys ${2}sys
          sudo mount -o bind /dev ${2}dev
      
          sudo chroot ${2}
      }
      
      function umnt() {
          echo "UNMOUNTING"
          sudo umount ${2}proc
          sudo umount ${2}sys
          sudo umount ${2}dev
      
      }
      
      
      if [ "$1" == "-m" ] && [ -n "$2" ] ;
      then
          mnt $1 $2
      elif [ "$1" == "-u" ] && [ -n "$2" ];
      then
          umnt $1 $2
      else
          echo ""
          echo "Either 1'st, 2'nd or both parameters were missing"
          echo ""
          echo "1'st parameter can be one of these: -m(mount) OR -u(umount)"
          echo "2'nd parameter is the full path of rootfs directory(with trailing '/')"
          echo ""
          echo "For example: ch-mount -m /media/sdcard/"
          echo ""
          echo 1st parameter : ${1}
          echo 2nd parameter : ${2}
      fi
      
      
      

      考虑到shell脚本对空格很灵敏,所以将我使用的文件放在如下地址处。

      book@100ask:~$ wget \
      https://weidongshan.coding.net/p/DevelopmentEnvConf/d/DevelopmentEnvConf/git/raw/master/ubuntu_rootfs-mount/ch-mount.sh
      book@100ask:~$ chmod +x ch-mount.sh
      

      接下来我们使用ch-mount.sh脚本挂载arm架构ubuntu-16.04文件系统,挂载命令如下所示,挂载成功后会提示 MOUNTING。

      book@100ask:~$ sudo ./ch-mount.sh -m ubuntu-rootfs/
      

      此时我们可以在此执行 uname -a来查看系统内核的详细信息,你会发现现在是 riscv架构。

      4. 配置arm架构的ubuntu系统

      4.1 安装基础软件包

      Chroot进入模拟的arm架构Ubuntu系统后需要先安装如下必须的安装包,安装包安装过程会根据你的网络下载速率可能会需要一段时间。

      安装基础软件包之前需要先执行 apt-get update命令来更新软件源,用以获取软件包的地址等。

      软件源更新完成后,可以安装必要软件包,安装速度根据个人网速绝定。

      apt-get install \
      language-pack-en-base sudo ssh  net-tools network-manager iputils-ping rsyslog \
      bash-completion  language-pack-zh-hans vim resolvconf kmod usbutils alsa-base
      

      4.2 用户名密码等相关设置

      • 添加用户、设定合适的组并设置密密码

      添加book用户并加入admin sudo用户组,设置密码为123456

      root@100ask:/#  useradd -s '/bin/bash' -m -G adm,sudo book 
      root@100ask:/#  echo "Set password for book:" 
      root@100ask:/#  passwd book 
      

      初始化root用户密码,这里设置为123456

      root@100ask:/#  passwd root
      

      4.3 其它配置

      • 设置主机名称和hosts

      在模拟的arm架构ubuntu根文件系统下执行如下两条命令即可设置主机名称。

      root@100ask:/# echo 100ask > /etc/hostname
      root@100ask:/# echo 100ask  > /etc/hosts
      
      • 配置登陆的启动串口脚本

      因为暂时未安装桌面,所以这里的配置要具体和内核中登录的串口的设备对应起来,不然对导致无法通过串口登录的问题。

      在 /etc/init/ 下添加或修改ttyS0.conf

      root@100ask:/# cat > /etc/init/ttyS0.conf << EOT
      start on stopped rc RUNLEVEL=[2345]
      stop on runlevel [!2345]
      respawn
      exec /sbin/getty -L 115200 S0
      EOT
      

      • 配置网卡接口
      root@100ask:/# cat >> /etc/network/interfaces << EOT
      auto lo
      iface lo inet loopback
      auto eth0
      iface eth0 inet dhcp
      EOT
      

      4.4 退出arm模拟文件系统

      配置或安装完基本的设置后,就可以退出模拟的arm架构文件系统了,操作步骤如下,先在模拟的arm架构文件系统内执行exit 退出到 VMware ubuntu虚拟机终端界面,让后卸载chroot挂载。

      root@100ask:/#  exit
      book@100ask:~$  sudo  ./ch-mount -u ubuntu-rootfs
      

      ​ 完成这些后,我们需要把内核镜像设备树,以及模块驱动等文件拷贝到riscv架构的ubuntu文件系统相应目录内。

      4.5 配置系统内核模块以及固件

      ​ 安装内核模块到riscv架构的ubuntu文件系统内,如下命令所示,INSTALL_MOD_PATH后面的目录地址为arm架构ubuntu文件系统所在绝对路径(模块安装前需要先编译模块)。

      book@100ask:~$ sudo make ARCH=riscv INSTALL_MOD_PATH=/home/book/ubuntu-rootfs modules_install
      

      ​ 安装完成后查看risv架构ubuntu文件系统的 lib/modules/ 目录下是否有如下相应文件生成

      ​ 自此,riscv架构的ubuntu文件系统已经基本制作完成,接下来我们需要制作为可烧录的镜像文件。

      4.6 使用nfs方式启动系统系统

      ​ 目前uboot不支持网卡,据说官方正在适配中。

      5. 制作可烧录的固件

      5.1 制作ext4文件系统镜像

      ​ 如下命令所示,需要先生成一个大小为2GB的 ubuntu-rootfs.ext4 镜像文件,让后格式化镜像为ext4格式,之后通过挂载镜像方式把制作好的镜像文件拷贝到文件系统内。

      book@100ask:~$ dd if=/dev/zero of=ubuntu-rootfs.ext4 bs=1M count=2048 
      book@100ask:~$ sudo mkfs.ext4 -F  ubuntu-rootfs.ext4
      

      ​ 如下命令所示,创建一个ubuntu-mount 目录,并挂载ubuntu-rootfs.ext4 镜像到该目录下,之后拷贝制作好的文件系统内所有文件到此挂载目录,紧接着使用sync命令同步数据缓存保证拷贝完成,完成后可以使用sudo umount ubuntu-mount/卸载当前挂载的镜像。

      book@100ask:~$ mkdir ubuntu-mount
      book@100ask:~$ sudo mount ubuntu-rootfs.ext4 ubuntu-mount/
      book@100ask:~$ sudo cp -rvfp ubuntu-rootfs/* ubuntu-mount/
      book@100ask:~$ sync
      book@100ask:~$ sudo umount ubuntu-mount/
      

      5.2 使用genimage制作可烧录镜像

      我们只制作好ext4格式的文件系统并不能直接烧录到开发板启动,此时我们需要使用buildroot下的genimage工具来帮我们打包生成一个完整的镜像文件。

      首先把制作好的 ubuntu-rootfs.ext4 镜像拷贝到已经编译过的 buildroot output/images目录下。

      book@virtual-machine:~/Neza-D1/buildroot-2021/output/images$
      

      ​ 修改buildroot根目录下board/Neza/d1/genimage.cfg 分区配置文件,来指定一下rootfs分区用的镜像文件。

        1 image Neza-d1-ubuntu-20-sdcard.img {
        2         hdimage{
        3                 gpt = true
        4                 gpt-location = 1M
        5         }
        6         partition boot0 {
        7                 in-partition-table = "no"
        8                 image = "boot0_sdcard.fex"
        9                 offset = 8K
       10         }
       11         partition boot-packages {
       12                 in-partition-table = "no"
       13                 image = "boot_package.fex"
       14                 offset = 16400K
       15         }
       16         partition env {
       17                 image = "env.fex"
       18                 size = 128k
       19         }
       20         partition env-redund {
       21                 image = "env.fex"
       22                 size = 128k
       23         }
       24         partition boot {
       25                 partition-type = 0xC
       26                 bootable = "true"
       27                 image = "boot.vfat"
       28         }
       29         partition rootfs {
       30                 partition-type = 0x83
       31                 image = "ubuntu-rootfs.ext4"
       32         }
       33 }
       34
       35 image boot.vfat {
       36         vfat {
       37         files = {
       38                 "boot.img",
       39                 "Image",
       40                 "board.dtb"
       41         }
       42         }
       43         size = 32M
       44 }
      
      

      ​ 执行上述步骤以后,保存退出 在buildroot根目录下执行make all命令来打包生成完整的镜像,最后生成的镜像输出在 buildroot根目录下的output/images/ 可以拷贝出来用windows下的wind32diskimage工具进行烧录 烧录成功后即可启动。

      文件系统只读问题

      • 开发板启动 切换终端 一直按 s 键 进入uboot命令行模式,来给设置bootargs 增加rw 读写权限。

      setenv bootargs earlyprintk=sunxi-uart,0x02500000 clk_ignore_unused initcall_debug=0 console=ttyS0,115200 loglevel=8 root=/dev/mmcblk0p4 rw init=/sbin/init partitions=ext4 cma=8M gpt=1
      saveenv
      

      设置成功后 保存重启。

      6. 启动后常见问题

      6.1 网络相关问题

      • 不能上网

      配置dns服务器文件

      vim /etc/resolv.conf

      添加你的dns地址,至于怎么获取就不过多阐述

      route add default gw 192.168.1.1

      关于发行版文件系统的想法与建议

      统一一个可大家长期维护的发行版系统镜像

      • 目前看到有很多自己做的发行版系统镜像,各有各的优势与问题,我们是否可以统一成一个开源镜像大家一起维护升级,给更多的新的朋友一个更好的体验呢?

      使用github自动化工作流来自行构建生成系统镜像

      • 发现每次修改ubuntu文件系统只是做了一次小的改动 却要机械化的处理整个打包编译生成的过程,太过于浪费时间效率,想使用GitHub的CI自动化来根据我们每次的修改自动编译构建生成系统镜像文件,方便你我他。
      发布在 MR Series
      baiwen
      100ask
    • 回复: 关于D1启动流程中设备树的位置

      @johnweston 在 关于D1启动流程中设备树的位置 中说:

      我现在是将设备树直接编译到二进制文件中避开这一点,但是还是无法正确引导 Kernel,在跳转到 UBoot 前我将编入的设备树放到了 a1 寄存器,但是 Uboot 似乎没有正确识别。
      D1设备树uboot操作放在了r2寄存器内特定的地址,目前D1的做法是将 opensbi uboot dtb三个文件打包在了一起来用。
      00a42864-068b-4fca-aa10-27f14067895b-image.png

      发布在 MR Series
      baiwen
      100ask
    • 回复: 【极简操作】使用builroot 2021一键编译生成D1 nezha 系统镜像!

      Buildroot Git仓库最新支持如下图所示更丰富的常用软件包和lib库 方便大家学习与调试。
      198be99b-c746-4615-a586-0cb501370630-image.png

      发布在 MR Series
      baiwen
      100ask
    • 回复: 【极简操作】使用builroot 2021一键编译生成D1 nezha 系统镜像!

      @aiminick
      使用uboot内的mkenvimage 执行如下命令。
      mkenvimage -r -p 0x00 -s 0x20000 -o env.fex env.cfg

      发布在 MR Series
      baiwen
      100ask
    • 回复: 完整支持buildroot 2021 LTS构建D1开发板SD卡系统镜像

      @whycan 参考 我们那个git仓库里 对buildroot opensbi 包做的修改 以及opensbi源码的修改。

      发布在 MR Series
      baiwen
      100ask
    • 回复: 如何让D1 uboot支持uImage镜像 + dtb启动系统?

      @whycan 感谢回复 boot0阶段没有做深入的研究 只是拿来用,现在主要问题是默认的uboot并不支持使用bootm来单独加载设备树和uImage启动系统。

      发布在 MR Series
      baiwen
      100ask
    • 【极简操作】使用builroot 2021一键编译生成D1 nezha 系统镜像!

      使用buildroot编译构建系统

      • buildroot gitee仓库地址 https://gitee.com/weidongshan/neza-d1-buildroot.git
      • buildroot github仓库地址 https://github.com/100askTeam/neza-d1-buildroot.git
      • opensbi gitee仓库地址 https://gitee.com/weidongshan/NezaD1-opensbi.git
      • u-boot gitee仓库地址 https://gitee.com/weidongshan/NezaD1-u-boot-2018.git
      • Linuxkernel gitee仓库地址 https://gitee.com/weidongshan/NezaD1-linuxkernel.git
        欢迎大家编译使用提交问题和建议到对应的仓库

      编译完整系统或者各个部分

      • 我们编译使用的是ubuntu 18.04 系统,在进行如下编译之前需要先配置基本编译环境,参考下述命令来安装必须的软件包。
      book@virtual-machine:~/Neza-D1/buildroot-2021$ sudo apt-get install -y which sed make binutils build-essential  gcc g++ bash patch gzip bzip2 perl  tar cpio unzip rsync file  bc wget python ncurses5  bazaar cvs git mercurial rsync scp subversion android-tools-mkbootimg
      
      • 使用git命令clone源码
      book@virtual-machine:~$ mkdir -p  ~/Neza-D1/ &&  cd ~/Neza-D1/
      book@virtual-machine:~/Neza-D1$ git clone https://gitee.com/weidongshan/neza-d1-buildroot.git buildroot-2021
      

      构建完整系统镜像

      • 编译完整系统镜像
      book@virtual-machine:~/Neza-D1/buildroot-2021$ make  neza-d1_defconfig  //加载配置文件 
      book@virtual-machine:~/Neza-D1/buildroot-2021$ make  all //完整编译系统
      
      • 编译生成的系统镜像在output/image目录下,其中sdcard.img为完整的系统镜像。
      book@virtual-machine:~/Neza-D1/buildroot-2021/output/images$ ls
      board.dtb         boot.img          boot_package.fex  boot.vfat      env.cfg  fw_dynamic.bin  fw_jump.bin  Image        rootfs.cpio     rootfs.ext2  rootfs.tar  sunxi.fex              uImage
      boot0_sdcard.fex  boot_package.cfg  boot.scr          dragonsecboot  env.fex  fw_dynamic.elf  fw_jump.elf  ramdisk.img  rootfs.cpio.gz  rootfs.ext4  sdcard.img  u-boot-sun20iw1p1.bin
      book@virtual-machine:~/Neza-D1/buildroot-2021/output/images$
      

      单独编译各个部分

      • 单独编译 opensbi阶段
      book@virtual-machine:~/Neza-D1/buildroot-2021$  make opensbi-rebuild V=1
      
      • 单独编译 uboot阶段
      book@virtual-machine:~/Neza-D1/buildroot-2021$  make uboot-rebuild V=1
      
      • 单独编译 kernel阶段
      book@virtual-machine:~/Neza-D1/buildroot-2021$  make kernel-rebuild V=1
      
      • 单独编译文件系统
        • 指定完成工具链 系统配置 需要安装的包 以及所需的格式 执行如下命令,最后生成的镜像在 output/image目录下。
      book@virtual-machine:~/Neza-D1/buildroot-2021$ make  all //完整编译系统
      

      烧写启动

      • windows下使用wind32diskimage工具烧写,Linux下直接使用dd 命令完整写入
        19a6fbbe-0b81-417a-807c-59058de41c23-NezaD1wind32diskimag.png
        ![image-20210701105748748]

      • 烧写成功后把卡插入开发板 开发板上电 即可自动从sd卡启动进入系统
        ed025a88-2a7c-4578-8228-438338276627-nezaD1startupLog.png

      ToDoList

      已实现功能

      • 支持平头哥 rv64d外部工具链。
      • 支持buildroot构建 Tina sdk 内 Thead c910 opensbi 。
      • 支持buildroot 构建Tina sdk 内 u-boot 2018
      • 支持buildroot构建Linux kernel 5.4自动生成Image并后续打包为boot.img
      • 自动构建并打包生成SD卡 busybox udev最小系统启动。

      未实现 计划实现

      • 支持qt python mqtt gst等常用软件包。
      • 支持systemD init服务。
      • 支持板载wifi 模块。

      如何参与此项目

      提交PR

      提交issues


      20210706更新:
      Buildroot Git仓库最新支持如下图所示更丰富的常用软件包和lib库 方便大家学习与调试。
      e541b9a5-ecb7-498c-be6c-3103d9c85f82-image.png

      发布在 MR Series
      baiwen
      100ask
    • 如何让D1 uboot支持uImage镜像 + dtb启动系统?

      问题1
      我们现在想用单独使用工具链编译的uboot去单独加载uImage 和设备树文件来启动开发板系统,
      但是参考发现你们的boot.img似乎没有用到设备树,所以我不明白设备树用的是那里的 我要单独更新设备树应该怎么操作 ?
      问题2
      我们在尝试使用过程中uboot出现/dram not found问题 通过查看tina sdk发现dram配置信息似乎在 sys_config.fex 文件内,我要如何将dram文件增加到自编译的uboot内?

      • uboot 加载uImage dtb失败log
        107378e2-26e7-49d3-8e94-c9ac226becc2-image.png

      • uboot读取dram参数节点错误信息
        87a59eb3-f7d4-442f-9703-cc566ce6aaa0-image.png

      • tina sdk内 类似dram配置文件
        d2e1df08-e58d-47a6-90c6-7370fecf8e58-image.png

      • 关于设备树以及tina-sdk内不太清楚的问题
        ae1d6242-6f70-4fc9-9add-0e447ffab428-image.png
        ee0bc0f7-9540-4857-8ac1-0d0e9eb879d6-image.png

      发布在 MR Series
      baiwen
      100ask
    • 完整支持buildroot 2021 LTS构建D1开发板SD卡系统镜像

      完整支持使用社区buildroot 2021自动编译构建D1 TF卡启动镜像,可以专门用来研究D1启动流程 工具链或者研究各个部分 boot0 opensbi u-boot kernel rootfs 等 对于深入理解RISC V 64有很大的帮助,目前正在整理合并源码 预计下周之前可以发布 获取最新动态请关注 https://gitee.com/weidongshan/neza-d1-buildroot.git
      buildroot -2021 .gif

      发布在 MR Series
      baiwen
      100ask
    • 回复: 如何将单独编译的opensbi u-boot kernel rootfs 烧录制作成可以启动的sdcard.img镜像?

      @damon 在 如何将单独编译的opensbi u-boot kernel rootfs 烧录制作成可以启动的sdcard.img镜像? 中说:请问可以单独讲讲 boot-package 的存放方式么?

      发布在 MR Series
      baiwen
      100ask
    • 如何将单独编译的opensbi u-boot kernel rootfs 烧录制作成可以启动的sdcard.img镜像?

      各位大佬晚上好 我目前通过使用全志提供的sdk内工具链可以单独编译 opensbi uboot kernel busybox最小系统,除了kernel 和busybox部分可以通过分区挂载替换的方式进行更新刷写,但是opensbi uboot这部分如何在不借助全志工具的情况下单独更新呢?e940dc76-36fe-449c-b1c2-294814e495fa-image.png
      之前看到社区内liangdi 大佬做的debian系统 启动后查看分区信息时可以看到如下。
      5ddb6ece-bf2f-48ab-9122-a30a64fe7d71-image.png
      通过分区工具查看
      d6dabcc0-4d8f-4438-b0b6-d6a3d2c54a62-image.png
      后来发现这三个分区是通过下面这个工具单独生成的,并非全志sdk构建出来的那个版本。
      cb304430-11da-4b65-85db-750ca1a8727a-image.png
      后面分析sdk内的 scripts/pack_img.sh 脚本以及单独执行pack打包命令验证,发现最开始的三个分区,对应的文件分别是boot-resource.fex env.fex ,后面将其使用wind32diskimage工具直接烧录至SD卡 并未能看到分区信息。
      79359514-2b0a-4a7b-9028-b7122098113c-image.png
      之后我找到boot-resource.fex 来分析制作过程并查看文件 ,发现 boot-resource.fex 文件大小确只有 80k 仅仅opensbi部分编译出来都将近80k 那么u-boot部分会保存在哪里呢?
      4a4ec534-d4c0-449a-aea9-6ef7655f7ba6-image.png
      希望有了解的大佬指点一下,想搞明白具体的启动流程和分区信息等。

      发布在 MR Series
      baiwen
      100ask
    • 两个riscv64交叉编译工具的区别是什么?

      请问一下 ~/tina-d1-open/lichee/brandy-2.0/tools/toolchain 目录下这两个riscv64的工具链有什么区别 分别都是在哪里会用到的 , 自己编译时应该以那个为准 ?
      2e36a997-40e4-45bc-8cab-0c1a6204f13a-image.png

      发布在 MR Series
      baiwen
      100ask
    • 回复: 关于D1开发板SD卡启动 系统镜像分区问题?

      @xiaowenge 你好 现在我还不知道按照那种分区格式将编译好的固件打包 是否有类似的参考 我将编译单独编译好的固件打包成一个完整镜像 再通过量产SD卡工具进行配置?

      发布在 MR Series
      baiwen
      100ask
    • 回复: 使用社区buildroot单独编译构建D1开发板系统opensbi出错

      @damon 在 使用社区buildroot单独编译构建D1开发板系统opensbi出错 中说:

      rv64imafdc

      好的 我试试

      发布在 MR Series
      baiwen
      100ask
    • 关于D1开发板SD卡启动 系统镜像分区问题?

      我想单独编译 各个部分镜像 并单独打包生成一个可以img镜像 可以直接烧录进sd卡内 但是目前没有看到具体的启动分区地址及对应的偏移地址信息说明 请问 如果想自己手动使用genimage手动制作一个完整的系统镜像应该如何配置?

      如下log是从我openwrt构建工具执行 pack打包命令看到一些分区信息 但是有些地方不太明白

      show "sys_partition_for_dragon.fex" message


      [mbr]

      mbr_size : 252 Kbyte


      partition_name : boot-resource

      partition_size : 8064

      downloadfile : boot-resource.fex

      boot-resource.fex size : 3.0M byte


      partition_name : env

      partition_size : 504

      downloadfile : env.fex

      env.fex size : 128K byte


      partition_name : env-redund

      partition_size : 504

      downloadfile : env.fex

      env.fex size : 128K byte


      partition_name : boot

      partition_size : 20664

      downloadfile : boot.fex

      boot.fex -> /home/book/tina-d1-open/out/d1-nezha/boot.img

      boot.img size : 9.1M byte


      partition_name : rootfs

      partition_size : 40824

      downloadfile : rootfs.fex

      rootfs.fex -> /home/book/tina-d1-open/out/d1-nezha/rootfs.img

      rootfs.img size : 16M byte


      partition_name : dsp0

      partition_size : 1008

      downloadfile : dsp0.fex

      dsp0.fex size : 258K byte


      partition_name : recovery

      partition_size : 28224

      发布在 MR Series
      baiwen
      100ask
    • 使用社区buildroot单独编译构建D1开发板系统opensbi出错

      我在尝试使用buildroot官方lts 2021版本构建工具,其中工具链使用 从官方sdk下载下来的 ~/tina-d1-open/lichee/brandy-2.0/tools/toolchain/riscv64-linux-x86_64-20200528.tar.gz 尝试构建 opensbi 部分提示错误,目前来似乎是工具链不支持某些指令集导致的问题 请问有可以直接单独用来编译 opensbi的工具链么?
      68d0a752-377e-4c37-b414-57efc9b86769-image.png

      发布在 MR Series
      baiwen
      100ask
    • 1
    • 2
    • 2 / 2