开发板

最近一时兴起想玩玩树莓派那种卡片电脑,国内厂商里面做的比较好要数 FriendlyARM (友善之臂) 了。
最终入了 NanoPi NEO3 这块板子

1.安装系统固件

官方提供的 FriendlyCore 预装了一堆诸如 samba、ftp 的服务。
但是官方并没有提供内核头文件,内核版本也比较老不适合折腾, 因此转而使用 Armbian 提供的固件

下载 https://mirrors.tuna.tsinghua.edu.cn/armbian-releases/nanopineo3/archive 解压得到 img 文件后使用 USBImager 写入到 TF 卡中

USBImage.png

2.网络配置

插上网线和电源,微型电脑就启动了。如何确定 NanoPi 的 IP 呢,方法如下任选其一

  • 登录路由器控制台查看
  • 运行 nmap -n --open -p 22 192.168.1.0/24 扫描 ssh 端口

armbian.png

# 关闭密码登录
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
# 清空 root 用户密码
passwd -d root

3.本地化设置

  • 替换为国内镜像源
sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
sed -i 's/security.debian.org/mirrors.tuna.tsinghua.edu.cn\/debian-security/g' /etc/apt/sources.list
sed -i 's/apt.armbian.com/mirrors.tuna.tsinghua.edu.cn\/armbian/g' /etc/apt/sources.list.d/armbian.list
dpkg --remove-architecture armhf
apt update && apt upgrade -y
  • 修改中文 运行 dpkg-reconfigure locales 后选择 zh_CN.UTF-8
  • 修改时区 运行 dpkg-reconfigure tzdata 选择 Asia/Chongqing
  • 如果遇到 apt update 失败,可能需要同步时间
ntpdate cn.ntp.org.cn

3.安装 WIFI 驱动

NanoPi NEO 本身是没有板载 WIFI 网卡的,翻出了之前买的 翼联WIFI, 但是官方并没有提供 Linux 版的驱动,

虽然官方称之为“免驱版”,但实际上是网卡内置了驱动,Windows下如果没有驱动就会被识别为存储设备用于驱动安装
  • 切换 USB 模式
apt install -y usb-modeswitch

安装 usb-modeswitch 后运行 lsusb 查看,设备 ID 已变为

Bus 004 Device 003: ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapter

虽然模式切换已经成功,但是网卡仍未被驱动。
后来从 Arch 社区 找到解决方案如下

  • 安装内核头文件
apt install -y linux-headers-current-rockchip64
  • 给驱动源码打补丁
curl -o- http://mirrors.163.com/kernel/v5.x/linux-$(uname -r | cut -f1 -d-).tar.xz | tar Jxf -
cd linux-$(uname -r | cut -f1 -d-)/drivers/net/wireless/mediatek/mt7601u
curl -o- https://launchpadlibrarian.net/419756943/mcu.patch | patch -p0
make -C /lib/modules/$(uname -r)/build/ M=$(pwd) modules

这时编译可能遇到 __stack_chk_guard undefined 错误,这时候在 mcu.c 的适当位置添加如下代码

unsigned long __stack_chk_guard;
void __stack_chk_guard_setup(void)
{
     __stack_chk_guard = 0xBAAAAAAD;  //provide some magic numbers
}
void __stack_chk_fail(void)                         
{                               
}
  • 复制驱动到内核
install -p -m 644 mt7601u.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless/mediatek/mt7601u
echo > /etc/modprobe.d/mt7601u.conf options mt7601u vnd_reset=0
/sbin/depmod -a $(uname -r)

重启后 WIFI 就能正常驱动了

sudo vnstat -i wlxe84e0685ff49 --create
  1. 安装其他组件
curl -fsSL http://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -
echo "deb [arch=arm64] http://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker-ce.list
apt update && apt install -y docker-ce
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8C718D3B5072E1F5
echo "deb http://mirrors.tuna.tsinghua.edu.cn/mysql/apt/debian $(lsb_release -cs) mysql-5.7" | sudo tee /etc/apt/sources.list.d/mysql.list 
wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list'

Comment

  1. 木篁町 木篁町
    Chrome 86

    我第一次刷Armbian 5.8.6的版本的时候是很顺利的,但是第二次刷的时候先是正常进入了,但是随即就出现了连接失败,随后我更换了固件版本,发现只有5.4.51版本的固件是正常的,5.7.15和5.8.6版本均是进入系统后迅速断开链接。请问博主了解这个情况吗?

    1. 木篁町 木篁町
      Chrome 86

      问题已经解决了,是我自己使用的SSH软件本身的问题。

  2. Raiuka Raiuka
    Safari 13 < 11

    这小东西也忒热了....给点负载就85度+了

This is just a placeholder img.