Difference between revisions of "APITestPage"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
 
(136 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[How to build FriendlyELEC FriendlyWRT|English]]
+
{| class="wikitable"
 
+
|-
==FriendlyWRT简介==
+
! CPU
FriendlyWRT是友善电子基于OpenWrt定制的系统,完全开源,用于企业物联网二次开发,个人定制NAS,家庭物联网网关等。
+
! DTS
TODO <br />
+
|-
==下载体验版固件==
+
| NanoPC-T2
TODO <br />
+
| s5p4418-nanopi2-rev01.dts
解压后用 dd 或者 win32image 烧写到 SD 卡。
+
|-
==帐户与密码==
+
| NanoPi-S2
用户名: root<br />
+
| s5p4418-nanopi2-rev02.dts
密码: fa<br />
+
|-
<br />
+
| Smart4418
==获取项目源代码==
+
| s5p4418-nanopi2-rev03.dts
===安装 repo 工具===
+
|-
首先需要安装 repo 工具:
+
| NanoPi2-Fire
<syntaxhighlight lang="bash">
+
| s5p4418-nanopi2-rev04.dts
git clone https://github.com/friendlyarm/repo
+
|-
cp repo/repo /usr/bin/
+
| NanoPi-M2A
</syntaxhighlight>
+
| s5p4418-nanopi2-rev07.dts
===下载项目源代码===
+
|-
有以下两种途径获取项目源代码,中国大陆用户建议使用方法1的途径下载:
+
| Smart4418SDK
====方法一:使用网盘里的repo压缩包====
+
| s5p4418-nanopi2-rev103.dts
网盘下载地址: [http://download.friendlyarm.com/{{#replace:{{#replace:{{BASEPAGENAME}}| |}}|/zh|}} 点击进入]<br />
+
|-
文件位于网盘的以下路径:sources/friendlywrt-YYYYMMDD.tar (YYYYMMDD表示打包的日期)<br />
+
| SOM-4418
从网盘中获取的 repo 压缩包在解压之后,需要执行一下以下命令做一次解包动作:
+
| s5p4418-nanopi2-rev11.dts
<syntaxhighlight lang="bash">
+
|-
tar xvf /path/to/netdisk/sources/friendlywrt-YYYYMMDD.tar
+
| NanoPC-T3
cd friendlywrt
+
| s5p6818-nanopi3-rev01.dts
repo sync -l
+
|-
</syntaxhighlight>
+
| NanoPi-M3B
用此方法得到的源代码版本是repo打包时的版本,如果想拉取到官方最新的版本,可以去掉 -l 参数,执行一次 repo sync, 例如:
+
| s5p6818-nanopi3-rev02.dts
<syntaxhighlight lang="bash">
+
|-
cd friendlywrt
+
| Smart6818
repo sync
+
| s5p6818-nanopi3-rev03.dts
</syntaxhighlight>
+
|-
====方法二:从github下载====
+
| NanoPi-Fire3
<syntaxhighlight lang="bash">
+
| s5p6818-nanopi3-rev05.dts
mkdir friendlywrt
+
|-
cd friendlywrt
+
| NanoPi-M3
repo init -u https://github.com/friendlyarm/friendlywrt_manifests -b master -m h3.xml --repo-url=https://github.com/friendlyarm/repo
+
| s5p6818-nanopi3-rev07.dts
repo sync -c
+
|-
</syntaxhighlight>
+
| NanoPC-T4
====同步项目到最新版本====
+
| rk3399-nanopi4-rev00.dts
<syntaxhighlight lang="bash">
+
|-
cd friendlywrt
+
| NanoPi-M4
repo sync -c
+
| rk3399-nanopi4-rev01.dts
</syntaxhighlight>
+
|-
同步过程中,由于网络原因出现中断,可以使用下面脚本同步代码:
+
| NanoPi-NEO4
<syntaxhighlight lang="bash">
+
| rk3399-nanopi4-rev04.dts
#! /bin/bash
+
|-
repo sync -c
+
| SOM-RK3399
while [ $? -ne 0 ];
+
| rk3399-nanopi4-rev06.dts
do 
+
|-
    repo sync -c
+
| SOM-RK3399v2
done
+
| rk3399-nanopi4-rev07.dts
</syntaxhighlight>
+
|-
 
+
| NanoPi-R4S
==如何编译==
+
| rk3399-nanopi4-rev09.dts
===搭建编译环境===
+
|-
在PC的Ubuntu系统下 (建议使用版本18.04-64bit),执下以下命令安装所需的软件:
+
| NanoPi-R4S
<syntaxhighlight lang="bash">
+
| rk3399-nanopi4-rev0a.dts
sudo apt-get install repo git-core gitk git-gui gcc-arm-linux-gnueabihf u-boot-tools device-tree-
+
|-
compiler gcc-aarch64-linux-gnu mtools parted libudev-dev libusb-1.0-0-dev python-linaro-image-
+
| NanoPi-R4SE
tools linaro-image-tools autoconf autotools-dev libsigsegv2 m4 intltool libdrm-dev curl sed make
+
| rk3399-nanopi4-rev0b.dts
binutils build-essential gcc g++ bash patch gzip bzip2 perl tar cpio python unzip rsync file bc wget
+
|-
libncurses5 libqt4-dev libglib2.0-dev libgtk2.0-dev libglade2-dev cvs git mercurial rsync openssh-
+
| NanoPi-M4v2
client subversion asciidoc w3m dblatex graphviz python-matplotlib libc6:i386 libssl-dev texinfo
+
| rk3399-nanopi4-rev21.dts
liblz4-tool genext2fs lib32stdc++6 swig python-dev python3-dev exfat-fuse exfat-utils
+
|-
</syntaxhighlight>
+
| NanoPi-M4B
 
+
| rk3399-nanopi4-rev22.dts
===查看帮助===
+
|-
不带参数执行 build.sh,默认是打印帮助信息:
+
| NanoPi-R2S
<syntaxhighlight lang="bash">
+
| rk3328-nanopi-r2-rev00.dts
./build.sh
+
|-
</syntaxhighlight>
+
| NanoPi-NEO3
显示的帮助信息如下:
+
| rk3328-nanopi-r2-rev02.dts
<syntaxhighlight lang="bash">
+
|-
USAGE: ./build.sh <parameter>
+
| NanoPi-R2C
 
+
| rk3328-nanopi-r2-rev06.dts
# 选择目标的硬件平台:
+
|-
  ./build.sh friendlyelec_h3_series.mk
+
| NanoPi-R2C-Plus
 
+
| rk3328-nanopi-r2-rev22.dts
# 编译各个模块:
+
|-
  ./build.sh all                -编译所有组件
+
| NanoPi-R2S-Plus
  ./build.sh uboot              -单独编译uboot
+
| rk3328-nanopi-r2-rev24.dts
  ./build.sh kernel            -单独编译kernel
+
|-
  ./build.sh friendlywrt        -单独编译friendlywrt
+
| Core3328
  ./build.sh sd-img            -生成sd启动的镜像文件
+
| rk3328-nanopi-r2-rev25.dts
  ./build.sh emmc-img          -生成用于安装到emmc的镜像文件 (镜像文件需要dd到sd卡,通过sd卡启动安装程序)
+
|-
# 清理:
+
| NanoPi-R5S
  ./build.sh cleanall
+
| rk3568-nanopi5-rev01.dts
</syntaxhighlight>
+
|-
===全自动方式编译===
+
| NanoPi-R5S-LTS
初次编译,需要选择目标的硬件平台,当前只有H3可用,后续会加入更多的硬件支持:
+
| rk3568-nanopi5-rev05.dts
<syntaxhighlight lang="bash">
+
|-
./build.sh friendlyelec_h3_series.mk
+
| NanoPi-R5C
</syntaxhighlight>
+
| rk3568-nanopi5-rev02.dts
执行上述命令,会自动编译所有组件,其中包括u-boot, kernel 和 friendlywrt,并生成sd启动的烧写镜像文件。
+
|-
===编译单独的模块===
+
| NanoPi-R5C
====kernel====
+
| rk3568-nanopi5-rev03.dts
<syntaxhighlight lang="bash">
+
|-
./build.sh kernel
+
| NanoPi-R5C
</syntaxhighlight>
+
| rk3568-nanopi5-rev04.dts
====u-boot====
+
|-
<syntaxhighlight lang="bash">
+
| CM3568
./build.sh uboot
+
| rk3568-nanopi5-rev06.dts
</syntaxhighlight>
+
|-
====friendlywrt====
+
| NanoPC-T6
<syntaxhighlight lang="bash">
+
| rk3588-nanopi6-rev01.dts
./build.sh friendlywrt
+
|-
</syntaxhighlight>
+
| NanoPi-R6S
===生成sdcard固件===
+
| rk3588-nanopi6-rev02.dts
<syntaxhighlight lang="bash">
+
|-
sudo ./build.sh sd-img
+
| NanoPi-R6S
</syntaxhighlight>
+
| rk3588-nanopi6-rev03.dts
打包img成功后,终端会显示如下信息,可以参考下面的dd命令将img写入sd卡,注意/dev/sdX需要替换成真实的sd卡设备:
+
|-
<syntaxhighlight lang="bash">
+
| NanoPi-R6C
Run the following for sdcard install:
+
| rk3588-nanopi6-rev04.dts
    sudo dd if=out/h3-sd-friendlywrt-4.14-armhf-20190807.img bs=1M of=/dev/sdX
+
|-
</syntaxhighlight>
+
| NanoPi-R6C
===生成emmc (eflasher) 固件===
+
| rk3588-nanopi6-rev05.dts
<syntaxhighlight lang="bash">
+
|-
sudo ./build.sh emmc-img
+
| NanoPC-T6-LTS
</syntaxhighlight>
+
| rk3588-nanopi6-rev07.dts
打包img成功后,终端会显示如下信息,可以参考下面的dd命令将img写入sd卡,注意/dev/sdX需要替换成真实的sd卡设备:
+
|-
<syntaxhighlight lang="bash">
+
| CM3588
Run the following for sdcard install:
+
| rk3588-nanopi6-rev09.dts
    sudo dd if=out/h3-eflasher-friendlywrt-4.14-armhf-20190807.img bs=1M of=/dev/sdX
+
|-
</syntaxhighlight>
+
| NanoPi-M6
用此sd卡启动eflasher系统,执行eflasher命令,将系统写入emmc,之后就可以拨掉sd卡,从emmc启动friendlywrt了。
+
| rk3588-nanopi6-rev0a.dts
==friendlywrt定制与开发==
+
|-
===源代码目录结构===
+
| CM3588-Plus
<syntaxhighlight lang="bash">
+
| rk3588-nanopi6-rev06.dts
├── friendlywrt
+
|-
│  ├── friendlywrt -> friendlywrt源代码
+
| NanoPi-R3S
|   └── configs -> 保存预设好的friendlywrt defconfig文件
+
| rk3566-nanopi-r3-rev01.dts
│  ├── build.sh -> 全自动编译脚本
+
|-
│  ├── device/friendlyelec -> 用于适配友善电子开发板的相关文件
+
| NanoPi-R3S-LTS
│  ├── kernel -> 内核
+
| rk3566-nanopi-r3-rev02.dts
│  └── u-boot -> u-boot
+
|-
│  └── scripts -> 打包img的相关脚本
+
| NanoPi-Zero2
</syntaxhighlight>
+
| rk3528-nanopi-rev01.dts
===配置friendlywrt的软件包===
+
|}
* 使用make menuconfig更改配置
+
<syntaxhighlight lang="bash">
+
cd friendlywrt
+
make menuconfig
+
</syntaxhighlight>
+
* 另存你个人的软件包配置
+
<syntaxhighlight lang="bash">
+
make menuconfig
+
./scripts/diffconfig.sh > ../configs/my_config
+
</syntaxhighlight>
+
* 让以后的编译使用你的friendlywrt配置
+
编辑以下文件:
+
<syntaxhighlight lang="bash">
+
device/friendlyelec/h3/friendlyelec_h3_series.mk
+
</syntaxhighlight>
+
将TARGET_FRIENDLYWRT_CONFIG的值改为你的配置。
+
* 重新编译friendlywrt并制成sd启动镜像
+
<syntaxhighlight lang="bash">
+
./build.sh friendlywrt
+
./build.sh sd-img
+
</syntaxhighlight>
+
===固化个人文件到friendlywrt===
+
将文件或目录放入以下目录即可,打包img时会把它们都打包进去:
+
<syntaxhighlight lang="bash">
+
device/friendlyelec/h3/common-files
+
</syntaxhighlight>
+
也可以放在新建的目录里,然后编辑以下文件:
+
<syntaxhighlight lang="bash">
+
device/friendlyelec/h3/friendlyelec_h3_series.mk
+
</syntaxhighlight>
+
在文件中新增一行 (XXX替换为你的目录名):
+
<syntaxhighlight lang="bash">
+
FRIENDLYWRT_FILES+=(device/friendlyelec/h3/XXX)
+
</syntaxhighlight>
+
===修改friendlywrt系统的默认配置(如网络、防火墙等)===
+
进入如下目录:
+
<syntaxhighlight lang="bash">
+
device/friendlyelec/h3/default-settings/files/root/board
+
</syntaxhighlight>
+
编辑你所用的开发板目录所在的配置文件即可,比如下面是NanoPi-R1的配置文件:
+
<syntaxhighlight lang="bash">
+
NanoPi-R1
+
└── etc
+
    └── config
+
        ├── network
+
        └── system
+
</syntaxhighlight>
+
===更改u-boot和kernel配置===
+
同样是编辑如下文件:
+
<syntaxhighlight lang="bash">
+
device/friendlyelec/h3/friendlyelec_h3_series.mk
+
</syntaxhighlight>
+
可通过以下设置,将uboot的配置改为你自已的:
+
<syntaxhighlight lang="bash">
+
TARGET_UBOOT_CONFIG=nanopi_h3_defconfig
+
</syntaxhighlight>
+
可通过以下设置,将kernel的配置改为你自已的:
+
<syntaxhighlight lang="bash">
+
TARGET_KERNEL_CONFIG=sunxi_defconfig
+
</syntaxhighlight>
+
===更换其他源代码===
+
编辑如下 xml 文件,即可替换 kernel 、uboot以及friendlywrt的源代码:
+
<syntaxhighlight lang="bash">
+
.repo/manifests/h3.xml
+
</syntaxhighlight>
+
想了解 xml 文件各个节点的含义和用法,请参考:[https://gerrit.googlesource.com/git-repo/+/refs/heads/master/docs/manifest-format.md repo Manifest Format]<br />
+
编辑完成后,需要用 repo 命令同步一下,比如更换了 kernel 的源代码,用以下命令同步一次:
+
<syntaxhighlight lang="bash">
+
repo sync --force-sync kernel
+
</syntaxhighlight>
+
同步后单独重新内核即可:
+
<syntaxhighlight lang="bash">
+
./build.sh kernel
+
</syntaxhighlight>
+
 
+
==参考资料==
+
[https://source.android.com/setup/develop/repo repo使用指南]<br />
+

Latest revision as of 09:18, 5 December 2024

CPU DTS
NanoPC-T2 s5p4418-nanopi2-rev01.dts
NanoPi-S2 s5p4418-nanopi2-rev02.dts
Smart4418 s5p4418-nanopi2-rev03.dts
NanoPi2-Fire s5p4418-nanopi2-rev04.dts
NanoPi-M2A s5p4418-nanopi2-rev07.dts
Smart4418SDK s5p4418-nanopi2-rev103.dts
SOM-4418 s5p4418-nanopi2-rev11.dts
NanoPC-T3 s5p6818-nanopi3-rev01.dts
NanoPi-M3B s5p6818-nanopi3-rev02.dts
Smart6818 s5p6818-nanopi3-rev03.dts
NanoPi-Fire3 s5p6818-nanopi3-rev05.dts
NanoPi-M3 s5p6818-nanopi3-rev07.dts
NanoPC-T4 rk3399-nanopi4-rev00.dts
NanoPi-M4 rk3399-nanopi4-rev01.dts
NanoPi-NEO4 rk3399-nanopi4-rev04.dts
SOM-RK3399 rk3399-nanopi4-rev06.dts
SOM-RK3399v2 rk3399-nanopi4-rev07.dts
NanoPi-R4S rk3399-nanopi4-rev09.dts
NanoPi-R4S rk3399-nanopi4-rev0a.dts
NanoPi-R4SE rk3399-nanopi4-rev0b.dts
NanoPi-M4v2 rk3399-nanopi4-rev21.dts
NanoPi-M4B rk3399-nanopi4-rev22.dts
NanoPi-R2S rk3328-nanopi-r2-rev00.dts
NanoPi-NEO3 rk3328-nanopi-r2-rev02.dts
NanoPi-R2C rk3328-nanopi-r2-rev06.dts
NanoPi-R2C-Plus rk3328-nanopi-r2-rev22.dts
NanoPi-R2S-Plus rk3328-nanopi-r2-rev24.dts
Core3328 rk3328-nanopi-r2-rev25.dts
NanoPi-R5S rk3568-nanopi5-rev01.dts
NanoPi-R5S-LTS rk3568-nanopi5-rev05.dts
NanoPi-R5C rk3568-nanopi5-rev02.dts
NanoPi-R5C rk3568-nanopi5-rev03.dts
NanoPi-R5C rk3568-nanopi5-rev04.dts
CM3568 rk3568-nanopi5-rev06.dts
NanoPC-T6 rk3588-nanopi6-rev01.dts
NanoPi-R6S rk3588-nanopi6-rev02.dts
NanoPi-R6S rk3588-nanopi6-rev03.dts
NanoPi-R6C rk3588-nanopi6-rev04.dts
NanoPi-R6C rk3588-nanopi6-rev05.dts
NanoPC-T6-LTS rk3588-nanopi6-rev07.dts
CM3588 rk3588-nanopi6-rev09.dts
NanoPi-M6 rk3588-nanopi6-rev0a.dts
CM3588-Plus rk3588-nanopi6-rev06.dts
NanoPi-R3S rk3566-nanopi-r3-rev01.dts
NanoPi-R3S-LTS rk3566-nanopi-r3-rev02.dts
NanoPi-Zero2 rk3528-nanopi-rev01.dts