经过折腾,上一次的树莓派系统终于死翘翘了,于是一切归零,格式化了TF卡,世界安静了。
一、灌装灵魂重生
从官网下载了 2015-05-05-raspbian-wheezy 镜像,直接用 Win32DiskImager 写入 TF 卡,插入树莓派,通电,绿灯开始闪烁,树莓派重生了。
二、连接 Wi-Fi
1.ZD1211B固件
依然老问题,自己的 zd1211b 网卡 依然需要自己安装 firmware,神卡就是矫情。将 firmware-zd1211_3.0.0.56-3_all.deb (本地链接: firmware-zd1211_3.0.0.56-3_all.deb)拷进 TF卡的启动分区,省去折腾U盘,串口终端连接,cd /boot ,sudo dpkg -i 安装deb包,然后扩容,改时区,开启SSH,超频,一个也不能少。
2.Wi-Fi 配置
有了上次的经验,这次根本不动 interfaces,系统原始配置如下:
只需要将自己的 SSID 和密码添加进 wpa_supplicant.conf ,然后重启,就自动连接了。如下图:
3.Wi-Fi 重连
将 interfaces 里设置 wpa-conf 改为 wpa-roam 似乎能解决问题,但是没搞明白这两个的区别。
三、有线连接
当时考虑到无线是能被DHCP到IP地址,同时认为有线直连PC,有线网口不能获取到IP地址。事实不是的。
使用有线连接树莓派和PC,两者都DHCP不到IP后,会各自自动分派一个 196.254.xxx.xxx 段的地址,只要扫描22端口,就能锁定IP地址。这下除了无线连接,又多了一个备用连接。
LT 测试几次发现,自己的 Pi 指配的 IP 地址都是 169.254.153.195 。这样,我只要在putty里建立这样一个配置,就可以直接用网线连接了。串口线默默收拾起来。
四、文件传输
命令行大法好,尝试了在Windows里用pscp上传下载文件,很灵活,表示万不得已不再使用 WinSCP.

