Armbian项目地址

Github: https://github.com/armbian/build

Armbian for TV Box 项目地址

Github: https://github.com/150balbes/Build-Armbian/

编译步骤

参考Github上项目首页的说明

1. 准备一个ubuntu18.04的虚机, 我是用ESXi6服务器建的, 初始化好之后 apt update & apt upgrade

2. 在自己的home目录下, 执行命令

apt-get -y install git
git clone https://github.com/armbian/build
cd build
./compile.sh

3. 中途有停止的时候, 修改一下 userpatches/config-example.conf 这个文件, 将 DOWNLOAD_MIRROR="" 改为 DOWNLOAD_MIRROR="china", 在国内的服务器上可以加快下载速度.

4. 中间会有对话框让选择不同的板子, 版本和软件配置. 和R3300-L板子最接近的几款量产产品:

Khadas VIM1: https://www.khadas.com/vim1  区别是没有AV输出, 电源为microUSB 5V输入, 内存为2g, wifi芯片不同, 用的是 AP6212 b/g/n or AP6255 802.11b/n/g/ac, with Bluetooth 4.2

Libre Computer的 Le Potato: https://libre.computer/products/boards/aml-s905x-cc/ 区别是电源为microUSB 5V输入, 内存为2g, 没有wifi

常见的板子, 其wifi芯片型号如下:

  • Q5: MT7601
  • Q7和R3300L: RTL8189FTV
  • R3300M: RTL8189ETV

5. 中途如果有错误, 可以在 build/output/debug 目录下查看对应的日志文件, 文件会区分patching, compiler, compilation, patching 分别归类.

在kernel配置对话框中, wifi网卡驱动的位置位于 Device Drivers -> Network device support -> Wireless LAN

定制

定制涉及的目录

config/kernel: 芯片方案的基础配置, 例如S905对应的是 linux-menson64-*系列文件
config/boards: 量产成品板的配置, 有csc, conf, tvb等各种后缀, 格式都是一样的, 定义了板子的名称, 芯片方案, uboot配置, 但是只有conf后缀是属于官方支持的板子, 其他的只是社区支持.
patch/kernel: 芯片方案对不同分支的补丁集合, 例如S905对应的是meson64-* 系列目录, 根据板子的芯片方案, 会依次应用对应目录下的补丁文件

增加对rtl8189的支持

sunxi是通过补丁把驱动加上的, 具体可以查看 patch/kernel/sunxi-*/系列目录下的文件

  • wifi-xxxx-add-realtek-8189es-kconfig-makefile.patch *diff行数有变化, 需要修改
  • wifi-xxxx-add-realtek-8189es.patch
  • wifi-add-realtek-8189fs.patch *diff行数有变化, 需要修改
  • timekeeping32-tweaks-for-5.0.y.patch 这个是用于修复编译中产生的 ioctl_cfg80211.c:353:2: error: implicit declaration of function ‘get_monotonic_boottime’ 错误

编译中新增的内容

cache/sources/linux-xxxx/xxxx/arch/arm64/boot/dts/amlogic 对应芯片方案的设备描述基础文件dtsi, 及最终设备描述文件dts, 例如 meson-gxl-s905x-khadas-vim.dts
cache/sources/linux-xxxx/xxxx/drivers/net/wireless/ 补丁添加的rtl8189驱动文件都放在这个目录下, 新加入的驱动要加到Kconfig文件里, 才会在内核配置工具中出现

cache/sources/u-boot/20xx.xx/configs/ 这下面都是 *_deconfig 文件, 设备的默认uboot编译配置, 例如khadas-vim_defconfig
cache/sources/u-boot/20xx.xx/include/configs/meson64.h S905* 芯片对应的头文件

