Difference between revisions of "Category talk:FAQ"

From Openembedded.org
Jump to: navigation, search
(Can Moms Stop College drinking?: new section)
m (Reverted edits by Ejumuvo (Talk) to last revision by Sledz)
(23 intermediate revisions by 15 users not shown)
Line 232: Line 232:
== 5. How do I view the value of OE variables for a package? ==
== 5. How do I view the value of OE variables for a package? ==
* Use the [[BitBake]] command.   
* Use the [[BitBake]] command.   
** `bitbake -e ../openembedded/recipes/meta/bootstrap-image.bb`
** `bitbake -e -b ../openembedded/recipes/meta/bootstrap-image.bb`
** `bitbake -e <package name>`
** `bitbake -e <package name>`
* Use the [[OpenEmbedded]] showdata command.  Ex: `bitbake -b ../openembedded/recipes/meta/bootstrap-image.bb -c showdata`
* Use the [[OpenEmbedded]] showdata command.  Ex: `bitbake -b ../openembedded/recipes/meta/bootstrap-image.bb -c showdata`
Line 238: Line 238:
== 6. How do I unpack ipk files? ==
== 6. How do I unpack ipk files? ==
ipk package files can be unpackaged with the `ar` command.  Ex: `ar x <path to ipk file>`  You can also inspect the files inside an ipk and get other information with the dpkg command if your distribution has it.
ipk package files can be unpackaged with the `ar` command.  Ex: `ar x <path to ipk file>`  You can also inspect the files inside an ipk and get other information with the dpkg command if your distribution has it.
== Can Moms Stop College drinking? ==
Hey everyone what do you think of this!  Pretty crazy stuff!  I don't think anyone is going to stop young people from partying but what do my fellow moms think?
At Virginia Tech, where tailgating and raucous apartment complex parties are time-honored rituals, university officials are turning increasingly to Mom and Dad to curb problem underage drinking.
This semester, the school in Blacksburg, Va., began notifying parents when their under-21 students are found guilty of even minor alcohol violations such as getting caught with a beer in a dorm room.
Although it's common for colleges to alert parents of major alcohol offenses — or when a student faces suspension — Virginia Tech is part of a small but growing number sending letters home on minor ones.
The debate about how much to involve parents in such cases is a balancing act for colleges and universities. Officials want to hold young adults accountable as they venture out on their own, are well aware that drinking is part of the college experience, and also recognize potential allies in a generation of hands-on parents who can help when things go too far.
"I think it helps students open up to parents," said Steven Clarke, director of Virginia Tech's College Alcohol Abuse Prevention Center. "And parents can be helpful in setting boundaries students might need."
The beefed-up parental notification policy is part of a broader strategy that includes alcohol-education classes and a "party positive" program that encourages responsible drinking.
The student reaction to the policy change, not surprisingly, has been less than enthusiastic.
"If you have one beer in the dorm and you get caught, I don't feel like parents should be notified," said Erik Pryslak, a junior engineering major. "Now that we're all in college, we're all adults. It's kind of your responsibility to take care of yourself. If you want to make your parents aware you're about to be kicked out of school, then it's on you."
Studies show that students who say their parents would disapprove of them drinking are less likely to drink heavily once they get to college, said Toben Nelson, an assistant professor at the University of Minnesota School of Public Health who has studied campus drinking.
At Virginia Tech, the school has operated on a "three strikes" system for years: Students get one strike for a minor alcohol violation and two for a major one — things like getting a DUI or vomiting all over a residence hall bathroom. Three strikes and a student is suspended for at least one semester.
After a spate of alcohol-related deaths on college campuses, Congress in the late 1990s changed student privacy laws to lower barriers to parental notification in cases involving students under 21.
Schools took a wide array of approaches in response. Virginia Tech started notifying parents of under-21 students after major alcohol offenses or when a student had accumulated two strikes with two minor ones.
But some parents complained that because they had not been notified of minor offenses, they were in the dark until a student was suddenly facing suspension, said Edward Spencer, Virginia Tech's vice president for student affairs. Hence the change this semester — a move Spencer says also reflects changing times.
Parents of Generation X students were often reluctant to get involved when the school invoked an emergency clause in privacy laws and alerted them of alcohol problems, he said.
"The response would be, 'You know, I'm leaving on a cruise. I'm going to a class reunion.'"
But today, parents of millennials tend to be tethered by cell phone to children who studies show often idolize their parents — so it makes sense to go a step further in parental involvement, he said.
"We'd like to strike a happy medium," Spencer said. "We're grateful for the positive involvement of parents. We find it difficult when their involvement is over-involvement."
Research has found more than 40 percent of college students reported at least one symptom of alcohol abuse or dependance. One recent study estimated that more than 500,000 full-time students at four-year colleges suffer injuries each year related to drinking, and about 1,700 die in such accidents.
"When it comes to safety, there really is a fine line," said Max DiSesa, a sophomore from Durham, N.H. "I completely understand Virginia Tech and they want to keep people safe. But I think this might be overall detrimental to the growth of students."
Some universities already have found success alerting parents earlier. The University at Albany, State University of New York has seen a decline in repeat offenders since it began notifying parents of under-21 students of minor alcohol violations four years ago, said Laurie Garafola, director of residential life.
"I don't send many second letters out to parents," she said.
At the University of North Carolina Wilmington, the philosophy is different. The school — which like many others stresses shared responsibility to parents and students during summer orientation — does not notify parents of minor offenses. Parents, however, are notified before any under-21 student is suspended.
"Part of students coming to college is to learn how to be a responsible adult — and hopefully learn from their mistakes," said Patricia Leonard, vice chancellor for student affairs.
Copyright © 2010 The Associated Press. All rights reserved.

