编辑推荐
极企科技联合创始人力作,详解OpenWrt在各类不同设备的玩法。
内容简介
本书汇集了各类基于OpenWrt系统的路由器、物联网、智能家居方向的技能和行业内知名企业的技术经验。本书区别于传统嵌入式系统书籍,并没有一上来介绍那些晦涩的软硬件知识,本书所介绍的内容门槛更低,更适合读者循序渐进地完成学习。书中使用更轻松的表达方式,让读者开开心心便可以完成智能路由器的开发。
由于路由器大量采用了开源操作系统,哥伦比亚大学法学院教授Eben Moglen向路由器厂商提出了开源路由器系统部分的要求,这样,2004年OpenWrt诞生了White Russian版,之后每一两年便发布一个新的版本。现今,OpenWrt系统在智能路由器行业已是事实性标准,大量的芯片厂商及路由器厂商(包括小米、极路由、极企科技等知名互联网科技企业)均采用该系统作为路由器或智能家居控制中心,即使宣称没有使用OpenWrt的厂商,也多是在该系统基础之上进行了业务定制。
OpenWrt作为开源组织采取松散管理,很难找到一份比较系统的专业技术文档用于爱好者学习。因此2012年由hoowa发起、众多技术“大神”参与的“跟hoowa学智能路由”在线培训开始启航,本书所有内容均原滋原味来源于此。本书遵循“学中做,做中学”的理念,将内容分为19章,读者可以跟着本书内容,边学边做,终完成一个智能路由器的开发。
本书主要从OpenWrt这个系统的角度来介绍,但书中内容不局限于路由器本身,通过阅读本书,读者可以掌握智能家居、智能玩具、工业控制等各类不同设备的玩法。本书适合计算机或电子类相关学生、从事IT行业的人员、智能设备或OpenWrt系统的发烧友、各智能设备厂商员工阅读。
作者简介
作者王伟,副教授。自2009年起,主要从事嵌入式系统软硬件开发相关教学与科研工作,近年来发表中外文学术论文十余篇,出版嵌入式系统开发相关书籍一部,翻译著作一部。多次指导学生参加省级及国-家级专业竞赛,取得优异成绩。从事嵌入式Linux、单片机相关教学工作多年,有较丰富的嵌入式开发经验。
章节目录
版权信息
内容提要
关于本书
OpenWrt社区对中国开发者寄语
致谢
第1章 路由器概述
1.1 传统路由器
1.2 智能路由器
1.3 传统路由器与智能路由器的区别
第2章 OpenWrt介绍
2.1 什么是OpenWrt
2.2 哪些产品用了OpenWrt
2.3 OpenWrt是如何支持路由器CPU的
第3章 智能路由器硬件
3.1 MIPS架构
3.2 国内常见路由器的配置
3.3 常见路由器芯片厂商
3.4 本书智能路由硬件
3.4.1 本书硬件的由来
3.4.2 MT7620芯片
3.4.3 MR808开发板简述
3.4.4 AxWRT系统
第4章 智能路由开发环境搭建
4.1 小企鹅的力量
4.2 准备学习工具
4.3 安装VirtualBox虚拟机
4.4 在虚拟机中安装Centos
4.4.1 创建新虚拟主机
4.4.2 配置新虚拟机
4.4.3 安装Centos系统
4.5 SSH远程登录
4.5.1 SSH的作用
4.5.2 启动网卡
4.5.3 查看当前IP
4.5.4 SSH连接
4.6 WinSCP文件传输
4.6.1 SCP协议
4.6.2 安装WinSCP客户端
4.6.3 创建到Linux的连接
4.6.4 文件传输
第5章 基本知识
5.1 向系统下达命令
5.2 时间命令
5.2.1 查看当前日期
5.2.2 查看当前日历
5.3 关机和重启
5.3.1 立即安全关闭系统
5.3.2 重新启动系统
5.3.3 强制将缓存写入存储器
5.4 权限机制
5.4.1 文件权限
5.4.2 所有者
5.4.3 文件容量
5.4.4 文件日期
5.4.5 可执行文件
5.4.6 隐含文件
5.4.7 修改所有人
5.4.8 修改所有组
5.4.9 修改文件权限
5.5 文件与目录管理
5.5.1 路径概念
5.5.2 特殊目录
5.5.3 变换目录
5.5.4 查看当前所在目录是哪个
5.5.5 创建目录
5.5.6 删除目录
5.5.7 列表文件和目录
5.5.8 复制文件或目录
5.5.9 删除文件或整个目录
5.5.10 移动或更名
5.6 文件分析
5.6.1 查看文件内容
5.6.2 分行查看
5.6.3 查看文件最后几行
5.6.4 查看启动信息
5.7 更多指令
5.8 Vi编辑器
5.8.1 Vi介绍
5.8.2 Vi的命令
5.8.3 Vi的3个状态
5.8.4 Vi编辑操作
5.9 基础Shell编程
5.9.1 何为Shell编程
5.9.2 Shell的运行方式
5.9.3 Hello World!
5.9.4 变量
5.9.5 运算符
5.9.6 注释语法
5.9.7 字符串
5.9.8 条件判断
5.9.9 循环表达
5.9.10 输入/输出重定向
5.9.11 使用黑洞,一劳永逸
第6章 OpenWrt刷机
6.1 通过串口进入系统
6.1.1 操作板子注意事项
6.1.2 连接串口步骤
6.2 认识U-Boot
6.3 U-Boot的TFTP刷机
6.3.1 TFTP的准备
6.3.2 TFTP刷机流程
6.3.3 可能遇到的问题
6.4 U-Boot的Web刷机
6.4.1 触发按钮准备
6.4.2 可能遇到的问题
第7章 分区、外网与OPKG
7.1 了解分区
7.1.1 查看系统MTD分配
7.1.2 查看系统MTD的分区
7.1.3 将非文件系统分区读出来
7.2 文件系统
7.2.1 透明挂载/根目录
7.2.2 基本系统演示
7.2.3 第一次接入网络
7.3 软件包管理OPKG
7.3.1 OPKG语法格式
7.3.2 软件包的内核依赖问题
7.3.3 OPKG的配置
7.3.4 关于OPKG软件包
第8章 UCI命令系统
8.1 UCI命令
8.2 UCI的文件和流程
8.3 UCI的文件语法
8.3.1 config节点语法格式
8.3.2 option选项语法格式
8.3.3 list列表选项语法格式
8.3.4 UCI的语法容错
8.3.5 UCI无法容忍的语法
8.4 UCI命令读写配置
8.4.1 读取类语法
8.4.2 写入类语法
8.5 综合实例
8.5.1 语法测试
8.5.2 举例开启Wi-Fi
第9章 智能路由配置
9.1 网络配置文件
9.1.1 查看网络配置
9.1.2 查看当前网络
9.1.3 查看br-lan桥状态
9.1.4 查看内核日志
9.1.5 网口VLAN
9.2 配置WAN口外网
9.2.1 动态获取IP选项
9.2.2 指定静态IP语法
9.2.3 PPPOE拨号上网语法
9.2.4 WAN口设置
9.2.5 WAN口设置
9.3 配置LAN口服务
9.4 配置无线网络
9.4.1 无线查看命令
9.4.2 实现无线中继
9.5 DHCP服务
9.6 如何连接外网
第10章 防火墙与UPnP
10.1 防火墙命令
10.2 防火墙配置
10.2.1 defaults默认配置
10.2.2 zone域配置
10.2.3 forwarding转发配置
10.2.4 rule规则
10.2.5 direction端口转发
10.3 实现UPnP
10.3.1 安装UPnP
10.3.2 配置UPnP
10.3.3 UPnP命令
第11章 时区、服务、SSH与SCP
11.1 信息和时区
11.2 服务管理
11.3 SSH远程登录
11.3.1 SSH配置
11.3.2 SSH登录
11.4 SCP文件复制
11.4.1 安装SCP客户端
11.4.2 SCP操作
第12章 存储器扩展
12.1 实现原理
12.2 存储器选型
12.3 初始化存储器
12.3.1 存储器软件包
12.3.2 识别存储器
12.3.3 存储器分区
12.3.4 存储器格式化
12.4 存储器扩容设置
12.4.1 rootfs_data数据迁移
12.4.2 获得存储器UUID
12.4.3 自动挂载配置
12.4.4 存储区自动挂载
12.4.5 swap交换区自动挂载
12.4.6 关于挂载的注意事项
第13章 网络存储与文件共享
13.1 Windows文件共享实现
13.1.1 创建文件夹/pub
13.1.2 安装Samba
13.1.3 Samba配置说明
13.1.4 配置共享目录
13.1.5 Windows连接方法
13.2 FTP文件共享实现
13.2.1 安装Pure-FTPD
13.2.2 Pure-FTPD配置说明
13.2.3 配置Pure-FTPD
13.2.4 创建FTP账户
13.2.5 FTP穿越防火墙
13.2.6 WinSCP做FTP客户端
13.2.7 浏览器作FTP客户端
第14章 智能路由器媒体中心
14.1 USB声卡驱动支持
14.1.1 媒体播放必备条件
14.1.2 选择合适的USB声卡
14.1.3 安装声卡驱动
14.1.4 设置默认音量
14.1.5 用命令行播放MP3
14.2 安卓手机远程播放音乐
14.2.1 MP介绍
14.2.2 安装MPD服务
14.2.3 安卓系统安装客户端
14.2.4 关于安卓手机播放音乐
14.3 DLNA数字媒体服务器
14.3.1 DLNA介绍
14.3.2 安装配置MiniDLNA
14.3.3 Inotify与overlay的冲突
14.3.4 启动服务
14.3.5 DLNA客户端
14.3.6 DLNA其他功能
14.4 苹果AirPlay播放音乐
14.4.1 AirPlay介绍
14.4.2 安装与配置Shairport
14.4.3 辅助配置和检查
14.4.4 使用终端播放
第15章 智能路由器编程工具
15.1 Web+PHP建站系统
15.1.1 PHP语言
15.1.2 Web服务
15.1.3 PHP测试代码
15.2 SQLite3与MySQL数据库应用
15.2.1 SQLite3数据库
15.2.2 MySQL数据库
15.3 Python、Lua与Ruby编程工具
15.3.1 Python
15.3.2 Lua
15.3.3 Ruby
第16章 智能路由器服务软件
16.1 VPN(PPTP)服务器与客户端
16.1.1 PPTP协议VPN服务器
16.1.2 PPTP协议VPN客户端
16.2 USB摄像头
16.2.1 USB摄像头准备
16.2.2 MJPG-streamer
16.2.3 浏览器访问
16.3 迅雷远程下载
16.3.1 迅雷远程下载条件
16.3.2 迅雷远程下载
16.4 WiFiDog广告路由器
16.4.1 WiFiDog功能服务
16.4.2 WiFiDog验证界面
第17章 编译定制OpenWrt固件
17.1 OpenWrt编译环境
17.1.1 编译与交叉编译
17.1.2 AxWRT与OpenWrt的关系
17.1.3 OpenWrt的版本关系
17.1.4 准备编译环境
17.2 OpenWrt固件生成
17.2.1 编译流程
17.2.2 获取AxWRT源代码
17.2.3 获取软件包源代码
17.2.4 OpenWrt菜单选项配置
17.2.5 编译固件
17.2.6 清理编译
17.2.7 编译完成
17.3 OpenWrt源码预设
17.3.1 Feeds源
17.3.2 OPKG自定义软件仓库
17.3.3 预设编译参数文件
17.3.4 OpenWrt文件夹的作用
17.3.5 Target/Linux下平台预设文件
17.4 OpenWrt官方版编译
17.4.1 关于编译
17.4.2 关于硬件支持
第18章 编译定制IPK软件包
18.1 IPK软件包与OPKG命令
18.2 IPK软件包规范
18.2.1Makefile格式与流程
18.2.2 PKG_*任务的作用
18.2.3 定义Build/*的作用
18.2.4 定义Package/*的作用
18.2.5 IPK软件包补充说明
18.3 简易软件包mytest
18.3.1 mytest软件包的制作
18.3.2 mytest调试
18.3.3 下载测试
18.4 软件包示例xware
18.5 软件包示例shairport
第19章 智能路由器外设应用实例
19.1 OpenWrt的硬件支持
19.1.1 DTS设备树
19.1.2 GPIO总线
19.2 OpenWrt对LED驱动的支持
19.2.1 LED电路设计
19.2.2 手动测试LED
19.2.3 将LED注册为系统标准LED
19.2.4 LED设置心跳功能
19.2.5 将LED设置为WAN口状态
19.3 OpenWrt对按钮驱动的支持
19.3.1 按钮电路设计
19.3.2 手动测试按钮
19.3.3 将按钮注册为系统按钮
19.3.4 编写脚本检测按钮时长
19.4 OpenWrt对继电器驱动的支持
19.4.1 继电器电路设计
19.4.2 手动测试继电器
OpenWrt智能路由系统开发:跟hoowa学智能路由是2018年由人民邮电出版社出版,作者王伟。
得书感谢您对《OpenWrt智能路由系统开发:跟hoowa学智能路由》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。