新書推薦:
《
生成式人工智能:AIGC与多模态技术应用实践指南
》
售價:HK$
108.9
《
石油帝国的兴衰:英国的工业化与去工业化
》
售價:HK$
97.9
《
古典的回響:溪客舊廬藏明清文人繪畫
》
售價:HK$
437.8
《
根源、制度和秩序:从老子到黄老学(王中江著作系列)
》
售價:HK$
121.0
《
索恩丛书·北宋政治与保守主义:司马光的从政与思想(1019~1086)
》
售價:HK$
75.9
《
掌故家的心事
》
售價:HK$
85.8
《
农为邦本——农业历史与传统中国
》
售價:HK$
74.8
《
郊庙之外:隋唐国家祭祀与宗教 增订版 (三联·哈佛燕京学术丛书)
》
售價:HK$
105.6
|
編輯推薦: |
极企科技联合创始人力作 OpenWrt社区经理Gregers Petersen亲自推荐 本书主要从OpenWrt这个系统的角度来介绍,但书中内容不局限于路由器本身,通过阅读本书,读者可以掌握智能家居、智能玩具、工业控制等各类不同设备的玩法。
|
內容簡介: |
本书汇集了各类基于OpenWrt系统的路由器、物联网、智能家居方向的技能和行业内知名企业的技术经验。本书区别于传统嵌入式系统书籍,并没有一上来介绍那些晦涩的软硬件知识,本书所介绍的内容门槛更低,更适合读者循序渐进地完成学习。书中使用更轻松的表达方式,让读者开开心心便可以完成智能路由器的开发。 由于路由器大量采用了开源操作系统,哥伦比亚大学法学院教授Eben Moglen向路由器厂商提出了开源路由器系统部分的要求,这样,2004年OpenWrt诞生了White Russian版,之后每一两年便发布一个新的版本。现今,OpenWrt系统在智能路由器行业已是事实性标准,大量的芯片厂商及路由器厂商(包括小米、极路由、极企科技等知名互联网科技企业)均采用该系统作为路由器或智能家居控制中心,即使宣称没有使用OpenWrt的厂商,也多是在该系统基础之上进行了业务定制。 OpenWrt作为开源组织采取松散管理,很难找到一份比较系统的专业技术文档用于爱好者学习。因此2012年由hoowa发起、众多技术大神参与的跟hoowa学智能路由在线培训开始启航,本书所有内容均原滋原味来源于此。本书遵循学中做,做中学的理念,将内容分为19章,读者可以跟着本书内容,边学边做,终完成一个智能路由器的开发。 本书主要从OpenWrt这个系统的角度来介绍,但书中内容不局限于路由器本身,通过阅读本书,读者可以掌握智能家居、智能玩具、工业控制等各类不同设备的玩法。本书适合计算机或电子类相关学生、从事IT行业的人员、智能设备或OpenWrt系统的发烧友、各智能设备厂商员工阅读。
|
關於作者: |
孙冰 1982年出生于辽宁省营口市。从小学4年级开始接触互联网,作为第 一批中国互联网弄潮儿,2001年只身到中关村从事Unix Linux系统开发。2003年成立Perl语言中国协会,致力于Perl语言推广工作,在CSDN开设开源专家博客。2008年创建中国第 一个开源语音通信项目Freeiris。极企科技联合创始人、GLG集团专家顾问、雷锋网专栏撰稿人。 王伟 副教授。自2009年起,主要从事嵌入式系统软硬件开发相关教学与科研工作,近年来发表中外文学术论文十余篇,出版嵌入式系统开发相关书籍一部,翻译著作一部。多次指导学生参加省级及国-家级专业竞赛,取得优异成绩。从事嵌入式Linux、单片机相关教学工作多年,有较丰富的嵌入式开发经验。 刘龙 副教授。东北师范大学毕业,自2005年起从事嵌入式Linux系统研究以来,发表中文核心级别以上论文十余篇,参与或主持横纵向项目5项,带领学生取得国-家级比赛奖项若干。从事嵌入式Linux方面教学工作多年,曾设计过多款嵌入式产品,具有较丰富的系统开发经验。
|
目錄:
|
第 1章 路由器概述1
1.1 传统路由器1
1.2 智能路由器1
1.3 传统路由器与智能路由器的区别2
第 2章 OpenWrt介绍3
2.1 什么是OpenWrt3
2.2 哪些产品用了OpenWrt3
2.3 OpenWrt是如何支持路由器CPU的4
第3章 智能路由器硬件5
3.1 MIPS架构5
3.2 国内常见路由器的配置5
3.3 常见路由器芯片厂商6
3.4 本书智能路由硬件7
3.4.1 本书硬件的由来7
3.4.2 MT7620芯片7
3.4.3 MR808开发板简述8
3.4.4 AXWRT系统11
第4章 智能路由开发环境搭建12
4.1 小企鹅的力量12
4.2 准备学习工具13
4.3 安装VirtualBox虚拟机13
4.4 在虚拟机中安装Centos17
4.4.1 创建新虚拟主机17
4.4.2 配置新虚拟机18
4.4.3 安装Centos系统20
4.5 SSH远程登录23
4.5.1 SSH的作用23
4.5.2 启动网卡23
4.5.3 查看当前IP24
4.5.4 SSH连接24
4.6 WinSCP文件传输25
4.6.1 SCP协议25
4.6.2 安装WinSCP客户端26
4.6.3 创建到Linux的连接28
4.6.4 文件传输29
第5章 基本知识30
5.1 向系统下达命令30
5.2 时间命令30
5.2.1 查看当前日期30
5.2.2 查看当前日历31
5.3 关机和重启31
5.3.1 立即安全关闭系统31
5.3.2 重新启动系统31
5.3.3 强制将缓存写入存储器31
5.4 权限机制31
5.4.1 文件权限32
5.4.2 所有者32
5.4.3 文件容量32
5.4.4 文件日期32
5.4.5 可执行文件32
5.4.6 隐含文件33
5.4.7 修改所有人33
5.4.8 修改所有组33
5.4.9 修改文件权限34
5.5 文件与目录管理34
5.5.1 路径概念34
5.5.2 特殊目录35
5.5.3 变换目录35
5.5.4 查看当前所在目录是哪个35
5.5.5 创建目录36
5.5.6 删除目录36
5.5.7 列表文件和目录36
5.5.8 复制文件或目录37
5.5.9 删除文件或整个目录38
5.5.10 移动或更名38
5.6 文件分析39
5.6.1 查看文件内容39
5.6.2 分行查看39
5.6.3 查看文件后几行39
5.6.4 查看启动信息40
5.7 更多指令40
5.8 Vi编辑器40
5.8.1 Vi介绍40
5.8.2 Vi的命令40
5.8.3 Vi的3个状态41
5.8.4 Vi编辑操作41
5.9 基础Shell编程43
5.9.1 何为Shell编程43
5.9.2 Shell的运行方式44
5.9.3 Hello World!44
5.9.4 变量44
5.9.5 运算符47
5.9.6 注释语法53
5.9.7 字符串54
5.9.8 条件判断54
5.9.9 循环表达56
5.9.10 输入 输出重定向58
5.9.11 使用黑洞,一劳永逸59
第6章 OpenWrt刷机61
6.1 通过串口进入系统61
6.1.1 操作板子注意事项61
6.1.2 连接串口步骤61
6.2 认识U-Boot63
6.3 U-Boot的TFTP刷机64
6.3.1 TFTP的准备64
6.3.2 TFTP刷机流程65
6.3.3 可能遇到的问题67
6.4 U-Boot的Web刷机67
6.4.1 触发按钮准备67
6.4.2 可能遇到的问题69
第7章 分区、外网与OPKG70
7.1 了解分区70
7.1.1 查看系统MTD分配72
7.1.2 查看系统MTD的分区72
7.1.3 将非文件系统分区读出来72
7.2 文件系统73
7.2.1 透明挂载 根目录73
7.2.2 基本系统演示74
7.2.3 第 一次接入网络75
7.3 软件包管理OPKG77
7.3.1 OPKG语法格式77
7.3.2 软件包的内核依赖问题78
7.3.3 OPKG的配置78
7.3.4 关于OPKG软件包79
第8章 UCI命令系统80
8.1 UCI命令80
8.2 UCI的文件和流程80
8.3 UCI的文件语法81
8.3.1 config节点语法格式81
8.3.2 option选项语法格式82
8.3.3 list列表选项语法格式82
8.3.4 UCI的语法容错82
8.3.5 UCI无法容忍的语法82
8.4 UCI命令读写配置82
8.4.1 读取类语法83
8.4.2 写入类语法83
8.5 综合实例84
8.5.1 语法测试85
8.5.2 举例开启Wi-Fi86
第9章 智能路由配置88
9.1 网络配置文件88
9.1.1 查看网络配置88
9.1.2 查看当前网络89
9.1.3 查看br-lan桥状态90
9.1.4 查看内核日志91
9.1.5 网口VLAN91
9.2 配置WAN口外网91
9.2.1 动态获取IP选项92
9.2.2 静态IP语法92
9.2.3 PPPOE拨号上网语法93
9.2.4 WAN口设置94
9.2.5 WAN口设置94
9.3 配置LAN口服务95
9.4 配置无线网络97
9.4.1 无线查看命令99
9.4.2 实现无线中继99
9.5 DHCP服务102
9.6 如何连接外网105
第 10章 防火墙与UPnP106
10.1 防火墙命令106
10.2 防火墙配置106
10.2.1 defaults默认配置107
10.2.2 zone域配置107
10.2.3 forwarding转发配置108
10.2.4 rule规则109
10.2.5 direction端口转发110
10.3 实现UPnP111
10.3.1 安装UPnP111
10.3.2 配置UPnP112
10.3.3 UPnP命令114
第 11章 时区、服务、SSH与SCP115
11.1 信息和时区115
11.2 服务管理118
11.3 SSH远程登录118
11.3.1 SSH配置118
11.3.2 SSH登录119
11.4 SCP文件复制121
11.4.1 安装SCP客户端121
11.4.2 SCP操作123
第 12章 存储器扩展124
12.1 实现原理124
12.2 存储器选型124
12.3 初始化存储器125
12.3.1 存储器软件包125
12.3.2 识别存储器126
12.3.3 存储器分区126
12.3.4 存储器格式化128
12.4 存储器扩容设置129
12.4.1 rootfs_data数据迁移129
12.4.2 获得存储器UUID130
12.4.3 自动挂载配置130
12.4.4 存储区自动挂载132
12.4.5 swap交换区自动挂载133
12.4.6 关于挂载的注意事项134
第 13章 网络存储与文件共享135
13.1 Windows文件共享实现135
13.1.1 创建文件夹 pub135
13.1.2 安装Samba135
13.1.3 Samba配置说明135
13.1.4 配置共享目录137
13.1.5 Windows连接方法137
13.2 FTP文件共享实现139
13.2.1 安装Pure-FTPD139
13.2.2 Pure-FTPD配置说明139
13.2.3 配置Pure-FTPD140
13.2.4 创建FTP账户141
13.2.5 FTP穿越防火墙142
13.2.6 WinSCP做FTP客户端143
13.2.7 浏览器作FTP客户端144
第 14章 智能路由器媒体中心145
14.1 USB声卡驱动支持145
14.1.1 媒体播放条件145
14.1.2 选择合适的USB声卡145
14.1.3 安装声卡驱动145
14.1.4 设置默认音量146
14.1.5 用命令行播放MP3147
14.2 安卓手机远程播放音乐147
14.2.1 MP介绍147
14.2.2 安装MPD服务148
14.2.3 安卓系统安装客户端151
14.2.4 关于安卓手机播放音乐153
14.3 DLNA数字媒体服务器153
14.3.1 DLNA介绍154
14.3.2 安装配置MiniDLNA154
14.3.3 Inotify与overlay的冲突156
14.3.4 启动服务157
14.3.5 DLNA客户端157
14.3.6 DLNA其他功能159
14.4 苹果AirPlay播放音乐159
14.4.1 AirPlay介绍159
14.4.2 安装与配置Shairport159
14.4.3 辅助配置和检查161
14.4.4 使用终端播放162
第 15章 智能路由器编程工具163
15.1 Web PHP建站系统163
15.1.1 PHP语言163
15.1.2 Web服务164
15.1.3 PHP测试代码167
15.2 SQLite3与MySQL数据库应用169
15.2.1 SQLite3数据库169
15.2.2 MySQL数据库173
15.3 Python、Lua与Ruby编程工具174
15.3.1 Python174
15.3.2 Lua175
15.3.3 Ruby175
第 16章 智能路由器服务软件177
16.1 VPN(PPTP)服务器与
客户端177
16.1.1 PPTP协议VPN服务器177
16.1.2 PPTP协议VPN客户端181
16.2 USB摄像头183
16.2.1 USB摄像头准备183
16.2.2 MJPG-streamer184
16.2.3 浏览器访问186
16.3 迅雷远程下载187
16.3.1 迅雷远程下载条件187
16.3.2 迅雷远程下载190
16.4 WiFiDog广告路由器192
16.4.1 WiFiDog功能服务192
16.4.2 WiFiDog验证界面195
第 17章 编译定制OpenWrt固件197
17.1 OpenWrt编译环境197
17.1.1 编译与交叉编译197
17.1.2 AxWRT与OpenWrt的
关系198
17.1.3 OpenWrt的版本关系199
17.1.4 准备编译环境199
17.2 OpenWrt固件生成200
17.2.1 编译流程200
17.2.2 获取AxWRT源代码200
17.2.3 获取软件包源代码201
17.2.4 OpenWrt菜单选项配置201
17.2.5 编译固件203
17.2.6 清理编译204
17.2.7 编译完成204
17.3 OpenWrt源码预设205
17.3.1 Feeds源205
17.3.2 OPKG自定义软件仓库206
17.3.3 预设编译参数文件206
17.3.4 OpenWrt文件夹的作用206
17.3.5 Target Linux下平台预设文件207
17.4 OpenWrt官方版编译208
17.4.1 关于编译208
17.4.2 关于硬件支持209
第 18章 编译定制IPK软件包210
18.1 IPK软件包与OPKG命令210
18.2 IPK软件包规范210
18.2.1 Makefile格式与流程211
18.2.2 PKG_*任务的作用212
18.2.3 定义Build *的作用213
18.2.4 定义Package *的作用213
18.2.5 IPK软件包补充说明214
18.3 简易软件包mytest215
18.3.1 mytest软件包的制作215
18.3.2 mytest调试216
18.3.3 下载测试217
18.4 软件包示例xware218
18.5 软件包示例shairport219
第 19章 智能路由器外设应用实例221
19.1 OpenWrt的硬件支持221
19.1.1 DTS设备树221
19.1.2 GPIO总线223
19.2 OpenWrt对LED驱动的支持224
19.2.1 LED电路设计224
19.2.2 手动测试LED224
19.2.3 将LED注册为系统标准LED225
19.2.4 LED设置心跳功能226
19.2.5 将LED设置为WAN口状态226
19.3 OpenWrt对按钮驱动的支持226
19.3.1 按钮电路设计226
19.3.2 手动测试按钮227
19.3.3 将按钮注册为系统按钮228
19.3.4 编写脚本检测按钮时长228
19.4 OpenWrt对继电器驱动的支持229
19.4.1 继电器电路设计229
19.4.2 手动测试继电器230
|
|