当前位置: 首页 > news >正文

Ubuntu编译自定义immortalwrt固件与软件编译

1 前言

istoreos中有许多可安装的软件,但如果自己需要制作一个特定的固件或者编译开源的源码时就需要编译来生成所需软件

2 所需工具

  • 1.Ubuntu系统
  • 2.VMware虚拟机
  • 3.相应版本的sdk开发包
  • 4.ssh连接工具
  • 5.git(可选)

3 软件编译

3.1 openwrt与immortalwrt

首先我们需要在VMware中安装Ubuntu
下载链接

可自行选择服务器或桌面版下载
安装好并启动后通过ssh连接

然后下载对应sdk包

注:固件编译istoreos,openwrt与immortalwrt方法相同

中科大镜像

搜索openwrt或immortalwrt来获取相应版本sdk(以immortalwrt为例)

然后选择对应的处理器型号(这里以mediatek为例)



在此页中找到immortalwrt-sdk-24.10.4-x86-64_gcc-13.3.0_musl.Linux-x86_64.tar.zst下载并上传到Ubuntu上解压

使用如下代码解压

tar-xvf immortalwrt-sdk-24.10.4-mediatek-filogic_gcc-13.3.0_musl.Linux-x86_64.tar.zstcdimmortalwrt-sdk-24.10.4-mediatek-filogic_gcc-13.3.0_musl.Linux-x86_64/

我们需要安装如下软件

sudoaptupdatesudoaptinstall-ymakepython3-pip aria2 genisoimage build-essentialgawkgcc-multilib g++-multilib flex bison gettext\unzipzlib1g-dev libncurses-dev libssl-devrsynccurlwget\python3 python3-venv python3-setuptoolsfiletargitpatch\libelf-dev libtool autoconf automake subversion xsltproc

其次需要更新包内容,如果是编译软件就执行

./scripts/feeds update luci ./scripts/feedsinstallluci

如果因为网络问题无法更新,需要修改feeds.conf.default的下载链接

我们做完这些之后需要将自己写的软件或者git下的源码放入当前目录的package文件夹下(以luci-app-parentcontrol为例)

然后返回上一级目录编译相应软件包

cd..makepackage/luci-app-parentcontrol/compileV=s


显示如图情况后可以去bin/packages/aarch64_cortex-a53/base/目录查看打包软件包

将打包好的软件包在浏览器登陆相应设备管理页面后在软件包内上传并安装即可

3.2 istoreos

需要将仓库git到本地,或直接在网页下载
点此访问

gitclone https://github.com/istoreos/istoreos.gitcdistoreos ./scripts/feeds update luci ./scripts/feedsinstallluci

其余部分与3.1的方法相同

补充:如果是第一次运行打包编译软件会遇到
只需要save保存.config即可退出该页面,后期编译就不会弹出这个页面了

4 固件编译

在固件编译上来说,我们需要下载全部内容

./scripts/feeds update -a ./scripts/feedsinstall-a

执行后需要自行配置相应功能

makemenuconfig

配置好后保存并编译(期间会下载各种编译包,编译时间长并且占用空间大)

最好保留60GB空间来进行编译

maketools/installV=s

编译后固件也会存放在bin/packages/aarch64_cortex-a53/base/

http://www.cnnetsun.cn/news/69680.html

相关文章:

  • Object.defineProperty和Proxy实现拦截的区别
  • 若依物联网
  • PSEN1抗体:如何揭示阿尔茨海默病致病机制与治疗新靶点?
  • Docker Engine 升级指南:保障容器安全的关键步骤
  • 基于zigbee灯光控制照明及色温调节系统的设计与实现(有完整资料)
  • 7、Python高级语法:描述器、属性与元编程实战
  • 【开题答辩全过程】以 基于java技术的校园一卡通系统的设计与实现为例,包含答辩的问题和答案
  • 11、Python 包与应用开发全解析
  • django基于智能推荐算法的全屋定制平台网站设计
  • 详谈:解释器模式(四)
  • 双Buck电路并联下的下垂控制与VDCM协同控制策略:增强直流微电网稳定性的仿真应用
  • Java 日期格式化方法:SimpleDateFormat 和 DateTimeFormatter
  • GPU 渲染模式:OpenGL ANGLE Vulkan 的选择与切换(工程师不踩坑指南)
  • 【dz-968】室内空气监测系统设计
  • 【接口测试】5_接口测试基础 _接口文档解析
  • 最近在搞风光储联合发电系统的仿真,发现直驱风机和光伏逆变器的配合特别有意思。今天就跟大伙儿唠唠这个模型搭建时遇到的坑,顺便分享几个关键模块的调参心得
  • 【保姆级教程】手把手带你读懂AI落地架构图!AI产品经理必备,每个节点都给你讲透!
  • 最小化门控记忆网络在风速条件分位数预测中的实践与应用
  • 先给大伙儿拆解下五层电梯PLC程序的实现逻辑。这玩意儿核心是状态转移和信号竞争,咱们直接上硬核部分。(文末附IO表与接线说明)
  • 「码同学」2025VIP性能测试课程
  • 零基础转行AI产品经理:大模型学习路线与面试题库全攻略
  • iOS 组件化:模块拆分、依赖反转、解耦实践
  • 不容错过!2026中东【沙特】工程机械展览会,震撼来袭
  • 测试数据生成的AI解决方案
  • PyWebview浅谈
  • HUB扩展:数字世界的隐形枢纽与生态重构者
  • 基于能量分配的光伏混合储能系统仿真模型:MPPT控制光伏最大功率跟踪,电池与超级电容协同工作实...
  • 【WebSocket稳定性提升秘诀】:如何在生产环境中规避7类典型错误
  • 为什么你的协程系统响应迟缓?优先级调度设计缺陷可能是罪魁祸首
  • 构造函数返回对象时的陷阱:为什么 `return {}` 会覆盖 new 操作符的默认行为