分类 Raspberry 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 的身份加
上面的脚本只保留一天的照片所以第二天会覆盖第一天的。

Raspberry pi 2 B 初始设置

只买了 Raspberry Pi 2 B 的主机, wifi连接接口, 初始设置使用 hdmi 连接电视。需要先通过网线连接,到路由器管理界面看它的 树梅派 的IP 地址

  1. 官方下载 image
    (我下载的是 RASPBIAN JESSIE LITE 只有350多M,解压后的 .img 文件1.5G左右)

  2. 根据官方文档写入sd卡 我是linux 上写入, 其实就一个命令:
    dd bs=4M if=2015-11-21-raspbian-jessie.img of=/dev/sdd

  3. 插上显示器(我用的是hdmi 接电视)网线,无线wifi 接口,以及上面写入image的 mirco sd卡

  4. 到路由器界面看 树梅派 用的IP (我的192.168.1.141)

  5. ssh 登录到 树梅派 ssh pi@192.168.1.141
    密码是默认 raspberry

  6. 设置无线wifi
    官方文档 这里
    sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
    设置好之后,到路由器管理界面去看它的新IP, 就可以拔掉网线了

  7. 再次到路由器管理界面看树梅派使用无线wifi 连接的IP

  8. 添加新用户
    mkdir /home/foo //新建foo的home文件夹
    groupadd general //创建general group
    useradd -g general -d /home/foo foo //创建用户foo
    passwd foo //改密码
    chown /home/foo foo //赋予home文件夹 权限
    visudo 添加sudo权限 (ctr + M是写入)

  9. 更改root密码