Armbian编译以及定制的更多相关文章

  1. 【转】Android虚拟平台的编译和整合

    原文网址:http://blog.csdn.net/rickleaf/article/details/6369065 概要 Android从2008年开始到本文写的2011年,短短三年的时间里成为手机 ...

  2. 《Linux操作系统编译构建指南》

    在线阅读地址:http://www.doc88.com/p-5126905896771.html Linux编译构建定制qq群: 521902245 文件夹...0 前言...3 第零章 绪论...5 ...

  3. 浏览器内核与js引擎

    摘要: 面试一个大公司的时候问到了一个问题,让我谈谈主要的浏览器内核以及他们的特点,当时并没有详细的回答,回来之后自己在网上找了找资料,总结了下分享给大家. 简介: 在维基百科上是这样介绍浏览器内核的 ...

  4. Android拓展系列(11)--打造Windows下便携的Android源码阅读环境

    因为EXT和NTFS格式的差异,我一直对于windows下阅读Android源码感到不满. 前几天,想把最新的android5.0的源码下下来研究一下,而平时日常使用的又是windows环境,于是专门 ...

  5. 如何增强 Linux 系统的安全性,第一部分: Linux 安全模块(LSM)简介

    http://www.ibm.com/developerworks/cn/linux/l-lsm/part1/ 1.相关背景介绍:为什么和是什么 近年来Linux系统由于其出色的性能和稳定性,开放源代 ...

  6. 【原】基于64位Centos6.2的mcrouter使用简介

    此文转载必须注明原文地址,请尊重作者的劳动成果!  http://www.cnblogs.com/lyongerr/p/5040071.html 目录 文档控制... 2 1 mcrouter简介.. ...

  7. 转:Java Annotation详解

    转载自:http://william750214.javaeye.com/blog/298104 元数据的作用 如果要对于元数据的作用进行分类,目前还没有明确的定义,不过我们可以根据它所起的作用,大致 ...

  8. LFS 中文版手册发布:如何打造自己的 Linux 发行版

    您是否想过打造您自己的 Linux 发行版?每个 Linux 用户在他们使用 Linux 的过程中都想过做一个他们自己的发行版,至少一次.我也不例外,作为一个 Linux 菜鸟,我也考虑过开发一个自己 ...

  9. ubunt下的MinimalCD

    ubuntu有MinimalCD,水平高的衍生版制作者基于MinimalCD安装并编译,定制出独特风格的ubuntu衍生版,如 crunchbang.水平不高的个人用户可以从Alternate(文字安 ...

随机推荐

  1. Java 8中的Base64编码和解码

    转自:https://juejin.im/post/5c99b2976fb9a070e76376cc Java 8会因为将lambdas,流,新的日期/时间模型和Nashorn JavaScript引 ...

  2. windows下端口占用解决办法,解决命令

    1.netstat -aon|findstr "8183"  可以看到listener 对应的端口id 2.taskkill /pid {查询出来对应的id值}  /f

  3. Httpd服务入门知识-Httpd服务常见配置案例之MPM( Multi-Processing Module)多路处理模块

    Httpd服务入门知识-Httpd服务常见配置案例之MPM( Multi-Processing Module)多路处理模块 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.M ...

  4. kuangbin专题专题四 MPI Maelstrom POJ - 1502

    题目链接:https://vjudge.net/problem/POJ-1502 dijkstra板子题,题目提供下三角情况,不包含正对角线,因为有题意都为0,处理好输入,就是一个很水的题. #inc ...

  5. 记一次wxpy开发经历

    常在河边走,哪有不湿鞋,没想到搞这个花了半天时间.

  6. jmeter使用正则表达式从上一个http响应数据里提取关键字传递给下一个http请求(二)

    通过jmeter从表格批量读取数据(一)(http://www.cnblogs.com/lelexiong/p/8728993.html)介绍了从表格批量读取数据,读取数据之后,如果要提取响应数据里面 ...

  7. Spring Cloud 之 Feign 知识点:封装了 REST 调用

    Feign Client 会在底层根据你的注解,跟你指定的服务建立连接.构造请求.发起请求.获取响应.解析响应,等等. Feign 的一个关键机制就是使用了动态代理. 首先,如果你对某个接口定义了 @ ...

  8. BJOI2018 day2

    双人猜数游戏 Alice 和 Bob 是一对非常聪明的人,他们可以算出各种各样游戏的最优策略.现在有个综艺节目<最强大佬>请他们来玩一个游戏.主持人写了三个正整数 \(s\) .\(m\) ...

  9. springMVC中的日期格式的转化

    一.jsp页面传递到controller的日期 如果实体类中封装的日期类型为Date,而jsp页面中的传来的为string类型,这个时候后台就会报错,出现400错误,原因是前后端的数据类型不一致.要将 ...

  10. 如何使用h5py读入数据

    在网上找到的方法,如下: import h5py import numpy as np #HDF5的写入: imgData = np.zeros((2,4)) f = h5py.File('HDF5_ ...