Browse Source

update add new features

Signed-off-by: Chunrong Guo <guochunrong@phytium.com.cn>
pull/6/MERGE phytium-linux-buildroot-v1.1-20230217
Chunrong Guo 2 years ago
parent
commit
0d657d4222
  1. 52
      README.md
  2. 10
      board/phytium/common/post-custom-skeleton-debian-base-11.sh
  3. 3
      board/phytium/common/post-custom-skeleton-ubuntu-base-20.04.sh
  4. 2
      configs/phytium_e2000_4.19kernel.config
  5. 5
      configs/phytium_e2000_debian_defconfig
  6. 5
      configs/phytium_e2000_debian_desktop_defconfig
  7. 6
      configs/phytium_e2000_defconfig
  8. 5
      configs/phytium_e2000_ubuntu_defconfig
  9. 5
      configs/phytium_e2000_ubuntu_desktop_defconfig
  10. 4
      configs/phytium_e2000_xenomai_defconfig
  11. 3
      package/ffmpeg/ffmpeg.mk
  12. 5
      package/igh-ethercat/igh-ethercat.hash
  13. 17
      package/igh-ethercat/igh-ethercat.mk
  14. 2
      package/vpu-lib/vpu-lib.mk
  15. 3
      toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in
  16. 6
      toolchain/toolchain-external/toolchain-external-arm-aarch64/toolchain-external-arm-aarch64.hash
  17. 6
      toolchain/toolchain-external/toolchain-external-arm-aarch64/toolchain-external-arm-aarch64.mk

52
README.md

@ -34,6 +34,7 @@ phytium_initrd_defconfig - Build for phytium_initrd
# 编译文件系统
## 为e2000编译文件系统
### 编译linux 5.10内核的文件系统
(1)配置defconfig
配置以下文件系统之一:
`$ make phytium_e2000_ubuntu_defconfig`
@ -46,6 +47,22 @@ phytium_initrd_defconfig - Build for phytium_initrd
(3)镜像的输出位置
生成的根文件系统、内核、bootloader位于output/images目录。
### 编译linux 4.19内核的文件系统
(1)将defconfig和支持linux 4.19内核的config fragment合并:
`$ ./support/kconfig/merge_config.sh configs/phytium_e2000_xxx_defconfig configs/phytium_e2000_4.19kernel.config`
其中`phytium_e2000_xxx_defconfig`为以下文件系统之一:
```
phytium_e2000_ubuntu_defconfig
phytium_e2000_ubuntu_desktop_defconfig
phytium_e2000_defconfig
phytium_e2000_debian_defconfig
phytium_e2000_debian_desktop_defconfig
```
(2)编译
`$ make`
(3)镜像的输出位置
生成的根文件系统、内核、bootloader位于output/images目录。
## 清理编译结果
(1)`$ make clean`
删除所有编译结果,包括output目录下的所有内容。当编译完一个文件系统后,编译另一个文件系统前,需要执行此命令。
@ -219,6 +236,41 @@ $ make scripts
```
关于如何编译内核模块,可参考https://www.kernel.org/doc/html/latest/kbuild/modules.html
# buildroot编译新的应用软件
本节简单介绍如何通过buildroot交叉编译能运行在开发板上的应用软件,完整的教程请参考buildroot用户手册manual.pdf。
## buildroot软件包介绍
buildroot中所有用户态的软件包都在package目录,每个软件包有自己的目录`package/<pkg>`,其中`<pkg>`是小写的软件包名。这个目录包含:
(1)`Config.in`文件,用Kconfig语言编写,描述了包的配置选项。
(2)`<pkg>.mk`文件,用make编写,描述了包如何构建,即从哪里获取源码,如何编译和安装等。
(3)`<pkg>.hash`文件,提供hash值,检查下载文件的完整性,如检查下载的软件包源码是否完整,这个文件是可选的。
(4)`*.patch`文件,在编译之前应用于源码的补丁文件,这个文件是可选的。
(5)可能对包有用的其他文件。
## 编写buildroot软件包
首先创建软件包的目录`package/<pkg>`,然后编写该软件包中的文件。
buildroot中的软件包基本上由`Config.in`和`<pkg>.mk`两个文件组成。关于如何编写这两个文件,大家可以参考`package/<vpu-lib>`和
buildroot用户手册,这里简单概括一下。
(1)`Config.in`文件中必须包含启用或禁用该包的选项,而且必须命名为`BR2_PACKAGE_<PKG>`,其中`<PKG>`是大写的软件包名,这个选项的值是布尔类型。
也可以定义其他功能选项来进一步配置该软件包。然后还必须在`package/Config.in`文件中包含该文件:
`source "package/<pkg>/Config.in"`
(2)`<pkg>.mk`文件看起来不像普通的Makefile文件,而是一连串的变量定义,而且必须以大写的包名作为变量的前缀。最后以调用软件包的基础结构(package
infrastructure)结束。变量告诉软件包的基础结构要做什么。
对于使用手写Makefile来编译的软件源码,在`<pkg>.mk`中调用generic-package基础结构。generic-package基础结构实现了包的下载、提取、打补丁。
而配置、编译和安装由`<pkg>.mk`文件描述。`<pkg>.mk`文件中可以设置的变量及其含义,请参考buildroot用户手册。
## 编译软件包
(1)单独编译软件包
```
$ cd xxx/phytium-linux-buildroot
$ make <pkg>
```
编译结果在`output/build/<pkg>-<version>`
(2)将软件包编译进根文件系统
```
在phytium_xxx_defconfig中添加一行BR2_PACKAGE_<PKG>=y
$ make phytium_xxx_defconfig
$ make
```
# FAQ
1. Ubuntu文件系统桌面无法登陆问题?
```

