Code Monkey home page Code Monkey logo

yocto-manifest's Introduction

Gumstix Repo Manifests for the Yocto Project Build System

This repository provides Repo manifests to setup the Yocto build system for supported Gumstix products.


Note: If you already have a Yocto Project setup and want only the Gumstix BSP layer, use the meta-gumstix repository found here: git://github.com/gumstix/meta-gumstix.git.


The Yocto Project allows the creation of custom linux distributions for embedded systems, including Gumstix-based systems. It is a collection of git repositories known as layers each of which provides recipes to build software packages as well as configuration information.

Repo is a tool that enables the management of many git repositories given a single manifest file. Tell repo to fetch a manifest from this repository and it will fetch the git repositories specified in the manifest and, by doing so, setup a Yocto Project build environment for you!

Getting Started

1. Install Repo.

Download the Repo script:

$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > repo

Make it executable:

$ chmod a+x repo

Move it on to your system path:

$ sudo mv repo /usr/local/bin/

If it is correctly installed, you should see a Usage message when invoked with the help flag.

$ repo --help

2. Initialize a Repo client.

Create an empty directory to hold your working files:

$ mkdir yocto
$ cd yocto

Tell Repo where to find the manifest:

$ repo init -u git://github.com/gumstix/yocto-manifest.git -b <branch>

A successful initialization will end with a message stating that Repo is initialized in your working directory. Your directory should now contain a .repo directory where repo control files such as the manifest are stored but you should not need to touch this directory.


Note: You can use the -b switch to specify the branch of the repository to use. We develop on the guaranteed-to-break warrior branch. Most people should use the morty branch, which should at least compile.

The -m switch selects the manifest file (default is default.xml). Our default.xml on morty is designed to be stable as it pins particular commits.

To test out the bleeding edge, type:

$ repo init -u git://github.com/gumstix/yocto-manifest.git -b warrior 
$ repo sync

Note that the default settings for bblayers.conf and local.conf may change between branches. If the environment was originally setup with e.g. TEMPLATECONF=meta-gumstix-extras/conf, check the *.sample files in that directory for any corresponding changes needed to the settings in build/conf/.

To get back to the known stable version, type:

$ repo init -u git://github.com/gumstix/yocto-manifest.git -b morty
$ repo sync

Also you can get a specific version of Yocto Project:

For example,

$ repo init -u git://github.com/gumstix/yocto-manifest.git -b refs/tags/morty

To learn more about repo, look at Repo Command Reference


3. Fetch all the repositories:

$ repo sync

Now go turn on the coffee machine as this may take 20 minutes depending on your connection.

4. Initialize the Yocto Project Build Environment.

$ export TEMPLATECONF=meta-gumstix-extras/conf 
$ source ./poky/oe-init-build-env

This copies default configuration information into the poky/build/conf directory and sets up some environment variables for the build system. This configuration directory is not under revision control; you may wish to edit these configuration files for your specific setup. In particular, change the MACHINE variable in conf/local.conf if you are not building for the Overo (default).

5. Build an image:

This process downloads several gigabytes of source code and then proceeds to do an awful lot of compilation so make sure you have plenty of space (25GB minimum), and expect a day or so of build time depending on your network connection. Don't worry---it is just the first build that takes a while.

$ bitbake gumstix-console-image

If everything goes well, you should have a compressed root filesystem tarball as well as kernel and bootloader binaries available in your tmp/deploy/images/{ overo | duovero | pepper } directory. If you run into problems, the most likely candidate is missing software packages. Check out The Build Host Packages for the list of required packages for operating system. Also, take a look to be sure your operating system is supported: Distribution Supported List

6. Create a bootable micro SD card:

You are one step closer to booting your Gumstix with the new image you built! Usually you have to create two partitions in your uSD: boot and root, and copy the bootloader and the root file system. Optionally you may want to create a swap partition.

You can follow the instructions given here: Create Bootable MicroSD Card

Hooray you are done!

Staying Up to Date

To pick up the latest changes for all source repositories, run:

$ repo sync

Enter the Yocto Project build environment:

$ source poky/oe-init-build-env

If you forget to setup these environment variables prior to bitbaking, your 
OS will complain that it can't find bitbake on the path.  Don't try to
install bitbake using a package manager, just run the above command.

You can then rebuild as before:

$ bitbake gumstix-console-image

Starting Fresh

So something broke... what do you do now?

There are several degrees of starting fresh: individual packages can be rebuilt or the whole system can be reconstructed.

  1. clean a package: bitbake -c cleansstate
  2. re-download package: bitbake -c cleanall
  3. destroy everything but downloads: rm -rf build/sstate-cache build/tmp (or wherever your sstate and work directories are)
  4. destroy it all (not recommended): rm -rf build

Note: If you've made a change to a recipe and want the package to be rebuilt, just increment the recipe version (the PR variable); cleaning is not necessary.

To understand better how bitbake processes recipes, look at the excellent documentation: Yocto Project Reference Manual


To make sense of the differences between these cleaning methods, it is useful to understand that Yocto caches both the downloaded source files for all the packages it tries to build (the DL_DIR configuration parameter) and the packages once built (the SSTATE_DIR configuration parameter). Typically, deleting the downloaded source is a bad idea---this just means re-fetching gigabytes of code which wastes network bandwidth. Cleaning the sstate cache for a particular package ensures that it actually gets rebuilt from source rather than simply restored from the cache.

Customize

Sooner or later, you'll want to customize some aspect of the image either adding more packages, picking up some upstream patches, or tweaking your kernel. To this, you'll want to customize the Repo manifest to point at different repositories and branches or pull in additional meta-layers.

