[fedora-arm] Announcing Fedora 18 Final for Allwinner A10 and A13 based devices

Hans de Goede hdegoede at redhat.com
Sun Feb 17 07:29:51 UTC 2013


Hi All,

I'm very happy to announce the availability of Fedora 18 Finalfor
Allwinner A10 and A13 based devices. This release is based on the official
Fedora 18 Final for ARM images.

You can download it here:
http://scotland.proximity.on.ca/contrib-images/hansg

It is important to read the README, the image standard comes without
u-boot pre-loaded since u-boot is board specific. The image includes
a user-friendly simple script to install the right u-boot for
your board, but if you simply xzcat the image to an sdcard, and then
boot your device with the sdcard, things will *not* work.

Allwinnner specific changes since Fedora 18 Beta:
* Support for A13 based devices
* The list of support devices / boards has been greatly extended, a
   total of 22 boards is now supported
* Many fixes to the video code, improving monitor compatibility, ie
   * Composite video out fixed
   * Support for Interlaced video modes
* The sound code now only registers alsa devices for the sound inputs
   / outputs which are actually present on the board, rather then for
   all the devices inside the A1x soc
* Give memory reserved for the blob drivers for the GPU and video
   engine back to Linux by default adding 176MiB to free memory.
   If you want to use the blobs remove the relevant options from the
   extra_args in uEnv.txt to turn the reservations back on
* gpio and led class support. Note that in order to use $random pin
   for gpio you need to add it to the gpio_para in the fex file,
   run fex2bin on the fex file, store the result as uboot/script.bin
   and reboot

See the README for a list of currently supported boards.

Enjoy,

Hans


And to make sure everyone reads the README, let me print it here
in full:

Fedora 18 ARM for Allwinner A10 and A13 devices README
------------------------------------------------------

Quickstart guide
----------------

1) Insert an sdcard, note any data on the card will be destroyed!
2) Make sure the card is not mounted, run "mount" and if the card shows
    up in the output umount its partitions
3) Write the img file to the card, ie as root do:
    xzcat Fedora-18-a10-armhfp-r1.img.xz > /dev/mmcblk0
    sync
4) The card is not yet ready for use! Since the A10 u-boot is board
    specific, the image comes without any uboot install, follow the next
    steps to install the right u-boot for your board
5) Remove the card, and re-insert it. The uboot partition should get
    automatically mounted, if not mount it manually,
6) As root (or through sudo) run:
    sh <uboot-part-mount>/select-board.sh
    Note the "sh " in front is necessary because the uboot vfat partition
    often gets auto-mounted noexec. ie:
    sudo sh /run/media/hans/uboot/select-board.sh

    If you've dialog installed the select-board.sh script will prompt for
    your board. If you don't have dialog installed, it will print the list
    of supported boards. Lookup your board and re-run the script with the
    shortname for your board as argument, ie:
    sudo sh /run/media/hans/uboot/select-board.sh mk802
7) umount the uboot and rootfs partitions, ie:
    umount /run/media/hans/uboot
    umount /run/media/hans/rootfs
8) Your sdcard is now ready for use
9) *Before* powering up your A10 device connect it to an hdmi or dvi monitor
10) When first booting from the sdcard inserted Fedora will automatically
    reboot once, this is part of the process to resize the root partition to
    fill the entire sdcard and is normal behavior.
11) After the automatic reboot Fedora will start with the firstboot wizard:
    11a) Configure a user here
    11b) Most A10 devices do not come with a battery backed rtc, so you will
         want to enable ntp. Simply click ok in the ntp dialog. Now firstboot
         will try to start ntp. Since most devices have only wireless, and
         that is not configured yet at this time, click on cancel when it
         tries to start ntp. If it then asks if you want to re-do your ntp
         configuration choose no.
12) Log in as the just created user
13) If you need to configure wireless click on the network icon in the
     top right corner (next to the clock) and select the wireless network
     you want to connect to
14) Enjoy Fedora on your A10 device


Supported Devices:
------------------

Fedora 18 ARM for Allwinner A10 has been tested with the following devices:
* BA10 TV Box
* Cubieboard development board 1024 MB RAM
* Gooseberry development board
* Mele a1000g/a2000g 1024 MB RAM
* Mini-X 1024 MB RAM
* mk802 (with female mini hdmi) 512 MB RAM
* mk802ii (with male normal hdmi) 1024 MB RAM
* UHost U1A hdmi tv stick
* Olimex A13-OLinuXino-MICRO

Fedora 18 ARM should also work on the following devices:
* Whitelabel A10 tablet sold under various names
* Cubieboard development board 512 MB RAM
* Coby MID7042 tablet
* Coby MID8042 tablet
* Coby MID9742 tablet
* H6 netbook
* Hackberry development board
* Hyundai a7hd tablet
* Mele a1000/a2000 512 MB RAM
* Mini-X 512 MB RAM
* mk802 (with female mini hdmi) 1024 MB RAM
* Point of View ProTab 2 IPS 9" tablet
* Point of View ProTab 2 IPS tablet with 3g
* Whitelabel A13 tablet sold under various names
* Olimex A13-OLinuXino


