配置阿里云加速器,不配置的链接超时,下载失败。 阿里云Docker加速器的使用配置说明。
在运行 Linux Lab 之前,请确保无需 sudo 权限也可以正常运行以下命令:
$ docker run hello -world
对于 Linux 用户,可以简单地在 ~/Downloads
或 ~/Documents
下选择一个工作路径。
$ git clone https://gitee.com/tinylab/cloud -lab.git
$ tools/docker/run # 加载镜像,拉起一个 Linux Lab 容器
通过 Web 浏览器直接登录实验环境:使用浏览器登录,会遇到粘贴板,删除键长按失效的情况
$ tools/docker/ linux-lab
其它登录方式
$ tools/docker/webvnc linux-lab # The same as tools/docker/vnc
$ tools/docker/webssh linux-lab
$ tools/docker/ssh linux-lab
$ tools/docker/bash linux-lab
本节介绍如何从头开始为 Linux Lab 添加一块新的开发板,详情参见Linux lab官方文档。
配置开发板
每块开发板都有特定的配置,部分配置是可以根据需要进行修改的,比如说内存大小、内核版本、文件系统版本、QEMU 版本,以及其他外设配置,比如串口、网络等。
配置方法很简单,参考现有的板级配置(boards/<BOARD>/Makefile
)修改即可,以下命令会通过 vim 调出当前开发板的本地配置文件(boards/<BOARD>/.labconfig
):
$ make local-edit
建议不要一次性做太大的调整,通常只建议修改内核版本,这样可直接用如下命令达到:
$ make list-linux
v4.12 v4.5.5 v5.0.10 [v5.1]
$ make local-config LINUX=v5.0.10
$ make list-linux
v4.12 v4.5.5 [v5.0.10] v5.1
v0.3 以及之后的版本默认增加了目标依赖支持,所以,如果想编译内核,直接:
$ make kernel-build # 源码下载完成后会出现 补丁集已被应用,需要使用 make kernel-cleanup 清理
或
$ make build kernel
它将自动完成所有需要的工作,当然,依然可以跟以前一样手动指定某个目标运行。
编译外部内核模块(类似编译内部模块):
$ make module m=hello
或
$ make kernel x=$PWD/modules/hello/hello.ko
从当前支持 U-boot 的板子:versatilepb
和 vexpress-a9
中选择一款:
$ make BOARD=vexpress-a9
下载 Uboot:
$ make uboot-source
检出一个特定的版本(版本号在 boards/<BOARD>/Makefile
中通过 UBOOT 指定):
$ make uboot-checkout
配置 U-boot:
$ make uboot-defconfig
$ make uboot-menuconfig
编译 U-boot:
$ make uboot
使用 BOOTDEV
和 ROOTDEV
引导,缺省采用 flash
方式:
$ make boot U=1 # 执行完后,系统即启动
执行清理,更新 ramdisk, dtb 和 uImage:
$ make uboot-images-clean
$ make uboot-clean
保存 uboot 镜像和配置:
$ make uboot-save
$ make uboot-saveconfig
在关机或者重启主机(或虚拟机)系统后,通常可以通过点击桌面的 “Linux Lab” 图标恢复
运行,或者通过命令行像第一次运行那样:
$ tools/docker/run linux -lab
此时在选择登录方式即可,运行最近一次的开发板环境。
$ tools/docker/run linux -lab
如果无法启动,请检查并分析启动日志
$ tools/docker/logs linux -lab
如果日志正常,那说明之前保存的帐号和密码可能由于某次异常失效了,需要参考如下步骤重
新生成新的帐号和密码。
$ tools/docker/commit linux -lab #固化容器,保存最近在开发板上创建的文件,不需要可跳过。
$ tools/docker/clean linux -lab #清理开发板实验环境
$ tools/docker/rerun linux -lab #重新初始化开发板实验环境