Clone this repository (or fork it on github):

$ git clone git://github.com/gumstix/yocto-manifest.git

Make your changes (and contribute them back if they are generally useful), and then re-initialize your repo client

$ repo init -u <file:///path/to/your/git/repository.git>

Additional Resources

Please checkout Gumstix Yocto Project Wiki for tips on building and using the Gumstix images.

yocto-manifest's People

Contributors

smithandrewc avatar yoruio avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

yocto-manifest's Issues

Dora Boot Test

Using the gumstix-test-image built on Dec. 7th, 2013

Duovero
u-boot has incorrect boot command. It needs a proper boot.scr or uEnv.txt file.
I was able to boot with these commands for now:

fatload mmc ${mmcdev} ${loadaddr} uImage 
echo Booting from mmc${mmcdev} ...; run mmcargs; bootm ${loadaddr} 

Full boot log

I should also update the Getting Started Guide with correct boot commands and/or updated boot scripts.

Can't start X

HDMI display is detected with the following arguments and console prompt shows up ok:

setenv defaultdisplay dvi
setenv dvimode 1280x720MR-16@60
setenv vram 12MB
setenv console ttyO2,115200n8
setenv optargs console=tty0
setenv mmcroot /dev/mmcblk0p2 ro
setenv mmcrootfstype ext4 rootwait fixrtc
setenv bootcmd 'fatload mmc 0:1 0x80300000 uImage; fatload mmc 0:1
  0x81600000 uInitrd; bootm 0x80300000 0x81600000'
setenv bootargs console=${console} ${optargs} root=${mmcroot}
  rootfstype=${mmcrootfstype} vram=${vram}
  omapfb.mode=${defaultdisplay}:${dvimode}
  omapdss.def_disp=${defaultdisplay}
boot

However X server is failing:

root@duovero:/var/log# cat Xorg.0.log
[1792062.290] 
X.Org X Server 1.14.0
Release Date: 2013-03-05
[1792062.291] X Protocol Version 11, Revision 0
[1792062.291] Build Operating System: Linux 3.2.0-58-generic x86_64 
[1792062.291] Current Operating System: Linux duovero 3.6.11 #1 SMP Thu Feb 20 17:58:16 PST 2014 armv7l
[1792062.291] Kernel command line: console=ttyO2,115200n8 vram=12MB root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait
[1792062.291] Build Date: 11 February 2014  01:24:51PM
[1792062.291]  
[1792062.291] Current version of pixman: 0.30.2
[1792062.291]   Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
[1792062.291] Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[1792062.292] (==) Log file: "/var/log/Xorg.0.log", Time: Sat Jan  1 00:01:07 2000
[1792062.292] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[1792062.293] (==) No Layout section.  Using the first Screen section.
[1792062.293] (==) No screen section available. Using defaults.
[1792062.293] (**) |-->Screen "Default Screen Section" (0)
[1792062.293] (**) |   |-->Monitor "<default monitor>"
[1792062.294] (==) No monitor specified for screen "Default Screen Section".
    Using a default monitor configuration.
[1792062.294] (==) Automatically adding devices
[1792062.294] (==) Automatically enabling devices
[1792062.294] (==) Automatically adding GPU devices
[1792062.294] (WW) The directory "/usr/share/fonts/X11/misc/" does not exist.
[1792062.294]   Entry deleted from font path.
[1792062.294] (WW) The directory "/usr/share/fonts/X11/TTF/" does not exist.
[1792062.294]   Entry deleted from font path.
[1792062.294] (WW) The directory "/usr/share/fonts/X11/OTF/" does not exist.
[1792062.294]   Entry deleted from font path.
[1792062.294] (WW) The directory "/usr/share/fonts/X11/Type1/" does not exist.
[1792062.294]   Entry deleted from font path.
[1792062.294] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[1792062.295]   Entry deleted from font path.
[1792062.295] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[1792062.295]   Entry deleted from font path.
[1792062.295] (==) FontPath set to:

[1792062.295] (==) ModulePath set to "/usr/lib/xorg/modules"
[1792062.295] (II) The server relies on udev to provide the list of input devices.
    If no devices become available, reconfigure udev or disable AutoAddDevices.
