当前位置: 首页 > 工具软件 > Linux Lab > 使用案例 >

Linux lab 新手使用说明

孟安民
2023-12-01

安装 Docker

选择工作目录

对于 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 添加一块新的开发板,详情参见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

编译uboot

从当前支持 U-boot 的板子:versatilepbvexpress-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

使用 BOOTDEVROOTDEV 引导,缺省采用 flash 方式:

$ make boot U=1 # 执行完后,系统即启动

执行清理,更新 ramdisk, dtb 和 uImage:

$ make uboot-images-clean
$ make uboot-clean

保存 uboot 镜像和配置:

$ make uboot-save
$ make uboot-saveconfig

FAQ

1. 关机或重启主机后如何恢复运行 Linux Lab

在关机或者重启主机(或虚拟机)系统后,通常可以通过点击桌面的 “Linux Lab” 图标恢复
运行,或者通过命令行像第一次运行那样:

$ tools/docker/run linux -lab

此时在选择登录方式即可,运行最近一次的开发板环境。

2. 登录 WEB 界面时超时或报错

$ 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 #重新初始化开发板实验环境
 类似资料: