如何自己本地编译 OpenWrt ?

目录

感觉不如直接下载,然后用转换工具把 img 搞成 vmfs,见linux - VMware安装OpenWrt,工具下载链接https://www.starwindsoftware.com/tmplink/starwindconverter.exe。 关于系统 LEAN 的不行,还是 ImmortalWrt 更好!还可直接下载 vmfs,注意系统日志等级它默认的 debug 可不行。 关于上网控制插件,注意会和广告过滤 ACC 加速等冲突,有舍有得啊,openwrt上网时间控制为什么设置后无效-OPENWRT专版-恩山无线论坛 (right.com.cn)。 老老实实用 clash for windows 了,OpenWrt 很不稳定啊,github 时好时坏。

🤔为老古董编译 Openwrt-Old【失败】

为家里的老古董 Mercury MW316R 编译 Openwrt。

这么弱的路由,别折腾了,不如花钱买时间!

Untitled

lib/fseterr.c:77:3: error: #error “Please port gnulib fseterr.c to your platform! Look at the definitions of ferror and clearerr on your system, then report this to bug-gnulib.”

Untitled

cd /root/openwrt-old/build_dir/host/bison-3.0.4
sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h

编译

make menuconfig
make -j1 V=s

Untitled

老版本,实在编译不动了,时间别浪费了……

🤗为 VMware 虚拟机编译 Openwrt

哭泣,编译完,发现想要的软件包没选上,后期直接换用 LEAN 的配置来编译 注意,OpenClash 好像就是要自己手动安装!!!

参考:[OpenWrt Wiki] Toolchain

系统:Debian 11 (bullseye)

换用 非 root 用户,先安装 sudo 软件,再/etc/sudoers 添加。

sudo apt update
sudo apt install build-essential ccache ecj fastjar file g++ gawk \
gettext git java-propose-classpath libelf-dev libncurses5-dev \
libncursesw5-dev libssl-dev python python2.7-dev python3 unzip wget \
python3-distutils python3-setuptools python3-dev rsync subversion \
swig time xsltproc zlib1g-dev

# Download and update the sources
git clone https://git.openwrt.org/openwrt/openwrt.git
cd openwrt
git pull
 
# Select a specific code revision
git branch -a
git tag
git checkout v22.03.3
 
# Update the feeds
./scripts/feeds update -a
./scripts/feeds install -a
 
# Configure the firmware image and the kernel
make menuconfig
make -j $(nproc) kernel_menuconfig
 
# Build the firmware image
make -j $(nproc) V=s defconfig download clean world

关于编译的配置,请看 https://github.com/haiibo/OpenWrt【后期直接换 Lean 的仓库,不用官方】:

git clone https://github.com/coolsnowwolf/lede
cd lede
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig

# 下载 dl 库、编译固件
make download -j8
make V=s -j1

Untitled

别改太大,否则:

Untitled

编译产物

基于 LEAN 的编译(自己编译的linux6.1,真的不好用):

openwrt-x86-64-generic-squashfs-combined-efi.vmdk(如需我编译的文件,可联系我通过阿里云盘分享)

使用方法,见我写的另一篇关于 Openwrt 旁路由的文章。

  • combined-ext4.img.gz(rootfs工作区存储格式为ext4。)
  • combined-squashfs.img.gz(squashfs相当于可以恢复出厂设置的固件,如果使用中配置错误,可直接恢复默认设置。)
  • generic-rootfs.tar.gz(rootfs的镜像,不带引导,可自行定义用grub或者syslinux来引导。)
  • rootfs-ext4.img.gz(rootfs的镜像,不带引导,可自行定义用grub或者syslinux来引导,需要存储区是ext4。)
  • rootfs-squashfs.img.gz(rootfs的镜像,不带引导,可自行定义用grub或者syslinux来引导,如果使用中配置错误,可直接恢复默认设置。)

fatal error: closing dependency file .deps/parseopt.Tpo: No space left on device

Untitled

解决:

https://github.com/coolsnowwolf/lede/issues/1454

有说,kernel分区空间不够了,编译配置里进入Target Images菜单,把kernel默认16M改成32M,成功编译,老树莓派可用

但我这里,确实空间不够了

Untitled

linux 扩容,除了 Vmware 调整之外,还要进系统扩容,想想 Windows 磁盘管理和 Ubuntu 的磁盘管理?

Untitled

实际上才用了 20GB。

fdisk /dev/sda 命令进行分区,依次输入 m、n、p、默认回车、默认回车、w 命令。

Untitled

输入 lsblk 命令查看新加的硬盘分区状况。

Untitled

之后要安装 LVM 工具,(Linux Logical Volume Manager):apt install lvm2

然后 vgdisplay vgextend 等命令,发现都没用!!!

最后 centos7根目录扩容(根目录在sda3 vgdisplay为空) - 知乎 (zhihu.com) 成功:

把所有的删了重建,从头到尾只用到 fdisk /dev/sda,不停 d,最后 n

Untitled

之后,参考 如何无损扩展 Debian 硬盘分区 - azhuge233’s

注意分区是好了,但是还没在 df 中显现,需要 apt install cloud-utils

然后:resize2fs /dev/sda1(这一步很关键

Untitled

Untitled

修改 /etc/default/grub 文件之后: update-grub

But that file is already provided by package * dnsmasq

Untitled

参考:openwrt 编译 出现dnsmasq 错误_dnsmasq-full_liu1250836704的博客-CSDN博客

进入到 Base system  —>  菜单找到dnsmasq 选项将其去掉

Untitled

成功

Untitled

参考文章

标签 :
comments powered by Disqus

相关文章

单调栈

陈述 顾名思义,就是单调的栈,可严格可不严格。能够找到下一个更大/小的元素,同时能找到上一个大于等于/小于等于的元素。 通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时我们就要想到可以用单调栈了1。

阅读更多
什么软件才能让你的 macOS 更好用?

动机 起因是我重置了系统,然后发现过去的习惯都要重新来一遍,于是为什么不写一篇文章呢? brew install --cask microsoft-edge calibre sogouinput mos snipaste iina iterm2 rectangle 这里先给出一份 CheckList: 软件 clash for windows homebrew microsoft onenote & outlook & edge wechat & qq sogouinput、微信输入法 Desktop Pets:App Store 上的有趣软件,养一个电子宠物吧 Notion:必备人生管理软件,管理你的任务、物品、健身情况等,自定义能力超强的数据库 阿里云盘:不限速云盘 Calibre:电子书管理器 mos: 鼠标与触控板方向不一致的解决方案 Snipaste:截图贴图 iina:超好用的播放器,配合网络上资源站的视频地址,完全不会发热 iterm2:可以透明背景、图片背景的终端 Lens:管理 k8s 神器 Rectangle:向 windows 一样排布窗口 Paragon NTFS for Mac:希捷官网下载是免费的 软件和固件下载 | Support Seagate US 系统设置:键盘快捷键、触发角、默认网页浏览器、调度中心使窗口按应用程序成组 ActivityWatch:时间追踪工具 Typora:markdown 编辑器,剪贴板的图片能给你自动复制到当前文件夹下,很适合本地写博客 Squash:图片压缩工具 macOS Assistant: macOS 小助手,一键 bypass 签名 LocalSend:本地传输文件,特别是往安卓设备传输东西 浏览器插件 简悦:纯净阅读 Adblock plus:屏蔽广告 Dark Reader:暗黑模式 Menu fish:古诗词标签页 Relingo:英语生词自动标记 Wayback Machine:网站记录备份 Stylus:重新编辑网站 CSS 样式 Wappalyzer:网站使用了哪些技术栈 Web Clipper(配合语雀):剪藏 FireShot:截屏 篡改猴(浏览器同步脚本) Microsoft编辑器:检查拼写和语法 命令行 oh-my-zsh:一定要用 zsh Roboto Mono for powerline 字体:在 iterm2 中设置 zsh 插件 zsh-syntax-highlighting zsh-autosuggestions spaceship-ember spaceship-vi-mode autojump:j neovim:nvim 开发 TabNine:GitHub Copilot 平替 visual-studio-code:开发必备 主旨 ZSH 配置 Spaceship 安装与配置 https://github.com/spaceship-prompt/spaceship-prompt

阅读更多
beancount-gs 一款 self-hosted 复式记账程序,简化你的记账方式!

本程序将部署在 macOS 上,不使用 Docker(mac 上的 Docker 太卡了) 动机 我利用 beancount 来记账已经有一段时间了,但有些痛点问题困扰着我: 没有 web 界面,fava 真的只能用来展示和分析且不好理解,需要有一个方便记账的界面 text 记账的方式,在 vscode 插件能力有限的情况下,很容易忘记 assets 和 expenses 到底叫啥名,如果有 web 界面那么一定会好很多,一个下拉列表就可以解决 有没有解决方案,不需要自己造轮子的那种?

阅读更多