Bug 2308 - A small common BSP with graphics for as many platforms as possible (x86)
Summary: A small common BSP with graphics for as many platforms as possible (x86)
Status: VERIFIED FIXED
Alias: None
Product: BSPs
Classification: Build System, Metadata & Runtime
Component: bsps-configuration (show other bugs)
Version: 1.3
Hardware: All x86
: High enhancement
Target Milestone: 1.5 M4
Assignee: Ross Burton
QA Contact:
URL:
Whiteboard:
: 4211 (view as bug list)
Depends on:
Blocks: 4693
  Show dependency tree
 
Reported: 2012-04-16 23:30 UTC by Song Liu
Modified: 2013-09-19 15:21 UTC (History)
9 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: Yes (doc changes required)


Attachments
lspci output on sugarbay hardware using core-image-sato-sdk-genericx86-64 image (1.69 KB, text/plain)
2013-09-05 11:51 UTC, Stoicescu Cornel
no flags Details
logs from a sugarbay machine (21.51 KB, application/octet-stream)
2013-09-12 10:16 UTC, Razvan Ionescu
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Song Liu 2012-04-16 23:30:07 UTC
Background:
Some projects need to have a small embedded Linux BSP to run on many hardware platforms (mainly x86). The BSP could be used in many different ways. One use case is to bundle some special purpose applications with the BSP so that users can easily install the BSP on available hardware and run the applications. 


Requirement: 

1. With a sample layer, build a small common BSP with basic graphics capability for as many hardware platforms as possible. 

Size: < 50MB
Hardware platforms: need info
Driver support: need info
Boot time: need info

2. Document: a how-to guide with the sample layer to show users how to build such a BSP with other customization.
Comment 1 Darren Hart 2012-05-01 15:36:06 UTC
Need info on which platforms need to be supported. What does "with graphics" mean. Full Sato desktop for multiple systems in under 50MB isn't going to happen in 1.3.
Comment 2 Darren Hart 2012-05-02 16:49:01 UTC
What about a multi-target install image. It would be relatively huge, fit on a DVD for example, with all the meta-intel BSPs with an integrated installer. Syslinux can change the default target based on cpu type which could help with this.

Consider a boot menu:

+-----------------------
| Syslinux 4.03
| Yocto Project : Hydra Installer
|
| Select your platform:
| atom-pc
| crownbay
| n450
| fri2
| pegasus
| sys940x
| uranus
+-----------------------
Comment 3 Richard Purdie 2012-05-03 21:47:38 UTC
I don't think that would fit the suggested usecase well. I think the intend of the usecase would be to ship an image which would run on a suitably wide range of hardware (say i686 optimised only) with support for fbdev, vesa and i915 Xorg drivers and auto selecting xorg.conf.

I put together a proof of concept here:

http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=rpurdie/x11updater

