Epics@GSI Webhome

EPICS @ Plug Computer: DreamPlug / GuruPlug / SheevaPlug by GLOBALSCALE

Introduction

The so-called plug computer family of GLOBALSCALE technologies is an interesting platform based on ARM5 Marvell core to have a quite powerful front-end PC available. Ways to run EPICS on it are documented.

Links

Documentation

User Guide

DreamPlug

Forum

Wiki

Tweaks

Dreamplug - "Das U-Boot": Double boot and faster boot

    How to

    Connect via UART connector (115.200 Bit/s) to the dreamplug and enter at system startup the boot prompt
    Hit any key to stop autoboot: 1
    Marvell>>
    and continue by pasting the code lines

    Sources

    Code:

    • uboot-dualboot.txt: u-boot setenv commands for a dual and faster boot
      setenv x_bootargs                'console=ttyS0,115200 panic=10 rootwait rootdelay=10'
      setenv image_address             0x6400000
      
      setenv bootcmd                   'run init;  run bootcmd_sdd ;run bootcmd_sdc; run bootcmd_sdb; run bootcmd_sda;'
      setenv init                      'run clear_kernel_in_mem; run x_bootcmd_usb;'
      setenv bootcmd_sda               'setenv root_device /dev/sda2; setenv usb_device_id 0; run boot_common;'
      setenv bootcmd_sdb               'setenv root_device /dev/sdb2; setenv usb_device_id 1; run boot_common;'
      setenv bootcmd_sdc               'setenv root_device /dev/sdc2; setenv usb_device_id 2; run boot_common;'
      setenv bootcmd_sdd               'setenv root_device /dev/sdd2; setenv usb_device_id 3; run boot_common;'
      
      setenv boot_common               'run bootcmd_echo_boot_attempt; run setargs; run x_bootcmd_kernel; bootm ${image_address};'
      
      setenv clear_kernel_in_mem       'echo Purging kernel in memory; mw ${image_address} 0x0 0x300000;'
      setenv bootcmd_echo_boot_attempt 'echo attempting to boot from: ${root_device};'
      setenv setargs                   'setenv bootargs ${x_bootargs} root=${root_device}; echo bootargs="${bootargs}";'
      setenv x_bootcmd_kernel          'fatload usb ${usb_device_id} ${image_address} uimage;'
      
      saveenv
      

    -- PeterZumbruch - 2013-11-08

Disabling Access Point / WLAN Client and Bluetooth at boot time

NOTE
This is just a poor man's version! For a more cleaner version lookup the plug wiki.

DreamPlug

  1. As root edit /root/init_setup.sh
    1. comment out:
      # blinkled >> /dev/null
    2. add
      # Now set up to run in wifi client mode
      /sbin/wlan.sh
      # deactivate wlan
      ifconfig mlan0 down

      #stopping bluetooth
      /etc/init.d/bluetooth stop

      # deactivate led
      echo 0 > `eval ls /sys/class/leds/guruplug\:red\:wmode/brightness`
      echo 0 > `eval ls /sys/class/leds/guruplug\:green\:wmode/brightness`
    3. # reboot

-- PeterZumbruch - 2014-06-11

GuruPlug

  1. As root edit /root/init_setup.sh
    1. add
      # Now set up to run in wifi client mode
      /usr/bin/wlan.sh

      #stopping bluetooth
      /etc/init.d/bluetooth stop

      # deactivate led
      echo 0 > `eval ls /sys/class/leds/*plug*\:red\:wmode/brightness`
      echo 0 > `eval ls /sys/class/leds/*plug*\:green\:wmode/brightness`
    2. # reboot

-- PeterZumbruch - 2014-06-11

EPICS @ Dreamplug

Introduction

Based on this E-Mail conversation with Eric Norum (wenorum@lbl.gov) EPICS should soon be running on the DreamPlug:
The changes were very minor.   Here's all I had to do.

1. cd to the EPICS base configure/os directory.

