硬核王同学 发表于 2024-8-4 18:33

【超小型 Linux 开发套件Quantum Tiny Linux】- SDK环境搭建及使用

<div class='showpostmsg'><h1>一、克隆地址分享:</h1>

<p>一共有两个地址,一个是稚晖君的原始项目SDK:</p>

<p><a href="https://github.com/peng-zhihui/Project-Quantum?tab=readme-ov-file" target="_blank">https://github.com/peng-zhihui/Project-Quantum?tab=readme-ov-file</a></p>

<p>另一个是针对这块板子的上层使用,<strong>quark-</strong><strong>n</strong>的地址,:</p>

<p><a href="https://gitee.com/coolflyreg163/quark-n" target="_blank">https://gitee.com/coolflyreg163/quark-n</a></p>

<p>&nbsp;</p>

<h1>二、克隆SDK</h1>

<h2>原始项目SDK</h2>

<p>我习惯在windows上,用VM虚拟机出一个Ubuntu编译,所以根据自己情况提前准备好编译环境,具体可以参考我这篇文章:<a data-href="https://g0zjym8ouh4.feishu.cn/wiki/NhojwKLsWitKWwkE3Khc0Juenyb?from=from_copylink" href="https://g0zjym8ouh4.feishu.cn/wiki/NhojwKLsWitKWwkE3Khc0Juenyb?from=from_copylink">虚拟机+Ubuntu环境搭建</a></p>

<p>首先新建quark的文件夹,把SDK克隆下来</p>

<pre>
<code>mkdir quark
cd quark/
git clone https://github.com/peng-zhihui/Project-Quantum.git
git clone https://gitee.com/coolflyreg163/quark-n.git</code></pre>

<p>克隆好后,查看下文件夹</p>

<pre>
<code>linux@linux-virtual-machine:~/work/quark$ ls
Project-Quantumquark-n
linux@linux-virtual-machine:~/work/quark$ cd Project-Quantum/
linux@linux-virtual-machine:~/work/quark/Project-Quantum$ ls
1.Hardware2.Bootloader3.Kernel4.Images5.Tools6.DocsLICENSEREADME.md</code></pre>

<p>这里的几个项目文件,稚晖君在README.md中都有说明,这里我再介绍下:</p>

<p><strong>项目文件结构说明</strong></p>

<ul start="1">
        <li data-list="bullet">
        <p><strong>Hardware</strong>:量子计划包含了一系列邮票孔形式的超迷你积木模块,目前工程文件里已开放的有:</p>

        <ul>
                <li data-list="bullet">
                <p><strong>Quark-Core</strong>:基于全志H3/H5芯片的ARM-Linux核心板模块,引出的外设有SDIO、USBx4、I2Cx2、SPIx2、UARTx3、HDMI、CAMERA、以太网口、GPIO等。</p>
                </li>
                <li data-list="bullet">
                <p><strong>Atom-Shield</strong>:对应于核心板的底板模块,将核心板的几乎所有外设都用上了,自己设计底板的时候可以直接基于Atom进行硬件裁剪。</p>
                </li>
                <li data-list="bullet">
                <p><strong>Gluon-Power</strong>:一个指甲盖大小的电源管理模块,在Atom上有用到,支持锂电池的充放电管理,以及一路5V DC-DC升压和一路3.3V降压输出。</p>
                </li>
                <li data-list="bullet">
                <p><strong>Electron-Arduino</strong>:一个基于ATmega328的协处理器模块,可以直接烧录Arduino的Bootloader作为Arduino板卡使用,非常迷你。</p>
                </li>
        </ul>
        </li>
        <li data-list="bullet">
        <p><strong>Bootloader</strong>:SOM的u-boot源代码,移植自<u><a href="https://github.com/friendlyarm/u-boot.git">FriendlyARM</a></u>的仓库</p>
        </li>
        <li data-list="bullet">
        <p><strong>Kernel</strong>: SOM用的主线Linux内核源码,添加了一些自己的驱动,修改了设备树配置,原始仓库是<u><a href="https://github.com/friendlyarm/linux.git">这个</a></u></p>
        </li>
        <li data-list="bullet">
        <p><strong>Image</strong>: 打包好的系统镜像,可以直接烧录到SD里进行启动。</p>
        </li>
        <li data-list="bullet">
        <p><strong>Docs</strong>: 相关芯片的Datasheet文档。</p>
        </li>