which boots into X11 on a variety of different pieces of hardware I had lying around (laptop, desktop, selection of netbooks).
Comment 4 Richard Purdie 2012-05-03 21:49:39 UTC
(In reply to comment #1)
> Need info on which platforms need to be supported. What does "with graphics"
> mean. Full Sato desktop for multiple systems in under 50MB isn't going to
> happen in 1.3.

Er, see my branch, its not that hard ;-).
Comment 5 Marco Cavallini 2012-11-13 16:54:20 UTC
(In reply to comment #0)
> Background:
> Some projects need to have a small embedded Linux BSP to run on many
> hardware platforms (mainly x86)... 
[snip]

I'd like it too.
IMHO having a generic x86 VESA based graphics BSP would be useful to use Yocto on most of the industrial motherboards.
Comment 6 Richard Purdie 2012-11-27 15:20:19 UTC
Please talk to me (RP) about this, importance is increasing...
Comment 7 Ross Burton 2012-12-05 16:25:37 UTC
Some obvious initial thoughts:

- call it generic-x86 to indicate that it's generic and for x86.  Also do generic-x86-64?
- CPU tune for atom: powerful CPUs can do more re-ordering on the die rather than at compile time, unlike Atom.
- fbdev, vesa, intel kernel and X drivers integrated

That gets us booting and seeing something.

It gets more fun with network stacks. If we assume that this is intended to boot on lots of hardware and for a known target another BSP would be used (potentially a custom one based on this) then we can build and ship the main free networking drivers for wifi and wired, and the relevant firmware.  Sadly there isn't a list of "upstream networking drivers that are also stable".
Comment 8 Marco Cavallini 2012-12-05 16:36:09 UTC
I'd suggest to start with a more 'basic' cpu like a 486 just to widen the supported targets.
Comment 9 Ross Burton 2012-12-05 16:42:54 UTC
Supporting something like a 486 sounds like a BSP of its own - I can see a generic image having issues booting on something like a 486 with 8M of RAM.
Comment 10 Ross Burton 2012-12-06 17:37:15 UTC
poky-contrib:ross/genericx86 has an expanded atom-pc machine - kernel 3.4, more X drivers, more Mesa drivers, all firmware.  Next step is to build more modules and actually test it.
Comment 11 Stoicescu Cornel 2013-07-31 15:06:12 UTC
Please provide information for testing this when it is available. Please use bug 4693 for this.
Comment 12 Ross Burton 2013-08-22 16:20:08 UTC
Kernel changes are queued up with Bruce, and the meta-yocto-bsp changes have been sent to poky@.
Comment 13 Darren Hart 2013-08-26 23:15:54 UTC
Updated patch series sent to the poky list.
Comment 14 Darren Hart 2013-08-26 23:16:56 UTC
*** Bug 4211 has been marked as a duplicate of this bug. ***
Comment 15 Stoicescu Cornel 2013-09-04 11:51:19 UTC
Issue found for genericx86-64 standby: bug 5117
Comment 16 Stoicescu Cornel 2013-09-04 14:57:53 UTC
I got some fails on ABAT test similar to bug 2793 tipical to -noemgd images. Does the genericx86-64 image have 3D acceleration enabled?

Note: I see this is in poky already. Should the bug be set to RESOLVED?
Comment 17 Ross Burton 2013-09-04 14:59:29 UTC
genericx86 is fully open so doesn't have EMGD.  Any failures on specific hardware that reproduce with the -nonemgd are almost certainly the same problem.
Comment 18 Stoicescu Cornel 2013-09-05 10:47:36 UTC
"No sound card detected" showed up during boot. Also this:
root@genericx86-64:~# amixer
amixer: Mixer attach default error: No such file or directory

Should sound work on genericx86-64 images?
Comment 19 Ross Burton 2013-09-05 10:50:18 UTC
Yes, what hardware?  lspci or something similar please too.
Comment 20 Stoicescu Cornel 2013-09-05 11:51:08 UTC
Created attachment 1462 [details]
lspci output on sugarbay hardware using core-image-sato-sdk-genericx86-64 image

Tested on sugarbay hardware.

Please note that I looked again for the "No sound cards found" message but it seems I did not see it here. Please ignore that report.
Comment 21 Stoicescu Cornel 2013-09-05 11:53:27 UTC
I created a wiki page that contains results of testing for generic images:
https://wiki.yoctoproject.org/wiki/User:Corneliu_Stoicescu/genericx86

The page will be updated as more results come in and tested builds change.
Comment 22 Stoicescu Cornel 2013-09-05 12:29:59 UTC
audio bug 5130
Comment 23 Razvan Ionescu 2013-09-12 10:16:23 UTC
Created attachment 1492 [details]
logs from a sugarbay machine

I have tried to install the generic x86_64 image on a Sugarbay machine.
The build is 1.5 M5 rc1: 
master:566ca1e4769b4ec7e3f6c6a98bb817db2221cf82
Comment 24 Darren Hart 2013-09-17 16:32:34 UTC
Ross, can you close this with the understanding that any remaining issues have been opened as independent bugs?
Comment 25 Ross Burton 2013-09-17 16:37:18 UTC
Yes.
Comment 26 Stoicescu Cornel 2013-09-19 15:19:14 UTC
generic images can be built and work to some degree on multiple x86 and x86-64 hardware (Sugarbay, atom-pc, NUC, jasperforest).

All issues with the generic images have separate bugs from the main feature.

Setting to VERIFIED in master:566ca1e4769b4ec7e3f6c6a98bb817db2221cf82 
(1.5 M5 RC1)
Comment 27 Stoicescu Cornel 2013-09-19 15:21:54 UTC
Please note that also the generic images have been added to the Full pass testing cycle. For now we are testing genericx86 on atom-pc hardware and genericx86-64 on Sugarbay hardware.