Fedora 20 ARM for Allwinner A10, A10s, A13 and A20 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-Xfce-armhfp-20-a10-1-sda.raw.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: /select-board.sh, ie: sudo /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 initial-setup wizard: 11a) Configure networking, note: * If you've an A10 board with wired ethernet and you want to use dhcp you don't need to do anything. * If you've an A20 board, your ethernet may have a random mac-address, so if you want to configure a static ip-address and want it to stick across reboots, go to the ethernet-tab, select the mac-address field and delete its contents, so that the static ip address you're configuring does not get tied to the random mac-address. 11b) Setup the time zone 11c) Set a root password 11d) Create a user 12) Log in as the just created user 13) Enjoy Fedora on your A10 device Supported Devices: ------------------ Fedora 20 ARM for Allwinner A10 has been tested with the following device: * Cubieboard development board 1024 MB RAM Fedora 20 ARM should also work on the following devices: * A10s-OLinuXino-MICRO (Olimex) * A10 tablet sold under various names (whitelabel) * A13-OLinuXino-MICRO (Olimex) * A13-OLinuXino (Olimex) * A13 tablet sold under various names (whitelabel) * A20-OLinuXino-MICRO (Olimex) * Auxtek T003 hdmi tv stick * Auxtek T004 hdmi tv stick * BA10 TV Box * Coby MID7042 tablet * Coby MID8042 tablet * Coby MID9742 tablet * Cubieboard2 (A20) development board * Cubieboard development board 512 MB RAM * Cubietruck development board * DNS AirTab M82 tablet * EOMA68 A10 CPU card * Gooseberry development board * H6 netbook * Hackberry development board * Hyundai a7hd tablet * iNet-97F Rev.2 (and clones) tablet * Marsboard A10 * Megafeis A08 * Mele A1000/A2000 512 MB RAM * Mele A1000G/A2000G 1024 MB RAM * Mele A3700 * Mini-X 1024 MB RAM * Mini-X 512 MB RAM * Mini-X with A10s soc * mk802ii (with male normal hdmi) 1024 MB RAM * mk802 with A10s (s with a circle around it on the barcode label) * mk802 (with female mini hdmi) 1024 MB RAM * mk802 (with female mini hdmi) 512 MB RAM * pcDuino development board * Point of View ProTab 2 IPS 9" tablet * Point of View ProTab 2 IPS tablet with 3g * r7 hdmi tv stick * Sanei N90 * UHost U1A hdmi tv stick * Wobo i5 TV Box * XZPAD700 7" tablet 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 How to power your allwinner device ---------------------------------- For reliable operation it is important that your allwinner device is properly powered. Some users try to power their allwinner development boards through the power pin on the serial port / uart connector. This is a very bad idea! and will almost always result in unreliable operation. Instaed always power your allwinner device over the barrel connector intended for that using, using a quality, reliable power supply. 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. Known Issues ------------ * The broadcom sdio wifi found in the Auxtek T004 hdmi-stick and on the Cubietruck is not supported Supported hardware components / features: ----------------------------------------- Fedora 20 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) * SPI (as module, not supported on A20) * "tablet" keys on olinuxino boards * 7 and 10 inch lcd displays on olinuxino boards (requires selecting the right config in select-board.sh 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 Note that the drivers for these need some memory to be reserved at boot, and since they are not supported by default in the Fedora images, this memory reservation has been disabled. To reserve the memory edit /boot/uEnv.txt and remove the kernel cmdline options which disable the memory reservation. 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 20 ARM for Allwinner A10 disk image --------------------------------------------------------- Building the Fedora 20 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 20 arm img, this combining is done by the build-image.sh script The a10 image you downloaded is based on Fedora-Xfce-armhfp-20-1-sda.raw.xz 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.