02使用常规步骤编译NanoPiM1Plus的Android4.4.2

大文实验室/大文哥

壹捌陆捌零陆捌捌陆捌贰

21504965 AT qq.com

完成时间:2017/12/5 17:51

版本:V1.0

开发板:NanoPi M1 Plus/zh

SDK:Android4.4.2

按照全志A33平台编译调通的功能:

0、HDMI(只有720p50Hz)

1、U盘(USB摄像头必须在启动到Android自后再插入,否则是黑屏!)

2、TF

3、RJ45/以太网卡

4、AP6212A0的wifi+BT

5、声音

6、MIC

7、GPIO(以后验证)

8、SPI(以后验证)

9、UART(以后验证)

10、CSI接口的摄像头(以后验证)

11、红外(以后验证)

(一)、解压缩SDK:

rootroot@cm-System-Product-Name:~$ cd /home/wwt

rootroot@cm-System-Product-Name:/home/wwt$

rootroot@cm-System-Product-Name:/home/wwt$ mv nanopi-H3-bsp/ nanopi_h3_bsp

rootroot@cm-System-Product-Name:/home/wwt$

rootroot@cm-System-Product-Name:/home/wwt$ cd nanopi_h3_bsp/

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp$ ll

总用量 3246640

-rw------- 1 rootroot rootroot 996147200 12月  4 11:17 h3-android-20170608.7z.001

-rw------- 1 rootroot rootroot 996147200 12月  4 11:15 h3-android-20170608.7z.002

-rw------- 1 rootroot rootroot 996147200 12月  4 11:29 h3-android-20170608.7z.003

-rw------- 1 rootroot rootroot  67405448 12月  4 11:19 h3-android-20170608.7z.004

-rw------- 1 rootroot rootroot 268684287 12月  4 11:25 h3-lichee-20170608.7z

-rw------- 1 rootroot rootroot       188 12月  4 11:25 README.txt

-rw------- 1 rootroot rootroot       188 12月  4 11:25 解压方法.txt

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp$ 7za x h3-lichee-20170608.7z -r -o./

Extracting  lichee/brandy/u-boot-2011.09/arch/arm/cpu/arm1136/mx31

Extracting  lichee/brandy/u-boot-2011.09/arch/arm/cpu/arm1136

Extracting  lichee/brandy/u-boot-2011.09/arch/arm/cpu

Extracting  lichee/brandy/u-boot-2011.09/arch/arm

Extracting  lichee/brandy/u-boot-2011.09/arch

Extracting  lichee/brandy/u-boot-2011.09/api

Extracting  lichee/brandy/u-boot-2011.09

Extracting  lichee/brandy/toolchain

Extracting  lichee/brandy

Extracting  lichee

Everything is Ok

Folders: 4241

Files: 52956

Size:       949571074

Compressed: 268684287

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp$ 7za x h3-android-20170608.7z.001 -r -o./

Extracting  android/art/compiler/dex/quick/arm

Extracting  android/art/compiler/dex/quick

Extracting  android/art/compiler/dex/portable

Extracting  android/art/compiler/dex

Extracting  android/art/compiler

Extracting  android/art/build

Extracting  android/art

Extracting  android/abi/cpp/src

Extracting  android/abi/cpp/include

Extracting  android/abi/cpp

Extracting  android/abi

Extracting  android

Everything is Ok

Folders: 42578

Files: 364611

Size:       9514031537

Compressed: 996147200

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp$

(二)

由于按照常规步骤编译的IMG不能打开NanoPi M1 Plus上面自带的AP6212的A0版本的WIFI+BT。

下面附带上修改记录:

1、

W:\nanopi_h3_bsp\android\device\softwinner\nanopi-h3\bluetooth\libbt\conf\bt_vendor.conf

# UART device port where Bluetooth controller is attached

UartPort = /dev/ttyS2

# Firmware patch file location

FwPatchFilePath = /system/vendor/modules/

#Firmware name

#FwPatchFileName = bcm4339a0.hcd

FwPatchFileName = bcm43438a0.hcd

2、

W:\nanopi_h3_bsp\android\device\softwinner\nanopi-h3\bluetooth\libbt\include\vnd_dolphin-fvd-p1.txt

BLUETOOTH_HCI_USE_USB = TRUE

USE_CONTROLLER_BDADDR = TRUE

SCO_USE_I2S_INTERFACE = FALSE

FW_PATCHFILE_LOCATION = "/system/etc/firmware"

BTVND_DBG = FALSE

BTHW_DBG = TRUE

VNDUSERIAL_DBG = FALSE

UPIO_DBG = FALSE

USB_DBG = TRUE

直接按照全志A33平台的全部替换掉:

BLUETOOTH_UART_DEVICE_PORT = "/dev/ttyS2"

FW_PATCHFILE_LOCATION = "/system/vendor/modules/"

LPM_IDLE_TIMEOUT_MULTIPLE = 5

UART_TARGET_BAUD_RATE = 1500000

BT_WAKE_VIA_PROC = TRUE

#LPM_SLEEP_MODE = FALSE

BTVND_DBG = TRUE

BTHW_DBG = TRUE

VNDUSERIAL_DBG = TRUE

UPIO_DBG = TRUE

3、

W:\nanopi_h3_bsp\android\device\softwinner\nanopi-h3\bluetooth\bdroid_buildcfg.h

