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
<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
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>
- As
root
edit /root/init_setup.sh
- comment out:
# blinkled >> /dev/null
- 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`
-
GuruPlug
<div style="text-align:right"><a style="font-size:smaller" href="/edit/Epics/GuruPlugDisablingAccessPointAndWLANClientAndBluetoothAtBootTime">edit</a></div>
- As
root
edit /root/init_setup.sh
- 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`
-
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
This topic: Epics > WebHome > EpicsProjectsAndActivities > HardwarePlatforms > PlugComputerArmGlobalScaleTechnologies
Topic revision: 2014-06-11, PeterZumbruch
Copyright © 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)