新手必看:Linux Lab环境搭建避坑指南(附Docker加速配置)

【免费下载链接】linux-lab Docker/Qemu Based Linux Kernel Learning, Development and Testing Environment; New Linux ELF Video Course from this project author: https://www.cctalk.com/m/group/88089283 【免费下载链接】linux-lab 项目地址: https://gitcode.com/gh_mirrors/li/linux-lab

Linux Lab是一个基于Docker和Qemu的Linux内核学习、开发和测试环境,它支持多种架构和开发板,让开发者能够轻松构建和测试Linux内核。本文将详细介绍Linux Lab的环境搭建步骤,帮助新手避开常见的坑,并提供Docker加速配置方法,让你的开发体验更加顺畅。

Linux Lab运行界面

一、Linux Lab简介

Linux Lab是一个功能强大的Linux内核学习和开发平台,它提供了以下核心功能:

  • 多架构支持:支持7种主要架构,20多种流行开发板
  • 组件丰富:包含Uboot、Linux内核、Buildroot、Qemu等组件
  • 预构建资源:所有组件都有预构建版本,节省编译时间
  • 多种访问方式:支持本地或远程访问,包括CLI和GUI
  • 网络支持:内置桥接网络,每个开发板都有独立网络(除Raspi3外)
  • 调试功能:支持通过make debug命令进行调试

二、环境准备

2.1 硬件和软件要求

为了确保Linux Lab能够正常运行,建议满足以下配置要求:

硬件 要求 描述
处理器 X86_64, > 1.5GHz 使用虚拟机时必须选择64位X86
硬盘 >= 50G 系统(25G)、Docker镜像(~5G)、Linux Lab(20G)
内存 >= 4G 低于4G可能会出现不可预测的异常

如果经常使用,建议将硬盘容量增加到100G~200G,内存增加到8G,CPU核心数4个及以上。

2.2 操作系统支持

Linux Lab可以在以下操作系统上运行:

  • Linux(所有支持Docker的发行版)
  • Mac OSX
  • Windows 10(需要Docker Desktop)
  • 旧版Windows(需要Docker Toolbox)

三、Docker安装与配置

3.1 安装Docker

Docker是Linux Lab运行的基础,首先需要安装Docker:

安装完成后,确保以下命令可以正常运行(无需sudo):

docker run hello-world

3.2 Docker加速配置

在中国,为了提高Docker镜像下载速度,必须配置国内镜像源。推荐使用以下镜像源:

  • 阿里云Docker镜像:需要注册账号,提供个人专属加速地址
  • 中科大Docker镜像:教育网用户推荐使用

对于使用systemd的系统(如Ubuntu 16.04及以上版本),修改/etc/docker/daemon.json文件:

{
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

配置完成后,重启Docker服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

验证配置是否生效:

docker info | grep -A1 -i Mirrors

如果输出包含配置的镜像地址,则说明配置成功。

3.3 Ubuntu系统Docker安装详细步骤

对于Ubuntu用户,以下是详细的Docker安装步骤:

  1. 卸载旧版本
sudo apt-get remove docker docker-engine docker.io
  1. 安装依赖
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
  1. 添加软件源的GPG密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
  1. 添加Docker软件源
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
  1. 安装Docker CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
  1. 将当前用户添加到docker组
sudo usermod -aG docker $USER

注销并重新登录,使配置生效。

四、Linux Lab安装

4.1 下载Linux Lab

首先,选择一个工作目录,例如~/Develop

mkdir ~/Develop
cd ~/Develop

然后克隆Linux Lab仓库:

git clone https://gitcode.com/gh_mirrors/li/linux-lab
cd linux-lab

4.2 运行Linux Lab

启动并登录Linux Lab:

tools/docker/run linux-lab

登录方法有多种选择:

登录方式 描述 默认用户 位置
bash docker bash Ubuntu 本地
ssh 普通ssh Ubuntu 本地
vnc 普通vnc Ubuntu 本地+VNC客户端
webvnc web桌面 Ubuntu 任何地方通过互联网
webssh web ssh Ubuntu 任何地方通过互联网

推荐使用webvnc方式登录:

tools/docker/webvnc

这将自动打开浏览器,进入Linux Lab的图形界面。

4.3 快速启动开发板

进入Linux Lab环境后,切换到Linux Lab目录:

cd /labs/linux-lab

启动默认的vexpress-a9开发板:

make boot

使用root用户登录(无需密码):

Welcome to Linux Lab

linux-lab login: root

登录后,可以查看内核版本:

uname -a

关闭开发板:

poweroff

Linux Lab磁盘演示

五、常见问题与解决方案

5.1 Docker相关问题

5.1.1 Docker网络与局域网冲突

Cloud Lab默认使用172.20.0.0/16子网,如果与局域网冲突,可以修改子网:

tools/docker/rm-all
vim configs/linux-lab/docker/subnet
# 修改为其他子网,如172.23.0.0/16
tools/docker/run linux-lab
5.1.2 无法在本地主机运行Linux Lab

Linux Lab依赖Cloud Lab管理的完整Docker环境,不支持直接在本地主机运行。请始终通过Docker方式启动。

5.1.3 无需sudo运行Docker命令

确保当前用户已添加到docker组:

sudo usermod -aG docker $USER
newgrp docker

如果提示"group 'docker' does not exist",请先创建docker组:

sudo groupadd docker

5.2 Linux Lab使用问题

5.2.1 开发板无法关机

部分开发板(如mipsel/malta、mipsel/ls232等)在运行poweroffreboot命令时可能会挂起。此时可以使用以下方法退出QEMU:

  • 串行端口控制台:CTRL+a x
  • 基于Curses的图形界面:ESC+2 quitALT+2 quit
  • X图形界面:CTRL+ALT+2 quit
  • 通用方法:pkill qemu
5.2.2 调整屏幕大小

可以通过以下方法调整Linux Lab的屏幕大小:

  1. 自动缩放:在noVNC网页左侧边栏,断开连接,进入"设置",将"缩放模式"设置为"本地缩放",然后重新连接。

  2. 手动设置

# 查看可用的屏幕尺寸
xrandr --current

# 设置指定的屏幕尺寸
tools/docker/resize 1280x1024
5.2.3 VNC登录失败

如果VNC登录失败,可以尝试以下步骤:

  1. 检查容器状态:
docker ps -a

如果状态为"Exit",重新启动容器:

tools/docker/run linux-lab
  1. 查看日志:
tools/docker/logs linux-lab
  1. 清理并重新运行:
tools/docker/clean linux-lab
tools/docker/rerun linux-lab

六、总结

通过本文的指南,你应该已经成功搭建了Linux Lab环境,并了解了如何解决常见的问题。Linux Lab提供了一个强大的Linux内核学习和开发平台,通过Docker和Qemu技术,让内核开发变得更加简单和高效。

如果你在使用过程中遇到其他问题,可以参考项目的官方文档或加入社区寻求帮助。祝你在Linux内核学习和开发的道路上取得成功!

【免费下载链接】linux-lab Docker/Qemu Based Linux Kernel Learning, Development and Testing Environment; New Linux ELF Video Course from this project author: https://www.cctalk.com/m/group/88089283 【免费下载链接】linux-lab 项目地址: https://gitcode.com/gh_mirrors/li/linux-lab

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