MT7628开发环境搭建
参考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 to
makedev’
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开发环境搭建相关推荐
- Android环境搭建和Android HelloWorld—Android开发环境搭建
Android_Android开发环境搭建-搭建Android的开发环境 1.我考虑先下载JDK7.0,在JDK的安装中,考虑一般SDK都是向上兼容的,于是选择了最高的版本7.0 这里是我总结的详细的 ...
- qt工程在linux系统里颜色显示错误_【飞凌嵌入式RK3399开发板试用体验】+QT开发环境搭建测试(二)...
作者:飞扬的青春 在拿到开发板之后,已经体验了Android操作系统,接下来就是体验Linux下的开发,本次以QT的一个小案例来测试下. 首先是自己先搭建了一个Ubuntu18.04的虚拟机,使用真机 ...
- Go:分布式学习利器(1) -- 开发环境搭建 + 运行第一个go程序
文章目录 为什么要学习 go 开发环境搭建 -- MAC 运行第一个go程序 go 函数的返回值设置 go 函数的命令行参数 为什么要学习 go 在如下几个应用场景的需求下产生了go: 超大规模分布式 ...
- 智能合约开发环境搭建及Hello World合约
如果你对于以太坊智能合约开发还没有概念(本文会假设你已经知道这些概念),建议先阅读入门篇. 就先学习任何编程语言一样,入门的第一个程序都是Hello World.今天我们来一步一步从搭建以太坊智能合约 ...
- iPhone开发环境搭建全过程 iPhone手机开发内容,中文手册
http://3g.edu.csdn.net/kecheng/iphone.html iPhone手机开发内容 http://www.docin.com/p-34874880.html# iPhon ...
- python搭建numpy_python开发环境搭建及numpy基本属性-【老鱼学numpy】
目的 本节我们将介绍如何搭建python的开发环境以及numpy的基本属性,这样可以检验我们的numpy是否安装正确了. python开发环境的搭建 工欲善其事必先利其器,我用得比较顺手的是Intel ...
- windows下pomelo开发环境搭建及JS乱码问题
from: http://blog.csdn.net/wangqiuyun/article/details/9243263 最近一直在研究node.js这一块,为的就是使用网易的pomelo框架,学习 ...
- Android配置----Android开发环境搭建
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
- JDK安装以及开发环境搭建
无论是Java开发.J2EE以及Android开发搭建环境时JDK开发环境搭建及环境变量配置是必不可少的,这篇文章就来就分别介绍下JDK的下载以及不同平台的环境变量的配置. 1.安装JDK开发环境 官 ...
最新文章
- 不被邀请又怎样!马云都快买下中国AI芯片的半壁江山了,直怼腾讯和百度
- JDK ThreadPoolExecutor核心原理与实践
- java日期存入数据库_怎样在Java中将日期转化插入到数据库
- strlen() sizeof()
- SpringCloud实战5-Feign声明式服务调用
- 了解Base64编码解码
- vue 文件转换二进制_在vue中使用axios实现post方式获取二进制流下载文件(实例代码)...
- java线性表源代码_线性表java实现之顺序存储源码
- VMware Workstation安装虚拟机失败
- hplus java,HPlus(H+) 后台管理模板带文档V 4.1.1-完整版
- 机器学习常见算法分类汇总
- mybatis缓存的一些问题
- DTC Sprint总结——管理经验篇
- 华为云域名注册_华为云申请个人域名步骤
- 防骗数据库,查询骗子电话QQ等
- 空间统计分析系列科普文章(By 虾神说D)
- H106OJ | 第二次练习(查找)
- Zabbix配置网络流量监控报警
- 【用户画像】功能实现值写入ClickHouse人群包、预估和更新分群人数,NoSQL数据库介绍
- Docker知识点整理