更新历史
20190613,15:34,v2.0
修正几处错别字;
修改一些描述。
20151217,11:05,v1.0
初稿,略
前言
比较简单,仅记录。
我工作的SDK来源于AllWinner的A20裁剪code,这个SDK源自android,但是全志把上面的java/jvm部分裁剪了——从代码来看,除了lichee外,没有android文件夹,取代的是camlinux——对3g开发来说,没区别。
一,内核配置参考
3g模块移植很顺利,对照着官方文档,make menuconfig进行,选好选项,增加VID,PID就OK了。
这里不贴图了,只把内核的.config参考配置贴出来吧:
$ VIM荔枝/ Linux的3.4 /的.config
#
#自动生成的文件; 不要编辑。
#的Linux / ARM 3.4.39内核配置
#
CONFIG_ARM = Y
CONFIG_SYS_SUPPORTS_APM_EMULATION = Y
CONFIG_GENERIC_GPIO = Y
#CONFIG_ARCH_USES_GETTIMEOFFSET未设置
CONFIG_GENERIC_CLOCKEVENTS = Y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST = Y
CONFIG_KTIME_SCALAR = Y
CONFIG_HAVE_PROC_CPU = Y
CONFIG_STACKTRACE_SUPPORT = Y
CONFIG_LOCKDEP_SUPPORT = Y
CONFIG_TRACE_IRQFLAGS_SUPPORT = Y
CONFIG_HARDIRQS_SW_RESEND = Y
CONFIG_GENERIC_IRQ_PROBE = Y
CONFIG_GENERIC_LOCKBREAK = Y
CONFIG_RWSEM_GENERIC_SPINLOCK = Y
CONFIG_ARCH_HAS_CPUFREQ = Y
CONFIG_ARCH_HAS_CPU_IDLE_WAIT = Y
CONFIG_GENERIC_HWEIGHT = Y
CONFIG_GENERIC_CALIBRATE_DELAY = Y
CONFIG_NEED_DMA_MAP_STATE = Y
CONFIG_VECTORS_BASE =为0xffff0000
CONFIG_ARM_PATCH_PHYS_VIRT = Y
CONFIG_NEED_MACH_IO_H = Y
CONFIG_NEED_MACH_MEMORY_H = Y
CONFIG_GENERIC_BUG = Y
CONFIG_DEFCONFIG_LIST =“/ lib目录/模块/ $ UNAME_RELEASE /的.config”
CONFIG_HAVE_IRQ_WORK = Y
#
#常规设置
#
CONFIG_EXPERIMENTAL = Y
CONFIG_INIT_ENV_ARG_LIMIT = 32
CONFIG_CROSS_COMPILE =“”
CONFIG_LOCALVERSION =“”
#CONFIG_LOCALVERSION_AUTO未设置
CONFIG_HAVE_KERNEL_GZIP = Y
CONFIG_HAVE_KERNEL_LZMA = Y
CONFIG_HAVE_KERNEL_XZ = Y
CONFIG_HAVE_KERNEL_LZO = Y
CONFIG_KERNEL_GZIP = Y
#CONFIG_KERNEL_LZMA未设置
#CONFIG_KERNEL_XZ未设置
#CONFIG_KERNEL_LZO未设置
CONFIG_DEFAULT_HOSTNAME =“(无)”
#CONFIG_SWAP未设置
CONFIG_SYSVIPC = Y
CONFIG_SYSVIPC_SYSCTL = Y
#CONFIG_POSIX_MQUEUE未设置
#CONFIG_BSD_PROCESS_ACCT未设置
#CONFIG_FHANDLE未设置
#CONFIG_TASKSTATS未设置
#CONFIG_AUDIT未设置
CONFIG_HAVE_GENERIC_HARDIRQS = Y
#
#IRQ子系统
#
CONFIG_GENERIC_HARDIRQS = Y
CONFIG_GENERIC_IRQ_SHOW = Y
CONFIG_IRQ_DOMAIN = Y
#CONFIG_IRQ_DOMAIN_DEBUG未设置
#
#RCU子系统
#
CONFIG_TREE_PREEMPT_RCU = Y
CONFIG_PREEMPT_RCU = Y
CONFIG_RCU_FANOUT = 32
#CONFIG_RCU_FANOUT_EXACT未设置
#CONFIG_RCU_FAST_NO_HZ未设置
#CONFIG_TREE_RCU_TRACE未设置
#CONFIG_RCU_BOOST未设置
CONFIG_IKCONFIG = Y
CONFIG_IKCONFIG_PROC = Y
CONFIG_LOG_BUF_SHIFT = 16
#CONFIG_CGROUPS未设置
#CONFIG_CHECKPOINT_RESTORE未设置
CONFIG_NAMESPACES = Y
CONFIG_UTS_NS = Y
CONFIG_IPC_NS = Y
CONFIG_USER_NS = Y
CONFIG_PID_NS = Y
#CONFIG_NET_NS未设置
#CONFIG_SCHED_AUTOGROUP未设置
#CONFIG_SYSFS_DEPRECATED未设置
CONFIG_RELAY = Y
CONFIG_BLK_DEV_INITRD = Y
CONFIG_INITRAMFS_SOURCE =“”
CONFIG_RD_GZIP = Y
CONFIG_RD_BZIP2 = Y
CONFIG_RD_LZMA = Y
CONFIG_RD_XZ = Y
CONFIG_RD_LZO = Y
CONFIG_CC_OPTIMIZE_FOR_SIZE = Y
CONFIG_SYSCTL = Y
CONFIG_ANON_INODES = Y
CONFIG_PANIC_TIMEOUT = 0
#CONFIG_EXPERT未设置
CONFIG_UID16 = Y
#CONFIG_SYSCTL_SYSCALL未设置
CONFIG_KALLSYMS = Y
#CONFIG_KALLSYMS_ALL未设置
CONFIG_HOTPLUG = Y
CONFIG_PRINTK = Y
CONFIG_BUG = Y
CONFIG_ELF_CORE = Y
CONFIG_BASE_FULL = Y
CONFIG_FUTEX = Y
CONFIG_EPOLL = Y
CONFIG_SIGNALFD = Y
CONFIG_TIMERFD = Y
CONFIG_EVENTFD = Y
CONFIG_SHMEM = Y
CONFIG_AIO = Y
#CONFIG_EMBEDDED未设置
CONFIG_HAVE_PERF_EVENTS = Y
CONFIG_PERF_USE_VMALLOC = Y
#
#内核性能事件计数器
#
#CONFIG_PERF_EVENTS未设置
#CONFIG_PERF_COUNTERS未设置
CONFIG_VM_EVENT_COUNTERS = Y
CONFIG_COMPAT_BRK = Y
CONFIG_SLAB = Y
#CONFIG_SLUB未设置
#CONFIG_PROFILING未设置
CONFIG_HAVE_OPROFILE = Y
#CONFIG_KPROBES未设置
#CONFIG_JUMP_LABEL未设置
CONFIG_HAVE_KPROBES = Y
CONFIG_HAVE_KRETPROBES = Y
CONFIG_USE_GENERIC_SMP_HELPERS = Y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API = Y
CONFIG_HAVE_CLK = Y
CONFIG_HAVE_DMA_API_DEBUG = Y
CONFIG_HAVE_ARCH_JUMP_LABEL = Y
#
#gcov的基础内核分析
#
#CONFIG_GCOV_KERNEL未设置
CONFIG_HAVE_GENERIC_DMA_COHERENT = Y
CONFIG_SLABINFO = Y
CONFIG_RT_MUTEXES = Y
CONFIG_BASE_SMALL = 0
CONFIG_MODULES = Y
CONFIG_MODULE_FORCE_LOAD = Y
CONFIG_MODULE_UNLOAD = Y
CONFIG_MODULE_FORCE_UNLOAD = Y
CONFIG_MODVERSIONS = Y
CONFIG_MODULE_SRCVERSION_ALL = Y
CONFIG_STOP_MACHINE = Y
config_block中= Y
#CONFIG_LBDAF未设置
CONFIG_BLK_DEV_BSG = Y
#CONFIG_BLK_DEV_BSGLIB未设置
#CONFIG_BLK_DEV_INTEGRITY未设置
#
#分区类型
#
#CONFIG_PARTITION_ADVANCED未设置
CONFIG_MSDOS_PARTITION = Y
#
#IO调度
#
CONFIG_IOSCHED_NOOP = Y
CONFIG_IOSCHED_DEADLINE = Y
CONFIG_IOSCHED_CFQ = Y
CONFIG_DEFAULT_DEADLINE = Y
#CONFIG_DEFAULT_CFQ未设置
#CONFIG_DEFAULT_NOOP未设置
CONFIG_DEFAULT_IOSCHED =“大限”
#CONFIG_INLINE_SPIN_TRYLOCK未设置
#CONFIG_INLINE_SPIN_TRYLOCK_BH未设置
#CONFIG_INLINE_SPIN_LOCK未设置
#CONFIG_INLINE_SPIN_LOCK_BH未设置
#CONFIG_INLINE_SPIN_LOCK_IRQ未设置
#CONFIG_INLINE_SPIN_LOCK_IRQSAVE未设置
CONFIG_UNINLINE_SPIN_UNLOCK = Y
#CONFIG_INLINE_SPIN_UNLOCK_BH未设置
#CONFIG_INLINE_SPIN_UNLOCK_IRQ未设置
#CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE未设置
#CONFIG_INLINE_READ_TRYLOCK未设置
#CONFIG_INLINE_READ_LOCK未设置
#CONFIG_INLINE_READ_LOCK_BH未设置
#CONFIG_INLINE_READ_LOCK_IRQ未设置
#CONFIG_INLINE_READ_LOCK_IRQSAVE未设置
#CONFIG_INLINE_READ_UNLOCK未设置
#CONFIG_INLINE_READ_UNLOCK_BH未设置
#CONFIG_INLINE_READ_UNLOCK_IRQ未设置
#CONFIG_INLINE_READ_UNLOCK_IRQRESTORE未设置
#CONFIG_INLINE_WRITE_TRYLOCK未设置
#CONFIG_INLINE_WRITE_LOCK未设置
#CONFIG_INLINE_WRITE_LOCK_BH未设置
#CONFIG_INLINE_WRITE_LOCK_IRQ未设置
#CONFIG_INLINE_WRITE_LOCK_IRQSAVE未设置
#CONFIG_INLINE_WRITE_UNLOCK未设置
#CONFIG_INLINE_WRITE_UNLOCK_BH未设置
#CONFIG_INLINE_WRITE_UNLOCK_IRQ未设置
#CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE未设置
CONFIG_MUTEX_SPIN_ON_OWNER = Y
CONFIG_FREEZER = Y
#
#系统类型
#
CONFIG_MMU = Y
#CONFIG_ARCH_INTEGRATOR未设置
#CONFIG_ARCH_REALVIEW未设置
CONFIG_ARCH_SUN7I = Y
#CONFIG_ARCH_VERSATILE未设置
#CONFIG_ARCH_VEXPRESS未设置
#CONFIG_ARCH_AT91未设置
#CONFIG_ARCH_BCMRING未设置
#CONFIG_ARCH_HIGHBANK未设置
#CONFIG_ARCH_CLPS711X未设置
#CONFIG_ARCH_CNS3XXX未设置
#CONFIG_ARCH_GEMINI未设置
#CONFIG_ARCH_PRIMA2未设置
#CONFIG_ARCH_EBSA110未设置
#CONFIG_ARCH_EP93XX未设置
#CONFIG_ARCH_FOOTBRIDGE未设置
#CONFIG_ARCH_MXC未设置
#CONFIG_ARCH_MXS未设置
#CONFIG_ARCH_NETX未设置
#CONFIG_ARCH_H720X未设置
#CONFIG_ARCH_IOP13XX未设置
#CONFIG_ARCH_IOP32X未设置
#CONFIG_ARCH_IOP33X未设置
#CONFIG_ARCH_IXP23XX未设置
#CONFIG_ARCH_IXP2000未设置
#CONFIG_ARCH_IXP4XX未设置
#CONFIG_ARCH_DOVE未设置
#CONFIG_ARCH_KIRKWOOD未设置
#CONFIG_ARCH_LPC32XX未设置
#CONFIG_ARCH_MV78XX0未设置
#CONFIG_ARCH_ORION5X未设置
#CONFIG_ARCH_MMP未设置
#CONFIG_ARCH_KS8695未设置
#CONFIG_ARCH_W90X900未设置
#CONFIG_ARCH_TEGRA未设置
#CONFIG_ARCH_PICOXCELL未设置
#CONFIG_ARCH_PNX4008未设置
#CONFIG_ARCH_PXA未设置
#CONFIG_ARCH_MSM未设置
#CONFIG_ARCH_SHMOBILE未设置
#CONFIG_ARCH_RPC未设置
#CONFIG_ARCH_SA1100未设置
#CONFIG_ARCH_S3C24XX未设置
#CONFIG_ARCH_S3C64XX未设置
#CONFIG_ARCH_S5P64X0未设置
#CONFIG_ARCH_S5PC100未设置
#CONFIG_ARCH_S5PV210未设置
#CONFIG_ARCH_EXYNOS未设置
#CONFIG_ARCH_SHARK未设置
#CONFIG_ARCH_U300未设置
#CONFIG_ARCH_U8500未设置
#CONFIG_ARCH_NOMADIK未设置
#CONFIG_ARCH_DAVINCI未设置
#CONFIG_ARCH_OMAP未设置
#CONFIG_PLAT_SPEAR未设置
#CONFIG_ARCH_VT8500未设置
#CONFIG_ARCH_ZYNQ未设置
#CONFIG_GPIO_PCA953X未设置
#CONFIG_KEYBOARD_GPIO_POLLED未设置
#
#系统MMU
#
#
#全志平台类型
#
#CONFIG_AW_FPGA_PLATFORM未设置
CONFIG_AW_ASIC_PLATFORM = Y
CONFIG_SW_POWERNOW = Y
#CONFIG_SW_DRAM_FREQ未设置
#
#处理器类型
#
CONFIG_CPU_V7 = Y
CONFIG_CPU_32v6K = Y
CONFIG_CPU_32v7 = Y
CONFIG_CPU_ABRT_EV7 = Y
CONFIG_CPU_PABRT_V7 = Y
CONFIG_CPU_CACHE_V7 = Y
CONFIG_CPU_CACHE_VIPT = Y
CONFIG_CPU_COPY_V6 = Y
CONFIG_CPU_TLB_V7 = Y
CONFIG_CPU_HAS_ASID = Y
CONFIG_CPU_CP15 = Y
CONFIG_CPU_CP15_MMU = Y
#
#处理器特性
#
#CONFIG_ARM_LPAE未设置
#CONFIG_ARCH_PHYS_ADDR_T_64BIT未设置
CONFIG_ARM_THUMB = Y
CONFIG_ARM_THUMBEE = Y
CONFIG_SWP_EMULATE = Y
#CONFIG_CPU_ICACHE_DISABLE未设置
#CONFIG_CPU_DCACHE_DISABLE未设置
#CONFIG_CPU_BPREDICT_DISABLE未设置
CONFIG_MIGHT_HAVE_CACHE_L2X0 = Y
#CONFIG_CACHE_L2X0未设置
CONFIG_ARM_L1_CACHE_SHIFT_6 = Y
CONFIG_ARM_L1_CACHE_SHIFT = 6
CONFIG_ARM_DMA_MEM_BUFFERABLE = Y
CONFIG_ARCH_HAS_BARRIERS = Y
CONFIG_ARM_NR_BANKS = 8
CONFIG_CPU_HAS_PMU = Y
CONFIG_MULTI_IRQ_HANDLER = Y
#CONFIG_ARM_ERRATA_430973未设置
#CONFIG_ARM_ERRATA_458693未设置
#CONFIG_ARM_ERRATA_460075未设置
#CONFIG_ARM_ERRATA_742230未设置
#CONFIG_ARM_ERRATA_742231未设置
#CONFIG_ARM_ERRATA_720789未设置
#CONFIG_ARM_ERRATA_743622未设置
#CONFIG_ARM_ERRATA_751472未设置
#CONFIG_ARM_ERRATA_754322未设置
#CONFIG_ARM_ERRATA_754327未设置
#CONFIG_ARM_ERRATA_764369未设置
#CONFIG_ARM_ERRATA_775420未设置
CONFIG_ARM_GIC = Y
#CONFIG_FIQ_DEBUGGER未设置
#
#总线支持
#
CONFIG_ARM_AMBA = Y
#CONFIG_PCI_SYSCALL未设置
#CONFIG_ARCH_SUPPORTS_MSI未设置
#CONFIG_PCCARD未设置
#
#内核特性
#
CONFIG_TICK_ONESHOT = Y
CONFIG_NO_HZ = Y
CONFIG_HIGH_RES_TIMERS = Y
CONFIG_GENERIC_CLOCKEVENTS_BUILD = Y
CONFIG_HAVE_SMP = Y
CONFIG_SMP = Y
CONFIG_SMP_ON_UP = Y
CONFIG_ARM_CPU_TOPOLOGY = Y
CONFIG_SCHED_MC = Y
CONFIG_SCHED_SMT = Y
CONFIG_HAVE_ARM_SCU = Y
CONFIG_ARM_ARCH_TIMER = Y
CONFIG_HAVE_ARM_TWD = Y
CONFIG_AW_TIME_DELAY = Y
CONFIG_VMSPLIT_3G = Y
#CONFIG_VMSPLIT_2G未设置
#CONFIG_VMSPLIT_1G未设置
CONFIG_PAGE_OFFSET = 0xC0000000的
CONFIG_NR_CPUS = 2
CONFIG_HOTPLUG_CPU = Y
CONFIG_LOCAL_TIMERS = Y
CONFIG_ARCH_NR_GPIO = 0
#CONFIG_PREEMPT_NONE未设置
#CONFIG_PREEMPT_VOLUNTARY未设置
CONFIG_PREEMPT = Y
CONFIG_PREEMPT_COUNT = Y
CONFIG_HZ = 100
#CONFIG_THUMB2_KERNEL未设置
CONFIG_AEABI = Y
CONFIG_OABI_COMPAT = Y
#CONFIG_ARCH_SPARSEMEM_DEFAULT未设置
#CONFIG_ARCH_SELECT_MEMORY_MODEL未设置
CONFIG_HAVE_ARCH_PFN_VALID = Y
#CONFIG_HIGHMEM未设置
CONFIG_SELECT_MEMORY_MODEL = Y
CONFIG_FLATMEM_MANUAL = Y
CONFIG_FLATMEM = Y
CONFIG_FLAT_NODE_MEM_MAP = Y
CONFIG_HAVE_MEMBLOCK = Y
CONFIG_PAGEFLAGS_EXTENDED = Y
CONFIG_SPLIT_PTLOCK_CPUS = 4
#CONFIG_COMPACTION未设置
#CONFIG_PHYS_ADDR_T_64BIT未设置
CONFIG_ZONE_DMA_FLAG = 0
CONFIG_VIRT_TO_BUS = Y
#CONFIG_KSM未设置
CONFIG_DEFAULT_MMAP_MIN_ADDR = 4096
#CONFIG_CLEANCACHE未设置
CONFIG_FORCE_MAX_ZONEORDER = 11
CONFIG_ALIGNMENT_TRAP = Y
#CONFIG_UACCESS_WITH_MEMCPY未设置
#CONFIG_SECCOMP未设置
#CONFIG_CC_STACKPROTECTOR未设置
#CONFIG_DEPRECATED_PARAM_STRUCT未设置
CONFIG_ARM_FLUSH_CONSOLE_ON_RESTART = Y
#
#启动选项
#
#CONFIG_USE_OF未设置
CONFIG_ZBOOT_ROM_TEXT =为0x0
CONFIG_ZBOOT_ROM_BSS =为0x0
CONFIG_CMDLINE =“earlyprintk = ttyS0,115200日志级别= 7 initcall_debug = 0控制台= ttyS0,115200 RAMFS”
CONFIG_CMDLINE_FROM_BOOTLOADER = Y
#CONFIG_CMDLINE_EXTEND未设置
#CONFIG_CMDLINE_FORCE未设置
#CONFIG_XIP_KERNEL未设置
#CONFIG_KEXEC未设置
#CONFIG_CRASH_DUMP未设置
#CONFIG_AUTO_ZRELADDR未设置
#
#CPU电源管理
#
#
#CPU频率调节
#
CONFIG_CPU_FREQ = Y
CONFIG_CPU_FREQ_TABLE = Y
CONFIG_CPU_FREQ_STAT = Y
CONFIG_CPU_FREQ_STAT_DETAILS = Y
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE = Y
#CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE未设置
#CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND未设置
#CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE未设置
#CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE未设置
#CONFIG_CPU_FREQ_DEFAULT_GOV_FANTASY未设置
CONFIG_CPU_FREQ_GOV_PERFORMANCE = Y
CONFIG_CPU_FREQ_GOV_POWERSAVE = Y
CONFIG_CPU_FREQ_GOV_USERSPACE = Y
CONFIG_CPU_FREQ_GOV_ONDEMAND = Y
#CONFIG_CPU_FREQ_GOV_INTERACTIVE未设置
&#x