Archive

Posts Tagged ‘ubuntu’

Linux (Enlightenment and Lubuntu) in WeTek Play Amlogic TV Box

August 24th, 2014 21 comments

Last week I reviewed WeTek Play, a TV box with two DVB-S2 tuners, powered by Amlogic AML8726-MX dual core ARM Cortex A9 processor, and running Android 4.2, but the company also released several Linux based images including one with Enlightenment window manager, and another, temporary one, with Ubuntu core which allows you to install Lubuntu or Xubuntu with apt-get. There are also working on OpenELEC, but have not released the binary yet. Today, I’ll try the Enlightenment image because it also supports hardware video decoding via Gplay (gstreamer), and show how to install Lubuntu.

The instructions below have been done in a computer running Ubuntu 14.04, but a Windows computer can also be used.

  1. Download Wetek-Linux.img.bz2
  2. Connect a micro SD card to your computer, extract and flash Wetek-Linux.img:
    • In Linux using a terminal window:
      bzip2 -d Wetek-LInux.img.bz2
      sudo dd if=Wetek-Linux.img of=/dev/sdd bs=1M
      sync
    • In Windows, extract the image, and use Win32DiskImager to copy the image to your micro SD card
  3. Now insert the micro SD card into Wetek Play, and start the device.
  4. Linux should boot and run Enlightenment
Enlightenment in Wetek Play (Click for Original Size)

Enlightenment in Wetek Play (Click for Original Size)

For some reasons, the USB mouse and keyboard I connected where powered on, but no recognized / usable by the system, so instead I used the air mouse provided with the box. This is a minimal image with a rootfs built with buildroot, using busybox, and Enlightenment window manager. There are just three main applications in the menu: Mplayer, Enlightenment File Manager and Xterm. You also have more settings options.

Since I had no keyboard input, I connected the provided serial cable to the RS-232 port (barrel) on Wetek Play to my PC via an RS-232 to USB adapter, setup minicom to connect to /dev/ttyUSB0 with 115800 8N1 parameter, and I could access the serial console. For some reason all keyboard keys are repeated, so “ls -l” actually looks like “llss –ll”, but it works anyway. Pressing the Tab key may get rid off the duplicate characters.

I’ve run some commands to check the available storage space and memory.

# df  -h
Filesystem                Size      Used Available Use% Mounted on
/dev/mmcblk0p2            1.8G    334.4M      1.4G  19% /
devtmpfs                431.7M         0    431.7M   0% /dev
tmpfs                   433.1M         0    433.1M   0% /dev/shm
tmpfs                   433.1M    400.0K    432.7M   0% /tmp

# free  -m
total         used         free       shared      buffers
Mem:           866           88          777            0            2
-/+ buffers:                 85          780
Swap:            0            0            0

I’ve used a 16GB SD card, so I should probably have resized the partition with parted and resize2fs to make full use of the card capacity. But for quick testing, I skipped that part.  There’s plenty of free memory, becasue Enlightenment is an ultra lightweight desktop environment.

WeTek used the latest kernel 3.10.33 source from Amlogic with device tree support.

# uname  -a
Linux buildroot 3.10.33 #1 SMP PREEMPT Sun Aug 3 01:32:38 CEST 2014 armv7l GNU/x

Finally, I mounted a USB hard drive (ext-4), and successfully play a 1080p video with gplay:

mkdir -p /media/usb
mount -t ext4 /dev/sda2 /media/usb
gplay /media/usb/Video_Samples/High_Bitrate/big_buck_bunny_1080p_surround.avi

You can checkout the video below where I show the desktop environment, the serial connection, and play the 1080p video above.

This image us better suited as a start point to build your own application, still has some bugs, and not something you would use as a desktop computer. But at least, it’s one of the few ARM platform with proper hardware video decoding in Linux. Others would be the Freesale i.MX6 boards (Wandboard, TBS Matrix, etc…), Hardkernel ODROID boards, and Nvidia Tegra TK1 development board.

I’ve also included the full boot log below for reference:

HHH
BootFrom SPI
0×12345678
Boot from int dev 1stSPITE : 346507System StartedU-boot(m6_mbx@79a31247) (Aug 08 2014 – 13:50:34)aml_rtc_init
aml rtc init first time!
clr h-ram
DRAM:  1 GiB
relocation Offset is: 105e4000
MMC:   [mmc_register] add mmc dev_num=0, port=1, if_type=6
[mmc_register] add mmc dev_num=1, port=2, if_type=6
SDIO Port B: 0, SDIO Port C: 1
NAND:  Amlogic nand flash uboot driver, Version U1.06.020 (c) 2010 Amlogic Inc.
SPI BOOT : continue i 0
No NAND device found!!!
NAND device id: 2c 44 44 4b a9 0
NAND device: Manufacturer ID: 0x2c, Chip ID: 0x2c (Micron D revision NAND 4GiB )
1 NAND chips detected
#####aml_nand_init, with RB pins and chip->chip_delay:20
bus_cycle=5, bus_timing=6, start_cycle=6, end_cycle=7,system=5.0ns
oob size is not enough for selected bch mode: NAND_BCH60_1K_MODE force bch to mE
aml_chip->oob_fill_cnt =168,aml_chip->oob_size =744,bch_bytes =70
multi plane error for selected plane mode: NAND_TWO_PLANE_MODE force plane to :E
aml_nand_init:oobmul =1,chip->ecc.layout->oobfree[0].length=16,aml_chip->oob_si4
aml nand env valid addr: 8000 ,status =0
key start_blk=2040,end_blk=2047,aml_nand_key_init:684
aml nand key valid addr: ff010000
aml nand key valid addr: ff210000
aml nand key valid addr: ff410000
aml nand key valid addr: ff610000
CONFIG_KEYSIZE=0×10000; KEYSIZE=0xfffc; bbt=0×1330; default_keyironment_size=0xc
i=0,register — nand_key
NAND bbt detect Bad block at 0
Creating 8 MTD partitions on “nandnormal”:
0×000000800000-0×000001000000 : “logo”
0×000001000000-0×000001800000 : “aml_logo”
0×000001800000-0×000002000000 : “recovery”
0×000002000000-0×000002800000 : “boot”
0×000002800000-0×000042800000 : “system”
0×000042800000-0×000062800000 : “cache”
0×000062800000-0×000072800000 : “backup”
0×000072800000-0x0000ff000000 : “data”
nandnormal initialized ok
detect mx chiprevD :1 and nand_type: 40
nand_curr_device =1
SPI BOOT,spi_env_relocate_spec : env_relocate_spec 53
SF: Detected MX25L3205D with page size 256, total 4 MiBSPI NOR Flash have write protect!!!
In:    serial
Out:   serial
Err:   serial
register usb cfg[0] = 9fe85564
Net:   Meson_Ethernet
init suspend firmware done. (ret:0)
detect_storage
nand exist return 0
setenv storage nand
reboot_mode=normal
ir init
efuse version is not selected.
Hit Enter key to stop autoboot — :  0
exit abortboot: 0
Checking for OpenElectv …
sdio_detect return 1
[mmc_init] SDIO Port B:0, if_type=7, initialized OK!
Device: SDIO Port B
Manufacturer ID: 0
OEM: 0
Name: Tran Speed: 40000000
Rd Block Len: 512
SD version 2.0
High Capacity: Yes
Capacity: 15798894592
Boot Part Size: 0
Bus Width: 4-bit
reading kernel.img

** Unable to read “kernel.img” from mmc 0:1 **
Checking for Linux …
Device: SDIO Port B
Manufacturer ID: 0
OEM: 0
Name: Tran Speed: 40000000
Rd Block Len: 512
SD version 2.0
High Capacity: Yes
Capacity: 15798894592
Boot Part Size: 0
Bus Width: 4-bit
reading boot.img

6449001 bytes read

NAND read: logo whole chip
8388608 bytes read: OK
unpackimg:Magic error, use old format

NAND read: logo whole chip
8388608 bytes read: OK
unpackimg:Magic error, use old format
## ANDROID Format IMAGE
## Booting kernel from Legacy Image at 82000000 …
Image Name:   Linux-3.10.33
Image Type:   ARM Linux Kernel Image (lzma compressed)
Data Size:    3655540 Bytes = 3.5 MiB
Load Address: 80008000
Entry Point:  80008000
Verifying Checksum … OK
Ramdisk start addr = 0x8237d000, len = 0x2a495d
Process device tree. dt magic: edfe0dd0
One dtb detected
Flat device tree start addr = 0×82622000, len = 0x40c6 magic=0xedfe0dd0
Uncompressing Kernel Image … OK
uboot time: 5142982 us.
machid from environment: 0x4e27
EFUSE machid is not set.
Using machid 0x4e27 from environment
From device tree /memory/ node aml_reserved_end property, for relocate ramdisk 1
Loading Ramdisk to 84008000, end 842ac95d … OK
Loading Device Tree to 84000000, end 840070c5 … OK

Starting kernel …

