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.

Documentation

User Guide

DreamPlug

Forum

Wiki

Tweaks

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

    <div style="text-align:right"><a style="font-size:smaller" href="/edit/Epics/DreamplugTweakUBootFasterMultiBoot">edit</a></div>

    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

<div style="text-align:right"><a style="font-size:smaller" href="/edit/Epics/DreamplugDisablingAccessPointAndWLANClientAndBluetoothAtBootTime">edit</a></div>
  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

<div style="text-align:right"><a style="font-size:smaller" href="/edit/Epics/GuruPlugDisablingAccessPointAndWLANClientAndBluetoothAtBootTime">edit</a></div>

  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 page was cached on 2024-12-19 - 19:57.

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 | Legal notice | Privacy Policy (german)