Plug notes

From Amahi Wiki
Revision as of 10:41, 15 July 2011 by Mattwire (talk | contribs)
Jump to: navigation, search

Note: Most of this information is duplicated elsewhere. It needs to be verified and removed as necessary.

See Amahi_Plug_Edition for installation and supported devices.

Getting the plug booting Fedora 12

Here are the steps to make the plug boot from USB

  • General directions
  • Connect the ethernet cable to your network (Mouton says: is this necessary now? Can't we just wait until the Amahi Install section below to connect the plug to the LAN?)
  • Connect the JTAG module to the SheevaPlug (be careful; connecting it the wrong way will fry it! See the warning sticker on the plug, and the photo on the box for proper connection), and connect the USB side to your computer (can be Windows, Linux or Mac).
  • On Windows: install a driver (disc that came with plug), and use PuTTY (serial).
  • On Linux, execute the following command, and use gtkterm: use 2 stop bits & 115200 bps speed when creating the profile; keep the defaults for the rest. Instead of gtkterm, you can also use the simpler screen: yum -y install screen; screen /dev/ttyUSB1 115200
Text
​cat > /etc/udev/rules.d/85-sheevaplug.rules <<'EOF' # if no driver has claimed the interface yet, load ftdi_sio ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_interface", \ ATTRS{idVendor}=="1c0c", ATTRS{idProduct}=="0102", \ DRIVER=="", \ RUN+="/sbin/modprobe -b ftdi_sio" # add the sheevaplug VID and PID to the list of devices supported by ftdi_sio ACTION=="add", SUBSYSTEM=="drivers", \ ENV{DEVPATH}=="/bus/usb-serial/drivers/ftdi_sio", \ ATTR{new_id}="1c0c 0102" # optionally create a convenience symlink for the console device ACTION=="add", KERNEL=="ttyUSB*", \ ATTRS{interface}=="SheevaPlug JTAGKey FT2232D B", \ ATTRS{bInterfaceNumber}=="01", \ SYMLINK+="sheevaplug" EOF​
  • Reset the device from the JTAG module (Mouton says: how? I tried to push the button, but that doesn't seem to reset the device... Do you mean login using the terminal emulator, and issue a reboot command..?)
  • At the terminal, press enter a couple of seconds after boot to prevent it from booting using the onboard flash (Ubuntu). You should end up with a Marvell>> prompt.
  • There are some commands you need to run to make it permanently boot from the USB port (NOTE: this step is only necessary once):
bash code
​setenv mainlineLinux yes setenv arcNumber 2097 setenv bootargs_root 'root=/dev/sda1 rootdelay=15' setenv bootcmd_usb 'usb start; ext2load usb 0:1 0x6400000 /boot/uImage' setenv bootcmd 'setenv bootargs $(console) $(bootargs_root); run bootcmd_usb; bootm 0x6400000' saveenv reset​
  • In order to install the rootfs onto a flash or disk, mount the flash drive on a linux system and execute the create-clean-f12-disk.sh script. You'll need to have the amahi-marvell-0.5.tar.bz2 file in the current directory. It may take a while, but this must be done before booting up the plug and installing Amahi.

NOTE: This script is very dangerous (it can destroy the machine it is run on if not used properly). You will need to change the partition destination.

  • Insert USB Flash Drive into the plug.
  • Once this is complete, the JTAG module can be disconnected. There will be no need for serial connection any longer. Once the USB Flash Drive is connected and the plug booted, you will be able to connect via SSH (default root password is "amahi").

Connecting to a Plug on a Mac

On Mac OS X, Install the FTDI driver, download Info.plist.patch to your desktop, then run the following commands to connect to the SheevaPlug console:

bash code
​sudo patch -p0 < ~/Desktop/Info.plist.patch sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext screen /dev/tty.usbserial-[TAB]B 115200


For [TAB], hit the TAB key; the value there will be unique to each SheevaPlug computer, so TAB will allow you to auto-fill the correct value. Once connected, if you want to close your terminal session, hit Ctrl-A followed by Ctrl-K (or Shift-K on Linux). You'll be asked if you're sure you want to kill this window; just say yes!

Using the onboard NAND flash as a swap drive

bash code
​cfdisk /dev/mtdblock2​
  • Create a "Linux swap / Solaris" partition that takes all the space:
  1. remove any existing partitions, if any
  2. create a new primary partition
  3. select Type option, enter "82"
  4. select Write option
  5. select Quit option
bash code
​mkswap /dev/mtdblock2 echo "/dev/mtdblock2 swap swap defaults 0 0" >> /etc/fstab swapon -a​


Misc Notes

  • restarting rpm db in chrooted environment:
bash code
​rm /var/lib/rpm/__db* rpm --rebuilddb -vv​