系统安装

首先选择一个系统,Linux有很多发行版都是支持raspberry-pi的,每个人有自己的喜好,如果是想深入学习Linux(或者说喜欢折腾)的,ArchLinux和Gentoo是不错的选择,但是若目的不再于此,选择官方系统可能是比较好的选择。另外像Ubuntu Meta也挺不错。

使用 noobs 安装

  • 有显示器:格式化 sd 卡为 fat32格式,将 noobs解压拷贝到 sd 卡,插上sd 卡上电,HDMI 连接显示器按照步骤安装就可以。
  • 无显示器:recovery.cmdline 加入silentinstall

直接安装

官方系统Raspbain

  1. 直接将系统刻录到SD卡 Mac和Linux一般使用dd命令即可,Windows需要一些刻录软件,例如UltalISO,以及一些装机软件,如大白菜都可以完成刻录工作。
sudo dd bs=4M if=raspbian.img of=/dev/sdb
  1. 插入内存卡,开机 官方系统会自动扩展文件系统,如果没有自动扩展,开机之后也可以使用raspi-config和扩展以及另外的一些配置
sudo raspi-config

第三方系统 和官方系统类似,详细请参照官方的安装文档,基本步骤都是一样,需要注意的是有的系统不会自动扩展文件系统,可能需要自己手动扩展,一般官方文档都会有说明。

参考内容

网络配置&远程连接

官方系统自带VNC,只要设置好网络就可以连接。 ip:5900

参考内容

互联网远程连接

ngrok

ngrok的大名就不用多说,国内也很多这样的服务Sunny-ngrok,NATAPP,不过这些都开始收费了,当然如果自己有服务器,可以动手搭建一个ngrok,官方的源码会有些内存泄漏的问题。问题不大。另外一个问题是没有认证,任何ngrok-client都可以连接。

ngrok

frp

国人出品,目标是ngrok的替代品。目前正在使用,稳定性也很好。 Github地址:frp - github

Weaved Connect(remote3.it)

这是一个远程连接服务,通过安装软件来使用,官方有详细的安装和使用文档Installation Instructions for Raspberry Pi,当然这个服务有几个缺点,就是速度比较慢(因为服务器在境外)以及每隔一段时间就要换地址,所以该服务的应用场景也仅仅是应急的ssh连接了。

几个简单的命令:

# 安装
sudo apt-get update
sudo apt-get install weavedconnectd
#配置
sudo weavedinstaller

参考资料

磁盘挂载

UUID="DE5EEB695EEB38C3" https://storage.blog.fliaping.com/blog/Data  ntfs-3g  defaults,nofail,x-systemd.device-timeout=1   0  0

UUID="c6d814f6-259e-3ad2-9386-8e9f778fbe44"   https://storage.blog.fliaping.com/blog/TimeMachine  hfsplus defaults,nofail,x-systemd.device-timeout=1   0  0

UUID 可以通过 blkid 命令获得。

  • defaults 使用文件系统的默认挂载参数
  • nofail 开机时若连接不到该设备不报错
  • x-systemd.device-timeout=1 开机设备连接超时默认是90秒,可自定义时长,需要注意的是0为无限等待(Raspbain系统,后面会有一个任务,仍然会等90秒)

之前我没有加nofail,然后就当我拔掉移动硬盘之后就无法开机。

参考资料

媒体软件

安装 miniDLNA

如果采用sudo apt-get install minidlna,安装的不是最新版本,并且默认是不支持rmvb格式的视频。 所以最好自己下载源代码,只需要做很少改动就可以支持rmvb,然后编译安装。

# 移除已安装的
sudo apt-get purge minidlna -y
sudo apt-get remove minidlna
sudo apt-get autoremove -y

# 安装miniDLNA所依赖的包
sudo apt-get build-dep minidlna -y

# 安装编译相关工具
sudo apt-get install autoconf automake autopoint build-essential

下载源码 http://sourceforge.net/projects/minidlna/files/minidlna/1.1.5/minidlna-1.1.5.tar.gz

解压出代码,修改源代码支持rmvb/rm

## metadata.c
//line 840
else if( strncmp(ctx->iformatctx->name, "matroska", 8) == 0 )
    xasprintf(&m.mime, "video/x-matroska");
else if( strcmp(ctx->iformatctx->name, "flv") == 0 )
    xasprintf(&m.mime, "video/x-flv");
//