2023了,你还在等别人的固件吗?现在小白都可以自己编译了,短时间拥有一切功能的OPENWRT固件

2023-08-28 12:41:14 146点赞 1314收藏 86评论

本人文采不太好,这流水账纯属于记录个人编译的操作,大神请别喷


最近组了黑裙,玩着docker的时候突然想到,ubuntu不也是可以在docker上运行吗?为什么之前编译固件的教程都教我们在WSL或者虚拟机ubuntu里面进行呢?docker的运行效率比虚拟机高多了,又不用繁琐设置,那么就来试试,反正搞坏了直接删除容器就好,对宿主机没有任何影响。

搜索了一圈,居然没有太多使用docker乌班图编译的教程,既然这样,我就自己摸索一下吧,最后我把编译好的容器commit成了镜像,本人重试了五次,确认没有问题了,如果还有问题,欢迎交流。

由于这个镜像是已经进行了首次编译后的形成的,所以已经包含了环境和依赖,小伙伴不用担心编译会出错,这里编译过程用的是绕过模式,不用全局,毕竟需要的东西大部分都已经在镜像里面了。

这里是hub的连接sampoon/ubuntu - Docker Image | Docker Hub,直接复制里面的一条条命令都putty或者fianlshell等终端即可,下面我演示一下。

因为包含了首次编译的环境和依赖,镜像较大,使用nohup &进行后台下载

nohup docker pull sampoon/ubuntu:openwrt_sampoon &

大概40分钟可以完成,喝杯咖啡回来看看,我们镜像已经在等待我们操作了,省去了首次编译的不确定性和大把时间

docker imagesdocker image ls查看镜像docker image ls查看镜像

后面就是复制粘贴hub上面的命令了,

包括创建容器,进入ubuntu,使用普通用户更新代码,一直到make menuconfig这个熟悉到不能再熟悉的命令

docker run -dit --name ubuntu sampoon/ubuntu:openwrt_sampoon

docker exec -it ubuntu /bin/bash

apt-get install sudo

sudo sh -c "apt update && apt upgrade -y"

su sampoon

cd /home/sampoon/lede

git pull

./scripts/feeds update -a && ./scripts/feeds install -a

rm -rf ./tmp && rm -rf .config

make menuconfig

挑选luci-app我就不多介绍了,反正需要的都有,也不用vim修改feeds,按需索取哦,否则冲突了也不保证的。

然后就是下载和编译,下载的命令可以多执行几次

make -j4 download V=s

make -j$(($(nproc) + 1)) V=s

由于是二次编译了,可以全速进行了,不用单核慢慢来,测下来是大概1小时完成,我是i3-8100四核。最后从容器退出来

exit

exit

使用docker复制出乌班图里面的文件夹即可,记得按照要求现在群晖新建一个文件夹,复制好路径更换到命令里头。

docker cp ubuntu:/home/sampoon/lede/bin/targets /path_to_your_file黑裙文件夹路径,复制更换到最后的复制命令黑裙文件夹路径,复制更换到最后的复制命令

至此就完成了编译了,第一次包含下载镜像大概需要2小时,后面就是1小时了,有新协议出来的,可以尝试更新下,现在基本都支持了的。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
86评论

  • 精彩
  • 最新
  • 不折腾吧 用软路由就满足我一个功能 全屋科学上网 其他我都用的少

    校验提示文案

    提交
    是的呀,我开始就是嫌别人的固件太多app,所以自己弄,用什么留什么,ipv6也不装 [高兴]

    校验提示文案

    提交
    这年头不玩ipv6,怎么畅想网络啊!

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 有些朋友说怎么这么复杂,所以录了个视频,这样或者会更加直接明了,命令行在电脑上看会比较容易理解,真的就是复制粘贴,希望所有人都有自己固件

    【2023了,你还在等别人的固件吗?现在小白都可以自己编译了,短时间拥有一切功能的OPENWRT固件-哔哩哔哩】 去看看

    校验提示文案

    提交
    好像置顶不了。。。。

    校验提示文案

    提交
    感谢分享

    校验提示文案

    提交
    收起所有回复
  • 不错,其实玩这个主要就是折腾,真不真用两说

    校验提示文案

    提交
    同道中人 [坏笑]

    校验提示文案

    提交
    这个词 现在不好

    校验提示文案

    提交
    收起所有回复
  • 感谢分享,但完全看不懂

    校验提示文案

    提交
    录了个视频,很简单就ok了的

    校验提示文案

    提交
    收起所有回复
  • 自己编译这玩意没啥基础的话碰到一个命令不通就头大,百度狗哥一痛搜,有的搜也搜不到,这就是一看就会一干就废还不如来现成的节约时间。。。。

    校验提示文案

    提交
    现成的当然快,但是有些多了或少了,以前也是这样,一折腾就觉得也不难,我这个试过多次了,一个一个命令复制就行,可能make menu你要看看喜欢什么,其他粘贴就可以,有问题也欢迎指出,希望每个人都可以用自己的固件

    校验提示文案

    提交
    做了视频,可以看看,真正的复制粘贴完事 [开心]

    校验提示文案

    提交
    收起所有回复
  • 只会用里面openclash

    校验提示文案

    提交
    那可以试试另外一个,新的naive协议挺好

    校验提示文案

    提交
    有支持yaml 配置文件导入的机场吗?

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 老毛子的编译有吗? [皱眉] [皱眉]

    校验提示文案

    提交
    这个看架构吧,具体可以在make menuconfig自行定制的呀,不是只有x86的

    校验提示文案

    提交
    github上有github action自动编译项目,跟openwrt自动编译一样,省事,自己修改下配置文件即可,不用配置环境,不用有高配置电脑

    校验提示文案

    提交
    收起所有回复
  • 不如https://openwrt点ai/省事

    校验提示文案

    提交
    哈哈,用过,某些设置要钱,而且科学的luci-app协议不全,是默认的配置出来的

    校验提示文案

    提交
    收起所有回复
  • 求求兄弟们了,既然都给大伙们出docker image了。你就把docker compose的yml也贴出来吧。 [龇牙] 每次看到有教学docker的我都会强烈建议docker compose。 [龇牙] 这样对新手友好一些。

    校验提示文案

    提交
    创建容器就一行命令而已,为什么用compose呢?

    校验提示文案

    提交
    方便管理。然后配置持久化也方便一些。

    校验提示文案

    提交
    收起所有回复
  • 把配置copy出来,放GitHub那种自动编译的,折腾一次,每个月就自动编译了

    校验提示文案

    提交
    实际来说,我是两年半了到现在才更新一次固件,因为
    科学app有新的协议加入了,要把新协议编译进去,如果你配置文件不变,编译出来是有科学app,但是menuconfig默认新协议是不勾选的,这样即使一直编译出新固件也没有新协议,个人用的固件每个月换一次吗?

    校验提示文案

    提交
    我搞过一次,Github账号干废了,等了半年才恢复。后来就只本地编译了

    校验提示文案

    提交
    还有6条回复
    收起所有回复
  • 求教怎么适配一个官方不支持的SBC,比如orangepi zero 3

    校验提示文案

    提交
    不太懂,你都知道官方不支持干嘛还买呢?可以问问卖家有没有固件,记得r2s刚出来也是官方不支持,但是卖家有自己编译的固件,现在r2s全面支持了

    校验提示文案

    提交
    收起所有回复
  • 感觉比用虚拟机装个Ubuntu还麻烦些

    校验提示文案

    提交
    那好吧,我两个都试过,docker的话命令行复制粘贴全搞掂,都不用各种设置点来点去了

    校验提示文案

    提交
    收起所有回复
  • 这么多评论,没一个说云编译的。用github云编译它不香吗?还不用自己搭环境

    校验提示文案

    提交
    不知道怎么说,就好像nas和云盘,看个人喜欢

    校验提示文案

    提交
    收起所有回复
  • 不懂就问,编译是干什么的?

    校验提示文案

    提交
    例如你只需要使用一个插件,但是网上分享给你下载的都有一大堆插件,非常臃肿,而且不知道会不会帮别人跑cdn业务

    校验提示文案

    提交
    收起所有回复
  • 直接Ubuntu才是王道

    校验提示文案

    提交
    容器的好处随时可以删掉,不影响系统,也不用设置

    校验提示文案

    提交
    收起所有回复
  • 镜像支持arm吗

    校验提示文案

    提交
    只要是docker就可以拉取,不分系统的,只有编译的时候才需要选择需要的系统

    校验提示文案

    提交
    收起所有回复
  • 官方原始设置编译是很简单的,复杂的是各种配置。例如我想要支持手机usb共享上网,想要无线网卡支持,请问要怎么设置编译参数?

    校验提示文案

    提交
    要视乎你的网卡,可以试下勾选下面选项,不过个人认为openwrt不适合做ap,毕竟只有网卡,没有功放,效果不好,最好浪费时间又糟心,还不如买个便宜tplink,简单而且绝对比网卡好用

    在Firmware勾选网卡(AX200,AX210,MT7921)
    在Kernel modules —> Wireless Drivers/勾选网卡
    Network —> WirelessAPD勾选hostapd,hostapd-common,hostapd-utils,wpa-supplicant

    校验提示文案

    提交
    感谢,我试试

    校验提示文案

    提交
    收起所有回复
  • 我的天,30多G的docker真的还叫docker吗?

    校验提示文案

    提交
    是,也不是,只要你是打算编译了,无论是否docker,经过了环境,依赖,下载什么的,最后都会这么大,只不过我是提前就这么大,而你是慢慢变到这么大而已

    校验提示文案

    提交
    收起所有回复
  • 32g,果然够大

    校验提示文案

    提交
    不然首次编译那4小时不就浪费了吗? [得意]

    校验提示文案

    提交
    收起所有回复
  • 软路由什么固件好用?主要用途就是提高网速,科学梯子,跑跑收益。

    校验提示文案

    提交
    软路由不提高网速的,除非你现在的路由是十几年前的,一般百来块的路由可以跑满网速。至于科学,这个才是软路由的强项,只要编译时选好自己的插件即可,我镜像都要包含了的,去选择编译就可以。跑收益项目的话也可以,但是软路由会有点累,建议单独机器跑,然后在软路由编译sqm控制流量,否则你用网会卡,而且收益也不好,因为流量跑太乱,丢包高,我就是这样弄的,也可以参考其他大神的做法

    校验提示文案

    提交
    你的回复,让我明白了很多,今后还要向你多请教。

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章

sampoonpoon

Ta还没有介绍自己

发文累计被1314人收藏

关注 打赏
作者其他文章
最新文章 热门文章
1.3K
扫一下,分享更方便,购买更轻松