恩山无线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 27798|回复: 925

[N1盒子] 【小狮子编译贴】抛砖引玉,为打造N1路由神器,大家一起来交流!(三楼已更本帖结)

    [复制链接]
发表于 2019-4-29 16:08 | 显示全部楼层 |阅读模式
本帖最后由 tinylion 于 2019-5-9 15:28 编辑

此贴为小狮子这两周狂啃编译和docker知识,目前并不成熟的编译经验,跟大家交流一下。
希望能抛转引玉,让更多大神赐教,让我们这些小白学习到更为正确和成熟的编译知识,
为把N1打造为一代经典路由器神器而努力!

因为工作较忙,所以编译方法基本以文字描述为主,这贴更新较慢,敬请大家见谅!
也请大家积极跟帖,把自己编译过程中的疑问或解决办法分享一下,谢谢!
-------------------------------------------------------------------------------------------------------------
开始写贴中......

由来:小狮子想打造docker版的openwrt在N1上跑,原因很简单,现在通过U盘或写入EMMC方式运行OP系统,实在实在是太浪费N1的性能了!!!如果能把OP弄到docker里,那么我们在一台N1上既能跑OP,又能跑nextcloud,又能跑baidupcs等等,只要你想,就能充分榨干一台N1!

(下面的所有运行方法,全部基于XQ7大神的armbian 5.60系统,用别的系统产生的问题,小狮子水平有限,无法作答,请谅解。
一些最最基本的知识,比如如何找到XQ7这系统,如何刷入U盘,如何写入EMMC等等,请自行搜索论坛帖子。
有些东西是不能懒的,为了学习相关知识,小狮子从春节前开始研究论坛帖子,至少翻了几百页的历史贴。)

首先安装docker,需要先搭好梯子,不然安装不成功
SSH进入armbian后,执行下面两条命令

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

A. 作为旁路的openwrt docker

docker方式运行OP,其实论坛大神bettermanbao早已经给过运行方式,下面贴出大神之前的运行方法
SSH登录armbian系统,在命令提示符下输入:
1. ip link set eth0 promisc on 打开混杂模式

2. docker network create -d macvlan --subnet=192.168.2.0/24 --gateway=192.168.2.1 -o parent=eth0 macnet
(此处注意 --subnet=192.168.2.0/24 --gateway=192.168.2.1,表示网段为192.168.2.X,别的网段自己修改)

3. docker import https://downloads.openwrt.org/re ... fault-rootfs.tar.gz openwrt:18.06.1
(生成一个docker镜像,大神原来给的是一个超链接 https://downloads.openwrt.org/re ... fault-rootfs.tar.gz
实际上是把openwrt-18.06.1-armvirt-64-default-rootfs.tar.gz这个文件生成一个docker镜像)

4. 那凡是自己尝试编译过openwrt的朋友都知道,编译的最后结果会生成一系列的固件文件,其中就有这种 tar.gz结尾的。

5. 那么我们自己编译的固件要生成自己的docker OP镜像,其实无非是执行一句 docker import  XXX.tar.gz openwrt:18.06.1
XXX.tar.gz是自己得到的固件文件,可以把XXX.tar.gz文件直接上传到armbian的/root目录,然后执行上面的命令。
(后面的openwrt:18.06.1是docker的镜像生成的一个命名格式而已,可以自己改,有兴趣自己参考docker镜像生成的帖子)

6. docker run --restart always --name N1 -d --network macnet --privileged openwrt:18.06.1 /sbin/init
(装载上面生成的docker镜像,并运行该镜像,此时docker版的openwrt 系统已经跑起来了!)

7. docker exec -it N1 sh   
    进入docker openwrt系统,此时会看到busybox的命令提示符号。
    vi /etc/config/network   ,修改Openwrt的地址(也是此后的旁路网关地址),如改为192.168.2.2,然后保存退出。
    再执行
    /etc/init.d/network restart

8. 在浏览器输入192.168.2.2,就可以看到熟悉的openwrt的登录界面了。

9. 此后要设置网关,DNS啥的,和论坛里之前做旁路的帖子一致,请诸位自行搜索了。

10. 上述都设置好以后,可以在busybox的提示符下输入  ping www.baidu.com  
如果ping得通,那么代表你的docker openwrt至少在访问国内上,已经做好了!   
**************************************************************************************************
B. 编译N1能用的openwrt固件

初学编译者请先详细看下面的附件:
在此特别感谢作者小白mj和大神lean,如果大神觉得本帖分享出来不妥,也请跟我说一下,我立刻删除。
冒昧得罪之处,小狮子表示诚挚的道歉。
小白mj写给麻瓜看的复读机编译教程 v1.7.rar (2.53 KB, 下载次数: 403)

