参考openwrt 快速入门

1.环境搭建

1.1Ubuntu docker

https://www.runoob.com/docker/ubuntu-docker-install.html

1.1.1使用官方安装脚本自动安装

安装命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

ps: 我已经放弃用deepin编译旧版openwrt ,修复了十几个bug还是有bug,无敌
下载14.04版本
docker pull ubuntu:14.04

docker pull ubuntu:14.04

1.1.2创建一个容器

sudo docker run -it ubuntu /bin/bash
sudo docker run -it ubuntu:14.04 /bin/bash

1.1.3查看容器状态

sudo docker ps -a

启动时候共享主机网络 //如果需要使用主机的vpn
sudo docker run --net=host -it ubuntu /bin/bash

1.1.4使用 docker start 启动一个已停止的容器

$ docker start b750bbbcfd88

后台运行在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。

$ docker run -itd --name ubuntu-test ubuntu /bin/bash

1.1.5停止一个容器

停止容器的命令如下:
$ docker stop <容器 ID>

1.1.6进入容器

在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

docker attach
docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。

$ docker attach 1e560fca3906
$ docker exec 1e560fca3906

1.1.7文件拷贝

将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。
docker cp /www/runoob 96f7f14e99ab:/www/
将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。
docker cp /www/runoob 96f7f14e99ab:/www
将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。
docker cp 96f7f14e99ab:/www /tmp/

1.1.8启动时候共享主机网络

sudo docker run --net=host -it ubuntu /bin/bash

1.1.9 Manage Docker as a non-root user

To create the docker group and add your user:
1.Create the docker group.

sudo groupadd docker

2.Add your user to the docker group.

sudo usermod -aG docker $USER

3.更新docker数据用户组

newgrp docker

1.1.x更多指令详见

https://www.runoob.com/docker/docker-container-usage.html

1.2依赖安装

1.2.1deepin20

sudo apt-get install subversion g++ zlib1g-dev build-essential git python rsync man-db
sudo apt-get install libncurses5-dev gawk gettext unzip file libssl-dev wget zip time libjsoncpp-dev

1.2.2ubutnu14.04

sudo apt-get install git g++ make libncurses5-dev subversion libssl-dev gawk libxml-parser-perl unzip wget python xz-utils vim zlibc zlib1g zlib1g-dev  build-essential ccache gettext xsltproc software-properties-commonsudo add-apt-repository ppa:openjdk-r/ppa
sudo apt update
sudo apt-get install openjdk-8-jdk

1.3编译固件

git clone https://git.openwrt.org/openwrt/openwrt.git/
cd openwrt./scripts/feeds update -a
./scripts/feeds install -amake menuconfigmake kernel_menuconfig #最后一个命令将打开一个菜单,如果您想为“TL-WR841N v11”这款无线路由构建固件,您可以这样设置:
#“Target System” ⇒ “Atheros AR7xxx/AR9xxx”
#“Target Profile” ⇒ “TP-LINK TL-WR841N/ND v11”
#然后选择退出并保存设置。现在我们就可以开始使用以下命令构建固件了,该过程将持续一段时间:#make download会根据你的menuconfig配置下载相关的源代码。
make download -j12make -j12 s=V#完成以后,固件可以在目录 ./bin/targets/ar71xx/generic/ 中找到。
#以 *-factory.bin 命名的固件是用于首次安装。
#以 *-sysupgrade.bin 命名的固件是用于更新已安装的OpenWrt。
#备注:#您可以将固件中的自定义文件放入目录<buildroot>/files。例如,您想将my_config在固件的/etc/config/目录中,则对应路径为<buildroot>/files/etc/config/my_config。如果files 目录在您的构建系统中不存在,手动创建即可。

1.3.x编译异常

1.3.x.1解决错误 freadahead

error: #error "Please port gnulib freadahead.c to your platform!

error: #error "Please port gnulib fseterr.c to your platform!

进入出错目录:
sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h