[    0.000000@0] Booting Linux on physical CPU 0×200
[    0.000000@0] Linux version 3.10.33 (sasa@AMLogic-ProXBMC) (gcc version 4.7.4
[    0.000000@0] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=10c5387d
[    0.000000@0] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruce
[    0.000000@0] Machine: Amlogic Meson6 platform, model: AMLOGIC
[    0.000000@0] physical memory start address is 0×80000000
[    0.000000@0] reserved_end is 8dafffff
[    0.000000@0]  reserved 511M-512M 1M memory for firmware
[    0.000000@0] Total memory is 1024 MiB
[    0.000000@0] Reserved low memory from 0×85000000 to 0x8dafffff, size: 139 M
[    0.000000@0]        ion_dev0(low)           : 0×85100000 – 0×87100000 ( 32 )
[    0.000000@0]        mesonfb0(low)           : 0×87100000 – 0×88100000 ( 16 )
[    0.000000@0]        mesonfb1(low)           : 0×88100000 – 0×88200000 (  1 )
[    0.000000@0]        deinterlace0(low)       : 0×88200000 – 0x89e00000 ( 28 )
[    0.000000@0]        mesonstream0(low)       : 0x89e00000 – 0x8a800000 ( 10 )
[    0.000000@0]        vdec0(low)      : 0x8a800000 – 0x8c800000 ( 32 MiB)
[    0.000000@0]        ppmgr0(low)     : 0x8c800000 – 0x8db00000 ( 19 MiB)
[    0.000000@0] Ignore bootargs ‘mem’ param.
[    0.000000@0] Memory policy: ECC disabled, Data cache writealloc
[    0.000000@0] PERCPU: Embedded 8 pages/cpu @c1231000 s8704 r8192 d15872 u3278
[    0.000000@0] Built 1 zonelists in Zone order, mobility grouping on.  Total 0
[    0.000000@0] Kernel command line: root=/dev/mmcblk0p2 rw rootfstype=ext3 ro1
[    0.000000@0] osd0:0
[    0.000000@0] 1080i:7
[    0.000000@0] full:2
[    0.000000@0] kernel get hdmimode form uboot is 1080i
[    0.000000@0] kernel get cvbsmode form uboot is 576cvbs
[    0.000000@0] ******** uboot setup mac-addr: 0:15:18:1:81:31
[    0.000000@0] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000@0] Dentry cache hash table entries: 131072 (order: 7, 524288 byte)
[    0.000000@0] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000@0] Memory: 80MB 292MB 512MB = 884MB total
[    0.000000@0] Memory: 884060k/884060k available, 21156k reserved, 278528K him
[    0.000000@0] Virtual kernel memory layout:
[    0.000000@0]     vector  : 0xffff0000 – 0xffff1000   (   4 kB)
[    0.000000@0]     fixmap  : 0xfff00000 – 0xfffe0000   ( 896 kB)
[    0.000000@0]     vmalloc : 0xef800000 – 0xff000000   ( 248 MB)
[    0.000000@0]     lowmem  : 0xc0000000 – 0xef000000   ( 752 MB)
[    0.000000@0]     pkmap   : 0xbfe00000 – 0xc0000000   (   2 MB)
[    0.000000@0]     modules : 0xbf000000 – 0xbfe00000   (  14 MB)
[    0.000000@0]       .text : 0xc0008000 – 0xc08ef880   (9119 kB)
[    0.000000@0]       .init : 0xc08f0000 – 0xc0923200   ( 205 kB)
[    0.000000@0]       .data : 0xc0924000 – 0xc098a100   ( 409 kB)
[    0.000000@0]        .bss : 0xc098a100 – 0xc0a23d8c   ( 616 kB)
[    0.000000@0] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000@0] Preemptible hierarchical RCU implementation.
[    0.000000@0] NR_IRQS:256
[    0.000000@0] sched_clock: 32 bits at 1000kHz, resolution 1000ns, wraps evers
[    0.000000@0] Global timer: MESON TIMER-A (c0941d00) initialized
[    0.000000@0] Disable timerA
[    0.000000@0] Console: colour dummy device 80×30
[    0.000000@0] console [ttyS0] enabled
[    0.315911@0] Calibrating delay loop… 2387.14 BogoMIPS (lpj=11935744)
[    0.370051@0] pid_max: default: 32768 minimum: 301
[    0.372187@0] Security Framework initialized
[    0.376309@0] SELinux:  Initializing.
[    0.380128@0] Mount-cache hash table entries: 512
[    0.388105@0] CPU: Testing write buffer coherency: ok
[    0.390229@0] CPU0: thread -1, cpu 0, socket 2, mpidr 80000200
[    0.395489@0] Local timer: MESON TIMER-B (c0941e00) for CPU0 initialized
[    0.402216@0] Disable timerA
[    0.405028@0] Disable timerB
[    0.407897@0] Disable timerA
[    0.410899@0] Setting up static identity map for 0xc065ff20 – 0xc065ff78
[    0.417615@0] L310 cache controller enabled
[    0.421605@0] l2x0: 8 ways, 2048 sets, CACHE_ID 0x4100a0c8,  Cache size: 524B
[    0.429138@0]       AUX_CTRL 0x3e460000, PERFETCH_CTRL 0×30000006, POWER_CTR0
[    0.437233@0]       TAG_LATENCY 0×00000222, DATA_LATENCY 0×00000222
[    0.495893@1] CPU1: Booted secondary processor
[    0.555520@1] CPU1: thread -1, cpu 1, socket 2, mpidr 80000201
[    0.555534@1] Local timer: MESON TIMER-D (c0942000) for CPU1 initialized
[    0.555590@0] Brought up 2 CPUs
[    0.555596@0] SMP: Total of 2 processors activated (4780.85 BogoMIPS).
[    0.555599@0] CPU: All CPU(s) started in SVC mode.
[    0.556181@0] devtmpfs: initialized
[    0.561064@0] clkrate [ xtal         ] : 24000000
[    0.561071@0] clkrate [ pll_sys      ] : 1200000000
[    0.561076@0] clkrate [ pll_fixed    ] : 2000000000
[    0.561080@0] clkrate [ pll_vid2     ] : 378000000
[    0.561084@0] clkrate [ pll_hpll     ] : 378000000
[    0.561152@0] clkrate [ pll_ddr      ] : 516000000
[    0.561155@0] clkrate [ a9_clk       ] : 1200000000
[    0.561223@0] clkrate [ clk81        ] : 200000000
[    0.562413@0] pinctrl core: initialized pinctrl subsystem
[    0.562957@0] regulator-dummy: no parameters
[    0.563300@0] NET: Registered protocol family 16
[    0.580970@0] DMA: preallocated 4096 KiB pool for atomic coherent allocations
[    0.588066@0] amlogic_gpio gpio: Probed amlogic GPIO driver
[    0.588504@0] register lm device lm-root
[    0.588643@0] register lm device lm1
[    0.588766@0] register lm device lm0
[    0.589122@0] Init pinux probe!
[    0.589903@0] pinmux-m6 pinmux: Probed amlogic pinctrl driver
[    0.590100@0] ——-early_init_dt_probe:38———-
[    0.590295@0] ——-early_init_dt_init:115———-
[    0.590299@0] tv_init_module
[    0.590310@0] major number 254 for disp
[    0.590312@0] vout_register_server
[    0.590315@0] register tv module server ok
[    0.590438@0] major number 0 for disp
[    0.590441@0] register tv module server ok
[    0.590622@0] drivers/amlogic/i2c/aml_i2c.c : aml_i2c_init
[    0.590668@0] drivers/amlogic/i2c/aml_i2c.c : aml_i2c_probe
[    0.590678@0] plat->state_name:default
[    0.590693@0] master_no = 0, maseter_regs=f3100500
[    0.590943@0] aml-i2c i2c-AO: add adapter aml_i2c_adap0(ee97b4a8)
[    0.590948@0] aml-i2c i2c-AO: aml i2c bus driver.
[    0.591102@0] drivers/amlogic/i2c/aml_i2c.c : aml_i2c_probe
[    0.591109@0] plat->state_name:default
[    0.591121@0] master_no = 1, maseter_regs=f1108500
[    0.591305@0] aml-i2c i2c-A: add adapter aml_i2c_adap1(ee9bc0a8)
[    0.591310@0] aml-i2c i2c-A: aml i2c bus driver.
[    0.591431@0] drivers/amlogic/i2c/aml_i2c.c : aml_i2c_probe
[    0.591437@0] plat->state_name:default
[    0.591446@0] master_no = 2, maseter_regs=f11087c0
[    0.591630@0] aml-i2c i2c-B: add adapter aml_i2c_adap2(ee9bcca8)
[    0.591634@0] aml-i2c i2c-B: aml i2c bus driver.
[    0.592137@0] aml_pmu_init, 454
[    0.592250@0] call aml_dvfs_init in
[    0.592295@0] [DVFS]aml_dvfs_probe, child name:vcck_dvfs
[    0.592303@0] [DVFS]dvfs table of vcck_dvfs is:
[    0.592306@0] [DVFS]     freq,    min_uV,    max_uV
[    0.592310@0] [DVFS]   200000,   1010000,   1010000
[    0.592312@0] [DVFS]   600000,   1010000,   1010000
[    0.592314@0] [DVFS]   792000,   1010000,   1010000
[    0.592316@0] [DVFS]   816000,   1110000,   1110000
[    0.592319@0] [DVFS]   840000,   1110000,   1110000
[    0.592321@0] [DVFS]   984000,   1110000,   1110000
[    0.592323@0] [DVFS]  1000000,   1110000,   1110000
[    0.592325@0] [DVFS]  1080000,   1220000,   1220000
[    0.592327@0] [DVFS]  1200000,   1240000,   1240000
[    0.592330@0] [DVFS]  1320000,   1320000,   1320000
[    0.592332@0] [DVFS]  1500000,   1320000,   1320000
[    0.592553@0] hdmitx: system: amhdmitx_init
[    0.592556@0] hdmitx: system: Ver: 2014May6
[    0.592609@0] hdmitx: system: amhdmitx_probe
[    0.593035@0] amhdmitx is using the pin GPIOD_5
[    0.593455@0] hdmitx: system: hw init
[    0.593465@0] HDMI: get brd phy data
[    0.593466@0] hdmi phy setting
[    0.593515@0] HDMI: get brd phy data
[    0.593516@0] hdmi phy setting
[    0.594057@0] hdmitx: system: reset intr mask
[    0.605605@0] hdmitx: system: irq 1
[    0.658244@0] bio: create slab <bio-0> at 0
[    0.659407@0] SCSI subsystem initialized
[    0.660009@0] usbcore: registered new interface driver usbfs
[    0.660136@0] usbcore: registered new interface driver hub
[    0.660323@0] usbcore: registered new device driver usb
[    0.660648@0] Linux video capture interface: v2.00
[    0.661374@0] LCD driver init
[    0.661679@0] TV mode 1080i selected.
[    0.661683@0] [0x1b7e] = 0xff
[    0.661685@0] [0x105f] = 0×0
[    0.661687@0] [0x109d] = 0x814d3928
[    0.661689@0] [0x109e] = 0x6b425012
[    0.661691@0] [0x109f] = 0×110
[    0.661692@0] [0x109c] = 0x1043e
[    0.661694@0] [0x1066] = 0×10843
[    0.661696@0] [0x1059] = 0×100
[    0.661698@0] [0x105f] = 0×80000
[    0.661700@0] [0x105f] = 0×88001
[    0.661701@0] [0x105f] = 0×80003
[    0.661703@0] [0x104a] = 0×101
[    0.661705@0] [0x1bb8] = 0×52
[    0.661707@0] [0x1b62] = 0×2029
[    0.661708@0] [0x1b97] = 0x112f
[    0.661710@0] [0x1bae] = 0×464
[    0.661712@0] [0x1b98] = 0×58
[    0.661713@0] [0x1b99] = 0×108
[    0.661715@0] [0x1b9a] = 0×58
[    0.661717@0] [0x1ba4] = 0×204
[    0.661718@0] [0x1ba3] = 0×1103
[    0.661720@0] [0x1ba7] = 0×108
[    0.661722@0] [0x1ba8] = 0xb0
[    0.661724@0] [0x1b9f] = 0x8f0
[    0.661726@0] [0x1ba0] = 0x9a0
[    0.661727@0] [0x1b9b] = 0x1b8
[    0.661729@0] [0x1b9c] = 0×898
[    0.661730@0] [0x1b9d] = 0×0
[    0.661732@0] [0x1b9e] = 0×4
[    0.661733@0] [0x1ba1] = 0×0
[    0.661735@0] [0x1ba2] = 0×4
[    0.661737@0] [0x1ba6] = 0×14
[    0.661738@0] [0x1baf] = 0x22f
[    0.661740@0] [0x1ba9] = 0×58
[    0.661742@0] [0x1baa] = 0×58
[    0.661743@0] [0x1bab] = 0×0
[    0.661745@0] [0x1bac] = 0×5
[    0.661746@0] [0x1b94] = 0×204
[    0.661748@0] [0x1b95] = 0×1103
[    0.661749@0] [0x1b68] = 0×100
[    0.661751@0] [0x1bba] = 0×11
[    0.661753@0] [0x1b8d] = 0x5ffc
[    0.661754@0] [0x1b8e] = 0×19
[    0.661756@0] [0x1b81] = 0×207
[    0.661757@0] [0x1b60] = 0×0
[    0.661759@0] [0x1b6e] = 0×200
[    0.661761@0] [0x1b58] = 0×0
[    0.661762@0] [0x1bfc] = 0×1000
[    0.661764@0] [0x1b7e] = 0×0
[    0.661766@0] [0x1c0d] = 0×3102
[    0.661767@0] [0x1c0e] = 0×54
[    0.661768@0] [0x1b78] = 0×1
[    0.661770@0] [0x1b79] = 0×1
[    0.661771@0] [0x1b7a] = 0×1
[    0.661773@0] [0x1b7b] = 0×1
[    0.661774@0] [0x1b7c] = 0×1
[    0.661775@0] [0x1b7d] = 0×1
[    0.661777@0] [0x1b57] = 0×0
[    0.661778@0] [0x1b80] = 0×1
[    0.661781@0] tvoutc_setmode[397]
[    0.661783@0] mode is: 7
[    0.661786@0] config HPLL
[    0.661788@0] config HPLL done
[    0.718486@0] call aml_pmu_probe_init in
[    0.718781@0] get property:                  use_pwm, value:0×00000001, dec:1
[    0.718789@0] get property:              table_count, value:0×00000010, dec:6
[    0.718796@0] meson_cs_dvfs_probe, table count:16, use_pwm:1, pwm controller2
[    0.718799@0]  0, 00130009, 1010000
[    0.718801@0]  1, 0012000a, 1050000
[    0.718803@0]  2, 0011000b, 1070000
[    0.718806@0]  3, 0010000c, 1090000
[    0.718808@0]  4, 000f000d, 1110000
[    0.718810@0]  5, 000e000e, 1130000
[    0.718812@0]  6, 000d000f, 1150000
[    0.718814@0]  7, 000c0010, 1170000
[    0.718815@0]  8, 000b0011, 1190000
[    0.718817@0]  9, 000a0012, 1210000
[    0.718820@0] 10, 00090013, 1220000
[    0.718822@0] 11, 00080014, 1240000
[    0.718824@0] 12, 00070015, 1270000
[    0.718826@0] 13, 00060016, 1280000
[    0.718828@0] 14, 00050017, 1300000
[    0.718830@0] 15, 00040018, 1320000
[    0.718905@0] get pin for pwm——–
[    0.718913@0] [DVFS]aml_dvfs_register_driver, driver meson-cs-dvfs regist su1
[    0.719363@0] Advanced Linux Sound Architecture Driver Initialized.
[    0.720196@0] Bluetooth: Core ver 2.16
[    0.720359@0] NET: Registered protocol family 31
[    0.720363@0] Bluetooth: HCI device and connection manager initialized
[    0.720375@0] Bluetooth: HCI socket layer initialized
[    0.720381@0] Bluetooth: L2CAP socket layer initialized
[    0.720404@0] Bluetooth: SCO socket layer initialized
[    0.720958@0] cfg80211: Calling CRDA to update world regulatory domain
[    0.722251@0] Switching to clocksource Timer-E
[    1.262534@1] Disable timerD
[    1.265870@0] hdmitx: edid: edid ready
[    1.278832@1] NET: Registered protocol family 2
[    1.279416@1] TCP established hash table entries: 8192 (order: 4, 65536 byte)
[    1.285007@1] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[    1.291653@1] TCP: Hash tables configured (established 8192 bind 8192)
[    1.298197@1] TCP: reno registered
[    1.301433@1] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    1.307606@1] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    1.314264@1] NET: Registered protocol family 1
[    1.319339@1] Unpacking initramfs…
[    1.465689@1] Freeing initrd memory: 2704K (c4008000 – c42ac000)
[    1.467796@1] audit: initializing netlink socket (disabled)
[    1.471657@1] type=2000 audit(1.410:1): initialized
[    1.477043@1] bounce pool size: 64 pages
[    1.485847@0] hdmitx: edid: edid ready
[    1.485885@0] hdmitx: edid: 202 errors between two reading
[    1.487333@1] VFS: Disk quotas dquot_6.5.2
[    1.487611@1] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    1.490489@1] fuse init (API version 7.22)
[    1.491362@1] msgmni has been set to 1187
[    1.493102@1] Block layer SCSI generic (bsg) driver version 0.4 loaded (majo)
[    1.493108@1] io scheduler noop registered
[    1.493112@1] io scheduler deadline registered
[    1.493337@1] io scheduler cfq registered (default)
[    1.529436@0] hdmitx: edid: check sum valid
[    1.533556@0] hdmitx: edid: check sum valid
[    1.537725@0] hdmitx: edid: blk0 raw data
[    1.541663@0] 00ffffffffffff0034a996a20101010100170103808048780adaffa3584aa29
[    1.548865@0] 17494b21080031404540614081800101010101010101023a80d072382d4010c
[    1.556069@0] 4580ba882100001e023a801871382d40582c4500ba882100001e000000fc000
[    1.563273@0] 616e61736f6e69632d54560a000000fd00173d0f440f000a20202020202001b
[    1.570480@0]
[    1.572130@0] hdmitx: edid: blk1 raw data
[    1.576217@0] 020322f24d9f9014052021221304120316072309070168030c002000b8260f2
[    1.583325@0] 004b011d80d0721c1620102c2580ba882100009e011d8018711c1620582c250
[    1.590529@0] ba8821[    1.592472@1] [drm] Initialized drm 1.1.0 20060810
[    1.596971@1] loop: module loaded
[    1.598228@1] tun: Universal TUN/TAP device driver, 1.6
[    1.598231@1] tun: (C) 1999-2004 Max Krasnyansky <[email protected]>
[    1.598522@1] PPP generic driver version 2.4.2
[    1.598871@1] PPP BSD Compression module registered
[    1.598874@1] PPP Deflate Compression module registered
[    1.598893@1] PPP MPPE Compression module registered
[    1.598899@1] NET: Registered protocol family 24
[    1.599088@1] usbcore: registered new interface driver asix
[    1.599288@1] usbcore: registered new interface driver ax88179_178a
[    1.599415@1] usbcore: registered new interface driver cdc_ether
[    1.599544@1] usbcore: registered new interface driver net1080
[    1.599669@1] usbcore: registered new interface driver cdc_subset
[    1.599804@1] usbcore: registered new interface driver zaurus
[    1.599968@1] usbcore: registered new interface driver cdc_ncm
[    1.600646@1] usbcore: registered new interface driver cdc_acm
[    1.600649@1] cdc_acm: USB Abstract Control Model driver for USB modems and s
[    1.600792@1] usbcore: registered new interface driver usb-storage
[    1.601098@1] usbcore: registered new interface driver usbserial
[    1.601230@1] usbcore: registered new interface driver option
[    1.601366@1] usbserial: USB Serial support registered for GSM modem (1-port)
[    1.601882@1] mousedev: PS/2 mouse device common for all mice
[    1.602527@1] i2c /dev entries driver
[    1.603440@1] usbcore: registered new interface driver uvcvideo
[    1.603442@1] USB Video Class driver (1.1.1)
[    1.603450@1] Bluetooth: HCI UART driver ver 2.2
[    1.603455@1] Bluetooth: HCI H4 protocol initialized
[    1.604567@1] usbcore: registered new interface driver usbhid
[    1.604569@1] usbhid: USB HID core driver
[    1.605188@1] zram: Created 1 device(s) …
[    1.605923@1] ashmem: initialized
[    1.606204@1] logger: created 256K log ‘log_main’
[    1.606435@1] logger: created 256K log ‘log_events’
[    1.606650@1] logger: created 256K log ‘log_radio’
[    1.606875@1] logger: created 256K log ‘log_system’
[    1.607199@1] vout_init_module
[    1.607275@1] start init vout module
[    1.607417@1] create  vout attribute ok
[    1.608142@1] ge2d_init
[    1.608152@1] ge2d_dev major:248
[    1.608552@1] ge2d start monitor
[    1.608631@1] osd_init
[    1.608683@1] osd_probe, vinfo:c06a3b78
[    1.608827@1] Frame buffer memory assigned at phy:0×87100000, vir:0xfb000000K
[    1.608830@1] osd_probe, mydef_var:c09613f0, vinfo:c06a3b78
[    1.608833@1] don’t find to display_size_default from mesonfb-dts
[    1.608835@1] init fbdev bpp is :24
[    1.609030@1] ge2d workqueue monitor start
00[    1.835408@1] Frame buffer memory assigned at phy:0×88100000, vir:0xefe000K
[    1.835412@1] osd_probe, mydef_var:c09613f0, vinfo:c06a3b78
[    1.835414@1] —————clear framebuffer1 memory
009e011d00bc52d01e20b8285540ba882100001e662156aa51001e30
[    1.859523@1] 468f3300ba88[    1.861916@1] osd probe ok
[    1.862261@1] osd_ext_init
[    1.862866@1] vout2_init_module enter
[    1.863939@1] amlvideo-000: V4L2 device registered as video10
[    1.864358@1] ionvideo-000: V4L2 device registered as video13
[    1.864362@1] Video Technology Magazine Ion Video Capture Board ver 1.0 succ.
[    1.865126@1] keys===========================================
[    1.865131@1] keys_devno=f400000
[    1.865478@1] securitykey: device aml_keys created
[    1.865574@1] amlkeys=0
[    1.865750@1] platform_driver_register–aml_keys_driver——————–
[    1.866230@1] set uart_ao pinmux use pinctrl subsystem
[    1.866233@1] P_AO_RTI_PIN_MUX_REG:5861
[    1.866257@1] start uart_ao_ttyS0:(irq = 122)
[    1.866259@1] register uart_ao ok
[    1.866611@1] start uart_a_ttyS1:(irq = 58)
[    1.866613@1] register uart_a ok
[    1.866936@1] start uart_d_ttyS4:(irq = 126)
[    1.866939@1] register uart_d ok
[    1.867126@1] dwc_otg: version 3.10a 12-MAY-2014
[    1.867173@1] dwc_otg_driver_probe NOT match
[    1.867212@1] usb1: type: 1, speed: 0, config: 0, dma: 0, id: 1, phy: f110840
2100001e000000000000000000000000000000000000000000ab
[    1.967848@0]
[    1.969560@0] hdmitx: edid: find IEEEOUT
[    1.973444@0] hdmitx: video: get current mode: 1080i
[    1.978432@0] hdmitx: system: already init VIC = 0  Now VIC = 5
[    1.984268@0] set mode VIC 5 (cd0,cs0,pm1,vd0,1)
[    1.988955@0] hdmitx: system: hw reset
[    1.992681@0] HDMI: get brd phy data
[    1.996248@0] hdmi phy setting
[    2.000316@0] hdmitx: audio: SPDIFHDMI: get brd phy data
[    2.004564@0] hdmi phy setting
[    2.007662@0] hdmitx: system: set pll
[    2.011249@0] hdmitx: system: param->VIC:5
[    2.015335@0] mode is: 7
[    2.017857@0] config HPLL
[    2.020449@0] config HPLL done
[    2.044513@0] hdmitx: system: fixed HDMI mode output
[    2.044539@0] Sink is HDMI device
[    2.047149@0] No sink attached
[    2.050205@0] hdmitx: audio: audio channel num is 0
[    2.055030@0] hdmitx: audio: SPDIFhdmitx: audio: current VIC: 5
[    2.060934@0] hdmitx: audio: audio sample rate: 0
[    2.065639@0] hdmitx: audio: reset audio N para
[    2.070139@0] hdmitx: audio: PCM out to HDMI
[    2.083657@0] hdmitx: audio: Time out: AIU_HDMI_CLK_DATA_CTRL
[    2.083753@0] hdmitx: audio: i2s_to_spdif_flag:1
[    2.088459@0] hdmitx: audio: Enable audio spdif to HDMI
[    2.093690@0] hdmitx: cec: CEC not ready
[    2.367839@1] USB (1) use clock source: XTAL input
[    2.568941@1] Core Release: 2.94a
[    2.568973@1] Setting default values for core params
[    2.571574@1] curmode: 0, host_only: 1
[    2.575327@1] ERROR::dwc_otg_set_param_host_perio_tx_fifo_size:5919: 500 inv.
[    2.575327@1]
[    2.588974@1] dwc_otg: probe of lm1 failed with error -22
[    2.594362@1] usb0: type: 0, speed: 0, config: 0, dma: 0, id: 0, phy: f110840
[    2.802982@1] Core Release: 2.94a
[    2.803006@1] Setting default values for core params
[    2.805634@1] curmode: 0, host_only: 0
[    2.809357@1] ERROR::dwc_otg_set_param_host_perio_tx_fifo_size:5919: 500 inv.
[    2.809357@1]
[    2.822995@1] dwc_otg: probe of lm0 failed with error -22
[    2.828635@1] boot_device_flag : 0
[    2.831727@1] ===========================================amlnf_init:632,nandd
[    2.841281@1] Nand PHY driver Version: 1.01.001.0005 (c) 2013 Amlogic Inc.
[    2.848159@1] amlnf_phy_init : amlnf init flag 0
[    2.852858@1] ######STS IRQ mode for nand driver
[    2.857436@1] NAND device id: 2c 44 44 4b a9 0 0 0
[    2.862111@1] detect NAND device: D revision NAND 4GiB MT29F32G08CBADA
[    2.913569@1] onfi timing mode set failed: 0
[    2.913724@1] bus_cycle=5, bus_timing=7,system=0.0ns,flash->T_REA =20,flash-5
[    2.920121@1] detect RB pin here and por_cfg:3dd
[    2.924688@1] detect without RB pin here
[    2.928617@1] force none rb mode for rb irq
[    2.932764@1] boot_device_flag = 0
[    2.952258@1] NAND CKECK  : arg nbbt: arg_valid= 0, valid_blk_addr = 0, vali0
[    2.954965@1] found NO arg : nbbt info
[    2.958726@1] nand scan bbt failed
[    2.962091@1] get device configs failed and ret:fffffff0
[    2.967402@1] nandphy_init failed and ret=0xfffffff0
[    2.972628@1] ethernet_driver probe!
[    2.975929@1] Please config phy  interface.
[    2.980050@1] Please config savepowermode.
[    2.984129@1] Please config reset_pin_enable.
[    2.988495@1] Please config reset_delay.
[    2.992376@1] Please config reset_pin.
[    2.996138@1] ethernetinit(dbg[c0964c80]=1)
[    3.000310@1] ethernet base addr is f3610000
[    3.004528@1] write mac add to:edef6908: 00 15 18 01 81 31 |...1|
[    3.016374@1] libphy: AMLMAC MII Bus: probed
[    3.016410@1] eth0: PHY ID 0007c0f1 at 1 IRQ -1 (0:01) active
[    3.022910@1] Amlogic A/V streaming port init
[    3.027629@1] init vdec memsource -1971322880->-1937768449
[    3.030801@1] [tsync_pcr_init]init success.
[    3.034820@1] amvideocap_init_module
[    3.038727@1] regist mpeg12 codec profile
[    3.042487@1] regist mpeg4 codec profile
[    3.046320@1] amvdec_vc1 module init
[    3.049971@1] regist vc1 codec profile
[    3.053570@1] amvdec_h264 module init
[    3.057417@1] regist h264 codec profile
[    3.061154@1] regist mjpeg codec profile
[    3.064940@1] amvdec_real module init
[    3.068756@1] regist real codec profile
[    3.073874@1] efuse===========================================
[    3.078602@1] efuse: device efuse created
[    3.082354@1] efuse——————————————–
[    3.088164@1] SARADC Driver init.
[    3.091621@1] __saradc_probe__
[    3.235634@1] saradc calibration: ref_val = 515
[    3.235659@1] saradc calibration: ref_nominal = 512
[    3.239382@1] saradc calibration: coef = 4169
[    3.243869@1] Remote Driver
[    3.246610@1] Remote platform_data g_remote_base=f3100480
[    3.252223@1] input: aml_keypad as /devices/platform/meson-remote/input/inpu0
[    3.259618@1] Remote date_valye======0,status == 8915d00
[    3.264407@1] remote config major:241
[    3.268462@1] physical address:0xaea1c000
[    3.272234@1] ADC Keypad Driver init.
[    3.275876@1] ==kp_probe==
[    3.278461@1] chan #4 used for ADC key
[    3.282175@1] menu key(139) registed.
[    3.285861@1] vol- key(114) registed.
[    3.289466@1] vol+ key(115) registed.
[    3.293111@1] back key(158) registed.
[    3.296786@1] home key(102) registed.
[    3.300403@1] ok key(232) registed.
[    3.304071@1] input: adc_keypad as /devices/platform/adc_keypad.3/input/inpu1
[    3.311327@1] adc keypad register input device completed.
[    3.316605@1] adc keypad major:240
[    3.320378@1] Meson KeyInput init
[    3.323422@1] Key 116 registed.
[    3.326680@1] input: key_input as /devices/platform/key_input.4/input/input2
[    3.333679@1] Meson KeyInput register RTC interrupt
[    3.338222@1] Meson KeyInput major=238
[    3.342432@1] ==touch_ts_init==
[    3.345361@1] ==ft5x0x_ts_init==
[    3.348574@1] ==goodix_ts_init==
[    3.351707@1] ==gsl_ts_init==
[    3.354653@1] i2c-core: driver [gslx680] using legacy suspend method
[    3.360940@1] i2c-core: driver [gslx680] using legacy resume method
[    3.367186@1] VTL ct36x TouchScreen driver, <[email protected]>.
[    3.373671@1] i2c-core: driver [ct36x] using legacy suspend method
[    3.379888@1] i2c-core: driver [ct36x] using legacy resume method
[    3.385846@1] VTL ct36x TouchScreen driver End.
[    3.390327@1] ==gsl_ts_init==
[    3.393374@1] ret=0
[    3.395831@1] i2c-core: driver [lis3dh_acc] using legacy suspend method
[    3.401959@1] i2c-core: driver [lis3dh_acc] using legacy resume method
[    3.408702@1] i2c-core: driver [bma222] using legacy suspend method
[    3.414718@1] i2c-core: driver [bma222] using legacy resume method
[    3.421092@1] i2c-core: driver [dmard06] using legacy suspend method
[    3.427384@1] i2c-core: driver [dmard06] using legacy resume method
[    3.433570@1] lsm303d driver: init
[    3.437062@1] i2c-core: driver [dmard10] using legacy suspend method
[    3.443189@1] i2c-core: driver [dmard10] using legacy resume method
[    3.449568@1] stk831x_init
[    3.452227@1] mxc622x accelerometer driver: init
[    3.456853@1] i2c-core: driver [mxc622x] using legacy suspend method
[    3.463066@1] i2c-core: driver [mxc622x] using legacy resume method
[    3.469608@1] cm3217 v.1.0.0.1
[    3.472437@1] i2c-core: driver [elan_epl6814] using legacy suspend method
[    3.479274@1] i2c-core: driver [elan_epl6814] using legacy resume method
[    3.485930@1] i2c-core: driver [LTR501] using legacy suspend method
[    3.492057@1] i2c-core: driver [LTR501] using legacy resume method
[    3.498528@1] spi_nor_init
[    3.501086@1] amlogic_spi_nor_probe:
[    3.504475@1] amlogic_spi->state_name:default
[    3.509063@1] AMLOGIC_SPI_NOR cc000000.spi: master is unqueued, this is deprd
[    3.516546@1] spi_nor_probe
[    3.519141@1] check_storage_device : spi boot_device_flag : 0
[    3.524912@1] spi_nor apollospi:32766: mx25l3205d (4096 Kbytes)
[    3.533601@1] Creating 2 MTD partitions on “apollospi:32766″:
[    3.536586@1] 0×000000000000-0×000000060000 : “bootloader”
[    3.543107@1] 0×000000080000-0×000000088000 : “ubootenv”
[    3.548256@1] amlogic_spi_nor_probe over
[    3.551403@1] mmc driver version: 1.05, 2014-05-14: sdhc regular tuning suppt
[    3.559339@1] host->base f1108c20
[    3.561790@1] pdata->caps 7
[    3.564537@1] pdata->caps2 0
[    3.567460@1] get property:                     port, value:0×00000001
[    3.573911@1] get property:                ocr_avail, value:0×00200000
[    3.580577@1] get property:                    f_min, value:0x000493e0
[    3.586960@1] get property:                    f_max, value:0x02faf080
[    3.593441@1] get property:                  f_max_w, value:0x02faf080
[    3.599977@1] get property:             max_req_size, value:0×00020000
[    3.606490@1] get property:                   irq_in, value:0×00000005
[    3.612971@1] get property:                  irq_out, value:0×00000006
[    3.619507@1] get property:              power_level, value:0×00000000
[    3.626137@1] get property:                  gpio_cd, str:CARD_6
[    3.631982@1] get property:               gpio_power, str:CARD_8
[    3.637998@1] get property:                  pinname, str:sd
[    3.643612@1] get property:                card_type, value:0×00000005
[    3.650162@1] get property:                gpio_dat3, str:CARD_3
[    3.656161@1] normal card in
[    3.695542@1] sd: mmc_rescan_try_freq: trying to init card at 400000 Hz
[    4.224117@0] sd: new high speed SDHC card at address 59b4, clock 50000000, h
[    4.225524@1] [aml_sdio_probe] aml_sdio_probe() success!
[    4.232344@1] [dsp]DSP start addr 0xc5000000
[    4.236471@0] mmcblk0: sd:59b4 SD    14.7 GiB
[    4.236497@1] [dsp]register dsp to char divece(232)
[    4.247178@0]  mmcblk0: p1 p2
[    4.265537@1] aml_rtc_init…
[    4.266541@1] aml_rtc rtc.0: rtc core: registered aml_rtc as rtc0
[    4.270061@1] [AXP]call axp_battery_init, ret = 0
[    4.274506@1] platform reg-20-cs-ldo2: Driver reg-20-cs-ldo2 requests probe l
[    4.281773@1] platform reg-20-cs-ldo3: Driver reg-20-cs-ldo3 requests probe l
[    4.289311@1] platform reg-20-cs-ldo4: Driver reg-20-cs-ldo4 requests probe l
[    4.297169@1] platform reg-20-cs-buck2: Driver reg-20-cs-buck2 requests probl
[    4.304872@1] platform reg-20-cs-buck3: Driver reg-20-cs-buck3 requests probl
[    4.312842@1] platform reg-20-cs-ldoio0: Driver reg-20-cs-ldoio0 requests prl
[    4.320901@1] [AML_PMU]call aml_pmu_battery_init, ret = 0
[    4.326338@1] [RN5T618]call rn5t618_battery_init, ret = 0
[    4.332486@1] wifi_power power_gpio is 24
[    4.335434@1] Error: Didn’t get power valid value — wifi_power_probe 320
[    4.342381@1] wifi_dev_probe : there is no wifi_power_on_pin2 setup in DTS f!
[    4.350145@1] amlogic rfkill init
[    4.354380@1] UMP: UMP device driver  loaded
[    4.358229@1] usbcore: registered new interface driver snd-usb-audio
[    4.365376@1] enter dummy_codec_audio_probe
[    4.368106@1] soc-audio soc-audio: ASoC: machine AML-DUMMY-CODEC should use )
[    4.377233@1] rtd ed875810
[    4.379527@1] cpu_dai eeae7600
[    4.382651@1] codec_dai eeae7500
[    4.386556@1] aml-pcm 0:playback preallocate_dma_buffer: area=efd72000, addr2
[    4.396353@1] iec958 0: preallocate dma buffer start=eff01000, size=80000
[    4.402398@1] aml-pcm 1:capture preallocate_dma_buffer: area=efd94000, addr=6
[    4.410578@1] soc-audio soc-audio:  dummy_codec <-> aml-dai0 mapping ok
[    4.418124@1] =dummy_codec_device_init==,dummy_codec_audio init done
[    4.423613@1] GACT probability NOT on
[    4.427248@1] Mirror/redirect action on
[    4.430827@1] u32 classifier
[    4.433689@1]     Actions configured
[    4.437286@1] Netfilter messages via NETLINK v0.30.
[    4.442169@1] nf_conntrack version 0.5.0 (13855 buckets, 55420 max)
[    4.449041@1] ctnetlink v0.93: registering with nfnetlink.
[    4.453898@1] NF_TPROXY: Transparent proxy support initialized, version 4.1.0
[    4.461070@1] NF_TPROXY: Copyright (c) 2006-2007 BalaBit IT Ltd.
[    4.467559@1] xt_time: kernel timezone is -0000
[    4.471727@1] ip_tables: (C) 2000-2006 Netfilter Core Team
[    4.477218@1] arp_tables: (C) 2002 David S. Miller
[    4.481725@1] TCP: cubic registered
[    4.486013@1] NET: Registered protocol family 10
[    4.490451@1] mip6: Mobile IPv6
[    4.492912@1] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    4.498678@1] sit: IPv6 over IPv4 tunneling driver
[    4.504621@1] NET: Registered protocol family 17
[    4.507958@1] NET: Registered protocol family 15
[    4.512498@1] Bridge firewalling registered
[    4.516848@1] Bluetooth: RFCOMM TTY layer initialized
[    4.521646@1] Bluetooth: RFCOMM socket layer initialized
[    4.527078@1] Bluetooth: RFCOMM ver 1.11
[    4.530822@1] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    4.536318@1] Bluetooth: BNEP filters: protocol multicast
[    4.541678@1] Bluetooth: BNEP socket layer initialized
[    4.546827@1] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    4.552873@1] Bluetooth: HIDP socket layer initialized
[    4.558037@1] NET: Registered protocol family 35
[    4.563043@1] VFP support v0.3: implementor 41 architecture 3 part 30 varian4
[    4.570420@1] Registering SWP/SWPB emulation handler
[    4.575349@1] enter meson_pm_init
[    4.579010@1] enter meson_pm_probe!
[    4.582121@1] meson_pm_probe done !
[    4.586731@0] platform reg-20-cs-ldo2: Driver reg-20-cs-ldo2 requests probe l
[    4.593381@0] platform reg-20-cs-ldo3: Driver reg-20-cs-ldo3 requests probe l
[    4.601148@0] platform reg-20-cs-ldo4: Driver reg-20-cs-ldo4 requests probe l
[    4.608826@0] platform reg-20-cs-buck2: Driver reg-20-cs-buck2 requests probl
[    4.616741@0] platform reg-20-cs-buck3: Driver reg-20-cs-buck3 requests probl
[    4.624606@0] platform reg-20-cs-ldoio0: Driver reg-20-cs-ldoio0 requests prl
[    4.632999@1] ERROR::usb_gadget_probe_driver:1372: usb_gadget_register_driveV
[    4.632999@1]
[    4.642071@1] init: failed to probe driver -19
[    4.646940@1] aml_rtc rtc.0: setting system clock to 2014-08-24 04:39:59 UTC)
[    4.654634@1] ### dt-test ### No testcase data in device tree; not running ts
[    4.662176@1] meson_cpufreq: no voltage_control prop
[    4.666965@1] voltage_control = 0
[    4.670500@0] platform reg-20-cs-ldo2: Driver reg-20-cs-ldo2 requests probe l
[    4.677986@1] <<-GTP-INFO->> GTP driver installing…
[    4.678058@0] platform reg-20-cs-ldo3: Driver reg-20-cs-ldo3 requests probe l
[    4.678104@0] platform reg-20-cs-ldo4: Driver reg-20-cs-ldo4 requests probe l
[    4.678148@0] platform reg-20-cs-buck2: Driver reg-20-cs-buck2 requests probl
[    4.678188@0] platform reg-20-cs-buck3: Driver reg-20-cs-buck3 requests probl
[    4.678228@0] platform reg-20-cs-ldoio0: Driver reg-20-cs-ldoio0 requests prl
[    4.722627@1] hdmitx: cec: CEC init
[    4.725989@0] hdmitx: cec: CEC task process
[    4.730033@1] input: cec_input as /devices/virtual/input/input3
[    4.736140@1] hdmitx: cec: hdmitx_device->cec_init_ready:0×1
[    4.741355@1] I[    4.765537@0] Changing uart_ao_ttyS0: baud from 0 to 115200
[    4.785661@0] Freeing unused kernel memory: 204K (c08f0000 – c0923000)
[    5.042140@1] aml_nftl_dev: module license ‘Proprietary’ taints kernel.
[    5.043123@1] Disabling lock debugging due to kernel taint
[    5.049584@1] boot_device_flag : 0
[    5.051975@1] register_ntd_blktrans start
[    5.056024@1] init_aml_nftl end
[    5.077954@0] kjournald starting.  Commit interval 5 seconds
[    5.083983@1] EXT3-fs (mmcblk0p2): using internal journal
[    5.084023@1] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode
[    5.295586@0] ————[ cut here ]————
[    5.295644@0] WARNING: at kernel/smp.c:382 smp_call_function_many+0×84/0x2c4)
[    5.301950@0] Modules linked in: aml_nftl_dev(P)
[    5.306556@0] CPU: 0 PID: 4 Comm: kworker/0:0 Tainted: P             3.10.331
[    5.313851@0] Workqueue: events cs_dbs_timer
[    5.318126@0] [<c0014c3c>] (unwind_backtrace+0×0/0xf8) from [<c0011d14>] (sh)
[    5.326791@0] [<c0011d14>] (show_stack+0×10/0×14) from [<c002a2dc>] (warn_sl)
[    5.335899@0] [<c002a2dc>] (warn_slowpath_common+0x4c/0x6c) from [<c002a318>)
[    5.345705@0] [<c002a318>] (warn_slowpath_null+0x1c/0×24) from [<c0070c88>] )
[    5.355774@0] [<c0070c88>] (smp_call_function_many+0×84/0x2c4) from [<c00710)
[    5.365754@0] [<c0071054>] (smp_call_function+0×34/0×64) from [<c001b69c>] ()
[    5.375041@0] [<c001b69c>] (clk_set_rate_a9+0x9c/0xec) from [<c001baa4>] (me)
[    5.384503@0] [<c001baa4>] (meson_clk_set_rate+0xa0/0×184) from [<c001bc2c>])
[    5.393711@0] [<c001bc2c>] (clk_set_rate+0xa4/0xc0) from [<c03d01d0>] (meson)
[    5.404296@0] [<c03d01d0>] (meson_cpufreq_target_locked.isra.0+0xe0/0x1c8) f)
[    5.415584@0] [<c03d02dc>] (meson_cpufreq_target+0×24/0x3c) from [<c03347f0>)
[    5.425828@0] [<c03347f0>] (__cpufreq_driver_target+0×50/0×74) from [<c033b8)
[    5.435629@0] [<c033b854>] (dbs_check_cpu+0×254/0×268) from [<c0338634>] (cs)
[    5.444486@0] [<c0338634>] (cs_dbs_timer+0×98/0xc8) from [<c0040830>] (proce)
[    5.453596@0] [<c0040830>] (process_one_work+0x20c/0×340) from [<c0040e54>] )
[    5.462973@0] [<c0040e54>] (worker_thread+0x22c/0x37c) from [<c00470a8>] (kt)
[    5.471392@0] [<c00470a8>] (kthread+0xa0/0xac) from [<c000e258>] (ret_from_f)
[    5.479632@0] —[ end trace 529d33b6db914909 ]—
[    5.484405@0] ————[ cut here ]————
[    5.489182@0] WARNING: at kernel/smp.c:244 smp_call_function_single+0×98/0×1)
[    5.496555@0] Modules linked in: aml_nftl_dev(P)
[    5.501159@0] CPU: 0 PID: 4 Comm: kworker/0:0 Tainted: P        W    3.10.331
[    5.508450@0] Workqueue: events cs_dbs_timer
[    5.512709@0] [<c0014c3c>] (unwind_backtrace+0×0/0xf8) from [<c0011d14>] (sh)
[    5.521389@0] [<c0011d14>] (show_stack+0×10/0×14) from [<c002a2dc>] (warn_sl)
[    5.530501@0] [<c002a2dc>] (warn_slowpath_common+0x4c/0x6c) from [<c002a318>)
[    5.540309@0] [<c002a318>] (warn_slowpath_null+0x1c/0×24) from [<c0070adc>] )
[    5.550552@0] [<c0070adc>] (smp_call_function_single+0×98/0x1c0) from [<c007)
[    5.560706@0] [<c0071054>] (smp_call_function+0×34/0×64) from [<c001b69c>] ()
[    5.569993@0] [<c001b69c>] (clk_set_rate_a9+0x9c/0xec) from [<c001baa4>] (me)
[    5.579454@0] [<c001baa4>] (meson_clk_set_rate+0xa0/0×184) from [<c001bc2c>])
[    5.588659@0] [<c001bc2c>] (clk_set_rate+0xa4/0xc0) from [<c03d01d0>] (meson)
[    5.599247@0] [<c03d01d0>] (meson_cpufreq_target_locked.isra.0+0xe0/0x1c8) f)
[    5.610531@0] [<c03d02dc>] (meson_cpufreq_target+0×24/0x3c) from [<c03347f0>)
[    5.620775@0] [<c03347f0>] (__cpufreq_driver_target+0×50/0×74) from [<c033b8)
[    5.630580@0] [<c033b854>] (dbs_check_cpu+0×254/0×268) from [<c0338634>] (cs)
[    5.639434@0] [<c0338634>] (cs_dbs_timer+0×98/0xc8) from [<c0040830>] (proce)
[    5.648547@0] [<c0040830>] (process_one_work+0x20c/0×340) from [<c0040e54>] )
[    5.657923@0] [<c0040e54>] (worker_thread+0x22c/0x37c) from [<c00470a8>] (kt)
[    5.666343@0] [<c00470a8>] (kthread+0xa0/0xac) from [<c000e258>] (ret_from_f)
[    5.674583@0] —[ end trace 529d33b6db91490a ]—
[    5.730322@1] mail version=-1
[    5.730386@1] Mali pp1 MMU register mapped at f8064000…
[    5.733043@1] Mali pp2 MMU register mapped at f8065000…
[    5.788499@1] mali_meson_poweron: Interrupt received.
[    5.838622@1] mail version=1
[    5.888872@1] mali_meson_poweron: Interrupt received.
[    5.938973@1] mail version=1
[    5.940077@0] platform reg-20-cs-ldo2: Driver reg-20-cs-ldo2 requests probe l
[    5.940184@1] Mali: Mali device driver loaded
[    5.948578@0] platform reg-20-cs-ldo3: Driver reg-20-cs-ldo3 requests probe l
[    5.956336@0] platform reg-20-cs-ldo4: Driver reg-20-cs-ldo4 requests probe l
[    5.963968@0] platform reg-20-cs-buck2: Driver reg-20-cs-buck2 requests probl
[    5.971858@0] platform reg-20-cs-buck3: Driver reg-20-cs-buck3 requests probl
[    5.979756@0] platform reg-20-cs-ldoio0: Driver reg-20-cs-ldoio0 requests prl
[    5.990994@1] Mali DRM initialize, driver name: mali_drm, version 2.1
[    5.994412@1] [drm] Initialized mali_drm 2.1.1 20140306 on minor 0
[    6.000306@1] Mali DRM initialize, driver name: mali_drm, version 2.1
[    6.000381@0] platform reg-20-cs-ldo2: Driver reg-20-cs-ldo2 requests probe l
[    6.000448@0] platform reg-20-cs-ldo3: Driver reg-20-cs-ldo3 requests probe l
[    6.000493@0] platform reg-20-cs-ldo4: Driver reg-20-cs-ldo4 requests probe l
[    6.000538@0] platform reg-20-cs-buck2: Driver reg-20-cs-buck2 requests probl
[    6.000582@0] platform reg-20-cs-buck3: Driver reg-20-cs-buck3 requests probl
[    6.000626@0] platform reg-20-cs-ldoio0: Driver reg-20-cs-ldoio0 requests prl
[    6.054159@1] [drm] Initialized mali_drm 2.1.1 20140306 on minor 1
[    6.059947@0] platform reg-20-cs-ldo2: Driver reg-20-cs-ldo2 requests probe l
[    6.067815@0] platform reg-20-cs-ldo3: Driver reg-20-cs-ldo3 requests probe l
[    6.075606@0] platform reg-20-cs-ldo4: Driver reg-20-cs-ldo4 requests probe l
[    6.083202@0] platform reg-20-cs-buck2: Driver reg-20-cs-buck2 requests probl
[    6.091224@0] platform reg-20-cs-buck3: Driver reg-20-cs-buck3 requests probl
[    6.098976@0] platform reg-20-cs-ldoio0: Driver reg-20-cs-ldoio0 requests prl
Starting logging: OK
Populating /dev using udev: [    6.238118@1] udevd[1696]: starting version 1.5.3
done
Initializing random number generator… done.
Starting system message bus: done
Starting network…
ip: RTNETLINK answers: File exists
[    6.726537@0] netdev_open
[    6.726592@0] Ethernet reset
[    6.726621@0] NET MDA descpter start addr=edbb9000
[    6.731963@0] phy_interface = 1
[    6.734294@0] aml_phy_init:  trying to attach to 0:01
[    6.739950@0] –1–write mac add to:edef6908: 00 15 18 01 81 31 |...1|
[    6.746450@0] –2–write mac add to:edef6908: 00 15 18 01 81 31 |...1|
[    6.752694@0] write mac add to:edef6908: 00 15 18 01 81 31 |...1|
[    6.758948@0] Current DMA mode=0, set mode=621c100
[    6.763829@0] ether leave promiscuous mode
[    6.767861@0] ether leave all muticast mode
[    6.771964@0] changed the Multicast,mcount=1
[    6.776244@0] add mac address:33:33:00:00:00:01,bit=1
[    6.781283@0] set hash low=2,high=0
[    6.784722@0] changed the filter setting to :4
[    6.789431@0] changed the Multicast,mcount=1
[    6.793407@0] add mac address:33:33:00:00:00:01,bit=1
[    6.798594@0] changed the Multicast,mcount=2
[    6.802694@0] add mac address:33:33:00:00:00:01,bit=1
[    6.807768@0] add mac address:01:00:5e:00:00:01,bit=32
[    6.812845@0] set hash low=2,high=1
[    6.816373@0] changed the filter setting to :4
[    6.821863@0] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
udhcpc (v1.22.1) started
[    6.853618@1] changed the Multicast,mcount=2
[    6.853695@1] add mac address:33:33:00:00:00:01,bit=1
[    6.857374@1] add mac address:01:00:5e:00:00:01,bit=32
[    6.866272@1] changed the Multicast,mcount=2
[    6.866677@1] add mac address:33:33:00:00:00:01,bit=1
[    6.871706@1] add mac address:01:00:5e:00:00:01,bit=32
Sending discover…
[    7.070470@0] ionvideo open
[    7.070746@0] ionvideo release
[    7.073894@0] amlvideo openamlvideo close[    9.815955@0] libphy: 0:01 – Linl
[    9.816400@0] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    9.822167@0] changed the Multicast,mcount=3
[    9.826137@0] add mac address:33:33:00:00:00:01,bit=1
[    9.831096@0] add mac address:01:00:5e:00:00:01,bit=32
[    9.836232@0] add mac address:33:33:ff:01:81:31,bit=0
[    9.841087@0] set hash low=3,high=1
[    9.844554@0] changed the filter setting to :4
Sending discover…
Sending select for 192.168.0.102…
Lease of 192.168.0.102 obtained, lease time 7200
[   11.203898@0] changed the Multicast,mcount=3
[   11.204220@0] add mac address:33:33:00:00:00:01,bit=1
[   11.208036@0] add mac address:01:00:5e:00:00:01,bit=32
[   11.212840@0] add mac address:33:33:ff:01:81:31,bit=0
deleting routers
adding dns 192.168.0.1
Starting inetd: OK
Starting supplicant…
[   11.611426@0] rtl8192cu driver version=v4.0.2_9000.20130911
[   11.611748@0] build time: Aug  3 2014 01:33:35
[   11.620702@0] usbcore: registered new interface driver rtl8192cu
[   11.639456@1] Set usb wifi power up!
Getting initial time via ntp.
Starting network time protocol daemon: ntpd.
[   32.174196@1] tvmode set to 720p
[   32.174196@1]
[   32.174488@1] TV mode 720p selected.
[   32.179220@1] [0x1b7e] = 0xff
[   32.180139@1] [0x105f] = 0×0
[   32.182999@1] [0x109d] = 0x814d3928
[   32.187992@1] [0x109e] = 0x6b425012
[   32.189948@1] [0x109f] = 0×110
[   32.192981@1] [0x109c] = 0x1043e
[   32.197340@1] [0x1066] = 0×10843
[   32.199410@1] [0x1059] = 0×100
[   32.202443@1] [0x105f] = 0×80000
[   32.206525@1] [0x105f] = 0×88001
[   32.208870@1] [0x105f] = 0×80003
[   32.212076@1] [0x104a] = 0×101
[   32.215114@1] [0x107f] = 0x8c0000c3
[   32.219575@1] [0x1bb8] = 0×52
[   32.221540@1] [0x1b62] = 0×2029
[   32.224661@1] [0x1b8d] = 0×4040
[   32.228648@1] [0x1b8e] = 0×19
[   32.230741@1] [0x1b94] = 0×288
[   32.233775@1] [0x1b95] = 0xc87
[   32.237603@1] [0x1b97] = 0xce3
[   32.239856@1] [0x1b98] = 0×50
[   32.242804@1] [0x1b99] = 0xf0
[   32.246760@1] [0x1b9a] = 0×50
[   32.248710@1] [0x1b9b] = 0x2b0
[   32.251744@1] [0x1b9c] = 0xcb0
[   32.254781@1] [0x1b9d] = 0×4
[   32.257934@1] [0x1b9e] = 0×8
[   32.260516@1] [0x1ba1] = 0×4
[   32.263374@1] [0x1ba2] = 0×8
[   32.266485@1] [0x1ba4] = 0×288
[   32.269280@1] [0x1ba3] = 0xc87
[   32.272314@1] [0x1ba6] = 0x1d
[   32.275265@1] [0x1baf] = 0x2ec
[   32.278526@1] [0x1ba7] = 0×100
[   32.281346@1] [0x1ba8] = 0xa8
[   32.284292@1] [0x1ba9] = 0xa8
[   32.287506@1] [0x1baa] = 0×100
[   32.290286@1] [0x1bab] = 0×0
[   32.293146@1] [0x1bac] = 0×5
[   32.296877@1] [0x1bae] = 0x2ed
[   32.299045@1] [0x1b68] = 0×100
[   32.302081@1] [0x1b60] = 0×0
[   32.304945@1] [0x1b6e] = 0×200
[   32.308157@1] [0x1b58] = 0×0
[   32.310851@1] [0x1b7e] = 0×0
[   32.313712@1] [0x1b64] = 0×9061
[   32.316997@1] [0x1b65] = 0xa061
[   32.319965@1] [0x1b66] = 0xb061
[   32.323086@1] [0x1b78] = 0×1
[   32.326140@1] [0x1b79] = 0×1
[   32.328818@1] [0x1b7a] = 0×1
[   32.331680@1] [0x1b7b] = 0×1
[   32.334543@1] [0x1b7c] = 0×1
[   32.337586@1] [0x1b7d] = 0×1
[   32.340274@1] [0x271a] = 0xa
[   32.343137@1] [0x1bfc] = 0×1000
[   32.346555@1] [0x1c0d] = 0×3102
[   32.349390@1] [0x1c0e] = 0×54
[   32.352338@1] [0x1b80] = 0×1
[   32.355202@1] [0x1b57] = 0×0
[   32.358225@1] tvoutc_setmode[397]
[   32.361368@1] mode is: 6
[   32.363883@1] config HPLL
[   32.366635@1] config HPLL done
[   32.369559@1] new mode 720p
[   32.369559@1]  set ok
[   32.374674@1] hdmitx: video: get current mode: 720p
[   32.379872@1] hdmitx: system: already init VIC = 0  Now VIC = 4
[   32.385427@1] set mode VIC 4 (cd0,cs0,pm1,vd0,1)
[   32.390258@1] hdmitx: system: hw reset
[   32.393854@1] HDMI: get brd phy data
[   32.398016@1] hdmi phy setting