评分

参与人数 3恩山币 +3 收起 理由
老少平安 + 1 生活不易,相遇也不易,既然这样,让我们成为朋友一起面朝大海、花开花落……
卡巴司机是厨子 + 1 感谢大佬分享!
huitten + 1 强大的恩山!(以下重复1万次)

查看全部评分

本帖被以下淘专辑推荐:

我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2019-4-29 16:09 | 显示全部楼层
本帖最后由 tinylion 于 2019-5-4 15:09 编辑

占楼备用,有空写写怎么编译这个漂亮的主题,然后给我们的openwrt安装上!

漂亮主题.png

5.4 更新
首先,特别感谢rosy团队的大神们为openwrt项目提供漂亮的主题
以下的所有操作都参考大神们在Github上的rosy项目说明,向大神们致敬!
1. https://github.com/rosywrt/luci
2. https://github.com/rosywrt/luci-theme-rosy

前提条件:
假设您已按顶楼分享的附件教程,按里面的要求已经安装好了ubuntu 14和依赖包
那么SSH进入ubuntu 14(此时命令提示符显示的是你自建的用户名,而不要用root用户)
要编译得到上面漂亮rosy主题的ipk文件,执行下面步骤:

(假设我们按顶楼的附件教程,未来选择或编译的固件用的“target system"-->"QEMU ARM Virtual Machine"--> ARMv8 multiplatform
再多说一句,固件是固件,IPK是IPK,本楼教的是编译IPK的步骤,生成IPK后,未来还要安装到您自己生成的固件里)
1. wget https://downloads.openwrt.org/re ... Linux-x86_64.tar.xz
(下载对应上述的“target system"-->"QEMU ARM Virtual Machine"--> ARMv8 multiplatform的sdk编译环境)

2. tar xvf openwrt-sdk-18.06.2-armvirt-64_gcc-7.3.0_musl.Linux-x86_64.tar.xz

3. cd openwrt-sdk-18.06.2-armvirt-64_gcc-7.3.0_musl.Linux-x86_64

4. nano feeds.conf.default
在里面加入  src-git rosy https://github.com/rosywrt/luci-theme-rosy.git;openwrt-18.06
CTRL+X,Y ,回车,即可保存退出。如果提示nano 命令找不到,请sudo apt install nano 安装好nano命令。

5.    ./scripts/feeds update luci

6. git clone https://github.com/rosywrt/luci-theme-rosy.git package/luci-theme-rosy

7. make menuconfig
在luci-->theme里会看到rosy主题,前面是'M'就可以了。
然后一路EXIT,然后保存.config

8. make package/luci-theme-rosy/compile V=99
此过程中会有不少提示和警告,不要管,如果正常编译成功,最后会出现

Packaged contents of /home/xxxx/sdk/build_dir/target-aarch64_generic_musl/luci-theme-rosy/ipkg-all/luci-theme-rosy into /home/xxxx/sdk/bin/packages/aarch64_generic/base/luci-theme-rosy_git-19.069.38477-5ed9705-1_all.ipk 的语句提示

上面的xxxx是你自己的用户名,最后生成的rosy漂亮主题的ipk文件是在 /home/xxxx/sdk/bin/packages/aarch64_generic/base/luci-theme-rosy_git-19.069.38477-5ed9705-1_all.ipk 这个目录中
9. 找到上面的ipk文件,复制出来,然后传到已编译出的openwrt系统里的/tmp/tmp 目录里,然后执行 opkg install luci-theme-rosy_git-19.069.38477-5ed9705-1_all.ipk无错误提示表明该主题安装成功!

10. 怎么在openwrt系统了切换主题就自己百度一下吧,很简单的。
——————————————————————————————————————————————————————————
上面的编译方法其实也提供了一个最最基本的自行编译非官方IPK文件的方法
首先,您得找到源码,源码从哪里来,一般从Git hub里找。比如你要找luci的theme主题,那么谷歌就搜 theme openwrt,然后自己筛Git hub的东东。
其次,找到对应的SDK包,比如我上面用的是基于QEMU的SDK包,那么如果你用的树莓派的,应该找哪个包呢?请到 https://downloads.openwrt.org/ 查找吧
最后,按Git hub里源码对应的项目说明里,一般都有编译步骤,按步骤编译就能得到适用于自己openwrt的ipk文件了!

喜欢自己动手的朋友,就做一些下面自己编译aliddns插件的作业吧
https://github.com/chenhw2/luci-app-aliddns












评分

参与人数 1恩山币 +1 收起 理由
卡巴司机是厨子 + 1 感谢分享

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2019-4-29 16:09 | 显示全部楼层
本帖最后由 tinylion 于 2019-5-15 22:31 编辑

工作实在太忙,自己又是小白,这段时间搞得累,进展也不太大,docker版openwrt目前还是不少BUG
要搞定BUG,还要看dnsmasq原理,自己实在抽不出过多时间去深入研究,只能等后续大神的解决了。

看回帖深入讨论的朋友基本没有,可能大家对这个并不太感兴趣吧,所以这贴暂时写到这里吧。

编译过程简单记录如下
target system选本帖二楼提到的
把lean大神的lede目录git clone下来一下,修改lede目录下的feeds.conf.default文件
里面的内容改为
#src-git luci https://github.com/coolsnowwolf/luci
src-git luci https://git.openwrt.org/project/luci.git^6f6641d97de2c85ee5d87beda92ae8437d1dbdf5
src-git packages https://github.com/coolsnowwolf/packages
src-git routing https://git.openwrt.org/feed/routing.git^ea345d16a6e27c2a8fdf67bf543cc36a5f189131
#src-git routing https://git.openwrt.org/feed/routing.git;openwrt-18.06
#src-git telephony https://git.openwrt.org/feed/telephony.git;openwrt-18.06

后面的编译过程就和1楼分享的教程一致了,大家可以自己尝试编译一下。
如果不修改feeds.conf.default,直接编译也可以成功,但最后固件弄进docker里后,我进入openwrt界面,内存、网段数据老是提示“正在搜集数据”
原因一个是luci不兼容,一个是网段不通。我当时在宿主机里设置好resolv.conf解决上面问题。

PS: N1用docker方式跑主路由,帖子参见2540719484大神的,拨号不成功的,可以尝试把IPV6获取地址由 自动 改为关闭。还有记得先加载PPPOE内核,大神帖子里有写了。
https://www.right.com.cn/forum/f ... ypeid%26typeid%3D21

另外大神帖子里有个地方有误,在Step6里
08 gayway 192.168.31.1  这句,gayway应该改为gateway

本帖终结!
2019年5月7日

____________________________________________________________
参考了下面帖子弄清楚了docker dns机制
http://dockone.io/article/2316
https://cloud.tencent.com/developer/article/1096388
https://blog.csdn.net/hanlaipeng11/article/details/79037438
-------------------------------------------------------------------------------

写在5月12日凌晨,母亲节

一直测试到现在,经过这周不懈的努力,可以宣布目前docker版做主路由基本OK
N1可以正常拨号,
K3做无线AP,连接N1,访问国内网站正常!

下一步将逐步测试DDNS,FRP等

真的是实践出真知,小白只要经过刻苦的钻研,也能有所收获!

母亲节,恭祝恩山群友的妈妈身体健康,万事顺意!
小狮子 敬上


QQ截图20190430025950.jpg

点评

感谢分享!!!  详情 回复 发表于 2019-5-25 12:07
想问下具体的GFW模式是要加在哪个代码里面--dns 是docker run 还是docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 macnet  详情 回复 发表于 2019-5-14 00:08
直接编译大神的教程很清楚了,想知道怎么用官方的rootfs,加上大神的插件一起编译?  详情 回复 发表于 2019-5-7 16:09
我只想知道这个 机场,麻烦PM下  发表于 2019-5-5 22:54
旁路由,怎么油管?我的意思是,手机无需开酸s乳的情况下。  详情 回复 发表于 2019-5-1 22:23
用原来的路由器FQ速度是多少呢?  详情 回复 发表于 2019-4-29 21:10
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-4-29 16:19 | 显示全部楼层
火前留名
来自安卓客户端来自安卓客户端
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-4-29 17:40 来自手机 | 显示全部楼层
火前留名火前留名
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-4-29 17:42 | 显示全部楼层
看看 好的话入一个N1
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-4-29 17:43 | 显示全部楼层
为打造N1路由神器
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-4-29 17:50 | 显示全部楼层
看到你这个帖子我也来灵感了。我是在N1刷盒子系统,然后容器里装入debian,再安装修复了宝塔可以正常运行网站。现在缺一个op路由功能。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-4-29 17:51 | 显示全部楼层
很厉害的操作
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-4-29 18:05 | 显示全部楼层
感谢分享,学习一下
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-4-29 18:07 | 显示全部楼层
支持一下,字数补丁
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-4-29 18:24 | 显示全部楼层
谢谢分享。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-4-29 18:25 | 显示全部楼层
不错,我也装了
来自安卓客户端来自安卓客户端
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-4-29 18:39 | 显示全部楼层
看看吧!~怎么样!~~~
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-4-29 18:39 | 显示全部楼层
感谢分享!!!
我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2019-11-13 08:07

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表