From DD-WRT Wiki

Jump to: navigation, search


The page is about the popular PC-Engines Alix and Wrap (eol) boards. They Alix based on the AMD Geode LX700/800 cpu's which are simple x86 cores desinged in the mid 90's. The Wrap boards are x86, too, but are labled National Semiconductor chips. AMD bought the CPU devision some years ago and relabled the CPU's.

[edit] Installation

[edit] initial flash

  • CompactFlash Card >32MB (for outdoor usage industrial cards should be preferred)
  • physdiskwrite >v. 0.5
  • x86 version *serial.image
  • CF-cardreader

[edit] Windows

physdiskwrite [-u] <image-file>

...or just simply drag-and-drop the image file onto the physdiskwrite.exe icon.

[edit] Linux


dd if=/*serial.image of=/dev/"media"

[edit] Web

  • x86 webupgrade version if dd-wrt is already running

[edit] Additional information

dd-wrt-webupgrade images are for upgrading using the webinterface too. for new install, please use the .image files and physdiskwrite for writing

dd-wrt boots per default from /dev/hda - /dev/hdd interfaces which means you can install it on any ide compatible device like cf cards or standard harddisks
per default dd-wrt prints only messages out on the serial console. if you have a vga capable device you may modify the booloader settings to use tty0 instead of ttyS0
you can also edit the bootloader settings in a perstant way on /boot/boot/grub/menu.lst after booting per default eth0 is wan and remote management on port 8080 is enabled. all other ethernet interfaces are used as lan interfaces but can be reconfigured from the basic setup page later if your ethernet interface is not detected, please login using the serial console and write me the "lspci" output (nickname: brainslayer within the forum)

image types:

dd-wrt-webupgrade_public.bin = free dd-wrt x86 version (for webupgrade) dd-wrt_public.image = free dd-wrt x86 version (raw image for cf or hdd) this version is limited to 4096 connections and wifi support is missing

dd-wrt-webupgrade_full.bin = full dd-wrt x86 version for registered users (for webupgrade) dd-wrt_full.image = full dd-wrt x86 version for registered users (raw image for cf or hdd) this version does support wifi as well as up to 65536 connections, future versions may support more depending on the available memory

dd-wrt-webupgrade_full_smp.bin = full dd-wrt x86 version for registered users (for webupgrade) dd-wrt_full_smp.image = full dd-wrt x86 version for registered users (raw image for cf or hdd) this version does support wifi as well as up to 65536 connections, future versions may support more depending on the available memory additionally this version is capable of using multiple cpu's

for registering you must buy a licence at the shop site


[edit] Serial Console

Current builds are configured for 115200 baud, 8-bits, no parity and 1 stop bit (8n1). If you're using something like a Soekris or Alix board, it is more than likely that the initial baud rate set in the BIOS is different, so you'll need to use BIOS baud rate on your terminal device if you want to see the self-test messages from the target system at initial power-on and then change the baud rate to 115200 once the DD-WRT image starts to execute.

Once you're confident that DD-WRT is booting reliably, you can leave the baud rate on your terminal set to 115200 permanently, or you can reconfigure the target system BIOS, or the DD-WRT image, to match each other.

When using a Linux computer as your terminal device, you can change the baud rate from within MiniCom without having to exit the program.

If you're using "tip" on a BSD derivative you'll need to exit and reconnect using a different target config name. For instance, you might be using the target label "hardwire" to connect to the console at 9600 baud (with the command "tip hardwire"). You will probably need to add a new target config into the /etc/remote file to define the higher speed connection:-

   fastwire|High speed console for x86 DD-WRT box:\

You would then use the command "tip fastwire" to connect using 115200 baud.

[edit] Overclocking Alix

Using this information is art own risk!
The AMD Geode LX processor is capable of beeing overclocked.
I greped the script from here and modified it sightly. The register values i got from the OLPC projekt which uses the AMD Geoade also in their device.

PC-Engines designed the boards with 433MHz CPU/333MHz RAM (LX700) or 500MHz CPU/400MHz RAM (LX800) clock speeds. So i only will show the relevant register settings which are interesting for us. In general the LX700 has the same core as the LX800 so both should work fin with the same cpu speeds. But you will have to verify via datasheet that the RAM of the LX700 boards is capable of running at 400MHz, else you will have to run it on 333MHz! In the forum it was dicussed that the LX800 was running unstable when overclocked higher then 533MHz.

Now its time to overclock.

VENDOR=`cat /proc/cpuinfo | grep vendor_id | cut -d : -f 2 | sed 's/^ *\(.*\) *$/\1/'`
CPU_FAMILY=`cat /proc/cpuinfo | grep "cpu family" | cut -d : -f 2 | sed 's/^ *\(.*\) *$/\1/'`
CPU_MODEL=`cat /proc/cpuinfo | grep "model" | head -n 1 | cut -d : -f 2 | sed 's/^ *\(.*\) *$/\1/'`
if [ -z $VENDOR ]; then exit; fi
if [ -z $CPU_MODEL -o -z $CPU_FAMILY ]; then exit; fi
if [ $VENDOR = "AuthenticAMD" -a $CPU_FAMILY -eq 5 -a $CPU_MODEL -eq 10 ]; then
  echo -n "AMD Geode LX CPU found ... "
  LVALUE=`rdmsr  0x4c000014 | cut -b 1-3`
  # 4dd = 500 MHz CPU, 166 MHz RAM
  # 4df = 533 MHz CPU, 166 MHz RAM
  if [ $LVALUE = "4dd" ]; then
        RVALUE=`rdmsr  0x4c000014 | cut -b 4-11`
        echo -n "overclocking CPU to 533 MHz - "
        wrmsr 0x4c000014 $VALUE
        rdmsr 0x4c000014
        echo leaving CPU clock unchanged

Next you must chose what to over (or under) clock and how much:

Value     CPU  MEM

"6d3"   =  333   233
"6d5"   =  366   233
"6d7"   =  400   233
"6d9"   =  433   233
"6db"   =  466   233
"6dd"   =  500   233
"6df"   =  533   233
"6e1"   =  566   233

"8d3"   =  333   300
"8d5"   =  366   300
"8d7"   =  400   300
"8d9"   =  433   300
"8db"   =  466   300
"8dd"   =  500   300
"8df"   =  533   300
"8e1"   =  566   300

"9d3"   =  333   333
"9d5"   =  366   333
"9d7"   =  400   333
"9d9"   =  433   333
"9db"   =  466   333
"9dd"   =  500   333
"9df"   =  533   333
"9e1"   =  566   333

"ad3"   =  333   366
"ad5"   =  366   366
"ad7"   =  400   366
"ad9"   =  433   366
"adb"   =  466   366
"add"   =  500   366
"adf"   =  533   366
"ae1"   =  566   366

"bd3"   =  333   400
"bd5"   =  366   400
"bd7"   =  400   400
"bd9"   =  433   400
"bdb"   =  466   400
"bdd"   =  500   400
"bdf"   =  533   400
"be1"   =  566   400

"cd3"   =  333   433
"cd5"   =  366   433
"cd7"   =  400   433
"cd9"   =  433   433
"cdb"   =  466   433
"cdd"   =  500   433
"cdf"   =  533   433
"ce1"   =  566   433

NOTE: In case the pattern is unclear, for any value you have:
            Add 2 to increase CPU by 33 MHz
            Subtract 2 to decrease CPU by 33 MHz
            Add 100 to increase MEM by 33 MHz
            Subtract 100 to decrease MEM by 33 MHz

Forum discussion

[edit] FAQ

Q. I'm using dd to write the image to a flash memory card for my Soekris/Alix box, but even though the card appears to be detected properly, the console message always shows a "missing OS" or "OS not found" message. What could be the problem?

A. Check the size (capacity) of your flash card. Current builds will no longer fit onto a 32MB card. You should use a 64MB card as a minimum (and considering how cheap these cards are nowadays, you'd be better off running out and buying a 1GB or 2GB).

If that isn't the problem, then check your "dd" command line is correct. You should verify that the flash target device is correct from dmesg output (do not just follow the example text blindly... you stand a good chance of irretrievably corrupting your master system disk if you do). Also ensure that you specify the device name without a partition number (ie:- it should be /dev/sdb not /dev/sdb1). This is easy to remember once you realize that dd is writing a boot-block into the flash "disk" as well as the OS (it's all bundled up inside the DD-WRT image), so the write must start at the very beginning of the disk, not the beginning of the first (or any other) partition/slice.

[edit] Bios Upgrade

[edit] WARP

Zur erst müssen Sie prüfen ob ein Biosupdate für Ihr WRAP System notwendig ist. Sie benötigen mindestens Version 1.08 vom WRAP Bios damit die Installation über Netboot einwandfrei funktioniert. Aktuell (Stand 26-07-2007) ist die Biosversion 1.11.

In dem Beispiel ist noch die Biosversion 1.03 vorhanden.

PC Engines WRAP.1C v1.03 640 KB Base Memory 130048 KB Extended Memory

01F0 Master 808A Flesh Card ATAPI No boot device available, press Enter to continue.

Um das Biosupdate durchzuführen gehen Sie bitte wie folgt vor:

   * Schließen Sie Ihr WRAP mit einem Nullmodemkabel an Ihren Computer an und starten Sie ein Terminalprogramm wie HyperTerminal oder ZOC.
   * Konfigurieren Sie Ihr Terminal den seriellen Einstellungen vom WRAP entsprechend. Das WRAP ist von Werk auf 38400,8N1 eingestellt. Stellen Sie ein eventuelles Hardware Handshake aus, als Terminalemulation benutzen Sie "Linux" oder "VT100" wenn eine Auswahlmöglichkeit besteht.
   * Schalten Sie das WRAP an, Sie sollten im Terminal das hochzählen des Speichers sehen können. Kommt statt einer lesbaren Ausage nur Zeichensalat stimmen die Einstellungen für die serielle Konsole nicht. Versuchen Sie es dann mit 9600 und 57600 Baud anstatt der 38400. Bei einer dieser Einstellungen muss etwas zu sehen sein. Bekommen Sie überhaupt keine Ausgabe vom WRAP ist die serielle Konsole im Bios vom WRAP deaktiviert. In diesem Fall müssen Sie das WRAP stromlos schalten. Dann müssen Sie den Taster auf der WRAP Platine (Vorderseite) drücken und das WRAP wieder einschalten während der Taster weiterhin gedrückt ist. Damit wird in jedem Fall das Biossetup des WRAP gestartet. Dort aktivieren Sie mit "r" wieder die serielle Konsole. Sollte im Terminalprogramm wieder nur Zeichensalat zu sehen sein müssen Sie alle drei möglichen Baudraten (9600, 38400 und 57600) durchtesten.
   * Nachdem Sie sichergestellt haben, dass die Terminaleinstellungen korrekt sind schalten Sie das WRAP wieder aus und dann wieder ein. Drücken Sie nach dem Einschalten sofort die Taste "s" um in das Bios des WRAP zu gelangen. Im Terminal sollte dann folgendes zu sehen sein:

WRAP setup (9) 9600 baud *3* 38400 baud (5) 57600 baud

  • C* CHS mode (L) LBA mode

(X) Xmodem upload (Q) Quit

   * Mit der Taste 'x' starten Sie das Biosupdate über die serielle Schnittstelle. Das neue Bios muss per X-Modem Upload dem WRAP zur Verfügung gestellt werden. Ein aktuelles Bios finden Sie auf dem Webseiten von PC Engines. Für das WRAP notwendige Biosupdate heisst WRAP1.UPD wenn Sie ein WRAP.1x (also die B,C oder E Revision) Board einsetzen. Bitte denken Sie daran, das ein Biosupdate niemals unterbrochen werden darf. Sei es durch Stromausfall oder Neustart eines Rechners. Im schlimmsten Fall ist Ihr WRAP Board dann nur noch mit einem speziellen Flashadapter reparabel.

[edit] Alix

  • get the latest BIOS for your device from the PC-Engines page
  • get freedos (or as copy from [ here]) fror flashing from cf-card
  • flash the freedos image to an cf-card, mount the cf-card and replace the BIOS files and sb.com with the latest version downloaded
  • connect your pc with a serial console to the ALIX and boot
  • start sb.com, it will flash the appropriate BIOS file

[edit] Update with Xmodem

You can also update the BIOS over the serial console with Xmodem.

  • Download the BIOS files to your PC and unzip them
  • Connect to the ALIX with a null modem serial cable and a terminal program capable of Xmodem transfers
  • Power on the ALIX
  • Press the 's' key while the RAM test is running to enter setup
  • Press the 'x' key for Xmodem upload, follow the prompts to upload the ALIX BIOS binary

[edit] External links

Original PC-Engines produkt page