</ul>

<p><strong>各个模块(硬件、软件、镜像)的详细说明可以进入相关文件夹内查看README.md</strong></p>

<p>&nbsp;</p>

<h2><strong>quark-</strong><strong>n</strong></h2>

<pre>
<code>linux@linux-virtual-machine:~/work/quark/Project-Quantum$ cd ..
linux@linux-virtual-machine:~/work/quark$ cd quark-n/
linux@linux-virtual-machine:~/work/quark/quark-n$ ls
boot             images   npi-config         sun8i-h3-atom_n.dtsxrdp
drivers          KernelsREADME.md            WorkSpace
gpio_key_led.pyLICENSEsun8i-h3-atom_n.dtbWuKong</code></pre>

<p>quark-n的项目文件说明比较少,我这里补充下:</p>

<p><strong>项目文件结构说明</strong></p>

<ul start="1">
        <li data-list="bullet">
        <p>boot:uboot启动脚本</p>
        </li>
        <li data-list="bullet">
        <p>drivers:存放wifi驱动模块</p>
        </li>
        <li data-list="bullet">
        <p>gpio_key_led.py:使用新的dts的中的蓝色led设备</p>
        </li>
        <li data-list="bullet">
        <p>images:时钟图片</p>
        </li>
        <li data-list="bullet">
        <p>Kernels:没什么用</p>
        </li>
        <li data-list="bullet">
        <p>LICENSE:GPLv2条约</p>
        </li>
        <li data-list="bullet">
        <p>sun8i-h3-atom_n.dtb:全志CPU的设备树二进制文件,用于在dts里添加蓝色LED的设备</p>
        </li>
        <li data-list="bullet">
        <p>sun8i-h3-atom_n.dts:全志CPU的设备树文件</p>
        </li>
        <li data-list="bullet">
        <p>WorkSpace:自带LCD屏的数码时钟开发代码</p>
        </li>
        <li data-list="bullet">
        <p>WuKong:wukong-robot 是一个简单、灵活、优雅的中文语音对话机器人/智能音箱项目,目的是让中国的 Maker 和 Haker 们也能快速打造个性化的智能音箱。项目地址:<a href="https://gitee.com/yadongzhao87/wukong-robot" target="_blank">https://gitee.com/yadongzhao87/wukong-robot</a></p>
        </li>
        <li data-list="bullet">
        <p>xrdp:升级到ubuntu 20.04 LTS后,无法使用远程桌面连接quark的xrdp的解决办法</p>
        </li>
</ul>

<p>&nbsp;</p>

<h1>三、编译SDK</h1>

<p>稚晖君的原始项目SDK编译方法可以参考每个目录下的REDEME.md</p>

<p>比如uboot编译的REDEME.md:</p>

<pre>
<code> Project-Quantum

编译方法可以参考Friendly-ARM的教程:http://wiki.friendlyarm.com/wiki/index.php/Building_U-boot_and_Linux_for_H5/H3/H2%2B/zh

配置好环境之后,编译命令:

```
$ cd u-boot
$ make quark_n_h3_defconfig ARCH=arm CROSS_COMPILE=arm-linux-
$ make ARCH=arm CROSS_COMPILE=arm-linux-
```
</code></pre>

<p>&nbsp;</p>

<h1>四、<strong>quark-</strong><strong>n使用</strong></h1>

<p>直接在板子上把quark-n克隆下来</p>

<pre>
<code>git clone https://gitee.com/coolflyreg163/quark-n.git
cd quark-n
pi@Quark-N:~/qurak/quark-n$ ls
boot             images   npi-config         sun8i-h3-atom_n.dtsxrdp
drivers          KernelsREADME.md            WorkSpace
gpio_key_led.pyLICENSEsun8i-h3-atom_n.dtbWuKong
</code></pre>

<p>参考quark-n的使用技巧:<a href="https://gitee.com/coolflyreg163/quark-n/" target="_blank">https://gitee.com/coolflyreg163/quark-n/</a></p>

<p>&nbsp;</p>

<h2>蓝牙</h2>

<p>上一章我们用蓝牙一直链接失败,我换了个普通的蓝牙耳机,且登录系统的用户换成了pi,这样就可以成功连接蓝牙耳机了!</p>