10
board/phytium/common/post-custom-skeleton-debian-base-11.sh

@ -57,7 +57,6 @@ do_distrorfs_first_stage() {
fi
sudo chown 0:0 $RFSDIR
#[ $1 != amd64 -a ! -f $RFSDIR/usr/bin/qemu-${tgtarch}-static ] && cp $(which qemu-${tgtarch}-static) $RFSDIR/usr/bin
sudo mkdir -p $2/usr/local/bin
sudo cp -f board/phytium/common/debian-package-installer $RFSDIR/usr/local/bin/
sudo cp -r output/modules $RFSDIR/lib
@ -80,6 +79,7 @@ do_distrorfs_first_stage() {
export LANG=zh_CN.UTF-8
sudo debootstrap --arch=$1 --foreign bullseye $RFSDIR http://mirrors.163.com/debian/
[ $1 != amd64 -a ! -f $RFSDIR/usr/bin/qemu-${tgtarch}-static ] && sudo cp $(which qemu-${tgtarch}-static) $RFSDIR/usr/bin
echo "installing for second-stage ..."
export LC_ALL="zh_CN.UTF-8" && export LANGUAGE="zh_CN:zh" && export LANG="zh_CN.UTF-8"
#DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true LC_ALL=zh_CN.UTF-8 LANGUAGE=zh_CN:zh LANG=zh_CN.UTF-8 \
@ -101,7 +101,12 @@ do_distrorfs_first_stage() {
fi
# sudo chroot $RFSDIR systemctl enable systemd-rootfs-resize
file_s=$(sudo find $RFSDIR -perm -4000)
sudo chown -R $USER:$GROUPS $RFSDIR
for f in $file_s; do
sudo chmod u+s $f
done
sudo chmod u+s $RFSDIR/sbin/unix_chkpwd
if [ $distro = bullseye ]; then
echo debian,11 | tee $RFSDIR/etc/.firststagedone 1>/dev/null
@ -191,6 +196,9 @@ full_rtf()
main()
{
# $1 - the current rootfs directory, skeleton-custom or target
if [ ! -d $1/lib/modules ]; then
make linux-rebuild
fi
ROOTPATH=${1}/usr/src/linux-headers
KERNELVERSION=`ls $1/lib/modules`
cd ${1}/lib/modules/${KERNELVERSION}/build

3
board/phytium/common/post-custom-skeleton-ubuntu-base-20.04.sh

@ -198,6 +198,9 @@ full_rtf()
main()
{
# $1 - the current rootfs directory, skeleton-custom or target
if [ ! -d $1/lib/modules ]; then
make linux-rebuild
fi
ROOTPATH=${1}/usr/src/linux-headers
KERNELVERSION=`ls $1/lib/modules`
cd ${1}/lib/modules/${KERNELVERSION}/build

2
configs/phytium_e2000_4.19kernel.config

@ -0,0 +1,2 @@
# kernel 4.19
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="2bc82f364da6e5d815219b3d670071245770fbaf"

5
configs/phytium_e2000_debian_defconfig

@ -35,11 +35,8 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://gitee.com/phytium_embedded/phytium-linux-kernel.git"
# kernel 4.19
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="2bc82f364da6e5d815219b3d670071245770fbaf"
# kernel 5.10
#BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="f0cc7d6de6976f4b2b88d425a91878d948106f80"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="f0cc7d6de6976f4b2b88d425a91878d948106f80"
BR2_LINUX_KERNEL_INTREE_DTS_NAME="phytium/e2000d-demo-board phytium/e2000d-miniitx-board phytium/e2000d-power-board phytium/e2000q-come-board phytium/e2000q-demo-board phytium/e2000q-edu-board phytium/e2000q-hanwei-board phytium/e2000q-miniitx-board phytium/e2000q-vpx-board phytium/e2000s-demo-board"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_DEFCONFIG="e2000"

5
configs/phytium_e2000_debian_desktop_defconfig

@ -35,11 +35,8 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://gitee.com/phytium_embedded/phytium-linux-kernel.git"
# kernel 4.19
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="2bc82f364da6e5d815219b3d670071245770fbaf"
# kernel 5.10
#BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="f0cc7d6de6976f4b2b88d425a91878d948106f80"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="f0cc7d6de6976f4b2b88d425a91878d948106f80"
BR2_LINUX_KERNEL_INTREE_DTS_NAME="phytium/e2000d-demo-board phytium/e2000d-miniitx-board phytium/e2000d-power-board phytium/e2000q-come-board phytium/e2000q-demo-board phytium/e2000q-edu-board phytium/e2000q-hanwei-board phytium/e2000q-miniitx-board phytium/e2000q-vpx-board phytium/e2000s-demo-board"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_DEFCONFIG="e2000"

6
configs/phytium_e2000_defconfig

@ -10,11 +10,8 @@ BR2_ROOTFS_OVERLAY="board/phytium/common/busybox_init_overlay"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://gitee.com/phytium_embedded/phytium-linux-kernel.git"
# kernel 4.19
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="2bc82f364da6e5d815219b3d670071245770fbaf"
# kernel 5.10
#BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="f0cc7d6de6976f4b2b88d425a91878d948106f80"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="f0cc7d6de6976f4b2b88d425a91878d948106f80"
BR2_LINUX_KERNEL_DEFCONFIG="e2000"
BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="Image"
@ -63,3 +60,4 @@ BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_MTOOLS=y
BR2_PACKAGE_VPU_LIB=y
BR2_PACKAGE_VPU_LIB_CPU_MODEL="e2000"
BR2_PACKAGE_IGH_ETHERCAT=y

5
configs/phytium_e2000_ubuntu_defconfig

@ -35,11 +35,8 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://gitee.com/phytium_embedded/phytium-linux-kernel.git"
# kernel 4.19
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="2bc82f364da6e5d815219b3d670071245770fbaf"
# kernel 5.10
#BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="f0cc7d6de6976f4b2b88d425a91878d948106f80"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="f0cc7d6de6976f4b2b88d425a91878d948106f80"
BR2_LINUX_KERNEL_INTREE_DTS_NAME="phytium/e2000d-demo-board phytium/e2000d-miniitx-board phytium/e2000d-power-board phytium/e2000q-come-board phytium/e2000q-demo-board phytium/e2000q-edu-board phytium/e2000q-hanwei-board phytium/e2000q-miniitx-board phytium/e2000q-vpx-board phytium/e2000s-demo-board"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_DEFCONFIG="e2000"

5
configs/phytium_e2000_ubuntu_desktop_defconfig

@ -35,11 +35,8 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://gitee.com/phytium_embedded/phytium-linux-kernel.git"
# kernel 4.19
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="2bc82f364da6e5d815219b3d670071245770fbaf"
# kernel 5.10
#BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="f0cc7d6de6976f4b2b88d425a91878d948106f80"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="f0cc7d6de6976f4b2b88d425a91878d948106f80"
BR2_LINUX_KERNEL_INTREE_DTS_NAME="phytium/e2000d-demo-board phytium/e2000d-miniitx-board phytium/e2000d-power-board phytium/e2000q-come-board phytium/e2000q-demo-board phytium/e2000q-edu-board phytium/e2000q-hanwei-board phytium/e2000q-miniitx-board phytium/e2000q-vpx-board phytium/e2000s-demo-board"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_DEFCONFIG="e2000"

4
configs/phytium_e2000_xenomai_defconfig

@ -35,8 +35,8 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="ssh://git@gitee.com:22/phytium_embedded/linux-kernel-xenomai.git"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="cdc5c82a6745397d02e9d28e5cf03c1ceb798550"
BR2_LINUX_KERNEL_INTREE_DTS_NAME="phytium/e2000q-miniITX phytium/e2000q-demo-ddr4 phytium/e2000d-demo-ddr4 phytium/e2000s-demo-ddr4"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="24f65f47f91d78893b2162b12536b04c5404e9aa"
BR2_LINUX_KERNEL_INTREE_DTS_NAME="phytium/e2000d-demo-board phytium/e2000d-miniitx-board phytium/e2000d-power-board phytium/e2000q-come-board phytium/e2000q-demo-board phytium/e2000q-edu-board phytium/e2000q-hanwei-board phytium/e2000q-miniitx-board phytium/e2000q-vpx-board phytium/e2000s-demo-board"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_DEFCONFIG="e2000"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(LINUX_DIR)/arch/arm64/configs/cobalt.config"

3
package/ffmpeg/ffmpeg.mk

@ -19,7 +19,7 @@ endif
FFMPEG_CPE_ID_VENDOR = ffmpeg
FFMPEG_CONF_OPTS = \
--prefix=/usr \
--prefix=/usr/local \
--enable-avfilter \
--disable-version3 \
--enable-logging \
@ -576,7 +576,6 @@ FFMPEG_POST_INSTALL_TARGET_HOOKS += FFMPEG_REMOVE_EXAMPLE_SRC_FILES
define FFMPEG_INSTALL_TARGET_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install DESTDIR=$(TARGET_DIR)
cp $(TARGET_DIR)/usr/lib/libavcodec.so.58.54.100 $(TARGET_DIR)/usr/lib/aarch64-linux-gnu
endef
$(eval $(autotools-package))

5
package/igh-ethercat/igh-ethercat.hash

@ -1,5 +0,0 @@
# From http://etherlab.org/download/ethercat/ethercat-1.5.2.tar.bz2.md5
md5 6b4001f8d975865d74a0b108b3bdda3d ethercat-1.5.2.tar.bz2
# Locally computed
sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c COPYING
sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LESSER

17
package/igh-ethercat/igh-ethercat.mk

@ -4,11 +4,12 @@
#
################################################################################
IGH_ETHERCAT_VERSION = 1.5.2
IGH_ETHERCAT_SITE = http://etherlab.org/download/ethercat
IGH_ETHERCAT_SOURCE = ethercat-$(IGH_ETHERCAT_VERSION).tar.bz2
IGH_ETHERCAT_LICENSE = GPL-2.0 (IgH EtherCAT master), LGPL-2.1 (libraries)
IGH_ETHERCAT_LICENSE_FILES = COPYING COPYING.LESSER
IGH_ETHERCAT_VERSION = bec5f529701a07d0da2730c94e75a777e07eefe0
IGH_ETHERCAT_SITE = https://gitee.com/phytium_embedded/ether-cat.git
IGH_ETHERCAT_INSTALL_IMAGES = YES
IGH_ETHERCAT_SITE_METHOD = git
IGH_ETHERCAT_AUTORECONF = YES
IGH_ETHERCAT_INSTALL_STAGING = YES
@ -21,5 +22,11 @@ IGH_ETHERCAT_CONF_OPTS += $(if $(BR2_PACKAGE_IGH_ETHERCAT_E1000),--enable-e1000,
IGH_ETHERCAT_CONF_OPTS += $(if $(BR2_PACKAGE_IGH_ETHERCAT_E1000E),--enable-e1000e,--disable-e1000e)
IGH_ETHERCAT_CONF_OPTS += $(if $(BR2_PACKAGE_IGH_ETHERCAT_R8169),--enable-r8169,--disable-r8169)
define IGH_ETHERCAT_CREATE_CHANGELOG
touch $(@D)/ChangeLog
endef
IGH_ETHERCAT_POST_PATCH_HOOKS += IGH_ETHERCAT_CREATE_CHANGELOG
$(eval $(kernel-module))
$(eval $(autotools-package))

2
package/vpu-lib/vpu-lib.mk

@ -6,7 +6,7 @@
VPU_LIB_VERSION = a3109a35b230a57d860bce66d4369a74c56f12a8
VPU_LIB_SITE = https://gitee.com/phytium_embedded/vpu-lib.git
VPU_LIB_INSTALL_IMAGES = YES
VPU_LIB_INSTALL_TARGET = YES
VPU_LIB_SITE_METHOD = git
VPU_LIB_DEPENDENCIES = linux

3
toolchain/toolchain-external/toolchain-external-arm-aarch64/Config.in

@ -1,11 +1,12 @@
config BR2_TOOLCHAIN_EXTERNAL_ARM_AARCH64
bool "Arm AArch64 2021.07"
bool "Arm AArch64 2020.11"
depends on BR2_aarch64
depends on BR2_HOSTARCH = "x86_64"
depends on !BR2_STATIC_LIBS
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
select BR2_TOOLCHAIN_HAS_SSP
select BR2_INSTALL_LIBSTDCPP
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20
select BR2_TOOLCHAIN_GCC_AT_LEAST_10
select BR2_TOOLCHAIN_HAS_FORTRAN

6
toolchain/toolchain-external/toolchain-external-arm-aarch64/toolchain-external-arm-aarch64.hash

@ -1,4 +1,4 @@
# From https://developer.arm.com/-/media/Files/downloads/gnu-a/10.3-2021.07/binrel/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz.asc
md5 07bbe2b5277b75ba36a924e9136366a4 gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz
# From https://developer.arm.com/-/media/Files/downloads/gnu-a/10.2-2020.11/binrel/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz.asc
md5 d6e6676d31c51405ae0fc7687ef0a224 gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz
# locally calculated
sha256 1e33d53dea59c8de823bbdfe0798280bdcd138636c7060da9d77a97ded095a84 gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz
sha256 fe7f72330216612de44891ebe5e228eed7c0c051ac090c395b2b33115c6f5408 gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz

6
toolchain/toolchain-external/toolchain-external-arm-aarch64/toolchain-external-arm-aarch64.mk

@ -4,9 +4,9 @@
#
################################################################################
TOOLCHAIN_EXTERNAL_ARM_AARCH64_VERSION = 2021.07
TOOLCHAIN_EXTERNAL_ARM_AARCH64_SITE = https://developer.arm.com/-/media/Files/downloads/gnu-a/10.3-$(TOOLCHAIN_EXTERNAL_ARM_AARCH64_VERSION)/binrel
TOOLCHAIN_EXTERNAL_ARM_AARCH64_VERSION = 2020.11
TOOLCHAIN_EXTERNAL_ARM_AARCH64_SITE = https://developer.arm.com/-/media/Files/downloads/gnu-a/10.2-$(TOOLCHAIN_EXTERNAL_ARM_AARCH64_VERSION)/binrel
TOOLCHAIN_EXTERNAL_ARM_AARCH64_SOURCE = gcc-arm-10.3-$(TOOLCHAIN_EXTERNAL_ARM_AARCH64_VERSION)-x86_64-aarch64-none-linux-gnu.tar.xz
TOOLCHAIN_EXTERNAL_ARM_AARCH64_SOURCE = gcc-arm-10.2-$(TOOLCHAIN_EXTERNAL_ARM_AARCH64_VERSION)-x86_64-aarch64-none-linux-gnu.tar.xz
$(eval $(toolchain-external-package))

Loading…
Cancel
Save