0%

研究HTTPS的双向认证实现与原理,踩了不少坑,终于整个流程都跑通了,现在总结出一篇文档来,把一些心得,特别是容易踩坑的地方记录下来。

阅读全文 »

编译环境

  • 主板: OrangePi-3b
  • 芯片: RK3566
  • 环境: Debian(12-x86_64) + Docker(Debian:12)

内容说明

买了这个 OrangePi 3b 之后,顺手给它配一个5寸的屏幕。

淘宝里面找到一款设计给树莓派使用的屏幕,刚好 OrangePi 3b 的打孔位置和这个屏幕完全匹配,所有果断入手。

屏幕链接:https://item.taobao.com/item.htm?id=627655701617

但是,这块屏实测默认只有香橙派的 Android 固件能够点亮它,其他的都不能直接点亮(LCD 屏通常需要特殊适配),不过至少也证明硬件是可以兼容的。

这就来适配一下。

阅读全文 »

编译环境

  • 主板: OrangePi-3b
  • 芯片: RK3566
  • 环境: Debian(12-x86_64) + Docker(Debian:12)

内容说明

搞了这么久,U-BootKernelRootFS 这三大件基本已经搞出来了,接下来的目标就是适配各种特殊硬件。

比如我给这个香橙派配了一个屏幕,使用 MIPI 接口的。目前还是点不亮的,接下来就是来适配这个。

这一篇文章主要是记录一下之前使用到的编译环境,方便今后快速调用。

阅读全文 »

编译环境

  • 主板: OrangePi-3b
  • 芯片: RK3566
  • 环境: Debian(12-x86_64) + Docker(Debian:12)

构建方式

一般嵌入式系统构建根文件系统会使用 buildroot 这个项目,构建的根文件系统足够小。但这个项目构建根文件系统时严重依赖外网, 导致编译过程很慢。

为了能够使用包管理器安装各种软件包,也可以选择基于强大的 Debian 来构建根文件系统。

构建可以分为两部分,分别是构建 rootfs 文件系统和构建 initramfs 文件系统。前者是 Linux 发行版,后者给 Kernel 作为 ramfs 使用。

个人理解 initramfs 的主要作用是方便在挂载真正的根分区时执行一些用户空间的操作,比如磁盘检查等操作,还是很有必要存在的。

阅读全文 »

编译环境

  • 主板: OrangePi-3b
  • 芯片: RK3566
  • 环境: Debian(12-x86_64) + Docker(Debian:12)

内容说明

U-Boot 搞到差不多了,现在转战 Kernel

香橙派瑞芯微Kernel 都经过了一定程度的修改。

这里就直接上主线 Kernel,另外两个主要是用来对比学习。

阅读全文 »

编译环境

  • 主板: OrangePi-3b
  • 芯片: RK3566
  • 环境: Debian(12-x86_64) + Docker(Debian:12)

启动流程

通俗理解

要研究 U-Boot,就不得不学习一下芯片是如何启动的。

玩过单片机的朋友都知道,单片机中基本是一个芯片内置了 CPUMEMFLASH,单片机的内置引导程序能够直接让 CPU 调用 MEMFLASH,用户只需要将程序写入 FLASH 就能开始运行。

但是类似 RK3566 这一类芯片则不同,它们更像是PC的CPU,芯片内除了 CPU 之外只有一些额外的控制器,不能给芯片本身下载程序;需要搭配外设才能运行,最主要的有 DRAMeMMC 下挂的各种存储设备;比如 OrangePi-3b 则是外挂了一个 DDR4 内存,存储则是支持 SDCardeMMCNVME 等设备,使用的使用用户程序则是存放在这些存储设备中。

和单片机相比,RK3566 运行指令存在于外扩的各种存储设备中,这些设备不是 XIP 设备,访问它们需要经过 eMMC 控制器,并且将其指令复制到 DRAM 中再运行;同时外扩的 DRAM 规格也各不相同,芯片难以在内嵌固件中初始化这些设备;现代芯片还需要支持芯片级的加密支持,这些任务组合在一起很难由片内固件和 SRAM 来完成(也有可能是兼容之前的方案故意为之,毕竟之前由于工艺和成本的原因,很难在片内集成大容量的 FLASHSRAM)。

XIP:eXecute In Place,即芯片内执行,指应用程序可以直接在 FLASH 闪存内运行,不必再把代码读到系统 DRAM 中。FLASH 内执行是指 NOR FLASH 不需要初始化,可以直接读取 FLASH 中的指令。

阅读全文 »

介绍

Orange Pi 3B 采用了瑞芯微 RK3566 四核64位处理器,22nm 先进工艺,主频最高可达 1.8GHz,集成 ARM Mali G52 2EE 图形处理器,支持 OpenGL ES 1.1/2.0/3.2OpenCL 2.0Vulkan 1.1,内嵌高性能 2D 加速模块;内置 0.8Tops 算力的 AI 加速器NPU,支持 Caffe/TensorFlow/TFLite/ONNX/PyTorch/Keras/Darknet 等主流架构模型的一键转换;VPU可实现 4K@60fps H.265/H.264/VP9 视频解码和 1080P@100fps H.265 视频编码,1080P@60fps H.264 视频编码,支持 8M ISPHDR;拥有 2GB/4GB/8GB(LPDDR4/4X),支持 16GB/32GB/64GB/128GB/256GB 的eMMC模块、支持 16MB/32MB SPI Flash,具有 Wi-Fi5、BT5.0,支持 BLE

Orange Pi 3B 引用了相当丰富的接口,包括 HDMI输出M.2 M-KEY(可选)、TF卡槽千兆网口USB2.0USB3.03.5mm耳机插孔MIPI DSI接口eDP接口MIPI CSI摄像头接口多功能40 Pin扩展接口 等,可广泛适用于电视盒子、高端平板、边缘计算、人脸识别、智能安防、智能家居等领域,赋能丰富的AI应用和物联网场景。

阅读全文 »

报错日志:

Traceback (most recent call last):
  File "/home/liux/projects/android_lineage/.repo/repo/main.py", line 56, in <module>
    from subcmds.version import Version
  File "/home/liux/projects/android_lineage/.repo/repo/subcmds/__init__.py", line 35, in <module>
    mod = __import__(__name__,
          ^^^^^^^^^^^^^^^^^^^^
  File "/home/liux/projects/android_lineage/.repo/repo/subcmds/help.py", line 20, in <module>
    from formatter import AbstractFormatter, DumbWriter
ModuleNotFoundError: No module named 'formatter'
阅读全文 »

关闭

reg add HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32 /ve /d “” /f

开启

reg delete “HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}” /f