27 December 2014

目录

0. 前言

cover

本文基于:

  • 硬件
    • Raspbeery Pi B+ model
    • USB无线网卡
  • 系统:Archlinux ARM

树莓派已经属于上一代ARM开源硬件了,在ARMv8已经推出,ARMv7是主流的时代。其性能太低了:

  • CPU(ARMv6):700MHZ
  • RAM:512MB

这样的配置只能勉强运行轻量级的X桌面管理器,如OpenBox、Lxde、Xfce之类的;运行浏览器会有明显的卡顿;无法运行FlashPlayer,因为Flash对CPU要求很高。

但树莓派B+ model接口还算丰富,仍然有一定价值。

1. 安装操作系统

在支持Raspbeery Pi几种操作系统中,我选择Archlinux ARM,原因:

  1. 安装简单。
  2. 轻量级,资源占用较少,对Raspbeery Pi这样配置很弱的硬件很重要。
  3. 源里包全面且版本新。
  4. 滚动升级。
  5. 配置方便。

官方网站:Archlinux ARM

1.1 安装

需要准备一张至少4G的micro SD卡(TF卡)

按照官方提供的安装方法

2. 基本配置

!先修改root密码

passwd

2.1 创建用户

创建用户:

useradd -G wheel -m -s /usr/bin/bash YourUserName

修改密码:

passwd YourUserName

如果你喜欢更好shell的: fish

pacman -S fish
chsh -s /usr/bin/fish YourUserName

安装配置sudo:

pacman -S sudo
echo "%wheel ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

以上配置表示所有wheel组的用户都可无密码执行sudo;可能不太安全,可酌情修改。

结束:

exit

重新用新建的账户登录;尽量不要用root账号登录。

2.2 配置locale和localtime

echo "zh_CN.UTF-8 UTF-8" >> /etc/locale.gen
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen

以上配置了中文简体和英语。

设置语言为简体中文:

echo "LANG=zh_CN.UTF8" >> ~/.bashrc

设置时区:

ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

查看时间日期是否正常:

date

2.3 安装配置vim

pacman -S vim
curl 'https://raw.githubusercontent.com/emptyland/scripts/master/conf/comm/vimrc' > /etc/vimrc

以上使用我的vim配置进行全局配置。 如果不希望全局配置,可以将vimrc文件放到: ~/.vimrc

2.4 配置pacman

先进行更新系统:

pacman -Syu

使用wget做pacman的下载器:

pacman -S wget
echo "XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u" > /etc/pacman.conf

使用较快的源:

编辑/etc/pacman.d/mirrorlist

添加以下源到文件头部:

  • 中国科技大学:Server = http://mirrors.ustc.edu.cn/archlinuxarm/$arch/$repo

官方源列表:http://archlinuxarm.org/about/mirrors

2.5 每日自动更新系统

  1. 需要先安装crond

     pacman -S cronie
     systemctl enable cronie
     systemctl start cronie
    
  2. 配置crond

     sed -i -e "s/^ExecStart=.*\$/ExecStart=\/usr\/bin\/crond -n -s/" /usr/lib/systemd/system/cronie.service
    
  3. 设置crontab

     echo '0 0 * * * root pacman -Syu --noconfirm' > /etc/cron.d/daily_upgrade
     chown root:root /etc/cron.d/daily_upgrade
     chmod 644 /etc/cron.d/daily_upgrade
    

    以上设置每天00:00更新整个系统。

如何关闭自动更新?

只要删除crontab就可以了:rm /etc/cron.d/daily_upgrade

如何排查问题?

  • 查看cronie日志:sudo journalctl -u cronie
  • 查看pacman日志:less /var/log/pacman.log

2.6 ssh免密码登录

如果没有~/.ssh文件夹,需要创建一个:

mkdir ~/.ssh
chmod 700 .ssh

将终端机的公钥放到~/.ssh/authorized_keys中,一个公钥行。

从有对应公钥的私钥的终端登录Raspbeery Pi可以免密码了。