[1792062.295] (II) Loader magic: 0x1a6848
[1792062.295] (II) Module ABI versions:
[1792062.295]   X.Org ANSI C Emulation: 0.4
[1792062.295]   X.Org Video Driver: 14.1
[1792062.295]   X.Org XInput driver : 19.1
[1792062.295]   X.Org Server Extension : 7.0
[1792062.296] Initializing built-in extension Generic Event Extension
[1792062.296] Initializing built-in extension SHAPE
[1792062.296] Initializing built-in extension MIT-SHM
[1792062.296] Initializing built-in extension XInputExtension
[1792062.296] Initializing built-in extension XTEST
[1792062.296] Initializing built-in extension BIG-REQUESTS
[1792062.296] Initializing built-in extension SYNC
[1792062.296] Initializing built-in extension XKEYBOARD
[1792062.296] Initializing built-in extension XC-MISC
[1792062.296] Initializing built-in extension XFIXES
[1792062.296] Initializing built-in extension RENDER
[1792062.296] Initializing built-in extension RANDR
[1792062.296] Initializing built-in extension COMPOSITE
[1792062.296] Initializing built-in extension DAMAGE
[1792062.296] Initializing built-in extension MIT-SCREEN-SAVER
[1792062.296] Initializing built-in extension DOUBLE-BUFFER
[1792062.296] Initializing built-in extension DPMS
[1792062.296] Initializing built-in extension X-Resource
[1792062.296] Initializing built-in extension XVideo
[1792062.296] Initializing built-in extension XVideo-MotionCompensation
[1792062.296] Initializing built-in extension XFree86-VidModeExtension
[1792062.296] Initializing built-in extension XFree86-DGA
[1792062.297] Initializing built-in extension XFree86-DRI
[1792062.297] Initializing built-in extension DRI2
[1792062.297] (II) LoadModule: "glx"
[1792062.298] (WW) Warning, couldn't open module glx
[1792062.298] (II) UnloadModule: "glx"
[1792062.298] (II) Unloading glx
[1792062.298] (EE) Failed to load module "glx" (module does not exist, 0)
[1792062.298] (==) Matched modesetting as autoconfigured driver 0
[1792062.298] (==) Matched fbdev as autoconfigured driver 1
[1792062.298] (==) Assigned the driver to the xf86ConfigLayout
[1792062.298] (II) LoadModule: "modesetting"
[1792062.299] (WW) Warning, couldn't open module modesetting
[1792062.299] (II) UnloadModule: "modesetting"
[1792062.299] (II) Unloading modesetting
[1792062.299] (EE) Failed to load module "modesetting" (module does not exist, 0)
[1792062.299] (II) LoadModule: "fbdev"
[1792062.300] (WW) Warning, couldn't open module fbdev
[1792062.300] (II) UnloadModule: "fbdev"
[1792062.300] (II) Unloading fbdev
[1792062.300] (EE) Failed to load module "fbdev" (module does not exist, 0)
[1792062.300] (EE) No drivers available.
[1792062.300] 
Fatal server error:
[1792062.300] no screens found
[1792062.300] (EE) 
Please consult the The X.Org Foundation support 
     at http://wiki.x.org
 for help. 
[1792062.300] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[1792062.300] (EE) 
[1792062.301] Server terminated with error (1). Closing log file.
root@duovero:/var/log# 

[Overo] Powered USB Hub on the Host port not recognized

Keyboard and mouse connected to a Tobi board through a powered USB hub are note getting recgnized. Running on April 19 XFCE image.

root@overo:~$  dmesg | tail
[  104.011047] ehci-omap ehci-omap.0: suspend root hub
[  133.034179] usb usb1: usb wakeup-resume
[  133.034240] usb usb1: usb auto-resume
[  133.034240] ehci-omap ehci-omap.0: resume root hub
[  133.081207] hub 1-0:1.0: hub_resume
[  133.081298] ehci-omap ehci-omap.0: GetStatus port:2 status 001002 0  ACK POWER sig=se0 CSC
[  133.190673] hub 1-0:1.0: state 7 ports 3 chg 0000 evt 0000
[  135.190643] hub 1-0:1.0: hub_suspend
[  135.190704] usb usb1: bus auto-suspend, wakeup 1
[  135.190734] ehci-omap ehci-omap.0: suspend root hub

[General] Yocto Project 1.6 Upgrade Issues

With the following manifest:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <!-- You can have as many remote repositories as you like -->
  <remote name="gumstix" fetch="git://github.com/gumstix" />
  <remote name="yocto" fetch="git://git.yoctoproject.org" />
  <remote name="oe" fetch="git://github.com/openembedded" />

  <!-- List all the repositories you want to fetch -->
  <!-- "name": git repository's name on hosting server
       "remote": the remote host from above (if not the default)
       "revision": commitish to checkout (if not the default)
       "path": directory where git repository gets cloned/synced -->
  <project name="poky" revision="refs/heads/master" remote="yocto" />
  <project name="meta-oe" revision="refs/heads/master"  remote="oe" path="poky/meta-openembedded" />
  <project name="meta-gumstix" revision="refs/heads/dora"  remote="gumstix" path="poky/meta-gumstix" />
  <project name="meta-gumstix-extras" revision="refs/heads/dora" remote="gumstix" path="poky/meta-gumstix-extras" />
  <project name="meta-ti" revision="refs/heads/master"  remote="yocto" path="poky/meta-ti" />

</manifest>

Initial build errors:

adam@pine:/media/Build/Post-Dora/build$ bitbake core-image-sato
Loading cache: 100% |###########################################################################################################################################################################################################################################| ETA:  00:00:00
Loaded 1989 entries from dependency cache.
ERROR: No recipes available for:
  /media/Build/Post-Dora/poky/meta-gumstix-extras/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.0.bbappend
  /media/Build/Post-Dora/poky/meta-gumstix-extras/recipes-core/busybox/busybox_1.21.1.bbappend
  /media/Build/Post-Dora/poky/meta-gumstix-extras/recipes-multimedia/musicpd/mpd_0.17.1.bbappend
  /media/Build/Post-Dora/poky/meta-gumstix-extras/recipes-connectivity/neard/neard_0.10.bbappend
ERROR: Command execution failed: Exited with 1

Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

[virtual/kernel] Build fail on configme

Should check out kernel recipe against meta-skeleton

