You are viewing outdated content for BUG. If you have a BUG Y.T. edition or 2.0 series device, please visit our updated wiki: http://wiki.buglabs.net



Openembedded and kernel upstreaming

From BUG Wiki

Jump to: navigation, search

Contents

What is this page about?

As you know the bug 1.x is now outdated, and no updates from buglabs are currently planed for it,

however as everything is FLOSS(Free Libre and open source),

so it is possible to do the update ourselves.

Some people working at buglabs are even wanting to help within their limited time.

Plan

The plan is to first ensure that the bug 1.x is well supported under openembedded, and then try to port the java part of the bug 2.x to it.

News

  • x11-sato2-image is now usable

Status

Task Upstream project Status Result
usb0 comming at first boot openembedded Done console-image can now be booted by normal users
Handle the problems between recent udev and the 2.6.27 kernel openembedded Work in progress(need one last patch to select udev 168) console-image doesn't block in the middle of the boot(even with serial console)
X sarting to one display openembedded,script Done non-java GUI programs,GUI,and matchbox would work
Handle the 2 display in the X startup scripts openembedded,script TODO
Handle touchscreen calibration openembedded,script TODO
touchscreen calibration data openembedded,script Done
add a recipe for the new bootsplash for the monochrome LCD openembedded TODO user would see the boot progress
Adapt the java base libraries to the bug 1.x openembedded, buglabs repository TODO bug 2.x programs would work on bug 1.x

Bug X11 Image compilation status

Here are the recipe I added to make it work until here(the .bb should go in recipes/buglabs-osgi in the openembedded source directory) bitbake -k bug-x11-image gives that:

ERROR: '/home/gnutoo/embedded/oe/org.openembedded.dev/recipes/buglabs-osgi/com.buglabs.bug.jni.audio.bb' failed
ERROR: '/home/gnutoo/embedded/oe/org.openembedded.dev/recipes/buglabs-osgi/com.buglabs.bug.jni.bugbeep.bb' failed
ERROR: '/home/gnutoo/embedded/oe/org.openembedded.dev/recipes/buglabs-osgi/com.buglabs.bug.jni.bluetooth.bb' failed
ERROR: '/home/gnutoo/embedded/oe/org.openembedded.dev/recipes/buglabs-osgi/com.buglabs.bug.menu.bb' failed
ERROR: '/home/gnutoo/embedded/oe/org.openembedded.dev/recipes/buglabs-osgi/com.buglabs.bug.jni.basedisplay.bb' failed
ERROR: '/home/gnutoo/embedded/oe/org.openembedded.dev/recipes/buglabs-osgi/com.buglabs.bug.jni.camera.bb' failed

Troubleshooting

If you have something like that it means that the Makefile must be patched:

