在基于树莓派的 Ubuntu Server 中使用 csi 摄像头

1 说明

在树莓派 3B+ 上接了 csi 摄像头,并安装了 ubuntu server 64bit ,需启用摄像头,然后拍照。

2 安装 raspi-config

使用 csi 摄像头需利用 raspi-config 启用摄像头,ubuntu server 中默认没有安装该程序。从 http://archive.raspberrypi.org/debian/pool/main/r/raspi-config/ 下载最新版,这里是 raspi-config_20210212_all.deb,安装

dpkg -i raspi-config_20210212_all.deb

如果出现依赖报错,则解决一下:

sudo apt --fix-broken install

3 启动摄像头

通过 raspi-config 启用摄像头,按提示选择 camera ,enable

sudo raspi-config

但发现出错提示:Your firmwave appears to be out of date (no start_x.elf). Please update。

需挂载一下启动分区到 /boot ,先确认一下启动分区是不是 /dev/mmcblk0p1

df -h

如果是,便挂载到 /boot

mount /dev/mmcblk0p1 /boot

挂载后再次通过 raspi-config 启动摄像头,启动后需重启,然后可以查看到有 /dev/video0

ls /dev/video*

4 拍照

拍照

raspistill -o pic.jpg

录制30秒h264格式的视频

raspivid -t 30000 -vs -o -> v0.h264

旋转270度

raspistill -rot 270  -o pic270.jpg

Ubuntu 安装 superset

1 简介

Apache Superset是一个开源软件云原生应用程序,用于数据探索和数据可视化,能够处理PB级数据。该应用程序最初是由Maxime Beauchemine在Airbnb工作时的一个黑客项目,并于2017年进入了Apache Incubator计划。

本文基于 ubuntu 20.04 64bit , python 3.8.2 , apache-superset 1.0.1, mariadb-server 来安装配置。superset 基于 Flask 开发的 ,默认使用的是 sqlite 数据库。

2 安装系统环境

安装系统基本环境

sudo apt-get install build-essential libssl-dev libffi-dev python3-dev python3-pip libsasl2-dev libldap2-dev python3-venv libmariadb-dev

由于众所周知的网络环境原因,这里需要添加对域名的解释到 /etc/hosts

echo "151.101.108.133 raw.githubusercontent.com" >> /etc/hosts

配置虚拟环境并激活

mkdir mysuperset
cd mysuperset
python3 -m venv venv
. venv/bin/activate

3 安装 superset

安装依赖环境

pip install wheel 
pip install mysqlclient
pip install Pillow

安装 superset

pip install apache-superset

初始化数据库

superset db upgrade

创建程序的管理员

export FLASK_APP=superset
superset fab create-admin

加载案例数据

superset load_examples

创建默认角色和权限

superset init

在8088端口启动一个开发模式的服务器

superset run -h 0.0.0.0 -p 8088 --with-threads --reload --debugger

4 配置 superset

4.1 设置为中文

superset 1.0.1 版本自带的中文语言包翻译质量一般,建议去 https://github.com/apache/superset/tree/master/superset/translations/zh/LC_MESSAGES 下载最新的语言包,然后用 poedit 程序打开 messages.po 文件转成 messages.mo 文件,再替换原来的 mo 和 json 文件。

在 ~/mysuperset/venv/lib/python3.8/site-packages/superset/config.py 中进行配置,修改原来的 en 为 zh 。

BABEL_DEFAULT_LOCALE = "zh"

4.2 配置缓存

默认没有启用缓存,建议启用。在 config.py 文件中找到以下两行,把 null 修改为 simple

CACHE_CONFIG: CacheConfig = {"CACHE_TYPE": "simple"}
DATA_CACHE_CONFIG: CacheConfig = {"CACHE_TYPE": "simple"}

5 退出

关掉服务器后退出虚拟环境

deactivate

ssh 端口转发

1 简介

通过 ssh 建立隧道,转发数据。

ssh 的常用参数: N ,f ,L ,C , T ,R

2 例子

服务器端口有限制,需在 ssh 隧道中,通过本地端口3307访问远程服务器3306端口。

ssh -N -f -L 127.0.0.1:3307:127.0.0.1:3306 comet@www.3gcomet.com -p12345

Ubuntu20.04中使用netplan配置网络

在Ubuntu20.04中已经不使用/etc/networks/interface来配置网络了,而是使用netplan配置网络:

cat /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  ethernets:
    enp1s0:
      dhcp4: true
      #addresses:
      #- 172.18.225.240/24
      #gateway4: 172.18.225.254
      nameservers:
        addresses:
        - 223.6.6.6
        - 223.5.5.5
        search: []
  version: 2