Tinker Board 2S Manual
来自Waveshare Wiki
入门
简介
- Tinker Board 2 搭载 64 位 Armv8 架构的Rockchip RK3399 处理器芯片,相较于其他热门的 SBC 主板,性能大幅提升。
- 另外还采用 Arm big.LITTLE 技术。这是一种异构处理技术,可以将双核 2.0 GHz Cortex-A72 和四核1.5 GHz Cortex-A53整合在同一个 SoC 中,配合 big.LITTLEzido 自动任务分配软件,可以确保每个程序都能使用正确的 CPU 核心,从而达到更具竞争力的处理速度。
开发板版本
- 开发板有三个版本可选:
- Tinker Board 2基础版,不带 eMMC,2G 内存。
- Tinker Board 2S 升级版,带 16GB eMMC,2G内存。
- Tinker Board 2S 升级版,带 16GB eMMC,4G内存。
- 如果您购买的是*Tinker Board 2基础版,不带 eMMC,直接查看TF卡烧录镜像部分和登录即可。
安装系统
下载官方镜像
- Tinker-board官方为Tinker Board 2S提供了两个版本的系统镜像,分别是Debian 10 和Android 11。
- 你可以直接到tinker-board官网下载最新的官方镜像。
在TF卡上安装镜像
器材准备
- TF卡读卡器。
- 至少8GB的TF卡。
镜像烧录
- 避免在烧录镜像过程中出错,烧录镜像前需要使用Panasonic_SDFormatter-SD卡格式化软件软件格式化TF卡。
- 格式化的时候特别注意,如果你的电脑有插入了别的移动硬盘,不要格式化错驱动器了。
- 下载并安装balenaEtcher-烧录镜像软件。
- 打开balenaEtcher烧录软件,将TF卡插入读卡器,将读卡器插入电脑。
- 选择下载好的镜像文件,单击“写入”并等待写入完成。
在EMMC上安装镜像(适用Tinker Board 2S)
器材准备
- Tinker Board 2S主板。
- Type A转Type C双公口USB3.0线 。
- 12~19V DC 接口 (5.5/2.5 mm DC 接口)电源适配器。
准备工作
- 下载RK驱动助手DriverAssitant-RK驱动助手和balenaEtcher-烧录镜像软件。
- 打开RK驱动助手DriverAssitant安装USB驱动程序,此过程无需连接Tinker Board 2S,安装完成后重启电脑。
- 确保跳线帽已经安装在在如图两根排针上(Tinker Board 2S上默认安装黑色跳线帽)。
- 开发板上如果有TF卡,要先移除TF卡。默认启动TF卡镜像。
- 将Type C线一端连接电脑USB端口,另一端连接Tinker Board 2S的Type C接口。
- 给Tinker Board 2S主板接通电源,电脑会提示你是否需要格式化磁盘,点击取消或者关闭窗口,千万不要格式化磁盘!会把板子的uboot也一并格式化掉!
镜像烧录
登录
-
Debian默认用户帐户(非root用户)
登录名:linaro 登录密码:linaro
本地登录
远程登录
准备工作
- 用一根网线一端连接Tinker Board 2,另一端连接路由器的LAN端口。
- 确保Tinker Board 2与你的电脑出于一个路由器下或同一网段。
获取Tinker Board 2的IP地址
- 方法一:登录路由器查找Tinker Board 2的IP地址。
- 方法二:你可以通过一些局域网IP扫描工具,这里以Advanced IP Scanner为例程
使用MobaXterm登录
终端窗口
- 下载MobaXterm远程登录软件,解压即可使用。
- 打开MobaXterm远程登录软件,选择Session,选择ssh。
- 在Remote host输入我们前面查询到的IP地址192.168.15.100(根据自己的实际IP来填写),填写完成后,点击ok。
- 点击accept,输入登录名:linaro,回车输入登录密码:linaro(在输入密码时,屏幕没有变化属于正常现象,点击回车确认即可)
远程桌面
- 打开MobaXterm远程登录软件,选择Session,选择vnc。
- 在Remote host输入我们前面查询到的IP地址192.168.15.100(根据自己的实际IP来填写),填写完成后,点击ok。
- 点击ok,回车输入登录密码:linaro
使用VNC登录
Tinker Board 2上开启VNC Server
- 在Tinker Board 2下载VNC Server,可以参考配置部分 Interfacing Options。
- 下载安装完成后,开启VNC Server ,需要设置一个大于6位的登录密码。(输入密码时屏幕上没有变化属于正常现象,密码输入完成后按回车键确认即可)
- 执行完毕后就自动创建了服务器5901端口,回车确认。
电脑上安装VNC Viewer
- 在电脑上下载安装VNC-Viewer。
使用VNC Viewer登录Tinker Board 2
- 打开VNC Viewer,输入Tinker Board 2的IP地址和端口号回车确认。例如:
192.168.15.100:5901
- 点击continue:
- 输入前面设置的VNC登录密码,点击ok:
- 此时就成功登录Tinker Board 2了。
Linux操作基础
Linux
- Linux是一种通用的操作系统,它的网络功能非常强大,对内存等硬件的消耗也小,多用于网络服务器中。
- 极其稳定、极其安全、可移植性、可扩展性强。
- 具有开放源码、没有版权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。
- 缺点入门比Windows难,由于缺少桌面周边生态,使用Linux桌面系统的用户也非常少。
为什么学习Linux
- Linux系统被广泛应用在人们的日常生活用品中,如手机、智能家居、汽车电子、可穿戴设备等,只不过很多人不知道自己使用的电子产品里面运行的是Linux系统,例如我们用的安卓手机系统就是基于Linux内核开发的。
- 全球100万个顶尖领域中超过90%在使用Linux系统;全球大部分的股票交易市场是基于Linux系统部署的,包括纽交所、纳斯达克等;
- 全球知名的淘宝、亚马逊、易趣、沃尔玛等电子商务平台都在使用Linux系统。
- 参与Linux内核开发的开发人员和公司也是最多的、最活跃的。因此了解和学习Linux是十分重要的。
终端
-
计算机上的终端允许用户对其系统进行大量控制。Windows的用户可能已经接触过Command Promptor Powershell,而mac OS的用户可能已经熟悉了Terminal。所有这些工具都允许用户通过使用命令直接操作他们的系统。
- linaro 当前用户名/登录名
- linaro-alip 默认主机名
- ~ 当前用户所在的目录是/home/linaro
- $ 字符表示当前登录的是普通用户
- # 字符表示登录的是root用户
- 在终端窗口中键入命令,然后按键盘上的回车键运行命令。
Linux 系统目录结构
- 在Windows中每一个分区都是一个树形结构,有多少个分区就有多少个树形结构,而Linux中只有一个树形结构,所有的文件、分区都是存在于一个树形结构中。在这个结构中,最上层的是根目录,其他所有的目录、文件、分区都是在根目录下建立的。读者可以通过ls /命令来查看整个根目录的文档,如图所示。
- 以下是对这些目录的解释:
常用目录
- /home:用户目录。
- 除了root用户外,其他所有的使用者的数据都存放在这个目录下,在Tinker Board 2的系统中,/home目录中有一个linaro的子目录,这个就是linaro用户的默认目录。
- /bin: 主要放置系统的必备执行文件目录。
- 放置与Linux系统有关(包括运行图形界面所需的)的二进制可执行文件,如ls、mkdir、rm等。
- /boot:引导目录。
- 用于存放系统引导程序,如linux内核以及启动配置文件,里面的config.txt也是用户配置使用频率最高的文件。
- /etc: 系统配置文件存放目录。
- 在这个目录中存放了几乎所有的Linux系统软件所需的配置文件,如果需要对这个目录中的文本进行修改,那么最好是先将需要修改的文件进行备份,以保证在修改之后还可以回到原来的状态。
其它目录
- /dev :设备目录。在Linux系统中,所有设备都视为文件,而在这个目录中存放了所有设备,例如第一个SATA硬盘或U盘会被识别为sda文件,而SATA硬盘或U盘第一个分区会被识别为sda1文件。
- /lib:基本系统的动态链接库存放位置,在这个目录中存放了可以维持一个基本系统启动所需要的库文件。如果没有这个目录,系统程序根本就无法工作。
- /lost + found/分区系统的目录。系统非正常关机而产生的文件通常都存放在这里,另外由fsck等程序进行硬盘修复后产生的文件也存放在这里。
- /media:linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux会把识别的设备挂载到这个目录下。
- /mnt:传统的外部设备挂载点。在早期的时候,除了系统分区外的其他分 区,如U盘等设备,都会被挂载到这个目录下以供用户读写。不过现在已经被 /media/取代。
- /proc:proc是一个虚拟文件系统。这个目录是存放在内存中的,因此不会占用硬盘空间,系统或用户通过读取这些设备来了解它们的信息。例如,可以使用cat /proc/cpuinfo命令来査看CPU信息。
- /root:该目录为系统管理员,也称作超级权限者的用户主目录。
- /srv:该目录存放一些服务启动之后需要提取的数据。
- /sys:与/proc目录一样,也是一个虚拟目录,是由内核中的sysfs系统来实现的,其作用与proc有些类似,但除了与proc具有相同的查看和设定内核参数功能之外,还有为Linux统一设备模型作为管理之用。
- /tmp:临时目录。由程序所产生的临时文件都会存放在该目录下,不用担心这个目录会占用太多的空间,因为每次系统启动都会清除这个目录的内容;同时这也是系统为数不多的拥有所有用户可读写属性的目录。
- /usr:Linux系统所安装的程序都是存放在该目录中的,类似于windows下的program files 目录。
- /run:用于存放系统启动时描述系统信息的文件。这个目录最初是在/var/目录下的,但是现在被提升到根目录下。
重要目录
- 在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
- /etc:这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
- /bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如ls就是在/bin/ls目录下的。
- /bin, /usr/bin是给系统用户使用的指令(除root外的普通用户),而/sbin,/usr/sbin则是给root使用的指令。
- /var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log目录下。
常见指令介绍
文件系统
sudo
- sudo命令以系统管理者的身份执行指令。
- 要想使用root用户,可使用linaro用户登录,执行下面命令
sudo su #切换为超级用户 su linaro #切换普通用户
ls
- ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
- 常用的指令:
ls ls -a #显示所有文件及目录 (. 开头的隐藏文件也会列出) ls -l #除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出 ls -lh #文件大小以容易理解的格式列出,例如4K
- 想要学习了解指令更多参数,我们可以使用help指令来查看:
ls --help
chmod
- chmod命令是控制用户对文件的权限的命令。
- Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。
- 在下图中,显示了Linux根目录下的详细文件信息。在这些文件信息中, 最重要的就是第一列,它详细描述了文件和目录的权限,而第三与第四列则显示了这个文件和目录属于哪一个用户或组。
- Linux的文件属性可以分为三种:只读(r)、写(w)和可执行(x)。但是上面的文件属性却分为10小格,这是因为除了第一格显示目录外,另外三组每组三格分别表示文件所有者权限、同一组内的权限以及其他用户权限。
- 第一栏中如果显示d,则表示这是一个目录;如果是链接文件,则在这里显示l;如果是设备文件,则显示c。
- 第一个rwx栏位:-rwx------ 表示文件拥有者所拥有的权限。
- 第二个rwx栏位:---rwx--- 表示同一工作组内用户权限。
- 第三个rwx栏位:------rwx 表示其他用户权限。
- 例如:
- -rwx rwx rwx 表示无论哪个用户都可以对这个文件读写与执行。
- -rw- --- --- 表示只有文件拥有者有读写权限,但是没有执行权限。
- -rw -rw -rw 表示所有用户都有读写权。
- 符号模式
-
who(用户类型)
who 用户类型 说明 u user 文件所有者 g group 文件所有者所在组 o others 所有其他用户 a all 所用用户, 相当于 ugo
-
operator(符号模式表)
Operator 说明 + 为指定的用户类型增加权限 - 去除指定用户类型的权限 = 设置指定用户权限的设置,即将用户类型的所有权限重新设置
-
permission 的符号模式表
模式 名字 说明 r 读 设置为可读权限 w 写 设置为可写权限 x 执行权限 设置为可执行权限 X 特殊执行权限 只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行 s setuid/gid 当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限 t 粘贴位 设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位
-
符号模式实例
- 给file的所有用户增加读权限
chmod a+r file
- 删除file的所有用户的执行权限
chmod a-x file
- 给file的所有用户增加读写权限
chmod a+rw file
- 给file的所有用户增加读写执行权限
chmod +rwx file
- 对file的所有者设置读写权限,清空该用户组和其他用户对file的所有权限(空格代表无权限)
chmod u=rw,go= file
- 对目录waveshare和其子目录层次结构中的所有文件给用户增加读权限,而对用户组和其他用户删除读权限
chmod -R u+r,go-r waveshare
- 给file的所有用户增加读权限
-
who(用户类型)
- 八进制语法
-
chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。
# 权限 rwx 二进制 7 读 + 写 + 执行 rwx 111 6 读 + 写 rw- 110 5 读 + 执行 r-x 101 4 只读 r-- 100 3 写 + 执行 -wx 011 2 只写 -w- 010 1 只执行 --x 001 0 无 --- 000
-
例如:765的解释如下:
- 所有者的权限用数字表达:属主的那三个权限位的数字加起来的总和。如 rwx ,也就是 4+2+1 ,应该是 7。
- 用户组的权限用数字表达:属组的那个权限位数字的相加的总和。如 rw- ,也就是 4+2+0 ,应该是 6。
- 其它用户的权限数字表达:其它用户权限位的数字相加的总和。如 r-x ,也就是 4+0+1 ,应该是 5。
-
常用的数字权限
- 400 -r-------- 拥有者能够读,其他任何人不能进行任何操作;
- 644 -rw-r–r-- 拥有者都能够读,但只有拥有者可以编辑;
- 660 -rw-rw---- 拥有者和组用户都可读和写,其他人不能进行任何操作;
- 664 -rw-rw-r-- 所有人都可读,但只有拥有者和组用户可编辑;
- 700 -rwx------ 拥有者能够读、写和执行,其他用户不能任何操作;
- 744 -rwxr–r-- 所有人都能读,但只有拥有者才能编辑和执行;
- 755 -rwxr-xr-x 所有人都能读和执行,但只有拥有者才能编辑;
- 777 -rwxrwxrwx 所有人都能读、写和执行(该设置不建议使用)。
-
实例
- 给file的所有用户增加读权限,拥有者和组用户可编辑权限
sudo chmod 664 file
- 给file的所有用户增加读权限,拥有者和组用户可编辑权限
-
chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。
touch
- touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
- 例如,在当前目录下,使用该指令创建一个空白文件"file.txt",输入如下命令:
touch file.txt
mkdir
- mkdir命令用于创建目录。
-
在工作目录下,建立一个名为waveshare的子目录 :
sudo mkdir waveshare
-
在工作目录下建立一个名为waveshare/test的目录。
sudo mkdir -p waveshare/test
- 若waveshare目录原本不存在,则建立一个。(注:本例若不加 -p 参数,且原本 waveshare 目录不存在,则产生错误。)
cd
- 切换当前工作目录。
cd .. #返回上一层目录 cd /home/linaro #进入/home/linaro 目录 cd #返回用户目录
cp
- cp命令主要用于复制文件或目录。
-
参数:
- -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
- -d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
- -f:覆盖已经存在的目标文件而不给出提示。
- -i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答y时目标文件将被覆盖。
- -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
- -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
- -l:不复制文件,只是生成链接文件。
-
使用指令cp将当前目录test/下的所有文件复制到新目录 newtest 下,输入如下命令:
sudo cp –r test/ newtest
mv
- mv命令用来为文件或目录改名、或将文件或目录移入其它位置。
-
参数:
- -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
- -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入y表示直接覆盖,输入n表示取消该操作。
- -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
- -n: 不要覆盖任何已存在的文件或目录。
- -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
-
使用指令mv将当前目录test/下的file1文件复制到新目录/home/linaro下,输入如下命令:
sudo mv file1 /home/linaro
rm
- rm命令用于删除一个文件或者目录。
-
参数:
- -i 删除前逐一询问确认。
- -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
- -r 将目录及以下之档案亦逐一删除。
-
- 删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",例如:
sudo rm test.txt
- rm:是否删除 一般文件 "test.txt"? y
sudo rm homework
- rm: 无法删除目录"homework": 是一个目录
sudo rm -r homework
- rm:是否删除 目录 "homework"? y
reboot
- reboot命令用于用来重新启动计算机,更改Tinker Board 2的配置经常需要重启。
-
参数:
- -n : 在重开机前不做将记忆体资料写回硬盘的动作
- -w : 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
- -d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)
- -f : 强迫重开机,不呼叫 shutdown 这个指令
- -i : 在重开机之前先把所有网络相关的装置先停止
-
重新启动
sudo reboot
shutdown
- Tinker Board 2的关机是不能直接拔掉电源线的,因为Tinker Board 2会将内存作为暂存区,如果直接拔掉电源线会使一些在内存中的数据没有来得及写入SD卡中,从而造成数据的丢失或是损坏SD卡上的数据,造成系统无法启动。
-
参数
- -t seconds : 设定在几秒钟之后进行关机程序。
- -k : 并不会真的关机,只是将警告讯息传送给所有使用者。
- -r : 关机后重新开机。
- -h : 关机后停机。
- -n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。
- -c : 取消目前已经进行中的关机动作。
- -f : 关机时,不做 fsck 动作(检查 Linux 档系统)。
- -F : 关机时,强迫进行 fsck 动作。
- time : 设定关机的时间。
- message : 传送给所有使用者的警告讯息。
- 实例
- 立即关机
sudo shutdown -h now
- 指定 10 分钟后关机
sudo shutdown -h 10
- 重新启动计算机
sudo shutdown -r now
pwd
- 该pwd命令显示当前工作目录的名称:在Tinker Board 2上,输入pwd将输出类似/home/linaro。
head
-
该head命令显示文件的开头。可用于-n指定要显示的行数(默认为 10 行),或与-c指定字节数。
head test.py -n 5
tail
- 该tail显示文件的结尾。-c字节或-n行数指定文件中的起始点
df
-
用于df显示已安装文件系统上可用和使用的磁盘空间。用于df -h以可读的格式查看输出,使用 M 表示 MB,而不是显示字节数。
df -h
zip
- zip命令用于压缩文件,zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip。
-
如果在我们在 /home/linaro/waveshare 目录下,将这个目录下所有文件和文件夹打包为当前目录下的waveshare.zip,可以执行以下命令:
zip -q -r waveshare.zip *
uzip
-
unzip命令用于解压缩zip文件,unzip为.zip压缩文件的解压缩程序。
unzip waveshare.zip -d user/
- 其中-d为指定文件解压缩后所要存储的目录。
tar
- tar命令是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
-
压缩文件:
tar -cvzf waveshare.tar.gz *
-
解压文件:
tar -xvzf waveshare.tar.gz
apt
- apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。
- apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
- apt 命令执行需要超级管理员权限(root)。
- apt 常用命令
- 列出所有可更新的软件清单命令:sudo apt update
- 升级软件包:sudo apt upgrade
- 列出可更新的软件包及版本信息:apt list --upgradeable
- 升级软件包,升级前先删除需要更新软件包:sudo apt full-upgrade
- 安装指定的软件命令:sudo apt install <package_name>
- 安装多个软件包:sudo apt install <package_1> <package_2> <package_3>
- 更新指定的软件命令:sudo apt update <package_name>
- 显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>
- 删除软件包命令:sudo apt remove <package_name>
- 清理不再使用的依赖和库文件: sudo apt autoremove
- 移除软件包及配置文件: sudo apt purge <package_name>
- 查找软件包命令: sudo apt search <keyword>
- 列出所有已安装的包:apt list --installed
- 列出所有已安装的包的版本信息:apt list --all-versions
- 例如我们安装nano编辑器
sudo apt install nano
网络
ifconfig
- 用于在不带任何参数(即)ifconfig运行时显示当前系统上接口的网络配置详细信息。
-
用SSH连接时可以通过ifconfig查找IP地址,例如这台设备的有线连接IP地址和无线连接IP地址分别是:192.168.15.103和192.168.15.102
hostname
- 该hostname命令显示系统的当前主机名。我们使用Tinker Board 2的时候经常需要使用远程工具,而默认的网络配置IP地址采用动态分配,会造成IP地址不确定的问题,当我们的Tinker Board 2IP地址发生变化时,可以使用主机名登录。
-
登录Tinker Board 2,修改hosts文件,命令如下:
sudo nano /etc/hosts
- 将lianro-alip替换成要修改的名字,例如waveshare,按下键盘Ctrl+s保存,按下键盘的Ctrl+x退出:
-
修改hostname文件,将这里linaro也替换成要修改的名字,例如waveshare,按下键盘Ctrl+x,按下键盘的y,回车确认:
sudo nano /etc/hostname
- 修改完成重启Tinker Board 2即可:
sudo reboot
- 修改主机名也可以用sudo tinker-config中: Hostname
- 我们也可以使用如下命令查看IP地址:
hostname -I
配置
连接WIFI
- 切换到超级用户模式
sudo su root
- 打开WIFI
nmcli r wifi on
- 扫描WIFI
nmcli dev wifi
- 连接到WIFI网络(“wifi_name”和“wifi_password”需要替换为您的实际 WiFi 的 SSID 和密码。)
nmcli dev wifi connect wifi_name password "wifi_password"
- 显示“ successfully”就成功连接无线网络了,主板下次开机会自动连接到您指定的 WiFi。
tinker-config 工具
- tinker-config是Tinker Board 2官方镜像自带的一个系统配置工具。
-
要打开配置工具,请在命令行中键入以下内容,回车确认:
sudo tinker-config
- 基本操作:键盘上的上、下键进行菜单项目的选择,回车键进入,左右键进行OK和cancel等按钮的选择,Esc键取消返回,空格键为选择定选项。最后改完后选择Finish退出即可,可能会重启。
Hostname
Change User Password
- Tinker Board 2系统默认的登录密码:linaro,你可以修改登录密码来保护账户安全。
Boot Options
- Desktop / CLI:选择是启动到桌面环境/终端命令模式。
Internationalisation Options
- Change Locale:设置语言和区域。
- Change Timezone:设置时区。
- Change Keyboard Layout:设置键盘布局。
Interfacing Options
Advanced Options
- A1 Expand Filesystem :允许您扩展文件系统。扩展文件系统将最大化分区的大小以匹配物理TF卡上可用的大小。
- A2 Resolution:设置屏幕分辨率。
Power Management Tool
LED
LED控制
- 在嵌入式Linux中,LED接口非常普遍,但由于它的特殊性,LED接口的使用和标准的Linux接口存在较大的差异。
-
对于Tinker Board 2s,LED操作接口位于/sys/class/leds目录下。首先切换为root用户,并且进入LED目录下:
sudo su root cd /sys/class/leds/
- 查看下官方的原理图,根据NMOS管特性可以分析出三颗LED都是高电平驱动:
控制LED0
-
进入 pwr-led 目录:
cd pwr-led echo "1" > brightness #点亮 echo "0" > brightness #熄灭
控制LED1
-
进入act-led 目录:
cd act-led echo "1" > brightness #点亮 echo "0" > brightness #熄灭
控制LED2
-
进入rsv-led 目录:
cd rsv-led echo "1" > brightness #点亮 echo "0" > brightness #熄灭
GPIO
简介
- GPIO全称:通用型输入输出端口(General-purpose input/output)
- Tinker Board 2 引脚分类
- 电源引脚:5v,3.3v,GND(Ground)。
- 常规GPIO控制引脚:可以通过编写程序控制这些引脚的高低电平。
- 特殊GPIO通讯引脚: SPI通讯,12C通讯,TxD/RxD串口通讯。
GPIO端口操作
GPIO编号计算
-
GPIO有5个bank,GPIO0到GPIO4,每个bank有32个pin,命名如下:
GPIO0_A0 ~ A7 GPIO0_B0 ~ B7 GPIO0_C0 ~ C7 GPIO0_D0 ~ D7 GPIO1_A0 ~ A7 .... GPIO1_D0 ~ D7 .... GPIO4_D0 ~ D7
-
对于 Linux 4.4内核,GPIO 数量可以计算如下,以 GPIO3_D7(40PIN GPIO 上的 PIN40)为例:
GPIO3_D7 = 3*32 + 3*8 + 7 = 127 (A=0, B=1, C=2, D=3)
-
设置 GPIO3_D7输出:
cd /sys/class/gpio echo 127 > export cd gpio127 echo out > direction echo 1 > value # 输出高 echo 0 > value # 输出低
Python控制
- 使用如下命令查看Tinker Board 2s预装wiringPi和RPi库
ls /usr/local/share
- 使用gpio readall命令查看引脚对应情况
- 安装Python库
sudo apt-get update sudo apt-get install python3-pip sudo pip3 install python-periphery
- 编写测试程序吗,使用CPU编号
from periphery import GPIO import time LED_Pin = 146 #Physical Pin-32 is GPIO 146 # Open GPIO /sys/class/gpio/gpio73 with output direction LED_GPIO = GPIO(LED_Pin, "out") while True: try: LED_GPIO.write(True) time.sleep(0.5) LED_GPIO.write(False) time.sleep(0.5) except KeyboardInterrupt: LED_GPIO.write(False) break except IOError: print ("Error") LED_GPIO.close()
- 运行程序:
sudo python3 gpio.py
wiringPi控制
- 编写测试程序gpio.c
#include <wiringPi.h> int main(int argc, char * argv[]) { char i; wiringPiSetup(); pinMode(26, OUTPUT); for(i = 0; i < 10; ++i) { digitalWrite(26, HIGH); delay(500); digitalWrite(26, LOW); delay(500); } digitalWrite(26, HIGH); return 0; }
- 编译程序
gcc gpio.c -o gpio -lwiringPi
- 运行程序
sudo ./gpio
C语言控制
- 下载C语言程序包
- 编译程序
sudo make
- 运行程序
sudo ./main 146
I2C
简介
- I2C,中文全称为集成电路总线;
- 它是一种串行通信总线,使用多主从架构,由飞利浦公司在20世纪80年代为了让主板和嵌入式系统用以连接低速周边设备而开发。I2C的正确读法为“I平方C”("I-squared-C")或者'I方C'
I2C硬件连接方式
- I2C 总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。
- 通信原理是通过控制SCL和SDA高低电平来产生I2C总线协议所需要的信号进行数据传输。
- 在总线空闲状态时,SCL和SDA会上拉电阻拉高,保持着高电平。
通过其物理连接方式,我们就可以知道I2C协议是串行、同步通讯协议。
特征
- I2C总线上的每一个设备都会对应这唯一的I2C地址,部分从设备可以通过外围电路改变I2C地址。
- 主从设备之间就通过这个地址来确定与哪个器件进行通信。
- I2C总线上的主设备与从设备之间以字节(8位)为单位进行双向的数据传输。
协议详解
- I2C协议规定,总线上数据的传输必须以一个起始信号作为开始条件,以一个结束信号作为传输的停止条件。起始和结束信号总是由主设备产生(意味着从设备不可以主动发起通信,所有的通信都是主设备发起的,主可以发出询问的指令,然后等待从设备的通信)。
- 总线在空闲状态时,SCL和SDA都保持着高电平,当SCL为高电平而SDA由高到低的跳变,表示产生一个起始条件;当传输结束时,SCL为高而SDA由低到高的跳变,表示产生一个停止条件。
- 数据传输以字节为单位。主设备在SCL线上产生每个时钟脉冲的过程中将在SDA线上传输一个数据位,当一个字节按数据位从高位到低位的顺序传输完后,紧接着从设备将拉低SDA线,回传给主设备一个应答位,此时才认为一个字节真正的被传输完成。当然,并不是所有的字节传输都必须有一个应答位,比如:当从设备不能再接收主设备发送的数据时,从设备将不回传应答位。
Rockchip I²C 主要参数
- 兼容 I2C 与 SMBus 总线
- 支持主模式下的 I²C 总线
- 软件可编程时钟频率和传输速率高达 1000Kbit/秒
- 支持 7 位和 10 位寻址模式
- 中断或轮询驱动多个字节数据传输
- 时钟拉伸和等待状态
Tinker Board 2 I2C接口
开启I2C接口
- Tinker Board 2一共有两个i2c通道,分别是I2C-6(引脚3和引脚5)和I2C-7(引脚27和引脚28),以开启I2C-6为例,开启方法如下:
i2c测试
- 本实例采用的是 10轴惯性导航模块。
硬件连接
-
Tinker Board 2连接引脚对应关系 10 DOF Tinker Board 2 功能 Board物理引脚序号 VCC 5V 电源输入 GND GND 电源地 SDA 3 I2C数据输入 SCL 5 I2C时钟信号
i2cdetect
- 查询i2c设备:
sudo i2cdetect -y -r -a 6
- 参数: -y是无视交互问题直接执行,-r是SMBus read byte命令,-a是所有地址,6是指i2c-6。
- 扫描寄存器数据:
sudo i2cdump -y 6 0x68
-
寄存器数据写入:
sudo i2cset -y 6 0x68 0x90 0x55
-
参数:
参数 含义 6 代表I2C设备号 0x68 代表I2C设备地址 0x90 代表寄存器地址 0x55 代表向寄存器写入的数据
-
参数:
-
寄存器数据读出:
sudo i2cget -y 6 0x68 0x90
-
参数:
参数 含义 1 代表I2C设备号 0x68 代表I2C设备地址 0x90 代表寄存器地址
-
参数:
I2C编程
- 本实例采用的是 10轴惯性导航模块。
下载测试程序
-
打开Tinker Board 2终端,执行:
sudo apt-get install p7zip-full -y sudo wget https://www.waveshare.net/w/upload/2/27/Tinker-10_DOF_IMU_Sensor_D_Code.7z 7z x Tinker-10_DOF_IMU_Sensor_D_Code.7z cd Tinker-10_DOF_IMU_Sensor_D_Code/wiringPi
运行测试程序
-
以下命令请在Tinker Board 2下执行,否则不在索引不到目录;
sudo make sudo ./10Dof-D_Demo
现象
SPI
简介
- SPI全称为串行外设接口(Serial Peripheral Interface),其是一种高速的,全双工,同步通信总线.
- 它以主从方式工作,这种模式通常一个主设备对应一个或多个从设备,双向数据传输时需要4根线,单向数据传输时可以裁切为3根线。
硬件连接
- MOSI – 主设备输出/从设备输入引脚。该引脚对应主设备数据发送引脚,从设备数据接受引脚
- MISO – 主设备输入/从设备输出引脚。该引脚对应主设备数据接受引脚,从设备数据发送引脚
- SCLK – 同步时钟,通常由主设备输出.
- CS – 从设备选择。用来选择从设备。它的功能是让主设备可以与特定从设备通信,避免数据线上的冲突。
工作方式
- Linux内核用CPOL和CPHA的组合来表示当前SPI的四种工作模式:
CPOL=0,CPHA=0 SPI_MODE_0 CPOL=0,CPHA=1 SPI_MODE_1 CPOL=1,CPHA=0 SPI_MODE_2 CPOL=1,CPHA=1 SPI_MODE_3
- CPOL:表示时钟信号的初始电平的状态,0为低电平,1为高电平。
- CPHA:表示在哪个时钟沿采样,0为第一个时钟沿采样,1为第二个时钟沿采样。
- SPI的四种工作模式波形图如下:
开启SPI接口
- Tinker Board 2一共有两个spi通道,分别是spi-1(引脚13、引脚15、引脚16和引脚18)和spi-5(引脚19、引脚21、引脚23和引脚24),以开启spi-5为例,开启方法如下:
- 打开配置文件config.txt:
sudo nano /boot/config.txt 将#intf:spi5=off改为intf:spi5=on
- 修改完成后,按住键盘的Ctrl+s保存,Ctrl+x退出,重启设备:
sudo reboot
- 重启完成后,我们在终端输入如下命令查看spi-5开启成功:
ls /dev/spi*
CSI
- Tinker Board 2支持树莓派摄像头Camera Module v1(感光芯片为豪威科技OV5647)和Camera Module v2(感光芯片为索尼IMX219):
- Tinker Board 2的系统默认使用的是Camera Module v2。
- 如果您使用的是Camera Module v1(感光芯片豪威科技 OV5647)摄像头需要手动切换,参考 Interfacing Options开启。
硬件连接
- 要测试摄像头,建议给Tinker Board 2接入HDMI屏幕或者DSI屏幕
- Tinker Board 2主板上的CSI (摄像头) 和 DSI (显示器) 两个接口的封装是相似的,接线的时候注意不要接错了。CSI摄像头接口在Power接口边上。
开启摄像头
- 由于tinkerboard默认安装了Gstreamer,所以我们可以直接使用。
-
首先我们查看摄像头是否连接成功
v4l2-ctl -V
- 直接打开终端输入
gst-launch-1.0 v4l2src ! video/x-raw,format=NV12,width=640,height=480 ! videoconvert ! autovideosink
USB
fswebcam
安装
-
Debian 的软件源配置文件是 /etc/apt/sources.list。将系统自带的该文件做个备份,将该文件替换为下面内容,即可使用 TUNA 的软件源镜像
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
- 打开Tinker Board 2终端, 输入指令安装fswebcam软件
sudo apt update sudo apt upgrade sudo apt install fswebcam
用法
- 输入命令fswebcam后跟文件名,将使用USB摄像头拍摄照片,并保存到指定的文件名:
fswebcam -d /dev/video5 -r 640x480 ~/image01.jpg
此命令将显示以下信息:
--- Opening /dev/video5... Trying source module v4l2... /dev/video5 opened. No input was specified, using the first. --- Capturing frame... Captured frame in 0.00 seconds. --- Processing captured image... Writing JPEG image to '/home/linaro/image01.jpg'.
- 全分辨率拍摄照片,不带有横幅:
fswebcam -d /dev/video5 -r 1280x720 --no-banner image3.jpg
MJPG-streamer
-
将USB摄像头插上,查看是否找到设备,输入指令:
v4l2-ctl --list-devices
- 其中USB2.0 Camera就是摄像头,说明找到usb设备了。
- 查看设备驱动是否正常:输入指令:
ls /dev/video*
- 其中video5就是摄像头驱动。
-
安装必要的库,输入以下指令:
sudo apt install subversion -y
-
下载mjpeg-stream到树莓派:
sudo git clone https://github.com/jacksonliam/mjpg-streamer.git cd mjpg-streamer/mjpg-streamer-experimental sudo make all sudo make install
-
打开start.sh
cd mjpg-streamer/mjpg-streamer-experimental/ sudo nano start.sh 将./mjpg_streamer -i "./input_uvc.so " -o "./output_http.so -w ./www"
修改为
./mjpg_streamer -i "./input_uvc.so -d /dev/video5" -o "./output_http.so -w ./www"
- 运行start.sh:
cd mjpg-streamer/mjpg-streamer-experimental/ sudo ./start.sh
- 用Firefox浏览器输入http://<树莓派IP地址>:8080,例如我的树莓派地址是192.168.15.103
http://192.168.15.103:8080
- 此时应该可以看到摄像头的监控画面了。
DSI
- Tinker Board 2支持微雪DSI显示触摸屏,本实例采用的是8寸电容触控屏。
产品特点
- 8寸电容触摸屏,硬件分辨率为800×480
- 电容式5点触摸控制
- 钢化玻璃电容触摸面板,硬度达6H
- 支持Tinker Board 2须另购转接线 DSI-Cable-15cm
- 直接通过Tinker Board 2的DSI接口驱动LCD,刷新率可达60Hz
- 配合Tinker Board 2使用时,支持Debian和安卓,免驱
- 支持通过软件控制背光亮度
特色设计
- LCD FFC 线抗干扰设计,工业使用更稳定。
- VCOM电压调节电阻,可调节VCOM电压,以达到最佳的显示效果。
- 可使用顶针进行供电,减少繁琐的接线。
- 2 种形式的 5V 电源输出接口,方便用户接散热风扇或给其他小功率设备供电。
- 触摸板预留摄像头孔位,方便用户集成外部摄像头。
- 大盖板设计,方便设计外壳,易于嵌入各种设备中。
- 贴片螺母支撑与固定主板,结构更紧凑。
搭配Tinker Board 2使用
硬件连接
- 使用22Pin转15Pin的FPC排线,将8inch DSI LCD的DSI接口连接到Tinker Board 2的DSI接口。
- 注意:软排线和屏幕连接金属面朝上,软排线和开发板连接金属面朝向HDMI接口
- 为了方便使用,可以把Tinker Board 2通过螺丝固定的8inch DSI LCD的背面,并组装上铜柱。(Tinker Board 2GPIO接口将通过顶针给LCD供电)
如下图所示:
背光控制
-
在终端输入以下命令可以控制背光亮度:
sudo su root echo X > /sys/class/backlight/panel_backlight/brightness
其中X表示0~255中的任意数字。0表示背光最暗,255表示背光最亮。例如:
echo 100 > /sys/class/backlight/panel_backlight/brightness echo 0 > /sys/class/backlight/panel_backlight/brightness echo 255 > /sys/class/backlight/panel_backlight/brightness
资料
软件
- Panasonic_SDFormatter-SD卡格式化软件
- balenaEtcher-烧录镜像软件
- DriverAssitant-RK驱动助手
- RKDevTool_Release-刷机工具
- MobaXterm
- VNC-Viewer
- Advanced IP Scanner