最近搞了一台树莓派2B,准备折腾一下ARM平台,又不想总是插键盘插鼠标插显示器,所以打算直接用一根网线接电脑来管理它。

系统镜像准备

刚到手的树莓派上面什么都没有,连硬盘也没有。这就需要自己买一个SD卡来做硬盘,2B使用的Micro SD卡,容量大小需要不小于4G否则系统都装不下。我弄了一个SanDisk的64GB TF卡,在插入Pi之前还需要把系统烧写进去。到官方网站下载默认系统镜像Raspbian Wheezy,解压出img文件。

在Linux下烧写比较简单,直接使用dd命令就可以解决。先使用df命令查看SD卡的设备名,比如我这里是/dev/sdb,其中有一个分区/dev/sdb1。如果它已经被挂载,则首先需要umount /dev/sdb1卸载这个设备。然后使用dd烧写img文件,注意这里的of设备是整个sd卡的设备/dev/sdb而不只是一个分区/dev/sdb1

1
$ dd bs=4M if=2015-09-24-raspbian-wheezy.img of=/dev/sdb

烧写完毕后大概会用掉sd卡3.3GB的空间,剩余的空间是没有分区的,我们可以自己通过fdisk工具来进行分区或者使用raspbian系统里自带的一个配置工具进行分区扩展。

网络初始配置

下载的默认系统中,网卡的设置是需要从dhcp服务器获取自己的IP,如果我们把小派插到路由器上的话就不需要设置这个直接在同一局域网中扫描就可以发现它。但我是把它插到自己的电脑上,这时候就没有dhcp服务器给它分配IP了,这就没有办法通信了,所以我直接修改了SD卡上系统的网络配置文件,让它有一个静态的IP。

在自己的电脑上打开SD卡里的/etc/network/interfaces文件,修改eth0的网卡配置

1
2
3
4
5
6
7
8
9
10
...
auto eth0
iface eth0 inet static
address 192.168.0.100
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 8.8.8.8
...

这里制定其IP为192.168.0.100,同时设置网关和DNS服务器。

通过SSH连接

这时候可以把SD卡插到小派里了,连上电源和网线,还需要在自己的电脑上也设置一个IP,比如我连到小派的网卡是eth1,则设置

1
$ sudo ifconfig eth1 192.168.0.1 netmask 255.255.255.0

这样就把自己的电脑做成了这个子网的网关,这时就可以通过ssh访问小派了,使用用户名pi,初始密码raspberry登录。

1
$ ssh pi@192.168.0.100

通过电脑共享上网

虽然这时可以通过SSH控制小派,但它还不能上网,我们需要在电脑上设置一个NAT地址转换,将流量转发到连外网的网卡eth0上,可以使用这样一个脚本。

1
2
3
4
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE

用root权限运行,更新iptables规则,这样就可以让小派也能连接外网了。

小结

其实如果你有一台路由器,就没有这些个事了:),直接都插到路由器上就万事大吉了。