一个性价比超高的小开发板,在一定的场景下可以替代树莓派
NanoPi 基本信息
资源特性
- CPU: Allwinner H3, Quad-core Cortex-A7 Up to 1.2GHz
- DDR3 RAM: 256MB/512MB
- Connectivity: 10/100M Ethernet
- USB Host: Type-A x1, 2.54mm pin x2
- MicroSD Slot x 1
- MicroUSB: OTG and power input
- Debug Serial Port: 4Pin, 2.54mm pitch pin header
- GPIO: 2.54mm spacing 36pin, It includes UART, SPI, I2C, IO etc
- PC Size: 40 x 40mm
- Power Supply: DC 5V/2A
- OS/Software: u-boot,UbuntuCore
NanoPi 基本安装
安装系统
核心系统镜像使用 官方百度盘 中分享的 nanopi-neo-core-qte-sd4g-20160704.img.zip
卡刷系统
使用的是 SD 4G 卡
使用 Win32DiskImager 或是 Ubuntu 系统中的 dd 命令将系统镜像写到 SD 卡中,就可以使用了。
系统中默认用户和密码是
user : root
pass : fa
卡刷完成之后,如果 SD 卡存储大于 4G 可以通过下面的命令,更新系统存储大小,使用全部存储空间。
fs_resize
查看系统基本信息
CPU 信息查看
cat /proc/cpuinfo
查看 CPU 的位数
getconf LONG_BIT
32
提示: 因为 CPU 是 32 位的,所以很遗憾,不能安装 Docker 来玩了。
查看内存
内存 只有 512M
cat /proc/meminfo
或
free -m
查看 cpu 的温度
cpu_freq
系统配置
更换国内更新源
将 apt 的更新源设置为国内更新源 (科技大学)
vi /etc/apt/source.list
deb http://mirrors.ustc.edu.cn/ubuntu-ports wily main restricted
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports wily main restricted
deb http://mirrors.ustc.edu.cn/ubuntu-ports wily-updates main restricted
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports wily-updates main restricted
deb http://mirrors.ustc.edu.cn/ubuntu-ports wily-security main restricted
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports wily-security main restricted
保存退出
apt-get update
安装常用工具
apt-get install aptitude tmux zsh vim curl git subversion python2.7
ln -s /usr/bin/python2.7 /usr/bin/python
更新终端语言设置
vim /etc/profile
在内容最下面添加下面配置
export LC_ALL=C
将 shell 更改为 zsh 并安装 oh-my-zsh 工具集合
chsh -s `which zsh`
安装 oh-my-zsh 环境
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | zsh
编辑 ~/.zshrc 进行个性配置
zsh theme 选择
mortalscumbag
安装 Htop 监控工具
htop 是一个系统监控工具,默认的系统是基于 UbuntuCore 版本的,不能通过 aptitude / apt-get 直接安装,所以手工编译安装
先安装支持组件
aptitude install ncurses-base ncurses-bin ncurses-dev libncurses5 libncurses5-dev libncursesw5 libncursesw5-dev
编译安装 htop
wget http://sourceforge.net/projects/htop/files/htop/1.0.2/htop-1.0.2.tar.gz
tar zxvf htop-1.0.2.tar.gz
cd htop-1.0.2
./configure
make && make install
为 NanoPi Neo 设置网络
我使用的是 小米 WiFi (mt7601)
可以使用 lsmod
命令查看已经加载的驱动
启用 ap 模式 (注意: 我没有测试成功)
安装 hostapd 服务
wget http://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/pool/universe/w/wpa/hostapd_2.1-0ubuntu4_armhf.deb
dpkg -i hostapd_2.1-0ubuntu4_armhf.deb
顺利安装
安装 dhcpd 服务
aptitude install isc-dhcp-server
mt7601 默认不支持 ap 模式。需要编译安装第三方驱动来支持
参考 1
参考 2
参考 3
编译 小米wifi 驱动时,遇到缺少头文件的问题
下载 sd 卡中 ubuntu 系统的源码包,并找到
cp: cannot stat '/lib/modules/3.4.39-h3/build/Module.symvers': No such file or directory
然后重新编译驱动
参考 :
- DHCP server Ubuntu 14.04
- 树莓派学习笔记——Wifi AP 热点模式 使用 RT5370
- linux 软 AP--hostapd+dhcpd
- RPI-Wireless-Hotspot
- 怎样在 Ubuntu 中开启 Soft AP(虚拟 AP)功能
- 【L】小米随身 WiFi,Linux 下 AP 热点驱动(开源)
- Linux 下 Usb 无线网卡创建 Wifi 热点(搭建 AP)
- Ubuntu 下使用无线网卡共享 WiFi(AP)
- 快速开启AP的开源工具 create_ap
安装 newsbeuter 终端下的 RSS 订阅客户端
# 编译安装stfl依赖
wget http://www.clifford.at/stfl/stfl-0.24.tar.gz
tar zxvf stfl-0.24.tar.gz
cd stfl-0.24
make && make install
# 安装依赖库
aptitude install libxml2-dev
aptitude install libcurl-dev libcurl3-dev
aptitude install libjson-c-dev
aptitude install libsqlite3-dev
# 编译安装
wget http://newsbeuter.org/downloads/newsbeuter-2.9.tar.gz
tar zxvf newsbeuter-2.9.tar.gz
cd newsbeuter-2.9
make && make install
终端下的 文件管理器 替代 Midnight Commander
- 通过 pip 包管理器安装
pip search ranger
- 编译安装
wget http://nongnu.org/ranger/ranger-stable.tar.gz
tar zxvf ranger-stable.tar.gz
cd ranger-1.7.2
python setup.py install
服务环境安装
安装 VeryNginx
用于 Web 代理服务使用
- 首先安装 pip
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
- 创建并编辑 pip 源配置文件 ~/.pip/pip.conf
[global]
timeout = 6000
index-url = http://pypi.douban.com/simple/
trusted-host = pypi.douban.com
[install]
use-mirrors = true
mirrors = http://pypi.douban.com/
- 安装 VeryNginx
aptitude install libssl libssl-dev libpcre3 libpcre3-dev
wget https://github.com/alexazhou/VeryNginx/archive/v0.3.3.tar.gz
tar zxvf v0.3.3.tar.gz
cd VeryNginx-0.3.3/
python install.py install
ln -s /opt/verynginx/openresty/nginx/sbin/nginx /usr/local/sbin/nginx
更改 nginx 基本配置
vim /opt/verynginx/openresty/nginx/conf/nginx.conf
user nginx; 改为 user root;
编译安装 Redis
Redis 用于缓存服务使用
下载 Redis 3.2 稳定 版本 http://download.redis.io/releases/redis-3.2.5.tar.gz
tar zxvf redis-3.2.5.tar.gz
cd redis-3.2.5
make
make install
安装 PHP 环境
PHP 是网站开发使用的脚本语言。
aptitude install -y php-pear php5 php5-cli php5-common php5-curl php5-gd php5-dev php5-json php5-sqlite pkg-php-tools php5-mysql
安装 Java SDK
- 首先去 oracle 官网下载 jdk
- 将解压的 jdk 目录移动到 /opt/jdk 中
- 配置环境变量
JAVA_HOME=/opt/jdk
JRE_HOME=$JAVA_HOME/jre
JAVA_BIN=$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME PATH CLASSPATH
安装 Python Notebook
aptitude install python-dev
pip install ipython
pip install "ipython[notebook]"
pip install pyreadline
pip install tornado
pip install pyzmq
pip install jinja2
pip install scipy
pip install numpy
pip install jupyter
pip install matplotlib
pip install pandas
pip install sympy
pip install nose
安装 php-kernel for jupyter
具体可参考
- https://litipk.github.io/Jupyter-PHP-Installer/
- http://pkg.phpcomposer.com/
- http://zeromq.org/intro:get-the-software
编译安装 libzmq 支持库
wget https://github.com/zeromq/zeromq3-x/releases/download/v3.2.5/zeromq-3.2.5.tar.gz
tar zxvf zeromq-3.2.5.tar.gz
cd zeromq-3.2.5
./configure
make -j 4
make check
make install
ldconfig
pecl 安装 php-zmq
pecl install zmq-beta
安装 NodeJS 开发环境
wget https://nodejs.org/dist/v6.9.2/node-v6.9.2-linux-armv7l.tar.xz
xz -d node-v6.9.2-linux-armv7l.tar.xz
tar xvf node-v6.9.2-linux-armv7l.tar.xz
将解压好的目录,移动到 /opt 下,然后配置环境变量即可
安装 GoLang 开发环境
wget http://golangtc.com/static/go/1.7.4/go1.7.4.linux-armv6l.tar.gz
tar zxvf go1.7.4.linux-armv6l.tar.gz
将解压好的目录,移动到 /opt 下,然后配置环境变量即可
安装 MySQL 数据库服务
aptitude install mysql-server mysql-client
后记
友善之臂的开发板很小!这个是我最大的体会,你可以把它嵌入到你需要的设备中,功耗控制的也不错,实际测试,使用时,大约在 1.5 W 左右。
我只测试了 Linux 系统的内核,开发学习还是够用的。
说说缺点和遗憾吧
- 连接显示设备很不方便。我是通过使用网线把 NanoPi 直接连接到我的路由器上,然后查找它的 IP 才能玩起来。
- 对wifi网卡支持的不是太好。折腾的过程中经常出现一些异常情况。本想通过 小米 Wifi 对外提供固定的 AP 热点,然后让其它的设备连接上它,再来折腾。这个反正我是没成功过!上面的资料中,提到的需要源码重新编译内核,我试了两次,没有成功。
- 开发资料和社区的资料并不是太多,对于想深入研究这种开发的人,可能还是得绕点弯路才能折腾成功。