Configuring the display output
------------------------------

Multiple video outputs at the same time are not supported. By default
hdmi output with EDID is used for all devices, except for tablets/netbooks
where the default output is the lcd.

The default hdmi output with EDID will get the native resolution of your
TV / monitor and use that. Note that in order for this to work your TV /
monitor must be connected *and turned on*, before booting your device.

The output resolution can be configured with the disp.screen0_output_mode
kernel cmdline value, which can be found in the extrargs part of uEnv.txt in
the uboot partition. The default uEnv.txt contains the following value:
disp.screen0_output_mode=EDID:1280x720p60

This means try to use EDID and if no valid EDID info is found fallback to
1280x720p60.

The used output can be changed by adding disp.screen0_output_type=X to the
extraargs in uEnv.txt. With X being one of: 0:none; 1:lcd; 2:tv; 3:hdmi; 4:vga

Some per display type notes:
-lcd outputs: Hardcoded to the native mode, disp.screen0_output_mode is ignored
-tv: For the cvbs output disp.screen0_output_mode must be set to one of the
  following: pal, pal-svideo, ntsc, ntsc-svideo, pal-m, pal-m-svideo, pal-nc,
  pal-nc-svideo. Note the -svideo variants should only be used on boards with
  an svideo connector, for composite out use the regular variants, ie:
  disp.screen0_output_type=2 disp.screen0_output_mode=pal
-hdmi: To override the EDID detected mode, drop the "EDID:" from the
  disp.screen0_output_mode value and set it to the desired mode, ie:
  disp.screen0_output_type=3 disp.screen0_output_mode=1360x768p60
-vga: Does not support EDID, "EDID:" must be removed from the
  disp.screen0_output_mode value otherwise it will be ignored. interlaced
  progressive and refreshrate settings specified are ignored, each resolution
  has hardcoded values for these. Example usage:
  disp.screen0_output_type=4 disp.screen0_output_mode=1024x768


USB controller caveats
----------------------
The OTG USB controller in host mode only supports a limited number of
devices, plugging in a hub + mouse + keyboard typically will make either
the mouse or keyboard not work. This is a hardware limitation which we
will likely not be able to work around.

On tv-sticks and top-set boxes, simply avoid the otg connector, instead
use a hub in a regular host usb connector. Note on the mini-x the otg / host
marking is not always correct. If things don't work try using the OTG
connector instead!

On tablets and the gooseberry unfortunately only the otg connector is
available. One solution there is using a single usb-device which is
both a keyboard and a mouse at the same time. IE the receiver for logitech
wireless desktop sets.


Supported hardware components / features:
-----------------------------------------

Fedora 18 ARM for Allwinner A10 supports the following components:
* CPU + PMU + RAM
* Serial ports
* MMC cards
* Internal NAND storage
* Framebuffer on lcd / vga / hdmi / composite video
* Sound both analog out and over hdmi
* OTG USB controller
* Both standard USB host controllers
* Wifi
* Wired Ethernet
* SATA
* IR (untested at this time)


Unsupported hardware components:
--------------------------------

The following components require various proprietary blobs to be used, and
as such are not supported in the Fedora images. The kernel drivers for them
are present (usually as modules), so if you add the necessary blobs you
might get these to work:
* Mali 400 GPU
* Cedar hardware video & audio decoding and encoding engine
* G2D 2d engine


Differences from stock Fedora
-----------------------------
* Since the A10 is not a very powerful soc some services which are enabled by
   default on Fedora are disabled in the image, see build-image.sh for a list.
* No plymouth: we log to a serial console for debugging so no pretty splash.
   Also we don't use an initrd, so removing the console=ttyS0,115200 from
   the extraargs in uEnv.txt will give plymouth, but so late it hardly matters.


Rebuilding the Fedora 18 ARM for Allwinner A10 disk image
---------------------------------------------------------

Building the Fedora 18 ARM for Allwinner A10 disk image consists of 2 steps
1) Building a uboot.tar.gz and rootfs.tar.gz "overlays", this is done
    bu the build-boot-root-sh script
2) Combining uboot.tar.gz and rootfs.tar.gz with an official Fedora 18
    ARM panda image. The a10 image you downloaded is named the same as the panda
    image used as base with panda replaced by a10, so to get the panda image
    name replace a10 with panda again :) This combining is done by the
    build-image.sh script

These scripts are hosted here:
https://github.com/jwrdegoede/sunxi-fedora-scripts.git

A copy of the exact versions of these scripts used to build this Fedora A10
image can be found in the scripts directory of the uboot partition, the
kernel config used during the build can be found here too.

If you want to exactly reproduce this image it is important to use the
scripts from the scripts dir of the uboot partition, as the scripts contain
GIT tags used during the build to checkout the exact versions to build.

The pre-conditions these scripts expect to be met, and the exact usage of
them is documented in comments in the top of each script.


More information about the arm mailing list