1. 嵌入式OpenWRT入门基础篇-----OpenWRT源码下载、编译

2023-11-07

       之前一直在做关于op系统的项目,现在不从事这一行了,或许以后也不会了,趁现在还有点记忆,因此在此也算记录一下以前的工作吧,因为OpenWRT是一个很完善的系统,本系列博客也是按照整个系统的开发步骤进行的。本人技术水平不精,如有错误之处,还望多多指正,感谢各位阅读者。OpenWRT是一个功能很强大的路由系统,本系列文章主要介绍将OpenWRT应用于物联网和嵌入式之中。

一、源码下载

     OpenWRT的官方GitHub地址 https://github.com/openwrt/openwrt/,18.06版本下载命令为:

 git clone -b openwrt-18.06 https://github.com/openwrt/openwrt/tree/openwrt-18.06

如需要下载其他版本,可查看官方GitHub中其它分支,下载即可。由于之前用了openwrt 15.05版本,15.05版本下载命令为:

git clone https://git.openwrt.org/15.05/openwrt.git

二、Linux环境配置

     在编译openwrt系统时,Linux系统需要安装一些软件包,才能保证编译不会出错,在此罗列一些常用的、关键的软件包,如果编译中出现报错,可根据提示在进行安装相应的软件包。

sudo apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc

三、编译之前的OpenWRT系统相关配置

  在OpenWRT源码包下载成功之后,首先要进行对源码包的更新安装,执行以下命令:

    ./scripts/feeds update -a
    ./scripts/feeds istall -a

a. 配置使用的芯片架构、芯片的名称、芯片的设备树文件,以下的相关的配置内容,仅为我目前使用的,仅供参考。

我采用的配置 MT7628+32M Flash + 256M RAM,因此上面的第一项选择为 MIPS 架构,第二项选择 MT7688芯片,第三项为芯片的相关设备树驱动配置文件,此文件包含有 调试串口号 、Flash和RAM容量大小等等。 此文件可以自己使用OpenWRT系统自己提供的,也可以在原来的基础上改动,同时也可以自己新建一个属于自己的,后续章节会介绍如何创建一个新的Target Profile 

b. 使能Luci,选中如图中所示功能,此步骤为开OpenWRT的Web界面,在以后就不再介绍开启Web界面的步骤了。

c. 配置基本驱动,下面配置为USB驱动和视频驱动、Mjpeg-mipg-streamer软件,可实现USB摄像头、U盘使用

1). 添加 USB 相关支持

Kernel modules —> USB Support —> <*> kmod-usb-core. ##默认已经选了

Kernel modules —> USB Support —> <*> kmod-usb-ohci. ## usb1.0

Kernel modules —> USB Support —> <*> kmod-usb-uhci. ## usb1.1

Kernel modules —> USB Support —> <*> kmod-usb-storage.

Kernel modules —> USB Support —> <*> kmod-usb-storage-extras.

2). 添加 SCSI 支持

Kernel modules —> Block Devices —> <*>kmod-scsi-core ##默认已选

3). 添加 USB 挂载

Base system —> <*>block-mount

4). 添加自动挂载工具

Utilities —> Filesystem —> <*> badblocks

5). 添加文件系统支持

Kernel modules —> Filesystems —> <*> kmod-fs-ext4 (移动硬盘 EXT4 格式选择)

Kernel modules —> Filesystems —> <*> kmod-fs-vfat(FAT16 / FAT32 格式 选择)

Kernel modules —> Filesystems —> <*> kmod-fs-ntfs (NTFS 格式 选择)

6). 添加 UTF8 编码,CP437 编码,ISO8859-1 编码

Kernel modules —> Native Language Support —> <*> kmod-nls-cp437

Kernel modules —> Native Language Support —> <*> kmod-nls-iso8859-1

Kernel modules —> Native Language Support —> <*> kmod-nls-utf8

Utilities ---> <*> usbutils........ USB devices listing utilities

7). 执行make kernel_menuconfig

File systems ---> {M} Native language support --->

<M> Codepage 437 (United States, Canada)

<M> Simplified Chinese charset (CP936, GB2312)

d. 配置摄像头驱动

Kernel modules —> Video Support —> <*> kmod-video-core

在展开的选项中选中如下

Kernel modules —> Video Support —> <*> kmod-video-uvc

e. 配置 OpenWrt 支持 mipg-streamer 软件

Multimedia —> <*> mjpeg-streamer

四、编译