DEBUG: Executing shell function do_kernel_configme
[INFO] doing kernel configme
[INFO] Configuring target/machine combo: "standard/overo"
[INFO] collecting configs in ./.meta/meta-series 
cat: .meta/cfg/standard/overo/config_frag.txt: No such file or directory
cat: .meta/cfg/standard/overo/config_frag.txt: No such file or directory
mv: target `3.5.7' is not a directory
creation of pre-processed config data failed
config of "standard/overo" failed
WARNING: exit code 1 from a shell command.

[General] smart install using Gumstix master pkg repo fails

It's only failing in master pkg repo. Last night's DuoVero build on master branch ran successfully and I can see that pkg repo sync worked too.

root@duovero:~$  smart install vim
Loading cache...
Updating cache...               ######################################## [100%]

Computing transaction...

Installing packages (1):
  vim-7.4.27-r0@armv7a_vfp_neon          

870.1kB of package files are needed. 1.6MB will be used.

Confirm changes? (Y/n): Y

Fetching packages...                                                           
-> https://packages.gumstix.com/master/.../vim-7.4.27-r0.armv7a_vfp_neon.rpm   
vim-7.4.27-r0.armv7a_vfp_neon..                                          [  0%]

error: Failed to download packages:                                            
error:     https://packages.gumstix.com/master/armv7a_vfp_neon/vim-7.4.27-r0.armv7a_vfp_neon.rpm: Server reports unexpected size
Saving cache...Unhandled fault: imprecise external abort (0x1406) at 0x04342010
Bus error
root@duovero:~$  

[ALL] Disable NFC service

There is no NFC on the boards

[FAILED] Failed to start NFC service.
See 'systemctl status neard.service' for details.

[General] Add support for u-boot-fw-utils

u-boot-fw-utility provides means to modify the U-Boot environment from Linux. Only Overo is supported at the moment. Duovero and Pepper fail to build due to lack of configuration files.

Dora Update - recipes with issues

These packages do not work in Dora. They are either deprecated or need to be updated :

  • meta-gumstix-extras/recipes-connectivity/networkmanager/networkmanager_0.9.2.0.bbappend
  • meta-gumstix-extras/recipes-core/systemd/systemd_199.bbappend
  • meta-gumstix/recipes-connectivity/bluez
  • meta-gumstix-extras/recipes-connectivity/bluez-tools
  • meta-gumstix/recipes-kernel/linux-firmware/linux-firmware_git.bbappend

Removed packages in recipes-images/gumstix/gumstix-console-image.bb :

  • u-boot-mkimage
  • u-boot-fw-utils

f9717ff19107f466f1f7c3fbeb52cfa68f46f18d
db1a03a81e4ff91ecff4b0e597b752fd76e9242b
cec4ed7a52ec1e16c96a8c574539ddbaa5acdbc7
5e51f5ad09050393ad1cae324b3d398379a55b23

[Duovero] USB OTG does not work as host

Message musb_bus_suspend 2308: trying to suspend as a_wait_bcon while active indefinitely prints

root@duovero:~$  modprobe g_serial
 gadget: Gadget Serial v2.4
 gadget: g_serial ready
musb-hdrc musb-hdrc: MUSB HDRC host driver
musb-hdrc musb-hdrc: new USB bus registered, assigned bus number 3
usb usb3: New USB device found, idVendor=1d6b, idProduct=0002
usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb3: Product: MUSB HDRC host driver
usb usb3: Manufacturer: Linux 3.6.11-yocto-standard musb-hcd
usb usb3: SerialNumber: musb-hdrc
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 1 port detected
root@duovero:~$  usb 3-1: new high-speed USB device number 2 using musb-hdrc
usb 3-1: New USB device found, idVendor=0409, idProduct=005a
usb 3-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
hub 3-1:1.0: USB hub found
hub 3-1:1.0: 4 ports detected
usb 3-1: USB disconnect, device number 2
usb 3-1: new high-speed USB device number 3 using musb-hdrc
usb 3-1: New USB device found, idVendor=0409, idProduct=005a
usb 3-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
hub 3-1:1.0: USB hub found
hub 3-1:1.0: 4 ports detected
musb_stage0_irq 486: bogus host RESUME (a_wait_bcon)
musb_bus_suspend 2308: trying to suspend as a_wait_bcon while active
^C
root@duovero:~$  musb_bus_suspend 2308: trying to suspend as a_wait_bcon while active
musb_bus_suspend 2308: trying to suspend as a_wait_bcon while active
musb_bus_suspend 2308: trying to suspend as a_wait_bcon while active
musb_bus_suspend 2308: trying to suspend as a_wait_bcon while active
musb_bus_suspend 2308: trying to suspend as a_wait_bcon while active

[ALL] Set PS1 value in .bashrc

With exception of shell open through the serial console, the layout of the prompt string (PS1) can be better refined. At the moment it only shows the host name (ie. overo: #) and nothing else.

[Pepper] eth0 powers off on boot

On Pepper, the ethernet connection should get an IP address as soon as it boots. It looks like udhcpc@eth0 systemd service does not need to be enabled.

The ethernet does not work however, when the LED indicator (indicating a cable is attached) is off. And it goes off everytime I reboot the board. More specifically, the light goes off 100% of the time when we reach the line saying PHY 0:01 not found:

[  OK  ] Started Network Manager.
[  OK  ] Reached target Network.
         Starting Network Time Service...
[   18.880351] net eth0: CPSW phy found : id is : 0x221611
[   18.886707] PHY 0:01 not found
[  OK  ] Started Network Time Service.
[  OK  ] Reached target Multi-User System.
[  OK  ] Reached target Graphical Interface.

Poky (Yocto Project Reference Distro) 1.5.1 pepper ttyO0

pepper login: 

The only way to bring back the connection is physically disconnect and reconnect the Ethernet cable, where I should see this:

pepper login: root
root@pepper:~$  [   91.872512] PHY: 0:00 - Link is Up - 1000/Full

root@pepper:~$  ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=49 time=17.4 ms
^C
--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 17.445/17.445/17.445/0.000 ms
root@pepper:~$  

This is not a new behavior in Daisy. Dora acts the same. And on Dylan I need to do ifup eth0 in addition to the above.

[Duovero] Bluetooth Systemd Service is setting up wrong device

hci1 is incorrect device node; it should be hci0

bluetooth.service - Bluetooth service
   Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled)
   Active: active (running) since Sat 2000-01-01 00:00:07 UTC; 51s ago
 Main PID: 172 (bluetoothd)
   CGroup: /system.slice/bluetooth.service
           └─172 /usr/sbin/bluetoothd -n

Jan 01 00:00:07 duovero bluetoothd[172]: Bluetooth daemon 4.101
Jan 01 00:00:07 duovero bluetoothd[172]: Starting SDP server
Jan 01 00:00:07 duovero bluetoothd[172]: bluetoothd[172]: Starting SDP server
Jan 01 00:00:07 duovero bluetoothd[172]: Bluetooth Management interface init...d
Jan 01 00:00:07 duovero bluetoothd[172]: No address available for hci1
Jan 01 00:00:07 duovero bluetoothd[172]: mgmtops: unable to register adapter
Jan 01 00:00:07 duovero bluetoothd[172]: bluetoothd[172]: Bluetooth Manageme...d
Jan 01 00:00:07 duovero bluetoothd[172]: bluetoothd[172]: No address availab...1
Jan 01 00:00:07 duovero bluetoothd[172]: bluetoothd[172]: mgmtops: unable to...r
Jan 01 00:00:07 duovero systemd[1]: Started Bluetooth service.
root@duovero:~# hcitool scan
Device is not available: No such device

Other than this, Duovero's bluetooth works.

[General] Enable bluetooth.service by default

On Duovero, systemctl enable bluetooth.service is all that's required at least to scan for other bluetoot devices.

On Overo, we need hciattach -s 115200 ttyO1 csr 115200 noflow in addition to above.

This is documented in the wiki, but should be enabled in the image also.

[Duovero] wireless network stack intermittently segfaults

[  OK  ] Stopped LSB: Remove /etc/nologin at boot.
[  OK  ] Started Store Sound Card State.
[  OK  ] Stopped target Remote File Systems.
[  OK  ] Stopped Music Player Daemon.
[  OK  ] Stopped target Sound Card.
------------[ cut here ]------------
WARNING: at net/wireless/scan.c:92 cfg80211_scan_done+0x30/0x60 [cfg80211]()
Modules linked in: mwifiex_sdio mwifiex btmrvl_sdio btmrvl bluetooth cfg80211 firmware_class rfkill ipv6
[<c0014c84>] (unwind_backtrace+0x0/0x11c) from [<c00357e8>] (warn_slowpath_common+0x4c/0x64)
[<c00357e8>] (warn_slowpath_common+0x4c/0x64) from [<c0035890>] (warn_slowpath_null+0x18/0x20)
[<c0035890>] (warn_slowpath_null+0x18/0x20) from [<bf0759e8>] (cfg80211_scan_done+0x30/0x60 [cfg80211])
[<bf0759e8>] (cfg80211_scan_done+0x30/0x60 [cfg80211]) from [<bf12a420>] (mwifiex_ret_802_11_scan+0x5dc/0x6d0 [mwifiex])
[<bf12a420>] (mwifiex_ret_802_11_scan+0x5dc/0x6d0 [mwifiex]) from [<bf12fe94>] (mwifiex_process_sta_cmdresp+0x488/0xe20 [mwifiex])
[<bf12fe94>] (mwifiex_process_sta_cmdresp+0x488/0xe20 [mwifiex]) from [<bf124488>] (mwifiex_process_cmdresp+0x2a4/0x368 [mwifiex])
[<bf124488>] (mwifiex_process_cmdresp+0x2a4/0x368 [mwifiex]) from [<bf121144>] (mwifiex_main_process+0x208/0x444 [mwifiex])
[<bf121144>] (mwifiex_main_process+0x208/0x444 [mwifiex]) from [<c004f9d0>] (process_one_work+0x25c/0x3f4)
[<c004f9d0>] (process_one_work+0x25c/0x3f4) from [<c004feb4>] (worker_thread+0x320/0x480)
[<c004feb4>] (worker_thread+0x320/0x480) from [<c005470c>] (kthread+0x84/0x90)
[<c005470c>] (kthread+0x84/0x90) from [<c000edec>] (kernel_thread_exit+0x0/0x8)
---[ end trace c2c6be042b125fef ]---
[  OK  ] Stopped Connection service (udhcpc).
[  OK  ] Removed slice system-udhcpc.slice.
         Stopping WPA supplicant...

[Duovero] Kernel timer segfaults

Kernel 3.6.11 for Duovero randomly segfaults. This is very infrequent, but nonetheless worrisome.

root@duovero:~$  ------------[ cut here ]------------
WARNING: at kernel/timer.c:1142 run_timer_softirq+0x24c/0x330()
timer: process_timeout+0x0/0x4 preempt leak: 00000100 -> 00000000
Modules linked in: btmrvl_sdio btmrvl mwifiex_sdio bluetooth mwifiex firmware_class cfg80211 rfkill ipv6
[<c0014c84>] (unwind_backtrace+0x0/0x11c) from [<c00357e8>] (warn_slowpath_common+0x4c/0x64)
[<c00357e8>] (warn_slowpath_common+0x4c/0x64) from [<c003582c>] (warn_slowpath_fmt+0x2c/0x3c)
[<c003582c>] (warn_slowpath_fmt+0x2c/0x3c) from [<c0043ce0>] (run_timer_softirq+0x24c/0x330)
[<c0043ce0>] (run_timer_softirq+0x24c/0x330) from [<c003d928>] (__do_softirq+0xcc/0x218)
[<c003d928>] (__do_softirq+0xcc/0x218) from [<c003de28>] (irq_exit+0x44/0x88)
[<c003de28>] (irq_exit+0x44/0x88) from [<c000eb8c>] (handle_IRQ+0x84/0xb0)
[<c000eb8c>] (handle_IRQ+0x84/0xb0) from [<c00084a0>] (gic_handle_irq+0x3c/0x60)
[<c00084a0>] (gic_handle_irq+0x3c/0x60) from [<c04942c0>] (__irq_svc+0x40/0x50)
Exception stack(0xee065f20 to 0xee065f68)
5f20: ee065f68 0000008d 9bbfb0cf 0000008d 9bbd5cc3 0000008d c102d540 00000002
5f40: 00000002 c0721934 00000001 00000000 00000010 ee065f68 c0072554 c0363a38
5f60: 60000113 ffffffff
[<c04942c0>] (__irq_svc+0x40/0x50) from [<c0363a38>] (cpuidle_wrap_enter+0x48/0x94)
[<c0363a38>] (cpuidle_wrap_enter+0x48/0x94) from [<c03635bc>] (cpuidle_enter_state+0x14/0x58)
[<c03635bc>] (cpuidle_enter_state+0x14/0x58) from [<c036520c>] (cpuidle_enter_state_coupled+0x1f8/0x244)
[<c036520c>] (cpuidle_enter_state_coupled+0x1f8/0x244) from [<c036374c>] (cpuidle_idle_call+0x14c/0x234)
[<c036374c>] (cpuidle_idle_call+0x14c/0x234) from [<c000f060>] (cpu_idle+0xb4/0x120)
[<c000f060>] (cpu_idle+0xb4/0x120) from [<80488ad4>] (0x80488ad4)
---[ end trace 1983b757da89e8c3 ]---

[Duovero] Random soft reset failure

This is not Yocto version specific.

As mentioned in this mailing list post, I observed soft reset failure on Duovero twice in a row. The image was recent (2014.01 U-Boot and Yocto Project 1.6). However I am not able to reproduce the condition since.

April 19th XFCE image + Zepher (R3920) + ethernet + HDMI + serial console + Gumstix branded 2GB uSD card and with no other alteration in the image, sending sudo shutdown -r now succeeded 10 times in a row.

[Pepper] Requirements for Kernel 3.2+

Item needed to be completed for the original Pepper's Linux Kernel:

  • Resistive Touch Screen

    • Display have to turn on by default
    echo 0 > /sys/class/gpio/gpio59/value 
    
    echo 1 > /sys/class/gpio/gpio59/value
    

    Should execute display-enable on boot

    • The short axis is inverted
  • Audio

    • Port from Pepper's Android 3.2 kernel

[General] Properly configure system clock

Git may be malfunctioning as follows because the date is off:

root@duovero:~$  git clone https://github.com/ros/ros_tutorials.git
Cloning into 'ros_tutorials'...
fatal: unable to access 'https://github.com/ros/ros_tutorials.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
root@duovero:~$  date
Sat Jan  1 00:47:51 UTC 2000

[General] One Pager on Gumstix Yocto Project 1.5

The following table lists the features that are deemed to be essential for this release (Yocto Project 1.5). Feel free to comment.

Check mark signifies features that work out of the box

Overo DuoVero Pepper
Kernel 3.5 3.6 3.2
U-Boot 2014.01 2014.01 2012.10
SGX
WiFi *
WiFi on Boot *
Bluetooth *
Ethernet
boot / reboot using reboot and shutdown cmds
Audio In ? ? ?
Audio Out mplayer test.mp3 plays audio #8 #16
HDMI / DVI ** N/A
Resistive Touch Screen #25 N/A #16
Capacitive Touch Screen ? ? ?
x-server
Pkg Repo
Root Login user: root
User Login user: gumstix pass: overo
uSD Creator #24

* Refer the Gumstix Yocto Project Wiki page
** Refer to the Gumstix U-Boot Wiki

[General] meta-ros fails to build

added meta-ros to bblayers.conf and received this build failure:

ERROR: No recipes available for:
/home/dereck/yocto/poky/meta-ros/recipes-support/boost/boost_%.bbappend

[Duovero] Kernel scheduler error shows up repeatedly

When left idle for a period time, the serial console is flooded with the repeating messages:

Modules linked in: mwifiex_sdio btmrvl_sdio mwifiex btmrvl bluetooth cfg80211 firmware_class rfkill ipv6
[<c0014c84>] (unwind_backtrace+0x0/0x11c) from [<c048dbbc>] (__schedule_bug+0x48/0x60)
[<c048dbbc>] (__schedule_bug+0x48/0x60) from [<c0493bbc>] (__schedule+0x68/0x798)
[<c0493bbc>] (__schedule+0x68/0x798) from [<c000f0b0>] (cpu_idle+0x104/0x120)
[<c000f0b0>] (cpu_idle+0x104/0x120) from [<80489c54>] (0x80489c54)
BUG: scheduling while atomic: swapper/1/0/0xfffffe00
Modules linked in: mwifiex_sdio btmrvl_sdio mwifiex btmrvl bluetooth cfg80211 firmware_class rfkill ipv6
[<c0014c84>] (unwind_backtrace+0x0/0x11c) from [<c048dbbc>] (__schedule_bug+0x48/0x60)
[<c048dbbc>] (__schedule_bug+0x48/0x60) from [<c0493bbc>] (__schedule+0x68/0x798)
[<c0493bbc>] (__schedule+0x68/0x798) from [<c000f0b0>] (cpu_idle+0x104/0x120)
[<c000f0b0>] (cpu_idle+0x104/0x120) from [<80489c54>] (0x80489c54)
BUG: scheduling while atomic: swapper/1/0/0xfffffe00
Modules linked in: mwifiex_sdio btmrvl_sdio mwifiex btmrvl bluetooth cfg80211 firmware_class rfkill ipv6
[<c0014c84>] (unwind_backtrace+0x0/0x11c) from [<c048dbbc>] (__schedule_bug+0x48/0x60)
[<c048dbbc>] (__schedule_bug+0x48/0x60) from [<c0493bbc>] (__schedule+0x68/0x798)
[<c0493bbc>] (__schedule+0x68/0x798) from [<c000f0b0>] (cpu_idle+0x104/0x120)
[<c000f0b0>] (cpu_idle+0x104/0x120) from [<80489c54>] (0x80489c54)
BUG: scheduling while atomic: swapper/1/0/0xfffffe00
Modules linked in: mwifiex_sdio btmrvl_sdio mwifiex btmrvl bluetooth cfg80211 firmware_class rfkill ipv6
[<c0014c84>] (unwind_backtrace+0x0/0x11c) from [<c048dbbc>] (__schedule_bug+0x48/0x60)
[<c048dbbc>] (__schedule_bug+0x48/0x60) from [<c0493bbc>] (__schedule+0x68/0x798)
[<c0493bbc>] (__schedule+0x68/0x798) from [<c000f0b0>] (cpu_idle+0x104/0x120)
[<c000f0b0>] (cpu_idle+0x104/0x120) from [<80489c54>] (0x80489c54)

Possibly this is more frequently observed in an XFCE image, rather than a console image.

[kernel] USB OTG as Mass Storage Device

Verifying USB OTG as mass storage device

On Overo + Palo35

root@overo:~$  modprobe g_mass_storage file=/dev/mmcblk0   
mmcblk0    mmcblk0p1  mmcblk0p2  
root@overo:~$  modprobe g_mass_storage file=/dev/mmcblk0p1
[   30.634552]  gadget: Mass Storage Function, version: 2009/09/11
[   30.644592]  gadget: Number of LUNs=1
[   30.648468]  lun0: LUN: removable file: /dev/mmcblk0p1
[   30.658966]  gadget: Mass Storage Gadget, version: 2009/09/11
[   30.665008]  gadget: userspace failed to provide iSerialNumber
[   30.677001]  gadget: g_mass_storage ready
[   30.693756] musb-hdrc musb-hdrc: MUSB HDRC host driver
[   30.707855] musb-hdrc musb-hdrc: new USB bus registered, assigned bus number 2
[   30.723022] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[   30.734313] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   30.752532] usb usb2: Product: MUSB HDRC host driver
[   30.757781] usb usb2: Manufacturer: Linux 3.5.7-yocto-standard musb-hcd
[   30.770996] usb usb2: SerialNumber: musb-hdrc
[   30.784271] hub 2-0:1.0: USB hub found
[   30.788238] hub 2-0:1.0: 1 port detected
root@overo:~$  [   40.637664]  gadget: high-speed config #1: Linux File-Backed Storage

On Host:

[2401884.860017] usb 1-2: new high-speed USB device number 20 using ehci-pci
[2401884.992856] usb 1-2: New USB device found, idVendor=0525, idProduct=a4a5
[2401884.992860] usb 1-2: New USB device strings: Mfr=2, Product=3, SerialNumber=0
[2401884.992862] usb 1-2: Product: Mass Storage Gadget
[2401884.992865] usb 1-2: Manufacturer: Linux 3.5.7-yocto-standard with musb-hdrc
[2401885.000613] usb-storage 1-2:1.0: Quirks match for vid 0525 pid a4a5: 10000
[2401885.000645] scsi10 : usb-storage 1-2:1.0
[2401886.001134] scsi 10:0:0:0: Direct-Access     Linux    File-CD Gadget   0316 PQ: 0 ANSI: 2
[2401886.001940] sd 10:0:0:0: Attached scsi generic sg5 type 0
[2401886.005245] sd 10:0:0:0: [sdf] 130944 512-byte logical blocks: (67.0 MB/63.9 MiB)
[2401886.108632] sd 10:0:0:0: [sdf] Write Protect is off
[2401886.108638] sd 10:0:0:0: [sdf] Mode Sense: 0f 00 00 00
[2401886.109742] sd 10:0:0:0: [sdf] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[2401886.222762]  sdf:
[2401886.335261] sd 10:0:0:0: [sdf] Attached SCSI removable disk
yocto@ruben:/media$ ls
boot  usb_otg_storage
yocto@ruben:/media$ sudo mount /dev/sdf /media/usb_otg_storage/
[sudo] password for yocto: 
yocto@ruben:/media$ ls usb_otg_storage/
MLO  u-boot.img  uImage
yocto@ruben:/media$ 

zsh: "TEMPLATECONF=bla source ./poky/oe-init-build-env" does not work during bootstrapping

During bootstrapping, following the README:

bash:

    TEMPLATECONF=meta-myrepo/conf source ./poky/oe-init-build-env

does work

zsh:

    TEMPLATECONF=meta-myrepo/conf source ./poky/oe-init-build-env

does not work... the fallback-template is choosen instead of the user-supplied one. the environment variable from the commandline is not imported into the environment used by "source". using

    export TEMPLATECONF=meta-myrepo/conf
    source ./poky/oe-init-build-env

does work in zsh as well

[General] LXDM fails to start

On 1.5 'Dora'

root@overo:~$  cat log | grep -i lxdm
Jan 01 00:02:38 overo systemd[1]: Looking at job lxdm.service/start conflicted_by=no
Jan 01 00:02:38 overo systemd[1]: Looking at job lxdm.service/stop conflicted_by=no
Jan 01 00:02:38 overo systemd[1]: Fixing conflicting jobs by deleting job lxdm.service/stop
Jan 01 00:02:38 overo systemd[1]: Installed new job lxdm.service/start as 89
Jan 01 00:02:48 overo systemd[1]: About to execute: /usr/sbin/lxdm
Jan 01 00:02:48 overo systemd[1]: Forked /usr/sbin/lxdm as 127
Jan 01 00:02:48 overo systemd[127]: Executing: /usr/sbin/lxdm
Jan 01 00:02:53 overo kernel[114]: [    4.286621] systemd[1]: Looking at job lxdm.service/start conflicted_by=no
Jan 01 00:02:53 overo kernel[114]: [    4.286651] systemd[1]: Looking at job lxdm.service/stop conflicted_by=no
Jan 01 00:02:53 overo kernel[114]: [    4.286682] systemd[1]: Fixing conflicting jobs by deleting job lxdm.service/stop
Jan 01 00:02:53 overo kernel[114]: [    4.289398] systemd[1]: Installed new job lxdm.service/start as 89
Jan 01 00:02:55 overo kernel[114]: [   15.754699] systemd[1]: lxdm.service changed dead -> running
Jan 01 00:02:55 overo kernel[114]: [   15.754852] systemd[1]: Job lxdm.service/start finished, result=done
Jan 01 00:02:55 overo systemd[1]: lxdm.service changed dead -> running
Jan 01 00:02:55 overo systemd[1]: Job lxdm.service/start finished, result=done
root@overo:~$  

On 1.6 'Daisy':

root@overo:~$  cat systemd_log | grep -i lxdm
Jan 01 00:22:42 overo systemd[1]: Got message type=method_call sender=n/a destination=org.freedesktop.systemd1 object=/org/freedesktop/systemd1/unit/lxdm_2eservice interface=org.freedesktop.DBus.Properties member=GetAll cookie=1 reply_cookie=0 error=n/a
Jan 01 00:22:42 overo systemd[1]: Collecting lxdm.service
Jan 01 00:22:42 overo systemd[1]: Failed to send unit change signal for lxdm.service: Transport endpoint is not connected
Jan 01 00:22:42 overo systemd[1]: Failed to send unit remove signal for lxdm.service: Transport endpoint is not connected
root@overo:~$  

[General] One Pager on Gumstix Yocto Project 1.6

The following table lists the features that are deemed to be essential for this release (Yocto Project 1.6). Feel free to comment.

Check mark signifies features that work out of the box

Overo DuoVero Pepper
Kernel 3.5 3.6 3.2
U-Boot 2014.01 2014.01 2012.10
SGX
WiFi * ifup mlan0; iwlist mlan0 scan
WiFi on Boot *
Bluetooth * #36 #10
Ethernet ifup eth0 start udhcpc ✓ / #44
Ethernet on Boot gumstix/meta-gumstix-extras@e7f43a9 #44
boot / reboot using reboot and shutdown cmds
Audio In ? ?
Audio Out mplayer test.mp3 plays audio #8
USB OTG as host modprobe g_serial
USB Host Powered USB Hub to USB Host
HDMI / DVI N/A
Resistive Touch Screen #53 N/A ✓ / #16
Capacitive Touch Screen ? ? ?
x-server
Pkg Repo
Root Login user: root
User Login user: gumstix pass: overo
uSD Creator #24
XFCE Specific Features Overo DuoVero Pepper
Network Manager Wifi on boot
Network Manager Ethernet on boot
Login as root

* Refer the Gumstix Yocto Project Wiki page
** Refer to the Gumstix U-Boot Wiki

[General] Ensure uAP mode on SD8787 works

uAP as an interface is no longer initialized by the kernel module. We need to make sure this capability is still available if needed.

uAP0 gets added as the following:

root@duovero:~$  iw phy phy0 interface add uap0 type __ap

root@duovero:~$  ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:15:C9:29:06:57  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:204 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:32 errors:0 dropped:0 overruns:0 frame:0
          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2656 (2.5 KiB)  TX bytes:2656 (2.5 KiB)

mlan0     Link encap:Ethernet  HWaddr 00:19:88:24:FB:AE  
          inet addr:192.168.0.111  Bcast:0.0.0.0  Mask:255.255.255.0
          inet6 addr: fe80::219:88ff:fe24:fbae/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:466 errors:0 dropped:3 overruns:0 frame:0
          TX packets:95 errors:5 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:140256 (136.9 KiB)  TX bytes:11060 (10.8 KiB)

uap0      Link encap:Ethernet  HWaddr 00:19:88:24:FB:AE  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@duovero:~$ 

[ref] http://wireless.kernel.org/en/users/Drivers/mwifiex

[General] Rootfs Fails on smart repo config

NOTE: Executing add_custom_smart_config ...
DEBUG: Executing shell function add_custom_smart_config
Traceback (most recent call last):
  File "/media/Build/master-next/build/tmp/sysroots/x86_64-linux/usr/bin/smart.real", line 27, in <module>
    from smart import init, initDistro, initPlugins, initPycurl, initPsyco
ImportError: No module named smart
WARNING: exit code 1 from a shell command.
DEBUG: Python function do_rootfs finished
ERROR: Function failed: add_custom_smart_config (log file is located at /media/Build/master-next/build/tmp/work/overo-poky-linux-gnueabi/gumstix-xfce-image/1.0-r0/temp/log.do_rootfs.4175)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.