如何搭建Linux内核实验环境

如何搭建Linux内核实验环境,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

成都创新互联服务项目包括平原网站建设、平原网站制作、平原网页制作以及平原网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,平原网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到平原省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

Linux 内核实验环境

可快速构建,支持 Docker, Qemu, Ubuntu, Mac OSX, Windows, Web

由 Wu Zhangjin 创建于 2016/06/19

评论 打赏

1 项目描述

该项目致力于快速构建一个基于 Qemu 的 Linux 内核开发环境。

  • 使用文档:README.md

  • 在线实验

    • 泰晓实验云台

2 相关文章

  • 基于 Docker 快速构建 Linux 0.11 实验环境

3 五分钟教程

3.1 准备

以 Ubuntu 和 Qemu 为例。其他 Linux 和 Mac OSX 系统请先安装 Docker CE。Windows 系统,请先下载并安装 Docker Toolbox。

安装完 docker 后如果想免 sudo 使用 linux lab,请务必把用户加入到 docker 用户组并重启系统。

 
  1. $ sudo usermod -aG docker $USER

由于 docker 镜像文件比较大,有 1G 左右,下载时请耐心等待。另外,为了提高下载速度,建议通过配置 docker 更换镜像库为本地区的,更换完记得重启 docker 服务。

 
  1. $ grep registry-mirror /etc/default/docker

  2. DOCKER_OPTS="$DOCKER_OPTS --registry-mirror=https://docker.mirrors.ustc.edu.cn"

  3. $ service docker restart

如果 docker 默认的网络环境跟本地的局域网环境地址冲突,请通过如下方式更新 docker 网络环境,并重启 docker 服务。

 
  1. $ grep bip /etc/default/docker

  2. DOCKER_OPTS="$DOCKER_OPTS --bip=10.66.0.10/16"

  3. $ service docker restart

如果上述改法不生效,请在类似 /lib/systemd/system/docker.service 这样的文件中修改后再重启 docker 服务。

 
  1. $ grep dockerd /lib/systemd/system/docker.service

  2. ExecStart=/usr/bin/dockerd -H fd:// --bip=10.66.0.10/16 --registry-mirror=https://docker.mirrors.ustc.edu.cn

  3. $ service docker restart

如果使用 Docker Toolbox,由于安装的默认 default 系统未提供桌面,所以需要先获取该系统的外网地址,即 eth2 网口的 IP 地址,然后在外部系统访问。

 
  1. $ ifconfig eth2 | grep 'inet addr' | tr -s ' ' | tr ':' ' ' | cut -d' ' -f4

  2. 192.168.99.100

如果是自己通过 Virtualbox 安装的 Linux 系统,即使有桌面,也想在外部系统访问时,则可以通过设置 ‘Network -> Adapter2 -> Host-only Adapter’ 来添加一个 eth2 网口设备。

请务必注意,通过 Docker Toolbox 安装的 default 系统中默认的 /root 目录仅仅挂载在内存中,关闭系统后数据会丢失,请千万不要用它来保存实验数据。可以使用另外的目录来存放,比如 /mnt/sda1,它是在 Virtualbox 上外挂的一个虚拟磁盘镜像文件,默认有 17.9 G,足够存放常见的实验环境。

3.2 工作目录

再次提醒,在 Linux 或者 Mac 系统,可以随便在 ~/Downloads 或者 ~/Documents 下找一处工作目录,然后进入,比如:

 
  1. $ cd ~/Documents

但是如果使用的是 Docker Toolbox 安装的 default 系统,该系统默认的工作目录为 /root,它仅仅挂载在内存中,因此在关闭系统后所有数据会丢失,所以需要换一处上面提到的 /mnt/sda1,它是外挂的一个磁盘镜像,关闭系统后数据会持续保存。

 
  1. $ cd /mnt/sda1

3.3 下载

 
  1. $ git clone https://github.com/tinyclub/cloud-lab.git

  2. $ cd cloud-lab && tools/docker/choose linux-lab

3.4 安装

 
  1. $ tools/docker/run # 加载镜像,拉起一个 Linux Lab 容器

3.5 快速尝鲜

执行 tools/docker/vnc 后会打开一个 VNC 网页,根据 console 提示输入密码登陆即可,之后打开桌面的 Linux Lab 控制台并执行:

 
  1. $ make boot

默认会启动一个 versatilepb 的 ARM 板子,要指定一块开发板,可以用:

 
  1. $ make list # 查看支持的列表

  2. $ make BOARD=malta # 这里选择一块 MIPS 板子:malta

  3. $ make boot

3.6 下载更多源码

 
  1. $ make core-source -j3 # 同时下载 linux-stable, qemu 和 buildroot

3.7 配置

 
  1. $ make root-defconfig # 配置根文件系统

  2. $ make kernel-checkout # 检出某个特定的分支(请确保做该操作前本地改动有备份)

  3. $ make kernel-defconfig # 配置内核

  4.  

  5. $ make root-menuconfig # 手动配置根文件系统

  6. $ make kernel-menuconfig # 手动配置内核

3.8 编译

 
  1. $ make root # 编译根文件系统,稍微有点慢,需要下载带 sysroot 的编译器

  2. $ make kernel # 编译内核,采用 Ubuntu 和 emdebian.org 提供的交叉编译器

3.9 保存所有改动

 
  1. $ make save # 保存新的配置和新产生的镜像

  2.  

  3. $ make kconfig-save # 保存到 boards/BOARD/

  4. $ make rconfig-save

  5.  

  6. $ make root-save # 保存到 prebuilt/

  7. $ make kernel-save

3.10 启动新的根文件系统和内核

需要打开 boards/BOARD/Makefile 屏蔽已经编译的 KIMAGROOTFS,此时会启动 output/ 目录下刚编译的 rootfs 和内核:

 
  1. $ vim boards/versatilepb/Makefile

  2. #KIMAGE=$(PREBUILT_KERNEL)/$(XARCH)/$(BOARD)/$(LINUX)/zImage

  3. #ROOTFS=$(PREBUILT_ROOTFS)/$(XARCH)/$(CPU)/rootfs.cpio.gz

  4. $ make boot

3.11 启动串口

 
  1. $ make boot G=0 # 使用组合按键:`CTL+a x` 退出,或者另开控制台执行:`pkill qemu`

3.12 选择 Rootfs 设备

 
  1. $ make boot ROOTDEV=/dev/nfs

  2. $ make boot ROOTDEV=/dev/ram

3.13 扩展

通过添加或者修改 boards/BOARD/Makefile,可以灵活配置开发板、内核版本以及 BuildRoot 等信息。通过它可以灵活打造自己特定的 Linux 实验环境。

 
  1. $ cat boards/versatilepb/Makefile

  2. ARCH=arm

  3. XARCH=$(ARCH)

  4. CPU=arm926t

  5. MEM=128M

  6. LINUX=2.6.35

  7. NETDEV=smc91c111

  8. SERIAL=ttyAMA0

  9. ROOTDEV=/dev/nfs

  10. ORIIMG=arch/$(ARCH)/boot/zImage

  11. CCPRE=arm-linux-gnueabi-

  12. KIMAGE=$(PREBUILT_KERNEL)/$(XARCH)/$(BOARD)/$(LINUX)/zImage

  13. ROOTFS=$(PREBUILT_ROOTFS)/$(XARCH)/$(CPU)/rootfs.cpio.gz

默认的内核与 Buildroot 信息对应为 boards/BOARD/linux_${LINUX}_defconfigboards/BOARD/buildroot_${CPU}_defconfig,如果要添加自己的配置,请注意跟 boards/BOARD/Makefile 里头的 CPU 和 Linux 配置一致。

3.14 更多用法

详细的用法这里就不罗嗦了,大家自行查看帮助。

 
  1. $ make help

3.15 实验效果图

如何搭建Linux内核实验环境

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。

网页名称:如何搭建Linux内核实验环境
网页路径:https://www.cdcxhl.com/article14/jieode.html

成都网站建设公司_创新互联,为您提供云服务器静态网站域名注册品牌网站制作微信小程序外贸建站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都做网站