Archive

Posts Tagged ‘kernel’

Ubuntu 12.04 Now Boots on Rockchip RK3188 mini PCs (T428, MK908, Rikomagic MK802 IV…)

June 15th, 2013 17 comments

After the release of the RK3188 Linux kernel source code last week, Ian Morrison (Linuxium) has managed to boot Ubuntu 12.04 with XFCE desktop on Tronsmart T428. However, as Tronsmart refused to release their source code, further Linux development is likely to happen on Rikomagic MK802 IV, because Rikomagic released the code for their device, so development work will be easier.

Rikomagic_MK802_IV_Ubuntu_Linux

AFAIK, this is the first time Linux boots natively on RK3188 devices, so it’s still early stage (no Wi-Fi, Bt or graphics acceleration), but if you still want to give it a try here are the instructions (for T428):

  1. Create a SDCARD with an Ubuntu 12.04 root file system on it and ensure it is labeled as “linuxroot” (Visit Slatedroid for details)
  2. Flash your RK3188 minipc with rooted stock 4.1.1 ROM. (May not be needed if you ROM is already rooted)
  3. Boot Android, and install Android Terminal
  4. Flash t428-3.0.36-linuxium-test+-kernel.img as recovery.img with RKAndroidTool. (I can’t find the binary, and my Internet connection does not allow me to access all files right now, but you may want to follow the build instructions to get the image.) [Update: See comment for kernel binary and modules]
  5. Reboot your mini pc, start the Terminal in Android, type “su” to become root, and finally type “reboot recovery” to reboot into Linux.

It’s safe to try as those instructions should not affect your Android installation.

Ian also ran some benchmarks from Phoronix Suite to compare Linux performance in a chroot in Android via Linux Complete Installer (T428-ubuntu-complete) and native Linux (t428-linuxium). The third column is for an RK3066 mini PC (iStick A200) running Linux natively.

T428_Chroot_Linux

None of those tests do not require a graphical interface, and results are pretty close. Native Linux has a slight advantage with many of them, but for some reasons Linux running in Android appears to have a clear edge for PyBench.

PicUntu developers are already aware of this progress, so you can expect RK3188 PicUntu soon. Further details are available on Mini PC G+ Community including logs, kernel config, and some documentation.

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

Wandboard Dual Benchmarks, Serial Console Fun, and Distributions List

June 11th, 2013 5 comments

Since last time I tried Android and Ubuntu on the Wandboard, a few things happened. I’m not talking about Wandboard Quad announcement, but instead I received a Class 10 SD card, which makes the system so much responsive, and a RS232 to USB adapter so that I can access the serial console. So today, I’ll publish some benchmark results on Wandboard Dual since none appear to be available, and play a little with the serial console. A few things also happened on the operating systems side with more distributions now available for the board.

Prerequisites

I ran benchmark in Android, so I installed the latest Android 4.1.2 image (11th of April 2012) to my new SD card (ADATA 16 GB Class 10), and contrary to my poor experience on a 4GB Class 4 micro SD, everything was very fluid. I’ve also installed Google Play in order to install the applications. To do so in any device, you need to download the latest version for your Android version from http://goo.im/gapps. In our case (Android 4.1.2), we need to download gapps-jb-20121011-signed.zip, extract it and copy the files in the micro SD card in a Linux PC:

