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上解压

使用如下代码解压

bash 复制代码
tar -xvf immortalwrt-sdk-24.10.4-mediatek-filogic_gcc-13.3.0_musl.Linux-x86_64.tar.zst
cd immortalwrt-sdk-24.10.4-mediatek-filogic_gcc-13.3.0_musl.Linux-x86_64/

我们需要安装如下软件

bash 复制代码
sudo apt update
sudo apt install -y make python3-pip aria2 genisoimage build-essential gawk gcc-multilib g++-multilib flex bison gettext \
  unzip zlib1g-dev libncurses-dev libssl-dev rsync curl wget \
  python3 python3-venv python3-setuptools file tar git patch \
  libelf-dev libtool autoconf automake subversion xsltproc

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

bash 复制代码
./scripts/feeds update luci
./scripts/feeds install luci

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

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

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

bash 复制代码
cd ..
 make package/luci-app-parentcontrol/compile V=s

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

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

3.2 istoreos

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

bash 复制代码
git clone https://github.com/istoreos/istoreos.git
cd istoreos
./scripts/feeds update luci
./scripts/feeds install luci

其余部分与3.1的方法相同

补充:如果是第一次运行打包编译软件会遇到

只需要save保存.config即可退出该页面,后期编译就不会弹出这个页面了

4 固件编译

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

bash 复制代码
./scripts/feeds update -a
./scripts/feeds install -a

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

bash 复制代码
make menuconfig

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

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

bash 复制代码
make tools/install V=s

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

相关推荐
行初心5 小时前
uos基础 autostart 设置程序开机自启动
运维
Dovis(誓平步青云)5 小时前
《Linux 核心 IO 模型深析(中篇):探索Cmake与多路转接的高效实现poll》
linux·运维·服务器·数据库·csdn成长记录
韦东东5 小时前
行业资讯日报自动化:从采集到 LLM 生成的全链路拆解(以政务网站为例)
运维·人工智能·自动化·大模型·llm·政务·行业资讯
tianyuanwo5 小时前
TERM变量迷思:从Jenkins节点连接差异看终端仿真与构建系统的微妙关系
运维·ssh·jenkins·java web·term
一勺菠萝丶5 小时前
Jenkins 打包显示 SUCCESS 但产物不全?日志出现 Killed 的排查与解决(小白版)
运维·jenkins
tyatyatya5 小时前
Ansible自动化配置,从入门到实战
运维·自动化·ansible
Anakki5 小时前
企业级 Elastic Stack 集成架构:Spring Boot 3.x 与 Elasticsearch 8.x 深度实践指南
运维·jenkins·springboot·elastic search
DevOps-IT5 小时前
HTTP状态码(常见 HTTP Status Code 查询)
运维·服务器·网络·网络协议·http
释怀不想释怀5 小时前
Docker(安装软件)
运维·docker·容器
EndingCoder5 小时前
函数基础:参数和返回类型
linux·前端·ubuntu·typescript