之前一直在做关于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
在编译openwrt系统时,Linux系统需要安装一些软件包,才能保证编译不会出错,在此罗列一些常用的、关键的软件包,如果编译中出现报错,可根据提示在进行安装相应的软件包。
sudo apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc
在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 --->
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