OpenWrt - 官网知多少?

本文详细解析了OpenWrt固件的选择与安装流程,涵盖了不同硬件架构的适配,如x86、geode等,以及固件格式如ext4和squashfs的区别。同时,介绍了固件补充文件、内核模块、软件包等内容,帮助读者理解如何为路由器和NAS设备定制OpenWrt系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

视频:https://www.youtube.com/watch?v=OXgEJwniKQ0

解读原生固件软件包,查找您设备支持的固件。


  • 查看 OpenWrt 和 Lede 合并后的最新版本
  • 如何查找您设备属于那种硬件架构?
  • 如何悬着你自己设备的固件和软件包

OpenWrt 是一个针对嵌入式设备的 Linux 操作系统。
官网:https://openwrt.org/

在这里插入图片描述

固件目录

点击查看所有固件,进去的页面对固件进行了按处理器类型分组

在这里插入图片描述

路由器的厂商种类繁多,所用的芯片也各不相同,如果如果想在路由器上安装 OpenWrt,你需要先知道路由器型号的芯片架构,然后在这个页面里面选择对应的架构

(常用的路由器,如何安装OpenWrt固件)

这次主要看下 NAS设备上的芯片架构。

nas一般用的是英特尔CPU,属于x86架构,因此我们选择

在这里插入图片描述

  • 64 适用于现在大多数pc64位硬件
  • generic 适用于32位硬件(选择这个,应该也可以在64位的CPU架构上运行,一般64位兼容32位)
  • geode 是AMD公司针对低功耗应用所涉及的x86处理器,其频率从400MHz到1GHz不等,主要用于各种终端、瘦客户机和移动数码设备(目前仍然在许多老的网络设备中使用)
  • legacy 用于奔腾四之前的非常旧的PC硬件,在Linux系统体系中称为i386(会错过许多现在硬件上想要、需要的功能,如多核支持以及对超过1G RAM的支持)

在这里插入图片描述

点进去分两块

  • Image Files 固件镜像
  • Supplementary Files 对上面固件的补充文件(就是提供了一些额外实用的安装包)

在这里插入图片描述

我们在 Image Files 的表格中可以看到 ext4squashfs ,他们两个单词都是文件系统类型

区别是 :

  • ext4 格式的固件更适合熟悉 Linux 系统的用户使用,可以比较方便的调整 ext4 分区的大小。(如果你又扩展根分区的需求,请选择带 ext4 的固件)
  • squashfs 格式的固件适用于不折腾的用户,其优点是可以比较方便地进行系统还原(哪怕一不小心玩坏固件,只要还能进入控制面板,就可以很方便的进行系统还原操作)

    squashfs 是一个高度压缩的只读文件系统,它可以将高达 2~3GB压缩到一个只有700M的文件中

  • rootfs 另外还有这个是挂载在容器根目录上用来为容器进程提供隔离后执行环境(就是所谓的容器镜像,一个最常见的rootfs或者容器镜像狐疑包括比如 /bin/etc/proc的目录和文件)

    其中:

    • rootfs-ext4.img.gz 这个固件表示使用 rootfs 的镜像,不带引导,可自行定义用 grab 或者 syslinux 来引导存储为 ext4
    • vmlinux 最后一个 vm开头的它是linux内核可执行文件的名称,是压缩的linux内核,他能将操作系统加载到内存中,从而使计算机何用并可以运行应用程序(这里我们不讨论)

在这里插入图片描述

下面我们看着一下固件的补充文件

补充文件中包含一些构建工具、ImageBuilder、sha256sum、GPG签名认证,和其他一些有用的文件

