家里的电视买的比较早,“创*“什么的牌子,开机有广告。而且用了几年了,速度比较卡。无法接受的是不让装第三方软件,下定决心要搞一个性能比较猛的盒子了。但是看了一圈,普遍都不再预算范围内。
恰巧工作上用到树莓派4,当然用3也是可以的。理论上两个设备的固件是一样的。那决定用这个设备来尝试一下搭建一台用着还算比较爽的 ATV。
本文大部分参考原文翻译:
https://konstakang.com/devices/rpi4/
首先购买一片树莓派4B,现在买一片低配的版本就可以了,2G的大概在270元左右,还有要买一片红外接收头,100欧的电阻一只(建议安装)。参考网上的接图。
图片来自:
../../../2016/01/17/infrared-remote-control-remote-raspberry-pi.html
图片中使用了 GPIO18 脚,Raspberry Pi OS 默认定义的引脚是 GPIO17,如果你想要调试 Raspberry Pi OS 环境,那需要注意这一点;我建议你在VCC串接一只R100的电阻并在5V取电,测试效果也不错。如果你没有R100,作为测试你可以在3.3V取电。
遥控接收管有很多型号,他们推荐的TSOP4838或者我推荐的VS1838B都可以,甚至价格更加便宜。
烧录ATV镜像到SD卡;使用 Raspberry PI Imager 就可以了。
https://konstakang.com/devices/rpi3/LineageOS17.1/
以下基本上是对原文 FAQ 的翻译;
Q: 怎样开启开发者模式(Root,终端窗口前提条件)?
A: 设置 -> 关于 -> 点击 ‘Build number’ 若干次。
Q: 开启root权限?
A: 开发者选项 -> Root 权限;不建议开启,你懂的。
Q: 开启终端应用?
A: 开发者选项 -> 本地终端。
Q: 高级重启?
A: 开发者选项 -> 高级重启。
Q: 只看到启动画面,不进入主屏幕?
A: 估计是屏幕不支持适配,试着在Windows下修改 /boot/resolution.txt 里面的分辨率设置. 删除 /boot/resolution.txt 这个文件的话,系统也会尝试多次适配。
Q: 存储空间和SD卡大小不一致?
A: 启动到recovery,参考开启高级重启;重启到TWRP,刷入我们的扩容包。
扩容包下载地址:
https://www.androidfilehost.com/?fid=8889791610682901036
需要你自行复制到U盘或者SD存储。
Q: 没有物理按键?
A: 插键盘
F1 = Home,
F2 = Back,
F3 = Multi-tasking,
F4 = Menu,
F5 = Power,
F11 = Volume down,
F12 = Volume up.
Q: 自己弄一个物理电源按键?
A: GPIO21 和 GND之 间加一个按钮。在设置中开启相关选项即可(需重启生效)。居然这个按钮还支持启动到Recovery(长按有效)。
Q: 在HDMI和3.5之间切换音频?
A: 设置中找到Raspi相关选项,可以切换。并且支持DAC(我没有测试)。
Q: 启用适配红外遥控》
A: 在设置中找到树莓派相关选项,打开相关设置。原文中指定了一个配置文件的页面:
https://github.com/lineage-rpi/android_external_ir-keytable/tree/lineage-17.1/rc_keymaps
其实没啥大用,本文会稍微详细讲解一下:
首先在/boot/下rc_keymap建立一个rc_keymap,注意没有扩展名。文件的格式注意设置为Unix(LF)+UTF-8。Notepad++默认的Windows格式是不会生效的。这一点官方文档上没有强调,困扰了很久。
接下来第一行
type: nec 这里是小写的,很多文档写成了大写,测试下来会报错,但是启动的时候又不会显示这些报错。
最后是键值获取和定义,ATV嘛,肯定有一些普遍的键值,上下左右什么的。
开启root权限,还有本地终端应用,开启IR Remote(这三步必须)。
打开终端,输入:
su ir-keytable -p nec #这步非必须,将遥控协议转为nec,注意是小写。如果你的遥控不能回显,可以试着执行这步。 #Protocols changed to nec 表示成功; Ir-keytable -t #键值检测,非常有用,按ctrl+c退出。
这个时候系统会给出一个提示符,要求你按遥控上的按键。我建议你只安装我们给出的列表顺序按键就可以了。基本上满足ATV的要求了。
首先是方向键上,记录下scancode=后面的值(就是键值)。逐个替换下面的键值,最后保存到 /boot/rc_keymap 这个文件即可。如果你用Windows,可以在移动磁盘里用notepad+新建一个文件,格式要求见上文。
# table lg akb7291, type: nec 0x408 KEY_POWER 0x443 KEY_MENU 0x45b KEY_HOMEPAGE 0x440 KEY_UP 0x406 KEY_RIGHT 0x407 KEY_LEFT 0x428 KEY_BACK 0x441 KEY_DOWN 0x444 KEY_ENTER 0x4aa KEY_ENTER 0x403 KEY_VOLUMEDOWN 0x402 KEY_VOLUMEUP
注意:
1、首先确认你的遥控器是红外遥控,方法是用手机摄像头拍摄一下,如果有光的就是红外遥控。如果是蓝牙的,可以直接用设置-遥控器和配件进行配对,效果也很好。非广告插入,敏感体质请绕行。
2、米家的遥控器使用了自有的协议,解码存在问题;在获取键值过程中通常无效。
3、原文中的KEY_OK没有测试成功,换KEY_ENTER后测试有效。 文中用到了AKB7291这个遥控器,如果你没有把握可以直接买这个。
本文来自 @最爱肉松 的投稿:
https://make.quwj.com/project/358
你好,我装好一个红外接收头,在设置中打开了infrared romote的选项,进系统在终端中用ir-keytable -t #键值检测到遥控器的各个键值。
按照方法用notepod++把键值写入(已经转换成UNIX(LF) UTF-8)到BOOT目录下的rc_keymap文件中,但重启后树莓派的android tv还是无法用这个红外遥控器操控,没有任何反应。
能请教下是哪里没有做好么。
# table lg akb7291, type: nec
0x40 KEY_POWER
0x4d KEY_MENU
0x56 KEY_HOMEPAGE
0x47 KEY_UP
0x4a KEY_RIGHT
0x48 KEY_LEFT
0x4c KEY_BACK
0x4b KEY_DOWN
0x49 KEY_ENTER
0x49 KEY_OK
0x18 KEY_VOLUMEDOWN
0x0c KEY_VOLUMEUP
树莓派的视频解码能力靠谱吗?
1080P没问题
4k不行
不支持软解