[   32.401553@1] hdmitx: audio: SPDIFHDMI: get brd phy data
[   32.406030@1] hdmi phy setting
[   32.408996@1] hdmitx: system: set pll
[   32.412575@1] hdmitx: system: param->VIC:4
[   32.416787@1] mode is: 6
[   32.419172@1] config HPLL
[   32.421774@1] config HPLL done
[   32.447232@1] hdmitx: system: fixed HDMI mode output
[   32.447327@1] Sink is HDMI device
[   32.449879@1] No sink attached
[   32.458075@0] set_vout_mode[156]
[   33.114100@0] create_disp_get_ump_secure_id******0
[   33.116636@0] create_disp_get_ump_secure_id******1

If you want a useable desktop image, you can install Lubuntu in the Ubuntu 14.04 core image provided by the company. A ready-to-use Ubuntu 14.04 firmware with video decoding will be made available a little later.

I haven’t tried the current image due to time contraints, and because it does not support hardware video decoding yet. But here’s what you’d need to do to install Lubuntu 14.04:

  1. Download Ubuntu 14.04 for Wetek Play
  2. Flash the image to a micro SD card with dd or Win32DiskImager as shown above, using 8GB micro SD at least, and preferably Class 10 for better performance
  3. Insert the micro SD card into Wetek Play, connect the serial console, and power the device.
  4. In the serial console (connected via minicom, Hyterminal, putty,….), install Lubuntu as follows:
    apt-get update
    apt-get upgrade
    apt-get install lubuntu-desktop
    sync
    reboot
  5. After reboot, you should be able to access the LXDE desktop environment.
Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