/*

* Copyright (C) 2012 The Android Open Source Project

*

* Licensed under the Apache License, Version 2.0 (the "License");

* you may not use this file except in compliance with the License.

* You may obtain a copy of the License at

*

*      http://www.apache.org/licenses/LICENSE-2.0

*

* Unless required by applicable law or agreed to in writing, software

* distributed under the License is distributed on an "AS IS" BASIS,

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

* See the License for the specific language governing permissions and

* limitations under the License.

*/

#ifndef _BDROID_BUILDCFG_H

#define _BDROID_BUILDCFG_H

#define BTM_DEF_LOCAL_NAME "dolphin-p1"

// SERVICE_CLASS:0x5A (Bit17 -Networking,Bit19 - Capturing,Bit20 -Object Transfer,Bit22 -Telephony)

// MAJOR CLASS: COMPUTER

// MINOR CLASS: TABLET

//##define BTA_DM_COD {0x5A, 0x01, 0x1C}

//#define BTIF_HF_SERVICES (BTA_HSP_SERVICE_MASK)

//#define BTIF_HF_SERVICE_NAMES  { BTIF_HSAG_SERVICE_NAME }

#endif

4、SDK默认为realtek8188eu(USB接口的),需要修改为AP6212的A0版本。

W:\nanopi_h3_bsp\android\device\softwinner\nanopi-h3\BoardConfig.mk

# BoardConfig.mk

#

# Product-specific compile-time definitions.

#

include device/softwinner/dolphin-common/BoardConfigCommon.mk

# image related

TARGET_NO_BOOTLOADER := true

TARGET_NO_RECOVERY := false

TARGET_NO_KERNEL := false

INSTALLED_KERNEL_TARGET := kernel

BOARD_KERNEL_BASE := 0x40000000

BOARD_KERNEL_CMDLINE :=

TARGET_USERIMAGES_USE_EXT4 := true

BOARD_FLASH_BLOCK_SIZE := 4096

BOARD_SYSTEMIMAGE_PARTITION_SIZE := 805306368

#BOARD_USERDATAIMAGE_PARTITION_SIZE :=

# wifi and bt configuration

# 1. wifi Configuration

WPA_SUPPLICANT_VERSION := VER_0_8_X

BOARD_WPA_SUPPLICANT_DRIVER := NL80211

BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd

BOARD_HOSTAPD_DRIVER        := NL80211

BOARD_HOSTAPD_PRIVATE_LIB   := lib_driver_cmd

#WIFI_VENDOR_NAME    := realtek

#WIFI_MODULE_NAME    := 8188eu

#WIFI_DRIVER_NAME    := 8188eu

WIFI_VENDOR_NAME    := broadcom

WIFI_MODULE_NAME    := ap6212

WIFI_DRIVER_NAME    := bcmdhd

include hardware/broadcom/wlan/bcmdhd/firmware/firmware-bcm.mk

# 2. Bluetooth Configuration

# make sure BOARD_HAVE_BLUETOOTH is true for every bt vendor

#include device/softwinner/common/hardware/realtek/bluetooth/rtl8723bs/firmware/rtlbtfw_cfg.mk

BOARD_HAVE_BLUETOOTH := true

BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/softwinner/common/

5、语言默认为英文(国际版本),这里修改为简体中文了!

W:\nanopi_h3_bsp\android\device\softwinner\nanopi-h3\nanopi_h3.mk

## default language setting

#PRODUCT_PROPERTY_OVERRIDES += \

#    persist.sys.timezone=Asia/Shanghai \

#    persist.sys.country=US \

#    persist.sys.language=EN

PRODUCT_PROPERTY_OVERRIDES += \

persist.sys.timezone=Asia/Shanghai \

persist.sys.language=zh \

persist.sys.country=CN

6、无效修改(尝试在底部加入导航条!):

W:\nanopi_h3_bsp\android\frameworks\base\core\res\res\values\config.xml

<!-- Whether a software navigation bar should be shown. NOTE: in the future this may be

autodetected from the Configuration. -->

<bool name="config_showNavigationBar">false</bool>

修改为:

<!-- Whether a software navigation bar should be shown. NOTE: in the future this may be

autodetected from the Configuration. -->

<bool name="config_showNavigationBar">true</bool>

7、AP6212的A0和A1的兼容版本实现:

W:\nanopi_h3_bsp\android\hardware\broadcom\wlan\bcmdhd\firmware\ap6212\device-bcm.mk

#

# Copyright (C) 2008 The Android Open Source Project

#

# Licensed under the Apache License, Version 2.0 (the "License");

# you may not use this file except in compliance with the License.

# You may obtain a copy of the License at

#

#      http://www.apache.org/licenses/LICENSE-2.0

#

# Unless required by applicable law or agreed to in writing, software

# distributed under the License is distributed on an "AS IS" BASIS,

# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

# See the License for the specific language governing permissions and

# limitations under the License.

#

-include hardware/broadcom/wlan/bcmdhd/config/config-bcm.mk

PRODUCT_COPY_FILES += \

hardware/broadcom/wlan/bcmdhd/firmware/ap6212/fw_bcm43438a0.bin:system/vendor/modules/fw_bcm43438a0.bin \

hardware/broadcom/wlan/bcmdhd/firmware/ap6212/fw_bcm43438a0_apsta.bin:system/vendor/modules/fw_bcm43438a0_apsta.bin \

