123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428 |
- Poky Hardware README
- ====================
- This file gives details about using Poky with different hardware reference
- boards and consumer devices. A full list of target machines can be found by
- looking in the meta/conf/machine/ directory. If in doubt about using Poky with
- your hardware, consult the documentation for your board/device.
- Support for additional devices is normally added by creating BSP layers - for
- more information please see the Yocto Board Support Package (BSP) Developer's
- Guide - documentation source is in documentation/bspguide or download the PDF
- from:
- http://yoctoproject.org/community/documentation
- Support for machines other than QEMU may be moved out to separate BSP layers in
- future versions.
- QEMU Emulation Targets
- ======================
- To simplify development Poky supports building images to work with the QEMU
- emulator in system emulation mode. Several architectures are currently
- supported:
- * ARM (qemuarm)
- * x86 (qemux86)
- * x86-64 (qemux86-64)
- * PowerPC (qemuppc)
- * MIPS (qemumips)
- Use of the QEMU images is covered in the Poky Reference Manual. The Poky
- MACHINE setting corresponding to the target is given in brackets.
- Hardware Reference Boards
- =========================
- The following boards are supported by Poky's core layer:
- * Texas Instruments Beagleboard (beagleboard)
- * Freescale MPC8315E-RDB (mpc8315e-rdb)
- * Ubiquiti Networks RouterStation Pro (routerstationpro)
- For more information see the board's section below. The Poky MACHINE setting
- corresponding to the board is given in brackets.
- Consumer Devices
- ================
- The following consumer devices are supported by Poky's core layer:
- * Intel Atom based PCs and devices (atom-pc)
- For more information see the device's section below. The Poky MACHINE setting
- corresponding to the device is given in brackets.
- Specific Hardware Documentation
- ===============================
- Intel Atom based PCs and devices (atom-pc)
- ==========================================
- The atom-pc MACHINE is tested on the following platforms:
- o Asus eee901
- o Acer Aspire One
- o Toshiba NB305
- o Intel Embedded Development Board 1-N450 (Black Sand)
- and is likely to work on many unlisted atom based devices. The MACHINE type
- supports ethernet, wifi, sound, and i915 graphics by default in addition to
- common PC input devices, busses, and so on.
- Depending on the device, it can boot from a traditional hard-disk, a USB device,
- or over the network. Writing poky generated images to physical media is
- straightforward with a caveat for USB devices. The following examples assume the
- target boot device is /dev/sdb, be sure to verify this and use the correct
- device as the following commands are run as root and are not reversable.
- Hard Disk:
- 1. Build a directdisk image format. This will generate proper partition tables
- that will in turn be written to the physical media. For example:
- $ bitbake poky-image-minimal-directdisk
-
- 2. Use the "dd" utility to write the image to the raw block device. For example:
- # dd if=poky-image-minimal-directdisk-atom-pc.hdddirect of=/dev/sdb
- USB Device:
- 1. Build an hddimg image format. This is a simple filesystem without partition
- tables and is suitable for USB keys. For example:
- $ bitbake poky-image-minimal-live
- 2. Use the "dd" utility to write the image to the raw block device. For
- example:
- # dd if=poky-image-minimal-live-atom-pc.hddimg of=/dev/sdb
- If the device fails to boot with "Boot error" displayed, it is likely the BIOS
- cannot understand the physical layout of the disk (or rather it expects a
- particular layout and cannot handle anything else). There are two possible
- solutions to this problem:
- 1. Change the BIOS USB Device setting to HDD mode. The label will vary by
- device, but the idea is to force BIOS to read the Cylinder/Head/Sector
- geometry from the device.
- 2. Without such an option, the BIOS generally boots the device in USB-ZIP
- mode.
- a. Configure the USB device for USB-ZIP mode:
-
- # mkdiskimage -4 /dev/sdb 0 63 62
- Where 63 and 62 are the head and sector count as reported by fdisk.
- Remove and reinsert the device to allow the kernel to detect the new
- partition layout.
- b. Copy the contents of the poky image to the USB-ZIP mode device:
- # mount -o loop poky-image-minimal-live-atom-pc.hddimg /tmp/image
- # mount /dev/sdb4 /tmp/usbkey
- # cp -rf /tmp/image/* /tmp/usbkey
- c. Install the syslinux boot loader:
- # syslinux /dev/sdb4
- Install the boot device in the target board and configure the BIOS to boot
- from it.
- For more details on the USB-ZIP scenario, see the syslinux documentation:
- http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=blob_plain;f=doc/usbkey.txt;hb=HEAD
- Texas Instruments Beagleboard (beagleboard)
- ===========================================
- The Beagleboard is an ARM Cortex-A8 development board with USB, DVI-D, S-Video,
- 2D/3D accelerated graphics, audio, serial, JTAG, and SD/MMC. The xM adds a
- faster CPU, more RAM, an ethernet port, more USB ports, microSD, and removes
- the NAND flash. The beagleboard MACHINE is tested on the following platforms:
- o Beagleboard C4
- o Beagleboard xM Rev A
- The Beagleboard C4 has NAND, while the xM does not. For the sake of simplicity,
- these instructions assume you have erased the NAND on the C4 so its boot
- behavior matches that of the xM. To do this, issue the following commands from
- the u-boot prompt (note that the unlock may be unecessary depending on the
- version of u-boot installed on your board and only one of the erase commands
- will succeed):
- # nand unlock
- # nand erase
- # nand erase.chip
- To further tailor these instructions for your board, please refer to the
- documentation at http://www.beagleboard.org.
- From a Linux system with access to the image files perform the following steps
- as root, replacing mmcblk0* with the SD card device on your machine (such as sdc
- if used via a usb card reader):
- 1. Partition and format an SD card:
- # fdisk -lu /dev/mmcblk0
-
- Disk /dev/mmcblk0: 3951 MB, 3951034368 bytes
- 255 heads, 63 sectors/track, 480 cylinders, total 7716864 sectors
- Units = sectors of 1 * 512 = 512 bytes
-
- Device Boot Start End Blocks Id System
- /dev/mmcblk0p1 * 63 144584 72261 c Win95 FAT32 (LBA)
- /dev/mmcblk0p2 144585 465884 160650 83 Linux
- # mkfs.vfat -F 16 -n "boot" /dev/mmcblk0p1
- # mke2fs -j -L "root" /dev/mmcblk0p2
- The following assumes the SD card partition 1 and 2 are mounted at
- /media/boot and /media/root respectively. Removing the card and reinserting
- it will do just that on most modern Linux desktop environments.
-
- The files referenced below are made available after the build in
- build/tmp/deploy/images.
- 2. Install the boot loaders
- # cp MLO-beagleboard /media/boot/MLO
- # cp u-boot-beagleboard.bin /media/boot/u-boot.bin
- 3. Install the root filesystem
- # tar x -C /media/root -f poky-image-$IMAGE_TYPE-beagleboard.tar.bz2
- # tar x -C /media/root -f modules-$KERNEL_VERSION-beagleboard.tgz
- 4. Install the kernel uImage
- # cp uImage-beagleboard.bin /media/boot/uImage
- 5. Prepare a u-boot script to simplify the boot process
- The Beagleboard can be made to boot at this point from the u-boot command
- shell. To automate this process, generate a user.scr script as follows.
- Install uboot-mkimage (from uboot-mkimage on Ubuntu or uboot-tools on Fedora).
- Prepare a script config:
- # (cat << EOF
- setenv bootcmd 'mmc init; fatload mmc 0:1 0x80300000 uImage; bootm 0x80300000'
- setenv bootargs 'console=tty0 console=ttyO2,115200n8 root=/dev/mmcblk0p2 rootwait rootfstype=ext3 ro'
- boot
- EOF
- ) > serial-boot.cmd
- # mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Core Minimal" -d ./serial-boot.cmd ./boot.scr
- # cp boot.scr /media/boot
- 6. Unmount the SD partitions, insert the SD card into the Beagleboard, and
- boot the Beagleboard
- Note: As of the 2.6.37 linux-yocto kernel recipe, the Beagleboard uses the
- OMAP_SERIAL device (ttyO2). If you are using an older kernel, such as the
- 2.6.34 linux-yocto-stable, be sure to replace ttyO2 with ttyS2 above. You
- should also override the machine SERIAL_CONSOLE in your local.conf in
- order to setup the getty on the serial line:
- SERIAL_CONSOLE_beagleboard = "115200 ttyS2"
- Freescale MPC8315E-RDB (mpc8315e-rdb)
- =====================================
- The MPC8315 PowerPC reference platform (MPC8315E-RDB) is aimed at hardware and
- software development of network attached storage (NAS) and digital media server
- applications. The MPC8315E-RDB features the PowerQUICC II Pro processor, which
- includes a built-in security accelerator.
- Setup instructions
- ------------------
- You will need the following:
- * nfs root setup on your workstation
- * tftp server installed on your workstation
- Load the kernel and boot it as follows:
- 1. Get the kernel (uImage.mpc8315erdb) and dtb (mpc8315erdb.dtb) files from
- the Poky build tmp/deploy directory, and make them available on your tftp
- server.
- 2. Set up the environment in U-Boot:
- =>setenv ipaddr <board ip>
- =>setenv serverip <tftp server ip>
- =>setenv bootargs root=/dev/nfs rw nfsroot=<nfsroot ip>:<rootfs path> ip=<board ip>:<server ip>:<gateway ip>:255.255.255.0:mpc8315e:eth0:off console=ttyS0,115200
- 3. Download kernel and dtb to boot kernel.
- =>tftp 800000 uImage.mpc8315erdb
- =>tftp 780000 mpc8315erdb.dtb
- =>bootm 800000 - 780000
- Ubiquiti Networks RouterStation Pro (routerstationpro)
- ======================================================
- The RouterStation Pro is an Atheros AR7161 MIPS-based board. Geared towards
- networking applications, it has all of the usual features as well as three
- type IIIA mini-PCI slots and an on-board 3-port 10/100/1000 Ethernet switch,
- in addition to the 10/100/1000 Ethernet WAN port which supports
- Power-over-Ethernet.
- Setup instructions
- ------------------
- You will need the following:
- * A serial cable - female to female (or female to male + gender changer)
- NOTE: cable must be straight through, *not* a null modem cable.
- * USB flash drive or hard disk that is able to be powered from the
- board's USB port.
- * tftp server installed on your workstation
- NOTE: in the following instructions it is assumed that /dev/sdb corresponds
- to the USB disk when it is plugged into your workstation. If this is not the
- case in your setup then please be careful to substitute the correct device
- name in all commands where appropriate.
- --- Preparation ---
- 1) Build an image (e.g. poky-image-minimal) using "routerstationpro" as the
- MACHINE
- 2) Partition the USB drive so that primary partition 1 is type Linux (83).
- Minimum size depends on your root image size - poky-image-minimal probably
- only needs 8-16MB, other images will need more.
- # fdisk /dev/sdb
- Command (m for help): p
- Disk /dev/sdb: 4011 MB, 4011491328 bytes
- 124 heads, 62 sectors/track, 1019 cylinders, total 7834944 sectors
- Units = sectors of 1 * 512 = 512 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disk identifier: 0x0009e87d
- Device Boot Start End Blocks Id System
- /dev/sdb1 62 1952751 976345 83 Linux
- 3) Format partition 1 on the USB as ext3
- # mke2fs -j /dev/sdb1
- 4) Mount partition 1 and then extract the contents of
- tmp/deploy/images/poky-image-XXXX.tar.bz2 into it (preserving permissions).
- # mount /dev/sdb1 /media/sdb1
- # cd /media/sdb1
- # tar -xvjpf tmp/deploy/images/poky-image-XXXX.tar.bz2
- 5) Unmount the USB drive and then plug it into the board's USB port
- 6) Connect the board's serial port to your workstation and then start up
- your favourite serial terminal so that you will be able to interact with
- the serial console. If you don't have a favourite, picocom is suggested:
- $ picocom /dev/ttyUSB0 -b 115200
- 7) Connect the network into eth0 (the one that is NOT the 3 port switch). If
- you are using power-over-ethernet then the board will power up at this point.
- 8) Start up the board, watch the serial console. Hit Ctrl+C to abort the
- autostart if the board is configured that way (it is by default). The
- bootloader's fconfig command can be used to disable autostart and configure
- the IP settings if you need to change them (default IP is 192.168.1.20).
- 9) Make the kernel (tmp/deploy/images/vmlinux-routerstationpro.bin) available
- on the tftp server.
- 10) If you are going to write the kernel to flash (optional - see "Booting a
- kernel directly" below for the alternative), remove the current kernel and
- rootfs flash partitions. You can list the partitions using the following
- bootloader command:
- RedBoot> fis list
- You can delete the existing kernel and rootfs with these commands:
- RedBoot> fis delete kernel
- RedBoot> fis delete rootfs
- --- Booting a kernel directly ---
- 1) Load the kernel using the following bootloader command:
- RedBoot> load -m tftp -h <ip of tftp server> vmlinux-routerstationpro.bin
- You should see a message on it being successfully loaded.
- 2) Execute the kernel:
- RedBoot> exec -c "console=ttyS0,115200 root=/dev/sda1 rw rootdelay=2 board=UBNT-RSPRO"
- Note that specifying the command line with -c is important as linux-yocto does
- not provide a default command line.
- --- Writing a kernel to flash ---
- 1) Go to your tftp server and gzip the kernel you want in flash. It should
- halve the size.
- 2) Load the kernel using the following bootloader command:
- RedBoot> load -r -b 0x80600000 -m tftp -h <ip of tftp server> vmlinux-routerstationpro.bin.gz
- This should output something similar to the following:
- Raw file loaded 0x80600000-0x8087c537, assumed entry at 0x80600000
- Calculate the length by subtracting the first number from the second number
- and then rounding the result up to the nearest 0x1000.
- 3) Using the length calculated above, create a flash partition for the kernel:
- RedBoot> fis create -b 0x80600000 -l 0x240000 kernel
- (change 0x240000 to your rounded length -- change "kernel" to whatever
- you want to name your kernel)
- --- Booting a kernel from flash ---
- To boot the flashed kernel perform the following steps.
- 1) At the bootloader prompt, load the kernel:
- RedBoot> fis load -d -e kernel
- (Change the name "kernel" above if you chose something different earlier)
- (-e means 'elf', -d 'decompress')
- 2) Execute the kernel using the exec command as above.
- --- Automating the boot process ---
- After writing the kernel to flash and testing the load and exec commands
- manually, you can automate the boot process with a boot script.
- 1) RedBoot> fconfig
- (Answer the questions not specified here as they pertain to your environment)
- 2) Run script at boot: true
- Boot script:
- .. fis load -d -e kernel
- .. exec
- Enter script, terminate with empty line
- >> fis load -d -e kernel
- >> exec -c "console=ttyS0,115200 root=/dev/sda1 rw rootdelay=2 board=UBNT-RSPRO"
- >>
- 3) Answer the remaining questions and write the changes to flash:
- Update RedBoot non-volatile configuration - continue (y/n)? y
- ... Erase from 0xbfff0000-0xc0000000: .
- ... Program from 0x87ff0000-0x88000000 at 0xbfff0000: .
- 4) Power cycle the board.
|