SMILE Plug

The SMILE Plug is joint project between Globalscale and Marvell to support Stanford Mobile Inquiry-Based Learning Environment (SMILE). The device features Marvell's latest advances in hardware and chip design to deliver class leading cloud and wireless capabilities. The SmilePlug is designed with the Marvell Armada 370 SOC and Marvell’s new 4x4 wireless chip.

Features:

  • Marvell Avastar 88W8764 4x4 WiFi
  • External backup battery for hours of reserve power (optional)
  • 2x USB 3.0
  • 2x Gigabit Ethernet
  • 1x Micro SD slot
  • 1GB NAND Flash / 512MB DDR3 RAM
Architecture
ARMv7 PJ4
Processor
Marvell Armada 370 1.2GHz
RAM
512MB
NAND
1GB
SD
Micro SD
USB
2
Ethernet
Gigabit
Wireless
A/B/G/N
  • This installation will provide a bare Arch Linux ARM installation without the SMILE software.
  • There is currently no support for a NAND installation. The root filesystem must be on SD or USB.
  • You must update U-Boot on the device for this installation. If you've updated U-Boot before, you do not need to do it again.

Update U-Boot

  1. You will need a TFTP server set up to transfer the new U-Boot image. Set these values in U-Boot to reflect your network settings:
    setenv ipaddr 10.3.0.94
    setenv netmask 255.255.255.0
    setenv serverip 10.3.0.91
  2. Download the U-Boot binary into the directory the TFTP server is serving from.
  3. TFTP transfer uboot.bin to the device:
    tftpboot 0x6400000 10.3.0.91:uboot.bin
  4. The TFTP transfer is successful if you see something like this. If the image does not successfully transfer, do not proceed to the next step for flashing.
    phyaddr= 0
    Using egiga0 device
    TFTP from server 10.3.0.91; our IP address is 10.3.0.94
    Filename 'uboot.bin'.
    Load address: 0x6400000
    Loading: #################################################################
             #################################################################
             #################################################################
             #########################################################
    done
    Bytes transferred = 3696944 (386930 hex)
  5. If the image transferred successfully, flash it with:
    nand erase 0x0 0x400000
    nand write 0x6400000 0x0 0x100000
  6. Type reset and press enter to reboot the system into the new bootloader version. Interrupt the auto-boot sequence to get to a command prompt for later steps.

Micro SD Card Creation

  1. Insert a micro SD card into your computer and record which device identifier it is (dmesg | tail)
  2. Make sure it's not mounted (umount /dev/sdX* or umount /dev/mmcblk*)
  3. Start fdisk to partition the SD card:
    fdisk /dev/sdX
  4. At the fdisk prompt, create the new partitions:
    1. Type n, then p for primary, 1 for the first partition on the drive, ENTER to accept the default starting sectors, and +100M for the ending sector.
    2. Type t to set the type, then c to set it to FAT.
    3. Type n, then p for primary, 2 for the second partition, and press ENTER twice to accept default values.
    4. Exit by typing w.
  5. Create and mount the vfat filesystem:
    mkfs.vfat /dev/sdX1
    mkdir boot
    mount /dev/sdX1 boot
  6. Create and mount the ext4 filesystem:
    mkfs.ext4 /dev/sdX2
    mkdir root
    mount /dev/sdX2 root
  7. Download and extract the root filesystem:
    wget http://os.archlinuxarm.org/os/ArchLinuxARM-smileplug-latest.tar.gz
    bsdtar -xpf ArchLinuxARM-smileplug-latest.tar.gz -C root
  8. Copy boot files to the boot partition:
    cp root/boot/* boot
  9. Unmount the partitions:
    umount boot root
  10. Remove the micro SD card from your computer and insert it into the SMILE Plug next to the power switch.

U-Boot Configuration

  1. Connect the JTAG box to the UART connector on the SMILE Plug, and the USB cable to your computer.
  2. Open up a terminal to the serial device created by your system (typically something like /dev/ttyUSB0) with the settings 115200n8.
  3. Power on the SMILE Plug, and once you see text press any key to stop auto booting. You should be at a console that looks like:
    Marvell>>
  4. Run the following commands to back up the original NAND boot settings, and apply the new SD card boot settings:
    setenv bootcmd_nand "nand read 0x6400000 0x400000 0x400000; run bootargs_nand; bootm 0x6400000"
    setenv bootargs_nand "setenv bootargs console=ttyS0,115200"
    setenv bootcmd_mmc "mmc rescan 0; fatload mmc 0:1 0x6400000 uImage; run bootargs_mmc; bootm 0x6400000"
    setenv bootargs_mmc "setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait"
    setenv bootcmd "run bootcmd_mmc"
    saveenv
    
  5. Type boot and hit enter, and the system will boot to SD card.
    • Login as the default user alarm with the password alarm.
    • The default root password is root.

Default Installation Information

  • To take advantage of the hardware, the installation by default sets the SMILE Plug up like a wireless access point.
  • The ethernet port closest to the power connector (eth0) is designated as the WAN port. This is configured by default to try to get an IP address via DHCP.
  • The ethernet port closest to the edge (eth1) is designated as the LAN port. This should be connected to a switch.
  • The wireless card (wlan0) is configured as an access point with the SSID "SMILE" and a default WPA passphrase of "smileplug". Configuration of the AP can be done through /etc/hostapd/hostapd.conf.
  • The eth1 and wlan0 interfaces are bridged together into the interface br0 with the static IP 10.4.0.1. The dnsmasq combined DHCP and DNS server runs on this interface issuing IPs in the range 10.4.0.5-250. Configuration of dnsmasq can be done through /etc/dnsmasq.conf.
  • There are default iptables rules in place to NAT connections on the AP or LAN port through to the connection on the WAN port.
  • Extra services installed by the user on the device should be made to listen on all interfaces, or on 10.4.0.1. This will ensure that AP and LAN connected clients can access the service.

Copyright ©2009-2016 Arch Linux ARM
The registered trademark Linux® is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis.
The Arch Linux™ name and logo are used under permission of the Arch Linux Project Lead.