老实来说,这个问题困扰我的时间简直是以年为单位,在很久以前,我是用音箱直接连接的香蕉派,所以平时用来播放音频是没有问题的。
后来切换到 Firefly 后,木有多的音箱了,但是好消息是显示器自带的有音频输出,所以就想着是否可以直接拿过来用,同时又不改变其默认的输出设备,也就是说默认还是使用电路板上的音频设备,以规避设备切换或者移动带来的问题。
一直以来,都是使用 sox 来播放音频文件,占用资源少,命令行运行,非常完美。
就是这个选择默认音频输出设备,简直要崩溃,查看了其帮助文档,也没有说清楚具体是要如何操作。
直到有一天,无意间发现了命令,简直不要太好用。说起来也很简单,就是环境变量的设置。放在这里,方便像我一样的小白。
AUDIODEV=hw:0 play test.wav
这里的 0 就是音频设备编号,想要查看具体有哪些音频设备,以及其编号,可以输入:
aplay -l
大家请一定要根据自己机器的实际情况来设置上面的数字顺序哈。
在安装好 Python3 后,使用 pip3 安装 pillow,总是报错 The headers or library files could not be found for jpeg, a required dependency when compiling Pillow from source.
搜索了一圈,最后在这里找到了解决问题的方法。
这几天在尝试在ARM上安装python3,是各种麻烦的很。突然发现apt-get install后各种报错,郁闷之极。
现在回头再检查,应该就是当初运行了 apt-get -f install 命令导致的。
因为是安装各种软件都有这个问题,所以影响很大,内心恨不得要把系统给重装了才对。在网上各种检索都不对,后来无意间终于发现了一个方法。
亲测有效。但是不知道原因。
cd /var/lib/dpkg
sudo mv info info.bak
sudo mkdir info
就这么简单的几行代码,解决了问题。
现在要做的就是回想当初遗漏了哪些命令。
在我把移动硬盘带到单位后,一个很自然的想法就是想实现远程离线下载。衣服自己洗的小米盒子以前就是开了个远程下载,不过没有怎么使用过。再加上后来小朋友比较喜欢到处探索,在家里就比较困难了。
首先,我们需要去迅雷的网站上下载Xware的固件,此时最新的固件版本号是1.0.31,以后后续的更新应该是可以查找类似的帖子。
下载完成后,解压缩到某个目录下,并设置权限
sudo chmod -R 777 xunlei
sudo ./portal
需要强调的是,迅雷的下载是需要管理员权限的。运行该程序后,会联网请求迅雷的服务器并生成一个激活码。
打开 http://yuancheng.xunlei.com/,然后选择添加设备,输入刚才获取的激活码。一旦添加成功,就可以通过该网页添加下载任务了。
衣服自己洗发现Firefly在办公网络下无法下载ed2k资源,感觉非常的奇怪。
这里有2个比较重要的信息是:
1、衣服自己洗使用家里的香蕉派运行portal程序始终没有成功过,网络上也搜索过,按网络上的说法,似乎是无法解析remote.yuancheng.xunlei.com,也就是说是小区的宽带问题。说起这个宽带,简直了。
2、迅雷官方每次在发布的时候,都提供了好几个不同的版本供大家使用。衣服自己洗是以树莓派做关键字去搜索的。大家都说树莓派使用Xware1.0.31_armel_v5te_glibc这个版本就可以了,但是在单位和家里刚开始尝试的时候都失败了。后来挨个尝试,发现居然是要使用Xware1.0.31_cubieboard 才可以,不然就会提示未找到目录的错误提示。这个问题坑了好多天,都快要放弃的时候才找到可用的版本。
在前面的文章中,衣服自己洗提及为了打开自带的Led灯,而不得不安装golang的环境,后来在官网上发现了他们有开源python版本的库:pyFireflyP,开源地址为https://github.com/T-Firefly/pyFireflyP。
对于linux系统而言,很多都已经自带python了,而且安装也比golang容易的多。
从github上clone或者下载这个包,然后进入到目录下安装:
cd pyFireflyP
sudo python setup.py install
我的Firefly运行后会报错,显示FireflyP do not support <Rockchip (Device Tree)>! 应该是系统内核没有正确赋值,按照官方的说法,只需要修改setup.py文件,把 fplat=check_plat() 直接改成:fplat=’rk3288’,然后再次运行安装即可。
对于测试,运行 sudo python demo/gpio_test.py,就可以看到Firefly上的蓝灯和黄灯来回交替显示的效果了。
对于内核没有正确赋值的问题,估计我的板子是早期生产的,其信息并没有及时更新。至于现在是否已经更新不得而知。
当然,对于官网wiki上的另外一个设备写入的方法:
echo 1 >/sys/class/leds/firefly:blue:power/brightness //蓝灯亮
在最近的固件里并不能实现,早期的固件确实是有。这里衣服自己洗真心是要狠狠地吐槽一番,完全没有考虑到像我们这样的小白,以为所有的人都会自己编译固件。
上面提及的2种方法,虽然都是调用GPIO,但是是相互独立的,如果一起使用的话,可能会出现意想不到的后果。不过就目前来看,应该没有这个风险。
今天带了块移动硬盘到单位,接入到Firefly后,发现无法向设备内写入文件,换成U盘也是一样的问题。插入后系统可以很快地识别出来,但就是只读的。可以浏览,写入就不用想了。
因为Firefly是基于arm架构的,不知道是不是和这个有关系,网上搜索的结果也各种各样,但是都没有什么效果。
最后,找到了一个解决问题的方法了。
sudo apt-get install ntfs-config
sudo ntfs-config
这个时候系统会弹一个窗体出来,勾选对应的移动硬盘,并允许写入就可以了。实际上,ntfs-config在Firefly上安装是没有问题的,配置的时候报了一堆的python错误,不过看起来没有什么大问题。