在这里插入图片描述

  • kmods 包含的是内核模块(Kernel Module):
    最常见的驱动模块就是:
    显卡、网卡、蓝牙等

  • packages 包含 kmods
    除此之外有 iwinfo(可以用iwinfo命令来配置和获取设备的信息)
    iptables(在centos6操作系统上就自带iptables,防火墙)
    FWTools(一套处理GIS和遥感数据的开源工具)
    等…技术相关软件
    (但是不包含**上网、blog服务器、广告屏蔽等应用性质的常用软件包)

  • config.buildinfofeeds.buildinfo 一个是构建的配置文件,一个是指示从哪里下载软件包的配置文件(如果需要自己构建固件,则可能需要这两个文件)

  • openwrt-imagebuilder********************** 一个预编译环境,适用于在不从源码编译的情况下创建自定义镜像文件,它下载预编译的软件包,并集成在一个可擦写的镜像中(如果你想定制自己的OpenWrt路由器,可以使用这个ImageBuilder)

  • openwrt-sdk*************************************

  • sha256sums 这个文件是用来校验软件包的完整性的。

  • version.buildinfo 是一个构件的版本信息

发行说明

如果你想看一下 OpenWrt 最新固件版本的发行说明,你可以点下这个分行说明

在这里插入图片描述

在这里有 OpenWrt 最新版的亮点:

  • Linux内核更新版本
  • gcc更新版本

WPA3 支持
已知问题

支持的设备

在这里插入图片描述

支持设备的一般要求

  1. 受 OpenWrt 支持的 SoC 或 解决方案

    这里的 SoC 称为系统级芯片,也称为片上系统(意指它是一个产品,是一个有专用目标的集成电路,其中包含完整的系统、并由嵌入软件的全部内容)

  2. 有足够的闪存来存储 OpenWrt 固件镜像

  3. 有足够的内存(RAM)来保证稳定运行

在这里插入图片描述

软件包

OpenWrt发行版提供了数千个软件包来扩展您的设备的功能。
在这里插入图片描述
软件包首页
按种类对软件包进行划分

在这里插入图片描述

有 java开发类、bt种子下载类、vpn类。。。。

在这里插入图片描述
软件包列表
可以按需搜索软件包

在这里插入图片描述

如随机搜索一个字符串 “openVPN”
就碰巧搜到了一些类似的软件包名 🐶
在这里插入图片描述

在刷入 OpenWrt 后,可以使用 WebUI或者CLI安装额外的软件包

  • WebUI是可视化界面的方式进行安装
  • CLI 是通过命令行工具的方式进行安装

下载

包含发表至今的所有稳定版本

在这里插入图片描述
在这里插入图片描述
进去后有两个目录

  • targets 这个目录是固件(点进去就是“固件目录”,即一开始说的按类目分类的页面)
    在这里插入图片描述

  • packages 这个目录是固件的软件包
    同样是按处理器类型分类
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

硬件列表

轻松的找到您的设备专用的官方发行版本

在这里插入图片描述

如果搜华硕 ASUS

就可以搜到华硕这个品牌下的信号所对应的 CPU 和 目标类型和子类型

在这里插入图片描述

这里的 目标类型是 cpu架构类型,如:
在这里插入图片描述
子类型是 cpu架构下的几种实现
在这里插入图片描述

下载统计

下载 页最底部有 “下载统计” 按钮。

通过他,能知晓最近最热门固件、软件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

function cc() { local current_dir="" local openwrt_dir="" local parent_dir=".." local target_dir_pattern="target-*" local linux_dir_pattern="linux-siflower*" local hostapd_dir_pattern="hostapd-*" # 查找 OpenWrt 目录 while [[ -z "$openwrt_dir" ]] && [[ "$parent_dir" != "/" ]]; do openwrt_dir=$(find "$(pwd)/$parent_dir" -maxdepth 1 -type d -name "Openwrt-master") if [[ -n "$openwrt_dir" ]]; then openwrt_dir=$(realpath "$openwrt_dir") fi parent_dir="../$parent_dir" done [[ -z "$openwrt_dir" ]] && return 1 # 动态路径生成逻辑 if [[ "$1" == "back" ]]; then local build_dir="${openwrt_dir}/build_dir" local target_dir=$(find "$build_dir" -maxdepth 1 -type d -name "${target_dir_pattern}" | head -1) [[ -z "$target_dir" ]] && return 1 local linux_dir=$(find "$target_dir" -maxdepth 1 -type d -name "${linux_dir_pattern}" | head -1) [[ -z "$linux_dir" ]] && return 1 current_dir="${linux_dir#$openwrt_dir/}/backports-5.15.162-1" elif [[ "$1" == "host" ]]; then local build_dir="${openwrt_dir}/build_dir" local target_dir=$(find "$build_dir" -maxdepth 1 -type d -name "${target_dir_pattern}" | head -1) [[ -z "$target_dir" ]] && return 1 local hostapd_dir=$(find "$target_dir/hostapd-wpad-mesh-wolfssl" -maxdepth 1 -type d -name "${hostapd_dir_pattern}" | head -1) [[ -z "$hostapd_dir" ]] && return 1 current_dir="${hostapd_dir#$openwrt_dir/}" elif [[ "$1" == "wifi" ]]; then current_dir="package/kernel/siflower/openwrt-x2880-driver/src" elif [[ "$1" == "mesh" ]]; then current_dir="package/kernel/siflower/easymesh" elif [[ "$1" == "eth" ]]; then current_dir="package/kernel/siflower/sf_eth" elif [[ -n "$1" ]]; then return 1 fi # 执行目录跳转 if [[ -d "$openwrt_dir/$current_dir" ]]; then cd "$openwrt_dir/$current_dir" || return 1 else return 1 fi } function gn() { grep -rn "$1" } function mk() { if [[ "$1" == "1" ]]; then make -j1 V=s elif [[ "$1" == "wifi" ]]; then if [[ "$2" == "clean" ]]; then make ./package/kernel/siflower/openwrt-x2880-driver/clean elif [[ -z "$2" ]]; then make ./package/kernel/siflower/openwrt-x2880-driver/compile -j31 V=s fi elif [[ "$1" == "con" ]]; then make ./package/kernel/siflower/easymesh/controller/compile -j31 V=s elif [[ "$1" == "ag" ]]; then make ./package/kernel/siflower/easymesh/agent/compile -j31 V=s elif [[ "$1" == "tr" ]]; then make ./package/kernel/siflower/easymesh/1905_transport/compile -j31 V=s else make -j31 V=s fi }帮我给这三个function分别起个更好的名字
03-21
添加之后还有报错huaxi@ubuntu:~/openwrt/openwrt-15.05.1$ make package/shared_memory/{clean,compile,install} V=s make[1]: Entering directory '/home/huaxi/openwrt/openwrt-15.05.1' make[2]: Entering directory '/home/huaxi/openwrt/openwrt-15.05.1/package/shared_memory' rm -f /home/huaxi/openwrt/openwrt-15.05.1/bin/realview/packages/base/shared_memory_* rm -f /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/stamp/._installed rm -f /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/packages/.list /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/host/packages/.list rm -rf /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0 make[2]: Leaving directory '/home/huaxi/openwrt/openwrt-15.05.1/package/shared_memory' make[1]: Leaving directory '/home/huaxi/openwrt/openwrt-15.05.1' make[1]: Entering directory '/home/huaxi/openwrt/openwrt-15.05.1' make[2]: Entering directory '/home/huaxi/openwrt/openwrt-15.05.1/package/libs/toolchain' if [ -f /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install.clean ]; then rm -f /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install.clean; fi; echo "libc" >> /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install if [ -f /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install.clean ]; then rm -f /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install.clean; fi; echo "libgcc" >> /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install if [ -f /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install.clean ]; then rm -f /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install.clean; fi; echo "libpthread" >> /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install make[2]: Leaving directory '/home/huaxi/openwrt/openwrt-15.05.1/package/libs/toolchain' make[2]: Entering directory '/home/huaxi/openwrt/openwrt-15.05.1/package/shared_memory' mkdir -p /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0 cp -fpR -u ./src/* /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0/ touch /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0/.prepared_d1b905142a8095dca803c611f8f12ccc rm -f /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/stamp/._installed (cd /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0/./; if [ -x ./configure ]; then find /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0/ -name config.guess | xargs -r chmod u+w; find /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0/ -name config.guess | xargs -r -n1 cp --remove-destination /home/huaxi/openwrt/openwrt-15.05.1/scripts/config.guess; find /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0/ -name config.sub | xargs -r chmod u+w; find /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0/ -name config.sub | xargs -r -n1 cp --remove-destination /home/huaxi/openwrt/openwrt-15.05.1/scripts/config.sub; AR="arm-openwrt-linux-uclibcgnueabi-gcc-ar" AS="arm-openwrt-linux-uclibcgnueabi-gcc -c -Os -pipe -march=armv6k -mtune=mpcore -mfpu=vfp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard" LD=arm-openwrt-linux-uclibcgnueabi-ld NM="arm-openwrt-linux-uclibcgnueabi-gcc-nm" CC="arm-openwrt-linux-uclibcgnueabi-gcc" GCC="arm-openwrt-linux-uclibcgnueabi-gcc" CXX="arm-openwrt-linux-uclibcgnueabi-g++" RANLIB="arm-openwrt-linux-uclibcgnueabi-gcc-ranlib" STRIP=arm-openwrt-linux-uclibcgnueabi-strip OBJCOPY=arm-openwrt-linux-uclibcgnueabi-objcopy OBJDUMP=arm-openwrt-linux-uclibcgnueabi-objdump SIZE=arm-openwrt-linux-uclibcgnueabi-size CFLAGS="-Os -pipe -march=armv6k -mtune=mpcore -mfpu=vfp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard " CXXFLAGS="-Os -pipe -march=armv6k -mtune=mpcore -mfpu=vfp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard " CPPFLAGS="-I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/usr/include -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/include -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/usr/include -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/include " LDFLAGS="-L/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/usr/lib -L/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/lib -L/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/usr/lib -L/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/lib " ./configure --target=arm-openwrt-linux --host=arm-openwrt-linux --build=x86_64-linux-gnu --program-prefix="" --program-suffix="" --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib --sysconfdir=/etc --datadir=/usr/share --localstatedir=/var --mandir=/usr/man --infodir=/usr/info --disable-nls ; fi; ) rm -f /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0/.configured_* touch /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0/.configured_yyy CFLAGS="-Os -pipe -march=armv6k -mtune=mpcore -mfpu=vfp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/usr/include -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/include -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/usr/include -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/include " CXXFLAGS="-Os -pipe -march=armv6k -mtune=mpcore -mfpu=vfp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/usr/include -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/include -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/usr/include -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/include " LDFLAGS="-L/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/usr/lib -L/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/lib -L/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/usr/lib -L/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/lib " make -j1 -C /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0/. AR="arm-openwrt-linux-uclibcgnueabi-gcc-ar" AS="arm-openwrt-linux-uclibcgnueabi-gcc -c -Os -pipe -march=armv6k -mtune=mpcore -mfpu=vfp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard" LD=arm-openwrt-linux-uclibcgnueabi-ld NM="arm-openwrt-linux-uclibcgnueabi-gcc-nm" CC="arm-openwrt-linux-uclibcgnueabi-gcc" GCC="arm-openwrt-linux-uclibcgnueabi-gcc" CXX="arm-openwrt-linux-uclibcgnueabi-g++" RANLIB="arm-openwrt-linux-uclibcgnueabi-gcc-ranlib" STRIP=arm-openwrt-linux-uclibcgnueabi-strip OBJCOPY=arm-openwrt-linux-uclibcgnueabi-objcopy OBJDUMP=arm-openwrt-linux-uclibcgnueabi-objdump SIZE=arm-openwrt-linux-uclibcgnueabi-size CROSS="arm-openwrt-linux-uclibcgnueabi-" ARCH="arm" ; make[3]: Entering directory '/home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0' arm-openwrt-linux-uclibcgnueabi-gcc -Wall A.c -o sender cc1: note: someone does not honour COPTS correctly, passed 0 times In file included from A.c:17:0: shm_comm.h: In function 'calculate_checksum': shm_comm.h:74:5: error: 'for' loop initial declarations are only allowed in C99 mode for (int i = 0; i < len; i++) { ^ shm_comm.h:74:5: note: use option -std=c99 or -std=gnu99 to compile your code Makefile:10: recipe for target 'sender' failed make[3]: *** [sender] Error 1 make[3]: Leaving directory '/home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0' Makefile:31: recipe for target '/home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi//.built' failed make[2]: *** [/home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi//.built] Error 2 make[2]: Leaving directory '/home/huaxi/openwrt/openwrt-15.05.1/package/shared_memory' package/Makefile:191: recipe for target 'package/shared_memory/compile' failed make[1]: *** [package/shared_memory/compile] Error 2 make[1]: Leaving directory '/home/huaxi/openwrt/openwrt-15.05.1' /home/huaxi/openwrt/openwrt-15.05.1/include/toplevel.mk:181: recipe for target 'package/shared_memory/compile' failed make: *** [package/shared_memory/compile] Error 2 huaxi@ubuntu:~/openwrt/openwrt-15.05.1$ make package/shared_memory/{clean,compile,install} V=s Collecting package info: done make[1]: Entering directory '/home/huaxi/openwrt/openwrt-15.05.1' make[2]: Entering directory '/home/huaxi/openwrt/openwrt-15.05.1/package/shared_memory' rm -f /home/huaxi/openwrt/openwrt-15.05.1/bin/realview/packages/base/shared_memory_* rm -f /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/stamp/._installed rm -f /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/packages/.list /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/host/packages/.list rm -rf /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0 make[2]: Leaving directory '/home/huaxi/openwrt/openwrt-15.05.1/package/shared_memory' make[1]: Leaving directory '/home/huaxi/openwrt/openwrt-15.05.1' make[1]: Entering directory '/home/huaxi/openwrt/openwrt-15.05.1' make[2]: Entering directory '/home/huaxi/openwrt/openwrt-15.05.1/package/libs/toolchain' if [ -f /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install.clean ]; then rm -f /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install.clean; fi; echo "libc" >> /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install if [ -f /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install.clean ]; then rm -f /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install.clean; fi; echo "libgcc" >> /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install if [ -f /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install.clean ]; then rm -f /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install.clean; fi; echo "libpthread" >> /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install make[2]: Leaving directory '/home/huaxi/openwrt/openwrt-15.05.1/package/libs/toolchain' make[2]: Entering directory '/home/huaxi/openwrt/openwrt-15.05.1/package/shared_memory' mkdir -p /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0 cp -fpR -u ./src/* /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0/ touch /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0/.prepared_d1b905142a8095dca803c611f8f12ccc rm -f /home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/stamp/._installed (cd /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0/./; if [ -x ./configure ]; then find /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0/ -name config.guess | xargs -r chmod u+w; find /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0/ -name config.guess | xargs -r -n1 cp --remove-destination /home/huaxi/openwrt/openwrt-15.05.1/scripts/config.guess; find /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0/ -name config.sub | xargs -r chmod u+w; find /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0/ -name config.sub | xargs -r -n1 cp --remove-destination /home/huaxi/openwrt/openwrt-15.05.1/scripts/config.sub; AR="arm-openwrt-linux-uclibcgnueabi-gcc-ar" AS="arm-openwrt-linux-uclibcgnueabi-gcc -c -Os -pipe -march=armv6k -mtune=mpcore -mfpu=vfp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard -std=c99" LD=arm-openwrt-linux-uclibcgnueabi-ld NM="arm-openwrt-linux-uclibcgnueabi-gcc-nm" CC="arm-openwrt-linux-uclibcgnueabi-gcc" GCC="arm-openwrt-linux-uclibcgnueabi-gcc" CXX="arm-openwrt-linux-uclibcgnueabi-g++" RANLIB="arm-openwrt-linux-uclibcgnueabi-gcc-ranlib" STRIP=arm-openwrt-linux-uclibcgnueabi-strip OBJCOPY=arm-openwrt-linux-uclibcgnueabi-objcopy OBJDUMP=arm-openwrt-linux-uclibcgnueabi-objdump SIZE=arm-openwrt-linux-uclibcgnueabi-size CFLAGS="-Os -pipe -march=armv6k -mtune=mpcore -mfpu=vfp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard -std=c99 " CXXFLAGS="-Os -pipe -march=armv6k -mtune=mpcore -mfpu=vfp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard -std=c99 " CPPFLAGS="-I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/usr/include -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/include -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/usr/include -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/include " LDFLAGS="-L/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/usr/lib -L/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/lib -L/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/usr/lib -L/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/lib " ./configure --target=arm-openwrt-linux --host=arm-openwrt-linux --build=x86_64-linux-gnu --program-prefix="" --program-suffix="" --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib --sysconfdir=/etc --datadir=/usr/share --localstatedir=/var --mandir=/usr/man --infodir=/usr/info --disable-nls ; fi; ) rm -f /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0/.configured_* touch /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0/.configured_yyy CFLAGS="-Os -pipe -march=armv6k -mtune=mpcore -mfpu=vfp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard -std=c99 -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/usr/include -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/include -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/usr/include -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/include " CXXFLAGS="-Os -pipe -march=armv6k -mtune=mpcore -mfpu=vfp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard -std=c99 -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/usr/include -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/include -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/usr/include -I/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/include " LDFLAGS="-L/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/usr/lib -L/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/lib -L/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/usr/lib -L/home/huaxi/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/lib " make -j1 -C /home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0/. AR="arm-openwrt-linux-uclibcgnueabi-gcc-ar" AS="arm-openwrt-linux-uclibcgnueabi-gcc -c -Os -pipe -march=armv6k -mtune=mpcore -mfpu=vfp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard -std=c99" LD=arm-openwrt-linux-uclibcgnueabi-ld NM="arm-openwrt-linux-uclibcgnueabi-gcc-nm" CC="arm-openwrt-linux-uclibcgnueabi-gcc" GCC="arm-openwrt-linux-uclibcgnueabi-gcc" CXX="arm-openwrt-linux-uclibcgnueabi-g++" RANLIB="arm-openwrt-linux-uclibcgnueabi-gcc-ranlib" STRIP=arm-openwrt-linux-uclibcgnueabi-strip OBJCOPY=arm-openwrt-linux-uclibcgnueabi-objcopy OBJDUMP=arm-openwrt-linux-uclibcgnueabi-objdump SIZE=arm-openwrt-linux-uclibcgnueabi-size CROSS="arm-openwrt-linux-uclibcgnueabi-" ARCH="arm" ; make[3]: Entering directory '/home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0' arm-openwrt-linux-uclibcgnueabi-gcc -Wall A.c -o sender cc1: note: someone does not honour COPTS correctly, passed 0 times In file included from A.c:17:0: shm_comm.h: In function 'calculate_checksum': shm_comm.h:74:5: error: 'for' loop initial declarations are only allowed in C99 mode for (int i = 0; i < len; i++) { ^ shm_comm.h:74:5: note: use option -std=c99 or -std=gnu99 to compile your code Makefile:10: recipe for target 'sender' failed make[3]: *** [sender] Error 1 make[3]: Leaving directory '/home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/shared_memory-1.0' Makefile:32: recipe for target '/home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi//.built' failed make[2]: *** [/home/huaxi/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi//.built] Error 2 make[2]: Leaving directory '/home/huaxi/openwrt/openwrt-15.05.1/package/shared_memory' package/Makefile:191: recipe for target 'package/shared_memory/compile' failed make[1]: *** [package/shared_memory/compile] Error 2 make[1]: Leaving directory '/home/huaxi/openwrt/openwrt-15.05.1' /home/huaxi/openwrt/openwrt-15.05.1/include/toplevel.mk:181: recipe for target 'package/shared_memory/compile' failed make: *** [package/shared_memory/compile] Error 2
最新发布
08-19
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骆言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值