User:Rektide
Contents |
domain
home's at http://voodoowarez.com
overview
- Self:
- Computer engineer
- Longtime user and enthusiast of OpenWRT
- Received OpenRD board 8/10/9--
- Use: Car Computer / File Server
- Peripherials:
- Alfa AWUS036H usb wifi based on Realtek RTL8187L
- Pirouette waveguide cantenna
- San Digital MS4UM hd enclosure
- Creative X-Fi Surround 5.1 USB audio
- Ati TV Wonder rf remote
- Pre-antiquity Magellan Meridian (non gold) hooked up to a PL2303 usb<->serial cable
- Generic powered usb hub
favorites
- [md]'s debootstrap + initrd.
misc
cross compile u-boot
these instructions are for cross compiling u-boot using emdebian arm compilers
- repo lives at [denx]
git clone git://git.denx.de/u-boot.git echo following points u-boot at your cross compiler chain (adapted from [mini2440 instructions]) export CROSS_COMPILE=arm-linux-gnueabi- make sheevaplug_config echo say a little prayer make all
u-boot juju
Here's my setup; its tailored for booting from USB from a variety of kernels, with or without initrd.
echo mode-switch aliases setenv do_mainline 'setenv mainlineLinux yes ; set arcNumber 2325 ; saveenv ; reset' setenv do_sheeva 'setenv mainlineLinux no ; set arcNumber 2097 ; saveenv ; reset' echo network params setenv serverip '10.50.50.6' setenv gateway '10.50.50.6' setenv netmask '255.2555.255.0' setenv ipaddr '10.50.50.15' setenv hostname 'thuban' echo boot params setenv uImage '/boot/uImage' setenv uInitrd '/boot/uInitrd' setenv args_common 'console=ttyS0,115200 ro panic=10 rootdelay=8' setenv args_usb $(args_common)' root=/dev/sda1' setenv args_sd $(args_common)' root=/dev/mmcblk0p1' echo usb boot commands setenv prep_usb 'setenv bootargs $(args_usb); usb start; ext2load usb 0:1 0x00200000 $(uImage)' setenv do_usb 'run prep_usb; ext2load usb 0:1 0x01100000 $(uInitrd) ; bootm 0x00200000 0x01100000' setenv do_usb_noinitrd 'run prep_usb ; bootm 0x00200000' echo sdhc setenv prep_sd 'setenv bootargs $(args_sd); mmcinit; ext2load mmc 0 0x00200000 $(uImage)' setenv do_sd 'run prep_sd; ext2load mmc 0 0x01100000 $(uInitrd) ; bootm 0x00200000 0x01100000' setenv do_sd_noinitrd 'run prep_sd ; bootm 0x00200000' echo tftp/nfs -- experimental setenv nfsRoot '/srv/nfs/openrd' setenv uImage_tftp '/tftpboot/vmlinuz.openrd' setenv args_nfs $(args_common) ip=$(ipaddr):$(serverip):$(gateway):$(netmask):$(hostname):eth0:none nfsroot=$(serverip):$(nfsRoot) root=/dev/nfs rw setenv prep_nfs 'setenv bootargs $(args_nfs); tftpboot 0x2000000 $(uImage_tftp); bootm 0x2000000' echo nand fallback setenv args_nand 'console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs' setenv do_nand 'setenv bootargs $(args_nand); nand read.e 0x800000 0x100000 0x400000; bootm 0x800000' echo default boot: usb with initrd, nand fallback setenv bootcmd 'run do_sd; run do_usb; run do_nand' echo boot uImage.openrd from usb: stock kernel setenv bootstock 'setenv bootusb_uImage /boot/uImage.openrd ; run do_usb_noinitrd'
this grants flexibility. for example, if attempting to run sheeva, i can enter the following:
run do_sheeva echo wait for reboot, then enter the following setenv bootusb_uImage '/boot/uImage.openrd' run do_usb_noinitrd
going back to default is as simple as:
run do_mainline
car computers
celeron - 2002
Donner 750 MHz celeron with onboard sound and an ATI TV Wonder, stuffed in a wheel well. Inconvenient, slow to boot, no wifi, not very functional. Prone to cause me to ignore warnings to turn off engine while refueling, to avoid pit stops, and generally to do anything and everything to keep the car on and running to prevent me from having to wait for the system to reboot, mpd to start, and for me to have to plug my laptop in to the ethernet and re-setup mpd. Drained deep cycle batteries in no time flat.
wgt634u - 2005
Netgear WGT634U, along with some no-name C-Media CM106 sound card, the tv wonder, and a 300GB IDE hard drive, all stuffed in a wheel well. Ran OpenWRT. Its main duties were running MPD (music server), GPSD (gps server), and pretending it could be a file server. And it was slow, unbearably slow at transferring files, sometimes unreliable, no good for war driving (gps aside), & a horrendously under performing media server. The chipset ran incredibly hot and would suck down 11w+ of power, which was absurd for an underperformant 200MHz MIPS device.
.next - openrd - 2009
The OpenRD aims to fix most of these grievances. It has a passably modern CPU (I'm hoping), more than enough ram and storage onboard, and superb expansion capabilities: usably speedy USB2.0, SD, eSATA with FIS-based switching (which as some kind of joke Intel still doesnt have, idiots, so much for Atom), tolerable power consumption, & serial built, all built in.
System is envisioned as a mobile file serving system for car camping; I'd like to have access to a fast array of drives with lots of data while lounging by the river significantly far away from my vehicle. Top of the line wifi, passable power consumption. GPS and music servers as car-services, although the sound system must work without the car computer. Fast boot, ability to survive engine ignition. Lower level system management task will be handled by auxiliary low powered micro for power concern reasons.
Main dilemma ATM is the wifi access point; rt73 appears to be the only USB chipset with AP mode support, hoping rt2x00 will add support for some of the more modern chipsets, ideally the RT2860's i already own.
Dual mpd instances, one for audiobooks and one for music, controlled via empcd for raw input device event processing. Hope to replace with custom input-sharp library in the future, enabling modal state in the remote s.t. I dont need two separate play buttons for example.
low-power house nas / music server
virtually same mpd setup as car computer, dual audiobook and music mpd servers.
presently attempting sharing synergy with a mouse + keyboard. not sure where to source input; Xvfb instance seems a little overkill. havent figured out non-X based setup for synergys. may replace with input-sharp powered library in the future.
hotlist of sofware
mpd
two instances. mpdscribble works ok for AudioTagger aka MusicBrainz aka Last.FM reporting. mpdris for mpris integration for player control.
autofs
absolutely integral to knowing when a drive is plugged in and letting you access it then. auto mounts and auto umounts.
doesnt have good integration with mdadm, need to setup some kind of HAL infrastructure to auto start-stop raid arrays.
synergy
old staple of distributed device sharing infrastructure. still some ambiguity how to make synergys work on a headless system. synergys will use a forwarded SSH X connection if available. if this input device is used on a local X, it can cause some freakiness, but more or less works.
