NGW100

Die genannten IP-Adressen beziehen sich mit 192.168.57.1 auf den ngw100 (Atmel AVR32) und mit 192.168.57.11 auf den Development-Host. Pfade sind entsprechend der eigenen Umgebung anzupassen.
 

u-boot

An der u-boot-console sind die Befehle 'help' und 'printenv' sehr hilfreich.
Mit folgenden Befehlen kann man die Umgebungsvariablen an seine Bedürfnisse anpassen und speichern. z.B.:
UBoot> set ipaddr 192.168.57.1
UBoot> set serverip 192.168.57.11
UBoot> set tftpip 192.168.57.11
UBoot> saveenv
UBoot> boot
Mit folgendem Befehl kann man eigenen selbstgebauten Kernel ohne Gefahr testen. (Dieser muss dafür im tftproot des Dev-Hosts liegen.)
UBoot> set bootcmd 'set ipaddr 192.168.57.1;tftp 0x10200000 uImage;bootm'
UBoot> boot

rootfs per tftp flashen

Das rootfs-Image (ngw_jffs2_root.img) auf den tftp-Server legen. (z.B. von atmel beta-ware)
(Statt die Dateigrösse direkt anzugeben kann man auch $(filesize) versuchen, das funktioniert jedenfalls auf einem Gumstix, auf dem ngw100 habe ich das noch nicht getestet.)
Uboot> protect off 0x20000 0x7EFFFF
Uboot> erase 0x20000 0x7EFFFF
Uboot> set ipaddr 192.168.57.1; tftp 0x90000000 ngw_jffs2_root.img
Bytes transferred = 6553600 (640000 hex)
Uboot> cp.b 0x90000000 0x20000 0x640000
Copy to Flash... done
Uboot> protect on all
Uboot> boot

/usr flashen

[ngw]$ scp dev-host:/home/tftproot/ngw_jffs2_usr.img /tmp
[ngw]$ /etc/init.d/S90reboot # alle Prozesse aus /usr beenden und /usr umounten, vorher ggf. noch flash_eraseall nach /tmp kopieren
[ngw]$ flash_eraseall /dev/mtd3
[ngw]$ dd if=/tmp/ngw_jffs2_usr.img of=/dev/mtd3 bs=1056

scp nachrüsten

Das scp Binary für den ngw100 herunterladen und nach /usr/bin auf den ngw100 kopieren. Anschliessend noch die Rechte anpassen:
[ngw]$ chmod 0755 /usr/bin/scp

nfs mount

[ngw]$ mount -t nfs -o nfsvers=2,nolock 192.168.57.11:/home/share/upload /mnt

SD-Karte als Mass-Storage

[ngw]$ umount /dev/mmcblkp01
[ngw]$ modprobe atmel-mci
[ngw]$ modprobe mmc_block
[ngw]$ modprobe g_file_storage file=/dev/mmcblk0p1 removable=1

jffs2 images erstellen

Das "manuelle" Erstellen der Cross-Toolchain, des Dateisystembaumes und Übersetzen der Pakete ist inzwischen nicht mehr nötig, da einem das AVR32-buildroot diese Arbeit abnimmt. Die folgenden Informationen sind hier nur noch aus "historischen" Gr√ľnden:

rootfs
$ mkfs.jffs2 --output=/home/tftproot/atngw100_root.img --root=/home/$USER/avr32/target_root --big-endian --pagesize=4096 --eraseblock=65536
/usr
$ mkfs.jffs2 --output=/home/tftproot/atngw100_usr.img --root=/home/$USER/avr32/target_usr --big-endian --no-cleanmarkers --pagesize=1056 --eraseblock=8448

/etc/profile

Eine einfache profile-Datei, um ein paar Kleinigkeiten beim Login zu setzen.
# /etc/profile

export PATH=/usr/bin:/usr/sbin:/bin:/sbin

if [ "$PS1" ]; then
        if [ "`id -u`" -eq 0 ]; then 
                export PS1='[root]# '
        else
                export PS1='$ '
        fi
        alias ls='ls --color=auto'
        alias ll='ls -lAh'
fi

buildroot-avr32-v2.1.0

Wenn man noch den "alten" (1.1.4-at0) Orginal-Bootloader installiert hat, muss man das Bootkommando anpassen:
UBoot> setenv bootcmd 'fsload 0x90300000 /boot/uImage; bootm'
UBoot> saveenv

Um Busybox zu konfigurieren:
$ make busybox-menuconfig

Eine von mir leicht angepasste Version des buildroot-avr32-v2.1.0 von Atmel.
Änderungen:
  • iproute2 zusätzlich ausgewählt und mit patches von openwrt versehen
  • iptables mit patches versehen (l7, ipp2p, imq)
  • kernel mit patches versehen (div. netfilter, 2.6.23.17)
  • alle busybox patches zu Version 1.7.2 hinzugefügt und busybox 1.7.5 als vorausgewälte Alternative
  • ebtables hinzugefügt
  • verschiedene zus√§tzliche Kernel-Module z.B.: für ebtables und tc

 
© 2001 - 2017 Frank Remetter