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
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
- make a battery powerred access point with the libertas_tf branch of the kenrel I pushed to gitorious (note that this kernel is recent enough to overcome the udev issue)