3. 无线网络配置

Raspbeery Pi本身没有无线网卡,连接网络的时候始终要拖着个尾巴,不是很方便;可以插上个USB无线网卡,解除网线的限制。

USB wifi

  1. 检查驱动是否正常

     $ lsmod | grep 8192cu
     8192cu                533562  0
    
  2. 安装wpa_supplicant:

     pacman -S wpa_supplicant
    
  3. 配置wpa_supplicant:

    确定无线网卡的接口名,这里假设是:wlan0

    编辑/etc/wpa_supplicant/wpa_supplicant-wlan0.conf

     ctrl_interface=/var/run/wpa_supplicant
     ctrl_interface_group=wheel
    	
     network={
         ssid="SSID"
         proto=RSN
         key_mgmt=WPA-PSK
         pairwise=CCMP TKIP
         group=CCMP TKIP
         psk="PASSWORD"
     }
    

    把ssid改为自己的wifi ssid,psk设置为wifi密码。

  4. 配置systemd:

    编辑/etc/systemd/system/wpa_supplicant@.service

     [Unit]
     Description=WPA supplicant daemon (interface-specific version)
     Requires=sys-subsystem-net-devices-%i.device
     After=sys-subsystem-net-devices-%i.device
    
     # NetworkManager users will probably want the dbus version instead.
    
     [Service]
     Type=simple
     ExecStart=/usr/bin/wpa_supplicant -Dwext -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -i%I
    
     [Install]
     Alias=multi-user.target.wants/wpa_supplicant@%i.service
    

    编辑/etc/systemd/system/network@.service

     [Unit]
     Description=Network connectivity (%i)
     Wants=network.target
     Before=network.target
     BindsTo=sys-subsystem-net-devices-%i.device
     After=sys-subsystem-net-devices-%i.device
    	
     [Service]
     Type=oneshot
     RemainAfterExit=yes
     EnvironmentFile=/etc/conf.d/network@%i
    	
     ExecStart=/usr/sbin/ip link set dev %i up
     ExecStart=/usr/sbin/ip addr add ${address}/${netmask} broadcast ${broadcast} dev %i
     ExecStart=/usr/sbin/ip route add default via ${gateway}
    	
     ExecStop=/usr/sbin/ip addr flush dev %i
     ExecStop=/usr/sbin/ip link set dev %i down
    	
     [Install]
     WantedBy=multi-user.target
    
  5. 配置IP地址:

    编辑/etc/conf.d/network@wlan0

     address=192.168.1.103
     netmask=255.255.255.0
     broadcast=192.168.1.255
     gateway=192.168.1.1
    

    为了防止IP地址经常改变,ssh不方便连接,不设置DHCP,而实用静态IP地址。

  6. 配置并启动daemon:

     systemctl enable wpa_supplicant@wlan0.service
     systemctl start wpa_supplicant@wlan0.service
     systemctl enable network@wlan0.service
     systemctl start network@wlan0.service
    

4. 一些优化

4.1 超频

CPU频率配置在/boot/config.txt中:

默认配置是:

#None
arm_freq=700
core_freq=250
sdram_freq=400
over_voltage=0

有几种方案供选择:

##None
#arm_freq=700
#core_freq=250
#sdram_freq=400
#over_voltage=0

##Modest
#arm_freq=800
#core_freq=300
#sdram_freq=400
#over_voltage=0

#Medium
#arm_freq=900
#core_freq=333
#sdram_freq=450
#over_voltage=2

##High
#arm_freq=950
#core_freq=450
#sdram_freq=450
#over_voltage=6

##Turbo
#arm_freq=1000
#core_freq=500
#sdram_freq=500
#over_voltage=6

一般从低到逐个尝试,直到找到一个能稳定的频率。

4.2 IO调度器

$ cat /sys/block/mmcblk0/queue/scheduler
[noop] deadline cfq

已经设置为noop调度器了,可以不用设置。



blog comments powered by Disqus