<p> &nbsp;</p>

<p> &nbsp;</p>

<p>通过使用技巧13可知:</p>

<p>蓝牙连接音箱或耳机 系统默认缺少软件包,安装下列软件包,重启之后删除之前的配对,然后重新配对</p>

<pre>
<code>sudo apt-get install pulseaudio-module-bluetooth bluez-tools</code></pre>

<p>以下命令用于启动时自动运行</p>

<pre>
<code>pactl load-module module-bluetooth-discover</code></pre>

<p>再试着播放音频,把root里的test.wav拷贝到pi的目录下</p>

<pre>
<code>#打开终端登录root用户
su
quark

#cp文件
cp /root/Music/test.wav /home/pi/Music</code></pre>

<p>搞了半天,用Audacity一直播听不到音乐,我就换成调用PulseAudio方式就成功了</p>

<p>首先确保安装PulseAudio服务</p>

<pre>
<code>pi@Quark-N:/$ dpkg -l | grep pulseaudio
iipulseaudio                           1:8.0-0ubuntu3.15                        armhf      PulseAudio sound server
iipulseaudio-module-bluetooth          1:8.0-0ubuntu3.15                        armhf      Bluetooth module for PulseAudio sound server
iipulseaudio-module-x11                1:8.0-0ubuntu3.15                        armhf      X11 module for PulseAudio sound server
iipulseaudio-utils                     1:8.0-0ubuntu3.15                        armhf      Command line tools for the PulseAudio sound server
iixfce4-pulseaudio-plugin:armhf      0.2.4-1                                    armhf      Xfce4 panel plugin to control pulseaudio</code></pre>

<p>再列出所有音频输出设备:</p>

<pre>
<code>pactl list sinks</code></pre>

<p> &nbsp;</p>

<p>可以看到我有一共蓝牙音频设备&mdash;&mdash;Kulark E2,下面设置 Kulark E2 为默认音频输出:</p>

<pre>
<code>pactl set-default-sink bluez_sink.B4_A2_EB_6B_53_71</code></pre>

<p>然后再播放我们的测试音频:</p>

<pre>
<code>paplay /home/pi/Music/test.wav</code></pre>

<p>这样就可以听见声音了!!!</p>

<p>&nbsp;</p>

<h2>麦克风</h2>

<p>既然声音解决了,Audacity录制音频也没玩明白,还是用命令行方式录制</p>

<p>首先用arecord 看下有没有麦克风</p>

<pre>
<code>arecord -l</code></pre>

<p> &nbsp;</p>

<p>可以看到<strong>H3 Audio Codec (硬件编解码器)</strong> (<span style="background-color: rgb(250, 250, 250); color: rgb(56, 58, 66); font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; font-size: 12px;">card 2</span>):这似乎是物理音频输入设备,具有一个子设备。我们就试下用这个录音</p>

<pre>
<code>arecord -D plughw:CARD=2,DEV=0 -f cd -t wav -d 10 output.wav</code></pre>

<p>这里的<span style="background-color: rgb(250, 250, 250); color: rgb(56, 58, 66); font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; font-size: 12px;">-D</span>选项指定了设备描述符<span style="background-color: rgb(250, 250, 250); color: rgb(56, 58, 66); font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; font-size: 12px;">plughw:CARD=2,DEV=0</span>,<span style="background-color: rgb(250, 250, 250); color: rgb(56, 58, 66); font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; font-size: 12px;">-f cd</span><br />
表示以 CD 质量(44.1 kHz, 16 bit, 2 声道)录制,<span style="background-color: rgb(250, 250, 250); color: rgb(56, 58, 66); font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; font-size: 12px;">-t wav</span>指定了输出格式为 WAV,<span style="background-color: rgb(250, 250, 250); color: rgb(56, 58, 66); font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; font-size: 12px;">-d 10</span><br />
表示录制持续时间为 10 秒,<span style="background-color: rgb(250, 250, 250); color: rgb(56, 58, 66); font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; font-size: 12px;">output.wav</span>是输出文件的名称。</p>

<p>录制成功,就出现一个<span style="background-color: rgb(250, 250, 250); color: rgb(56, 58, 66); font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; font-size: 12px;">output.wav</span>的文件,我们试着播放下这个文件</p>