1.3.x.2解决错误 undefined reference to `makedev’

in function probe_all':devname.c:(.text+0x888): undefined reference tomakedev’

find . -name devname.c
./build_dir/host/e2fsprogs-1.42.8/lib/blkid/devname.c
vi ./build_dir/host/e2fsprogs-1.42.8/lib/blkid/devname.c+  #include <sys/sysmacros.h>

1.3.x.3 解决错误 error: called object ‘major’ is not a function or function pointer

libmtd.c: In function ‘dev_node2num’:libmtd.c:444:10: error: called object ‘major’ is not a function or function

find . -name libmtd.c ./build_dir/host/mtd-utils-1.4.5/lib/libmtd.cvi ./build_dir/host/mtd-utils-1.4.5/lib/libmtd.c+  #include <sys/sysmacros.h>采用这种方式去更换它./build_dir/host/mtd-utils-1.4.5/mkfs.jffs2.c./build_dir/host/mtd-utils-1.4.5/ubi-utils/src/libubi.c./build_dir/host/mtd-utils-1.4.5/mkfs.ubifs/devtable.c./build_dir/host/mtd-utils-1.4.5/mkfs.ubifs/mkfs.ubifs.h

1.3.X.4 解决错误 undefined reference to `llseek’

/mtd-utils-1.4.5/mkfs.ubifs/mkfs.ubifs.c:868: undefined reference to `llseek’

添加头文件
#include <sys/types.h>
#include <unistd.h>

1.3.x.5 Error when bootstrapping CMake:Problem while running initial CMake

cat /home/reasonss/mint/mint-mt7628-openwrt/mint-mt7628-openwrt/build_dir/host/cmake-2.8.12.2/CMakeFiles/CMakeError.logCMake Error: your Fortran compiler: "CMAKE_Fortran_COMPILER-NOTFOUND" was not found.   Please set CMAKE_Fortran_COMPILER to a valid compiler path or name.#试过几个办法都不行。发生是cmake版本太旧了 ,去tool/cmake 里面把版本换了#下面的文件来自于 最新开源的openwrt tool里面的cmake   #
# Copyright (C) 2006-2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mkPKG_NAME:=cmake
PKG_VERSION:=3.20.3
PKG_RELEASE:=1
PKG_CPE_ID:=cpe:/a:kitware:cmakePKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/Kitware/CMake/releases/download/v$(PKG_VERSION)/ \https://cmake.org/files/v3.19/
PKG_HASH:=4d008ac3461e271fcfac26a05936f77fc7ab64402156fb371d41284851a651b8HOST_BUILD_PARALLEL:=1
HOST_CONFIGURE_PARALLEL:=1include $(INCLUDE_DIR)/host-build.mkHOST_CONFIGURE_VARS += \CC="$(HOSTCC_NOCACHE)" \CXX="$(HOSTCXX_NOCACHE)" \MAKEFLAGS="$(HOST_JOBS)" \CXXFLAGS="$(HOST_CFLAGS)"HOST_CONFIGURE_ARGS := \$(if $(MAKE_JOBSERVER),--parallel="$(MAKE_JOBSERVER)") \--prefix="$(STAGING_DIR_HOST)" \--generator=Ninjadefine Host/Compile/Default+$(NINJA) -C $(HOST_BUILD_DIR) $(1)
endefdefine Host/Install/Default+$(NINJA) -C $(HOST_BUILD_DIR) install
endefdefine Host/Uninstall/Default+$(NINJA) -C $(HOST_BUILD_DIR) uninstall
endefifneq ($(findstring c,$(OPENWRT_VERBOSE)),)HOST_MAKE_FLAGS += VERBOSE=1
endif$(eval $(call HostBuild))

1.3.x.6 Unknown option: CPPFLAGS=-I/home/reasonss/mint/mint-mt7628-openwrt/mint-mt7628-openwrt/staging_dir/host/include

  941 行 注释掉#*) die "Unknown option: $1" ;;

1.3.x.7 error: too few arguments to function ‘_PyImport_FixupBuiltin’

toolchain 的gdb版本换了https://git.openwrt.org/?p=openwrt/openwrt.git;a=tree;f=toolchain/gdb;h=baca86b5d20e57b7545464a01f0bfd67eee7a1f7;hb=HEAD

1.3.x.8 Download failed linux-3.10.14.tar.xz

vi scripts/download.pl
//line 194
push @mirrors, 'https://mirrors.edge.kernel.org/pub/linux/kernel/v3.x/';// 还发生了

1.3.x.9 Argument list too long

//把目录路径换一下,尽可能卖一个

1.3.x.10 error: ‘const char* libc_name_p(const char*, unsigned int)’ redeclared inline with ‘gnu_inline’ attribute

https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=ec1cc0263f156f70693a62cf17b254a0029f4852#patch1

MT7628开发环境搭建相关推荐

  1. Android环境搭建和Android HelloWorld—Android开发环境搭建

    Android_Android开发环境搭建-搭建Android的开发环境 1.我考虑先下载JDK7.0,在JDK的安装中,考虑一般SDK都是向上兼容的,于是选择了最高的版本7.0 这里是我总结的详细的 ...

  2. qt工程在linux系统里颜色显示错误_【飞凌嵌入式RK3399开发板试用体验】+QT开发环境搭建测试(二)...

    作者:飞扬的青春 在拿到开发板之后,已经体验了Android操作系统,接下来就是体验Linux下的开发,本次以QT的一个小案例来测试下. 首先是自己先搭建了一个Ubuntu18.04的虚拟机,使用真机 ...

  3. Go:分布式学习利器(1) -- 开发环境搭建 + 运行第一个go程序

    文章目录 为什么要学习 go 开发环境搭建 -- MAC 运行第一个go程序 go 函数的返回值设置 go 函数的命令行参数 为什么要学习 go 在如下几个应用场景的需求下产生了go: 超大规模分布式 ...

  4. 智能合约开发环境搭建及Hello World合约

    如果你对于以太坊智能合约开发还没有概念(本文会假设你已经知道这些概念),建议先阅读入门篇. 就先学习任何编程语言一样,入门的第一个程序都是Hello World.今天我们来一步一步从搭建以太坊智能合约 ...

  5. iPhone开发环境搭建全过程 iPhone手机开发内容,中文手册

    http://3g.edu.csdn.net/kecheng/iphone.html  iPhone手机开发内容 http://www.docin.com/p-34874880.html# iPhon ...

  6. python搭建numpy_python开发环境搭建及numpy基本属性-【老鱼学numpy】

    目的 本节我们将介绍如何搭建python的开发环境以及numpy的基本属性,这样可以检验我们的numpy是否安装正确了. python开发环境的搭建 工欲善其事必先利其器,我用得比较顺手的是Intel ...

  7. windows下pomelo开发环境搭建及JS乱码问题

    from: http://blog.csdn.net/wangqiuyun/article/details/9243263 最近一直在研究node.js这一块,为的就是使用网易的pomelo框架,学习 ...

  8. Android配置----Android开发环境搭建

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  9. JDK安装以及开发环境搭建

    无论是Java开发.J2EE以及Android开发搭建环境时JDK开发环境搭建及环境变量配置是必不可少的,这篇文章就来就分别介绍下JDK的下载以及不同平台的环境变量的配置. 1.安装JDK开发环境 官 ...

最新文章

  1. 不被邀请又怎样!马云都快买下中国AI芯片的半壁江山了,直怼腾讯和百度
  2. JDK ThreadPoolExecutor核心原理与实践
  3. java日期存入数据库_怎样在Java中将日期转化插入到数据库
  4. strlen() sizeof()
  5. SpringCloud实战5-Feign声明式服务调用
  6. 了解Base64编码解码
  7. vue 文件转换二进制_在vue中使用axios实现post方式获取二进制流下载文件(实例代码)...
  8. java线性表源代码_线性表java实现之顺序存储源码
  9. VMware Workstation安装虚拟机失败
  10. hplus java,HPlus(H+) 后台管理模板带文档V 4.1.1-完整版
  11. 机器学习常见算法分类汇总
  12. mybatis缓存的一些问题
  13. DTC Sprint总结——管理经验篇
  14. 华为云域名注册_华为云申请个人域名步骤
  15. 防骗数据库,查询骗子电话QQ等
  16. 空间统计分析系列科普文章(By 虾神说D)
  17. H106OJ | 第二次练习(查找)
  18. Zabbix配置网络流量监控报警
  19. 【用户画像】功能实现值写入ClickHouse人群包、预估和更新分群人数,NoSQL数据库介绍
  20. Docker知识点整理

热门文章

  1. android adb shell am 可以用来启动activity ,而且可以通过-e 传入参数, 牛牛牛
  2. 【python】创意二维码那么多,咋不的掺和一下整一手~
  3. 一个疯子的梦-20190921
  4. 何制作手机自适应网页
  5. 万能密码HTTP基本方法 —— 【WUST-CTF2020】admin
  6. 软件测试建模:Google ACC
  7. 路由器 设置 端口映射
  8. Variable详解
  9. (6)Air Band数字图像处理基础-对图像进行几何变换
  10. 数据库视图、索引、存储过程优缺点