开放代码社区 › linux-lab

linux-lab

基础设施与运维Shell

订阅公众号,关注项目状态: 1. Linux Lab 概览 1.3.1 开放教程 1.3.2 付费课程 1.5.1 项目起源 1.5.2 项目缘由 1.5.3 项目诞生 1.6.1 v0.1 @ 2019.06.28 1.6.2 v0.2 @ 2019.10.30 1.6.3 v0.3 @ 2020.03.12 1.6.4 v0.4 @ 2020.06.01 1.6.5 v0.5 @ 2020.09.12 1.6.6 v0.6 @ 2021.02.06 1.6.7 v0.7 @ 2021.06.03 1.6.8 v0.8 @ 2021.10.13 1.6.9 v0.9 @ 2022.01.13

AI/机器学习Web后端前端工具部署/运维
作者:用户6868语言:Shell更新:2026-10-27
仓库地址
https://gitee.com/tinylab/linux-lab.git

前往原仓库

README

<!-- metadata start --><!--
% Linux Lab v1.4 中文手册
% [泰晓科技 | Tinylab.org][077]
% \today
--><!-- metadata end -->

![Linux Lab Logo](https://web-code-img.oss-cn-shanghai.aliyuncs.com/readme/93f8c6ee5126251ddbd3241c.jpg)

**订阅公众号,关注项目状态:**

![扫码订阅“泰晓科技”公众号](https://web-code-img.oss-cn-shanghai.aliyuncs.com/readme/c48288db6b40ad82f2420398.jpg)

<!-- toc start -->

# 目录

- [1. Linux Lab 概览](#1-linux-lab-概览)
  - [1.1 项目简介](#11-项目简介)
  - [1.2 项目主页](#12-项目主页)
  - [1.3 演示视频](#13-演示视频)
    - [1.3.1 开放教程](#131-开放教程)
    - [1.3.2 付费课程](#132-付费课程)
  - [1.4 项目功能](#14-项目功能)
  - [1.5 项目历史](#15-项目历史)
    - [1.5.1 项目起源](#151-项目起源)
    - [1.5.2 项目缘由](#152-项目缘由)
    - [1.5.3 项目诞生](#153-项目诞生)
  - [1.6 项目变更](#16-项目变更)
    - [1.6.1 v0.1 @ 2019.06.28](#161-v01--20190628)
    - [1.6.2 v0.2 @ 2019.10.30](#162-v02--20191030)
    - [1.6.3 v0.3 @ 2020.03.12](#163-v03--20200312)
    - [1.6.4 v0.4 @ 2020.06.01](#164-v04--20200601)
    - [1.6.5 v0.5 @ 2020.09.12](#165-v05--20200912)
    - [1.6.6 v0.6 @ 2021.02.06](#166-v06--20210206)
    - [1.6.7 v0.7 @ 2021.06.03](#167-v07--20210603)
    - [1.6.8 v0.8 @ 2021.10.13](#168-v08--20211013)
    - [1.6.9 v0.9 @ 2022.01.13](#169-v09--20220113)
    - [1.6.10 v1.0 @ 2022.06.16](#1610-v10--20220616)
    - [1.6.11 v1.1 @ 2022.11.09](#1611-v11--20221109)
    - [1.6.12 v1.2 @ 2023.07.09](#1612-v12--20230709)
    - [1.6.13 v1.3 @ 2024.03.17](#1613-v13--20240317)
    - [1.6.14 v1.4 @ 2024.08.25](#1614-v14--20240825)
- [2. Linux Lab 安装](#2-linux-lab-安装)
  - [2.1 软硬件要求](#21-软硬件要求)
  - [2.2 安装 Docker](#22-安装-docker)
  - [2.3 选择工作目录](#23-选择工作目录)
  - [2.4 切换到普通用户帐号](#24-切换到普通用户帐号)
  - [2.5 下载实验环境](#25-下载实验环境)
  - [2.6 运行并登录 Linux Lab](#26-运行并登录-linux-lab)
  - [2.7 更新实验环境并重新运行](#27-更新实验环境并重新运行)
  - [2.8 快速上手:启动一个开发板](#28-快速上手:启动一个开发板)
- [3. Linux Lab 入门](#3-linux-lab-入门)
  - [3.1 使用开发板](#31-使用开发板)
    - [3.1.1 列出支持的开发板](#311-列出支持的开发板)
    - [3.1.2 选择一个开发板](#312-选择一个开发板)
      - [3.1.2.1 真实开发板](#3121-真实开发板)
      - [3.1.2.2 虚拟开发板](#3122-虚拟开发板)
      - [3.1.2.3 如何选购](#3123-如何选购)
    - [3.1.3 以插件方式使用](#313-以插件方式使用)
    - [3.1.4 配置开发板](#314-配置开发板)
  - [3.2 一键自动编译](#32-一键自动编译)
  - [3.3 详细步骤分解](#33-详细步骤分解)
    - [3.3.1 下载](#331-下载)
    - [3.3.2 检出](#332-检出)
    - [3.3.3 打补丁](#333-打补丁)
    - [3.3.4 配置](#334-配置)
      - [3.3.4.1 缺省配置](#3341-缺省配置)
      - [3.3.4.2 手动配置](#3342-手动配置)
      - [3.3.4.3 使用旧的缺省配置](#3343-使用旧的缺省配置)
    - [3.3.5 编译](#335-编译)
    - [3.3.6 保存](#336-保存)
    - [3.3.7 启动](#337-启动)
- [4. Linux Lab 进阶](#4-linux-lab-进阶)
  - [4.1 Linux 内核](#41-linux-内核)
    - [4.1.1 非交互方式配置](#411-非交互方式配置)
    - [4.1.2 使用内核模块](#412-使用内核模块)
    - [4.1.3 使用内核特性](#413-使用内核特性)
      - [4.1.3.1 列出当前支持的 feature](#4131-列出当前支持的-feature)
      - [4.1.3.2 启用内核模块支持](#4132-启用内核模块支持)
      - [4.1.3.3 启用 rust feature](#4133-启用-rust-feature)
      - [4.1.3.4 启用 kft feature](#4134-启用-kft-feature)
      - [4.1.3.5 启用 rt feature](#4135-启用-rt-feature)
      - [4.1.3.6 持久化与清理 feature 设定](#4136-持久化与清理-feature-设定)
    - [4.1.4 新建开发分支](#414-新建开发分支)
    - [4.1.5 启用独立内核仓库](#415-启用独立内核仓库)
  - [4.2 U-Boot 引导程序](#42-u-boot-引导程序)
  - [4.3 QEMU 模拟器](#43-qemu-模拟器)
  - [4.4 Toolchain 工具链](#44-toolchain-工具链)
  - [4.5 Rootfs 文件系统](#45-rootfs-文件系统)
  - [4.6 Linux 与 U-Boot 调试](#46-linux-与-u-boot-调试)
    - [4.6.1 调试 Linux](#461-调试-linux)
    - [4.6.2 调试 U-Boot](#462-调试-u-boot)
  - [4.7 自动化测试](#47-自动化测试)
  - [4.8 文件共享](#48-文件共享)
    - [4.8.1 在 rootfs 中安装文件](#481-在-rootfs-中安装文件)
    - [4.8.2 采用 NFS 共享文件](#482-采用-nfs-共享文件)
    - [4.8.3 通过 tftp 传输文件](#483-通过-tftp-传输文件)
    - [4.8.4 通过 9p virtio 共享文件](#484-通过-9p-virtio-共享文件)
  - [4.9 学习汇编](#49-学习汇编)
  - [4.10 学习 C 语言](#410-学习-c-语言)
    - [4.10.1 本地编译和运行](#4101-本地编译和运行)
    - [4.10.2 交叉编译和运行](#4102-交叉编译和运行)
  - [4.11 运行任意的 make 目标](#411-运行任意的-make-目标)
  - [4.12 提升内核开发效率](#412-提升内核开发效率)
    - [4.12.1 编译加速并减少磁盘损耗](#4121-编译加速并减少磁盘损耗)
    - [4.12.2 ONESHOT 模式](#4122-oneshot-模式)
    - [4.12.3 Nolibc 模式](#4123-nolibc-模式)
    - [4.12.4 Tiny 模式](#4124-tiny-模式)
  - [4.13 更多用法](#413-更多用法)
- [5. Linux Lab 开发](#5-linux-lab-开发)
  - [5.1 选择一个 QEMU 支持的开发板](#51-选择一个-qemu-支持的开发板)
  - [5.2 创建开发板的目录](#52-创建开发板的目录)
  - [5.3 从一个已经支持的开发板中复制一份 Makefile](#53-从一个已经支持的开发板中复制一份-makefile)
  - [5.4 从头开始配置变量](#54-从头开始配置变量)
  - [5.5 同时准备 configs 文件](#55-同时准备-configs-文件)
  - [5.6 选择 kernel,rootfs 和 U-Boot 的版本](#56-选择-kernelrootfs-和-u-boot-的版本)
  - [5.7 配置,编译和启动](#57-配置编译和启动)
  - [5.8 保存生成的镜像文件和配置文件](#58-保存生成的镜像文件和配置文件)
  - [5.9 上传所有工作](#59-上传所有工作)
- [6. 常见问题](#6-常见问题)
  - [6.1 Docker 相关](#61-docker-相关)
    - [6.1.1 docker 下载速度慢](#611-docker-下载速度慢)
    - [6.1.2 Docker 网络与 LAN 冲突](#612-docker-网络与-lan-冲突)
    - [6.1.3 本地主机不能运行 Linux Lab](#613-本地主机不能运行-linux-lab)
    - [6.1.4 非 root 无法运行 tools 命令](#614-非-root-无法运行-tools-命令)
    - [6.1.5 网络不通](#615-网络不通)
    - [6.1.6 Client.Timeout exceeded while waiting headers](#616-clienttimeout-exceeded-while-waiting-headers)
    - [6.1.7 关机或重启主机后如何恢复运行 Linux Lab](#617-关机或重启主机后如何恢复运行-linux-lab)
    - [6.1.8 the following directives are specified both as a flag and in the configuration file](#618-the-following-directives-are-specified-both-as-a-flag-and-in-the-configuration-file)
    - [6.1.9 pathspec FETCH_HEAD did not match any file known to git](#619-pathspec-fetch_head-did-not-match-any-file-known-to-git)
    - [6.1.10 Docker not work in Ubuntu 20.04](#6110-docker-not-work-in-ubuntu-2004)
    - [6.1.11 Error creating aufs mount](#6111-error-creating-aufs-mount)
  - [6.2 QEMU 相关](#62-qemu-相关)
    - [6.2.1 缺少 KVM 加速](#621-缺少-kvm-加速)
    - [6.2.2 Guest 关机或重启后挂住](#622-guest-关机或重启后挂住)
    - [6.2.3 如何退出 QEMU](#623-如何退出-qemu)
    - [6.2.4 Boot 时报缺少 sdl2 库](#624-boot-时报缺少-sdl2-库)
  - [6.3 环境相关](#63-环境相关)
    - [6.3.1 NFS 与 tftpboot 不工作](#631-nfs-与-tftpboot-不工作)
    - [6.3.2 在 VIM 中无法切换窗口](#632-在-vim-中无法切换窗口)
    - [6.3.3 长按 Backspace 不工作](#633-长按-backspace-不工作)
    - [6.3.4 如何快速切换中英文输入](#634-如何快速切换中英文输入)
    - [6.3.5 如何调节 Web 界面窗口的大小](#635-如何调节-web-界面窗口的大小)
    - [6.3.6 如何进入全屏模式](#636-如何进入全屏模式)
    - [6.3.7 如何录屏](#637-如何录屏)
    - [6.3.8 Web 界面无响应](#638-web-界面无响应)
    - [6.3.9 登录 WEB 界面时超时或报错](#63