hardware/broadcom/wlan/bcmdhd/firmware/ap6212/fw_bcm43438a0_p2p.bin:system/vendor/modules/fw_bcm43438a0_p2p.bin \

hardware/broadcom/wlan/bcmdhd/firmware/ap6212/fw_bcm43438a1.bin:system/vendor/modules/fw_bcm43438a1.bin \

hardware/broadcom/wlan/bcmdhd/firmware/ap6212/fw_bcm43438a1_apsta.bin:system/vendor/modules/fw_bcm43438a1_apsta.bin \

hardware/broadcom/wlan/bcmdhd/firmware/ap6212/fw_bcm43438a1_p2p.bin:system/vendor/modules/fw_bcm43438a1_p2p \

hardware/broadcom/wlan/bcmdhd/firmware/ap6212/config.txt:system/vendor/modules/config.txt \

hardware/broadcom/wlan/bcmdhd/firmware/ap6212/nvram_ap6212.txt:system/vendor/modules/nvram_ap6212.txt \

hardware/broadcom/wlan/bcmdhd/firmware/ap6212/nvram.txt:system/vendor/modules/nvram.txt \

hardware/broadcom/wlan/bcmdhd/firmware/ap6212/bcm43438a0.hcd:system/vendor/modules/4343a0.hcd \

hardware/broadcom/wlan/bcmdhd/firmware/ap6212/bcm43438a1.hcd:system/vendor/modules/bcm43430a1.hcd

8、(直接使用官方编译生成的.config)

W:\nanopi_h3_bsp\lichee\linux-3.4\.config

9、可选修改:

W:\nanopi_h3_bsp\lichee\tools\pack\chips\sun8iw7p1\configs\default\env.cfg

bootdelay=3

#default bootcmd, will change at runtime according to key press

bootcmd=run setargs_nand boot_normal#default nand boot

#kernel command arguments

console=ttyS0,115200

nand_root=/dev/block/system

mmc_root=/dev/block/mmcblk0p7

init=/init

loglevel=8

mac=

wifi_mac=

bt_mac=

specialstr=

#set kernel cmdline if boot.img or recovery.img has no cmdline we will use this

setargs_nand=setenv bootargs console=${console} root=${nand_root} init=${init} loglevel=${loglevel} vmalloc=384M partitions=${partitions} mac_addr=${mac} wifi_mac=${wifi_mac} bt_mac=${bt_mac} specialstr=${specialstr} serialno=${serialno}

setargs_mmc=setenv bootargs console=${console} root=${mmc_root} init=${init} loglevel=${loglevel} vmalloc=384M partitions=${partitions} mac_addr=${mac} wifi_mac=${wifi_mac} bt_mac=${bt_mac} specialstr=${specialstr} serialno=${serialno}

#nand command syntax: sunxi_flash read address partition_name read_bytes

#0x40007800 = 0x40008000(kernel entry) - 0x800(boot.img header 2k)

boot_normal=fatload mmc 0:2 0x43000000 script.bin;sunxi_flash read 40007800 boot;boota 40007800 boot

boot_recovery=sunxi_flash read 40007800 recovery;boota 40007800 recovery

boot_fastboot=fastboot

#recovery key

recovery_key_value_max=0x13

recovery_key_value_min=0x10

#fastboot key

fastboot_key_value_max=0x8

fastboot_key_value_min=0x2

10、拷贝当前开发板的sys_config.fex(尝试1080p60Hz失败)

兼容版本

W:\nanopi_h3_bsp\lichee\tools\pack\chips\sun8iw7p1\configs\nanopi-h3\board\sys_config_nanopi-air.fex

W:\nanopi_h3_bsp\lichee\tools\pack\chips\sun8iw7p1\configs\nanopi-h3\board\sys_config_nanopi-m1.fex

W:\nanopi_h3_bsp\lichee\tools\pack\chips\sun8iw7p1\configs\nanopi-h3\board\sys_config_nanopi-m1-plus.fex

W:\nanopi_h3_bsp\lichee\tools\pack\chips\sun8iw7p1\configs\nanopi-h3\board\sys_config_nanopi-neo.fex

W:\nanopi_h3_bsp\lichee\tools\pack\chips\sun8iw7p1\configs\nanopi-h3\sys_config.fex

[boot_disp]

advert_disp = 0

auto_hpd = 1

output_type = 4

hdmi_channel = 0

hdmi_mode = 4

cvbs_channel = 1

cvbs_mode = 11

output_full = 1

hdmi_mode_check = 1

[disp_init]

disp_init_enable = 1

disp_mode = 0

screen0_output_type = 3

screen0_output_mode = 5

screen1_output_type = 2

screen1_output_mode = 14

fb0_format = 0

fb0_width = 0

fb0_height = 0

fb1_format = 0

fb1_width = 0

fb1_height = 0

[hdmi_para]

hdmi_used = 1

hdmi_power = "vcc-hdmi-18"

修改为:

;全志A20的屏幕参数:

;-------------------------------------------------------------------------------

;disp init configuration

;

;disp_mode            (0:screen0<screen0,fb0> 1:screen1<screen1,fb0> 2:two_diff_screen_diff_contents<screen0,screen1,fb0,fb1>

;                      3:two_same_screen_diff_contets<screen0,screen1,fb0> 4:two_diff_screen_same_contents<screen0,screen1,fb0>)