<pre>
<code>aplay output.wav</code></pre>

<p>用蓝牙耳机听一下声音,果然,就是刚才我们录制的声音!</p>

<p>&nbsp;</p>

<h2>播放视频</h2>

<p>视频最好转换到和屏幕一个分辨率,不然就会卡顿掉帧,用以下命令转换</p>

<pre>
<code>ffmpeg -i /home/pi/Videos/BadApple.mp4 -strict -2 -s 240x134 /home/pi/Videos/BadApple_240x134.mp4</code></pre>

<ul start="1">
        <li data-list="bullet">
        <p>ffmpeg: 这是主程序名称,调用 FFmpeg 工具。</p>
        </li>
        <li data-list="bullet">
        <p>-i /home/pi/Videos/BadApple.mp4: -i 参数后面跟着的是输入文件的路径。这里指定了要转换的源视频文件的位置。</p>
        </li>
        <li data-list="bullet">
        <p>-strict -2: 这个参数用于指定 FFmpeg 在解码或编码时对不兼容流的处理方式。-strict 后面可以跟从 -2 到 2 的数字,数字越大,对流的兼容性越严格。-2 是一个较低的严格级别,允许更多的不兼容流被处理。</p>
        </li>
        <li data-list="bullet">
        <p>-s 240x134: -s 参数用于设置输出视频的尺寸。这里指定了输出视频的分辨率为 240 像素宽和 134 像素高。</p>
        </li>
        <li data-list="bullet">
        <p>/home/pi/Videos/BadApple_240x134.mp4: 这是输出文件的路径和文件名。转换后的视频将保存在这个位置。</p>
        </li>
</ul>

<p>&nbsp;</p>

<p>播放视频</p>

<pre>
<code>sudo mplayer -vo fbdev2:/dev/fb1 -x 240 -y 135 -zoom /home/pi/Videos/BadApple.mp4</code></pre>

<ul start="1">
        <li data-list="bullet">
        <p>sudo: 以超级用户权限运行命令。</p>
        </li>
        <li data-list="bullet">
        <p>mplayer: 播放器程序。</p>
        </li>
        <li data-list="bullet">
        <p>-vo fbdev2: 指定视频输出驱动为 fbdev2。fbdev2 是 fbdev 的一个变种,提供了更多的功能和配置选项。</p>
        </li>
        <li data-list="bullet">
        <p>/dev/fb1: 帧缓冲设备的设备文件。这取决于你的系统配置,可能需要根据你的硬件调整。</p>
        </li>
        <li data-list="bullet">
        <p>-x 240 -y 135: 设置视频的显示宽度和高度。这些值可能需要根据你的显示需求调整。</p>
        </li>
        <li data-list="bullet">
        <p>-zoom: 使视频缩放到适应屏幕。</p>
        </li>
        <li data-list="bullet">
        <p>/home/pi/Videos/BadApple.mp4: 要播放的视频文件的路径。</p>
        </li>
</ul>

<p>&nbsp;</p>

<p>我随便找了个抖音MP4的视频,转换出来是这样的:</p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<h2>openCV</h2>

<p>系统镜像中还内置了OpenCV ,可以通过接入USB 摄像头实现人脸识别功能</p>

<ul start="1">
        <li data-list="bullet">
        <p>您将需要一个USB相机。将USB相机连接到开发板的USB端口A。</p>
        </li>
        <li data-list="bullet">
        <p>用ls /dev/video* 查看自己的摄像头</p>
        </li>
</ul>

<pre>
<code>ls /dev/video* /dev/video0 /dev/video1</code></pre>

<ul start="1">
        <li data-list="bullet">
        <p>我的摄像头是video0,每个人可能都不一样,根据自己的情况确定摄像头,这个不行就换一个,可能还需要在python文件中改成自己调用的摄像头。</p>
        </li>
        <li data-list="bullet">
        <p>进入项目文件夹:</p>
        </li>
</ul>

<pre>
<code>$ cd WorkSpace/OpenCV</code></pre>

<ul start="1">
        <li data-list="bullet">
        <p>切换成root用户,要不然没有权限,运行demo:</p>
        </li>
</ul>

<pre>
<code>$ python FaceDetectOnTft.py</code></pre>