How to Build and Run Android L 64-bit ARM in QEMU

August 23rd, 2014 6 comments

Most people can’t afford Juno Cortex A57/A53 development board, and mobile processors based on the latest 64-bit ARM cores are only expected by early 2015. But thanks to a small team at Linaro, you can now build and run Android L 64-bit ARM in the latest version of QEMU that supports Aarch64. Alex Bennée, an engineer working for Linaro, wrote a blog post in Linaro’s Core Dump blog explaining the Android emulator is actually based on QEMU,  the differences compared to mainline QEMU, the work they’ve done on Android L at Linaro, and most importantly, provided the basic steps showing how to build and try Android L 64-bit ARM (ARMv8) in QEMU. I’ve just done that, but unfortunately, albeit the builds complete, I could not manage to start Android L in QEMU yet. If you still want to give it a try, you’ll need a Linux PC, and patience, as it may take about one day to retrieve the source code, and build everything from source.

Android_L_64-bit_ARM_QEMU

I’ve done all this in a computer running Ubuntu 14.04 with an AMD FX8350 processor and 16 GB RAM.

First, you’ll need to install an ARM 64-bit toolchain, some dependencies, and tools:

sudo apt-get install gcc-aarch64-linux-gnu build-essentials git bison zlib1g-dev \
libglib2.0-dev libpixman-1-dev gperf android-tools-adb

