大家好,该项目由泰晓科技技术社区报送到 “暑期2020” 开源活动,详情请查阅:“开源软件供应链点亮计划——暑期2020”项目提案
Linux Lab 是一套 Linux 内核开发环境,已经支持 7 大处理器架构,16 款虚拟开发板。
当前最新版本是 v0.4-rc3,我们计划在 v0.6 左右完成镜像的升级,从当前 Ubuntu 14.04 直接升级到 Ubuntu 20.04,主要目标是确保开发更多的更新的软件,比如说当前 Ubuntu 14.04 已经没法正常编译 Qemu v4.2。
这一过程当中一方面是需要兼容当前的功能,另外一方面是引入更多的工具,再一方面是控制整个镜像的大小,确保下载效率。
所有报名的同学需要做如下准备工作:
能够在自己的电脑上运行和启动 Linux Lab
熟悉 Linux Lab 基本使用
熟悉 Linux Lab 工作原理
当前阶段是联系导师(@robin329 robin@tinylab.org; @falcon falcon@tinylab.org),跟导师讨论制定项目实施计划并确定技术方案,请阅读这部分:学生如何报名
学生可在 5 月 15 日 至 6 月 20 日之间,针对感兴趣的项目与社区指定的导师沟通项目细节和方案,完善项目申请书。
学生在完成项目申请书后,可于 2020 年 6 月 1 日 至 6 月 20 日 期间参考 项目申请模板 中的要求发送申请邮件给组委会邮箱 summer2020@iscas.ac.cn,提交申请材料报名。组委会将收到的申请审核后交给社区选择承担项目的学生,并于 6 月 30 日公布中选项目及承担学生的名单。
社区会根据学生提交的项目申请书(包括项目计划、项目实现方案等)、学生的简历,综合考虑选择中选学生。每个项目只能有一个学生承担。
强烈建议学生在申请之前要积极与社区导师沟通项目细节和方案,项目申请书是选择标准的重点。
Ubuntu toolchain support:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
Ubuntu 20.04 / focal 下支持的交叉工具链已经非常全:
gcc-10-aarch64-linux-gnu
gcc-10-alpha-linux-gnu
gcc-10-arm-linux-gnueabi
gcc-10-arm-linux-gnueabihf
gcc-10-hppa-linux-gnu
gcc-10-hppa64-linux-gnu
gcc-10-i686-linux-gnu
gcc-10-m68k-linux-gnu
gcc-10-mips-linux-gnu
gcc-10-mips64-linux-gnuabi64
gcc-10-mips64el-linux-gnuabi64
gcc-10-mipsel-linux-gnu
gcc-10-mipsisa32r6-linux-gnu
gcc-10-mipsisa32r6el-linux-gnu
gcc-10-mipsisa64r6-linux-gnuabi64
gcc-10-mipsisa64r6el-linux-gnuabi64
gcc-10-powerpc-linux-gnu
gcc-10-powerpc64-linux-gnu
gcc-10-powerpc64le-linux-gnu
gcc-10-riscv64-linux-gnu
gcc-10-s390x-linux-gnu
gcc-10-sh4-linux-gnu
gcc-10-sparc64-linux-gnu
gcc-10-x86-64-linux-gnux32
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
作为对比,Debian 10支持的工具链如下:
gcc-8-aarch64-linux-gnu - GNU C compiler
gcc-8-alpha-linux-gnu - GNU C compiler
gcc-8-arm-linux-gnueabi - GNU C compiler
gcc-8-arm-linux-gnueabihf - GNU C compiler
gcc-8-hppa-linux-gnu - GNU C compiler
gcc-8-hppa64-linux-gnu - GNU C compiler (cross compiler for hppa64)
gcc-8-i686-linux-gnu - GNU C compiler
gcc-8-m68k-linux-gnu - GNU C compiler
gcc-8-mips-linux-gnu - GNU C compiler
gcc-8-mips64-linux-gnuabi64 - GNU C compiler
gcc-8-mips64el-linux-gnuabi64 - GNU C compiler
gcc-8-mipsel-linux-gnu - GNU C compiler
gcc-8-mipsisa32r6-linux-gnu - GNU C compiler
gcc-8-mipsisa32r6el-linux-gnu - GNU C compiler
gcc-8-mipsisa64r6-linux-gnuabi64 - GNU C compiler
gcc-8-mipsisa64r6el-linux-gnuabi64 - GNU C compiler
gcc-8-offload-nvptx - GCC offloading compiler to NVPTX
gcc-8-powerpc-linux-gnu - GNU C compiler
gcc-8-powerpc-linux-gnuspe - GNU C compiler
gcc-8-powerpc64-linux-gnu - GNU C compiler
gcc-8-powerpc64le-linux-gnu - GNU C compiler
gcc-8-riscv64-linux-gnu - GNU C compiler
gcc-8-s390x-linux-gnu - GNU C compiler
gcc-8-sh4-linux-gnu - GNU C compiler
gcc-8-sparc64-linux-gnu - GNU C compiler
gcc-8-x86-64-linux-gnux32 - GNU C compiler
如何在 Ubuntu 20.04 安装历史版本的编译器,包括交叉编译器,大部分历史编译器都能安装了,唯独 mipsel 的老版本编译器 Ubuntu 之前没提供:
$ cp /etc/apt/sources.list /etc/apt/sources.list.bak
$ sed -i -e "s%archive.ubuntu.com%mirrors.aliyun.com%g;s%focal%trusty%g" /etc/apt/sources.list
$ apt-get -y update
// install the old gcc & cross gcc toolchains
$ apt-cache search gcc | grep arm
$ cp /etc/apt/sources.list.bak /etc/apt/sources.list
当前源里头能找到的最早版本是 precise,其次是 trusty (12.04,推荐),详细的可以看看这里:
更多工具链可参考,通过下述链接2可以找到老版本的 mipsel toolchain:
这里可以找到 2016 版本的 mipsel toolchain:
下述链接的 MIPS toolchain 过大,不适合直接导入镜像:https://codescape.mips.com/components/toolchain/2019.09-02/downloads.html
新的镜像base已经提交,下载:
$ docker pull tinylab/linux-lab:next
运行:
$ cd /path/to/cloud-lab
$ git checkout next
$ git pull
$ tools/docker/rerun linux-lab
当前镜像还需要解决不少兼容性问题,新问题将在这里持续更新:
新的桌面菜单会弹出来一个提示框,需要右键勾选一下 Trust this Executables,需要避免弹出这个提示框
之前 Linux Lab 中,部分老的内核,通过 GCC[LINUX_vx.y.z] = 4.4 这样指定了,但是新环境不一定有 4.4 了,需要迁移到新版的 4.9 和 9,需要同时确保在老环境也能用。
可以支持类似这样的语法,这个语法现在就是支持的,只需要验证并加上即可:
GCC[OS_trusty] = 4.4
GCC[OS_focal] = 4.9
GCC[LINUX_vx.y.z] = $(call __v,GCC,OS)
验证过程中,可能需要加内核 patch,加到对应板子 bsp 的 patch/kernel/<版本>/ 下即可。
另外一种兼容性设想,就是简单加:
GCC[LINUX_vx.y.z] = 4.4 4.9
然后 Linux Lab 自动去匹配,如果环境有就从左到右选其中第一个。
登录 后才可以发表评论