2. Edit CONFIG.Common.linux-arm, set the GNU_DIR appropriately and check that the rest looks like:
# CONFIG.Common.linux-arm
#
# This file is maintained by the build community.
#
# Definitions for linux-arm target builds.

# Sites may override these definitions in CONFIG_SITE.Common.linux-arm
#-------------------------------------------------------

# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon

ARCH_CLASS = arm

#
# The vendor's tool chain needs to be located here
#
GNU_DIR=/Users/wenorum/src/SheevaPlug/SheevaPlugCD1.2b/SheevaPlug_Host_SWsupportPackageLinuxHost/LinuxHost/gcc

ifeq ($(BUILD_CLASS),CROSS)
   VALID_BUILDS = Ioc
   GNU_TARGET = xscale_be
   CMPLR_PREFIX = arm-none-linux-gnueabi-
endif


3. Add linux-arm to the CROSS_COMPILER_TARGET_ARCHS in  CONFIG_SITE.linux-x86.Common
# CONFIG_SITE.linux-x86.Common
#
# CONFIG_SITE.linux-x86.Common,v 1.7.2.6 2009/01/23 20:24:59 norume Exp
# This file is maintained by the build community.
#
# Site override definitions for linux-x86 host builds
#-------------------------------------------------------

# JBA test override values
#CROSS_COMPILER_TARGET_ARCHS = vxWorks-68040 solaris-sparc
#CROSS_COMPILER_TARGET_ARCHS = vxWorks-68040
CROSS_COMPILER_TARGET_ARCHS = linux-arm

On Mar 1, 2011, at 8:21 AM, Dr. Peter Zumbruch wrote:

> Hello Eric,
> I would be interested to see the changes you applied to linux-arm, 
> since I have purchased the guru-plug and would like to use it to connect to several USB devices.
>
> Thanks,
> Peter
>
> Am 25.03.2010 22:35, schrieb Eric Norum:
>>
>> We were looking for an inexpensive way to connect Larry Doolitte's Low-Level RF board to EPICS.  
>> The LLRF board uses USB to connect to the outside world so the IOC controlling it needs to be fairly close.  
>> We purchased a SheevaPlug (http://www.globalscaletechnologies.com/p-22-sheevaplug-dev-kit-us.aspx). 
>> for around $100 (US). 
>> The SheevaPlug is a plug computer (http://www.openplug.org/) about the size and shape of a typical AC adapter.  
>> It has a USB 2.0 interface and 10/100/1000 ethernet and comes with Linux installed on the flash memory.   
>> The development kit also contains a CD with all the cross-development tools
>>
>> I made a couple of changes to <base>/configure/os/CONFIG.Common.linux-arm on my Linux host machine and, 
>> to my considerable surprise, was able to build EPICS base R3.14.11, snc/seq and asyn with no other changes. 
>> I also built the GNU Universal Software Radio Project libraries which are needed to communicate with the LLRF card. 
>> I used apt-get on the SheevaPlug to install the nfs-common and screen packages.
>>
>> I am now running the IOC on the SheevaPlug and controlling/displaying the EPICS process variables 
>> using MEDM on my OS X machine.  With a 2.3 MB/s flow from the LLRF card and processing/displaying 
>> the twelve 1024-sample waveform records 5 times per second (242 kiB/s to the EPICS client) 
>> the CPU load on the SheevaPlug is 4 to 5%.
>>
>> So, if you're looking for a really inexpensive way to interface USB equipment to EPICS 
>> you might find this a reasonable way to go.
>>
>> --
>> Eric Norum
>> wenorum@lbl.gov
>>

Cross Compile / Host Compile

cross compile

Meanwhile we have several systems running with a cross compiled binary for the dreamplug.
  • Running applications for HADES, based on streamDevice
  • Documentation has to be done.

host compile

Since other users are interested to have a host compiled version, I (PZ) am looking into this task and need to find the time or the pressure.
  • to be implemented
  • to be documented


-- PeterZumbruch - 11 Jun 2014

Topic revision: r10 - 2014-06-11, PeterZumbruch
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding GSI Wiki? Send feedback
Imprint (in German)
Privacy Policy (in German)