The next step is to cross-compile a Linux 3.10 kernel for Android:

mkdir -p ~/edev/linaro
git clone https://git.linaro.org/people/christoffer.dall/linux-android.git
cd linux-android
git checkout ranchu-linaro-beta1

There’s a bug include the current version of the toolchain in Ubuntu 14.04 (https://bugs.launchpad.net/linaro-linux-baseline/+bug/1258013) which prevents the build to complete. You can either remove CONFIG_DEBUG_INFO=Y in arch/arm64/configs/ranchu_defconfig (I did that), or update your toolchain. Let’s complete the build:

ARCH=arm64 make ranchu_defconfig
ARCH=arm64 make CROSS_COMPILE=aarch64-linux-gnu- -j8

Now you need to build the Android Open Source Project (AOSP). If you haven’t done so, you’ll have to install the repo tool:

mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

Then get AOSP source code (master as below, or l-preview branch):

cd ..
mkdir AOSP
repo init -u https://android.googlesource.com/platform/manifest
repo sync

The last step can take a few hours depending on your internet connection to Google servers.
Now download and apply a patch made by Linaro:

wget http://people.linaro.org/~christoffer.dall/linaro-devices.tar.gz
tar -xvf linaro-devices.tar.gz

Possibly configure git:

git config --global user.email "[email protected]"
git config --global user.name "Your Name"

And build Android L for ARMv8:

source build/envsetup.sh
lunch ranchu-userdebug
m -j8

The last step will again take a while. It took my machine 2 or 3 hours, and the total time was actually a bit more than than as my PC suffered two thermal shutdowns during the build, and I had to restart the build twice. The last time, I decided to underclock my CPU to 3.4 GHz, and the build went through.

The last step before running Android L is to build QEMU:

cd ..
git clone https://git.linaro.org/people/peter.maydell/qemu-arm.git
cd qemu-arm

git checkout ranchu-linaro-beta1
make -j8

Builds should now all be successfully complete. We just need to create some symlinks helping to shorten qemu command line, and run QEMU:

cd ..
ln -s linux-android/arch/arm64/boot/ ranchu-kernel
ln -s AOSP/out/target/product/ranchu/ ranchu-build
./qemu-arm/aarch64-softmmu/qemu-system-aarch64 -cpu cortex-a57 -machine type=ranchu -m 4096 \
-kernel ./ranchu-kernel/Image -append 'console=ttyAMA0,38400 keep_bootcon' -monitor stdio \
-initrd ranchu-build/ramdisk.img -drive index=2,id=userdata,file=ranchu-build/userdata.img \
-device virtio-blk-device,drive=userdata -device virtio-blk-device,drive=cache \
-drive index=1,id=cache,file=ranchu-build/cache.img -device virtio-blk-device,drive=system \
-drive index=0,id=system,file=ranchu-build/system.img -netdev user,id=mynet \
-device virtio-net-device,netdev=mynet -show-cursor

That’s the output I get:

QEMU 2.0.50 monitor - type 'help' for more information
(qemu) adb_server_notify: Failed to establish connection to ADB server
console on port 5554, ADB on port 5555
VNC server running on `127.0.0.1:5900'

So it’s quite possible there’s a problem with adb, but Google did not help, and I failed to go further. More detailed instructions will soon be posted in Linaro Wiki, so I may be able to find out where I made a mistake once it’s posted.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Unboxing of WeTek Play DVB-S2 Android / Linux STB

August 14th, 2014 16 comments

WeTek Electronics, a company based in Hong Kong, has sent me an Android TV powered by Amlogic AML8726-MX dual core Cortex A9 processor. Nothing new here, but I was very very interested in reviewing it because it includes a DVB-S2 tuner, and on top of their stock Android firmware, the company provides various Android and Linux firmware files such as CyanogenMod, ParanoidAndroid, OpenELEC, Linux with Enlightenment desktop environment, Lubuntu 14.04 and so on. Today, I’ll list the hardware specifications of the device, show some unboxing pictures and video, and as usual, open the device to see what’s inside. I’ll provide a full review in one or two more posts.

WeTek Play Specifications

Apart from the DVB-S2 tuner are the serial port, the hardware specifications sound familiar:

  • SoC – Amlogic AML8726-MX dual core Cortex A9 @ 1.5GHz with Mali-400MP GPU
  • System Memory – 1GB DDR3
  • Storage – 4 GB NAND flash + 1x micro SD slot
  • Video Output – HDMI, AV (CVBS + R/L audio)
  • Audio Output – HDMI, AV, and optical S/PDIF
  • Connectivity – 10/100M Ethernet, 802.11 b/g/n Wi-Fi , and Bluetooth 4.0 (AP6210)
  • USB – 3x external USB 2.0 ports, 2x internal USB 2.0 ports (used)
  • Misc – IR receiver, 3 LEDs for power, Ethernet and Wi-Fi, RS-232 port for serial console.
  • Power – 12V/1.5A

The remote control uses RF technology (air mouse), as well as IR for power on/off.

WeTek Play Unboxing

I’ve received the box via TNT in the package below, together with a registration card with a QR code.

WeTek_Play_PackageThe QR code redirected to a registration page (under development), but in the final product it will simply redirect to WeTek.com, and you just need to click on Activate your device to join the membership section. I’ve been told this can also be done in the box itself with the Welcome Wizard.

WeTek Play and Accessories (Click to Enlarge)

WeTek Play and Accessories (Click to Enlarge)

Inside the package you’ve got two boxes: one with WeTek Play box, and the other with an IR + RF remote control / air mouse, a 12V/1.5A power supply, and, to my surprise, a serial cable (TTL to RS232). There’s no user’s manual with this early sample, but the final product will come with the user’s manual (See PDF), and a HDMI cable. The two AAA batteries required by the remote control are not included, but you’ll probably want to use rechargeable battery with RF remotes as the ones I have need to be recharged every 2 weeks or so.

WeTek Play (Click to Enlarge)

WeTek Play (Click to Enlarge)

The box is made of plastic, but still feel nice. At the front, we’ve got a power button, and the three LEDs for power, LAN, and Wi-Fi, on one side, we can find a USB port, and the micro SD slot, and on the back panel, there are two antenna connectors for DVB-S2, 2 more USB 2.0 ports, the AV port, Ethernet (RJ45), HDMI output, optical S/PDIF, the RS-232 connector, and the power jack.

If you’d rather watch an unboxing video, and listen to my soothing voice, here it is…

Wetek Play Main Board and DVB-S2 Tuner

And now the fun part. The back of the enclosure comes with 4 rubber pads, that I had to remove in order to remove the 5 screws. You’ll also notice the box can be wall-mounted, and there’s a upgrade through hole for firmware upgrade.

Bottom of WeTek Play Enclosure (Click to Enlarge)

Bottom of WeTek Play Enclosure (Click to Enlarge)

The top cover does not pop-up that easily, and I took off the Wi-Fi cable as I opened it, and I’ll need to do some soldering. The final product will come with a Wi-Fi connector, so that issue is less likely to happen for the few people that may open the box.

Top of WeTek Play Board (Click to Enlarge)

Top of WeTek Play Board (Click to Enlarge)

So we’ve got a daughter board with two DVB-S2/S tuners with Availink AVL6211 channel receiver (enhanced version of AVL2108), and the mainboard simply called MX with the Amlogic processor and memory, AP6210 Wi-Fi module, another AVL6211 chip, and two USB dongles with PCB marking reading “USB Token” and “2.4G dongle”.

RF Dongle and USB Token

RF Dongle and USB Token

The one of the top is the 2.4G RF receiver for the remote control, which I find it much nicer than having to connect it outside. I’ve taken it out, and Linux reports it as a USB keyboard mouse by HGBIC (VID=0×2252, PID=0×0100). The dongle at the bottom, is not recognized by Linux, but I’ve been told it’s an anti-copy USB token to protect the firmware, and avoid clones using their firmware. The box won’t boot if you remove this dongle.

Wi-Fi Antenna

Wi-Fi Antenna

Another intriguing part is the way the Wi-Fi antenna is fixed to the enclosure. I’m not sure why it is done that way, but I’ve never seen anything like it in the other boxes I opened.

Bottom of WeTek Play Board (Click to Enlarge)

Bottom of WeTek Play Board (Click to Enlarge)

There’s not that much to see at the back of the board.

WeTek Play does not seem to be available yet, and the company is looking for distributors.

That’s all for today. Next, I’ll probably test Android, especially the satellite receiver part, and post a review, following up by a review of the Linux images with VPU support (hardware video decoding) via Gstreamer (Gplay), but maybe not DVB-S support (TBC).

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Toshiba TZ5000 ApP Lite Media Player Development Kits Run Android 4.4 and Ubuntu Linux

August 13th, 2014 4 comments

Toshiba has recently announced two development kits powered by their TZ5000 ApP Lite SoC featuring two ARM Cortex A9 cores, PowerVR SGX540 GPU, PowerVR VXD395 GPU, an optional 4GB MLC NAND, and Ensigma C4500 Wi-Fi baseband engine into a single chip solution that targets Over-The-Top (OTT) tuners and IP media boxes, wearable devices, digital signage, thin clients, and more. The first development kit, RBTZ5000-6MA-A1, is a full size board that supports Ubuntu, the other one, RBTZ5000-6MA-A1, is an HDMI stick form factor board running Android 4.4.

Toshiba RBTZ5000-2MA-A1 Board (Ubuntu)

RBTZ5000-2MA-A1 Ubuntu Development Kit

RBTZ5000-2MA-A1 Ubuntu Development Kit

RBTZ5000-2MA-A1 Starter Kit specifications:

  • SoC – Toshiba TZ5011XBG dual core Cortex A9 processor @ 1.0 GHz with PowerVR VPU and GPU, and Ensigma C4500 Wi-Fi baseband engine
  • System Memory – DDR3L-1600
  • Storage – 8GB eMMC (external) + MicroSDXC
  • Connectivity – Wi-Fi 802.11a/b/g/n/ac 2×2 MIMO  (via Ensigma C4500), Bluetooth 4.0. Ethernet is available via a daughter board connected to ADB.
  • USB -  2x micro USB 2.0 host ports (via expansion board), and 1x micro USB device port
  • Video Output – HDMI 1.4b, MIPI DSI LCD screen connector (via expansion board)
  • Camera -  MIPI® CSI-2  camera connector
  • Audio – I2S, S/PDIF
  • Debugging – UART and JTAG
  • Expansions – Various headers with peripherals such as cameras or microphones.
  • Dimensions – 90mm x 55mm

The Linux SDK includes Ubuntu rootfs, U-Boot, and drivers for Ethernet/Wi-Fi/Bluetooth, USB, UART, GPIO, e・MMC/SD/SDIO, I2S, and TIMER/DMA/PWM/PMU.

Toshiba RBTZ5000-6MA-A1 Board (Android)

RBTZ5000-6MA-A1 Android Development Kit

RBTZ5000-6MA-A1 Android Development Kit

Starter Kit specifications:

  • SoC – Toshiba TZ5001MBG dual core Cortex A9 processor @ 800 MHz with PowerVR VPU and GPU, and Ensigma C4500 Wi-Fi baseband engine, and 4GB on-chip NAND flash.
  • System Memory – DDR3L-1600
  • Storage – 4GB on-chip NAND flash
  • Connectivity – Wi-Fi 802.11a/b/g/n/ac 2×2 MIMO  (via Ensigma C4500), Bluetooth 4.0
  • USB -  1x micro USB OTG port
  • Video Output – HDMI 1.4b
  • Debugging – UART and JTAG
  • Dimensions – 24mm x 57mm

The board has been mainly developed for transmission of audio, video and other media for streaming delivery. The Android 4.4 SDK also comes with the same driver as for the Linux SDK.

Toshiba TZ5000 ApP Lite SoC

Toshiba ZP500 Block Diagram

Toshiba ZP500 Block Diagram

Toshiba is an interesting SoC in that it embeds Wi-Fi and internal Storage, on top of the CPU, GPU and VPU combo usually found in most application processors.

Key features includes:

  • Embedded IEEE802.11a/b/g/n/ac 2×2 MIMO Baseband Engine (Ensigma™ C4500)
  • Flash Memory – Embedded 32Gbit MLC NAND (Optional, depends on model)
  • CPU – Dual-core ARM Cortex-A9 MPCore / NEON @ up to 1.2GHz with 256KB L2 cache
  • GPU – PowerVR SGX540
  • VPU – PowerVR VXD395
  • Graphics/Video Engine – 1080p@60fps Multi Format Decoder, IPC, Scalar, Rotator, Composer
  • High-Speed I/O – DDR3/3L/LP-DDR3, USB OTG, SDIO 3.0, HDMI, MIPI CSI and DSI
  • Peripherals I/Os – 3x I2C, 32x GPIO, 2x I2S, 3x UART, 6x PWM, SPDIF

Toshiba ZP5000 was first unveiled in February 2014, and TZ5000 ApP Lite starter kit samples will begin shipping in October 2014. Pricing has not been disclosed. Further information can be found on ZP5000 product page. I could not find any pages for the starter kits at this time.

Via LinuxGizmos

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Android-x86 4.4 Stable Released for x86 Computers, Laptops, Netbooks…

August 10th, 2014 5 comments

There are several methods to run Android in an x86 computer or laptop, but Android-x86 could be one of the best to do that, and the developers have just released the first stable release for Android-x86 4.4 Kitkat. This release includes support for OpenGL ES hardware acceleration for AMD Radeon and Intel graphics, ffmpeg integration to support HD video playback in apps, and more.

Android-x86 4.4 in VirtualBox (Click for Original Size)

Android-x86 4.4 in VirtualBox (Click for Original Size)

The file to download is android-x86-4.4-r1.iso, which you can then install on a USB flash drive:

sudo dd if=android-x86-4.4-r1.iso of=/dev/sdX

where /dev/sdX is the device name of your usb drive. If you are a Windows users you can use Win32DiskImager utility instead. Android should then boot from USB, and you can decide to run it from USB or install it on you hard drive. I haven’t done this, but instead, I’ve created a new Linux 32-bit virtual machine in VirtualBox without internal storage to try it out quickly in my PC running Ubuntu 14.04.

It boots really fast, but I’ve noticed you can’t use the mouse by default. But the fix is simple: Click on Machine > Disable Mouse Integration in VirtualBox menu. At first you go through a wizard to configure a few things. I was  surprised to see Google Play, YouTube, Gmail… pre-installed in the system, and I could login and download a few apps. Unfortunately, many apps would not run including Antutu benchmark, and Buggy Beach Blitz 3D game, but I saw some OpenGL ES error in the log, so it might be because of VirtualBox graphics drivers, and work better while booting from a USB drive. ES File Explorer and MX Player both worked, and I could play a 1080p/H.264 video smoothly.

The changelog for key features is shown below:

  • Integrate the ffmpeg as the stagefright-plugins to support much more multimedia files. Now we can play HD and full HD videos in apps.
  • Use the latest long term stable kernel 3.10.52 with more drivers enabled. Most netbooks can run Android-x86 in the native resolution.
  • OpenGL ES hardware acceleration for AMD Radeon and Intel chipsets (PowerVR chips are NOT supported).
  • Enhance the installer to support upgrade from previous versions (since ics-x86). The text based GUI installer supports ext3/ext2/ntfs/fat32 filesystems.
  • KitKat style launcher (Trebuchet).
  • Support Multi-touch, Wifi, Audio, Bluetooth, G-sensor and Camera.
  • Support Huawei 3G modem.
  • Simulate sdcard by internal storage.
  • External usb drive and sdcard are auto mounted to /storage/usbX on plugging. Support filesystem vfat/ntfs/exfat/ext4.
  • Support hybrid mode of iso images.
  • Multi-user support (max 8).
  • Support Ethernet (DHCP only).
  • Support 5-point touch calibration on some devices.
  • Support VM like Qemu and VMware.

Android-x86 source code is available via the project’s git repo:

repo init -u http://git.android-x86.org/manifest -b kitkat-x86
repo sync

The complete instructions to build Android-x86 can be found here.

Via Liliputing

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

EasyEDA is a Web-based Schematics Capture, Simulation, and PCB Layout Tool

August 1st, 2014 1 comment

I recently watched a video showing AllWinner R&D, and I noticed although most (all?) software engineer run Ubuntu in the PC, the hardware engineers all relied on Windows based EDA tools for schematics capture and PCB Layout. There already Linux-based tools such as Kicad, which appears to be good for new projects, but importing existing projects can be an issue. An alternative to operating system dependent EDA software suites are web-based tools. I’ve already tried Fritzing which allows to draw circuits on breadboard, convert these to schematics and PCB layouts, and order the PCBs. It looks pretty good for its purpose, but it’s limited to mostly simple designs, and AFAIK can’t be used to replace an EDA suite. That’s where EasyEDA comes into play.  It’s a web-based tool where you can draw schematics, perform simulation, and create PCB layouts for your project, either keeping them private, or sharing them with the community.

I’ve given it a quick try in Ubuntu 14.04 with Firefox 28, by drawing a schematic with an LED and a resistor, and it feels very much like using a desktop based schematics capture program with libraries, you select and place components with the mouse, create nets, and so on.

EasyEDA (Click to Enlarge)

EasyEDA (Click to Enlarge)

Once you are done with the schematics, you can click on the PCB icon “Convert Project to PCB”, and arrange the component as needed. Once you are done, you can generate and export the Gerber files and BoM, save or export your project (EasyEDA, PDF, svg, or image only). There’s also an option to order the PCB via EasyEDA, and this appears to be the only way they monetize the system, as everything else seems to be free of charge.

I also wanted to import a project, as at the time I tried, it was one of the weakness of Kicad, as although there’s an import function in Kicad, but it did not work very well for me. EasyEDA can import schematics, PCB layout or libraries in Altium/Proxel DXP ASCII format, and Eagle format, and it can also handle LTspice schematics and symbol, as well as Kicad libs and modules.

So I wanted to try a schematics from an open source hardware projects. The three that comes to me when “Open Source Hardware” works pop up are BeagleBone, Olimex, and Arduino. BeagleBone is released in Orcad format, which is not supported by EasyEDA, so I tried this with Olimex OLinuXino-A10-LIME hardware schematics and PCB layout (Rev C.).

OlinuXino-A10-LIME Schematics Imported to EasyEDA (Click to Enlarge)

OlinuXino-A10-LIME Schematics Imported to EasyEDA (Click to Enlarge)

OlinuXino-A10-LIME PCB Layout Imported to EasyEDA (Click to Enlarge)

OLinuXino-A10-LIME PCB Layout Imported to EasyEDA (Click to Enlarge)

At first glance, the results appear to be quite decent, as both schematics and PCB layout imports did not generate a massive mess. However, EasyEDA recommends to check for errors for imported files. As a quick test, I clicked on “Convert Project to PCB” for the imported schematics, the system reported over 300 errors, with specifying the type of error, but it looks like it could not regonize some packages, so maybe I’d also have to import some others libs. In case of the imported PCB layout, I can read “Errors 2566″, which does not feel reassuring… So the import function works, but it’s not all magic, and still requires some work from the engineer.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Linaro 14.07 Release with Linux Kernel 3.16 and Android 4.4

August 1st, 2014 No comments

Linaro 14.07 has just been released with Linux Kernel 3.16-rc6 (baseline), Linux Kernel 3.10.50 (LSK), and Android 4.4.4.

This month, Linaro has continued development on Juno 64-bit ARM development board, as well as other member boards from Broadcom (Capri), Qualcomm (IFC6410), Hisilicon D01, Samsung (Arndale / Arndale Octa), etc.. Android have been upgraded to version 4.4.4 with images released for Pandaboard, Arndale, Nexus 10, and Nexus 7, built with Linaro GCC 4.9.

Here are the highlights of this release:

  • Linux Linaro 3.16-rc6-2014.07 released
    • GATOR version 5.18 (same version as in 2014.04)
    • updated basic Capri board support from Broadcom LT. Good progress in upstreaming the code: now the topic has 21 patch on top of v3.16-rc4 vs 53 patches on top of v3.15 in 2014.06 cycle
    • removed cortex-strings-arm64 topic as the code is accepted into the mainline
    • new topic from Qualcomm LT to add IFC6410 board support
    • updated Versatile Express ARM64 support (FVP Base and Foundation models, Juno) from ARM LT. cpufreq support for Juno has been added.
    • updated Versatile Express patches from ARM LT
    • more HiP0x Cortex A15 family updates from HiSilicon LT
    • switched to mainline support for Arndale and Arndale-octa boards
    • updated llvm topic (follows the community llvmlinux-latest branch)
    • Big endian support (the 2014.05 topic version rebased to 3.16 kernel)
    • removed ftrace_audit topic as the code is accepted into the mainline
    • config fragments changes – added ifc6410.conf
  • Linaro Toolchain Binaries 2014.07 released – Based on GCC 4.9 and updated to latest Linaro TCWG releases:  Linaro GCC 4.9-2014.07 & Linaro binutils 2.24.0-2014.07
  • Linaro Android 14.07 released
    • built with Linaro GCC 4.9-2014.07
    • Pandaboard, Arndale, Nexus 10, Nexus 7 upgraded to Android 4.4.4.
    • LSK Engineering build moved back to 4.4.2.
    • Android LSK v3.14 CI loop added
  • Linaro OpenEmbedded 2014.07
    • Integrated Linaro GCC 4.9-2014.07
    • Integrated Linaro EGLIBC 2.19-2014.07
    • Integrated Linaro binutils 2.24.0-2014.07
    • Upstreaming:
      • fixes recipes related to oe-core autotools update
      • cleaned up overlayed recipes
      • updated PM QA to 0.4.12
  • Linaro Ubuntu 14.07 released
    • added gstreamer 1.0
    • updated packages: ARM trusted firmware (support latest FVP models), PM QA (0.4.12), LSK 3.10.49/3.14.13 and linux-linaro 3.16-rc6 kernels.
  • Integrate ARMv8 Big endian systems into LAVA and CI
  • Migrate Linaro Android builds to 4.9 Linaro toolchain
  • LSK: add ARMv8 kernel + arm32 rootfs CI loop
  • Package rt-app
  • LSK: enable member kernel configs for build testing

You can visit https://wiki.linaro.org/Cycles/1407/Release for a list of known issues, and further release details about the LEB, LMB (Linaro Member Builds), and community builds, as well as Android, Kernel, Graphics, Multimedia, Landing Team, Platform, Power management and Toolchain components.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter