openwrt--编译源码

2023-11-07

准备工作

首先,系统我用的是ubuntu2004,openwrt版本是github上最新版本的代码。

安装需要的软件

sudo apt-get install git g++ make libncurses5-dev subversion libssl-dev gawk libxml-parser-perl unzip wget python xz-utils vim zlibc zlib1g zlib1g-dev openjdk-8-jdk build-essential ccache gettext xsltproc rsync

编译源码

下载源码

git clone https://github.com/openwrt/openwrt.git

更新并安装软件包

切换到下载好的源码下输入以下指令

./scripts/feeds update -a 
./scripts/feeds install -a

选择芯片

切换到源码目录下,输入make menuconfig打开菜单,在最顶层选择以下选项,我用的是卓钛的JS7628。

Target System (MediaTek Ralink MIPS)
Subtarget (MT76x8 based boards)
Target Profile (Jotale JS76x8 32M)

下载依赖

openwrt编译的时候需要下载一些依赖包,切换到下载好的源码下输入以下指令

make download V=s

开始编译

make V=s

安装交叉编译链

源码编译完以后,源码下就已经生成交叉编译链了,路径在**openwrt/staging_dir/toolchain-mipsel_24kc_gcc-11.3.0_musl/bin/**下。我们只需要将该路径加入到环境变量中就可以了。

    echo export STAGING_DIR="/home/moqi/sources/openwrt/staging_dir"  >> ~/.bashrc
    echo export PATH="$PATH:/home/moqi/sources/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-11.3.0_musl/bin" >> ~/.bashrc
    source ~/.bashrc

在命令行输入mipsel-openwrt-linux-gcc -v测试安装是否成功,如果有以下输出证明已经成功了。

    COLLECT_LTO_WRAPPER=/home/moqi/tool/openwrt-toolchain/toolchain-mipsel_24kc_gcc-11.3.0_musl/bin/../libexec/gcc/mipsel-openwrt-linux-musl/11.3.0/lto-wrapper
    Target: mipsel-openwrt-linux-musl
    Configured with: /home/moqi/sources/openwrt/build_dir/toolchain-mipsel_24kc_gcc-11.3.0_musl/gcc-11.3.0/configure --with-bugurl=http://bugs.openwrt.org/ --with-pkgversion='OpenWrt GCC 11.3.0 r19830-849ffbd5ab' --prefix=/home/moqi/sources/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-11.3.0_musl --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=mipsel-openwrt-linux-musl --with-gnu-ld --enable-target-optspace --disable-libgomp --disable-libmudflap --disable-multilib --disable-libmpx --disable-nls --disable-libssp --without-isl --without-cloog --with-host-libstdcxx=-lstdc++ --with-float=soft --with-gmp=/home/moqi/sources/openwrt/staging_dir/host --with-mpfr=/home/moqi/sources/openwrt/staging_dir/host --with-mpc=/home/moqi/sources/openwrt/staging_dir/host --disable-decimal-float --with-diagnostics-color=auto-if-env --enable-__cxa_atexit --disable-libstdcxx-dual-abi --with-default-libstdcxx-abi=new --with-mips-plt --with-headers=/home/moqi/sources/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-11.3.0_musl/include --enable-languages=c,c++ --enable-shared --enable-threads --with-slibdir=/home/moqi/sources/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-11.3.0_musl/lib --enable-lto --with-libelf=/home/moqi/sources/openwrt/staging_dir/host --disable-libsanitizer
    Thread model: posix
    ...

生成交叉编译链

切换到源码目录下,输入make menuconfig打开菜单,在最顶层选择以下选项

    [*] Package the OpenWrt-based Toolchain

选择好以后,重新编译一遍就能得到交叉编译链,编译完以后的文件在 /home/moqi/sources/openwrt/bin/targets/ramips/mt76x8/openwrt-toolchain-ramips-mt76x8_gcc-11.3.0_musl.Linux-x86_64.tar.xz

添加编译选项

添加驱动

wifi驱动
Kernel modules  --->
    Wireless Drivers  --->
        <*> kmod-mt76........... MediaTek MT76x2/MT7603 wireless driver (metapackage)

添加软件

LUCI
LuCI  --->
    1. Collections  --->
        <*> luci................... LuCI interface with Uhttpd as Webserver (default)

单独编译源码

  1. 全新编译:
make ./package/utils/ugps/{clean,compile} V=s
  1. 单独编译:
make ./package/utils/ugps/compile V=s
  1. 清空:
make ./package/utils/ugps/clean V=s
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openwrt--编译源码 的相关文章

  • 【工具使用】STM32CubeMX-基础定时器配置

    一 概述 无论是新手还是大佬 基于STM32单片机的开发 使用STM32CubeMX都是可以极大提升开发效率的 并且其界面化的开发 也大大降低了新手对STM32单片机的开发门槛 本文主要讲述STM32芯片的定时器的配置及其相关知识 二 软件
  • C51单片机实验——脉冲计数显示(proteus+asm)

    前言 脉冲信号输入进2级74LS14整形 T1接收脉冲信号并计数 显示在LED 外部中断0控制计数器的启动 停止 外部中断1控制计数器的清零复位 P1 0控制LED的段选口使能信号 P1 1控制LED的位选口使能信号 Proteus电路图
  • [keil5] 中有关“TOOLS.INI-Section ‘[C51]‘ : missing ‘PATH‘ enty “错误

    在安装vdmagdi后 打开keil5 uVision5出现 gt gt gt TOOLS INI Section C51 missing PATH enty lt lt lt 错误 原因如下 双击运行vdmagdi exe文件 选择了AG
  • OpenWrt 学习记录

    OpenWrt 学习记录 ssh setting CodePath review Makefile CURDIR MAKEFILE LIST ssh setting keygen ssh keygen t rsa C hugh win10W
  • Freertos 在contexM0芯片上的移植

    1 freertos源码 官网下载地址 https www freertos org 下载LTS长期支持版本 2 在工程目录下新建FreeRTOS文件夹 将FreeRTOS 的源码添加到这个文件夹中 portable 文件夹中只需要复制 k
  • jshn - 如何解析 json 包

    我想知道如何在openwrt上轻松解析json 我有 jhsn 来解析 json 这是我的程序 sh 脚本 download weather wget api openweathermap org data 2 5 weather id 2
  • MN316 OpenCPU丨HTTP使用介绍

    HTTP Hyper Text Transfer Protocol 即超文本传输协议 是一个简单的请求 响应协议 通常运行在 TCP 之上 它指定了客户端可能发送给服务器消息类型以及得到什么类型响应 HTTPS Hyper Text Tra
  • MN316 OpenCPU丨Flash使用介绍

    在MN316 标准版SDK中 定义了操作模组内置flash接口 用户可操作空间为64KB 分为16个block 每个block大小为4KB 用户如有操作flash的需求 可调用相关接口 FOTA使用流程解析 以下流程图为使用 MN316 O
  • HAL库STM32常用外设教程(二)—— GPIO输入\输出

    HAL库STM32常用外设教程 二 GPIO输入 输出 文章目录 HAL库STM32常用外设教程 二 GPIO输入 输出 前言 一 GPIO功能概述 二 GPIO的HAl库驱动 三 GPIO使用示例 1 示例功能 四 代码讲解 五 总结
  • STM32F103概要

    The STM32F103x4 STM32F103x6 STM32F103xC STM32F103xD and STM32F103xE are a drop in replacement for STM32F103x8 B medium d
  • STM32 GPIO工作原理详解

    STM32 GPIO介绍 1 STM32引脚说明 GPIO是通用输入 输出端口的简称 是STM32可控制的引脚 GPIO的引脚与外部硬件设备连接 可实现与外部通讯 控制外部硬件或者采集外部硬件数据的功能 以STM32F103ZET6芯片为例
  • 请问想要在嵌入式行业扎根成长的人何种学历更为合适?

    今日话题 想要在嵌入式行业扎根成长的人何种学历更为合适 嵌入式行业容纳了来自不同学历背景的人 包括专科 本科和研究生 甚至那些来自非相关领域的人 在这个领域 学历并非唯一的关键 分享一份由一位oppo sp offer的学长制作的学习资料包
  • SH367309芯片

    博主 主要纪录自己常用的几种模式 以及自己觉得需要注意的点 具体的请看数据手册 且大部分都是从数据手册中截取 1 烧写模式 VPRO管脚外接EEPROM烧写电压V PRO 且延时10mS SH367309进入烧写模式 关闭充放电MOSFET
  • 1.69寸SPI接口240*280TFT液晶显示模块使用中碰到的问题

    1 69寸SPI接口240 280TFT液晶显示模块使用中碰到的问题说明并记录一下 在网上买了1 69寸液晶显示模块 使用spi接口 分辨率240 280 给的参考程序是GPIO模拟的SPI接口 打算先移植到FreeRtos测试 再慢慢使用
  • 2.4G SOC收发芯片XL2412P,适用于无线键鼠,遥控器等多种场景

    XL2412P芯片是 款高性能低功耗的SOC集成无线收发芯片 集成MO核MCU 工作在2 400 2 483GHz世界通用ISM频段 该芯片集成了射频接收器 射频发射器 频率综合器 GFSK 调制器 GFSK解调器等功能模块 并且支持一对多
  • 会stm32有机会进大公司吗?

    今日话题 会stm32有机会进大公司吗 我本科期间参与了飞思卡尔和电赛等比赛 使用过多种单片机 但渐渐发现单片机只是其中的一小部分 不要过分迷恋所谓的单片机基础和技巧 更值得深入研究的是C语言 如果你对此感兴趣 我愿意无偿分享一个资源包 其
  • 太阳诱电 | 陶瓷电容器的静电容量相关

    陶瓷电容器的静电容量会因温度而变化吗 电容器的静电容量的温度特性是什么 陶瓷电容器的静电容量随周围的温度而变化 静电容量因温度而变化的现象 称为静电容量的温度特性 这是由于陶瓷电容器使用的材料造成的 也是所有陶瓷电容的常有现象 以下是本公司
  • STM32H5 Nucleo-144 board开箱

    文章目录 开发板资料下载 目标 点亮LD1 绿 LD2 黄 和LD3 红 三个LED灯 开箱过程 博主使用的是STM32CubeMX配置生成代码 具体操作如下 打开STM32CubeMX File gt New project 选择开发板型
  • Cortex-M3与M4权威指南

    处理器类型 所有的ARM Cortex M 处理器是32位的精简指令集处理器 它们有 32位寄存器 32位内部数据路径 32位总线接口 除了32位数据 Cortex M处理器也可以有效地处理器8位和16位数据以及支持许多涉及64位数据的操作
  • 通过 SNMP 访问路由表

    如果我尝试查找安装了 openWRT 的 Linksys WRT54G 的路由表 我需要哪个 MIB 那应该是MIB II SNMP 对象 ID OID 为 1 3 6 1 2 1 4 21 可转换为ip ipRouteTable 这对我在

随机推荐