执行 make V=s 命令,在第一次编译的时候耗费时间较长,如遇到了一些软件包下载过慢或者无法下载,可从网上自行下载相关的文件,替换到目前编译的OpenWRT源码的dl文件夹中。最终编译的固件为 openwrt/bin/rampis/openwrt-rampis-mt7628-mt7628-squashfs-sysupgrade.bin

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1. 嵌入式OpenWRT入门基础篇-----OpenWRT源码下载、编译 的相关文章

  • Mysql子查询和联合(UNION)查询详解

    原文 http www 111cn net database mysql 47438 htm 在mysql中UNION查询是可以联合多个表 union只是mysql中联合查询的一个小点了 下面我来给大家介绍各种mysql中联合查询的语句 大
  • PS对白色过曝的区域建立选区,可先调整图像亮度对比度

    PS对白色过曝的区域建立选区 因为白色过薄 看不清边缘 解决方案 调整亮度和对比度 1 再选择边缘 就很方便了
  • 全新iPhone首发,结果“华为发布会”冲上热搜第一

    就离谱 苹果发iPhone 15 结果发着发着 华为发布会 冲上了热搜第一 哪怕是iPhone 15全系告别11年闪电接口改用USB C 经典静音键从Pro系列消失 这些库克 违背祖宗的决定 都没抢到更多热度 网友们第一时间倒是吐槽吐出了花
  • 提示“Web打印服务CLodop未安装启动”的各种原因和解决方法

    旧版提示 CLodop云打印服务 localhost本地 未安装启动 新版提示 Web打印服务CLodop未安装启动 点击这里下载执行安装 若此前已安装过 可点这里直接再次启动 成功后请刷新本页面 可能原因及现象及解决方法 原因1 没安装
  • 解决Moment格式化时间出现时区差的问题

    Moment格式化时间默认格式为当地时区的时间 如果格式化的结果与当地时间有差值 一般原因是 要格式化的时间带有时间标志 如 UTC GMT等 经过Moment格式化后 会变成时间标志所表示的时区的时间 此时 只需要改变时间偏移量即可 使用
  • iOS音视频—FFmepg应用-Android平台使用(NDK项目)

    iOS音视频 目录 新建NDK项目 1 编译 so动态库 2 新建在Android平台下的NDK项目 Android本身不支持C C 开发 NDK底层开发 需要我们进行配置 NDK 在Android平台下Google提供的支持C C 开发的
  • 测试学Python白话版(一)

    前言 测试人员转开发 Python是一个特别好的入门级编程语言 Python学起来相对容易 能做的事情也比较多 有了一定的基础之后 再学习其他语言也更加轻松 网上关于Python的教程很对 如果有时间完全可以自学 因为好多测试人员的基础较差
  • CCF-CSP 26次 第三题【角色授权】

    计算机软件能力认证考试系统 20分 include
  • 深度学习6-高级强化学习库

    高级强化学习库 使用高级库的动机 不要从头开始重新实现一切 PTAN库以及最重要的部分 将通过代码示例进行说明 针对CartPole上的DQN 使用PTAN库来实现 可以考虑的其他RL库 为什么使用强化学习库 RL十分灵活 并且很多现实生活
  • 如何实现侧边栏高亮?

    大家好 我是IT修真院深圳分院第九期的学员徐炜 一枚正直纯洁善良的前端程序员 今天给大家带来的是如何实现侧边栏高亮 一 背景介绍 侧边栏高亮是指选择侧边栏菜单时有一个样式效果 当刷新页面的时候 这个效果还在 侧边栏高亮有很多种实现方法 根据
  • 有趣的数据结构算法7——双向循环链表的实例应用

    有趣的数据结构算法7 双向循环链表的实例应用 问题复述 解题思路 实现代码 GITHUB下载连接 问题复述 要求实现用户输入一个数字改变26个字母的排列顺序 正常情况下26个字母的排列顺序是A B C D E F G H I J K L M
  • python随机生成十个数

    import random a range 3 100 2 b random sample a 10 print b x 0 for i in b x 1 print 整数的个数为 0f format x
  • 怎么查看文件的MD5码

    windows下查看MD5 步骤一 首先使用WIN R快捷键 进入CMD命令行模式 步骤二 然后在cmd命令行中切换到指定目录 或者直接使用绝对路径 certutil hashfile D file txt MD5 certutil has
  • Spring集成XxlJob核心初始化类,对应版本:2.4.1-SNAPSHOT

    XxlJobSpringExecutor 继承了XxlJobExecutor父类 实现了ApplicationContextAware SmartInitializingSingleton DisposableBean接口 在Spring容
  • Python如何开发桌面应用程序?Python基础教程,第十三讲,图形界面

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 当使用桌面应用程序的时候 有没有那么一瞬间 想学习一下桌面应用程序开发 行业内专业的桌面应用程序开发一般是C C 来做 Java开发的也有 但是比较少 本节课会介绍Pyth
  • Android NDK Win10安装及环境变量配置(图文详细教程)

    首先需要安装 Android Studio Android Studio 的安装比较简单 这里不赘述 如果没有安装请先自行安装 1 使用Andorid Studio 进行安装 在顶部菜单中 选择 Tools gt SDK Manager 如
  • css怎么隐藏滚动条

    法一 使用伪类隐藏滚动条 仅限Chrome与Safari scrollbar width none 仅限firefox ms overflow style none 仅限IE 10 隐藏滚动条 element width 100 heigh
  • 可继承多线程单例模式

    template
  • 【1day】sqli-labs靶场,第一关基础个人详解

    目录 SQL注入基本步骤 一 Less 1 1 注入点测试 2 查询字段数 3 判断回显位 4 查询数据库基本信息 5 爆表名 6 爆字段名 7 获取数据 总结 SQL注入基本步骤 第一步 注入点测试 第二步 查询字段数 第三步 判断回显位

随机推荐