
点击(此处)折叠或打开
-
参考
-
http://wiki.friendlyarm.com/wiki/index.php/NanoPC-T2/zh#.E5.A6.82.E4.BD.95.E7.BC.96.E8.AF.91.E7.B3.BB.E7.BB.9F
-
-
自定义后需要修改的内容包括
-
1. 设定网卡Mac地址.
-
2. 修改UBOOT/Kernel的开机Logo和android开机动画
-
3. 设定android ADB TCP机制
-
4. Android 设定编译 e2fsck这个命令, 否则会造成android 界面卡顿很长时间.
-
https://blog.csdn.net/MENGHUANBEIKE/article/details/78411765?utm_source=blogxgwz0
-
===========================================================
-
===========================================================
-
===========================================================
-
-
1. 笔记本 Virutual Box 安装 Ubuntu 16.04. (硬盘分了80G, 内存5G)
-
-
下载编译器
-
git clone https://github.com/friendlyarm/prebuilts.git -b master --depth 1
-
cd prebuilts/gcc-x64
-
cat toolchain-4.9.3-armhf.tar.gz* | sudo tar xz -C /
-
#修改 .bashrc
-
export PATH=/opt/FriendlyARM/toolchain/4.9.3/bin:$PATH
-
export GCC_COLORS=auto
-
#确认环境是否正确
-
#arm-linux-gcc -v
-
Using built-in specs.
-
COLLECT_GCC=arm-linux-gcc
-
COLLECT_LTO_WRAPPER=/opt/FriendlyARM/toolchain/4.9.3/libexec/gcc/arm-cortexa9-linux-gnueabihf/4.9.3/lto-wrapper
-
Target: arm-cortexa9-linux-gnueabihf
-
Configured with: /work/toolchain/build/src/gcc-4.9.3/configure --build=x86_64-build_pc-linux-gnu
-
--host=x86_64-build_pc-linux-gnu --target=arm-cortexa9-linux-gnueabihf --prefix=/opt/FriendlyARM/toolchain/4.9.3
-
--with-sysroot=/opt/FriendlyARM/toolchain/4.9.3/arm-cortexa9-linux-gnueabihf/sys-root --enable-languages=c,c++
-
--with-arch=armv7-a --with-tune=cortex-a9 --with-fpu=vfpv3 --with-float=hard
-
...
-
Thread model: posix
-
gcc version 4.9.3 (ctng-1.21.0-229g-FA)
-
-
-
UBOOT
-
编译 Android7/FriendlyCore/Lubuntu/EFlasher的U-Boot源代码 -下载U-Boot v2016.01源代码并编译,注意分支是nanopi2-v2016.01
-
git clone https://github.com/friendlyarm/u-boot.git
-
cd u-boot
-
git checkout nanopi2-v2016.01
-
make s5p4418_nanopi2_defconfig
-
make CROSS_COMPILE=arm-linux-
-
编译成功结束后您将获得bootloader.img,可以通过fastboot、sd-fuse_s5p4418和eflasher来更新板上的U-Boot v2016.01。
-
For Android7: 可复制bootloader.img到Android7源代码目录 device/friendlyelec/nanopi2/boot,然后重新编译Android7。
-
-
UBOOT阶段, 加载的LOGO是在 mmc上的 logo.bmp.
-
-
使用串口:
-
#printenv
-
ethaddr=d8:80:39:5a:d6:83
-
splashfile=logo.bmp
-
splashimage=0x78000000
-
splashpos=m,m
-
-
如果要在 android内修改的话
-
adb root; adb shell mkdir /storage/sd1/; adb shell mount -t ext4 /dev/block/mmcblk0p1 /storage/sd1/
-
修改或者adb push覆盖 logo.bmp 即可.
-
-
下载Kernel
-
git clone https://github.com/friendlyarm/linux.git -b nanopi2-v4.4.y --depth 1
-
cd linux
-
touch .scmversion
-
make ARCH=arm nanopi2_nougat_defconfig
-
make ARCH=arm
-
编译成功结束后,新生成的内核是 arch/arm/boot/zImage,目录arch/arm/boot/dts/下还包括新的DTB文件(s5p4418-nanopi2-rev*.dtb)。 如果只想调试内核,可通过 adb 来快速更新。
-
adb root; adb shell mkdir /storage/sdcard1/; adb shell mount -t ext4 /dev/block/mmcblk0p1 /storage/sdcard1/;
-
adb push arch/arm/boot/zImage arch/arm/boot/dts/s5p4418-nanopi2-rev*.dtb /storage/sdcard1/
-
内核开发/调试完成后,如果想生成用于烧写的boot.img,可复制内核zImage和DTB文件到Android7源代码目录 device/friendlyelec/nanopi2/boot,然后重新编译Android7。
-
-
-
下载Android
-
方式一
-
git clone https://gitlab.com/friendlyelec/s5pxx18-android-7.git -b master
-
方式二
-
网盘http://download.friendlyarm.com/NanoPC-T2
-
下载 sources/s5pxx18-android-7.git-YYYYMMDD.tar
-
tar xvf /path/to/netdisk/sources/s5pxx18-android-7.git-YYYYMMDD.tar
-
cd s5pxx18-android-7
-
./sync.sh #执行一下 sync.sh 脚本,会从gitlab上拉取最新的代码
-
-
开始编译
-
cd s5pxx18-android-7
-
source build/envsetup.sh
-
lunch aosp_nanopi2-userdebug
-
make -j8
-
-
编译成功完成后,目录 out/target/product/nanopi2/ 下包含可用于烧写的image文件。
-
filename partition Description
-
bl1-mmcboot.bin raw boot firmware
-
loader-mmc.img raw boot firmware
-
bl_mon.img raw boot firmware
-
bootloader.img raw uboot-v2016.01
-
env.conf - uboot环境变量,包含Android内核命令行参数
-
boot.img boot kernel zImage, DTBs; logo; Android ramdisk
-
cache.img cache -
-
userdata.img userdata -
-
system.img system -
-
partmap.txt - 分区描述文件
-
-
-
-
自定义内容:
-
/android/s5pxx18-android-7/device/friendlyelec/nanopi2
-
1. fstab.nanopi2 / fstab.nanopi2.emmc.
-
a) /system的加载 rw.
-
2. 替换 boot/logo.bmp 为 uboot/kernel期间的LOGO.
-
3. 修改 device.mk
-
a) 添加 目录 bootanimation 并且添加 bootanimation.zip(一定需要使用存储的方式打包), 权限 chmod 0666
-
# Boot animation
-
PRODUCT_COPY_FILES += \ device/friendlyelec/nanopi2/bootanimation/bootanimation.zip:system/media/bootanimation.zip
-
b) 添加目录 apps 并且添加 BusyBox_Free-63.apk
-
# Vendor App
-
PRODUCT_COPY_FILES += \
-
device/friendlyelec/nanopi2/apps/BusyBox_Free-63.apk:system/app/BusyBox_Free-63.apk
-
c) 修改 build/core/Makefile, 屏蔽一下行
-
#define check-product-copy-files
-
#$(if $(filter %.apk, $(1)),$(error \
-
# Prebuilt apk found in PRODUCT_COPY_FILES: $(1), use BUILD_PREBUILT #
-
#endef
-
-
4. system.prop 增加 service.adb.tcp.port = 5555
-
编译后体现在 system/build.prop中.
-
5. MAC绑定IP d8:80:39:5a:d6:83
-
-
-
烧写固件
-
上电时在串口终端敲回车进入uboot命令行模式,然后输入以下命令:
-
fastboot 0
-
然后对于S5P4418, 通过OTG连接PC端可使用以下命令来更新emmc:
-
fastboot flash partmap partmap.txt
-
fastboot flash 2ndboot bl1-mmcboot.bin
-
fastboot flash fip-loader loader-mmc.img
-
fastboot flash fip-secure bl_mon.img
-
fastboot flash fip-nonsecure bootloader.img
-
fastboot flash boot boot.img
-
fastboot flash system system.img ## 这个很慢, 约 150秒
-
fastboot flash cache cache.img
- fastboot flash userdata userdata.img
然后PC上使用
adb tcpip 5555 (端口号)
adb connect 192.168.43.199
adb root
adb shell