We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SDK 集成了完整构建系统以及预编译工具链,旨在为特定目标交叉编译软件包,而无需从头开始构建整个 ImmortalWrt。
SDK 可以做的事:
SDK 不能做的事:
要使用 SDK,需要预先安装对应的依赖,请参阅 Build system setup。
对于 Debian 系发行版,您可以执行以下命令完成最基础的依赖安装:
sudo apt-get install -y build-essential ccache clang curl file \ g++-multilib gawk gcc-multilib gettext git libdw-dev \ libelf-dev libncurses5-dev locales pv pwgen python \ python3 python3-pip qemu-utils rsync signify-openbsd \ subversion sudo swig unzip wget zlib1g-dev
对于 Arch Linux 系发行版,可以安装 metapackage openwrt-devel:
sudo yay -S openwrt-devel
Important
上述软件包只包括使用 SDK 所必须的依赖。部分软件包可能需要额外安装依赖,请善用搜索引擎。
您可以下载由 ImmortalWrt 项目提供的预编译 SDK,也可以自行从源码构建,在 buildroot 中启用 CONFIG_SDK 即可。预编译 SDK 与固件映像位于同一文件夹中。
CONFIG_SDK
如需下载 ImmortalWrt 提供的预编译 SDK,可通过以下方法确定路径:
概览
状态
目标平台
固件版本
x86/64
ImmortalWrt 21.02.6
immortalwrt-sdk[-<version>]-<platform>_gcc-<gcc_version>_musl.Linux-<sdk_arch>.tar.xz
immortalwrt-sdk-21.02.6-x86-64_gcc-8.4.0_musl.Linux-x86_64.tar.xz
如果使用 docker,可以直接 pull 我们提供的镜像:
docker run --rm -it immortalwrt/sdk:x86-64-openwrt-21.02.6
您可以在 此处 获取所有可用 tags。
Warning
ImmortalWrt 项目所提供的预编译 SDK 仅供 x86_64 / AMD64 平台使用,其他架构则需要自行构建。
Note
在稳定发布版本中,SDK 所包含的源码会被固定版本,因此无法收到当前分支最新的更新。 您可以从当前分支的快照版本中获取 SDK,如 releases/21.02-SNAPSHOT/targets/x86/64 或 sdk:x86-64-21.02-SNAPSHOT。
ImmortalWrt 目前拥有多个镜像站,您可以从最快的镜像中下载: https://downloads.immortalwrt.org/acknowledgements.html
以下所有操作必须以非特权用户(non-root)身份执行。
解压或 pull SDK 后,可按需修改 feeds.conf.default,增加自己需要的第三方软件源,如:
feeds.conf.default
src-link local_feed /path/to/local/custom/feed src-git remote_feed <repo url>[;<branch>]
[!IMPORTANT] 如需覆盖 ImmortalWrt 中已有的软件包,请确保将您自己的源放置在默认源上方。 或者,您也可以直接将软件包放置在 package/ 路径下。
package/
更新软件源,刷新软件包列表
./scripts/feeds update -a
安装需要编译的软件包
./scripts/feeds install <package name>
install 参数说明:
-a
-p
-p <feed name>
-d <m/n>
-f
[!NOTE] 可以使用命令 ./scripts/feeds list 查看所有可用软件包及其描述
./scripts/feeds list
更新 buildroot 配置
运行命令 make menuconfig 或 make nconfig,配置自己需要的软件包。
make menuconfig
make nconfig
[!NOTE] 默认情况下,buildroot 会选中所有软件包,您可以在首次配置时进入 Global build settings 取消选中。
Global build settings
由于默认情况下 SDK 会选中所有软件包,在未经额外配置的情况下,不建议直接使用 make 进行全量编译。 在编译时,您可以指定需要编译的软件包,如:
make
make package/path/to/package/compile V=s
buildroot 会自动寻找软件包所在目录,所以也可以简化为:
make package/<pkg folder name>/compile V=s
编译完毕后,可以在 bin/packages 及 bin/targets/<platform>/packages 目录下找到编译好的 .ipk 文件。 可以通过 LuCI 系统 -> 软件包 -> 上传软件包 进行安装。
bin/packages
bin/targets/<platform>/packages
.ipk
系统
软件包
上传软件包
The text was updated successfully, but these errors were encountered:
No branches or pull requests
什么是 SDK
SDK 集成了完整构建系统以及预编译工具链,旨在为特定目标交叉编译软件包,而无需从头开始构建整个 ImmortalWrt。
SDK 可以做的事:
SDK 不能做的事:
依赖要求
要使用 SDK,需要预先安装对应的依赖,请参阅 Build system setup。
对于 Debian 系发行版,您可以执行以下命令完成最基础的依赖安装:
对于 Arch Linux 系发行版,可以安装 metapackage openwrt-devel:
Important
上述软件包只包括使用 SDK 所必须的依赖。部分软件包可能需要额外安装依赖,请善用搜索引擎。
获取 SDK
您可以下载由 ImmortalWrt 项目提供的预编译 SDK,也可以自行从源码构建,在 buildroot 中启用
CONFIG_SDK
即可。预编译 SDK 与固件映像位于同一文件夹中。如需下载 ImmortalWrt 提供的预编译 SDK,可通过以下方法确定路径:
概览
->状态
中找到目标平台
以及固件版本
x86/64
,固件版本为ImmortalWrt 21.02.6
,则对应 SDK 目录为:releases/21.02.6/targets/x86/64
immortalwrt-sdk[-<version>]-<platform>_gcc-<gcc_version>_musl.Linux-<sdk_arch>.tar.xz
如
immortalwrt-sdk-21.02.6-x86-64_gcc-8.4.0_musl.Linux-x86_64.tar.xz
如果使用 docker,可以直接 pull 我们提供的镜像:
您可以在 此处 获取所有可用 tags。
Warning
ImmortalWrt 项目所提供的预编译 SDK 仅供 x86_64 / AMD64 平台使用,其他架构则需要自行构建。
Note
在稳定发布版本中,SDK 所包含的源码会被固定版本,因此无法收到当前分支最新的更新。
您可以从当前分支的快照版本中获取 SDK,如 releases/21.02-SNAPSHOT/targets/x86/64 或 sdk:x86-64-21.02-SNAPSHOT。
Note
ImmortalWrt 目前拥有多个镜像站,您可以从最快的镜像中下载:
https://downloads.immortalwrt.org/acknowledgements.html
使用 SDK
Warning
以下所有操作必须以非特权用户(non-root)身份执行。
初始化 SDK
解压或 pull SDK 后,可按需修改
feeds.conf.default
,增加自己需要的第三方软件源,如:更新软件源,刷新软件包列表
安装需要编译的软件包
install 参数说明:
-a
:安装软件源中的所有软件包;如果指定了-p
,则安装特定软件源中的所有软件包-p <feed name>
:优先从此软件源中安装包-d <m/n>
:为安装的软件包设置默认状态(m:选中,n:未选中)-f
:如果目前已经安装了同名软件包,则强制覆盖更新 buildroot 配置
运行命令
make menuconfig
或make nconfig
,配置自己需要的软件包。编译软件包
由于默认情况下 SDK 会选中所有软件包,在未经额外配置的情况下,不建议直接使用
make
进行全量编译。在编译时,您可以指定需要编译的软件包,如:
buildroot 会自动寻找软件包所在目录,所以也可以简化为:
编译完毕后,可以在
bin/packages
及bin/targets/<platform>/packages
目录下找到编译好的.ipk
文件。可以通过 LuCI
系统
->软件包
->上传软件包
进行安装。参考
The text was updated successfully, but these errors were encountered: