Difference between revisions of "APITestPage"
From FriendlyELEC WiKi
(updated by API) |
(updated by API) |
||
Line 1: | Line 1: | ||
− | [[ | + | [[How to build FriendlyELEC FriendlyWRT|English]] |
− | == | + | ==FriendlyWRT简介== |
− | + | TODO <br /> | |
− | <br /> | + | ==下载体验版固件== |
− | + | TODO <br /> | |
− | + | 解压后用 dd 或者 win32image 烧写到 SD 卡。 | |
− | + | ==帐户与密码== | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | == | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | == | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
用户名: root<br /> | 用户名: root<br /> | ||
密码: fa<br /> | 密码: fa<br /> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<br /> | <br /> | ||
− | + | ==获取项目源代码== | |
− | + | ===安装 repo 工具=== | |
− | + | 首先需要安装 repo 工具: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | == | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | == | + | |
− | + | ||
− | + | ||
− | + | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | + | git clone https://github.com/friendlyarm/repo | |
− | + | cp repo/repo /usr/bin/ | |
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | ===下载项目源代码=== | |
− | + | 有以下两种途径获取项目源代码,中国大陆用户建议使用方法1的途径下载: | |
− | + | ====方法一:使用网盘里的repo压缩包==== | |
− | == | + | 网盘下载地址: [http://download.friendlyarm.com/{{#replace:{{#replace:{{BASEPAGENAME}}| |}}|/zh|}} 点击进入]<br /> |
− | + | 文件位于网盘的以下路径:sources/friendlywrt-YYYYMMDD.tar (YYYYMMDD表示打包的日期)<br /> | |
+ | 从网盘中获取的 repo 压缩包在解压之后,需要执行一下以下命令做一次解包动作: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | + | tar xvf /path/to/netdisk/sources/friendlywrt-YYYYMMDD.tar | |
− | + | cd friendlywrt | |
− | + | repo sync -l | |
− | + | ||
− | + | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 用此方法得到的源代码版本是repo打包时的版本,如果想拉取到官方最新的版本,可以去掉 -l 参数,执行一次 repo sync, 例如: | |
− | + | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | + | cd friendlywrt | |
− | + | repo sync | |
− | + | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | ====方法二:从github下载==== | |
− | + | <syntaxhighlight lang="bash"> | |
− | == | + | mkdir friendlywrt |
− | + | cd friendlywrt | |
− | + | repo init -u https://github.com/friendlyarm/friendlywrt_manifests -b master -m h3.xml --repo-url=https://github.com/friendlyarm/repo | |
− | + | repo sync -c | |
− | + | </syntaxhighlight> | |
− | + | ====同步项目到最新版本==== | |
− | + | <syntaxhighlight lang="bash"> | |
− | + | cd friendlywrt | |
− | < | + | repo sync -c |
− | + | </syntaxhighlight> | |
− | === | + | 同步过程中,由于网络原因出现中断,可以使用下面脚本同步代码: |
− | + | ||
− | + | ||
− | + | ||
− | < | + | |
− | + | ||
− | + | ||
− | + | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | # | + | #! /bin/bash |
+ | repo sync -c | ||
+ | while [ $? -ne 0 ]; | ||
+ | do | ||
+ | repo sync -c | ||
+ | done | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | ==如何编译== | |
− | + | ===搭建编译环境=== | |
− | + | 在PC的Ubuntu系统下,执下以下命令安装所需的软件: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | == | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | ------------------------- | + | 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- | |
− | ----- | + | tools linaro-image-tools autoconf autotools-dev libsigsegv2 m4 intltool libdrm-dev curl sed make |
− | + | 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- | |
− | + | client subversion asciidoc w3m dblatex graphviz python-matplotlib libc6:i386 libssl-dev texinfo | |
− | ----- | + | liblz4-tool genext2fs lib32stdc++6 swig python-dev python3-dev exfat-fuse exfat-utils |
− | + | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | === | + | ===查看帮助=== |
− | + | 不带参数执行 build.sh: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | + | ./build.sh | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | 显示的帮助信息如下: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | USAGE: ./build.sh <parameter> | ||
− | + | # select config: | |
+ | ./build.sh friendlyelec_h3_series.mk | ||
− | === | + | # build module: |
− | + | ./build.sh all -编译所有组件 | |
− | + | ./build.sh uboot -单独编译uboot | |
− | + | ./build.sh kernel -单独编译kernel | |
+ | ./build.sh friendlywrt -单独编译friendlywrt | ||
+ | ./build.sh sd-img -生成sd启动的镜像文件 | ||
+ | ./build.sh emmc-img -生成用于安装到emmc的镜像文件 (镜像文件需要dd到sd卡,通过sd卡启动安装程序) | ||
+ | # clean | ||
+ | ./build.sh cleanall | ||
+ | </syntaxhighlight> | ||
+ | ===全自动方式编译=== | ||
+ | 选择你要编译的配置,当前只有H3可用,后续会加入更多的硬件支持,这里我们选择H3的配置,适配所有友善电子H3平台的开发板: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | ./build.sh friendlyelec_h3_series.mk | ||
+ | </syntaxhighlight> | ||
+ | 执行上述命令,会自动编译所有组件,其中包括u-boot, kernel 和 friendlywrt,并生成sd启动的烧写镜像文件。 | ||
+ | ===部分编译=== | ||
+ | ====kernel==== | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | + | ./build.sh kernel | |
− | + | </syntaxhighlight> | |
+ | ====u-boot==== | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | ./build.sh uboot | ||
+ | </syntaxhighlight> | ||
+ | ====friendlywrt==== | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | ./build.sh friendlywrt | ||
+ | </syntaxhighlight> | ||
+ | ===生成sdcard固件=== | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | sudo ./build.sh sd-img | ||
+ | </syntaxhighlight> | ||
+ | ===生成emmc (eflasher) 固件=== | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | sudo ./build.sh emmc-img | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
− | |||
− | == | + | ==friendlywrt定制与开发== |
− | + | ===目录结构=== | |
− | === | + | <syntaxhighlight lang="bash"> |
− | + | ├── friendlywrt | |
− | + | │ ├── friendlywrt -> friendlywrt根文件系统的编译目录 | |
− | + | | └── configs -> 保存预设好的friendlywrt defconfig文件 | |
− | + | │ ├── build.sh -> 全自动编译脚本 | |
− | + | │ ├── device/friendlyelec -> 用于适配友善电子开发板的文件 | |
− | + | │ ├── kernel -> 内核 | |
− | + | │ └── u-boot -> u-boot | |
− | + | </syntaxhighlight> | |
− | + | ====更改friendlywrt配置==== | |
− | + | * 使用menuconfig更改配置 | |
− | + | <syntaxhighlight lang="bash"> | |
− | + | cd friendlywrt | |
− | + | make menuconfig | |
− | + | </syntaxhighlight> | |
− | + | * 保存你的friendlywrt配置 | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | + | make menuconfig | |
− | + | ./scripts/diffconfig.sh > ../configs/my_config | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</syntaxhighlight> | </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> | ||
+ | ===修改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 的源代码: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | .repo/manifests/h3.xml | ||
+ | </syntaxhighlight> | ||
+ | 编辑完成后,需要用 repo 命令同步一下,比如更换了 kernel 的源代码,用以下命令同步一次: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | repo sync --force-sync kernel | ||
+ | </syntaxhighlight> | ||
+ | 同步后单独重新内核即可: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | + | ./build.sh kernel | |
− | + | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 02:17, 7 August 2019
1 FriendlyWRT简介
TODO
2 下载体验版固件
TODO
解压后用 dd 或者 win32image 烧写到 SD 卡。
3 帐户与密码
用户名: root
密码: fa
4 获取项目源代码
4.1 安装 repo 工具
首先需要安装 repo 工具:
git clone https://github.com/friendlyarm/repo cp repo/repo /usr/bin/
4.2 下载项目源代码
有以下两种途径获取项目源代码,中国大陆用户建议使用方法1的途径下载:
4.2.1 方法一:使用网盘里的repo压缩包
网盘下载地址: 点击进入
文件位于网盘的以下路径:sources/friendlywrt-YYYYMMDD.tar (YYYYMMDD表示打包的日期)
从网盘中获取的 repo 压缩包在解压之后,需要执行一下以下命令做一次解包动作:
tar xvf /path/to/netdisk/sources/friendlywrt-YYYYMMDD.tar cd friendlywrt repo sync -l
用此方法得到的源代码版本是repo打包时的版本,如果想拉取到官方最新的版本,可以去掉 -l 参数,执行一次 repo sync, 例如:
cd friendlywrt repo sync
4.2.2 方法二:从github下载
mkdir friendlywrt cd friendlywrt repo init -u https://github.com/friendlyarm/friendlywrt_manifests -b master -m h3.xml --repo-url=https://github.com/friendlyarm/repo repo sync -c
4.2.3 同步项目到最新版本
cd friendlywrt repo sync -c
同步过程中,由于网络原因出现中断,可以使用下面脚本同步代码:
#! /bin/bash repo sync -c while [ $? -ne 0 ]; do repo sync -c done
5 如何编译
5.1 搭建编译环境
在PC的Ubuntu系统下,执下以下命令安装所需的软件:
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- tools linaro-image-tools autoconf autotools-dev libsigsegv2 m4 intltool libdrm-dev curl sed make 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- client subversion asciidoc w3m dblatex graphviz python-matplotlib libc6:i386 libssl-dev texinfo liblz4-tool genext2fs lib32stdc++6 swig python-dev python3-dev exfat-fuse exfat-utils
5.2 查看帮助
不带参数执行 build.sh:
./build.sh
显示的帮助信息如下:
USAGE: ./build.sh <parameter> # select config: ./build.sh friendlyelec_h3_series.mk # build module: ./build.sh all -编译所有组件 ./build.sh uboot -单独编译uboot ./build.sh kernel -单独编译kernel ./build.sh friendlywrt -单独编译friendlywrt ./build.sh sd-img -生成sd启动的镜像文件 ./build.sh emmc-img -生成用于安装到emmc的镜像文件 (镜像文件需要dd到sd卡,通过sd卡启动安装程序) # clean ./build.sh cleanall
5.3 全自动方式编译
选择你要编译的配置,当前只有H3可用,后续会加入更多的硬件支持,这里我们选择H3的配置,适配所有友善电子H3平台的开发板:
./build.sh friendlyelec_h3_series.mk
执行上述命令,会自动编译所有组件,其中包括u-boot, kernel 和 friendlywrt,并生成sd启动的烧写镜像文件。
5.4 部分编译
5.4.1 kernel
./build.sh kernel
5.4.2 u-boot
./build.sh uboot
5.4.3 friendlywrt
./build.sh friendlywrt
5.5 生成sdcard固件
sudo ./build.sh sd-img
5.6 生成emmc (eflasher) 固件
sudo ./build.sh emmc-img
6 friendlywrt定制与开发
6.1 目录结构
├── friendlywrt │ ├── friendlywrt -> friendlywrt根文件系统的编译目录 | └── configs -> 保存预设好的friendlywrt defconfig文件 │ ├── build.sh -> 全自动编译脚本 │ ├── device/friendlyelec -> 用于适配友善电子开发板的文件 │ ├── kernel -> 内核 │ └── u-boot -> u-boot
6.1.1 更改friendlywrt配置
- 使用menuconfig更改配置
cd friendlywrt make menuconfig
- 保存你的friendlywrt配置
make menuconfig ./scripts/diffconfig.sh > ../configs/my_config
- 让以后的编译使用你的friendlywrt配置
编辑以下文件:
device/friendlyelec/h3/friendlyelec_h3_series.mk
将TARGET_FRIENDLYWRT_CONFIG的值改为你的配置。
- 重新编译friendlywrt并制成sd启动镜像
./build.sh friendlywrt ./build.sh sd-img
6.2 修改u-boot和kernel
同样是编辑如下文件:
device/friendlyelec/h3/friendlyelec_h3_series.mk
可通过以下设置,将uboot的配置改为你自已的:
TARGET_UBOOT_CONFIG=nanopi_h3_defconfig
可通过以下设置,将kernel的配置改为你自已的:
TARGET_KERNEL_CONFIG=sunxi_defconfig
6.3 更换源代码
编辑如下 xml 文件,即可替换 kernel 和 uboot 的源代码:
.repo/manifests/h3.xml
编辑完成后,需要用 repo 命令同步一下,比如更换了 kernel 的源代码,用以下命令同步一次:
repo sync --force-sync kernel
同步后单独重新内核即可:
./build.sh kernel