Updating Ben with an SD/de

From Qi-Hardware
Jump to: navigation, search

Contents

[edit] Wie aktualisiere ich die installierte Software auf dem Ben NanoNote mit einer SD Karte

  1. Als erstes lies Updating_Ben_NanoNote_software
  2. Aktualisiere u-boot ( falls nötig) via usbboot
  3. Installiere OpenWRT auf der SD Karte mit einer Kopie des rootfs
  4. Boote OpenWRT von SD Karte
  5. Nutze die OpenWRT Befehle zum reflashen des Nanonote


[edit] Updating u-boot using usbboot

Starte das NanoNote im USB_BOOT_mode und dann dein Rechner:

$ sudo usbboot
:> boot
:> nerase 0 8 0 0
:> nprog 0 openwrt-xburst-qi_lb60-u-boot.bin 0 0 -n
...
Error - can't read bulk data from Ingenic device
...
:> exit

Hinweis: Der nerase Befehl löscht 8 Blöcke, jeder ist 512 KB groß, insgesamt ein 4MB großer ""0-Block.


[edit] Installiere OpenWRT auf die SD-Karte

Uboot hat einer Fehler beim Behandeln mit sehr großen Partitionen. Große Micro-SD-Karten booten nicht. Wenn eine ext2 Partition erstellt wird, stelle sicher, dass diese <= 2GB. Diese Fehler wurde behoben mit folgenden Commit

Einige Parameter (wie Pfad der SD-Karte) müssen eventuell angepasst werden auf deinem Arbeitsrechner, bevor diese Befehle so ausgeführt werden können:

$ sudo mkfs -t ext2 /dev/mmcblk0p1
$ sudo mount /dev/mmcblk0p1 /mnt
$ cd /mnt/
$ wget http://downloads.qi-hardware.com/software/images/Ben_NanoNote_2GB_NAND/latest/openwrt-xburst-qi_lb60-rootfs.tar.gz -O - | sudo tar xz
$ mkdir boot
$ wget http://downloads.qi-hardware.com/software/images/Ben_NanoNote_2GB_NAND/latest/openwrt-xburst-qi_lb60-uImage.bin -O boot/uImage
$ wget http://downloads.qi-hardware.com/software/images/Ben_NanoNote_2GB_NAND/latest/openwrt-xburst-qi_lb60-root.ubi
$ cd
$ sudo umount /mnt/

[edit] Benutze OpenWRT auf der SD-Karte um das NanoNote zu reflashen

Setze die SD-Karte ins NanoNote, halte die [M]- und Anschaltknopf gedrückt.

[edit] Einstellungen des NAND-Speicher anschauen

root@ben:~# mtdinfo
Count of MTD devices:           4
Present MTD devices:            mtd0, mtd1, mtd2, mtd3
Sysfs interface supported:      yes

root@ben:~# mtdinfo -m 1
mtd1
Name:                           NAND KERNEL partition
Type:                           nand
Eraseblock size:                524288 bytes, 512.0 KiB
Amount of eraseblocks:          8 (4194304 bytes, 4.0 MiB)
Minimum input/output unit size: 4096 bytes
Sub-page size:                  4096 bytes
OOB size:                       128 bytes
Character device major/minor:   90:2
Bad blocks are allowed:         true
Device is writable:             true

# ..oder wenn Ruby installiert ist:

cat <<EOF >/root/lsmtd
#!/usr/bin/env ruby
File.open '/proc/mtd' do |file|
  file.each_line do |line|
    if line.match %r'(mtd\d): ([0-9a-f]{8}) [0-9a-f]{8} "([^"]+)"'
      device, size, name = $1, $2, $3
      puts '%s:% 5iMB "%s"'% [ device, size.to_i( 16) / 1_048_576, name]
    end
  end
end
EOF

chmod +x /root/lsmtd
/root/lsmtd
mtd0:    4MB "NAND BOOT partition"
mtd1:    4MB "NAND KERNEL partition"
mtd2:  256MB "NAND ROOTFS partition"
mtd3: 1784MB "NAND DATA partition"

[edit] Den Kernel reflashen

$ flash_eraseall /dev/mtd1
$ nandwrite -p /dev/mtd1 /boot/uImage

[edit] Rootfs reflashen

$ ubiformat /dev/mtd2 -f openwrt-xburst-qi_lb60-root.ubi

Jedwede Änderungen am Rootfs ( wie installierte Pakete) gehen dabei verloren. Stell' sicher, dass die Liste installierte Programme zuvor gesichert wird, wenn du diese benötigst und keine Übersicht darüber hast.

[edit] Um die Datenpartition zu formatieren

WARNUNG: Diese Befehlen löschen alle Daten, die sich auf der Datenpartition befinden

Klar, man möchte dies nur dann machen, wenn ein Software-Aktualisierung stattfinden soll. Im Auslieferungzustand besitzt das NanoNote 3 Partitionen. Der Kernel und das rootfs bleibt davon unberührt, da diese bereits zuvor evtl. überschrieben wurden sind.

$ ubiformat /dev/mtd3

[edit] Zum Abschluss

$ halt

Entferne die SD-Karte und ( wenn alles funktioniert hat) bootet das the NanoNote in die letzte Version. Wenn nicht, frag uns im IRC.

Personal tools
Namespaces
Variants
Actions
Navigation
interactive
Toolbox
Print/export