<p>您可以在开发板的LCD屏幕上看到视频!!</p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<h2>使用新的dts的中的蓝色led设备</h2>

<p>将 sun8i-h3-atom_n.dtb 替换到 /boot/sun8i-h3-atom_n.dtb</p>

<pre>
<code>cp ~/quark/quark-n/sun8i-h3-atom_n.dtb /boot/</code></pre>

<p>重启</p>

<pre>
<code>sudo shutdown -r now</code></pre>

<p>用于测试的Python代码,gpio_key_led.py</p>

<pre>
<code>from periphery import LED
import time
ledUser = LED("usr_led", True)
while True:   
    time.sleep(1)   
    ledUser.write(255)   
    time.sleep(1)   
    ledUser.write(0)
ledUser.close()</code></pre>

<p>gpio_key_led.py是按下Key后,亮起蓝色led</p>

<p>在/sys/class/leds下,显示 pwr_led(黄), status_led(白), usr_led(蓝)</p>

<pre>
<code>ls /sys/class/leds/</code></pre>

<p>或运行以下命令</p>

<pre>
<code>sudo cat /sys/kernel/debug/gpio</code></pre>

<p>输出结果里有一行</p>

<pre>
<code>gpio-359 ( |usr_led ) out hi</code></pre>

<p>即表示成功</p>

<p>&nbsp;</p>

<h2>用于自带LCD屏的数码时钟</h2>

<p><strong>需要先执行:使用新的dts的中的蓝色led设备</strong></p>

<p>首先,将Clock放置到指定位置</p>

<pre>
<code>ln -s /home/pi/quark/quark-n/WorkSpace/Clock ~/WorkSpace/</code></pre>

<p>其次,将启动脚本放置到指定位置</p>

<pre>
<code>chmod +x /home/pi/quark/quark-n/WorkSpace/Scripts/start_ui_clock.sh
mkdir -p ~/WorkSpace/Scripts/services
ln -s /home/pi/quark/quark-n/WorkSpace/Scripts/services/ui_clock.service ~/WorkSpace/Scripts/services/
ln -s /home/pi/quark/quark-n/WorkSpace/Scripts/start_ui_clock.sh ~/WorkSpace/Scripts/</code></pre>

<p>从这里,下载2个字体文件:&ldquo;STHeiti Light.ttc&rdquo;,&ldquo;PingFang.ttc&rdquo;,拷贝到~/WorkSpace/Clock/fonts。</p>

<pre>
<code>https://gitee.com/coolflyreg163/quark-n/releases/Fonts</code></pre>

<p>或运行命令</p>

<pre>
<code>cd ~/WorkSpace/Clock/fonts
wget https://gitee.com/coolflyreg163/quark-n/attach_files/603438/download/STHeiti%20Light.ttc
wget https://gitee.com/coolflyreg163/quark-n/attach_files/603439/download/PingFang.ttc</code></pre>

<p>运行如下命令进行安装</p>

<pre>
<code>cd /home/pi/WorkSpace/Clock/
sudo python -m pip install --index http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com -r requirements.txt
mkdir /home/pi/WorkSpace/Clock/logs
sudo ln -s /home/pi/WorkSpace/Scripts/services/ui_clock.service /lib/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable ui_clock</code></pre>

<p>此时,在重启后会自动启动Clock。下面是手动命令:</p>

<pre>
<code>#1.启动(手动启动后按Ctrl + C可脱离)
sudo systemctl start ui_clock
#2.停止
sudo systemctl stop ui_clock
#3.产看状态
sudo systemctl status ui_clock
#4.重启系统
sudo shutdown -r now</code></pre>

<p>但是我运行后发现有问题,ruamel.yaml版本不对,所以我更新了下系统,升级到Ubuntu 18.04</p>

<p>&nbsp;</p>

<h2>从Ubuntu 16.04 升级到Ubuntu 18.04</h2>

<p>首先更新系统到最新版本,运行如下命令:</p>

<pre>
<code>sudo apt-get update
sudo apt-get upgrade
sudo apt-get autoremove
sudo apt dist-upgrade</code></pre>

<p>安装update-manager-core,执行如下命令:</p>

<pre>
<code>sudo apt-get install update-manager-core</code></pre>

<p>执行系统升级,执行如下命令:</p>

<pre>
<code>sudo do-release-upgrade</code></pre>

<p>升级时间比较长,我花了好几个小时!</p>

<h3>升级过程中遇到的问题</h3>

<p>提示 &ldquo;Your python3 install is corrupted. Please fix the &lsquo;/usr/bin/python3&rsquo; symlink.&rdquo;,执行如下命令:</p>

<pre>
<code>sudo ln -sf /usr/bin/python2.7 /usr/bin/python
sudo ln -sf /usr/bin/python3.5 /usr/bin/python3</code></pre>

<p>提示&ldquo;The upgrade has aborted. The upgrade needs a total of 1,606 M free space on disk &#39;/&#39;. Please free at least an additional 388 M of disk space on &#39;/&#39;. Empty your trash and remove temporary packages of former installations using &#39;sudo apt-get clean&#39;. &rdquo;,执行如下命令:</p>

<pre>
<code>#删除临时文件
sudo rm -rf /tmp/*
#清理ATP缓存
sudo apt-get clean</code></pre>

<p>执行清理操作后,可以再次尝试升级</p>

<p>如果还有问题仍然阻止升级,那么我们需要查看升级日志,来确定具体为什么原因无法升级</p>

<pre>
<code>cat /var/log/dist-upgrade/main.log</code></pre>

<p>&nbsp;</p>

<h2>升级到ubuntu 18.04 LTS后,按照如下步骤,安装ui_clock的依赖包</h2>

<p>注意:升级后,python3的版本变为3.6.9,之前系统的3.5.2的包已经无法使用</p>

<p>首先安装python3的pip模块</p>

<pre>
<code>sudo apt-get install python3-pip</code></pre>

<p>安装python3的包 注意:安装pygame的时候,时间比较长,耐心等待</p>

<pre>
<code>sudo python3 -m pip install fire
sudo python3 -m pip install ruamel.yaml
sudo python3 -m pip install pygame==1.9.6
sudo python3 -m pip install python-periphery
sudo python3 -m pip install PyYAML
sudo python3 -m pip install Markdown
sudo python3 -m pip install tornado
sudo python3 -m pip install smbus
sudo python3 -m pip install Pillow
sudo python3 -m pip install numpy</code></pre>

<p>注意:如果使用上述命令安装失败,出现&ldquo;Could not find a version that satisfies the requirement&rdquo;,可以采用以下方法,解决方法原链接:<a href="http://t.csdnimg.cn/UQR0i" target="_blank">http://t.csdnimg.cn/UQR0i</a></p>

<pre>
<code>方法一:pip install 安装包名字 -i http://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com //豆瓣镜像网站
(如果还不行记得加sudo)

sudo pip install fire -i http://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com
sudo pip install ruamel.yaml -i http://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com
sudo pip install pygame==1.9.6 -i http://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com
sudo pip install python-periphery -i http://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com
sudo pip install PyYAML -i http://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com
sudo pip install Markdown -i http://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com
sudo pip install tornado -i http://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com
sudo pip install smbus -i http://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com
sudo pip install Pillow -i http://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com
sudo pip install numpy -i http://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com</code></pre>

<p>注意:如果使用pip安装numpy失败,可以使用如下命令安装numpy</p>

<pre>
<code>sudo apt-get install python3-numpy</code></pre>

<p>&nbsp;</p>

<h2>使用LCD屏显示数码时钟</h2>

<p>搞了好久终于到最后一步了,用下面这个命令可以手动打开数码时钟</p>

<pre>
<code> sudo python3 /home/pi/WorkSpace/Clock/main.py</code></pre>

<p>不知道为什么系统自动启动就不行,后面看有没有大神懂这部分的了</p>

<pre>
<code> Failed to start ui_clock.service.
See 'systemctl status ui_clock.service' for details.

pi@Quark-N:~$ sudo systemctl start ui_clock
Job for ui_clock.service failed because the control process exited with error code.
See "systemctl status ui_clock.service" and "journalctl -xe" for details.</code></pre>

<p> &nbsp;</p>

<p> &nbsp;</p>

<p>该表盘还可以结合WuKong-robot使用,这部分可以直接看quark-n的使用技巧,这里就不再赘述。</p>
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>
页: [1]
查看完整版本: 【超小型 Linux 开发套件Quantum Tiny Linux】- SDK环境搭建及使用