五、武装 Python
在weibo看到 @linuxsand 同学安装神马 pip, 感觉高上大,度娘一搜,敢情类似 apt-get ,赶紧研究研究,装了上去。
先装 setuptools,再装 pip。刚开始下载出错,原来还得再配置 https_proxy 才能使用代理下载 https 的链接。安装过程按下不表,无非 tar zxvf 然后进入目录 sudo python setup.py installl 神马的。更多参阅:pip 不是多面手。
六、重识 sudo
装完 pip,按照网络教程,测试输入 pip install simplejson ,权限! 得sudo, 于是加上sudo,却发现连不上网。
原来原来的环境变量是 pi 用户的, su 用户没有设置代理,所以连不上。请来度娘,一查,有 -E -H 参数可用。
-E preserve user environment when executing command -H set HOME variable to target user's home dir.
加上参数执行 sudo -EH pip install simplejson ,果然犀利! 测完,用 sudo pip uninstall simplejson 卸载掉 simplejson.
再次感谢 @linuxsand 同学的启发!
七、安装 Nginx 和 PHP
参照 http://www.eeboard.com/bbs/thread-27383-1-2.html
必要的命令
sudo apt-get install nginx
重启 nginx
sudo /etc/init.d/nginx start
安装php和sqlite
sudo apt-get install php5-fpm php5-sqlite
修改 nigix 配置
sudo nano /etc/nginx/sites-available/default
sudo /etc/init.d/nginx reload
在 www目录 ,即 /usr/share/nginx/www/ 建一个测试文件
sudo nano /usr/share/nginx/www/test.php
内容输入并保存
<? phpinfo(); ?>
使用 IE 访问,看是否正常显示
八、同步 rsync
使用 rsync 将目录同步到U盘,避免个人文档丢失。参照 http://blog.csdn.net/david_xtd/article/details/10142393
sudo rsync -av --delete ~/ /media/udisk/home/
九、安装dokuwiki
1.下载 dokuwiki
下载并传到pi,解压,移动到 /usr/share/nginx/www 目录下
运行 sudo chown -R www-data:www-data dokuwiki/ 命令改变 dokuwiki 目录的所有者,否则 install.php 会提示写权限问题
pi@raspberrypi /usr/share/nginx/www $ sudo chown -R www-data:www-data dokuwiki/ pi@raspberrypi /usr/share/nginx/www $ ls -la total 24 drwxr-xr-x 3 root root 4096 Aug 3 12:45 . drwxr-xr-x 3 root root 4096 Jul 14 09:53 .. -rw-r--r-- 1 root root 383 Jul 8 2006 50x.html drwxr-xr-x 7 www-data www-data 4096 Aug 3 12:44 dokuwiki -rw-r--r-- 1 root root 151 Oct 4 2004 index.html -rw-r--r-- 1 root root 18 Jul 17 09:40 test.php
2.修改 nginx 配置
参考 https://www.dokuwiki.org/install:permissions 和 https://www.rosehosting.com/blog/how-to-install-dokuwiki-on-debian-wheezy-with-nginx/
十、安装 Qt5.3.2
LT 之前编译过了 Qt5.3.2,正好再安装一次 ,从这里下载 “自己编译的树莓派上的Qt5 – LT_RPi-Qt5.3.2” ,然后传输到 pi 上,用 tar zxvf 解压,得到一个 qt5 文件夹。参考 https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=114586&p=789115 安装。
$ tar xvzf qt5.2-rpi.tgz $ rm qt5.2-rpi.tgz $ sudo mv qt5 /opt $ sudo ln -s /opt/qt5 /usr/local/qt5 You will need to set some environment variables, This can be done by adding the following to /etc/profile or your ~/.bashrc file. $ export PATH=${PATH}:/usr/local/qt5/bin $ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/qt5/lib $ export QT_PLUGIN_PATH=/usr/local/qt5/plugins
但是要处理 Qt4 和 Qt5 的并存问题,目前LT还没处理
可在 .bashrc 里加一条命令
alias qmake5='/usr/local/qt5/bin/qmake'
然后执行
source .bashrc
这样,输入 qmake 和 qmake5 就会调用不同的qmake版本
pi@raspberrypi ~ $ qmake -v QMake version 2.01a Using Qt version 4.8.2 in /usr/lib/arm-linux-gnueabihf pi@raspberrypi ~ $ qmake5 -v QMake version 3.0 Using Qt version 5.3.2 in /usr/local/qt5/lib pi@raspberrypi ~ $
Jessie 正式版本
$ sudo apt-get update $ sudo apt-get upgrade $ sudo rpi-update $ sudo apt-get install qt5-default
十一、增大 swap 空间
参照 https://www.phodal.com/blog/raspberry-pi-add-the-swap-file-size/ 一文,输入
sudo nano /etc/dphys-swapfile
将数值 CONF_SWAPSIZE 的数值 100 改为 1000
十二、让pi提供代理服务
如果需要通过Pi来做代理服务器,那么可以使用plink通过ssh来连接完成,例如:
plink.exe "ip_addres" -N -ssh -2 -P 22 -l pi -C -D 1080 -v
然后,plink 就开始提供1080端口的socks服务了。
十三、给 Pi 安装 DNS 工具
Windows下有 nslookup工具,那么linux下呢?
sudo apt-get install dnsutils
这样就可以使用 nslookup 工具
pi@raspberrypi:~ $ nslookup > 163.com Server: 192.168.31.1 Address: 192.168.31.1#53 Non-authoritative answer: Name: 163.com Address: 123.58.180.8 Name: 163.com Address: 123.58.180.7
或者使用 dig 工具
pi@raspberrypi:~ $ dig 163.com ; <<>> DiG 9.9.5-9+deb8u6-Raspbian <<>> 163.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59930 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;163.com. IN A ;; ANSWER SECTION: 163.com. 30 IN A 123.58.180.7 163.com. 30 IN A 123.58.180.8 ;; Query time: 7 msec ;; SERVER: 192.168.31.1#53(192.168.31.1) ;; WHEN: Mon Sep 19 17:34:11 CST 2016 ;; MSG SIZE rcvd: 68
十四、升级内核
pi@raspberrypi:~ $ sudo rpi-update *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom *** Performing self-update *** Relaunching after update *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom ############################################################# This update bumps to rpi-4.9.y linux tree Be aware there could be compatibility issues with some drivers Discussion here: https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=167934 ############################################################## *** Downloading specific firmware revision (this will take a few minutes) % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 168 0 168 0 0 145 0 --:--:-- 0:00:01 --:--:-- 145 81 53.9M 81 43.7M 0 0 166k 0 0:05:32 0:04:29 0:01:03 91087
<todo>
扩展阅读
- python pip包管理
http://hxl2009.blog.51cto.com/779549/1334664 - python安装模块出错(ImportError: No module named setuptools)解决方法
http://blog.sina.com.cn/s/blog_3fe961ae0100zgav.html - 利用ssh传输文件
http://www.cnblogs.com/jiangyao/archive/2011/01/26/1945570.html - software installation – apt get install vs pip install – Ask Ubuntu
http://askubuntu.com/questions/431780/apt-get-install-vs-pip-install - What’s the difference between `wpa-roam` and `wpa-conf` in the /etc/network/interfaces file?
http://raspberrypi.stackexchange.com/questions/9257/whats-the-difference-between-wpa-roam-and-wpa-conf-in-the-etc-network-inte - Qt on the Raspberry Pi 2
http://www.ics.com/blog/qt-raspberry-pi-2 - 树莓派无线网卡选择
http://www.cnblogs.com/sjqlwy/p/5003436.html
我看到那张pip list执行结果的截图,很惊讶,原来有这么些可以用于pi的包啊。也想买个玩玩了。
python 在 树莓派 里的地位很重要
https://account.daocloud.io/signup?invite_code=qscyw8lmeyhddm674ca3 这里有个免费送树莓派2的活动 特别适合楼主这样有博客的(送书送树莓派,但是要邀请用户,想必楼主很容易邀请到这个小数量的)
很难,要邀请成百的才可以。还不如直接用钱买直接 :)