官网下载镜像,dd到sd卡,dd完后挂载sd卡,修改/etc/network/interfaces设置无线网和静态ip使树莓派开机能自动连上自己的wifi,方便ssh。
iface wlan0 inet static
address 192.168.1.xx
netmask 255.255.255.0
gateway 192.168.1.1
wpa-ssid xxx
wpa-psk xxx
树莓派插入sd卡启动,ssh [email protected] 密码raspberry,进入树莓派。
按自己习惯配置一下:
1.解锁root
$ sudo passwd root
$ sudo passwd --unlock root
允许root登录ssh
$ sudo vim.tiny /etc/ssh/sshd_config
将其中的PermitRootLogin without-password改为yes,然后重启ssh服务
$ sudo service ssh restart
2.在/root/.bashrc 里添加. /home/pi/.bashrc,因为pi用户的.bashrc里带一些使能颜色显示,自动补全等的设置脚本。
3.添加中科大源,注意版本是jessie还是其他的
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main non-free contrib rpi
4.修改hostname,原来的raspberrypi太长了。修改/etc/hostname和/etc/hosts,重启生效。
5.安装vim,cmake等软件。
6.用raspi-config禁止串口终端功能,使能i2c spi
制作镜像最好dd整个设备,而不dd分区,因为卡上有两个分区,一起备份比较方便。但是整个设备是16G的(16G的卡),dd出来也是16G,浪费空间。可以用fdisk查看第二个分区的结尾,设置dd的数据多少。这又牵扯一个问题,第二个分区冗余空间是否太多?太多的话还是会浪费空间。查看了一下,官网镜像dd出来竟然整个sd卡是占满的。于是只好先用gparted缩小第二个分区,再备份。步骤如下:
将sd卡通过读卡器连接电脑,会出现/dev/sdb这个设备(也可能是sdc,sdd…)和/dev/sdb1,/dev/sdb2两个分区。第一个是/boot的FAT32分区,第二个是根分区。用gparted调整sdb2的大小到2G左右(注意不要挂载,否则不能调整,另外空间太小,缩小分区会失败)。
然后
$ sudo fdisk -l /dev/sdb
得到以下数据
Disk /dev/sdb: 14.9 GiB, 15931539456 bytes, 31116288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6db7bb66
Device Boot Start End Sectors Size Id Type
/dev/sdb1 8192 137215 129024 63M c W95 FAT32 (LBA)
/dev/sdb2 137216 4028415 3891200 1.9G 83 Linux
sector是512B的,第二个分区的end sector是4028415,所以可以这么dd
$ sudo dd if=/dev/sdb of=~/raspbian.img bs=512 count=4028416
注意count是end sector+1,因为sector是从0开始编号。
dd得到的镜像可以用loop设备的方式挂载,进一步在PC上修改。
注意树莓派有两个分区,FAT32的boot和根分区。如果要从dd得到的镜像中挂载根分区,要设置offset。offset的值是sector大小乘以分区起始位置。根据上面的分区表,sdb2分区起始位置为137216,所以挂载sdb2可以这样
$ sudo mount -t ext4 -o loop,offset=$((512*137216)) /dev/sdb /media/sdb2