系统选择
树莓派安装Kodi有多种方式。这里我因为还有搭建KMS的需求,所以尝试了在RaspiOS和Ubuntu 20.04安装。
虽然都是基于Debian的系统,两者安装Kodi的主要区别有:
- RaspiOS的apt中的Kodi版本目前(2021-11-28)是19.1,而Ubuntu 20.04的apt中的Kodi则是18.x。
- RaspiOS的Kodi可启用硬件解码,而Ubuntu的Kodi则未找到相关选项
综上,最后选择了基于RaspiOS去安装Kodi。
RaspiOS官网目前只给出了32位的系统,而arm64的强大,大家懂得都懂,不懂得,说了你也不明白,不如不说。
64位版本可在
https://downloads.raspberrypi.org/raspios_arm64/images/
这里找到。然后使用官网提供的Raspberry Pi Imager即可写入系统到SD卡中。
系统配置
树莓派配置config.txt是个无穷无尽的大坑。该文件在RaspiOS中位于
/boot/confit.txt
在Ubuntu 20.04中位于/boot/firmware/目录下,而推荐用户编辑的实际文件则位于
/boot/firmware/usrcfg.txt
config.txt被类比于树莓派的BIOS,如果不正确配置各种选项,将会引发各种各样的翻车现象。作为电视盒子,我们需要关注的有:
gpu_mem=256
设置树莓派的显存容量。这个数值并不是越大性能越高,而是够用则行,尤其是树莓派4B的GPU与之前有较大改动,因此这个值并不需要设得太大。以及:
hdmi_force_hotplug=1
允许HDMI热插拔,否则若树莓派开机时没有插入HDMI设备,则不会再尝试识别新插入的HDMI设备。以及:
hdmi_drive=2
在DMT输出模式下允许音频信号输出。以及一个非常重要的:
dtoverlay=vc4-fkms-v3d,cma-512
dtoverlay=rpivid-v4l2
这里的dtoverlay相对于指定载入树莓派的一些特定功能的硬件驱动,这里选择了3个:
- vc4-fkms-v3d,为树莓派的开源GPU驱动。理论上也可以选择vc4-kms-v3d,目前不知道具体有啥区别。
- rpivid-v4l2,为树莓派的视频解码驱动。
- cma-512,表示树莓派可动态分配给GPU的内存。也可以为cma-256或cma-128。cma-512据说是播放4K视频的推荐设置。
进入系统后,分别运行
cat /proc/device-tree/soc/firmwarekms@7e600000/status
和
cat /proc/device-tree/v3dbus/v3d@7ec04000/status
如果这两个输出都是okay,则表示硬件加速设置成功。
4K@60Hz
树莓派仅有一个HDMI接口(靠近Type-C)支持4K@60Hz,并且需要在config.txt中加入:
hdmi_enable_4kp60=1
如果线材质量不好/有所松动,切入4K@60Hz可能导致显示器无输出。
安装Kodi
RaspiOS和Ubuntu 20.04中安装Kodi都可以使用apt包管理器:
sudo apt update
sudo apt install kodi
设置Kodi开机启动
Kodi一般需要GUI环境才能启动,网上有很多神仙基于systemctl去做开机自启动,这个我试了半天没成功,最后找到了2种简单不折腾的方法。
Ubuntu 20.04
- 在系统设置中,设置一个用户为自动登录。
- 登录该用户,使用gnome-session-properties,选择/usr/bin/kodi-standalone作为开机启动应用。
RaspiOS
RaspiOS中应该已经设置了pi用户的自动登录,随后只需要
mkdir ~/.config/autostart
cd ~/.config/autostart
ln -s /usr/share/applications/kodi.desktop ./
即可将Kodi应用作为开机启动。
IPTV
IPTV一般推荐使用Kodi的Simple IPTV插件,可使用包管理器安装:
sudo apt install kodi-pvr-iptvsimple
重启Kodi,在Simple IPTV插件中添加IPTV源即可观看电视和收听广播。
IPTV源可从下方挑选:
https://github.com/imDazui/Tvlist-awesome-m3u-m3u8#%E7%A8%B3%E5%AE%9A%E5%9C%B0%E5%9D%80
遥控
遥控有多个方案:
- 最简单的是使用Yaste、Kore等手机遥控器,在Kodi设置中启用HTTP管理,然后在同一局域网内控制Kodi。
- 配置红外遥控器,这个网上资料很多。
- 配置蓝牙遥控器,可通过GUI进行设置,也可通过命令行。