同步操作将从 xiayang/rk3399 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
镜像下载:
ophub Armbian下载:https://github.com/ophub/amlogic-s9xxx-armbian/releases
ophub openwrt下载:https://github.com/ophub/amlogic-s9xxx-openwrt/releases
本人移植或者收集群友的镜像分享: https://lajilao.top/thread-63-1-1.html
AM40整机为 主机和OPS扩展两部分
整机接口: 双USB3.0+千兆有线网口 + HDMI1.4 + TF卡口 + OPS接口
OPS扩展:四个USB2.0 + HDMI2.0 + 6个COM口
部件名称 | 芯片型号 | 备注说明 |
---|---|---|
CPU | RK3399 | Dual-core A72+Quad-core A53, 64 bits, 2GHz;Mali-T864 GPU |
RAM | 4 GB DDR3L SDRAM | |
Flash | 32G eMMC 5.1 | |
Ethernet | RTL8211F | RJ45 Gigabit Ethernet |
WIFI+BT | M2-EKEY-PCIE RTL8822BE | 802.11AC/ABGN PCIE WLAN WITH BLUETOOTH 4.2 SINGLE-CHIP CONTROLLER |
USB 2.0 | USB 2.0[ops] * 4 | |
USB 3.0 | USB 3.0 [on board] * 2 | |
HDMI | HDMI 1.4[(1920 × 1080) on board,由DP转的] + HDMI 2.0[ops 4k@60Hz] | |
power | 12–19V DC at 2.5–1.6A | PORT size: 5.5 * 2.5 [ops; main];3.0 * 1.1 [on board; hided] |
电源测试5V2A、12V1A也能启动,已有5521接口电源的,可以购买5521母转5525 DC转接头。
你说啥?嫌屁股太大?分享群友的方案
am40不含尾插、改供电、开关键亚克力外壳图纸
https://lajilao.top/thread-64-1-1.html
AM40 3D打印外壳
https://lajilao.top/thread-46-1-1.html
没有尾插的话,主板hdmi在linux系统下驱动是个问题,目前有leo的内核可以驱动主板hdmi
https://lajilao.top/thread-63-1-1.html
am40主机介绍
主板上电池右上方的白色按钮为uboot按键
https://gitee.com/xiayang0521/rk3399/releases/download/rk3399刷机工具和驱动/specs_am40.pdf
教育系统卡刷包:
系统介绍:
https://www.youtube.com/watch?v=vRDcXASva3s
开箱:
以下教程均针对整机的情况,如果仅主机,则打开电源通电后,找到挨着主机dc口的名为J1的一个白色塑料里的两个插针一下(或者找到挨着UART的J2也行),短接J1或者J2一秒,才能开机。
据说有些镜像只能线刷不能卡刷,新手请使用我教程里的所用的镜像。
Armbian_23.02.2_am40_jammy_current_6.1.11.7z 解压出Armbian_23.02.2_am40_jammy_current_6.1.11.img,烧录到tf卡,
使用rufus烧写工具 https://rufus.ie/zh/
直接烧录img/img.xz/img.gz格式的镜像文件或者镜像压缩文件
如图 依次选择tf卡设备和镜像文件,点击开始,等待烧录完成即可。
插到机子上,开机,即可启动tf外置系统 。Armbian下,板载HDMI无驱动,ops上HDMI正常。
Armbian初始账号root 密码1234 (属于官方默认设置,以后刷任何机子的armbian先尝试这个)
很多网卡的驱动没有集成,需要自行安装 安装方法如下(操作以下命令确保开发板插上了网线)
apt update
apt install armbian-firmware-full
执行完上面两句命令就重启一下
reboot
完成后就会发现有wifi了
AM40原厂Android_mmcblk2备份
要使用 dd 和 gzip 备份,可以执行命令:
dd if=/dev/mmcblk2 | gzip > Android_am40_mmcblk2.img.gz
在还原时,可以执行下列命令:
gzip -dc Android_am40_mmcblk2.img.gz | dd of=/dev/mmcblk2
如需把Armbian装进emmc,ssh登陆后,将Armbian_23.02.2_am40_jammy_current_6.1.11.img上传到/root/,执行
dd if=Armbian_23.02.2_am40_jammy_current_6.1.11.img of=/dev/mmcblk2 bs=1M
或者执行
armbian-install # 选择 Boot from emmc - System on eMMC,安装完成后,选择 install/update bootloader on sd/emmc
https://gitee.com/xiayang0521/rk3399/releases/tag/rk3399刷机工具和驱动
安装DriverAssitant_v5.1.1,打开AndroidTool
插电开机,打开瑞芯微开发工具,会发现一个adb设备,点击切换,
等待变成发现一个loader设备,
点击高级功能找到 进入maskrom 按钮,点击,然后等待发现一个maskrom设备;
比如启动了linux系统(外置内置均可),进入系统后执行
dd if=/dev/zero of=/dev/mmcblk2 bs=1M count=300
关机(如果有tf卡,关机后,拔掉tf卡),重新开机后可以自动进入maskrom模式
(1) 拆机
按住主板上电池右上方的白色按钮(uboot按键)或者 短接maskrom短接点
插usb双公头到第一个usb3.0(上面的),另一端接电脑,插电开机,在刷机软件中观察是否进入maskrom模式;
(2) 进行串口调试
接TTL,如图依次为gnd vcc tx rx,接线不要接vcc,测试了市面上常见的几款 CH340G、PL2303HX 方案的串口,均存在只能读不能写问题,这将无法从串口打断 u-boot 启动和进行 shell 操作,建议使用 CP2104 方案的串口代替。串口调试软件使用 minicom 、putty、SecureCRT 等工具。 连接串口并打开串口调试软件,开机后迅速在调试窗口按任意键,打断 u-boot 启动,执行如下命令
reboot bootloader
重启后会自动进入刷机模式。
如图选择rk3399_loader_v1.24.126.bin 作为 Loader, img结尾的armbian镜像作为 System(注意地址为0x00000000)
点击下载镜像标签,点击执行
下载安卓线刷包,解压出update.img文件
选择刷机工具的[升级固件]标签,选择[固件]-[擦除flash]
擦除完毕之后再次选择[高级功能]-[maskrom],然后选择[升级固件] - [升级]
等待升级完成,刷机结束之后自动进入recovery,擦除data与cache,大约2分钟黑屏,耐心等待即可。
Armbian初始账号root 密码1234 (属于官方默认设置,以后刷任何机子的armbian先尝试这个)。
Armbian下,板载HDMI无驱动,ops上HDMI正常。
很多网卡的驱动没有集成,需要自行安装 安装方法如下(操作以下命令确保开发板插上了网线)
apt update
apt install armbian-firmware-full
执行完上面两句命令就重启一下
reboot
完成后就会发现有wifi了
进入烧写模式
同上进入 MaskRom 模式
# 查看连接的设备
./rkbin/tools/upgrade_tool ld
# 或使用 rkdeveloptool
# 因 ./rkbin/tools/rkdeveloptool 这个不支持 ld 命令故需要重新编译 rkdeveloptool
git clone https://github.com/rockchip-linux/rkdeveloptool.git
sudo apt install -y libudev-dev libusb-dev dh-autoreconf libglib2.0-dev
cd rkdeveloptool && autoreconf -i && ./configure && make
sudo mv rkdeveloptool /usr/local/bin/
rkdeveloptool ld
# 应会有如下设备信息
DevNo=1 Vid=0x2207,Pid=0x330c,LocationID=301 Loader
# 或
DevNo=1 Vid=0x2207,Pid=0x330c,LocationID=301 MaskRom
# Loader 模式进入 MaskRom 模式方法
./rkbin/tools/upgrade_tool rd 3
# 或
rkdeveloptool rd 3
初始化 DRAM
需要在 MaskRom 模式下才下载,否则报错 “The device does not support this operation!”。
# 初始化 DRAM
./rkbin/tools/upgrade_tool db ./rk3399_loader_v1.22.119.bin
# 或
rkdeveloptool db ./rk3399_loader_v1.22.119.bin
# 下载镜像
./rkbin/tools/upgrade_tool wl 0x0 ./system.img
# 或
rkdeveloptool wl 0x0 ./system.img
也可以使用图形化烧写工具 balena-etcher-electron
# sdX 为 sdcard 对应的块设备文件
sudo dd if=system.img of=/dev/sdX bs=4M oflag=sync status=progress
测试了市面上常见的几款 CH340G、PL2303HX 方案的串口,均存在只能读不能写问题,这将无法从串口打断 u-boot 启动和进行 shell 操作,建议使用 CP2104 方案的串口代替。
也可以使用 minicom 、putty、SecureCRT 等工具。
# 解决串口权限问题
sudo usermod -a -G dialout $USER
# 重新登录后生效
reboot
# 安装串口通信软件
sudo apt install -y python3-serial
# 打开串口
miniterm /dev/ttyUSB0 1500000
# 退出 miniterm 快捷键为 Ctrl + ]
# 使用 netplan 配置以太网络
sudo nano /etc/netplan/01-netcfg.yaml
# 配置为动态获取 IP
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: yes
# 或静态 IP
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [10.0.0.10/24]
gateway4: 10.0.0.1
nameservers:
addresses: [223.5.5.5,223.6.6.6]
# 应用配置
sudo netplan --debug apply
# WiFi 配置
nmcli dev wifi connect "hotspot-name" password "password"
# 或使用 nmtui 命令图形化修改
使用 hostapd + isc-dhcp-server
sudo apt install -y hostapd isc-dhcp-server
# 配置 hostapd
sudo nano /etc/hostapd/hostapd.conf
interface=wlan0
driver=nl80211
ssid=hostspot-name
macaddr_acl=0
auth_algs=1
#auth_algs=3
ignore_broadcast_ssid=0
hw_mode=g
channel=6
wpa=2
wpa_passphrase=password
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
#wpa_pairwise=TKIP
#rsn_pairwise=CCMP
# 修改 hostapd 默认配置文件路径
sudo nano /etc/default/hostapd
DAEMON_CONF=/etc/hostapd/hostapd.conf
# 重启 hostapd
sudo service hostapd restart
sudo service hostapd status
# dhcp 配置
sudo nano /etc/dhcp/dhcp.conf
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;
authoritative;
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.10 10.0.0.200;
option broadcast-address 10.0.0.255;
option routers 10.0.0.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name "local";
option domain-name-servers 223.5.5.5, 8.8.4.4;
}
# 设置 dhcp 网口
# 不进行操作会出现错误:Not configured to listen on any interfaces!
sudo nano /etc/default/isc-dhcp-server
INTERFACESv4="wlan0"
INTERFACESv6="wlan0"
# 设置 wlan0 地址
# 不进行操作会出现错误:Not configured to listen on any interfaces!
sudo ip addr add 10.0.0.1/24 dev wlan0
# 开启转发
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -s 10.0.0.1/24 -o eth0 -j MASQUERADE
# 启动 dhcp 服务
sudo service isc-dhcp-server restart
sudo service isc-dhcp-server status
使用 network-manager + dnsmasq
# 此方按创建的 2.4G 热点会出现部分旧设备连接不上
sudo apt install -y dnsmasq
#nmcli dev wifi hotspot ifname wlan0 ssid "hotspot-name" password "password"
nmcli connection add type wifi ifname wlan0 con-name "Hostspot" autoconnect no ssid "hotspot-name"
nmcli connection modify "Hostspot" 802-11-wireless.mode ap 802-11-wireless.band bg ipv4.method shared
nmcli connection modify "Hostspot" wifi-sec.key-mgmt wpa-psk
nmcli connection modify "Hostspot" wifi-sec.psk "password"
nmcli connection up "Hostspot"
# 或使用 nmtui 命令图形化修改
sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i "s@http://ports.ubuntu.com@http://mirrors.huaweicloud.com@g" /etc/apt/sources.list
# 安装英文与简体中文语言包
sudo apt install -y language-pack-en language-pack-zh-hans
# 设置本地化
sudo dpkg-reconfigure locales
# 配置时区
sudo apt install -y tzdata
sudo dpkg-reconfigure tzdata
# 同步硬件时间
sudo hwclock -s
sudo apt install -y parted
sudo parted /dev/mmcblk2
unit s
print
resizepart 5 100%
print
Q
sudo resize2fs /dev/mmcblk2p5
sudo apt install gnupg2 -y
# 添加 apt 公钥
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
# 添加软件源
echo "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
# 安装 docker
sudo apt update && sudo apt install docker-ce -y
# 非 root 用户免 sudo 操作 docker
sudo usermod -aG docker $USER
Q:能进 MaskRom 模式,但下载 Loader 初始化 DRAM 总是失败。或 u-boot 无等待时间不能按 RECOVERY 键进入 MaskRom 模式。
A:插上带有系统的 tf卡,默认会从tf卡,连接串口并打开串口调试软件,开机后迅速在调试窗口按任意键,打断 u-boot 启动,执行如下命令破坏 u-boot,重启后会自动进入 MaskRom 模式。
mmc dev 0
mmc erase 0 2000
reset
或者进入系统后
dd if=/dev/zero of=/dev/mmcblk2 bs=1M count=300
Q:使用 apt 安装软件包时出现如下警告:
perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "zh_CN.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C").
A:参考 系统配置-本地化 一节安装相应语言包即可解决。
Q:以太网卡因未被 network-manager 托管不能启用。
# 网卡未启用
ip addr show eth0
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 16:a6:4c:50:54:44 brd ff:ff:ff:ff:ff:ff
# 网卡未被 network-manager
nmcli device
DEVICE TYPE STATE CONNECTION
eth0 ethernet unmanaged --
lo loopback unmanaged --
# 使用该命令启用网卡无效
nmcli dev set eth0 managed yes
A:原因在于 Ubuntu 更推荐使用 netplan 配置以太网络,默认的 network-manager 配置 /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf 不会托管以太网卡[^7]。若要使用 network-manager 托管所有网络设备操作如下:
# 覆盖默认配置
sudo touch /etc/NetworkManager/conf.d/10-globally-managed-devices.conf
Q:如何获取当前系统的设备树和内核编译选项?
A:使用如下命令获取:
# 设备树
cat /sys/firmware/fdt > raw.dtb
# 内核编译选项
zcat /proc/config.gz > kernel.config
Q:如何连接蓝牙音箱?
A:使用如下命令连接:
sudo apt install -y bluez bluez-tools pulseaudio pulseaudio-module-bluetooth
# 查看蓝牙信息
hciconfig
# 使用 bluetoothctl 命令操作蓝牙
# 上电
power on
# 扫描
scan on
# 配对
pair MAC
# 信任
trust MAC
# 连接
connect MAC
# 如果连接时出现 Failed to connect: org.bluez.Error.Failed 可以通过重启 pulseaudio 解决
pulseaudio -k
pulseaudio --start
# 声道测试
speaker-test -c2 -twav
# 查看 PulseAudio 信息
pactl info
# 查看音频输出通道
pactl list sinks
# 设置为默认音频输出通道,通过 TAB 补全后面的名称
pactl set-default-sink bluez_sink.MAC.a2dp_sink
[^1]: Boot option - Rockchip open source Document
[^2]: U-Boot v2020.01 和 Linux 5.4 在 RK3399 上部署
[^3]: ATF - Rockchip open source Document
[^4]: U-Boot - Rockchip open source Document
[^5]: Rockchip Kernel - Rockchip open source Document
[^6]: Rkdeveloptool - Rockchip open source Document
[^7]: network-manager does not manage ethernet and bluetooth interfaces
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。