分类 Raspberry Pi 下的文章

树莓派安装 simplecv

按照官方文档 (https://github.com/sightmachine/SimpleCV/blob/develop/doc/HOWTO-Install%20on%20RaspberryPi.rst) 安装之后, 有2处issues:

  1. 执行 simplecv 报一堆错, 最后说: No module named pygame.
    解决办法: sudo apt-get install python-pygame (使用pip 安装的pygame 不行)

  2. 在代码里使用 Camera的时候, 代码报错, 我这里有2点问题
    一个是哪个摄像头的有个接触不良, 就是上面写个 sunny的东西要贴近电路板;
    第二个是, 没有 /dev/video0 设备文件, 需要执行 sudo modprobe bcm2835-v4l2 才有

使用 USB 转TTL 连接树莓派

网上购买了 USB 转 TTL 的线, 可是这货把RXD,TXD标错了.
usbttl.jpg

  1. 这个线的型号是: CH340G. 要安装驱动, 如果你电脑是linux,默认不需要装, 若win 和mac 需要安装. 我是mac, google 一下 驱动在这: https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver 里面有安装说明;
  2. 根据说明要在 系统设置里面 把这个驱动软件解禁, 然后重启mac;
  3. 重启后, 插入接好的USB, ls /dev/cu. Tab 键, 就能看到新的设备;
  4. 然后连上树莓派. sudo cu -l /dev/cu.wchusbserial1410 -s 115200 然后entry 键, 就显示要输入pi的用户名密码了.

kali on raspberry emergence mode when start

今天尝试在 Raspberry 上面安装 Kali ARM 版本, 遇到每次重启都不能自动进入系统,都卡在进入系统之前的验证,验证消息说:现在是 emergency mode, 请输入root的密码,然后systemctl reboot 或看log, 或 ctr + d 继续,然后进入default mode, 不过以后每次重启 还是要进入这个 maintenance emergence mode, 这样直接导致不接键盘和屏幕,无法进入系统。

google 之后, 发现这可能是sd卡有文件错误,比如它写入的时候出问题了, 或者是运行中突然掉电,最搞笑的是在一个问答里面, 有个印度人说在印度 经常断电是一种很常见的问题。
这个帖子给了一个解释: Getting emergency mode screen on boot up every time

所以 根本问题是SD 卡有问题了, 需要修复。
如何修复

  1. windows 上面可以格式化,但是因为已经装了个系统,所以window上面无法看到未分派的空间,需要额外软件修复分区问题 然后在格式化;
  2. linux 上面比较简单 先umount 那个设备 umount /dev/sdc, 然后格式化 mkfs.vfat /dev/sdc
    参见: linux格式化U盘

树莓派 raspberry 播放 路由器 上的电影

首先介绍一下情况:

  1. 路由器是基于openWRT的智能路由器;
  2. 路由器上面安装了 BT 客户端, 路由器一直开机, 且低功耗,使用BT下电影有优势;
  3. BT 客户端下的电影存放在路由器挂载的一个移动硬盘上面;
  4. 家里有另外一个树莓派, 它本身具有 HDMI 接口, 可以直接omxplayer播放电影

为什么不用路由器直接播放, 都是ARM的芯片?

  • 路由器的内存只有64M, 上面还跑其他服务, 没有 HDMI 接口,平时智能通过 samba 共享给其他设备.

详细步骤:

  1. 树莓派安装 sshfs
    sudo apt-get install sshfs

  2. 路由器安装 openssh-sftp-server
    ipkg install openssh-sftp-server

  3. 树莓派远程挂载路由器的资源
    mkdir /mnt/remote #创建挂载文件夹
    #挂载 user 是路由器上用户名, /mnt/movies 是路由器是电影文件夹
    sudo sshfs user@192.168.1.1:/mnt/movies /mnt/remote

  4. 播放电影
    omxplayer -o hdmi /mnt/remote/test.mp4

遇到的问题:

  1. 路由器无法安装 sftp-server?
    查看你的 ipkg 的配置文件 /etc/ipkg.conf
  2. sshfs 报错 : sshfs remote host has disconnected
    使用debug 参数去看一下:
    sudo sshfs -o debug,allow_root remote@192.168.1.1:/mnt/X /mnt/remote
  3. sshfs 在debug情况下报错: sh: /opt/libexec/sftp-server: not found
    确认你共享服务器上装有 sftp-server, 没有的话, 去安装
  4. 共享了, 可是没有读权限
    加上 -o allow_other 选项
  5. 树莓派 可以播放, 但是 HDMI 输出没有视频
    配置 /boot/config.txt
    hdmi_force_hotplug=1
    hdmi_drive=2

Raspberry 每5分钟拍一张照片并上传到远程服务器

  1. 启动 raspberry的 camera 功能
    命令行 raspi-config 找到拍照设置,enable 它。 退出并选则重启

  2. 编写拍照并上传的脚本 脚本放在 /var/spool/cron/pi 目录,命名为 photo.sh

    #!/bin/sh

    cd /home/pi/photo
    time=$(date +"%H%M")
    suffix=.jpg
    fileName=img$time$suffix

    raspistill -t 1000 -o $fileName
    sshpass -p 密码 scp $fileName 用户名@192.168.1.108:/mnt/远程目录/$fileName
    rm $fileName

  3. 加入 cron job
    crontab -e
    加入 ×/5 5-23 × × × /var/spool/cron/pi/photo.sh
    (上面的×是星号)

  4. 重启 cron 进程
    sudo service cron restart

可能遇到的问题
sshpass 没有安装 : sudo apt-get install sshpass
脚本正常执行, 却没有scp copy 到远程: 可能没有接收ssh key, 手工 ssh 登录一次
不要使用 sudo crontab -e, 这是以 root 的身份加
上面的脚本只保留一天的照片所以第二天会覆盖第一天的。