热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

RISCVLinux:全志D1/D1s/F133(一)搭建交叉编译环境、编译主线Uboot、LinuxKernel

文章目录一、概论二、交叉编译环境平头哥官方:RISC-VGCC工具链T-HEADGNU编译器工具链三、Linux系统3.1编译Uboot3.2编译Linuxkerne


文章目录

  • 一、概论
  • 二、交叉编译环境
    • 平头哥官方:RISC-V GCC工具链
    • T-HEAD GNU 编译器工具链
  • 三、Linux系统
    • 3.1 编译Uboot
    • 3.2 编译Linux kernel


一、概论

 D1 是全志科技首款基于RISC-V指令集的芯片,集成了阿里平头哥64位C906核心,支持RVV,1GHz主频,可支持Linux、RTOS等系统。同时支持最高4K的H.265/H.264解码,内置一颗HiFi4 DSP,最高可外接2GB DDR3,可以应用于智慧城市、智能汽车、智能商显、智能家电、智能办公和科研教育等多个领域。

在这里插入图片描述


二、交叉编译环境


平头哥官方:RISC-V GCC工具链


名称描述
XuanTie-GNU-toolchain玄铁工具构建工程,基于此工程可以构建整套完整的玄铁开发工具集
GCC编译器,基于GCC并为玄铁处理器优化的编译套件
Binutils/GDB汇编器、链接器、调试器等二进制工具集
Qemu基于Qem的系统级模拟器
Newlib用于嵌入式系统的轻量级C库
Glibc通用标准C库,一般用于Linux系统

建议:所有的文件单独下载,然后再把文件放到XuanTie-GNU-toolchain这个目录下的对应文件夹里面去。



T-HEAD GNU 编译器工具链

T-HEAD C 和 C++ 交叉编译器,它支持两种构建模式:


  • 通用 ** ** 工具链
  • 复杂的 Linux-ELF/glibc工具链

此存储库使用子模块,但子模块会按需自动获取,
所以不需要 --recursivegit submodule update --init --recursive

$ git clone https://github.com/T-head-Semi/xuantie-gnu-toolchain

构建工具链需要几个标准包,在 Ubuntu 上,执行以下命令就足够了:

$ sudo apt-get install autoconf automake autotools-dev curl python3 libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev

三、Linux系统

RISC-V Linux系统


名称描述
玄铁-Buildroot玄铁处理器Buildroot Linux系统开源项目
玄铁-Yocto玄铁处理器Yocto Linux开源项目
LinuxLinux内核仓库
OpenSBIRISC-V 引导仓库
U-Boot支持玄铁处理器的 U-Boot 开源项目
Glibc通用标准C库,一般用于Linux系统

3.1 编译Uboot


3.2 编译Linux kernel


推荐阅读
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • 如何利用 Myflash 解析 binlog ?
    本文主要介绍了对Myflash的测试,从准备测试环境到利用Myflash解析binl ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • ps:写的第一个,不足之处,欢迎拍砖---只是想用自己的方法一步步去实现一些框架看似高大上的小功能(比如说模型中的toArraytoJsonsetAtt ... [详细]
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • Howtobuilda./configure&&make&&makeins ... [详细]
author-avatar
unforgettable602
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有