准备一根 USB 转串口线和一个 5V 3A 适配器 Type-C 电源。 串口线用于控制台调试,Type-C线用于Android镜像**和ADB调试。 准备一张至少8GB的SD卡用于Linux开发,Android仅支持eMMC启动。 SOC ROM 的第一个启动介质是 eMMC,因此如果 eMMC 启动并且任何映像启动,主板将无法从 SD 卡启动,有关详细信息,请参阅主板启动顺序。 只有 A311D 变体板支持摄像头、MIPI 面板和 NPU。 并安装 AML USB 刻录工具以使用 Type-C **Android 映像,仅限 Windows。 ** 最新的 Android 映像,并确认 MD5 校验和正确无误。 打开 USB 刻录工具exe,选择文件导入镜像,选择 Android 镜像文件 AML 升级包img。按住板上的 USB 按钮,将 Type-C USB 数据线插入您的 PC,或者如果您连接了电源适配器,请按下 RST 按钮,大约两秒钟后,松开按钮,板子将被正确识别。 单击工具的开始按钮,然后等待升级完成。 烧录成功后,拔下Type-C USB并连接电源适配器开机。 单击“停止”按钮取消升级过程并关闭USB刻录工具。 AML-Flash-Tool 是 Amlogic Android 的 Flash 实用程序的开源映像。
$ ./flash-tool.sh --img=/path/to/aml_upgrade_package.img --parts=all --wipe --soc=g12a --reset=y
复制。
获取 Android 90 source **git clone copy 或者你可以从磁盘(密码:8888)或 googledrive 获取源 **tar 存档来构建 android 90 源代码。
请阅读源代码自述文件MDBANANAPI M2S DTBO IDX 值表,发布镜像中默认的 IDX 值为 0。
如何应用新的 DTBO
通过 sysfs 的 adb 命令 root@dangku-desktop: tmp adb root 以 root 身份重新启动 adbd root@dangku-desktop: tmp adb remount remount succeeded root@dangku-desktop: tmp adb shell bananapi m2s: echo dtbo > sys class unifykeys name bananapi m2s: echo"1"> sys class unifykeys write bananapi m2s: reboot copy uart console command via sysfs console: $ console: $ su console: echo dtbo > sys class unifykeys name [ 115702781@0] unifykey: name_store() 1302, name dtbo, 4 [ 115.702856@0] unifykey: name_store() 1311 console:/ # console:/ # echo "1" > /sys/class/unifykeys/write [ 129.262659@0] unifykey: write_store() is a string [ 129.262733@0] unifykey: dtbo, 1, 1 [ 129.265312@0] unifykey: amlkey_write 393 [ 129.292347@1] eMMC 键 write:149,写好 console: console: reboot copy setup app (to-do) 检查 start uart debug 消息并确认实际加载了哪个 dtbo,其中“1”表示设置 idx=1 以应用 wifi bt rtl8822cs dtbo。load dtb from 0x1000000 ..Amlogic Multi-DTB 工具 检测到单个 DTB 查找 2 个 DTBo 要应用的 DTBos: 1 应用 DTBO 1复制存储在特定 eMMC 部分的 UnifyKey,如果您希望在映像之后应用默认 DTBo,则在 USB 刻录工具中选择的“正常擦除”不会在下次更新时擦除此数据** idx, 您必须选择“全部擦除”。使用特定的 DTBO 默认值构建 Android 映像。
默认的内置覆盖层位于 Device BananAPI BananAPI M2S 内核中MK,您可以在其中添加新的覆盖 DTBO。 DTBO DeviceTree := Android P 覆盖 WiFi BT RTL8822CS I2C1 I2C2 SDIO UART1 UART1 CTS RTS UART2 HIFI PCM5122 复制默认应用程序 DTBO IDX 在设备 bananapi bananapi m2s boardconfigmk,您可以更改 IDX 值以设置默认应用的覆盖 DTBO。 board_kernel_cmdline += androidboot.DTBo idx=0 在 Common Arch ARM64 启动 DTS Amlogic Overlay BananAPI M2S 中复制 DTS 文件
更多关于 Android 设备树覆盖的信息,请参考 OpenGapps 的 Google Android 官方安装包,Android 版本镜像为 Arm Android 90 个变体。 **device_id.apk。将 OpenGapp 软件包复制到 udisk 或 sdcard 根目录下。 在 udisk 或 sdcard 根目录下创建一个名为factory_update_param.amltxt 文件包含以下 android 恢复参数,并将文件名替换为实际的 ** 包。
U盘:--wipe cache --update package= udisk open gapps-arm-90-pico-20210327.Zip 复制 SD 卡: --wipe cache --update package= sdcard open gapps-arm-90-pico-20210327.Zip copy 将 udisk 或 sdcard 插入开发板并启动。 OpenGapps 已安装并经过身份验证。 YouTube **你也可以在哔哩哔哩上使用**默认的 Android 发布镜像只支持一个 MIPI 面板,因为硬件没有启动时检测不同面板的逻辑,所以默认开启了【800x1280 BPI 面板】,但可以在设置面板输出中改为默认的【1200x1920 BPI 面板】
两个 10"MIPI 面板都是以纵向显示的硬件,因此默认的 Android 帖子图像处于纵向模式,但您可以通过两种方式将其旋转到 90 180 270。
UI旋转在设置中 显示屏旋转 表面旋转,需要修改android源码并构建 更改默认的sf旋转属性diff --git a device bananapi bananapi m2s bananapi m2smk b/device/bananapi/bananapi_m2s/bananapi_m2s.mk index 1f51703..d592a44 100644 --a/device/bananapi/bananapi_m2s/bananapi_m2s.mk ++b/device/bananapi/bananapi_m2s/bananapi_m2s.mk @@579,6 +579,6 @@product_property_overrides += \ else product_property_overrides += \ ro.sf.lcd_density=213 \ ro.sf.primary_display_orientation=0 + ro.sf.主显示方向=90 endif copy change touch panel rotation diff in dts --git a common arch arm64 boot dts amlogic bananapi m2sdts b/common/arch/arm64/boot/dts/amlogic/bananapi_m2s.dts index 4a698b0..3d41b63 100755 --a/common/arch/arm64/boot/dts/amlogic/bananapi_m2s.dts ++b/common/arch/arm64/boot/dts/amlogic/bananapi_m2s.dts @@876,8 +876,8 @@reg = <0x5d>; reset-gpio = ; irq-gpio = ; rotation = <4>; /* sf_rotation 0 */ - //rotation = <0>; /* sf_rotation 90*/ + //rotation = <4>; /* sf_rotation 0 */ + rotation = <0>; /* sf_rotation 90*/ //rotation = <5>; /* sf_rotation 180 */ //rotation = <3>;SF Rotation 270 Copy Android Bootloader Limit Boot Logo FB 显示大小默认为 1080p60hz 1920x1080,Android 内核 DTB 分区表默认将 Boot Logo 分区大小限制为 16MB。
准备一个名为 Boot-Logo 的 16 位 bmp 文件bmp 将 bmp 文件压缩成 boot-logobmp.gz$ gzip boot-logo.BMP 复制 M2S Android Bootlogo 工具此工具的Zip提取$unzip m2s android bootlogo工具zip $ cd m2s_android_bootlogo_tool/ $ ls -l logo/ -rwxr--r-- 1 dangku dangku 525054 sep 25 16:54 bootup.bmp -rwxr--r-- 1 dangku dangku 525054 sep 25 16:54 bootup_secondary.bmp -rwxr--r-- 1 dangku dangku 184 may 19 2020 upgrade_bar.bmp -rwxr--r-- 1 dangku dangku 180072 may 19 2020 upgrade_error.bmp -rwxr--r-- 1 dangku dangku 180072 may 19 2020 upgrade_fail.bmp -rwxr--r-- 1 dangku dangku 180072 may 19 2020 upgrade_logo.bmp -rwxr--r-- 1 dangku dangku 180072 may 19 2020 upgrade_success.bmp -rwxr--r-- 1 dangku dangku 184 may 19 2020 upgrade_unfocus.bmp -rwxr--r-- 1 dangku dangku 180072 may 19 2020 upgrade_upgrading.bmp copy boot-logobmp.gz$ cp boot-logo.bmp.gz logo/bootup.bmp $ cp boot-logo.bmp.gz logo/bootup_secondary.BMP Copy:使用 IMG Pack 工具创建目标徽标IMG,M2S Android Bootlogo Tool 的二进制文件和相关库是从主机 linux-x86 $ 复制的/logo_img_packer -r logo logo.img copy flash boot logo with fastboot $ adb root $ adb remount $ adb reboot fastboot copy 等待几秒钟以检查 fastboot 是否已连接 $fastboot 设备1234567890 fastboot $ fastboot flashing unlock critical $fastboot flashing unlock $ fastboot flash logo logo.img$fastboot reboot replication linux 镜像支持 SDCARD 或 eMMC Boot。 建议使用至少 1GB 的 A8 级卡。 如果要从 SD 卡启动,请确保已格式化可启动 eMMC 如果要从 eMMC 启动并使用 SDCacard 作为存储,请确保 SD 卡已格式化且没有 Linux 映像。 在 Linux PC 上安装 bpi-tools(如果您使用其他工具刷新映像,请忽略此步骤)。 如果您无法访问此 URL 或遇到任何其他安装问题,请转到 bpi-tools 源库,手动安装该工具。 $ apt-get install pv $ curl -sl |sudo -e bash 复制 **linux 的最新 linux 映像,并确认 md5 校验和正确。 默认登录:pi bananapi 或 root bananapiwiki 指南仅适用于 bananapi 49 BSP ubuntu debian 映像。
在 Windows、Linux 和 macOS 上使用 Balena Etcher 安装映像。Balena Etcher 是 Balena 的开源 GUI 闪存工具,可将操作系统映像闪存到 SD 卡或 USB 驱动器。
单击“从文件闪烁”以选择图像。 单击“选择目的地”以选择 USB 设备。 点击“Flash!”。开始燃烧。
在 Windows、Linux 和 macOS 上使用 Balena CLI 安装映像。Balena CLI 是 BalenaCloud 或 OpenBalena 的命令行界面。 它可用于刷新 Linux 映像。 从 Balena-IO** 安装程序或独立软件包并将其正确安装到您的 PC,然后您可以使用 Balena 的“本地闪存”命令选项将 Linux 映像闪存到 SDCacard 或 USB 驱动器。
$ sudo balena local flash path/to/xxx-bpi-m2s-xxx.img.zip$ sudo balena local flash path/to/xxx-bpi-m2s-xxx.img.zip --drive /dev/disk2$ sudo balena local flash path/to/xxx-bpi-m2s-xxx.img.zip --drive /dev/disk2 --yes
复制。
在 Linux 上使用 dd 命令安装映像。如果自动安装,则安装 SD 卡设备 dev sdx 分区。 实际上,bpi-copy 与这个 dd 命令相同。
$ sudo apt-get install pv unzip$ sudo unzip -p xxx-bpi-m2s-xxx.img.zip | pv | dd of=/dev/sdx bs=10m status=noxfer
复制。
在 Linux 上使用 bpi-tools 安装映像。将 SD 卡插入 Linux PC 并运行。
$ sudo apt-get install pv unzip$ sudo bpi-copy xxx-bpi-m2s-xxx.img.zip /dev/sdx
复制。
准备一张带有 Linux 映像的 SD 卡,然后使用 SD 卡启动焊盘。 将Linux镜像复制到udisk,将udisk插入主板,然后安装。 有两种方法可以将 Linux 映像安装到主板上。 使用 dd 命令进行安装,如果自动安装,请卸载 mmcblk0p1 和 mmcblk0p2 分区。 实际上,bpi-copy 与这个 dd 命令相同。 $ sudo apt-get install pv unzip $ sudo unzip -p xxx-bpi-m2s-xxx.img.zip | pv |dd of= dev mmcblk0 bs=10m status=noxfer copy install linux image in udisk using bpi-tools command $ sudo apt-get install pv unzip $ sudo bpi-copy xxx-bpi-m2s-xxximg.zip dev mmcblk0 复制完成后,安全关闭电源并弹出 SD 卡。 获取 Linux BSP 源代码**$git克隆复制 BSP 源代码。
请阅读源代码自述文件md如果要分别构建 uboot 和内核,请仅使用 u-boot 内核,从 bpi-m2s-bspdtb override 获取工具链、启动脚本等配置文件进行 40pin gpios 多功能配置并安装在 vfat boot 分区中,可以使用 mount 命令检查挂载点。 root@bananapi:~# ls /boot/overlays/ custom_ir.dtbo pwm_b-backlight.dtbo spi0.dtbo ds3231.dtbo pwm_c-beeper.dtbo uart1_cts_rts.dtbo hifi_pcm5102a.dtbo pwm_cd-c.dtbo uart1.dtbo hifi_pcm5122.dtbo pwm_cd.dtbo uart2.dtbo i2c1.dtbo pwm_ef.dtbo w**eshare_tft24_lcd.dtbo i2c2.dtbo pwm_ef-f.dtbo w**eshare_tft35c_lcd.dtbo pwm_ab.dtbo sdio.dtbo w**eshare_tft35c_rtp.DTBO 复制更新 VFAT 启动环境txt 以启用所需的功能。 # device tree overlays # uart1 --enable uart1 (uart_a, gpio header pin8 & pin10) # pwm_c --enable pwm_c (gpio header pin7) # i2c2 --enable i2c2 (gpio header pin3 & pin5) # spi0 --enable spi0 (gpio header pin19 & pin21 & pin23 & pin24) overlays="i2c2 spi0 uart1"复制必须重新启动主板才能加载覆盖 DTB。 Linux版本的镜像默认关闭,您可以按照以下配置开启:
更新启动环境TXT 中的 DTB 覆盖环境以启用相机 DTBO。 overlays="os08a10"复制将摄像头模块添加到 etc 模块IV009 ISP IQ IV009 ISP 镜头 IV009 ISP 传感器 IV009 ISP 复制“创建摄像头模块”选项并将其添加到 ETC ModProbed/os08a10.conf 选择相机校准参数 选项 iv009 isp iq cali name=0 选择 ISP 寄存器序列 选项 iv009 ISP 传感器 isp seq num=0 copy enable camera isp systemd service $ sudo systemctl enable camera isp 3a server.重新启动服务复制后,相机设备为 dev video0。 默认的 Linux 版本镜像只支持一种类型的 MIPI 面板,因为硬件在开机时没有检测不同面板的逻辑,所以默认开启 800x1280 BPI 面板,但可以在 Boot LCD Env 中使用txt 设置为默认值 [1200x1920 bpi 面板]。
# mipi panel type# symbol | resolution## "lcd_0" | 10" 800x1280 panel# "lcd_1" | 10" 1200x1920 panelpanel_type=lcd_0
复制。
两个 10"MIPI 面板都是以纵向显示的硬件,因此默认发布的图像处于纵向模式,但您可以将其旋转到 90 180 270。
对于桌面映像,请创建 xorg 配置文件 usr share x11 xorgconf.d/10-fbdev-rotate.会议内容:
section "device" identifier "configured video device" # rotate off# option "rotate" "off" # rotate right / clockwise, 90 degrees option "rotate" "cw" # rotate upside down, 180 degrees# option "rotate" "ud" # rotate counter clockwise, 270 degrees# option "rotate" "ccw"endsectionsection "inputclass" identifier "coordinate transformation matrix" matchistouchscreen "on" matchproduct "goodix-ts" matchdevicepath "/dev/input/event0" matchdriver "libinput" # rotate right / clockwise, 90 degrees option "calibrationmatrix" "0 1 0 -1 0 1 0 0 1" # rotate upside down, 180 degrees# option "calibrationmatrix" "-1 0 1 0 -1 1 0 0 1" # otate counter clockwise, 270 degrees# option "calibrationmatrix" "0 -1 1 1 0 0 0 0 1"endsection
复制。
对于服务器映像,可以通过两种方式更改帧缓冲区旋转
sysfs 是动态的。 回声 0 > sys 类图形 fbcon 旋转原点 0 度回声 1 > sys 类图形 fbcon 旋转 90 度 echo 2 > sys 类图形 fbcon 旋转 180 度 echo 3 > sys 类图形 fbcon 旋转 270 度复制引导程序配置更改。
更改启动环境txt 中的 fb 旋转环境 framebuffer rotate 0 - origin 0 度 1 - 90 度 2 - 180 度 3 - 270 度 fb rotate=0 copy
构建和安装 wiringpi,对于 debian 必须安装 sudo$sudo apt-get update $sudo apt-get install build-essential git $ git clone $cd amlogic-wiringpi $ chmod a+x build $sudoBuild copy run gpio readall 显示所有 40 引脚状态。 BPI GPIO扩展板和AMLOGIC-WIRINGPI示例。
示例:在 BlinkAll 中,闪烁所有排针 GPIO,无屏蔽。
LCD-BPI、BPI LCD 1602 显示模块示例。
52pi-bpi,BPI OLED显示模块示例。
MATLED-BPI、BPI RGB LED 矩阵扩展模块示例。
berryclip-bpi,bpi berryclip 模块构建和安装,对于 Debian sudo 必须在构建之前安装
$ sudo apt-get update$ sudo apt-get install build-essential python3 python3-pip python3-dev python3-setuptools git$ git clone cd rpi.gpio-amlogic$ sudo python3 setup.py clean --all$ sudo python3 setup.py install
复制。
创建并安装 wheel 包。
$ sudo python3 setup.py bdist_wheel$ sudo pip3 install dist/rpi.gpio-xxx.whl
复制。
直接从 git 源安装,无需开发。
$ sudo pip3 install git+
复制。
如果已安装该软件包,则应在安装新软件包之前将其卸载,或使用 --force-reinstall 选项安装新软件包。
构建和安装,如果是 debian sudo,则必须在构建之前安装
$ sudo apt-get update$ sudo apt-get install build-essential python3 python3-dev python3-setuptools swig git$ git clone --recursive cd wiringpi2-python-amlogic$ sudo python3 setup.py install
复制。
luma.默认情况下,examples 使用 gpioBCM GPIO 模式,因此您应该将 40 针接头引脚映射到 BCM GPIO 编号并正确连接硬件。
构建并安装 rpiGPIO 使用 python3 而不是 python 来构建 bananapi m2s rpiGPIO,因为 Luma 使用 python3。 $ sudo apt-get update $ sudo apt-get install build-essential python3 python3-dev python3-setuptools git $ git clone $ cd rpi.gpio-amlogic $ sudo python3 setup.py clean --all $ sudo python3 setup.py install 可以设置测试 LEDpy 中的 bcmledpin 变量更改为硬件背光 gpio 并运行它以检查 rpiGPIO是否正常工作。 $ sudo python3 test/led.py复制硬件背光会反复打开和关闭亮度示例库安装 $sudo usermod -a -g i2c, spi, gpio pi copy 如果该组不存在,以下命令将创建它: $sudo groupadd --system xxx $sudo apt-get install python3-dev python3-pip libfreetype6-dev libjpeg-dev build-essential $ sudo apt-get install libsdl-dev libportmidi-dev libsdl-ttf2.0-dev libsdl-mixer1.2-dev libsdl-image1.2-dev $ git clone $ cd luma.例子core、luma.emulator、luma.lcd、luma.le-matrix、luma.oled pip libs,请确保此步骤中没有错误或中断,如果出现错误请重试 -h pip install -e $sudo复制或$sudo -h pip3 install -e复制对 Debian Buster(Python 37),python3-pip 包中不包含 usr bin pip,使用 pip3 安装 luma 包时出现如下错误。warning, no "setup" file exists, running "buildconfig/config.py" using unix configuration.../bin/sh: 1: sdl2-config: not found /bin/sh: 1: sdl2-config: not found /bin/sh: 1: sdl2-config: not found ..复制并安装 sdl2 相关软件包来修复此问题,然后再次使用 pip3 安装 luma libs$ sudo apt-get install libsdl2-dev libsdl2-ttf-dev libsdl2-mixer-dev libsdl2-image-dev $ sudo -h pip3 install -e with pip3 再次 check installed luma pip libs $ pip3 list | grep luma luma.core 2.4.0 luma.emulator 1.4.0 luma.lcd 2.10.0 luma.led-matrix 1.7.0 luma.oled 3.11.0 在运行测试样本之前复制样本测试。
启用 I2C 或 SPI 覆盖 $cd python3 反弹$sudo示例py --config ../conf/ili9341.conf 复制
背光控制:Linux uboot 默认将开机标志 fb 大小限制为 1080p60hz 1920x1080,因此默认镜像不会支持过高的分辨率,但可以修改 uboot 源** 来支持它。
准备一个名为 boot-logo 的 24 位 bmp 文件BMP 将目标文件复制到引导固件或引导目录。
在控制台调试消息的开头检查从 SDCacard 或 EMMC 加载的引导加载程序。
ROM 从 SD 卡加载引导加载程序(Linux 日志示例)....bl2 built : 15:21:42, mar 26 2020. g12a g486bc38 - gongwei.chen@droid11-sz board id = 1 set cpu clk to 24m set clk81 to 24m use gp1_pll as dsu clk. dsu clk: 1200 mhz cpu clk: 1200 mhz set clk81 to 166.6m board id: 1 load fip hdr ddr from sd, src: 0x00010200, des: 0xfffd0000, size: 0x00004000, part: 0 fw parse done piei prepare done fastboot data verify result: 255 cfg max: 12, cur: 1. board id: 255. force loop cfg ddr4 probe ..复制 rom 以从 emmc 加载引导加载程序(android 日志示例)。board id = 1 set cpu clk to 24m set clk81 to 24m use gp1_pll as dsu clk. dsu clk: 1200 mhz cpu clk: 1200 mhz set clk81 to 166.6m emmc boot @ 0 sw8 s board id: 1 load fip hdr ddr from emmc, src: 0x00010200, des: 0xfffd0000, size: 0x00004000, part: 0 fw parse done piei prepare done 00000000 emmc switch 1 ok ddr s**ed addr:00016000 load ddr parameter from emmc, src: 0x02c00000, des: 0xfffd0000, size: 0x00001000, part: 0 00000000 ..复制有四种可能的情况需要注意,eMMC 已烧入 Android 镜像,eMMC 已烧入 Linux 镜像,BL2 中的启动过程挂起,eMMC 为空。
带有 Android 映像的可启动 eMMC 已闪烁使用 USB 编程工具以 7% 格式化。**在此过程中,请使用Android FastBoot工具拔下Type-C USB数据线,在执行此操作之前,请确保Adb FastBoot工具在您的PC上正常工作。 root@dangku-desktop: tmp adb root adbd 已经以 root 身份运行 root@dangku-desktop: tmp adb remount remount succeeded root@dangku-desktop: tmp adb shell bananapi m2s: reboot Fastboot Copy,等待几秒钟,让主板重启进入快速启动模式 root@dangku-desktop: tmp fastboot devices 1234567890 fastboot root@dangku-desktop: tmp fastboot flashing unlock critical.okay [ 0.044s] finished. total time: 0.044s root@dangku-desktop:/tmp# fastboot flashing unlock ..okay [ 0.047s] finished. total time: 0.047s root@dangku-desktop:/tmp# fastboot erase bootloader erasing 'bootloader'...okay [ 0.059s] finished. total time: 0.059s root@dangku-desktop:/tmp# fastboot erase bootloader-boot0 erasing 'bootloader-boot0'...okay [ 0.036s] finished. total time: 0.036s root@dangku-desktop:/tmp# fastboot erase bootloader-boot1 erasing 'bootloader-boot1'...okay [ 0.035s] finished. total time: 0.035s 复制 使用 uboot 命令,连接调试控制台电缆并在启动时按 ESC 键进入 uboot 命令行 bananapi m2s v1 amlmmc 擦除 1 emmckey 是 protected():p rotect start=0,end=57343 start=221184,end=30535679 擦除块 0 到 8192@ boot0 start = 0,end = 8191 擦除块 0 到 8192 @ boot1 start = 0,end = 8191 bananapi m2s v1 reset reset ..sm1:bl:511f6b:81ca2f;feat:a0f83180:20282000;poc:f;rcy:0;emmc:0;read:0;chk:1f;read:0;chk:1f;read:0;chk;复制这两种方式实际上会擦除 emmc android 的引导加载程序部分,从 sdcard linux 启动后,最好通过 dd 命令格式化整个 emmc。 最简单的方法是在启动前插入带有 Linux 映像的 SD 卡,Android 引导加载程序将检查是否存在 Bootini 文件,以便 SD 卡 Linux 启动。 启动后,您可以使用 dd 命令格式化整个 eMMC,然后将 Linux 映像烧录到 eMMC。bpi: try boot from sdcard reading boot.ini 2453 bytes read in 3 ms (797.9 kib/s) ## executing script at 03080000 starting boot.ini...reading env.txt 3483 bytes read in 7 ms (485.4 kib/s) hdmi: autodetect: 1080p60hz reading image.gz 10924573 bytes read in 611 ms (17.1 mib/s) reading bananapi_m2s.dtb 88054 bytes read in 12 ms (7 mib/s) reading uinitrd 11704481 bytes read in 655 ms (17 mib/s) reading overlays/wifi_bt_rtl8822cs.dtbo 729 bytes read in 6 ms (118.2 KiB s) 使用 uboot 命令复制带有 Linux 映像的可启动 eMMC,连接调试控制台电缆并在启动时按 ESC 键进入 uboot 命令行 bananapi m2s mmc erase 0 1000 copy linux u-boot 还将检查 SD卡 vfat 分区中是否有启动ini 文件,以便 SDcard Linux 启动。 启动后,您可以使用 dd 命令格式化整个 eMMC,或者将 Linux 映像直接烧录到 eMMC。 极端情况bootloader 或 uboot 是否损坏,ROM 是从 eMMC 加载的,但在 U-Boot 或 BL2 中挂起,例如如果 DRAM INIT 失败,启动过程会挂在 eMMC 的 BL2 中,唯一的方法是使用 U 盘工具格式化 eMMC,或者完全** android 镜像,然后尝试其他方法擦除 eMMC 或将 Linux 镜像烧录到 eMMC。 如果 eMMC 为空,ROM 将尝试直接从 SD 卡加载引导加载程序。 如果开发板之前已经刷过 Android,如果要使用 sdcard linux 映像启动它,则必须通过这些命令擦除整个 emmc。
$ sudo dd if=/dev/zero of=/dev/mmcblk0boot0 bs=1m status=noxfer$ sudo dd if=/dev/zero of=/dev/mmcblk0boot1 bs=1m status=noxfer$ sudo dd if=/dev/zero of=/dev/mmcblk0 bs=1m status=noxfer$ sync
复制。
Android 测试和支持。 rtl8723bu wifi/bt(usb) rtl8188eu wifi(usb) rtl8821cu wifi/bt(usb) rtl8822cs wifi/bt(sdio/uart) rtl8814au wifi(usb), please get the aircrack-ng driver and install.复制。 如何启用Android WiFi BT
USB 类型:将 USB 加密狗插入 USB 主机端口并重新启动系统,启动后,您可以在“设置”应用中启用或禁用 WiFi 和蓝牙。
SDIO UART 类型:将硬件模块正确连接到 40 针连接器,并配置 Android DTB 覆盖层以启用它。 注意:Android不支持以太网和Wifi同时连接,以太网的优先级高于Wifi,这意味着如果连接了以太网,Wifi无法连接到网络,如果以太网电缆插件,Wifi会断开连接。 Linux 测试和支持。 RTL8188EU WiFi(USB) RTL8192EU WiFi(USB) RTL8723BU WiFi BT(USB) RTL8811AU WiFi(USB) RTL8812AU WiFi(USB) RTL8812BU WiFi(USB) RTL8821CU WiFi BT(USB) RTL8822CS WIFI BT(SDIO UART) 复制如何启用 Linux WiFiWiFi 模块驱动程序已预建在发布映像中。 USB 类型:将 USB 加密狗插入 USB 主机端口,驱动程序将自动加载。 SDIO UART 类型:将硬件模块正确连接到 40pin 插座。 将 dtb 配置为 overlays="wifi_bt_rtl8822cs"复制以将 wifi 模块名称添加到 etc 模块中,以便下次启动时自动加载。 # this file contains the names of kernel modules that should be loaded # at boot time, one per line. lines beginning with "#" are ignored.88x2CS 复制如何为 Linux 启用蓝牙请 **rtk-linux-bt-driver source**,构建 USB 或 UART RTK Linux 蓝牙驱动程序固件并将其安装到您的映像中。 对于 USB 类型,将 USB 加密狗插入 USB 主机端口,驱动程序将自动加载。 对于 UART 类型,在安装蓝牙驱动程序固件之前,将 DTB 覆盖配置为与 WiFi 相同。 HCI UART 驱动程序将位于 RTK-HCIUART 中服务在启动时加载。 cloud-init 和 snap 服务默认处于启用状态,您可以禁用或删除它们。
禁用或删除 cloud-init$ sudo touch etc cloud cloud-init禁用复制或$sudo apt purge cloud-init 复制 禁用或删除快照 $sudo apt purge snapd replication systemd service rc-local服务已存在于发布映像中,但单元文件中没有 [install] 部分。 因此,systemd 无法启用它。 首先,我们必须更新文件。
$ sudo nano /lib/systemd/system/rc-local.service
复制。
[unit]description=/etc/rc.local compatibilitydocumentation=man:systemd-rc-local-generator(8)conditionfileisexecutable=/etc/rc.localafter=network.target[service]type=forkingexecstart=/etc/rc.local starttimeoutsec=0remainafterexit=yesguessmainpid=no[install]wantedby=multi-user.targetalias=rc-local.service
复制。
创建 etc rc本地文件。
sudo nano /etc/rc.local#!/bin/sh## rc.local## this script is executed at the end of each multiuser runlevel.# make sure that the script will "exit 0" on success or any other# value on error.## in order to enable or disable this script just change the execution# bits.## by default this script does nothing.exit 0
复制。
给 etc rclocal 添加可执行权限。
$ sudo chmod +x /etc/rc.local
复制。
启用 rc-local服务并重新启动。
$ sudo systemctl enable rc-local.service$ sudo reboot
复制。
已发布的 Debian 映像默认没有安装 sudo,用户可以使用 “su -” 命令将其更改为 root。 如果你喜欢sudo,你可以安装它。
$ su rootpassword:(enter bananapi)# apt-get update# apt-get install sudo# adduser pi sudo
复制。
然后请注销并重新登录。
在 Ubuntu 20 中04 在服务器上安装docker引擎。
设置存储库 更新 apt 包索引并安装包以允许 apt 通过 https 使用存储库: $ sudo apt-get update $ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release copy add docker official gpg key: $ curl -fssl | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg 复制设置稳定存储库$echo"deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.列出 > dev null 复制安装 docker 引擎 $ sudo apt-get 更新 $ sudo apt-get 安装 docker-ce docker-ce-cli containerdIO 复制通过运行 hello-world 映像来验证 docker 引擎是否已正确安装。 $ sudo docker run hello-world replication install docker with a simple command $ curl -ssl getdocker.com |sudo sh 复制。