| + make -e MAKEFLAGS= JAVAH_OUT=/home/gnutoo/embedded/oe/oetmps/bug/work/bug-angstrom-linux-gnueabi/com.buglabs.bug.jni.audio-1_1.0-r0/image/usr/lib/jni LIB_DIR=/home/gnutoo/embedded/oe/oetmps/bug/work/bug-angstrom-linux-gnueabi/com.buglabs.bug.jni.audio-1_1.0-r0/image/usr/lib/jni JAVAH_CLASSPATH=/home/gnutoo/embedded/oe/oetmps/bug/work/bug-angstrom-linux-gnueabi/com.buglabs.bug.jni.audio-1_1.0-r0/com.buglabs.bug.jni.audio/build --debug COMMON_CLASSPATH=/home/gnutoo/embedded/oe/oetmps/bug/sysroots/armv6-angstrom-linux-gnueabi/usr/lib/com.buglabs.bug.jni.common.jar STAGING_BUG_INCDIR=/home/gnutoo/embedded/oe/oetmps/bug/sysroots/armv6-angstrom-linux-gnueabi/usr/include/bug BUG_LINUX_SRC=/home/gnutoo/embedded/oe/oetmps/bug/sysroots/bug-angstrom-linux-gnueabi/kernel STAGING_INCDIR=/home/gnutoo/embedded/oe/oetmps/bug/sysroots/armv6-angstrom-linux-gnueabi/usr/include CLASSPATH_INCDIR=/home/gnutoo/embedded/oe/oetmps/bug/sysroots/armv6-angstrom-linux-gnueabi/usr/include/classpath ROOTFS_BUG=/home/gnutoo/embedded/oe/oetmps/bug/sysroots/armv6-angstrom-linux-gnueabi/usr/lib/../../ JAVAH=/home/gnutoo/embedded/oe/oetmps/bug/sysroots/x86_64-linux/usr/lib/jvm/icedtea6-native/bin/javah jni
| GNU Make 3.81
| Copyright (C) 2006  Free Software Foundation, Inc.
| This is free software; see the source for copying conditions.
| There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
| PARTICULAR PURPOSE.
| 
| This program built for x86_64-pc-linux-gnu
| Reading makefiles...
| Makefile:13: *** first argument to `word' function must be greater than 0.  Stop.
| + die 'oe_runmake failed'
| + oefatal 'oe_runmake failed'
| + echo FATAL: 'oe_runmake failed'
| FATAL: oe_runmake failed
| + exit 1
NOTE: package com.buglabs.bug.jni.audio-1_1.0-r0: task do_jni_compile: Failed

go into .../oe_tmpdir/work/bug-angstrom-linux-gnueabi/com.buglabs.bug.jni.audio-1_1.0-r0/com.buglabs.bug.jni.audio/src/c

The Makefile will look like that:

JAVAH = javah
#note, this uses GCC, not G++ like most of the other JNI.  aplay is written in c. ;D
# env vars from eclipse:
# CXXFLAGS:  -B ${ROOTFS_BUG}/lib/ -B ${ROOTFS_BUG}/usr/lib/ -iwithprefix include -O2 -fsigned-char -mabi=aapcs-linux -mfpu=vfp -mfloat-abi=softfp
# GCC = arm-none-linux-gnueabi-gcc

ifdef LTIB_ROOTFS
PHONEME_HOME=$(LTIB_ROOTFS)/tmp/phoneme-advanced/cdc/build/linux-arm-mx31
endif
empty :=
space := $(empty) $(empty)
tmpdirs := $(subst /,$(space),$(PHONEME_HOME))
target := $(word $(words $(tmpdirs)),$(tmpdirs))
tokens := $(subst -,$(space),$(target))
OS := $(word 1,$(tokens))
ARCH := $(word 2,$(tokens))

Just comment the following part:

#space := $(empty) $(empty)
#tmpdirs := $(subst /,$(space),$(PHONEME_HOME))
#target := $(word $(words $(tmpdirs)),$(tmpdirs))
#tokens := $(subst -,$(space),$(target))
#OS := $(word 1,$(tokens))
#ARCH := $(word 2,$(tokens))

Bugbase 1.x Kernel upstreaming

Introduction

Status

Part Subsystem Upstream status result
serial machine platform data(mach-bug.c) Done Developers with the debug board can boot the kernel,see dmesg messages, and interact with the console providing they have an initramfs
microsd support machine platform data(mach-bug.c) patch sent upstream, need to ping the maintainers Developers with the debug board could boot a normal rootfs
Wifi support machine platform data only(I didn't look at runtime PM yet)??? currently a hack,needs proper runtime PM support. Wifi would work
USB support ? Not started User without the debug board could boot a rootfs and interact with the console
BMI support Drivers Not started(seem difficult)

Notes

The microsd patch has the following issue:

i.MX SDHC driver
mxc-mmc mxc-mmc.0: pdata->ocr_avail will not be used
mxc-mmc mxc-mmc.0: dma not available. Using PIO
i.MX SDHC driver
mxc-mmc mxc-mmc.1: dma not available. Using PIO

What could you do with the newer kernel and openembedded