树莓派入坑指南,自己踩过的一些坑,在此处记录分享一下,并附上处理方法。不定期更新
0.初始化相关
1./boot/config.txt --显示初始化相关
2./etc/lightdm/lightdm.conf --屏保睡眠设置
3./etc/network/interfaces --网络设置
4./etc/resolv.conf --DNS设置
5./etc/rc.local --自启动脚本执行
6.~/.config --自定义图形化应用程序自动启动
7./etc/resolvconf.conf --自定义DNS服务器
0.初始化相关
1.系统安装:官网现在推荐使用noobs这个工具,是树莓派官方推荐的系统安装方式,使用非常简单,下载后是一个压缩包,解压后放在格式化好的tf卡内即可启动,图形化的界面,选择需要安装的系统即可,或者是用磁盘映像,直接写入到tf卡也是一样的.都非常简单需要用的工具:SD Formatter,NOOBS,Win32 Disk Imager.
2.系统初始化:进入系统后默认是英国英文,键盘布局之类都和国内不同,需要修改配置,然后系统默认没有中文支持,需要配置和安装字体。
sudo passwd
设置su的密码。设置后, 可以运行
sudo raspi-config
进行配置,可以设置的项目都比较简单基本可以直接看懂,包括树莓派的超频以及显存分配都可以直接在这里配置,这里介绍一下语言配置Internationalisation Options,可以设置地区,时区以及键盘布局。这里需要增加美国英语的支持以及中文支持,需要加选,
en_US.UTF-8 UTF-8
zh_CN GB2312
zh_CN.GBK GBK
zh_CN.UTF-8 UTF-8
随后会提示设置系统的默认语言,推荐选择en_US,然后保存退出,然后设置时区以及键盘布局,键盘布局需要设置成en_US
然后重启
sudo reboot
重启后,树莓派不会默认安装设定语言的字体,需要自己安装:
sudo apt-get install ttf-wqy-zenhei
如果需要安装中文输入法:
sudo apt-get install scim-pinyin
1.config.txt
配置树莓派基本的显示和初始化相关的基本配置,包括分辨率,屏幕旋转,HDMI输出边界检测,和睡眠时间等等.
display_rotate配置表示屏幕顺时针旋转如display_rotate=3表示顺时针旋转3*90度
overscan_left|top|righrt|buttom分别表示树莓派使用HDMI输出的时候个方向屏幕防越边界检测
# For more options and information see
# http://www.raspberrypi.org/documentation/configuration/config-txt.md
# Some settings may impact device functionality. See link above for details
# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1
# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16
# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1920
#framebuffer_height=1080
# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2
# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4
# uncomment for composite PAL
#sdtv_mode=2
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi
# Additional overlays and parameters are documented /boot/overlays/README
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
# NOOBS Auto-generated Settings:
#display_rotate=3
display_rotate=0
hdmi_force_hotplug=1
config_hdmi_boost=4
#overscan_left=24
#overscan_right=24
#overscan_top=16
#overscan_bottom=16
disable_overscan=1
#disable_overscan=0
2./etc/lightdm/lightdm.conf
xserver-command=X -s 0 dpms
禁用屏保和休眠
3./etc/network/interfaces
树莓派的网络配置文件其中包含有线网络和wlan网络,理论上可以在此处配置IP地址和DNS服务器,但是DNS配置后从未生效过,待问题解决后更新
/etc/network/interfaces
#默认的配置文件
# interfaces(5) file used by ifup(8) and ifdown(8)
# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
iface eth0 inet manual
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
设置有限网络为静态ip地址
auto ethiface eth0 inet static
address 10.52.91.222 ## 设定的静态IP地址
netmask 255.255.255.0 ## 网络掩码
gateway 10.52.91.1 ## 网关
4./etc/resolv.conf --DNS设置
resolv.conf文件每次重新启动会重新根据配置文件初始化,所以手动设置后只会在本地系统未重启动时生效,一旦系统重启,需要重新设置。本来这个文件是不需要自己手动设置的,只是因为在/etc/network/interfaces文件中手动配置DNS服务器不生效,所以设置此文件临时起效,待问题解决后更新.
设置DNS的方式:
sudo echo "nameserver xxx.xxx.xxx.xxx" > /etc/resolv.conf
5./etc/rc.local
根据官方的文档资料,如果想要配置自定义的自启动的服务或者脚本,那么就是写在/etc/rc.local中 ,如果是python脚本需要在执行命令前指定python,例如:
python /home/pi/myscript.py &
6.~/.config
使用树莓派的时候遇到了这样的一个需求:需要桌面启动之后自动运行一个图形化的应用程序(我们是使用了nw.js来做轻客户端的),在这里使用/etc/rc.local是无效的,图形化程序是需要桌面启动之后才能够运行的,所以这里使用~/.config目录来达到目的,这是一个隐藏目录,需要使用ls -al来显示出来.进入后先创建一个目录:
mkdir autostart
进入目录,创建我们的自启动应用程序脚本:
sudo vi my.desktop(或sudo nano my.desktop 文件名可自定义)
写入以下内容:
[Desktop Entry]
Type=Application
Exec=你的程序启动脚本
6./etc/resolvconf.conf
使用很多种方式设置树莓派的DNS地址,但是每次系统重启之后都会被重新指定到网关地址。后来发现DNS地址可以在这个文件里手动指定:
name_servers=202.98.0.68
设置后,不会在系统重启之后重置。