Uživatelské nástroje

Nástroje pro tento web


airos

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
airos [2016/11/06 12:47] – [Oprava loco M5] djbuldogairos [2025/08/28 10:09] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 8: Řádek 8:
     * http://www.authpuppy.org/doc/Compile_Airos     * http://www.authpuppy.org/doc/Compile_Airos
     * https://community.ubnt.com/t5/airOS-Software-Configuration/Done-VPN-PPTP-Client-on-AirOS/td-p/446983     * https://community.ubnt.com/t5/airOS-Software-Configuration/Done-VPN-PPTP-Client-on-AirOS/td-p/446983
 +
 +  * BACHA BACHA... AirOS už neposkytuje SDK, pouze GPL archív s modifikacemi GPL kódu!!
 +  * udělat si vlastní modifikaci AirOS je tedy složitější něž dříve
  
 ===== upload fw ===== ===== upload fw =====
Řádek 116: Řádek 119:
   * že by za to mohla ta hláška o protected při nahrávání img?   * že by za to mohla ta hláška o protected při nahrávání img?
   * ANO!! pro přepsání u-boot se musí použít speciální příkaz ''urescue -f -e'' [[https://community.ubnt.com/t5/airOS-SDK-Custom-Development/AirMAX-Device-Firmware-Recovery-Procedure/td-p/1499583|zdroj]]   * ANO!! pro přepsání u-boot se musí použít speciální příkaz ''urescue -f -e'' [[https://community.ubnt.com/t5/airOS-SDK-Custom-Development/AirMAX-Device-Firmware-Recovery-Procedure/td-p/1499583|zdroj]]
 +  * už tam mám poslední verzi
 +
 +===== Aktuální img =====
 +
 +<code>
 +ar7240> mtdparts
 +
 +device nor0 <ar7240-nor0>, # parts = 6
 + #: name size offset mask_flags
 + 0: u-boot                0x00040000 0x00000000 0
 + 1: u-boot-env            0x00010000 0x00040000 0
 + 2: kernel                0x00100000 0x00050000 0
 + 3: rootfs                0x00660000 0x00150000 0
 + 4: cfg                    0x00040000 0x007b0000 0
 + 5: EEPROM                0x00010000 0x007f0000 0
 +
 +active partition: nor0,0 - (u-boot) 0x00040000 @ 0x00000000
 +
 +defaults:
 +mtdids  : nor0=ar7240-nor0
 +mtdparts: mtdparts=ar7240-nor0:256k(u-boot),64k(u-boot-env),1024k(kernel),6528k(rootfs),256k(cfg),64k(EEPROM)
 +</code>
 +
 +<code>
 +ar7240> version
 +
 +U-Boot 1.1.4.2-s956 (Jun 10 2015 - 10:54:50)
 +</code>
 +
 +<code>
 +ar7240> imls
 +Image at 9F050000:
 +   Image Name:   MIPS Ubiquiti Linux-2.6.32.68
 +   Created:      2016-08-19   8:58:26 UTC
 +   Image Type:   MIPS Linux Kernel Image (lzma compressed)
 +   Data Size:    1008812 Bytes = 985.2 kB
 +   Load Address: 80002000
 +   Entry Point:  80002000
 +   Verifying Checksum ... OK
 +</code>
 +
 +<code>
 +ar7240> printenv
 +bootdelay=1
 +baudrate=115200
 +ethaddr=00:15:6d:0d:00:00
 +filesize=73041f
 +fileaddr=5
 +serverip=192.168.1.254
 +ethact=eth0
 +mtdparts=mtdparts=ar7240-nor0:256k(u-boot),64k(u-boot-env),1024k(kernel),6528k(rootfs),256k(cfg),64k(EEPROM)
 +bootcmd=bootm 0x9f050000
 +bootargs=console=ttyS0,115200 root=31:03 rootfstype=squashfs init=/init
 +ipaddr=192.168.1.20
 +stdin=serial
 +stdout=serial
 +stderr=serial
 +ubntaddr=80200020
 +appinitdone=true
 +mtdids=nor0=ar7240-nor0
 +partition=nor0,0
 +mtddevnum=0
 +mtddevname=u-boot
 +</code>   
 +
 +==== dmesg ====
 +
 +  * nechápu to, ale najednou se ta krabička rozhodla, že nastartuje :D
 +  * předcházelo tomu několik restartů
 +  * mám příležitost kouknout do dmesg
 +  * RAM je tedy dostupná od 0x00000000 - 0x02000000?
 +
 +<code>
 +[    0.000000] Determined physical RAM map:
 +[    0.000000]  memory: 02000000 @ 00000000 (usable)
 +</code>
 +
 +  * tohle už známe dobře
 +
 +<code>
 +[    0.073000] 6 cmdlinepart partitions found on MTD device ar7240-nor0
 +[    0.073000] Creating 6 MTD partitions on "ar7240-nor0":
 +[    0.073000] 0x000000000000-0x000000040000 : "u-boot"
 +[    0.075000] 0x000000040000-0x000000050000 : "u-boot-env"
 +[    0.076000] 0x000000050000-0x000000150000 : "kernel"
 +[    0.077000] 0x000000150000-0x0000007b0000 : "rootfs"
 +[    0.079000] mtd: partition "rootfs" set to be root filesystem
 +[    0.079000] 0x0000007b0000-0x0000007f0000 : "cfg"
 +[    0.080000] 0x0000007f0000-0x000000800000 : "EEPROM"
 +</code>
 +
 +===== memtest =====
 +
 +  * u-boot poskytuje přímo triviální memtest
 +<code>
 +mtest [start [end [pattern [iterations]]]]
 +</code>
 +  * m5 loco má 32MB RAM, tedy 0x00000000 - 0x02000000
 +  * při spuštění mtest se ale nesmí přepsat paměť u-boot/mtest na konci adresního rozsahu paměti
 +  * u-boot v mtd tabulce velikost 0x00050000, test by měl tedy skončit před adresou 0x01FB0000
 +  * zkoušel jsem najít první adresu, na které test paměti selže
 +<code>
 +ar7240> mtest 0x00000000 0x01FA9709
 +Pattern 00000000  Writing...            <0x08><0x08><0x08><0x08><0x08><0x08><0x08><0x08><0x08><0x08><0x10>@
 +</code>
 +  * poslední adresa, na které test jde spustit je
 +<code>
 +ar7240> mtest 0x00000000 0x01FA9708
 +</code>
 +  * ale..  když použiji pattern 0xffffffff, tak musím adresu ještě snížit
 +<code>
 +ar7240> mtest 0x00000000 0x01FA9704 0xffffffff
 +</code>
 +  * test nejspíš zapíše vzorek a pak ho zkusí přečíst
 +  * pokud je přečtení ok, tak nejspíš zkusí invertovanou hodnotu a následně přičte jedničku
 +<code>
 +ar7240> mtest 0x00000000 0x01FA9708
 +Pattern 00000000  Writing...            <0x08><0x08><0x08><0x08><0x08><0x08><0x08><0x08><0x08><0x08>Reading...
 +Pattern FFFFFFFF  Writing...            <0x08><0x08><0x08><0x08><0x08><0x08><0x08><0x08><0x08><0x08>Reading...
 +Pattern 00000001  Writing...
 +</code>
 +
 +   * parametrem pattern se nastavuje, od jakého vzorku začít
 +   * parametr počet iterací se mi nepodařilo nastavit. čtvrtý argument mi to vůbec nebere. možná stará verze u-boot?
 +   * paměť mi přijde ok, ale použitou hranicí si nejsem jistý.. co když je chyba zrovna tam?
  
 ===== Boot po síti z TFTP ===== ===== Boot po síti z TFTP =====
Řádek 121: Řádek 249:
   * loco je založeno na ar7240 (https://wiki.openwrt.org/toh/ubiquiti/nanostationm5)   * loco je založeno na ar7240 (https://wiki.openwrt.org/toh/ubiquiti/nanostationm5)
   * podle [[http://wiki.emacinc.com/wiki/Loading_Images_with_U-Boot|spouštění img U-BOOT]] je třeba zjístit začátek memory adres   * podle [[http://wiki.emacinc.com/wiki/Loading_Images_with_U-Boot|spouštění img U-BOOT]] je třeba zjístit začátek memory adres
-  * https://github.com/unwireddevices/u-boot/blob/master/u-boot/include/configs/ar7240.h +    mtdparts začíná na adrese 0x9f000000, má velikost 0x800000 (8MB), takže je namapován 0x9f000000-0x9f800000 
-    * CFG_SDRAM_BASE 0x80000000  - tady asi začíná fyzicky paměť +    * RAM má 32MB, tekže rozsah offsetu bude 0x00000000 - 0x02000000,  
-  * tftpboot 0x80000000 XM.v5.6.9.29546.160819.1157.bin +      * kam je ale namapován? podle testu memtest asi na začátek adresního rozsahu 
-  * a nic.. bad magic :/+      * a kolik si vzal u-boot? [[http://unix.stackexchange.com/questions/39777/how-can-i-tell-what-memory-ram-address-range-is-being-used-by-uboot|prý]] se dává na konec, tedy na poslední adresu bez velikosti u-boot 
 +    * offset 0x9f000000 je 2544 MB, takže RAM může být klidně před ním? 
 + 
 +  * <del>https://github.com/unwireddevices/u-boot/blob/master/u-boot/include/configs/ar7240.h</del> 
 +    * <del>CFG_SDRAM_BASE 0x80000000  - tady asi začíná fyzicky paměť</del> 
 +  * <del>tftpboot 0x80000000 XM.v5.6.9.29546.160819.1157.bin</del> 
 +  * <del>a nic.. bad magic :/</del>
   * podle mě ten bin obsahuje u-boot script, který provádí teprve to rozbalení atd..   * podle mě ten bin obsahuje u-boot script, který provádí teprve to rozbalení atd..
  
Řádek 148: Řádek 282:
     * http://free-electrons.com/blog/creating-flashing-ubi-ubifs-images/     * http://free-electrons.com/blog/creating-flashing-ubi-ubifs-images/
  
-  * http://free-electrons.com/doc/training/embedded-linux/ zde je super pdfkomplexně o embedded+  * zkusíme to po staru přes ghex 
 +  * pokud tam jsou nějaké u-boot skriptymusí to jít najít přes stringy!! 
 +  * dal jsem vyhledat "​Setting U-Boot environment"​ a hele co to máme na offsetu 0003203A :D 
 +  * vypadá to ale jako stringy nějaké binárky než skript. Žby tak vypadal ten U-Boot script image?
  
-  * https://sites.google.com/site/shihsung/rc32xxx-soc/analyze-firmware 
   * http://binwalk.org/   * http://binwalk.org/
 +<code>
 +binwalk /home/djbuldog/Downloads/XM.v5.6.9.29546.160819.1157.bin 
 +
 +DECIMAL       HEXADECIMAL     DESCRIPTION
 +--------------------------------------------------------------------------------
 +0             0x0             Ubiquiti firmware header, header size: 264 bytes, ~CRC32: 0x8DAC2BC9, version: "XM.ar7240.v5.6.9.29546.160819.1157"
 +260           0x104           Ubiquiti partition header, header size: 56 bytes, name: "PARTu-boot", base address: 0x00000000, data size: 0 bytes
 +140580        0x22524         U-Boot version string, "U-Boot 1.1.4.2-s956 (Jun 10 2015 - 10:54:50)"
 +140772        0x225E4         CRC32 polynomial table, big endian
 +161032        0x27508         Ubiquiti firmware header, header size: 264 bytes, ~CRC32: 0x65746831, version: " APP Magic mismatch, addr=%x, magic=%x "
 +203044        0x31924         CRC32 polynomial table, big endian
 +209568        0x332A0         Ubiquiti partition header, header size: 56 bytes, name: "PARTkernel", base address: 0x00000001, data size: -2147475456 bytes
 +209632        0x332E0         uImage header, header size: 64 bytes, header CRC: 0x4DF2A4D3, created: 2016-08-19 08:58:26, image size: 1008812 bytes, Data Address: 0x80002000, Entry Point: 0x80002000, data CRC: 0x9788B2CA, OS: Linux, CPU: MIPS, image type: OS Kernel Image, compression type: lzma, image name: "MIPS Ubiquiti Linux-2.6.32.68"
 +209696        0x33320         LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 2931300 bytes
 +1218508       0x1297CC        Ubiquiti partition header, header size: 56 bytes, name: "PARTrootfs", base address: 0x00000002, data size: 0 bytes
 +1218572       0x12980C        Squashfs filesystem, little endian, version 4.0, compression:lzma, size: 6077311 bytes, 1372 inodes, blocksize: 131072 bytes, created: 2016-08-19 08:58:28
 +7510092       0x72984C        gzip compressed data, from Unix, last modified: 2016-08-19 08:56:51
 +</code>
 +
 +  * https://sites.google.com/site/shihsung/rc32xxx-soc/analyze-firmware
 +  * http://free-electrons.com/doc/training/embedded-linux/ zde je super pdf, komplexně vše o embedded
  
 ===== Co s tím tedy je? ===== ===== Co s tím tedy je? =====
  
   * rozbitá RAM?   * rozbitá RAM?
-    * nápad: +    * podle memtest to moc nevypadá 
-      co ten test paměti v u-boot?+    když mi to pak naběhlo, tak to žádné segfault neházelo
   * rozbil se flash?   * rozbil se flash?
     * img jsem zkoušel nahrát několikrát a chovalo se to divně     * img jsem zkoušel nahrát několikrát a chovalo se to divně
Řádek 163: Řádek 320:
     * občas to hodilo chyby až při čtení kernelu/rootfs     * občas to hodilo chyby až při čtení kernelu/rootfs
     * občas to nehodilo žádnou chybu, ale zaseklo se     * občas to nehodilo žádnou chybu, ale zaseklo se
 +    * občas mi to dokonce naběhlo :)
     * nápad:     * nápad:
       * boot img po síti? tam se nepoužije flash..       * boot img po síti? tam se nepoužije flash..
  
  
airos.1478432841.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki