关于树莓派的装机,配置,系统安装,网络配置等等网上有太多的叫教程,就不在一一介绍。这里主要想要整理一下在折腾过程中遇到的几个问题。一些细节很琐碎,记录下来备忘。我安装的是 Raspberry Pi 官方的系统,也就是 Debian 的衍生系统,所以绝大多数下面的内容在其他 Debian/Ubuntu/Linux Mint 系统上都可以操作。很多内容我在 Mint 下也都已经实现过。

raspberry_pi_2

树莓派的型号

树莓派到今天已经发布了很多代了,当时买的比较早,稍微和新一代比较一下

ras

安装风扇

一图胜过千言

raspberry_pi_fans

安装完成之后

raspberry_pi_fans_install

更改 raspberrypi 网卡名字

sudo apt-get install raspi-config
sudo raspi-config

选择 Network -> interface

或者手工编辑 vim /lib/udev/rules.d/73-usb-net-by-mac.rules

ACTION=="add", SUBSYSTEM=="net", SUBSYSTEMS=="usb", NAME=="", \
ATTR{address}=="?[014589cd]:*", \
TEST!="/etc/udev/rules.d/80-net-setup-link.rules", \
IMPORT{builtin}="net_id", NAME="eth0"

修改其中的 NAME.

网卡 DHCP

编辑 /etc/network/interfaces:

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

无线网卡

查看设备:

lsusb

扫描可见 SSID:

sudo iwlist wlan0 scan

wlan0 HDCP 配置

编辑:

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp         # DHCP 自动分配 IP
wpa-ssid  yourssid            # 要连接的 wifi 名称
wpa-psk   yourpassword        # 要连接的 wifi 密码

wlan0 static ip

auto wlan0
allow-hotplug wlan0           # 允许热插拔(非必须配置)
iface wlan0 inet static       # 采用静态 IP 分配的方式
address  192.168.2.249      # 为树莓派设置的 ip
netmask  255.255.255.0        # 子网掩码
gateway  192.168.2.1        # 网关地址
wpa-ssid  yourssid            # 要连接的 wifi 名称
wpa-psk   yourpassword        # 要连接的 wifi 密码

配置多个 wlan0 配置

编辑 /etc/network/interfaces:

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
pre-up wpa_supplicant -B w -D wext -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
post-down killall -q wpa_supplicant

编辑多个配置文件路径 /etc/wpa_supplicant/wpa_supplicant.conf,或者可以用命令生成:

wpa_passphrase SSID password >> /etc/wpa_passphrase/wpa_passphrase.conf

或者手动编辑该文件:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=CN

network={
    ssid="xxxx"      # wifi 名称
    psk="xxxx"       # wifi 密码
    key_mgmt=WPA-PSK # 加密方式
}

network={
    ssid="xxxx"
    psk="xxxx"
    key_mgmt=WPA-PSK
}

network={
	ssid="xxx"
	key_mgmt=NONE  # 加密方式,不加密
}

network={
	ssid="xxxx"
	key_mgmt=NONE
	wep_key0="xxxx"  # wep 密码
}

network={
	ssid="xxxx"
	psk="xxxx"
	key_mgmt=WPA-PSK
	scan_ssid=1  # 如果你的无线接入点是隐藏的,该配置就是必须的
}

network={
	ssid="xxxx"
	psk="xxxx"
	key_mgmt=WPA-PSK
	priority=999  # priority 指连接优先级,数字越大优先级越高(不可以是负数)
}

启动网卡:

sudo ifup wlan0
sudo /etc/init.d/networking restart

查看详情:

sudo ifconfig -a
sudo iwconfig

使用命令行配置无线网卡

运行:

sudo wpa_cli

在交互模式下可以使用这些命令:

  • status 查看当前无线网卡状态
  • help
  • quit
  • scan_results 扫描
  • list_networks 列出网络

再该命令下需要先创建 network, 设置 network SSID, 密码,加密方式,最后再 enable。具体可以 help 查看。

更新系统

在安装完成之后可以使用国内的 sources.list 源,比如说 清华大学的

编辑 /etc/apt/sources.list:

deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main non-free contrib

编辑 /etc/apt/sources.list.d/raspi.list:

deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui

然后更新软件包,一般 update 用来同步本地 package 和 源的 package 索引, update 一定要在 upgrade 或者 dist-upgrade 之前。update 只是用来同步 package 的状态,只是相当于检查更新,而需要手动触发更新。

sudo apt-get update

更新系统, upgrade 用来更新本地安装过的所有 package 的新版本。

sudo apt-get upgrade

更加智能的更新系统,会用更加智能的方式解决包冲突

sudo apt-get dist-upgrade

最后更新 kernel 和 firmware:

sudo rpi-update

中文支持

sudo apt-get instal ttf-wqy-microhei
sudo apt-get install scim-pinyin
sudo dpkg-reconfigure locales

挂载 NTFS

不同系统有不同的文件系统,在 Windows 下绝大部分的文件系统都是 NTFS,当然我一直在用的移动硬盘也格式化成了 NTFS,那么在 Linux 下挂载 NTFS 格式的磁盘,需要借助 ntfs-3g 这个 Package。

NTFS-3G 是微软 NTFS 文件系统的一个开源实现,包括读写支持。

使用如下命令安装 NTFS-3G

sudo apt-get install ntfs-3g

然后使用 sudo fdisk -l 来查看当前系统能够识别的磁盘及分区。一般来说额外的硬盘应该会是类似 /dev/sda1 这样的标示。

使用 mount 命令来挂载 NTFS 磁盘。

sudo mount -t ntfs-3g /dev/sda1 /media/sda1

mount 命令默认会调用 /sbin/mount.ntfs ,它在安装了 ntfs-3g 之后被符号连接到 /bin/ntfs-3g。 确保本地挂载点文件夹存在,否则自己手工新建 mkdir -p /media/sda1

或者可以直接使用 ntfs-3g 命令

ntfs-3g /dev/sda1 /media/sda1

具体参考: Arch Linux Wiki

外网连接

使用 frp , 在外网 VPS 上搞一个 server 。

共享 Samba

在之前的文章 就曾说到使用 Samba 来在局域网共享文件,搭配 Android 上 ES Explorer,电视盒子基本上可以做到类似家庭共享的作用,所有的一切都看路由器能够不能带动了。这里再说一下基本配置。

使用如下命令安装

sudo apt-get install samba

修改配置文件 smb.conf

[Public]
   comment = Public Storage  # 共享文件夹说明
   path = /home/pi/Public # 共享文件夹目录
   read only = no # 不只读
   create mask = 0777 # 创建文件的权限
   directory mask = 0777 # 创建文件夹的权限
   guest ok = yes # guest 访问,无需密码
   browseable = yes # 可见

设置文件夹权限

sudo chmod -R 777 /home/pi/Public/

重启 Samba 服务

sudo samba restart

完成后局域网中的其他设备就可以通过,\\IP\ 来访问共享的内容

安装 Resilio Sync

很早之前,我也写过 Resilio Sync 的文章,那个时候还叫 BTSync。在笔记本上一直跑着,这些天我看树莓派负载也不高,跑一个 Resilio Sync 应该也还可以。

不过过程却有点繁复,国内似乎屏蔽了 Resilio Sync 的官网,连他的 Key 都无法下载下来,可以使用 proxychains 代理的方法(可以参考之前的文章),不过毕竟也稍微麻烦一点,不过后来发现,在官网下载一个可运行的 rslsync ,再配置一些 conf 文件就可以直接开跑。

在文件 /etc/apt/sources.list.d/resilio-sync.list 中写入:

deb [arch=armhf] http://linux-packages.resilio.com/resilio-sync/deb resilio-sync non-free

添加公钥

wget -qO - https://linux-packages.resilio.com/resilio-sync/key.asc | sudo apt-key add -

更新 index

sudo dpkg --add-architecture armhf
sudo apt-get update

安装

sudo apt-get install resilio-sync

安装完之后,如果想要修改 conf 文件,可以去相应的位置 /etc 下找,然后使用树莓派的 IP:8888 来访问 WEB 管理界面。

然后就是添加相应的 KEY 来同步文件了。具体可以参考我之前那篇文章。

raspi_2_b

reference