Latest revision as of 09:40, 24 November 2010


Old Wiki Faq

The old wiki installation seems to have eaten the FAQ page. Let's try to restore some of the information from web.archive.org, this will need to be compared with the last known-good version from google (mark all text on that page to make it visible). Content still to be moved follows

--Laibsch 23:08, 4 June 2008 (UTC)


1. what does OpenEmbedded keyword X do?

Check out the documentation in the following file: http://www.openembedded.org/repo/org.openembedded.dev/conf/documentation.conf

2. How can I make bitbake to use a specific version of <tool>?


3. How can I make bitbake use proxychains when doing cvs operations?


4. What is the easiest way to convert Debian ARM packages to ipkg's (if size doesn't matter)?

mv foo.deb foo.ipk

5. How do I add a package to OE?

Most of the time adding a package to OE will not be as easy as 1-2-3. Many software developers do not cross-compile their packages and are generally unaware of good design decisions that facilitate or break cross-compilation.

6. How can I do a recursive make?

Implement a structure along the following lines.

do_compile {
    for i in dir; oe_runmake ...; done

7. How do I set a variable according to the kernel version of the package being built?

Use base_conditional in the following manner:

CFLAGS_append = '${@base_conditional("KERNEL_MAJOR_VERSION", "2.6", " -D__Linux26__ ", " -D__Linux24__ ",d)}'

In the example above -D__Linux26__ will be added to the existing CFLAGS if the kernel is 2.6 and -D__Linux24__ if the kernel is 2.4

8. What is ARM EABI and how do I use it?

ARM EABI is the informal name for the ABI for the ARM Architecture standard developed by ARM Ltd and others. This standard explains how tools should generate object and excecutable files.

To instruct OE to build EABI parts, you typically need the following in your distro conf file:


See the Angstrom distro for an example: http://www.openembedded.org/repo/org.openembedded.dev/conf/distro/angstrom.conf http://www.openembedded.org/repo/org.openembedded.dev/conf/distro/angstrom-2006.9.conf

You also need to make sure your kernel has the needed support. From the codesourcery faq, you need the following:

  • CONFIG_EABI must be enabled
  • Kernel must include support for NPTL
  • kernel versions earlier than 2.6.17 should be avoided

9. What is NPTL and how do I use it in OE?

NPTL is the Native POSIX Thread Library which is a software feature that enables the Linux kernel to run programs written to use POSIX Threads very efficiently. It is meant to replace an older implementation named Linuxthreads.

  • [1]
  • [2]
  • to check what threading library you have, run the following command: getconf GNU_LIBPTHREAD_VERSION. You can also type:

/lib/libc.so.6 to get information on what threading lib is used.

There are two options for threading (from pb email):

  • With linuxthreads, you need glibc-initial, then gcc-cross-initial,

then glibc, then gcc-cross.

  • With nptl, you need glibc-initial, then gcc-cross-initial, then

glibc-intermediate, then gcc-cross, then glibc.

To use linuxthreads, you need something like the following:

PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = glibc

For NPTL, this becomes:

PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = glibc-intermediate

10. How do I apply for read-write status to the OpenEmbedded monotone repo?

Hang around IRC in #oe, use the dev mailing list or some other way to get in contact with the OE devs. Explain to them why you think you should be given rw access. If your request is granted, create your key and send it to the maintainers.

11. How do I add additional packages to a bootstrap-image generated image?

You can add packages to your build by setting the MACHINE_EXTRA_RDEPENDS or DISTRO_EXTRA_RDEPENDS in a conf file. Note, you must rebuild task-base after changing these variables (bitbake task-base -crebuild) as bitbake has no way of knowing task-base has changed. See [3] for a more detailed explanation.

12. What order are conf files parsed for variable assignment?

See oe/conf/bitbake.conf. There should be a section that looks something like:

include conf/site.conf
include conf/auto.conf
include conf/local.conf
include conf/build/${BUILD_SYS}.conf
include conf/target/${TARGET_SYS}.conf
include conf/machine/${MACHINE}.conf
include conf/distro/${DISTRO}.conf
include conf/documentation.conf
require conf/sanity.conf

A straight "=" assignment in a machine or distro conf file will overwrite a local.conf setting. Therefore, machine and distro conf files should use the "+=" assignment if it is useful for local.conf to be able to append to a variable.

Build Errors

1. chown error during do_install process

As the OE build process runs a normal using, any install process that changes file ownership or groups must be run using fakeroot. This typically involves the following change in the recipe bb file:

fakeroot do_install () {
	oe_runmake "DSTROOT=${D}" install

2. Error: autoreconf2.50: unrecognized option --exclude=libtoolize

For some reason the base system's autoreconf is being used instead of the OE version (from autoconf-native)

For me personally this was a problem with my BBPATH having the paths to two branches in it org.openembedded.oz354x and org.openembedded.dev. Removing the one i wasn't trying to build, remove the tmp dir and start bitbake over fixed it.

3. Error: Building libtool-native dies with "configure: error: source directory already configured; run "make distclean" there first"

Your build dir path has one or more symlinks in it. Don't do that!

4. Error: run.do_patchcleancmd.4326: line 442: syntax error near unexpected token `'INHIBIT_PACKAGE_STRIP','`

known bug -- see: http://bugs.openembedded.org/Ticket/Display.html?id=257 There are several workarounds:

    • inherit package in the offending bb files
    • set INHERIT += "package_ipk debian" in your distro or local.conf file

5. I updated OE.db and now my builds are failing during the glibc compile, complaining about bad symbol definitions. What's wrong?

As of this writing, the version of glibc in the .dev branch of OE calls for a version of binutils it really shouldn't use. A patch has been applied to some DISTRO .confs which forces the "correct" version of binutils (<2.17) for the moment. But if the DISTRO .conf file you're building with isn't patched, a workaround is to add the following line to your local.conf file:

PREFERRED_VERSION_binutils-cross = "2.16"

then reset the glibc build with

bitbake glibc -c clean

and start from where you left off.

6. My build dies during the qemu-native section. What gives?

If the error is:

| ERROR: QEMU requires SDL or Cocoa for graphical output
| To build QEMU without graphical output configure with --disable-gfx-check 
| Note that this will disable all output from the virtual graphics card.
| FATAL: oe_runconf failed

Then install SDL headers (apt-get install libsdl1.2-dev under Ubuntu/Debian).

Else another workaround: Install qemu from the distribution for your development computer, and include

ASSUME_PROVIDED +="qemu-native"

in your local.conf file.

7. Bitbake tells me to "Please set TARGET_OS directly, or choose a MACHINE or DISTRO that does so.", but my local.conf file already does.

Be sure you are not running bitbake as root. Doing so breaks Bitbake's use of chroot.

8. qemu crashes during generation of binary locales

Set ENABLE_BINARY_LOCALE_GENERATION = "0" in your local.conf. This is probably a x86_64 issue.

9. sanity checker complains "/proc/sys/vm/mmap_min_addr is not 0" on Ubuntu

Ubuntu Hardy Heron has this value set to 65536 by default. see /etc/sysctl.conf content below

 # protect bottom 64k of memory from mmap to prevent NULL-dereference
 # attacks against potential future kernel security vulnerabilities.
 # (Added in kernel 2.6.23.)
 vm.mmap_min_addr = 65536

Since Wine suffers from the same feature, a temporary and permenant fix is already known. See this link (duh!) : http://wiki.winehq.org/PreloaderPageZeroProblem

Q: Why is this necessary? I'm using debian, and mmap_min_addr is 4096, but I run qemu all the time, and it seems to work fine.

Debugging OE Builds

OE is not perfect. Due to the size, complexity, rapid pace of development, and lack of maintainers, you will often be presented with an opportunity to debug OE builds :). Fortunately, OE is easy to debug once you know a few tricks:

1. Debugging tips

  • learn to use interactive bitbake (`bitbake -i`)
  • The BitBake `--verbose` option will print package dependencies. This is very useful when trying to determine why a package is being built.
  • The BitBake `-D` option will increase debugging level. Note `-D -D` is also a valid option and can be used to determine what conf files are being used -- look for lines begining with conf.

2. How do I re-build a failing package?

There are several options:

  • `bitbake -b <path to bb file>`
  • `bitbake <package name>`
  • start bitbake interactive mode (`bitbake -i`) and then run `build <package name>`

3. How do I clean a package?

There are several options:

  • `bitbake -b <path to bb file> -c clean`
  • `bitbake <package name> -c clean`
  • start bitbake interactive mode (`bitbake -i`) and then run `clean <package name>`

You may also put several package names after the command e.g.

  • `bitbake -c clean pack1 pack2 ...`

Sometimes you want to clean a particular package version from your build/tmp/work directory. In this case use

  • for example `bitbake -c clean gcc-cross-initial-4.1.1`

Note: You have to use the package directory name here from your work directory without the trailing `-rx`. That means there is not an underscore before the package version but a simple dash. The above is quite useful if you want to clean up a work directory from unwanted versions of the same package.

The ipk file in the directory deploy/ipk is not deleted when you perform a clean on a certain package. So make sure you manually rebuild the cleaned package in order to get an updated ipk or delete the ipk prior to a build.

4. What tasks are available for a package/recipe?

Building an OE package consists of a number of tasks. These tasks can be listed with the OE listtasks task. Each task can be run individually.


bitbake -b <path to bb file> -c listtasks
NOTE: package matchbox-0.9.1: started
NOTE: package matchbox-0.9.1-r0: task do_listtasks: started
NOTE: package matchbox-0.9.1-r0: task do_listtasks: completed
NOTE: package matchbox-0.9.1: completed
Build statistics:
  Attempted builds: 1

5. How do I view the value of OE variables for a package?

  • Use the BitBake command.
    • `bitbake -e -b ../openembedded/recipes/meta/bootstrap-image.bb`
    • `bitbake -e <package name>`
  • Use the OpenEmbedded showdata command. Ex: `bitbake -b ../openembedded/recipes/meta/bootstrap-image.bb -c showdata`

6. How do I unpack ipk files?

ipk package files can be unpackaged with the `ar` command. Ex: `ar x <path to ipk file>` You can also inspect the files inside an ipk and get other information with the dpkg command if your distribution has it.