新書推薦:
《
利他主义的生意:偏爱“非理性”的市场(英国《金融时报》推荐读物!)
》
售價:HK$
77.3
《
认知行为疗法:心理咨询的顶层设计
》
售價:HK$
99.7
《
FANUC工业机器人装调与维修
》
售價:HK$
99.7
《
吕著中国通史
》
售價:HK$
62.7
《
爱琴海的光芒 : 千年古希腊文明
》
售價:HK$
199.4
《
不被他人左右:基于阿德勒心理学的无压力工作法
》
售價:HK$
66.1
《
SDGSAT-1卫星热红外影像图集
》
售價:HK$
445.8
《
股市趋势技术分析(原书第11版)
》
售價:HK$
221.8
|
編輯推薦: |
树莓派是广受电子爱好者关注的便携式计算机系统,Linux操作系统是适配树莓派的主要操作系统。本书系统介绍将Linux操作系统移植到树莓派的方法与实现,帮助读者了解操作系统的组成和运行方式,理解操作系统基本软件的作用和它们之间的关系,掌握树莓派控制接口的使用方法。全书内容涵盖如下主题:
内核与根文件系统;
软件移植方法、基础软件包和网络工具;
轻量级Linux桌面环境XFCE4;
若干Linux应用软件移植;
构建板载开发环境、移植Python;
树莓派I/O接口控制。
|
內容簡介: |
本书介绍Linux 内核的编译和移植、根文件系统的制作、基础系统、桌面系统, 以及这些软件在系统中的 作用、软件之间的依赖关系、各种软件的移植方法。由于很多树莓派应用是由Python 语言开发的, 本书也 专门介绍树莓派上硬件接口的Python 控制模块和其他一些基础应用。全书共分6 章,第1 章介绍Linux 内核的 移植及根文件系统的制作;在第1 章的基础上, 第2 章移植了一些基础软件, 增强了树莓派的联网功能;第3 章 介绍Linux 的基础图形库、文本布局软件、X Window 系统, 直至构成一个完整的XFCE4 桌面环境;第4 章介 绍一些应用软件的移植, 包括远程桌面、音视频编码与解码及媒体播放、文档阅读, 以及网络监控软件;第 5 章 介绍典型的Linux 开发工具的移植, 移植了编译器的树莓派系统初步具备板载开发能力;鉴于树莓派被广泛用于 电子设计制作, 第6 章专门讨论树莓派GPIO 接口的功能, 介绍一款典型的GPIO Python 模块的使用, 并介绍 各种应用模块的工作原理和程序控制方法。 本书能对树莓派爱好者深入学习提供一定的帮助, 对于其他嵌入式开发人员, 书中介绍的大多数内容也有 同样的参考意义。此外, 本书也可作为高等学校电子信息专业在学习嵌入式Linux 操作系统时的教学参考书。
|
關於作者: |
方元 南京大学物理学博士、副教授。现就职于南京大学电子科学与工程学院,长期从事信号处理、计算机组成原理及操作系统领域的课程教学工作,主要研究领域涉及音频信号处理、计算机通信和嵌入式系统应用。
沈克勤 毕业于国防科技大学系统工程专业,于解放军理工大学工作多年,从事计算机应用领域的教学和研究工作。退役后在南京理工大学紫金学院从事物联网应用的教学和竞赛指导工作。
|
目錄:
|
第1章 内核与根文件系统 .1
1.1树莓派简介 1
1.1.1 核心处理器 . 3
1.1.2 树莓派操作系统 4
1.1.3 树莓派接口 . 4
1.2开发工具 . 4
1.2.1 编译工具 5
1.2.2 调试接口 6
1.3树莓派的外存储器 8
1.3.1 SD卡分区 8
Bootloader 9
1.3.2
1.4 Linux内核 .10
1.4.1 获取内核源码.11
1.4.2 配置和编译内核 .11
1.5根文件系统.15
1.5.1 编译 BusyBox15
1.5.2 初始化 RAMDisk .18
1.5.3 构造 Ext4分区 27
1.5.4 配置文件 .31
1.5.5 网络文件系统.40
1.6本章小结 40
第2章基础系统. 42
2.1软件编译 42
2.1.1 软件的依赖关系 .42
2.1.2 基础系统软件.43
2.1.3 软件编译方法.44
2.2包管理器 49
2.2.1 数据压缩 .49
2.2.2 编译 dpkg56
2.2.3 安装包格式 57
2.3安装软件包.60
2.4其他软件编译.61
2.4.1 Vim编辑器 .61
2.4.2 时区数据.66
2.4.3 文件系统工具.67
bash67
2.4.5 systemd.68
2.5网络工具 71
2.5.1 编译网络工具.71
2.5.2 远程连接 .78
2.5.3 无线网络连接.78
2.5.4 安装 dropbear81
2.6本章小结 84
2.4.4 第3章桌面系统. 86
3.1 X Window系统86
3.2基础图形库.91
3.2.1 libpng92
3.2.2 libjpeg.95
JasPer .96
3.2.3 TIFF.97
3.2.4
3.2.5 librsvg.104
3.3 文字显示及渲染 105
Glib 107
3.3.1 3.3.2 FreeType .111
HarfBuzz .116
3.3.3 FriBidi.117
3.3.4
3.3.5 Fontconfig118
3.3.6 Pango119
3.4 图形工具库
GTK120
GDK-PixBuf122
3.4.1 ATK122
3.4.2 Cairo.123
3.4.3 mesa .126
3.4.5 GTK及其应用程序 128
3.5 XFCE4桌面环境 131
3.5.1 窗口管理器 xfwm4 .132
3.5.2 会话管理器 xfce4-session.133
3.5.3 桌面设置管理器 xfce4-settings.133
3.5.4 桌面管理器 xfdesktop.134
3.5.5 文件管理器 Thunar 135
3.5.6 终端仿真器 136
3.6 X服务 .136
3.6.1 编译
xorg-server.138
3.6.2 X系统其他支持 .139
3.6.3 启动 XFCE4 139
3.7本章小结 141
3.4.4 第4章 Linux应用软件 142
4.1远程桌面 142
4.1.1 移植 VNC142
4.1.2 中文化.144
4.2媒体播放器.147
4.2.1 音、视频编码与解码.147
4.2.2 音频子系统 149
4.2.3 播放器 mpv .154
4.3文档阅读工具 .155
4.3.1 Poppler .155
libsecret.156
4.3.2 libXML2157
4.3.3
4.3.4 gspell 158
4.4网络视频监控 .158
4.5本章小结 161
第5章板载开发环境 162
5.1编译器 .162
5.2版本控制系统 GIT165
5.3 Python简介.166
5.3.1 Python发展史 .166
5.3.2 Python编程理念167
5.3.3 Python的应用 .167
5.4 Python的移植 .167
5.4.1数据库软件 SQLite.169
5.4.2 Tcl/Tk 170
5.4.3编译 Python 171
5.4.4安装 pip 172
5.5 Python基本使用 173
5.5.1 Python编程工具173
5.5.2运行 Python程序 174
5.5.3交互方式 .175
5.6本章小结 176
第6章树莓派接口控制. 177
6.1 树莓派设备扩展 177
GPIO177
6.1.1 PWM179
6.1.2
6.1.3扩展接口资源配置 180
6.2树莓派 GPIO模块181
6.2.1安装模块.181
6.2.2使用 GPIO模块 182
6.3 GPIO控制输出设备 .184
6.4 GPIO输入功能 185
6.4.1基本输入功能.185
6.4.2 GPIO高级输入功能 .186
6.5 PWM模块.188
6.6传感器和控制器 190
6.6.1蜂鸣器.190
6.6.2传感器.191
6.6.3红外遥控器 191
6.6.4直流电动机 196
6.6.5伺服电动机 197
6.6.6步进电动机 198
6.6.7超声波测距 203
6.6.8控制 SPI设备 204
6.6.9 I2C应用207
6.7本章小结212
参考文献 . 214
扩展资源 . 216
索引 217
|
內容試閱:
|
树莓派是在电子爱好者中广受欢迎的一款单板式计算机。自其问世以来 ,全世界众多的开发者和爱好者在这个系统上开发了大量有趣的应用。大多数应用都是基于 Linux操作系统 ,树莓派官方网站也提供了几种典型的操作系统映像。用户只要下载后 ,复制到存储卡上,操作系统就能运行起来。
多数人只是在使用这个成熟的操作系统。本书则是介绍如何从零开始 ,从源代码构造一个可用的 Linux操作系统,并在这个系统上实现一些简单的应用。通过学习这一过程 ,计算机爱好者可以根据自己的需要移植相关的软件 ,并自如地调度系统的软、硬件资源 ,甚至打造自己的 Linux发行版。
Linux是遵循自由版权协议的操作系统,本书移植的绝大部分软件都是自由软件。可以免费获得 ,其中多数还允许用户对其修改和再发布 ,但用户仍然需要遵守它们的版权协议。本书移植的软件所涉及的版权协议主要有以下几种。
. GNU通用公共版权协议 (General Public License, GPL),出自自由软件基金会。这是 Linux软件使用多的一种版权协议 , Linux内核、 GCC、BusyBox等属此类 ;该版权协议要求由 GPL衍生的软件也必须遵守 GPL规范。
. GNU宽松通用公共版权协议 (Lesser General Public License, LGPL),同样出自自由软件基金会。以这种版权协议发布的软件允许其他版权协议 (即使是私有版权 )的软件使用 ,而不会影响其他版权协议。通常它们以共享库的方式被调用 ,以明确版权协议之间的界线。但 LGPL软件本身修改后的再发布仍需要遵守 LGPL规范。GTK、FFMpeg等软件以 LGPL发布。
. BSD及类 BSD版权协议 ,源自加州大学伯克利分校。该版权协议要求被授权者保留原著作权声明,但并不要求其衍生产品必须开源,例如 Tcl/Tk。
. MIT及类 MIT版权协议,源自麻省理工学院,又称作 “X版权协议”或 “X11版权协议 ”, X11系统的软件均以此协议发布。它要求被授权者保留著作权和版权声明 ,对软件的使用和再发布相对宽松。它也是自由软件基金会所认可的自由软件许可协议条款,与 GPL兼容。
. Python软件基金会版权协议 (Python Software Foundation License, PSFL),出自 Python软件基金会 ,要求被授权者在使用 Python及衍生产品时须保持原有的版权协议,它与 GPL兼容,但并不要求再发布的软件也开源。
. 其他开源软件版权协议,例如 zlib-libpng版权协议等。这些开源版权协议的共同特点是允许免费获得、修改、移植 ,而且不限制商业使用。但在使用和再发布时必须保持原版权声明,明确原作者的贡献。
相比软件开发 ,移植软件的技术含量并没有那么高 ,大量工作都是重复性的机械劳动。因此也有不少软件工程师将编译整个操作系统的工作写成一组脚本程序 ,一个典型的案例就是 Buildroot。开发人员通过图形配置界面 ,选择自己需要的功能 ,输入几条命令 ,剩下的就是等待。软件下载、编译、安装完全自动化实现。这个过程中 ,开发人员不需要了解软件的依赖关系,也不需要关心编译过程,甚至都不需要自己手工安装编译器。单纯从构建系统的目标来看,这种方法不失为一种方便的选择,但对理解操作系统的构成帮助不大。
本书基于树莓派平台 ,介绍从内核到桌面应用的整套系统的移植过程。在讨论软件移植方法的同时 ,还介绍这些软件的作用及它们之间的关系。作为一个完整的操作系统 ,这些软件远远不够 ,但已经足够胜任树莓派的大部分应用场合。掌握这些软件的移植方法 ,再移植其他软件也只是时间问题。
本书面向具有一定 Linux系统使用基础的树莓派爱好者。计算机技术的发展日新月异 ,软件的更新换代更是频繁。本书在移植过程中使用的软件 ,随着时间的推移会渐渐显得过时。然而 ,得益于人工智能、边缘计算、嵌入式应用的发展 , Linux操作系统正处于发展上升期,开源软件社区不断壮大。在可见的将来 ,软件移植的方法会越来越规范、越来越简单。如果有意愿自己定制 Linux操作系统,本书可提供一定的参考。
限于笔者的知识水平和认知能力 ,书中难免存在疏漏之处 ,恳请同行专家及读者批评指正。
编者
2022年春于南京
|
|