;screenx_output_type  (0:none; 1:lcd; 2:tv; 3:hdmi; 4:vga)

;screenx_output_mode  (used for tv/hdmi output, 0:480i 1:576i 2:480p 3:576p 4:720p50 5:720p60 6:1080i50 7:1080i60 8:1080p24 9:1080p50 10:1080p60 11:pal 14:ntsc)

;screenx_output_mode  (used for vga output, 0:1680*1050 1:1440*900 2:1360*768 3:1280*1024 4:1024*768 5:800*600 6:640*480 10:1920*1080 11:1280*720)

;fbx format           (4:RGB655 5:RGB565 6:RGB556 7:ARGB1555 8:RGBA5551 9:RGB888 10:ARGB8888 12:ARGB4444)

;fbx pixel sequence   (0:ARGB 1:BGRA 2:ABGR 3:RGBA) --- 0 for linux, 2 for android

;lcd0_bright          (lcd0 init bright,the range:[0,256],default:197

;lcd1_bright          (lcd1 init bright,the range:[0,256],default:197

;-------------------------------------------------------------------------------

[boot_disp]

advert_disp = 0

auto_hpd = 1

output_type = 4

hdmi_channel = 0

;hdmi_mode = 4

hdmi_mode = 10

cvbs_channel = 1

cvbs_mode = 11

output_full = 1

hdmi_mode_check = 1

[disp_init]

disp_init_enable = 1

disp_mode = 0

screen0_output_type = 3

;screen0_output_mode = 5

screen0_output_mode = 10

screen1_output_type = 3

screen1_output_mode = 10

fb0_format = 0

fb0_width = 0

fb0_height = 0

fb1_format = 0

fb1_width = 0

fb1_height = 0

[hdmi_para]

hdmi_used = 1

hdmi_power = "vcc-hdmi-18"

11、编译链:

W:\nanopi_h3_bsp\lichee\brandy\toolchain

如果没有拷贝编译链就会在编译内核的时候出错:

Building modules, stage 2.

MODPOST 1 modules

WARNING: "drm_release" [/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko] undefined!

WARNING: "drm_sman_free_key" [/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko] undefined!

WARNING: "drm_sman_set_manager" [/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko] undefined!

WARNING: "drm_sman_owner_cleanup" [/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko] undefined!

WARNING: "drm_mmap" [/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko] undefined!

WARNING: "drm_sman_owner_clean" [/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko] undefined!

WARNING: "drm_sman_init" [/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko] undefined!

WARNING: "drm_platform_exit" [/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko] undefined!

WARNING: "drm_platform_init" [/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko] undefined!

WARNING: "drm_err" [/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko] undefined!

WARNING: "drm_ioctl" [/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko] undefined!

WARNING: "drm_sman_alloc" [/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko] undefined!

WARNING: "drm_sman_takedown" [/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko] undefined!

WARNING: "drm_sman_set_range" [/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko] undefined!

WARNING: "drm_ut_debug_printk" [/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko] undefined!

WARNING: "drm_sman_cleanup" [/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko] undefined!

WARNING: "drm_poll" [/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko] undefined!

WARNING: "drm_fasync" [/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko] undefined!

WARNING: "drm_open" [/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko] undefined!

CC      /home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.mod.o

LD [M]  /home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko

make[2]: Leaving directory `/home/wwt/nanopi_h3_bsp/lichee/linux-3.4'

make[1]: Leaving directory `/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali/DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm'

cp DX910-SW-99002-r4p0-00rel0/driver/src/devicedrv/mali/mali.ko /home/wwt/nanopi_h3_bsp/lichee/linux-3.4/output/lib/modules/3.4.39/

cp DX910-SW-99002-r4p0-00rel0/driver/src/egl/x11/drm_module/mali_drm/mali_drm.ko /home/wwt/nanopi_h3_bsp/lichee/linux-3.4/output/lib/modules/3.4.39/

if [ 0 -eq 1 ]; then \

cp DX910-SW-99002-r4p0-00rel0/driver/src/devicedrv/ump/ump.ko /home/wwt/nanopi_h3_bsp/lichee/linux-3.4/output/lib/modules/3.4.39/; \

fi

make: Leaving directory `/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/modules/mali'

regenerate rootfs cpio

9895 blocks

10659 blocks

build_ramfs

Copy boot.img to output directory ...

Copy modules to target ...

sun8iw7p1 compile Kernel successful

INFO: build kernel OK.

INFO: build uboot ...

INFO: prepare toolchain ...

Prepare toolchain ...

tar: ./toolchain/gcc-linaro-arm.tar.xz:无法 open: 没有那个文件或目录

tar: Error is not recoverable: exiting now

Prepare toolchain ...

tar: ./toolchain/gcc-linaro-arm.tar.xz:无法 open: 没有那个文件或目录

tar: Error is not recoverable: exiting now

ERROR: build uboot failed

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/lichee$ ./build.sh config

(三)编译lichee/内核和Android/系统:

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/lichee$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/lichee$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/lichee$ ./build.sh config

Welcome to mkscript setup progress

All available chips:

0. sun8iw6p1

1. sun8iw7p1

2. sun8iw8p1

3. sun9iw1p1

Choice: 1

All available platforms:

0. android

1. dragonboard

2. linux

Choice: 0

All available business:

0. dolphin

1. secure

2. karaok

Choice: 0

LICHEE_BUSINESS=dolphin

using kernel 'linux-3.4':

==================================

INFO: ----------------------------------------

INFO: build lichee ...

INFO: chip: sun8iw7p1

INFO: platform: android

INFO: business: dolphin

INFO: kernel: linux-3.4

INFO: board:

INFO: output: out/sun8iw7p1/android/

INFO: ----------------------------------------

INFO: build kernel ...

INFO: prepare toolchain ...

Prepare toolchain ...

tar: ./toolchain/gcc-linaro-arm.tar.xz:无法 open: 没有那个文件或目录

tar: Error is not recoverable: exiting now

Building kernel

/home/wwt/nanopi_h3_bsp/lichee/linux-3.4/output/lib/modules/3.4.39-h3

HOSTCC  scripts/basic/fixdep

HOSTCC  scripts/kconfig/conf.o

SHIPPED scripts/kconfig/zconf.tab.c

SHIPPED scripts/kconfig/zconf.hash.c

SHIPPED scripts/kconfig/zconf.lex.c

HOSTCC  scripts/kconfig/zconf.tab.o

HOSTLD  scripts/kconfig/conf

scripts/kconfig/conf --silentoldconfig Kconfig

WRAP    arch/arm/include/generated/asm/auxvec.h

WRAP    arch/arm/include/generated/asm/bitsperlong.h

WRAP    arch/arm/include/generated/asm/cputime.h

WRAP    arch/arm/include/generated/asm/emergency-restart.h

CC      /home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/arch/arm/cpu/armv7/sun8iw7/spl/eabi_compat.c ...

make[2]:正在离开目录 `/home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/sunxi_spl/sbrom/spl'

make -C /home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/sunxi_spl/spl/lib/

make[2]: 正在进入目录 `/home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/sunxi_spl/spl/lib'

make[2]: 没有什么可以做的为 `all'。

make[2]:正在离开目录 `/home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/sunxi_spl/spl/lib'

/home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/../toolchain/gcc-arm/bin/arm-linux-gnueabi-gcc -E -g  -Os   -fno-common -ffixed-r8 -msoft-float   -D__KERNEL__ -DCONFIG_SYS_TEXT_BASE="(0x4A000000)" -I/home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/include -I/home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/include/openssl -fno-builtin -ffreestanding -nostdinc -isystem /home/wwt/nanopi_h3_bsp/lichee/brandy/toolchain/gcc-arm/bin/../lib/gcc/arm-linux-gnueabi/4.6.3/include -pipe  -DCONFIG_ARM -D__ARM__ -mfpu=neon -D__NEON_SIMD__ -marm  -mabi=aapcs-linux -mno-thumb-interwork -mcpu=cortex-a7 -include /home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/include/u-boot/u-boot.lds.h -DSBROMSWADDR="(0x480)"  -ansi -D__ASSEMBLY__ -P - </home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/sunxi_spl/sbrom/main/sboot.lds >/home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/sunxi_spl/sbrom/sboot.lds

/home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/../toolchain/gcc-arm/bin/arm-linux-gnueabi-ld /home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/arch/arm/cpu/armv7/sun8iw7/dram/libchipid.o /home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/arch/arm/cpu/armv7/sun8iw7/dram/libdram.o /home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/arch/arm/cpu/armv7/sun8iw7/mmc/libmmc.o /home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/arch/arm/cpu/armv7/sun8iw7/nand/libnand.o /home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/lib/openssl/libopenssl.o /home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/sunxi_spl/sbrom/flash/libflash.o /home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/sunxi_spl/sbrom/libs/libgeneric.o /home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/sunxi_spl/sbrom/load/libload.o /home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/sunxi_spl/sbrom/main/libmain.o /home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/sunxi_spl/sbrom/spl/libsource_spl.o /home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/sunxi_spl/spl/lib/libgeneric.o -L /home/wwt/nanopi_h3_bsp/lichee/brandy/toolchain/gcc-arm/bin/../lib/gcc/arm-linux-gnueabi/4.6.3 -lgcc  -T/home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/sunxi_spl/sbrom/sboot.lds -o sboot.axf -Map sboot.map

/home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/../toolchain/gcc-arm/bin/arm-linux-gnueabi-objcopy --gap-fill=0xff -O binary /home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/sunxi_spl/sbrom/sboot.axf /home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/sunxi_spl/sbrom/sboot.bin

make[1]:正在离开目录 `/home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/sunxi_spl/sbrom'

fatal: Not a git repository (or any parent up to mount point /home/wwt)

Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

build_sboot

"sboot_sun8iw7p1.bin" -> "/home/wwt/nanopi_h3_bsp/lichee/brandy/u-boot-2011.09/../../tools/pack/chips/sun8iw7p1/bin/sboot_sun8iw7p1.bin"

INFO: build uboot ok.

INFO: ----------------------------------------

INFO: build sun8iw7p1 android dolphin lichee OK

INFO: ----------------------------------------

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/lichee$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/lichee$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/lichee$ ll

总用量 36

drwxrwxr-x  4 rootroot rootroot 4096  5月 16  2017 brandy

drwxr-xr-x  3 rootroot rootroot 4096  4月 27  2017 buildroot

-rwxr-xr-x  1 rootroot rootroot   55  1月 16  2017 build.sh

drwxr-xr-x  2 rootroot rootroot 4096  6月  9 10:04 doc

drwxr-xr-x  2 rootroot rootroot 4096  6月  8 18:40 fa_tools

drwxr-xr-x 27 rootroot rootroot 4096 12月  6 15:00 linux-3.4

drwxrwxr-x  3 rootroot rootroot 4096 12月  6 14:52 out

-rw-r--r--  1 rootroot rootroot   66  1月  9  2017 README

drwxrwxr-x  7 rootroot rootroot 4096 12月  6 10:20 tools

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/lichee$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/lichee$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/lichee$ cd ../android/

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/android$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/android$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/android$ source build/envsetup.sh

including device/softwinner/nanopi-h3/vendorsetup.sh

including device/softwinner/eagle-fvd-p1/vendorsetup.sh

including device/softwinner/eagle-fvd-p1-secure/vendorsetup.sh

including device/softwinner/common/vendorsetup.sh

including device/softwinner/dolphin-fvd-p1/vendorsetup.sh

including device/lge/mako/vendorsetup.sh

including device/lge/hammerhead/vendorsetup.sh

including device/samsung/manta/vendorsetup.sh

including device/generic/x86/vendorsetup.sh

including device/generic/mips/vendorsetup.sh

including device/generic/armv7-a-neon/vendorsetup.sh

including device/asus/tilapia/vendorsetup.sh

including device/asus/deb/vendorsetup.sh

including device/asus/grouper/vendorsetup.sh

including device/asus/flo/vendorsetup.sh

including sdk/bash_completion/adb.bash

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/android$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/android$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/android$ lunch

You're building on Linux

Lunch menu... pick a combo:

1. aosp_arm-eng

2. aosp_x86-eng

3. aosp_mips-eng

4. vbox_x86-eng

5. nanopi_h3-eng

6. eagle_fvd_p1-eng

7. eagle_fvd_p1_secure-eng

8. dolphin_fvd_p1-eng

9. aosp_mako-userdebug

10. aosp_hammerhead-userdebug

11. aosp_manta-userdebug

12. mini_x86-userdebug

13. mini_mips-userdebug

14. mini_armv7a_neon-userdebug

15. aosp_tilapia-userdebug

16. aosp_deb-userdebug

17. aosp_grouper-userdebug

18. aosp_flo-userdebug

Which would you like? [aosp_arm-eng] 5

============================================

PLATFORM_VERSION_CODENAME=REL

PLATFORM_VERSION=4.4.2

TARGET_PRODUCT=nanopi_h3

TARGET_BUILD_VARIANT=eng

TARGET_BUILD_TYPE=release

TARGET_BUILD_APPS=

TARGET_ARCH=arm

TARGET_ARCH_VARIANT=armv7-a-neon

TARGET_CPU_VARIANT=cortex-a7

HOST_ARCH=x86

HOST_OS=linux

HOST_OS_EXTRA=Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty

HOST_BUILD_TYPE=release

BUILD_ID=KOT49H

OUT_DIR=out

============================================

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/android$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/android$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/android$ extract-bsp

/home/wwt/nanopi_h3_bsp/android/device/*/nanopi-h3/bImage copied!

/home/wwt/nanopi_h3_bsp/android/device/*/nanopi-h3/modules copied!

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/android$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/android$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/android$ make -j12

aapt: warning: **** string 'widget_unread' has no default or required localization for 'az_AZ' in packages/apps/Email/../../../frameworks/support/v7/gridlayout/res

aapt: warning: **** string 'widget_unread' has no default or required localization for 'normal' in packages/apps/Email/../../../frameworks/support/v7/gridlayout/res

aapt: warning: **** string 'widget_unread' has no default or required localization for 'hdpi' in packages/apps/Email/../../../frameworks/support/v7/gridlayout/res

aapt: warning: **** string 'widget_unread' has no default or required localization for 'xhdpi' in packages/apps/Email/../../../frameworks/support/v7/gridlayout/res

aapt: warning: **** string 'widget_unread' has no default or required localization for 'xxhdpi' in packages/apps/Email/../../../frameworks/support/v7/gridlayout/res

aapt: warning: **** string 'widget_unread' has no default or required localization for 'nodpi' in packages/apps/Email/../../../frameworks/support/v7/gridlayout/res

Warning: AndroidManifest.xml already defines versionCode (in http://schemas.android.com/apk/res/android); using existing value in manifest.

Warning: AndroidManifest.xml already defines minSdkVersion (in http://schemas.android.com/apk/res/android); using existing value in manifest.

Warning: AndroidManifest.xml already defines targetSdkVersion (in http://schemas.android.com/apk/res/android); using existing value in manifest.

target Strip: libwebviewchromium (out/target/product/nanopi-h3/obj/lib/libwebviewchromium.so)

Install: out/target/product/nanopi-h3/system/lib/libwebviewchromium.so

Install: out/target/product/nanopi-h3/system/framework/webviewchromium.jar

Install: out/target/product/nanopi-h3/fake_packages/webview-timestamp

Install: out/target/product/nanopi-h3/system/app/Email.apk

get/product/nanopi-h3/obj/NOTICE_FILES/src

Combining NOTICE files into HTML

Combining NOTICE files into text

Installed file list: out/target/product/nanopi-h3/installed-files.txt

Target system fs image: out/target/product/nanopi-h3/obj/PACKAGING/systemimage_intermediates/system.img

ts

/bin:/opt/jdk1.6.0_45/jre/bin'

t/jdk1.6.0_45/jre/bin

+ ENABLE_SPARSE_IMAGE=

+ '[' -s = -s ']'

+ ENABLE_SPARSE_IMAGE=-s

+ shift

+ '[' 6 -ne 5 -a 6 -ne 6 ']'

+ SRC_DIR=out/target/product/nanopi-h3/system

+ '[' '!' -d out/target/product/nanopi-h3/system ']'

+ OUTPUT_FILE=out/target/product/nanopi-h3/obj/PACKAGING/systemimage_intermediates/system.img

+ EXT_VARIANT=ext4

+ MOUNT_POINT=system

+ SIZE=805306368

+ FC=out/target/product/nanopi-h3/root/file_contexts

+ case $EXT_VARIANT in

+ '[' -z system ']'

+ '[' -z 805306368 ']'

+ '[' -n out/target/product/nanopi-h3/root/file_contexts ']'

+ FCOPT='-S out/target/product/nanopi-h3/root/file_contexts'

nopi-h3/system'

em

make_ext4fs -s -S out/target/product/nanopi-h3/root/file_contexts -l 805306368 -a system out/target/product/nanopi-h3/obj/PACKAGING/systemimage_intermediates/system.img out/target/product/nanopi-h3/system

+ make_ext4fs -s -S out/target/product/nanopi-h3/root/file_contexts -l 805306368 -a system out/target/product/nanopi-h3/obj/PACKAGING/systemimage_intermediates/system.img out/target/product/nanopi-h3/system

Creating filesystem with parameters:

Size: 805306368

Block size: 4096

Blocks per group: 32768

Inodes per group: 8192

Inode size: 256

Journal blocks: 3072

Label:

Blocks: 196608

Block groups: 6

Reserved block group size: 47

Created filesystem with 1403/49152 inodes and 84282/196608 blocks

+ '[' 0 -ne 0 ']'

Install system fs image: out/target/product/nanopi-h3/system.img

out/target/product/nanopi-h3/system.img+out/target/product/nanopi-h3/obj/PACKAGING/recovery_patch_intermediates/recovery_from_boot.p maxsize=822163584 blocksize=4224 total=335045504 reserve=8308608

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/android$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/android$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/android$ pack

============================================

chip       = sun8iw7p1

platform   = android

board      = nanopi-h3

debug      = uart0

mode       = normal

function   = none

sigmode    = none

============================================

copying tools file

copying configs file

copying boot resource

copying boot file

"sys_config.bin" -> "script.bin"

packing for android

normal

/home/wwt/nanopi_h3_bsp/lichee/tools/pack/pctools/linux/eDragonEx/

/home/wwt/nanopi_h3_bsp/lichee/tools/pack/out

Begin Parse sys_partion.fex

Add partion bootloader.fex BOOTLOADER_FEX00

Add partion very bootloader.fex BOOTLOADER_FEX00

FilePath: bootloader.fex

FileLength=5b4400Add partion env.fex ENV_FEX000000000

Add partion very env.fex ENV_FEX000000000

FilePath: env.fex

FileLength=20000Add partion boot.fex BOOT_FEX00000000

Add partion very boot.fex BOOT_FEX00000000

FilePath: boot.fex

FileLength=b81800Add partion system.fex SYSTEM_FEX000000

Add partion very system.fex SYSTEM_FEX000000

FilePath: system.fex

FileLength=13eb0f58Add partion recovery.fex RECOVERY_FEX0000

Add partion very recovery.fex RECOVERY_FEX0000

FilePath: recovery.fex

FileLength=c64800Add partion sysrecovery.fex SYSRECOVERY_FEX0

Add partion diskfs.fex DISKFS_FEX000000

sys_config.fex Len: 0x5a47

config.fex Len: 0x8998

split_xxxx.fex Len: 0x200

sys_partition.fex Len: 0x117a

boot0_nand.fex Len: 0x8000

boot0_sdcard.fex Len: 0x8000

u-boot.fex Len: 0xe4000

fes1.fex Len: 0x31e0

toc1.fex Len: 0x8

toc0.fex Len: 0x8

usbtool.fex Len: 0x23000

aultools.fex Len: 0x26ead

aultls32.fex Len: 0x238dd

cardtool.fex Len: 0x14000

cardscript.fex Len: 0x6ea

sunxi_mbr.fex Len: 0x10000

dlinfo.fex Len: 0x4000

arisc.fex Len: 0x217aa

bootloader.fex Len: 0x5b4400

Vbootloader.fex Len: 0x4

env.fex Len: 0x20000

Venv.fex Len: 0x4

boot.fex Len: 0xb81800

Vboot.fex Len: 0x4

system.fex Len: 0x13eb0f58

Vsystem.fex Len: 0x4

recovery.fex Len: 0xc64800

Vrecovery.fex Len: 0x4

sysrecovery.fex Len: 0xb

diskfs.fex Len: 0x200

BuildImg 0

Dragon execute image.cfg SUCCESS !

cat: ../../../.config: 没有那个文件或目录

----------image is at----------

/home/wwt/nanopi_h3_bsp/lichee/tools/pack/sun8iw7p1_android__uart0.img

pack finish

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/android$

rootroot@cm-System-Product-Name:/home/wwt/nanopi_h3_bsp/android$

现在就可以直接使用PhoenixSuit V1.10刷机了!

01默认中文启动界面360手机助手截图1206_16_06_01.png

02默认应用界面360手机助手截图1206_16_07_01.jpg

转载于:https://www.cnblogs.com/wb4916/p/7997628.html

02使用常规步骤编译NanoPiM1Plus的Android4.4.2相关推荐

  1. 监督分类与非监督分类的常规步骤

    序言 也许我会迟到,但我不会缺席 正文 监督与非监督分类的常规步骤如下: 1.识别输入波段 2.创建类或聚类 可使用一下工具: 创建特征.iso聚类或"提取分析"工具集中的采样 3 ...

  2. Linux下C语言程序编写及执行和分步骤编译链接C源代码

    实验一:Linux下C语言程序编写及执行 //hello.c #include <stdio.h> int main(){int x = 1;int y = 2;int sum = x + ...

  3. vr全景拍的常规步骤,3dvr全景制作所要用到哪些软件

    vr全景拍摄已经成了我们很多企业在宣传时所需要用到的必不可少的拍摄手段.应用最多的,如:vr看房.vr择校.vr企业宣传等等.现在vr现实虚拟技术又和3d技术结合在一起,如:酷雷曼3DVR全景营销系统 ...

  4. android icu4c 7.1编译报错,android4.0编译系统时候遇到的错误集

    1.Android library 'XXX.so' not in prelink map 错误解决 在编译自己的Android library时可能会出现 library 'XXX.so' not ...

  5. c语言编译配置文件出错,Android4.4/CM11编译常见错误及解决方法!

    Android4.4/CM11编译常见错误及解决方法! 前言:关于Android4.4/CM11编译中遇到的一些错误,本人进行了整理.有需要的童鞋可以做个参考,如果有什么建议也欢迎指出! 问题1: 编 ...

  6. ubuntu -- 常规操作 编译、删除

    Ubuntu – 常规操作 一.gcc的编译 命令: sudo su 转换成超级用户 (暂时没用过) vi + 文件名: vi hello.c 打开文件.编译 (右键粘贴代码) 按i :insert进 ...

  7. gcc编译c语言多线程程序的步骤,GCC分步骤编译C语言程序

    上节<GCC编译C语言程序完整演示>讲解的是通过gcc命令一次性完成编译和链接的整个过程,这样最方便,大家在学习C语言的过程中一般都这么做.实际上,gcc命令也可以将编译和链接分开,每次只 ...

  8. armgcc交叉编译的文件无法运行_从0开始搭建基于ARM GCC的软件系统02——使用ARM GCC编译SDK

    本文以STM32L4VGT6为例,因为手上只有这么一块开发板.其它IC处理方法应该类似. 一.准备工作 1.打开官网https://www.st.com/content/st_com/en.html, ...

  9. 第33篇:DNS劫持攻击原理讲解及溯源分析的常规步骤

     Part1 前言  在世界杯举办期间,DNS劫持事件估计会和链路劫持事件一样,风险提升很多.上期分享了一篇<第32篇:某运营商链路劫持(被挂博彩页)溯源异常路由节点(上篇)>,本期就讲一 ...

最新文章

  1. Flask-RESTful之视图
  2. 不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”,刷新DARPA比赛成绩...
  3. python self
  4. 我慌了,纠删码是什么?我被面试官问蒙了
  5. Spring入门介绍:
  6. Linux信号列表(非实时信号和实时信号)
  7. 03 | 高可用保证:Nacos 如何有效构建注册中心集群
  8. java多线程必杀技_Java技术大牛必备25个必杀技你都知道吗
  9. 不能使用缺陷数据作为绩效度量
  10. Java I/O流InputStream,OutputStream,Reader,Writer
  11. Python中的闭包与装饰器及工厂模式
  12. 《数学建模:基于R》——1.1 数据的描述性分析
  13. Linux 添加环境变量
  14. html真实雾效果图,HTML5 Canvas图片上云雾弥漫驱散特效
  15. python随机生成一个地区地址_利用Python生成随机的IP地址
  16. 分享小知识:善用Group By排序
  17. AssetBundle资源冗余检测
  18. ESP8285与ESP8266的差异
  19. linux服务源码安装ruby
  20. 计算机文献检索的步骤实例,数据库检索方法与技巧(上)

热门文章

  1. Python基础入门_2基础语法和变量类型
  2. TensorFlow 加载多个模型的方法
  3. python爬取酷狗音乐top500_Python爬取酷狗Top500的歌曲!够你吹个小牛皮了吧!
  4. 手机恢复出厂设置命令_擦除数据/恢复出厂设置通过ADB
  5. iOS之本地推送通知使用介绍
  6. 【零基础学习iOS开发】【02-C语言】05-进制
  7. LetCode-MSSQL查找重复的电子邮箱
  8. 乘法最快的算法计算机,人类史上最快乘法算法诞生
  9. DBeaver连接达梦|虚谷|人大金仓等国产数据库
  10. Android 全局悬浮按钮,悬浮按钮点击事件