cd ~/
mkdir gapps-jb
cd gapps-jb 
unzip ~/Downloads/gapps-jb-20121011-signed.zip 
sudo cp ~/gapps-jb/system/* /media/system/ -rf 
sync
In order to capture screenshots, I also had to root the device using the following steps from a Linux PC with Wandboard connected to the PC via its mini USB port:
wget http://downloads.androidsu.com/superuser/su-bin-3.1.1-arm-signed.zip
unzip su-bin-3.1.1-arm-signed.zip
adb push system/bin/su /mnt/sdcard/su
adb shell
mount -o remount,rw /system
busybox cp /mnt/sdcard/su /system/xbin/su
chmod 6755 /system/xbin/su
sync
reboot
At this point you should get a rooted image with a working Google Play on the Wandboard, the final step is to install superuser so that you can control which apps get root access.

Antutu and Quadrant Benchmarks on Wandboard Dual

The screen will rotate with both Antutu 3.3 and Quadrant benchmark, so they are performed in portrait mode. This is using full screen, so the results should still be valid for comparison. The board also overheated once during Antutu’s 3D Graphics benchmarks, and froze. A immediate reboot of the board showed the following message:
CPU: Freescale i.MX6 family TO1.1 at 792 MHz 
CPU is 80 C, too hot to boot, waiting... 
Temperature:   73 C, calibration data 0x59952b5f
I turned the board around so that i.MX6 SoC can get better ventilation, and the benchmark could complete.
Wandboard Antutu

With 6190 points, Wandboard Dual performance is between Amazon Kindle Fire (TI OMAP4430) and Samsung Galaxy Nexus (TI OMAP4460), which seems about right. This also compares to 8516 points in Hi-802 (Freescale i.MX 6 Quad), with the quad version getting double the score for integer, over 50% more for RAM and floating-point tests. Surprisingly 3D graphics results are better in Wandboard Dual (1771) compared to Hi-802 (1272) in Antutu. This is an anomaly that could either be due to a different Android version (4.0 vs 4.1) and/or better drivers, or the orientation during the test really affects the results.

Wandboard_Quadrant

Quadrant benchmark places the device just below LG Optimus 2X (Nvidia Tegra 2) and Galaxy Nexus, so no surprises here.

Setting-up the Serial Console on Wandboard

Many boards provide access to the serial console via +3.3V TTL signals, so you can just connect a TTL to USB board. The Wandboard uses RS232 signals, so you’ll need a different type of debug board, or simply a null-modem cable if your computer features a DB-9 serial connector. Mine does not, so I bought a cheap RS232 to USB converter. Build quality is poor, but it does the job. At first, I thought I could just connect it directly to the Wandboard, but it also needs a null-modem cable, Since I don’t have one myself, I used three breadboard wires instead connecting Tx, Rx, and GND following the diagram below:

Source: Microtik

Source: Microtik

I only connected pin 2,3 and 5, and ignored the other connection which are not needed for our purpose. The picture below shows the end result. I just connect the RS232 to USB converter to a USB hub to access it from Linux or Windows.

Wandboard UART Connection

In Linux (Ubuntu 12.04), the converter is immediately recognized, and you can just access the serial port with minicom, after setting up 115200bps/8n1 connection to /dev/ttyUSB0. In Windows, you’ll need to install a driver either from the provided CDROM, or download CH341SER.zip.

For reference, here’s the boot log from Android 4.1.2:

U-Boot 2009.08 (Apr 11 2013 – 15:55:59)CPU: Freescale i.MX6 family TO1.1 at 792 MHz
Temperature: 67 C, calibration data 0x59952b5f
mx6q pll1: 792MHz
mx6q pll2: 528MHz
mx6q pll3: 480MHz
mx6q pll8: 50MHz
ipg clock : 66000000Hz
ipg per clock : 66000000Hz
uart clock : 80000000Hz
cspi clock : 60000000Hz
ahb clock : 132000000Hz
axi clock : 198000000Hz
emi_slow clock: 99000000Hz
ddr clock : 396000000Hz
usdhc1 clock : 198000000Hz
usdhc2 clock : 198000000Hz
usdhc3 clock : 198000000Hz
usdhc4 clock : 198000000Hz
nfc clock : 24000000Hz
Board: i.MX6DL/Solo-WandBoard: unknown-board Board: 0×61011 [WDOG ]
Boot Device: SD
DRAM: 1 GB
MMC: FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2
*** Warning – bad CRC or MMC, using default environmentIn: serial
Out: serial
Err: serial
Gotr MAC = 00:1F:7B:B2:02:F4
Net: got MAC address from IIM: 00:1f:7b:b2:02:f4
FEC0 [PRIME]
Hit any key to stop autoboot: 0
kernel @ 10808000 (2289836)
ramdisk @ 11800000 (169948)
kernel cmdline:
use boot.img command line:
console=ttymxc0,115200 init=/init video=mxcfb0:dev=hdmi,1280x720M@60,ifStarting kernel …

[ 0.000000] Linux version 3.0.35 (root@edward-x220-laptop) (gcc version 4.6.3
[ 0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
[ 0.000000] CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine: Freescale i.MX 6DualLite/Solo Wandboard
[ 0.000000] EDWARD : ram console init at phys 0x3ff00000
[ 0.000000] EDWARD : GPU_Reserved Memory equals to 184549376
[ 0.000000] EDWARD : gpumem init at phys 0×15000000
[ 0.000000] Memory policy: ECC disabled, Data cache writealloc
[ 0.000000] CPU identified as i.MX6DL/SOLO, silicon rev 1.1
[ 0.000000] PERCPU: Embedded 7 pages/cpu @80f67000 s5696 r8192 d14784 u32768
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pa0
[ 0.000000] Kernel command line: console=ttymxc0,115200 init=/init video=mxce
[ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Memory: 80MB 511MB 212MB = 803MB total
[ 0.000000] Memory: 805480k/805480k available, 243096k reserved, 0K highmem
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 – 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 – 0xfffe0000 ( 896 kB)
[ 0.000000] DMA : 0xfbe00000 – 0xffe00000 ( 64 MB)
[ 0.000000] vmalloc : 0xc0800000 – 0xf2000000 ( 792 MB)
[ 0.000000] lowmem : 0×80000000 – 0xc0000000 (1024 MB)
[ 0.000000] pkmap : 0x7fe00000 – 0×80000000 ( 2 MB)
[ 0.000000] modules : 0x7f000000 – 0x7fe00000 ( 14 MB)
[ 0.000000] .init : 0×80008000 – 0×80038000 ( 192 kB)
[ 0.000000] .text : 0×80038000 – 0x805de000 (5784 kB)
[ 0.000000] .data : 0x805de000 – 0x80620f80 ( 268 kB)
[ 0.000000] .bss : 0x80620fa4 – 0x8075ffe0 (1277 kB)
[ 0.000000] SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=2, 1
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] NR_IRQS:496
[ 0.000000] MXC GPIO hardware
[ 0.000000] sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1s
[ 0.000000] Set periph_clk’s parent to pll2_pfd_400M!
[ 0.000000] arm_max_freq=2
[ 0.000000] MXC_Early serial console at MMIO 0×2020000 (options ’115200′)
[ 0.000000] bootconsole [ttymxc0] enabled
[ 0.000000] Console: colour dummy device 80×30
[ 0.245885] Calibrating delay loop… 1581.05 BogoMIPS (lpj=7905280)
[ 0.334225] pid_max: default: 32768 minimum: 301
[ 0.339085] Mount-cache hash table entries: 512
[ 0.344360] CPU: Testing write buffer coherency: ok
[ 0.450152] CPU1: Booted secondary processor
[ 0.539562] Brought up 2 CPUs
[ 0.546824] SMP: Total of 2 processors activated (3162.11 BogoMIPS).
[ 0.571679] print_constraints: dummy:
[ 0.575671] NET: Registered protocol family 16
[ 0.584294] print_constraints: vddpu: 725 1300 mV at 700 mV fast normal
[ 0.591792] print_constraints: vddcore: 725 1300 mV at 1150 mV fast nor
[ 0.599531] print_constraints: vddsoc: 725 1300 mV at 1200 mV fast norm
[ 0.607166] print_constraints: vdd2p5: 2000 2775 mV at 2400 mV fast nor
[ 0.614921] print_constraints: vdd1p1: 800 1400 mV at 1100 mV fast norm
[ 0.622591] print_constraints: vdd3p0: 2625 3400 mV at 3000 mV fast nor
[ 0.632723] ram_console: got buffer at 3ff00000, size 100000
[ 0.638535] ram_console: found existing buffer, size 35924, start 35924
[ 0.738384] console [ram-1] enabled
[ 0.853886] L310 cache controller enabled
[ 0.858092] l2x0: 16 ways, CACHE_ID 0x410000c8, AUX_CTRL 0×02050000, Cache sB
[ 0.891189] bio: create slab at 0
[ 0.896073] print_constraints: VDDA: 2500 mV
[ 0.900747] print_constraints: VDDIO: 3300 mV
[ 0.906244] SCSI subsystem initialized
[ 0.910531] spi_imx imx6q-ecspi.0: probed
[ 0.914905] spi_imx imx6q-ecspi.1: probed
[ 0.921083] usbcore: registered new interface driver usbfs
[ 0.926918] usbcore: registered new interface driver hub
[ 0.932514] usbcore: registered new device driver usb
[ 0.937753] Freescale USB OTG Driver loaded, $Revision: 1.55 $
[ 0.959552] imx-ipuv3 imx-ipuv3.0: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F)
[ 0.967929] Advanced Linux Sound Architecture Driver Version 1.0.24.
[ 0.975414] Bluetooth: Core ver 2.16
[ 0.979212] NET: Registered protocol family 31
[ 0.983777] Bluetooth: HCI device and connection manager initialized
[ 0.990329] Bluetooth: HCI socket layer initialized
[ 0.995311] Bluetooth: L2CAP socket layer initialized
[ 1.000555] Bluetooth: SCO socket layer initialized
[ 1.006009] cfg80211: Calling CRDA to update world regulatory domain
[ 1.013552] Switching to clocksource mxc_timer1
[ 1.031297] NET: Registered protocol family 2
[ 1.035969] IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 1.044176] TCP established hash table entries: 131072 (order: 8, 1048576 by)
[ 1.054110] TCP bind hash table entries: 65536 (order: 7, 786432 bytes)
[ 1.061942] TCP: Hash tables configured (established 131072 bind 65536)
[ 1.068925] TCP reno registered
[ 1.072178] UDP hash table entries: 512 (order: 2, 16384 bytes)
[ 1.078354] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[ 1.085163] NET: Registered protocol family 1
[ 1.089892] Unpacking initramfs…
[ 1.104517] Freeing initrd memory: 164K
[ 1.108540] _regulator_get: etb supply vcore not found, using dummy regulator
[ 1.116394] _regulator_get: etm.0 supply vcore not found, using dummy regular
[ 1.124000] _regulator_get: etm.1 supply vcore not found, using dummy regular
[ 1.131799] Static Power Management for Freescale i.MX6
[ 1.137211] wait mode is disabled for i.MX6
[ 1.141702] cpaddr = c0820000 suspend_iram_base=c08ac000
[ 1.147282] PM driver module loaded
[ 1.151249] IMX usb wakeup probe
[ 1.154662] the wakeup pdata is 0xba10d980
[ 1.159272] add wake up source irq 75
[ 1.166674] IMX usb wakeup probe
[ 1.170101] the wakeup pdata is 0xba10d380
[ 1.174498] cpu regulator init ldo=0
[ 1.178494] i.MXC CPU frequency driver
[ 1.193907] ashmem: initialized
[ 1.206930] NTFS driver 2.1.30 [Flags: R/O].
[ 1.211784] fuse init (API version 7.16)
[ 1.216175] msgmni has been set to 1573
[ 1.220878] NET: Registered protocol family 38
[ 1.225640] cryptodev: driver loaded.
[ 1.229435] io scheduler noop registered
[ 1.233445] io scheduler deadline registered
[ 1.237941] io scheduler cfq registered (default)
[ 1.243863] mxc_sdc_fb mxc_sdc_fb.0: register mxc display driver hdmi
[ 1.250576] mxc_hdmi mxc_hdmi: Detected HDMI controller 0×13:0x1a:0xa0:0xc1
[ 1.257649] fbcvt: 1280×720@60: CVT Name – .921M9
[ 1.328272] imx-ipuv3 imx-ipuv3.0: IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2)
[ 1.339386] imx-sdma imx-sdma: loaded firmware 1.1
[ 1.348667] imx-sdma imx-sdma: initialized
[ 1.353209] Serial: IMX driver
[ 1.356501] imx-uart.0: ttymxc0 at MMIO 0×2020000 (irq = 58) is a IMX
[ 1.363098] console [ttymxc0] enabled, bootconsole disabled
[ 1.363098] console [ttymxc0] enabled, bootconsole disabled
[ 1.374893] imx-uart.2: ttymxc2 at MMIO 0x21ec000 (irq = 60) is a IMX
[ 1.382337] ion: failed to create debug files.
[ 1.390269] loop: module loaded
[ 1.393806] FEC Ethernet Driver
[ 1.399457] fec_enet_mii_bus: probed
[ 1.404138] ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver
[ 1.410914] fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller
[ 1.417758] fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number1
[ 1.445550] fbcvt: 1280×720@60: CVT Name – .921M9
[ 1.458239] fsl-ehci fsl-ehci.0: irq 75, io base 0×02184000
[ 1.478225] fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00
[ 1.478840] hub 1-0:1.0: USB hub found
[ 1.478859] hub 1-0:1.0: 1 port detected
[ 1.479061] add wake up source irq 72
[ 1.479108] fsl-ehci fsl-ehci.1: Freescale On-Chip EHCI Host Controller
[ 1.479146] fsl-ehci fsl-ehci.1: new USB bus registered, assigned bus number2
[ 1.508239] fsl-ehci fsl-ehci.1: irq 72, io base 0×02184200
[ 1.568231] fsl-ehci fsl-ehci.1: USB 2.0 started, EHCI 1.00
[ 1.568751] hub 2-0:1.0: USB hub found
[ 1.568769] hub 2-0:1.0: 1 port detected
[ 1.569014] Initializing USB Mass Storage driver…
[ 1.569191] usbcore: registered new interface driver usb-storage
[ 1.569200] USB Mass Storage support registered.
[ 1.569207] ARC USBOTG Device Controller driver (1 August 2005)
[ 1.571543] android_usb gadget: Mass Storage Function, version: 2009/09/11
[ 1.571554] android_usb gadget: Number of LUNs=1
[ 1.571563] lun0: LUN: removable file: (no medium)
[ 1.571976] Gadget Android: controller ‘fsl-usb2-udc’ not recognized
[ 1.571992] android_usb gadget: android_usb ready
[ 1.571998] Suspend udc for OTG auto detect
[ 1.572011] USB Host suspend begins
[ 1.572017] will suspend roothub and its children
[ 1.572034] ehci_fsl_bus_suspend begins, DR
[ 1.572055] ehci_fsl_bus_suspend ends, DR
[ 1.572069] host suspend ends
[ 1.572079] USB Gadget resume begins
[ 1.572085] fsl_udc_resume, Wait for wakeup thread finishes
[ 1.588243] dr_controller_run: udc enter low power mode
[ 1.588257] USB Gadget resume ends
[ 1.588264] fsl-usb2-udc: bind to driver android_usb
[ 1.588623] mousedev: PS/2 mouse device common for all mice
[ 1.589446] i2c /dev entries driver
[ 1.590367] imx2-wdt imx2-wdt.0: IMX2+ Watchdog Timer enabled. timeout=60s ()
[ 1.590500] Bluetooth: Virtual HCI driver ver 1.3
[ 1.590665] Bluetooth: HCI UART driver ver 2.2
[ 1.590674] Bluetooth: HCI H4 protocol initialized
[ 1.590682] Bluetooth: Generic Bluetooth USB driver ver 0.6
[ 1.590838] usbcore: registered new interface driver btusb
[ 1.591034] cpuidle: using governor ladder
[ 1.591042] cpuidle: using governor menu
[ 1.591155] sdhci: Secure Digital Host Controller Interface driver
[ 1.591163] sdhci: Copyright(c) Pierre Ossman
[ 1.591279] _regulator_get: sdhci-esdhc-imx.2 supply vmmc not found, using dr
[ 1.591529] mmc0: SDHCI controller on platform [sdhci-esdhc-imx.2] using ADMA
[ 1.592600] _regulator_get: sdhci-esdhc-imx.1 supply vmmc not found, using dr
[ 1.594892] mmc1: SDHCI controller on platform [sdhci-esdhc-imx.1] using ADMA
[ 1.594949] sdhci sdhci-esdhc-imx.0: no write-protect pin available!
[ 1.595985] _regulator_get: sdhci-esdhc-imx.0 supply vmmc not found, using dr
[ 1.598163] mmc2: SDHCI controller on platform [sdhci-esdhc-imx.0] using ADMA
[ 1.599163] VPU initialized
[ 1.600129] mxc_asrc registered
[ 1.613568] revserved_memory_account:viv_gpu registerd
[ 1.614174] Thermal calibration data is 0x59952b5f
[ 1.628463] Anatop Thermal registered as thermal_zone0
[ 1.628628] anatop_thermal_probe: default cooling device is cpufreq!
[ 1.651107] usbcore: registered new interface driver usbhid
[ 1.651115] usbhid: USB HID core driver
[ 1.653535] logger: created 256K log ‘log_main’
[ 1.655731] logger: created 256K log ‘log_events’
[ 1.655910] logger: created 256K log ‘log_radio’
[ 1.658127] logger: created 256K log ‘log_system’
[ 1.661501] zram: num_devices not specified. Using default: 1
[ 1.661510] zram: Creating 1 devices …
[ 1.662414] usbcore: registered new interface driver snd-usb-audio
[ 1.662976] mxc_hdmi_soc mxc_hdmi_soc.0: MXC HDMI Audio
[ 1.663145] mxc_spdif mxc_spdif.0: MXC SPDIF Audio
[ 1.665520] _regulator_get: 1-000a supply VDDD not found, using dummy regular
[ 1.665836] sgtl5000 1-000a: sgtl5000 revision 17
[ 1.666016] print_constraints: 1-000a: 850 1600 mV at 1200 mV normal
[ 1.732249] asoc: sgtl5000 imx-ssi.1 mapping ok
[ 1.745029] asoc: mxc-spdif imx-spdif-dai.0 mapping ok
[ 1.758656] asoc: mxc-hdmi-soc imx-hdmi-soc-dai.0 mapping ok
[ 1.763333] ALSA device list:
[ 1.763341] #0: sgtl5000-audio
[ 1.763347] #1: imx-spdif
[ 1.763352] #2: imx-hdmi-soc
[ 1.763489] GACT probability NOT on
[ 1.763502] Mirror/redirect action on
[ 1.763510] u32 classifier
[ 1.763514] Actions configured
[ 1.763522] Netfilter messages via NETLINK v0.30.
[ 1.763571] nf_conntrack version 0.5.0 (12588 buckets, 50352 max)
[ 1.764463] ctnetlink v0.93: registering with nfnetlink.
[ 1.764503] NF_TPROXY: Transparent proxy support initialized, version 4.1.0
[ 1.764511] NF_TPROXY: Copyright (c) 2006-2007 BalaBit IT Ltd.
[ 1.765241] xt_time: kernel timezone is -0000
[ 1.765954] IPv4 over IPv4 tunneling driver
[ 1.767126] GRE over IPv4 demultiplexor driver
[ 1.767807] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 1.767945] arp_tables: (C) 2002 David S. Miller
[ 1.767996] TCP cubic registered
[ 1.769282] NET: Registered protocol family 10
[ 1.773276] Mobile IPv6
[ 1.773312] ip6_tables: (C) 2000-2006 Netfilter Core Team
[ 1.773536] IPv6 over IPv4 tunneling driver
[ 1.778363] NET: Registered protocol family 17
[ 1.778408] NET: Registered protocol family 15
[ 1.796703] Bluetooth: RFCOMM TTY layer initialized
[ 1.796714] Bluetooth: RFCOMM socket layer initialized
[ 1.796722] Bluetooth: RFCOMM ver 1.11
[ 1.796730] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 1.796737] Bluetooth: BNEP filters: protocol multicast
[ 1.796746] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 1.796882] mmc0: new high speed SDHC card at address 59b4
[ 1.797072] L2TP core driver, V2.0
[ 1.797080] L2TP IP encapsulation support (L2TPv3)
[ 1.797510] mmcblk0: mmc0:59b4 SD 14.7 GiB
[ 1.797717] L2TP netlink interface
[ 1.797743] L2TP ethernet pseudowire support (L2TPv3)
[ 1.797751] lib80211: common routines for IEEE802.11 drivers
[ 1.797760] lib80211_crypt: registered algorithm ‘NULL’
[ 1.797767] VFP support v0.3: implementor 41 architecture 3 part 30 variant 4
[ 1.882447] ThumbEE CPU extension supported.
[ 1.887281] Bus freq driver module loaded
[ 1.887291] Bus freq driver Enabled
[ 1.887358] mxc_dvfs_core_probe
[ 1.887565] DVFS driver module loaded
[ 1.892653] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[ 1.913882] mmcblk0: p1 p2 p3 < p5 p6 p7 p8 p9 > p4
[ 2.188839] Freeing init memory: 192K
[ 4.311415] init: cannot find ‘/system/etc/install-recovery.sh’, disabling ”
[ 4.333127] android_usb: already disabled
[ 4.337524] mtp_bind_config
[ 4.340602] adb_bind_config
[ 4.345090] adb_open
root@android:/ #

and a Yocto based image with XFCE:

U-Boot 2013.04-rc2-00847-gdebad5d (Apr 11 2013 – 13:47:03)CPU: Freescale i.MX6DL rev1.1 at 792 MHz
Reset cause: POR
Board: Wandboard
DRAM: 1 GiB
MMC: FSL_SDHC: 0
*** Warning – bad CRC, using default environmentIn: serial
Out: serial
Err: serial
Net: FEC [PRIME]
Warning: FEC using MAC address from net deviceHit any key to stop autoboot: 0
mmc0 is current device
reading boot.scr
** Unable to read file boot.scr **
reading uImage
3938036 bytes read in 183 ms (20.5 MiB/s)
Booting from mmc …
reading imx6dl-wandboard.dtb
** Unable to read file imx6dl-wandboard.dtb **
## Booting kernel from Legacy Image at 12000000 …
Image Name: Linux-3.0.35-wandboard+yocto+g64
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3937972 Bytes = 3.8 MiB
Load Address: 10008000
Entry Point: 10008000
Verifying Checksum … OK
Loading Kernel Image … OK
OK

Starting kernel …

Linux version 3.0.35-wandboard+yocto+g64fee2d ([email protected]
CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: Wandboard
Memory policy: ECC disabled, Data cache writealloc
CPU identified as i.MX6DL/SOLO, silicon rev 1.1
PERCPU: Embedded 7 pages/cpu @8135d000 s5440 r8192 d15040 u32768
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 215040
Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk0p2 rootwait rw
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 80MB 768MB = 848MB total
Memory: 847672k/847672k available, 200904k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 – 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 – 0xfffe0000 ( 896 kB)
DMA : 0xfbe00000 – 0xffe00000 ( 64 MB)
vmalloc : 0xc0800000 – 0xf2000000 ( 792 MB)
lowmem : 0×80000000 – 0xc0000000 (1024 MB)
pkmap : 0x7fe00000 – 0×80000000 ( 2 MB)
modules : 0x7f000000 – 0x7fe00000 ( 14 MB)
.init : 0×80008000 – 0×80038000 ( 192 kB)
.text : 0×80038000 – 0x80aaedc4 (10716 kB)
.data : 0x80ab0000 – 0x80b05860 ( 343 kB)
.bss : 0x80b05884 – 0x80b559a0 ( 321 kB)
SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
Preemptible hierarchical RCU implementation.
NR_IRQS:496
MXC GPIO hardware
sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655ms
Set periph_clk’s parent to pll2_pfd_400M!
arm_max_freq=2
MXC_Early serial console at MMIO 0×2020000 (options ’115200′)
bootconsole [ttymxc0] enabled
Console: colour dummy device 80×30
Calibrating delay loop… 1581.05 BogoMIPS (lpj=7905280)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available
CPU1: Booted secondary processor
Brought up 2 CPUs
SMP: Total of 2 processors activated (3162.11 BogoMIPS).
devtmpfs: initialized
print_constraints: dummy:
NET: Registered protocol family 16
print_constraints: vddpu: 725 1300 mV at 1150 mV fast normal
print_constraints: vddcore: 725 1300 mV at 1150 mV fast normal
print_constraints: vddsoc: 725 1300 mV at 1200 mV fast normal
print_constraints: vdd2p5: 2000 2775 mV at 2400 mV fast normal
print_constraints: vdd1p1: 800 1400 mV at 1100 mV fast normal
print_constraints: vdd3p0: 2625 3400 mV at 3000 mV fast normal
hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
hw-breakpoint: 1 breakpoint(s) reserved for watchpoint single-step.
hw-breakpoint: maximum watchpoint size is 4 bytes.
L310 cache controller enabled
l2x0: 16 ways, CACHE_ID 0x410000c8, AUX_CTRL 0×02050000, Cache size: 524288 B
bio: create slab at 0
mxs-dma mxs-dma-apbh: initialized
print_constraints: VDDA: 2500 mV
print_constraints: VDDIO: 3300 mV
vgaarb: loaded
SCSI subsystem initialized
spi_imx imx6q-ecspi.0: probed
spi_imx imx6q-ecspi.1: probed
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Freescale USB OTG Driver loaded, $Revision: 1.55 $
imx-ipuv3 imx-ipuv3.0: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
MIPI CSI2 driver module loaded
Advanced Linux Sound Architecture Driver Version 1.0.24.
Bluetooth: Core ver 2.16
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO socket layer initialized
cfg80211: Calling CRDA to update world regulatory domain
i2c-core: driver [max17135] using legacy suspend method
i2c-core: driver [max17135] using legacy resume method
Switching to clocksource mxc_timer1
NET: Registered protocol family 2
IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
TCP bind hash table entries: 65536 (order: 7, 786432 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
TCP reno registered
UDP hash table entries: 512 (order: 2, 16384 bytes)
UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
Static Power Management for Freescale i.MX6
wait mode is disabled for i.MX6
cpaddr = c0820000 suspend_iram_base=c0890000
PM driver module loaded
IMX PCIe port: link down with power supply 0!
IMX usb wakeup probe
IMX usb wakeup probe
cpu regulator init ldo=0
i.MXC CPU frequency driver
JFFS2 version 2.2. (NAND) �© 2001-2006 Red Hat, Inc.
msgmni has been set to 1655
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
MIPI DSI driver module loaded
mxc_sdc_fb mxc_sdc_fb.0: register mxc display driver hdmi
mxc_hdmi mxc_hdmi: Detected HDMI controller 0×13:0x1a:0xa0:0xc1
imx-ipuv3 imx-ipuv3.0: IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2~5), 5F(6,7)
Console: switching to colour frame buffer device 240×67
imx-sdma imx-sdma: loaded firmware 1.1
imx-sdma imx-sdma: initialized
Serial: IMX driver
imx-uart.0: ttymxc0 at MMIO 0×2020000 (irq = 58) is a IMX
console [ttymxc0] enabled, bootconsole disabled
console [ttymxc0] enabled, bootconsole disabled
imx-uart.2: ttymxc2 at MMIO 0x21ec000 (irq = 60) is a IMX
loop: module loaded
GPMI NAND driver registered. (IMX)
vcan: Virtual CAN interface driver
CAN device driver interface
FEC Ethernet Driver
fec_enet_mii_bus: probed
ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver
add wake up source irq 72
fsl-ehci fsl-ehci.1: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.1: new USB bus registered, assigned bus number 1
fsl-ehci fsl-ehci.1: irq 72, io base 0×02184200
fsl-ehci fsl-ehci.1: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
add wake up source irq 75
fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 2
fsl-ehci fsl-ehci.0: irq 75, io base 0×02184000
fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
Initializing USB Mass Storage driver…
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
ARC USBOTG Device Controller driver (1 August 2005)
mousedev: PS/2 mouse device common for all mice
i2c-core: driver [isl29023] using legacy suspend method
i2c-core: driver [isl29023] using legacy resume method
i2c /dev entries driver
Linux video capture interface: v2.00
mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video16
mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video17
i2c-core: driver [mag3110] using legacy suspend method
i2c-core: driver [mag3110] using legacy resume method
Bluetooth: Virtual HCI driver ver 1.3
Bluetooth: HCI UART driver ver 2.2
Bluetooth: HCIATH3K protocol initialized
Bluetooth: Generic Bluetooth USB driver ver 0.6
usbcore: registered new interface driver btusb
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
mmc0: no vmmc regulator found
mmc0: SDHCI controller on platform [sdhci-esdhc-imx.2] using ADMA
mmc1: no vmmc regulator found
mmc1: SDHCI controller on platform [sdhci-esdhc-imx.1] using ADMA
sdhci sdhci-esdhc-imx.0: no write-protect pin available!
mmc2: no vmmc regulator found
mmc2: SDHCI controller on platform [sdhci-esdhc-imx.0] using ADMA
VPU initialized
mxc_asrc registered
Thermal calibration data is 0x59952b5f
Anatop Thermal registered as thermal_zone0
anatop_thermal_probe: default cooling device is cpufreq!
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
usbcore: registered new interface driver snd-usb-audio
mxc_hdmi_soc mxc_hdmi_soc.0: MXC HDMI Audio
mxc_spdif mxc_spdif.0: MXC SPDIF Audio
sgtl5000 1-000a: Failed to get supply ‘VDDD’: -19
print_constraints: 1-000a: 850 1600 mV at 1200 mV normal
sgtl5000 1-000a: sgtl5000 revision 17
usb 1-1: new full speed USB device number 2 using fsl-ehci
mmc0: new high speed SDHC card at address 1234
mmcblk0: mmc0:1234 SA04G 3.63 GiB
mmcblk0: p1 p2
asoc: sgtl5000 imx-ssi.1 mapping ok
asoc: mxc-spdif imx-spdif-dai.0 mapping ok
asoc: mxc-hdmi-soc imx-hdmi-soc-dai.0 mapping ok
ALSA device list:
#0: sgtl5000-audio
#1: imx-spdif
#2: imx-hdmi-soc
NET: Registered protocol family 26
TCP cubic registered
NET: Registered protocol family 17
can: controller area network core (rev 20090105 abi 8)
NET: Registered protocol family 29
can: raw protocol (rev 20090105)
can: broadcast manager protocol (rev 20090105 t)
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM ver 1.11
Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Bluetooth: BNEP filters: protocol multicast
Bluetooth: HIDP (Human Interface Emulation) ver 1.2
lib80211: common routines for IEEE802.11 drivers
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
Bus freq driver module loaded
Bus freq driver Enabled
mxc_dvfs_core_probe
DVFS driver module loaded
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
EXT3-fs: barriers not enabled
input: 2.4G Wireless Receiver as /devices/platform/fsl-ehci.1/usb1/1-1/1-1:1.0
generic-usb 0003:1915:AF11.0001: input,hidraw0: USB HID v1.11 Keyboard [2.4G W0
mmc1: queuing unknown CIS tuple 0x80 (50 bytes)
input: 2.4G Wireless Receiver as /devices/platform/fsl-ehci.1/usb1/1-1/1-1:1.1
generic-usb 0003:1915:AF11.0002: input,hidraw1: USB HID v1.11 Mouse [2.4G Wire1
mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
mmc1: queuing unknown CIS tuple 0x80 (4 bytes)
generic-usb 0003:1915:AF11.0003: hidraw2: USB HID v1.11 Device [2.4G Wireless 2
mmc1: queuing unknown CIS tuple 0x02 (1 bytes)
mmc1: new SDIO card at address 0001
kjournald starting. Commit interval 5 seconds
EXT3-fs (mmcblk0p2): using internal journal
EXT3-fs (mmcblk0p2): recovery complete
EXT3-fs (mmcblk0p2): mounted filesystem with writeback data mode
VFS: Mounted root (ext3 filesystem) on device 179:2.
devtmpfs: mounted
Freeing init memory: 192K
INIT: version 2.88 booting
Starting udev
udevd[82]: starting version 182
Starting Bootlog daemon: bootlogd.
ALSA: Restoring mixer settings…
No state is present for card sgtl5000audio
Found hardware: “sgtl5000-audio” “” “” “” “”
Hardware is initialized using a generic method
Configuring network interfaces… No state is present for card sgtl5000audio
No state is present for card imxspdif
Found hardware: “imx-spdif” “” “” “” “”
Hardware is initialized using a generic method
No state is present for card imxspdif
No state is present for card imxhdmisoc
Found hardware: “imx-hdmi-soc” “” “” “” “”
Hardware is initialized using a generic method
No state is present for card imxhdmisoc
eth0: Freescale FEC PHY driver [Generic PHY] (mii_bus:phy_addr=1:01, irq=-1)
udhcpc (v1.20.2) started
Sending discover…
PHY: 1:01 – Link is Up – 100/Full
Sending discover…
Sending select for 192.168.0.109…
Lease of 192.168.0.109 obtained, lease time 7200
/etc/udhcpc.d/50default: Adding DNS 192.168.0.1
done.
Starting rpcbind daemon…rpcbind: cannot create socket for udp6
rpcbind: cannot create socket for tcp6
done.
hwclock: can’t open ‘/dev/misc/rtc’: No such file or directory
Fri Apr 12 13:14:00 UTC 2013
hwclock: can’t open ‘/dev/misc/rtc’: No such file or directory
INIT: Entering runlevel: 5
Starting Xserver
Starting system message bus: dbus.
Starting advanced power management daemon: apmd.
apmd[460]: apmd 3.2.1 interfacing with apm driver 1.13 and APM BIOS 1.2
hwclock: can’t open ‘/dev/misc/rtc’: No such file or directory
Starting syslogd/klogd: done
* Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon
…fail!
Starting Telephony daemon
Starting Linux NFC daemon
imx-audio: setting default mixer settings.
amixer: Unable to find simple control ‘Playback’,0

Running local boot scripts (/etc/rc.local).
Stopping Bootlog daemon: bootlogd.

Poky 8.0 (Yocto Project 1.3 Reference Distro) 1.3+snapshot-20130412 wandboard-d0

wandboard-dual login:

Images, BSPs, and Source Code for Wandboard Solo/Dual/Quad

Software support, although not 100% perfect, appears to be now much better than before, both in terms of stability and features, and the number of available images.

As of writing, Wandboard provide 2 Android images on their download page:

  • Android 4.2.2 Preview – Android 4.2 will become the official image, but this currently very much work in progress with no Bluetooth, limited UVC camera support, and probably quite a few bugs. The image is available for both Wandboard Dual and Quad. Source is not available yet, but soon will be.
  • Android 4.1.2 – Current somewhat stable image for Wandboard Dual and Solo. Source is available for download as a tarball, and via their git repo.

Linux kernel source is available as a tarball or via Wandbaord’s git repository. Several Linux based distributions  and BSP are now available:

  • Ubuntu 11.10 – For Wandboard Solo/Dual and Quad with GPU hardware acceleration, and VPU video decoding.
  • Freescale Yocto BSP – Wandboard Solo and Dual are officially part of Freescale i.MX6 Yocto BSP. You can build it yourself, or download some prebuilt image such as the one with xfce desktop environment
  • Buildroot – Buildroot for Wandboard Dual can be built. Most features seem included, but gstreamer appears to be missing.
  • Ubuntu 13.04 / Debian 7 – There are instructions to retrieve minimal rootfs for those 2 distributions on Wandboard Wiki, but those probably do not support GPU / VPU.
  • Community Squeeze OS – You may have never heard of that one, I hadn’t. CSOS, based on Fedora 18, is used by the “Community Squeeze Player project”, a network music player, similar to Logitech Squeezebox The image is only available for Wandboard Dual for now. Visit slimdevices forums for details.

Wandboard is also part of mainline U-Boot, so you can just get the source from DENX, build it for Wandboard, and put it on your board.  There’s also some work to get Wandboard into Linux mainline, but I’m not really sure about the status.

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

Rockchip RK3188 Linux Source Code is Now Available

June 6th, 2013 6 comments

Good news! I’ve just read Rockchip RK3188 Linux source code has just been released via Rikomagic, and Alok Sinha, the main maintainer of RK3066 source code, has already imported into github, and we should soon see a PicUntu image for RK3188 mini PCs.

RK3188_menuconfig

Let’s have a look:

git clone git://github.com/aloksinha2001/Linux3188.git
cd Linux3188

Usually, I immediately look into arch/arm/configs, but this time, there’s a “funny” script called make_kernel_ruikemei.sh, and .config already have some CONFIG_RK3188, so let’s run it:

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
./make_kernel_ruikemei.sh

After just over a minute, success!:

  LD      vmlinux
  SYSMAP  System.map
  SYSMAP  .tmp_System.map
  OBJCOPY arch/arm/boot/Image
  Kernel: arch/arm/boot/Image is ready

mkkrnlimg V20120220
cmd:/home/jaufranc/edev/sandbox/rk3188/Linux3188/arch/arm/boot/Image /home/jaufranc/edev/sandbox/rk3188/Linux3188/kernel.img [(null)]
kernel Image:/home/jaufranc/edev/sandbox/rk3188/Linux3188/kernel.img for mid is ready.
   Image:  kernel.img is ready

This kernel image is for Android only, and there’s a little work to modify it as a “pure” Linux kernel, so that it can be used to boot PicUnutu for RK3188.

Let’s go back to arch/arm/configs, and we’ll find several RK3188 configs:

  • rk3168_86v_defconfig
  • rk3188_dongle_defconfig
  • rk3188_ds1006h_defconfig
  • rk3188_ds1006h_v1_0_defconfig
  • rk3188_hotdog_defconfig
  • rk3188_LR097_defconfig
  • rk3188_magicwand_defconfig
  • rk3188_steak_defconfig

However, in arch/arm/mach, there are only board files for rk3188-box and rk3188-ds1006h.

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

Linaro 13.05 Release With Linux Kernel 3.10, Android 4.2.2, and Ubuntu Raring Ringtail

May 31st, 2013 No comments

Linaro 13.05 has just been released with Linux Kernel 3.10-rc2 and Android 4.2.2. This is the first release with Ubuntu 13.04 (Raring Ringtail) images. There’s also Linux Linaro Stable (LSK) preview based on kernel 3.9.4.

BeagleBone Black support has been added and preliminary hwpack and images are available, an Android Arndale image with virtual framebuffer is also available. You can now get a desktop environment (XFCE) on Aarch64 / ARMv8. Hardware packs with Real-time Linux kernel (PREEMPT_RT) can be downloaded for Pandaboard and Arndale. More work has gone into Aarch64, big.LITTLE HMP, and ARM virtualization (KVM). Finally an UEFI is available not only for Vexpress boards, but also Samsung Origen and Arndale boards, as well as Texas Instruments Pandabord and Beagleboard.

Here are the highlights of this release:

  • LAVA

    • First prototype production run of LAVA Lmp completed, tested functional.
    • Beaglebone Black is now running in LAVA.
    • TC2s is now running fully with latest firmware and master image, booting on A7 core.
    • Different client tools were consolidated into a single package to simplifies the process of updating the tools and makes it easier for the team to provide new features for LAVA users.
    • Android build howtos are published along the build artifacts themselves (Patch).
    • linaro-patchmetrics is now able to work in local environment.
    • RT patchset testing enabled in LAVA.
  •  Builds and Baselines

    • The detailed CTS report in the standard format is now generated in LAVA. The QA Services Team will include these reports in the weekly/monthly testing reports for platforms in LAVA.
    • The Galaxy Nexus CI loop is done. The images (without graphics acceleration) can be deployed with a graphics overlay for testing in LAVA.
    • The full Android engineering build for Arndale is now available with virtual framebuffer.
    • Clean up of the independent test suite builder is done. All the dependent projects are now built from sources for the test suite.
    • Test migration from lava-test-shell to lava-android-test continues: tjbench, big.LITTLE IKS test are available in lava-test-shell.
    • The Toolchain WG has optimized string routines for A15. These routines are now integrated into bionic for Android.
    • Setup of the initial CI loop for Linaro Stable Kernel (LSK). A preview is released as part of Linaro 13.05 release. A tree has been created with the collaboration of the Kernel WG and the related CI/LAVA jobs are done.
    • Linux Linaro Kernel moved from 3.9 to be 3.10-rc2 based.
    • Calxeda EnergyCore (Highbank) server CI loop is now completed. Daily builds are produced and submitted to LAVA.
    • Support for BeagleBone Black board has been added. The initial CI loop is complete: hardware pack and pre-built images are available.
    • Progress on the CI loop for LNG. The realtime Linux kernel (PREEMPT_RT) is built on ci.linaro.org and hwpack targeting PandaBoard/Arndale boards are published.
    • Linaro Ubuntu baseline images are updated to the latest Ubuntu stable release, Raring Ringtail (13.04).
    • Support for Linaro external toolchain (pre-built binaries) is added to Linaro OpenEmbedded baseline.
    • Integration of OpenJDK zero build for Aarch64 cross-compile to Linaro OpenEmbedded baseline.
    • libunwind support for ARMv8, contributed by the Toolchain WG, is available in Linaro OpenEmbedded baseline.
    • Linux Linaro 3.10-rc2 2013.05 released
      • big-LITTLE-MP-master-v17 (new version vs 13.04 release)
      • updated config fragments for Arndale and Panda
      • updated Versatile Express patches from ARM LT: new MCPM and IKS patch sets
      • updated arndale/exynos patches from Samsung LT
      • a patch to enable perf in Android by Bernhard Rosenkraenzer
      • vexpress64 support (both RTSM and Foundation model)
      • omap-fixes-13.05 topic: serial and gpio fixes for omap2+ from v3.10-rc3
      • OpenStack support: CONFIG_[IP,IP6]_NF_IPTABLES, CONFIG_NF_CONNTRACK*, and CONFIG_NF_NAT* enabled in ubuntu builds (added to ubuntu-minimal.conf)
    • Linaro Toolchain Binaries 2013.05 released
  • Graphics
    • Mali driver ported and brought up for the Arndale board.
    • An XFCE based graphics image now works in the RTSM simulator: http://fullshovel.wordpress.com/2013/05/24/arm-aarch64-running-a-graphical-stack/
    • CDFv2 is up on an eDP panel on Arndale.
    • Patches v1 and v2 implementing a DT node for the DP controller, clock provider and display timings for Arndale.
    • Android patches for piglit are finished. They enable current and future testcases to be built as part of automated build and test process.
    • Fixed GStreamer bugs
  • Kernel

    • Exynos core and drivers now use common clk infrastructure. It’s been merged in 3.10-rc1.
    • The <mach/*> and <plat/*> namespaces for the Nomadik and Ux500 platforms were depopulated. It’s been merged in 3.10-rc1.
    • Refactored EHCI controller code to allow configuration of multiple EHCI controllers as both modules or static drivers in the same kernel.
    • Uncompress message is now supported on multi-platform kernels. It’s been merged in 3.10-rc1.
    • Samsung platform (Exynos) converted to use Generic Clock Events.
    • Android Sync infrastructure has been upstreamed to staging for 3.10-rc1.
    • Upstream Android ram_console driver functionality.
    • Implement and upstream ARM 32 bit uprobes support
    • Improve eMMC Power Management Support
    • Android ETM(Embedded Trace Macrocell)/ETB(Embedded Trace Buffer) upstreaming (arch/arm/kernel/etm.c)
    • Remove ARM specific dependencies in Android’s ION
    • Android upstreaming: Ashmem
    • Port some of the simpler platforms to multiplatform support: u300 and Nomadik
    • Android FIQ debugger for ARM
    • Migrate Android Alarmtimer driver over to using the upstreamed Alarmtimers
    • Android ION infrastructure upstreaming
  • Power Management

    • First big.LITTLE release with IKS code integrated into the public linux-linaro tree.
    • Removal of hardcoded assumptions of CPU topology in IKS code, test scripts. It allows test suite and code to be more easily adopted to member platforms.
    • Integration tree to bring together big.LITTLE MP related work
    • Small task packing by scheduler
    • CPU Hot Plug Latency on Android
    • sched: modify timer and workqueue framework to allow migration
  • QA

    • Successfully completed 13.05 release testing on Android, Ubuntu and OpenEmbedded builds. Test results and bug reports have been shared.
    • Review of existing test cases was completed. Descriptions and steps were updated.
    • Improvements in big.LITTLE IKS test suite
    • Checked that breakpoints are inherited correctly across switches.
  • Toolchain
    • Linaro GCC 4.8 2013.05 released, based off the latest GCC 4.8.0+svn198615 release.
      • Backport of support for prologue/epilogues using LDRD and STRD in ARM mode.
      • Backport of support for further AArch64 instructions.
      • Backport of support for further ARMv8 AArch32 instructions.
    • Linaro GCC 4.7 2013.05 released, based off the latest GCC 4.7.3+svn198701 release
    • Linaro GCC 4.6 2013.05 released, based off the latest GCC 4.6.4+svn197894 release. It’s the final one of 4.6 series.
    • libunwind support for ARMv8 is committed upstream.
    • Address Sanitizer support for ARMv7 in GCC is committed upstream.
    • Shrink-wrapping support in GCC is committed upstream.
    • Load-time function selection (IFUNC) in GLIBC is accepted upstream.
    • GLIBC will now choose the best memcpy depending on the presence of VFP and NEON hardware.
    • Patches for gprof support for ARMv8 are submitted upstream.
  • LEG

    • Cross-building OpenJDK javac binary on Aarch64 – currently testing and seems functional.
    • Linaro UEFI 2013.05 released with support for:
      • Versatile Express A5/A9/TC1/TC2 and RTSM A9×4 and A15×1, A15 MPCore.
      • Samsung Arndale &  Origen
      • TI Pandaboard & Beagleboard
  • Virtualization

    • ARMv8 uniprocessor guest running on KVM ARMv8 SMP hardware (APM X-Gene Mustang board).
    • ARMv7 uniprocessor guest booted on KVM ARMv8 SMP hardware.
    • First successful boot to a shell in ARMv8 guest on KVM ARMv8 host running on Foundation Model and being controlled by QEMU.

Visit https://wiki.linaro.org/Cycles/1305/Release for a list of known issues and further release details about the LEB and community builds, Android, Kernel, Graphics, Multimedia, Landing Team, Platform, Power management and Toolchain (GCC / Qemu) components.

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

How to Find Configuration Options Quickly in Make Menuconfig

May 23rd, 2013 5 comments

If you’ve ever compiled the Linux kernel, you’ll know make menuconfig is the command line used to unset/set options, disable/enable modules in order to match your hardware and requirements. I used to simply browse in the menu to find the option, and just remember the correct path. Sometimes I just looked at .config to locate the option I needed, and the possible path in make menuconfig. The first time you use a new option it can be time consuming. But I’ve just found there is a better way via Google+.

“/” is actually available in make menuconfig, just like it is in vi/vim. If you want to enable NFS server in your kernel, press “/”, and search for NFSD.

make_menuconfig_nfsd_search

It will show the list of results with “NFSD” strings. NFS server support is right at the top, and the path is shown to be File Systems->Network File Systems. The neat thing is you don’t have to remember or note the path, as you can just press the number between parenthesis on the left of the option location, in this case (1), and it will take you directly there.

make_menuconfig_nfs_server

But what if you’re searching for a string with lots of results such as PCI. The actual CONFIG_PCI is just buried in the search results. The solution is to use regular expressions. If you just want to find “CONFIG_PCI”, press “/” for a search, and “^PCI$” to find the exact match.

make_menuconfig_PCI_search

Great! Press “1″ to go to the option, and enable PCI in your kernel. You can use other regexps as well.

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

Linux 3.9 Release

April 29th, 2013 No comments

Linus Torvalds has announced the release of Linux Kernel 3.9:

So the last week was much quieter than the preceding ones, which makes me suspect that one reason -rc7 was bigger than I liked was that people were gaming the system and had timed some of their pull requests for just before the release, explaining why -rc7 was big enough that I didn’t  actually want to do a final release last week. Please don’t do that.

Anyway. Whatever the reason, this week has been very quiet, which makes me much more comfortable doing the final 3.9 release, so I guess the last -rc8 ended up working. Because not only aren’t there very many commits here, even the ones that made it really are tiny and not pretty obscure and not very interesting.

Also, this obviously means that the merge window is open. I won’t be merging anything today, but if you start sending me your pull requests (Konrad already sent in his Xen pull request for the 3.10 merge window a week ago), tomorrow the flood gates start opening..

Linux 3.8 brought file systems enhancement for Btrfs, XFS and ext-4, introduce F2FS file system, memory management improvement, and the removal for i386 support.

Linux 3.9 brings the following key changes (Sources H-Online and Phoronix):

  • File-system improvements:
    • Btrfs has experimental RAID5/6 support and fsync performance improvements.
    • EXT-4 bug fixes for corruption issue, and JBD2 journaling layer issue which affected performance.
    • Various improvements for F2FS file-system.
  • Added ability to use SSDs as hard-disk cache.
  • Update the latest LZO compression implementation within the kernel. Decompression and compression performance has been massively improved and x86 and ARM targets.
  • Improved power management, including “lightweight suspend” (aka “suspend freeze”) mode.
  • Improved ARM SoC support
    • Added Nvidia Tegra 4 support including support for Dalmore and Pluto development boards.
    • Added Nvidia Tegra 3 Beaver Board support
    • Kernel-based Virtual Machine (KVM) support for ARMv7 (Cortex A15 required)
  • Mainlining of Google’s Goldfish virtual CPU.
  • Initial ARC Linux support. See commit.
  • Added support for Imagination Meta ATP (Meta 1) and HTP (Meta 2)
  • Graphics drivers updates – Nouveau, the open-source reverse-engineered NVIDIA Linux graphics driver, is faster for some Linux OpenGL games. There’s also some Intel OpenGL performance changes.
  • Support for Intel 7000 Wi-Fi components supporting 802.11ac.
  • CONFIG_EXPERIMENTAL kernel configuration option has been removed

More details about Linux 3.9 will be available on Kernelnewbies.org (which is currently down).

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

Booting Linux in Less Than 1 Second in AllWinner A10 Devices? Yes! You Can!

April 22nd, 2013 4 comments

threewater, a Chinese developer, has just posted a very interesting demo on linux-sunxi mailing list showing a device based on AllWinner A10 boot linux within 0.85s, and if you add a Qt app, the total time is just about 1.2s.

This appears to be a custom hardware (EM6000), but we do know it’s based on AllWinner A10, comes with 512 MB RAM, and 4GB NAND Flash. On the software side, the device runs kernel 3.4 from linux-sunxi, with a customized version of uboot, a squashfs rootfs, and a Qt 4.7.4 app showing a gauge. Both the rootfs (7MB) and the kernel (2MB) have been compressed with LZO. All that boots from NAND flash for optimal speed.

The 1.2 second time includes kernel + rootfs + app time, and the total time is a bit longer, but this is still impressive. Here’s the boot log:

[1.690000 1.690000] U-Boot SPL 2013.01-05984-g2120a27-dirty (Apr 17 2013 - 14:22:02)
[0.009000 0.009000] Board: EM6000
[0.012000 0.003000] DRAM: 512MB
[1.014000 1.002000] init startup v1.1
[1.016000 0.002000] mount usr data error 2
[1.158000 0.142000] Could not read calibration: "/data/etc/pointercal"
[1.166000 0.008000] Couldnt open tslib config file: No such file or directory
[1.175000 0.009000] QWSTslibMouseHandlerPrivate: ts_config() failed with error: 'No such file or directory'
[1.187000 0.012000] Please check your tslib installation!
[1.200000 0.013000] qt show

If you just boot to the command line, it’s even faster:

[1.770000 1.770000] U-Boot SPL 2013.01-g8a69ff9-dirty (Apr 22 2013 - 13:05:36)
[0.007000 0.007000] Board: EM6000
[0.009000 0.002000] DRAM: 512MB
[0.810000 0.801000] /etc/init.d/rcS: line 6: /data/run.sh: not found
[0.835000 0.025000]
[0.843000 0.008000] login[42]: root login on 'ttyS0'
[0.851000 0.008000] [root@(none) /root]#

This is not the first time, people have implemented ultra fast boot on ARM hardware, an example is a ~400ms boot on the Beagleboard, but it’s still nice to see what can be achieved thanks to developers’ communities such as linux-sunxi.

The complete details and/or binary files are not available at this time, but if you are interested in Linux fast boot, you may considering checking Adeneo Embedded presentation at ELCE 2012 who did something very similar on Freescale i.MX51 & i.MX 6Q hardware.

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