使用 Docker 编译 OpenWRT(Widora)
Docker 是一种新的被称之为容器的虚拟机。本文将使用此工具,进行 OpenWRT 的编译。
在 Docker 中下载 Ubuntu 14.04 的镜像
使用以下命令可以十分方便的从远程服务器上将 Ubuntu 14.04.5 版本的基本系统下载到本地:
docker pull ubuntu:14.04.5
安装基本的编译工具
# 首先启动 Docker 中的 Ubuntu 14.04.5,这里以交互方式进行
# 选项 t:分配一个 tty
# 选项 i:以交互方式运行
docker run -ti ubuntu:14.04.5
# 可选操作:更改 ubuntu 的软件源(基本系统中 apt 不支持 https 协议)
vi /etc/apt/sources.list
# 更新本地软件源缓存,安装必要的一些软件
apt-get update
apt-get install git g++ make libncurses5-dev subversion libssl-dev gawk libxml-parser-perl unzip wget python xz-utils vim
# 缩减体积,删除已经下载的安装包
apt-get clean
保存刚刚做出的更改,另存为新的镜像
执行以下命令:
docker ps -l
将会看到类似如下的输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
24fb6266cd37 ubuntu:14.04.5 "/bin/bash" 11 minutes ago Exited (0) 5 seconds ago furious_noyce
使用以下命令,将 ID 号为"24fb6266cd37"的镜像修改保存为新的镜像,镜像的名称为 ubuntu/forwidora:
docker commit 24fb6266cd37 ubuntu/forwidora
使用以下命令可以查看本地所有的镜像。
docker images
OpenWRT 编译前的准备工作
从 github 上下载源代码到 “/opt/embedded/MT7688/” 目录中
git clone https://github.com/widora/openwrt_widora.git /opt/embedded//MT7688/openwrt_widora
启动刚刚新建的容器,但是附加一个外部的挂载选项
# -v :将本地的目录挂载到容器中作为数据卷
# 本实例中,将 host 的 /opt/embedded/MT7688 挂载到容器中的 /opt/MT7688 上
docker run -it -v /opt/embedded/MT7688:/opt/MT7688 ubuntu/forwidora
开始编译 OpenWRT
剩下的过程,就可以完全参考 widora 项目 ReadMe 中相关的内容了。
使用 Docker 编译 OpenWRT(Widora)的更多相关文章
- 转:小白编译openwrt固件教程
原文地址 编译openwrt固件并没有想象的那么复杂,我也是个小白,以下内容是我将网络上的编译教程稍微进行了一下整合.因为我发现很多编译教程没有说明如何更改flash相关配置. 安装ubuntu, ...
- Ubuntu12.10编译openwrt遇到的错误
由于Openwrt有很多工具是要先编译的,在Ubuntu12.10平台下编译openwrt时就遇到了下面这样的错误:elf.cpp: In static member function 'static ...
- 在 Arch 下编译 OpenWRT cmcurl 问题与解决方案
0 现象 在 Arch 下编译 OpenWRT (15.05) cmcurl 时报错: [ 28%] Linking C executable LIBCURL lib/libcmcurl.a(open ...
- centos6.8下搭建编译openwrt的环境
1. 安装必要软件 su root yum install zlib-devel zlib-static -y 2. 编译openwrt 请参考这里
- 利用Docker编译Hadoop 3.1.0
前言 为什么要使用Docker编译,请自行百度 操作系统环境:Centos 6.8 uname -r 内核版本:2.6.32-642.el6.x86_64 除非有把握否则不要在Centos6.8中直接 ...
- (七)ubuntu下编译openwrt内核的环境配置
首先安装基本开发环境: sudo apt-get install ssh vim samba tftp nfs 安装编译openwrt须要的包: 解压openwrt包编译出错: Build depen ...
- debian下编译openwrt固件
参考文章:Ubuntu下编译OpenWRT固件 我买的路由器是RG100A-AA,采用了bcm63xx系列的芯片. 下载openwrt源码: svn co svn://svn.openwrt.org/ ...
- 使用外部 toolchain 编译 openwrt
默认编译 openwrt 时会先编译一套 toolchain. 这个步骤耗时较长. 使用外部 toolchain 可以多个 project 共用一套 toolchain , 而且也不重再编译它了. 省 ...
- YOLOv4: Darknet 如何于 Docker 编译,及训练 COCO 子集
YOLO 算法是非常著名的目标检测算法.从其全称 You Only Look Once: Unified, Real-Time Object Detection ,可以看出它的特性: Look Onc ...
随机推荐
- linux sudo 命令
简单的说,sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码.严谨些说,sudo 允许一个已授权用户以超级用户或者其它用户的角色 ...
- 使用PublishSetting快速在Powershell中登录Azure
使用Powershell 来管理Azure资源实在是一大快事. 在使用power script之前, 需要先连接到Azure上,其中使用导入PublishSetting文件是最方便的方法. 步骤: 1 ...
- python中的TypeError错误解决办法
新手在学习python时候,会遇到很多的坑,下面来具体说说其中一个. 在使用python编写面向对象的程序时,新手可能遇到TypeError: this constructor takes no ar ...
- spring源码:IOC(li)
一.BeanDefinition BeanDefinition是配置文件<bean>元素标签在容器中内部表示形式.创建最终的BeanDefinition主要包括两个步骤: 1)利用Bean ...
- Eclipse(一)
Eclipse的初步学习
- 《Javascript、jQuery获取各种屏幕的宽度和高度方法》
Javascript获取屏幕宽度和高度方法: document.body.clientWidth; //网页可见区域宽 document.body.clientHeight; //网页可见区域高 do ...
- JavaScript 数据属性和访问器属性
在JavaScript中对象被定义为"无序属性的集合,其属性可以包含基本值.对象或函数."通俗点讲,我们可以把对象理解为一组一组的名值对,其中值可以是数据或函数. 创建自定义对象通 ...
- webstorm官网最新版激活:
2016.2.3版本的破解方式:目前最新的就是2.3版本,在打开的License Activation窗口中选择"activation code",在输入框输入下面的注册码:3B4 ...
- Animation
Animation 效果 用法 1.非常简单,导入两个文件(UIView+SetRect) (UIView+ImageEffects) 源码 github源码:https://github.com/m ...
- ExtPB.Net:窗体应用技巧(2)在树形导航下打开弹出的win窗口
ExtPB.Net的demo程序有个树形导航菜单,里面的菜单打开的窗口放在右边的TabStrip控件中.我们可以设计win通过导航打开,但有时我们希望以弹出窗口的形式打开它,但怎么办呢?现在可以这样修 ...