Plug notes
From Amahi Wiki
Revision as of 20:45, 14 May 2010 by Bigfoot65 (talk | contribs) (→Getting the plug booting Fedora 12)
Getting the plug booting Fedora 12
Here are the steps to make the plug boot from USB
- Perform USB Flash Drive Prep (see below)
- Connect the JTAG module and connect the USB side to a terminal emulator
- Connect the ethernet cable to your network
- Putty for windows (Serial)
- gtkterm for linux (use 2 stop bits!)
- Reset the device from the JTAG module
- At the terminal, press enter a couple of seconds after boot to prevent it booting to the flash
- There are some commands to make it permanently boot off USB (NOTE: this only has to be done once):
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-2.6.30-sheevaplug' setenv bootcmd 'setenv bootargs $(console) $(bootargs_root); run bootcmd_usb; bootm 0x6400000' saveenv reset
- 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.
USB Flash Drive Prep
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. It may take a while, but this must be done before booting up the plug and installing Amahi.
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.
Amahi Install
After booting from it,
- Configure a profile for the system in http://www.amahi.org. Pay attention to the IP of the HDA you configure. Let's call it PLUG_FIXED_IP.
- Ensure you have done the USB Flash Drive Prep before continuing.
- Boot the system with the latest rootfs (amahi-marvell-0.2.tar.bz2).
- Until we optimize things, it will take 4 or 5 minutes to boot the first time.
- The first time it boots, it will try to use DHCP. In my case, I configured a static IP so that when it boots with DHCP I know what IP it has. This may be different than the static you configured above.
- Access the installer via http://IP_OR_NAME_OF_THE_PLUG_IN_DHCP:2000/
- Wait patiently if it does not respond. This does require internet connectivity
- The installer takes about 1 minute to install with that :)
- Input the install code for that system
- When asked to, click the big red button to reboot
- The reboot will take a minute or two
- Access it with the configured IP: http://IP_OR_NAME_OF_THE_PLUG/
- First login: admin/amahi. I will ask you to reset the password the first time
With about 1/8th of the rpms on a typical x86 install, you will experience a lot of failures with apps (VPN does not work, apps will be missing deps, etc. etc.).
- 2 stop bits to get the bootloader to recognize keyboard and stop autobooting
- speed: 115200 /dev/ttyUSB1
- root/fedoraarm default password
- rpms installed for development: rsync, git, vim-enhanced, sudo, make, rpm-build, tar, httpd-devel, boot-devel, gcc-c++
- passenger: need rubygems-1.3.5-4.fc12.noarch.rpm with macro changes
- rpms installed for amahi: httpd, ruby, samba,
- build hdactl, hda-platform, install (with --nodeps)
RPMs not available from the mirrors:
- hda-greyhole
- cadaver
- rubygem-gd2 - actually - is this one necessary?
- ruby-RMagick
Other:
- VPN does not work (had to turn it off in servers). This could be due to the kernel not having all that it needs for TUN/TAP?:
Cannot allocate TUN/TAP dev dynamically
- Greyhole not working - hda-greyhole needed
- crontab does not appear to be working
- had to add with noatime in / to prevent flash burnout
- should control monit - it keeps on pounding the flash with messages in /var/log/monit
- would like to add swap to flash based drives
- mt-daapd and amahi-transmission are dying
Reporting issues
These are mostly what matter for debugging:
/root/hda-install.log
egrep -v 'POST|GET|progress' /tmp/amahi-ruby-install.log
Misc Notes
- restarting rpm db in chrooted environment:
rm /var/lib/rpm/__db* rpm --rebuilddb -vv