Fedora ARM Secondary Architecture/OpenRD-Client

From CDOT Wiki
Jump to: navigation, search


OpenRD-Client

The OpenRD-Client system in the builder pool is 'arm1'. It has a GigE connection to a switch connected to HongKong's private LAN.

Storage:

  • 512MB NAND flash (contains u-boot and original F8 image)
  • 4 GB class 4 SD card
    • Primary partition 1: vfat fs containing kernel
    • Primary partition 2: ext3 fs containing rootfs
  • 60 GB PATA drive in external enclosure, connected via USB
    • Primary partition 1: ext3 fs
    • Note: must be turned on before connecting in order to be detected by host

Using the Serial Console

The OpenRD-Client has a serial (RS232) console port, which is connected to an internal USB-to-Serial adapter (effectively a USB-to-serial cable built into the OpenRD-Client unit). Using a USB-A male to USB mini-A male cable to connect a host port on a PC with the mini-USB port on the OpenRD-Client will enable access to this port, as well as to a JTag port.

The console will appear as /dev/ttyUSBX on the PC, where X is the port number (typically 0).

To connect to this port:

  • Install UUCP if required: yum install uucp
  • Connect using the cu command at 115200 bps: cu -l ttyUSB0 -s 115200
Idea.png
EMI
If you find that the USB console connection disconnects as soon as it is used, there is probably excessive electromagnetic interference (EMI). The USB-PATA drive that we have been using for testing produces too much EFI; turning it (and any other electrically "noisy" devices) off will solve the problem.

Console when Booting

Before the OS is loaded, the serial console is managed by u-Boot. Pressing the space bar (or another key) during the boot messages or the boot countdown (which defaults to 3 seconds) will cause a u-Boot prompt to appear.

Console when the OS is Running

The console will present the interface typically present on a text VT on a PC -- that is, a mingetty login prompt. You can login and perform commands at this prompt.

Configuring F12 on OpenRD-Client

Here are some rough notes on setting this up:

SD card setup (4GB+, class 4+)

  • 100M /boot partition - vfat - place kernel from james.99k.org/openrd.html in there
  • rest of card - ext3 - untar f12 root filesystem from Fedora ARM page

uBoot setup

  • Load the u-boot.bin onto the root of a vfat USB stick, then execute these commands at the uBoot prompt with the stick inserted:
usb start
fatload usb 0:1 0x0800000 /u-boot.bin
nand erase 0x0 0xa0000
nand write 0x0800000 0x0 0xa0000
  • U-boot environment configuration for SD boot:
setenv arcNumber 2361
setenv mainlineLinux yes
setenv console 'console=ttyS0,115200'
setenv bootargs 'root=b302'
setenv bootcmd='mmcinit;mmcinit;fatload mmc 0 0x800000 /uimage-2.6.33rc1;set bootargs $(console) $(bootargs);bootm 0x800000;reset'
saveenv

reset

Modules

Network

  • Edit /etc/sysconfig/network-scripts/ifcfg-eth0 or use system-config-network-tui

Network change on HongKong for NAT

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Package updates on OpenRD-Client

yum -y update
yum -y install openssh-clients mock system-config-network-tui nfs-utils yum-utils rpmdev-tools rpm-lint rpm-build

NFS

chkconfig nfs on

/etc/fstab

  • Change root from 'nfs' to 'auto' type
  • Add any NFS shares that should be mounted

Hard disk drive

  • A 60 GB PATA drive is connected via USB. It appears as /dev/sda with usable partition /dev/sda1 when booted without any other storage attached.

Symlinks for Experimenting with Mock Builds on Various Storage Devices

The /var/lib/mock and /var/cache/mock directories are symlinked to /redirect/mock/lib and /redirect/mock/cache respectively. This means that changing the /redirect symlink provides a simple way of changing the storage location for all of the mock files, useful for testing mock performance with different storage devices. /redirect should be symlinked to a device mountpoint, such as /share for NFS or /hd1 for the PATA-USB drive, and the mounted filesystem should contain koji/{lib,cache} directories which have a group owner of mock and the SGID bit set.