101

(162 odpowiedzi, napisanych Oprogramowanie / Software)

Dobra czyszczę, zobaczymy. Niby bootloader mam.

No ładnie teraz muszę wpisywać serial, mac adres i inne big_smile

Jeszcze wpadłem na pewien pomysł bo po czyszczeniu dalej kernel panic.

Niestety, ale ten pomysł też nic nie daje
Zastanawia mnie jedno co to jest to DGT mode:0x00 po wyczyszczeniu było 0xff, zmieniłem na 0x01 też nic
I dlaczego nie mogę zmienić mac adresu na innego vendora. Dziwne. Zastrzegli sobie, ze mac adres musi być DGT, ale nawet sam serial innego nie przyjmie jeżeli wykryje inny początek. hmm

O skompilował się mi kernel chyba, zobaczę co tam jest.

Co to jest openwrt0brcm63xx-generic-vlinux-initramfs.elf? DObra to jest ramdisk, zaznaczałem przeciez przy kompilacji.

Niesety, ale nie da się tego nawet skopiować, przy koncu tftp zawiesza się przy 85% razem z routerem.
Znalazłem vmlinux.elf ale to samo wywala.

Zauważyłem jeszcze jedną rzecz u mnie nvram znajduje się w offsecie od b8020000 do b80203e0, konczy się na kluczu wps. DAlej są same 0 i ostatni wpis jest przy b8020ff00 crc? f8 6a 18? potem jest niezapisana pamięć i zaczyna obraz. Natomiast w cfe nie ma mac adresu, ani w nvram ani wcześniej, żeby go można bez problemu było odczytać. Jeszcze zauważyłem, że dając w cfe opcje wczytania poprzedniego obrazu, faktycznie wczytuje ten od offsetu b9000000. Tyle co zauważyem dzisiaj.

Skompilowałem kernel ale ze stabilnej AA i tam też nie wykrywa NVRAm`u, czyli muszę zaaplikować patch, który to omija albo dać taki w którym podam gdzie się nvram znajduje o ile taki jest. Zobaczę co to da o ile to to.

102

(162 odpowiedzi, napisanych Oprogramowanie / Software)

działam na virtualboxie 4 jajowiec, no to ładnie sobie poczekam. Co z tym nvram?

103

(162 odpowiedzi, napisanych Oprogramowanie / Software)

czyli dać komendę e n  w CFE?

e                   Erase [n]vram or [a]ll flash except bootrom

Zainicjować w jaki sposób? Btw. kompiluje ten kernel według poradnika, ale ile to trwa. Albo niepotrzebnie wszystko kompiluje. Czy jak brałem jądro z kompletnego image buildera z trunka nic nie kompilowałem to ono nie ma wkompilowanej obsługi 96368MVWG? Bo już nie ogarniam.

104

(162 odpowiedzi, napisanych Oprogramowanie / Software)

Nie kompilowałem jeszcze jądra, ale zastanawia mnie jedno, Po zmianie board_id na 96368MVWG też wywala kernel panic, czy samo jądro wyciągnięte z sdk z trunka nie ma zdefiniowanych żadnych platform? W hexedytorze spradzwiłem ten kernel i kilka razy występuje nazwa 96863MVWG, ale nie wiadomo do czego się odnosi. Jeszcze jedna sprawa Dlaczego wywala mi kominikat o nvram tj.

[    0.000000] bcm63xx_nvram: nvram checksum failed, contents may be invalid (expected 00000000, got 189e4e90)
[    0.000000] board_bcm963xx: unknown bcm963xx board:

Czy nie jest przypadkiem właśnie tutaj problem? Skoro nie odczytuje NVRAm to nie wie jaka platforma jest i dlatego wywala kernel panic? Bo może kompilacja nic tu nie da skoro jest problem z odczytaniem nvram. Czy on nie ma nic do rzeczy?

105

(162 odpowiedzi, napisanych Oprogramowanie / Software)

Ok, wiem, już sobie zapisałem tę stronę i jeszcze pare innych, jutro będę się bawił, ale nie będę miał neta, więc muszę pościągać wszystko co trzeba wink

106

(162 odpowiedzi, napisanych Oprogramowanie / Software)

No to czym mam skompilować jądro?

Dobra już wiem, SDK potrzebuję. Tylko widzę, że jest do 12.09. Sam toolchain nie wystarczy pewnie OpenWrt-Toolchain-brcm63xx-for-mips_mips32-gcc-4.6-linaro_uClibc-0.9.33.2.tar.bz2

107

(162 odpowiedzi, napisanych Oprogramowanie / Software)

Rozumiem, czyli jak dodam sobie board 96368MVWG do jądra to ruszy? Więc czeka mnie kompilacja, to jądro wziąłem z OpenWrt-ImageBuilder-brcm63xx_generic-for-linux-x86_64.tar.bz2 i jak rozumiem nim sobie skompiluje cały obraz jak i samo jądro z 96368MVWG tak? Nigdy tego nie robiłem, a ostatni raz kompilowałem kernel na debianie 6 lat temu smile Moja pierwsza styczność z linuksem.

108

(162 odpowiedzi, napisanych Oprogramowanie / Software)

Rozumiem, że jakbym dorobił to wtedy odpali sam kernel tak? Wtedy mógłbym wgrać openwrt sobie? W bootloaderze nie zmienię, ale dziwne, że nie zna platformy 96368MVWG.

Nvram bcm63xx_nvram: nvram checksum failed, contents may be invalid (expected 00000000, got 189e4e90) nie ma tutaj żadnego związku z kernel panic?

109

(162 odpowiedzi, napisanych Oprogramowanie / Software)

Udało mi się odpalić kernel openwrt ( wyczytałem, że cfe przyjmuje pliki elf) Zmienię zaraz board na 96368 i zobaczę co będzie.

CFE> r vmlinux.elf
0x80010000/3450252 0x8035a58c/249676 Entry at 0x80014af0
Closing network.
Disabling Switch ports.
Flushing Receive Buffers...
0 buffers found.
Closing DMA Channels.
Starting program at 0x80014af0
[    0.000000] Linux version 3.10.24 (fnord@tschunk) (gcc version 4.6.4 (OpenWrt/Linaro GCC 4.6-2013.05 r39211) ) #1 Fri Jan 10 00:21:14 UTC 2014
[    0.000000] Detected Broadcom 0x6368 CPU revision b2
[    0.000000] CPU frequency is 400 MHz
[    0.000000] 64MB of RAM installed
[    0.000000] registering 38 GPIOs
[    0.000000] board_bcm963xx: Boot address 0xb8000000
[    0.000000] board_bcm963xx: CFE version: 1.0.37-106.17
[    0.000000] bcm63xx_nvram: nvram checksum failed, contents may be invalid (expected 00000000, got 189e4e90)
[    0.000000] board_bcm963xx: unknown bcm963xx board: 
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU revision is: 0002a031 (Broadcom BMIPS4350)
[    0.000000] Kernel panic - not syncing: unable to detect bcm963xx board

Jakieś pomysły co dalej?

Po zmianie board na 96368MVWG to samo pokazuje  unable to detect bcm963xx board
Da się coś z tym zrobić?

110

(162 odpowiedzi, napisanych Oprogramowanie / Software)

CFE sprawdza chyba tylko sam tag sumę CRC

Jak będę miał wolny czas to posiedzę nad tym jeszcze. Chociaż jestem początkujący w tym temacie
Rozgryzłem które wpisy odpowiadają za to gdzie szuka obrazu, kernela. Na samym początku się znajduje w tagu. Nie rozgryzłem jeszcze co oznaczają te wpisy co dałem wyżej. Są tylko w obrazach od dgt, w każdym i czy mają jakieś znaczenie.
A i doszedłem, że u mnie jest BigEndian, nawet w CFE na początku się wyświetla BE, a nie LE.

/***************************************************************************
 * Function Name: verifyTag
 * Description  : check on the input file by tag verification
 * Returns      : 0 - ok, -1 bad input image file
 ***************************************************************************/
int verifyTag(PFILE_TAG pTag)
{
    UINT32 crc;
    int status = 0;

    // check tag validate token first
    crc = CRC32_INIT_VALUE;
    crc = getCrc32((char*) pTag, (UINT32)TAG_LEN-TOKEN_LEN, crc);
    crc = htonl(crc);

    if (crc != (UINT32)(*(UINT32*)(pTag->tagValidationToken)))
    {
        printf("Illegal image ! Tag crc failed.\n");
        status = -1;
    }

    return status;
}

Znalazłem na https://github.com/guillaumelecerf/cfe_ … reateimg.c

Według tego wszystko się zgadza, ale do momentu tych krzaków, chyba dgt sobie własny system sprawdzania opracowało, nie wiem.

http://wiki.openwrt.org/doc/techref/brcm63xx.imagetag

Ktoś ma jakiś pomysł, co się kryje pod tym?

To samo co wyżej tylko w hex.
7B ED CF E1 D1 F9 20 98 AA D3 6A C2 0E 8F CB E3 AF D4 C1 C3 B8 62 BB 6E 59 0B C3 F8 25 09 5F 89 2C 89 EF D9 30 A4 C1 89 34 58 9C 18 AB D8 60 47 C4 C0 0D FC 7B BC CF 34 24 5B 60 32 5B A0 C6 36 5C 2F E0 32 E7 6E 30 10 C4 78 E2 4D E0 84 F1 18 10 F0 F1 FB 60 E2 FF 2C A4 3A A7 05 36 BA 74 22 FC 94 6E 50 25 3E 39 DB 3C 39 D5 6B 4B 5F 58 A3 C2 71 95 2C 42 68 3C 7D EC 78 82 54 E0 5F 29 5B 6F 87 E9 67 41 B5 D6 32 57 87 65 8A 5E 45 D4 AE 0D 58 F9 7E B8 47 7C F0 B4 53 B3 E9 02 AE 9A 66 2B ED 80 3F 74 F1 94 9B B8 0B FA 57 B1 14 FC 50 52 B2 C5 4F E3 7E AB 01 F2 C9 21 54 E1 CD B2 F0 48 32 DC 7D 6C A9 33 E3 36 E6 7D BF AA 34 41 DA 79 BF 72 56 85 37 B2 48 2D 62 16 40 98 B0 40 4D D5 6A 38 55 72 1E 64 AE 17 EB CA 50 E7 18 39 0D DB 0F EB 3F FD CE BB 9A F0 E1 B7 96 31 D6 C3 B6 30 37 35 39 2E 3B 30 37 33 30 2E 3B 30 37 37 36 2E

Co ciekawe mój bootloader też ma inaczej rozplanowany chociażby adres ip, serial itp. Prawie pod sam koniec i nie zajmuje 64kb tylko 132kb, a bez obcinania niezapisanego miejsca ( kończy się przed obrazem ) 256kb. A i jeszcze zauważyłem ciekawą rzecz, otóż obraz oczywiście jest taki sam po wgraniu na pamięć jak ten co się wrzuca, natomiast za obrazem jest niezapisana pamięć i dalej są jakieś bzdety bliżej nie określone. Podejrzewam, że to konfiguracja routera bo po flashu konfiguracja zostaje.

111

(162 odpowiedzi, napisanych Oprogramowanie / Software)

Dobra pytanie mam takie coś

xxx@xxx-desktop:~/Pulpit/hostTools$ ./createimg
Usage:    ./createimg [-bnmtpswiohv] [--help] [--version]
    example:
    createimg -b 96362GW -n 12 -m 02:10:18:18:12:01 -t 0 -i cfe_fs_kernel -o cfe_fs_kernel.img
    where:
    [-b] board id name
    [-n] number of mac address
    [-m] base mac address
    [-t] main thread number
    [-p] PSI Size
    [-s] GPON Serial Number
    [-w] GPON Password
    [-i] input image name
    [-o] ouput image name
    [-f] whole flash image name
    [-h] help
    [-v] version

i jeszcze takie coś

xxx@xxx-desktop:~/Pulpit/hostTools$ ./bcmImageBuilder
Usage:    ./bcmImageBuilder {-h|--help|-v|--version}
       [--littleendian]
    --chip <chipid> -- chip id {6328|6362|6368|6816}
    --board <boardid> --blocksize {64|128}
    --output <filename> --cfefile <filename>
    [--rootfsfile <filename> --kernelfile <filename> [-i|--include-cfe]]

  -h, --help                  Print a summary of the options
  -v, --version               Print the version number
  -l, --littleendian          Build little endian image
  --chip  <chip id>           Chip id
  --board  <board name>       Board name
  --blocksize  <block size>   Flash memory block size in KBytes
  --output <filename>         Output image file name
  --cfefile    <filename>     CFE imgage name
  --kernelfile <filename>     Kernel image name
  --rootfsfile <filename>     Root file system image name
  -i, --include-cfe           Add CFE to kernel and rootfs image

+ są jeszcze cmplzma, lzmacmd mksquashfs
Jednak zastanawia mnie ten bcmImageBuilder, potrzebuję do niego kernel i rootfs rootfs w sumie mam, ale skąd mam wziąć kernel? Jakieś konkretne formaty będzie wymagał?

Zrobiłem kabel jtag, ale coś mi nie pasuje na 2 pinach po podłączeniu do lpt mam 4,5v a na 2 3,3v zastowsowałem 100ohm rezystory. Nie chcę uwalić routera, więc nie podłączyłem jeszcze. To normalne? CHciałem zrobić backup cfe na wszelki wypadek.

Zrobiłem obraz tym bcmImageBuilder, ale firmware go nie przyjmuje.

Bawiłem się też zmienioną wersją Open bcmImageBuilder, udało mi się zrobić obraz wiem nawet, rozpracowałem też początkowe wpisy w nagłówku i chyba jedyny problem to jest to, nie wiadomo co to jest. Jak to rozszyfrować. Tu chyba jest główny problem, bo reszta w nagłówku się zgadza.
firmware od Broadcoma

zYč_iĘ2˛Ů.ŇeSÜ.ą..űÓ=c.©Uť.:fF 8˙‹…tďs8Ę´-}..‚üažĺi.ţö. Jµ*8?Ľ”őĐK¦ń~čße¤$ŕî.x.Eé-1ľ8.Z`.…͆9.A.,ŰnÔĺ..SV°T.%.е'yFŮ%”„Žömž™.´:˙.×lurśá.Ç.âU}xXS4kţŰů.8'.Çâý.ÝÍ™.«(í/o°´5J..Ď_qß”rŇB.Xăűsôe.0$EäóăÁ`(P¬.mĎU.÷aŕ.ř.đ˝-g9ÔM"éŠ.fň¨G‡ŔĄUO‹Ę‘.µ"T.ç..Ş—üfE˙24ÔX.“sÖ\

i najnowszy firmware DGT jak widać na końcu są wersje routerów 0759.;0730.;0776

{íĎáŃů .ŞÓjÂ.ŹËăŻÔÁøb»nY.Ăř%._‰,‰ďŮ0¤Á‰4Xś.«Ř`GÄŔ.ü{ĽĎ4$[`2[ Ć6\/ŕ2çn0.ÄxâMŕ„ń..đńű`â˙,¤:§.6şt"ü”nP%>9Ű<9ŐkK_XŁÂq•,Bh<}ěx‚Tŕ_)[o‡égAµÖ2W‡eŠ^EÔ®.Xů~¸G|đ´Słé.®šf+í€?tń”›¸.úW±.üPR˛ĹOă~«.ňÉ!TáͲđH2Ü}l©3ă6ć}żŞ4AÚyżrV…7˛H-b.@.°@MŐj8Ur.d®.ëĘPç.9.Ű.ë?ýλšđá·–1Öö0759.;0730.;0776

Co to może być?

Zamiast bawić się jtagiem, robię dump z cfe przez dm, gdyby wpadł na to wcześniej big_smile

112

(162 odpowiedzi, napisanych Oprogramowanie / Software)

To muszę kombinować z tą kompresją,  żeby początek nagłówka był shsq to wtedy ruszy bo już mi zaczyna brakować pomysłów a na pomoc DGT nie ma co liczyć bo nawet na żadnego maila o ori firmware nie odpisali.

I jeszcze coś. Sprawdziłem jeszcze w 7zipie firmware od dgt po obcięciu nagłówka ( to co się daje wypakować ) i kompresja LZMA ZLIB
Bigendian-
System plików SquashFS-LZMA 4.0
Czyli dobrze pokazuje FMK, tylko skąd mu się ten gzip wziął. Zresztą firmware musi być spakowany skoro po rozpakowaniu zajmuje 34mb a po spakowaniu 9,50mb



Edit:

No wreszcie udało mi się spakować rootfs openwrt jak w oryginale! Co prawda w squashfs 3.1 ale początek jest shsq i można go otworzyć w 7zipie pod windą. Dodałem nagłówek na chama w hexedytorze, ale nie ruszyło. Próbuję dalej. Jutro zrobię mixa z firmwareami od dgt, dam nagłówek z jednego do drugiego i zobaczymy czy ruszy, jeżeli nie to znaczy, że nagłówek zawiera coś co blokuje wgranie firmwaru ( suma kontrolna crc? skoro wywala błąd Illegal image ! Image crc failed.) i może to nie o to shsq chodzi.

Exportable Little endian filesystem, data block size 65536, compressed data, compressed metadata, compressed fragments, duplicates are removed
lzmadic 65536

Jeszcze jedna sprawa, zmodyfikowałem jeden bit w firmwarze dgt, zmieniłem w nagłówku z 1 na 2 i zapisałem, rozmiar taki sam, nie przyjął, więc zmieniłem spowrotem z 2 na 1 i przyjął fimware. Wsadziłem jeszcze nagłówek z jednego firmware od dgt do drugiego, też nie przyjął. Chociaż wykrył najpierw invalid image format jak zmieniłem z 1 na 2, a ten drugi to obcięty nagłówek z jednego firmware i wklejony do 2 i co dziwne wywaliło to co widać, albo błąd po prostu. Firmware wrzucałem przez stronę cfe.

CFE> 
web info: Upload 11393142 bytes, invalid image format.

CFE> 
web info: Waiting for connection on socket 0.

CFE> 
web info: Waiting for connection on socket 1.

CFE> 
web info: Upload 11393142 bytes, Broadcom image format.

CFE>  Illegal image ! Image crc failed.

Resetting board...˙

zmiana z 2 na 1 jak w ori i przyjął.

CFE> 
web info: Upload 11393142 bytes, Broadcom image format.

CFE> 
Flashing root file system and kernel at 0xb8040000: .......................................................................................

.
*** Image flash done *** !

To oznacza, że w tym przypadku nie chodzi o kompresje tylko w nagłówku jest zaszyta jakaś suma którą najpierw sprawdza, żeby to ruszyło dalej. Sprawdza wielkość pliku i coś jeszcze. wydaje mi się, że to o to chodzi, ale jak to rozszyfrować.

{íĎáŃů .ŞÓjÂ.ŹËăŻÔÁøb»nY.Ăř%._‰,‰ďŮ0¤Á‰4Xś.«Ř`GÄŔ.ü{ĽĎ4$[`2[ Ć6\/ŕ2çn0.ÄxâMŕ„ń..đńű`â˙,¤:§.6şt"ü”nP%>9Ű<9ŐkK_XŁÂq•,Bh<}ěx‚Tŕ_)[o‡égAµÖ2W‡eŠ^EÔ®.Xů~¸G|đ´Słé.®šf+í€?tń”›¸.úW±.üPR˛ĹOă~«.ňÉ!TáͲđH2Ü}l©3ă6ć}żŞ4AÚyżrV…7˛H-b.@.°@MŐj8Ur.d®.ëĘPç.9.Ű.ë?ýλšđá·–1Öö0759.;0730.;0776. 

i końcówka przed rootfs

úO&.ą–¦%ħńq.........Á]¤

No cóż muszę dalej szukać i czytać.

Stwierdziłem, że nie będę się bawił w edycję hexeditorem, znalazłem coś takiego bcm963xx_4.06L.03_consumer_release.tar.gz smile Zobaczymy co tam ciekawego jest, tym bardziej, że firmware 2 pierwsze dostali od Broadcoma z tego co sami napisali w pliku, więc musieli mieć sdk, zobaczymy co z tego wyjdzie.

113

(162 odpowiedzi, napisanych Oprogramowanie / Software)

Tyle to i ja wiem smile Pytanie tylko czy rootfs w dgt jest faktycznie skompresowany jako gzip i dlatego go przyjmuje a lzma nie rusza poprzez f, może jakby była komenda flash to by działało.

114

(162 odpowiedzi, napisanych Oprogramowanie / Software)

Z ciekawości przeglądam sobie pdf odnośnie cfe od broadcoma. Znalazłem na necie coś co mnie zastanawia. Otóż u mnie nie ma komendy flashimage jest tylko f a to nie to samo
Przykład z innego cfe

f                   Write image to the flash
i                   Erase persistent storage data
b                   Change board parameters
reset               Reset the board
flashimage          Flashes a compressed image after the bootloader.
help                Obtain help for CFE commands

Czyli ten firmware od dgt nie jest skompresowany? skoro daje się wypakować przez 7zipa po usunięciu nagłówka?
Jutro zrobię chyba kabel do jtaga i zgram na wszelki wypade bootloader.
I jeszcze sprawa po wypakowaniu firmware`u od dgt w logu pojawia się info o kompresji gzip? W openwrt tego nie ma.

FS_TYPE='squashfs'
FS_OFFSET='1179648'
FS_COMPRESSION='lzma'
FS_BLOCKSIZE='262144'
ENDIANESS='-le'

dgt

FS_TYPE='squashfs'
FS_OFFSET='1024'
FS_COMPRESSION='gzip'
FS_BLOCKSIZE='65536'
ENDIANESS='-le'

Nie wierzę, że tylko w tym routerze jest problem z wgraniem openwrt. Nikt się nie spotkał z podobnym problemem? Najłatwiej byłoby wgrać inny bootloader, ale skąd taki wziąć?

115

(162 odpowiedzi, napisanych Oprogramowanie / Software)

I tutaj kolejna sprawa znalazłem program Broadcom_Firmware_Tool_v1.0_Beta1_standalone i w nim po otwarciu firmware od dgt jest zaznaczone Big Endian, natomiast w FMK jak wypakowywałem firmware jest tylko little endian, który więc mówi prawdę? Dobra właśnie czytam co to to Big Endian bo jeszcze nie wiem, nie zwracałem na to uwagi.

116

(162 odpowiedzi, napisanych Oprogramowanie / Software)

Doszedłem mniej więcej do tego, że być może problem leży w kompresji. Po rozpakowaniu firmwaru od dgt początek rootfs w hex edytorze to shsq9 ( w każdym firmwarze) można go 7zipem spokojnie rozpakować, natomiast w przypadku openwrt to hsqs i jego 7zipem nie da rady. Następnie po spakowaniu ori firmwaru od dgt FMK wychodzi większy rozmiar i co ciekawe  już jest spakowany inaczej bo początek rootfs to hsqs jak w przypadku openwrt. 7zip nie daje rady wypakowac rootfs. Oczywiście squashfs-4.2-official daje sobie radę z obydwoma. Następnie bawiłem się próbując odpalić zmodowany firmware czyli nagłówek z dgt + rootfs z openwrt spakowany FMK, ale nie ruszył komunikat jak wcześniej. Próbowałem jeszcze odpalić poprzez komendę r i co ciekawe to rootfs z openwrt niby zdekompresował, ale dalej nic.
odpalenie samego rootfs.img po wypakowaniu FMK. Sam rootfs.img zarówno od dgt jak i openwrt utworzony przy pomocy FMK też nie idzie przy komendzie r. Natomiast co ciekawe po spakowaniu wypakowanego rootfs 7zipem nie całego na dodatek, chodzi o sam początek bo pod windą nie da rady tego spakować niby dekompresuje co pokazałem niżej.

 CFE> r rootfs.img
Retry loading it as a compressed image.
Loading 192.168.1.100:rootfs.img ...
Finished loading 11392118 bytes
Code Address: 0x73687371, Entry Address: 0xc9040000
LZMA: Prossible old LZMA format, trying to decompress..
**Exception 8: EPC=806132B8, Cause=000005EA (Exc26    )
                RA=8073D5D8, VAddr=00000000

        0  ($00) = 8061EFB0     AT ($01) = 8073D2F4
        v0 ($02) = 806135AC     v1 ($03) = 80800011
        a0 ($04) = 73687371     a1 ($05) = 80800011

i tak byle jak spakowany rootfs od openwrt po wypakowaniu fmk i spakowaniu jako zip jak widać niby go przyjmuje

r rootfs.zip
Retry loading it as a compressed image.
Loading 192.168.1.100:rootfs.zip ...
Finished loading 2404514 bytes
Code Address: 0x504B0304, Entry Address: 0x14000000
Decompression OK!
Entry at 0x14000000
Closing network.
Disabling Switch ports.
Flushing Receive Buffers...
0 buffers found.
Closing DMA Channels.
Starting program at 0x14000000
**Exception 8: EPC=8061EFB0, Cause=806210BC (FPUExc   )
                RA=20323430, VAddr=8073D313

        0  ($00) = 14000000     AT ($01) = 80611BCC
        v0 ($02) = 00000000     v1 ($03) = 14000000
        a0 ($04) = 53746172     a1 ($05) = 2070726F

W oryginalne boot wygląda tak

Booting from latest image (0xb9000000) ...
Code Address: 0x80010000, Entry Address: 0x80014230
Decompression OK!
Entry at 0x80014230
Closing network.
Disabling Switch ports.
Flushing Receive Buffers...
0 buffers found.
Closing DMA Channels.
Starting program at 0x80014230
Linux version 2.6.30 (krom@krom) (gcc version 4.4.2 (Buildroot 2010.02-git) ) #2 Mon Oct 18 13:10:16 CEST 2010

Parallel flash device: name AM29LV320MT

i nowsza wersja fw

CFE> r
Booting from latest image (0xb9000000) ...
Code Address: 0x80010000, Entry Address: 0x803127f0
Decompression OK!
Entry at 0x803127f0
Closing network.
Disabling Switch ports.
Flushing Receive Buffers...
0 buffers found.
Closing DMA Channels.
Starting program at 0x803127f0
Linux version 2.6.30 (krom@krom) (gcc version 4.4.2 (Buildroot 2010.02-git) ) #1 SMP PREEMPT Wed Jul 18 16:15:00 CEST 2012

Parallel flash device: name AM29LV320MT

Gdyby udało mi się spakować ten firmware jak w oryginale tzn żeby początek był shqs a nie hsqs to może go przyjmie. Aktualnie nic z tego jak widać.  Chyba, że to chodzi jeszcze o coś innego. Jakieś pomysły? Bo być może problem jednak leży gdzie indziej.

117

(162 odpowiedzi, napisanych Oprogramowanie / Software)

Nowe wieści, udało mi się rozpakować ori firmware za pomocą firmware mod kit, tak samo z openwrt. Nie musiałem usuwać żadnych linijek w hexeditorze jak pod windowsem. Teraz spróbuję porównać co i jak i zobaczymy co z tego wyjdzie. Może się uda ruszyć w końcu openwrt.

Log z openwrt

Scan Time:     2014-01-05 23:07:50
Signatures:    193
Target File:   /home/xxx/Pulpit/fmk/openwrt.bin
MD5 Checksum:  01ecb2396ca003727c1010196cd753d9

DECIMAL       HEX           DESCRIPTION
-------------------------------------------------------------------------------------------------------
1179648       0x120000      Squashfs filesystem, little endian, version 4.0, compression:  size: 1757818 bytes,  622 inodes, blocksize: 262144 bytes, created: Sun Jan  5 02:17:15 2014 

config.log z openwrt

FW_SIZE='2949124'
HEADER_TYPE=''
HEADER_SIZE=''
HEADER_IMAGE_SIZE='1179648'
HEADER_IMAGE_OFFSET='0'
FOOTER_SIZE='96'
FOOTER_OFFSET='2949028'
FS_TYPE='squashfs'
FS_OFFSET='1179648'
FS_COMPRESSION='lzma'
FS_BLOCKSIZE='262144'
ENDIANESS='-le'
MKFS="./src/others/squashfs-4.2-official/mksquashfs"

log z dgt

Scan Time:     2014-01-05 23:09:48
Signatures:    193
Target File:   /home/xxx/Pulpit/fmk/bcm.1609.bin
MD5 Checksum:  e9bfeff7ae8ecd7b49e1d1e944e6cd58

DECIMAL       HEX           DESCRIPTION
-------------------------------------------------------------------------------------------------------
1024          0x400         Squashfs filesystem, little endian, non-standard signature,  version 4.0, compression:gzip, size: 10001068 bytes,  1225 inodes, blocksize: 65536 bytes, created: Wed Jul 18 16:33:34 2012 
10003468      0x98A40C      LZMA compressed data, properties: 0x6D, dictionary size: 4194304 bytes, uncompressed size: 4134144 bytes
10758211      0xA42843      Broadcom header, number of sections: 1160982971,

config.log z dgt

FW_SIZE='11393142'
HEADER_TYPE=''
HEADER_SIZE=''
HEADER_IMAGE_SIZE='1024'
HEADER_IMAGE_OFFSET='0'
FOOTER_SIZE='2736'
FOOTER_OFFSET='11390406'
FS_TYPE='squashfs'
FS_OFFSET='1024'
FS_COMPRESSION='gzip'
FS_BLOCKSIZE='65536'
ENDIANESS='-le'
MKFS="./src/others/squashfs-4.2/mksquashfs"



Spróbuję jeszcze z innym firmwarem od dgt i openwrt, żeby można było wykluczyć jakieś pomyłki.

Ok log z dgt stara wersja

Scan Time:     2014-01-05 23:58:40
Signatures:    193
Target File:   /home/xxx/Pulpit/fmk/bcm.old1.bin
MD5 Checksum:  825b8dbab3e498b71d46e6124ce8e327

DECIMAL       HEX           DESCRIPTION
-------------------------------------------------------------------------------------------------------
1024          0x400         Squashfs filesystem, little endian, non-standard signature,  version 4.0, compression:gzip, size: 8918004 bytes,  825 inodes, blocksize: 65536 bytes, created: Mon Oct 18 13:25:38 2010 
8922124       0x88240C      LZMA compressed data, properties: 0x6D, dictionary size: 4194304 bytes, uncompressed size: 3360340 bytes

config.log dgt

FW_SIZE='10042885'
HEADER_TYPE=''
HEADER_SIZE=''
HEADER_IMAGE_SIZE='1024'
HEADER_IMAGE_OFFSET='0'
FOOTER_SIZE='2720'
FOOTER_OFFSET='10040165'
FS_TYPE='squashfs'
FS_OFFSET='1024'
FS_COMPRESSION='gzip'
FS_BLOCKSIZE='65536'
ENDIANESS='-le'
MKFS="./src/others/squashfs-4.2/mksquashfs"

i openwrt inna wersja

Scan Time:     2014-01-06 00:06:19
Signatures:    193
Target File:   /home/xxx/Pulpit/fmk/openwrt.bin
MD5 Checksum:  b842725e933871669d2b1975dd31d3bc

DECIMAL       HEX           DESCRIPTION
-------------------------------------------------------------------------------------------------------
1179648       0x120000      Squashfs filesystem, little endian, version 4.0, compression:  size: 1757498 bytes,  618 inodes, blocksize: 262144 bytes, created: Tue Dec 17 19:37:02 2013

config.log

FW_SIZE='2949124'
HEADER_TYPE=''
HEADER_SIZE=''
HEADER_IMAGE_SIZE='1179648'
HEADER_IMAGE_OFFSET='0'
FOOTER_SIZE='96'
FOOTER_OFFSET='2949028'
FS_TYPE='squashfs'
FS_OFFSET='1179648'
FS_COMPRESSION='lzma'
FS_BLOCKSIZE='262144'
ENDIANESS='-le'
MKFS="./src/others/squashfs-4.2-official/mksquashfs"

Próbowałem rozpakowany firmware od dgt ponownie spakować, ale wywala

New firmware image will be larger than original image!
       Building firmware images larger than the original can brick your device!
       Try re-running with the -min option, or remove any unnecessary files.
       REFUSING to create new firmware image.

       Original file size: 11393142
       Current file size:  12493824 (plus footer of 2736 bytes)

       Quitting...

Nawet nie sprawdzam bo na bank nie ruszy. Coś inaczej chyba trzeba go spakować. Próbwałem z opcją -min, ale to samo. W przypadku openwrt to samo.

Udało mi się rozpakować i spakować ponownie firmware DGND3700_2013-12-20_A_D.chk, sprawdzałem w hexedytorze wsio się zgadza. Będę próbował dalej.

Co ciekawe w przypadku dgt header jest strasznie mały zajmuje ok 1kb, natomiast w openwrt waży ok 1mb.

118

(162 odpowiedzi, napisanych Oprogramowanie / Software)

Właśnie zacząłem sprawdzać te polecenia i dająć dgtioctl clr 22;sleep 1 zgasła dioda power dająć dgtioctl set 22;sleep 1 zapaliła się. Próbuję dalej smile

Haha udało mi się zapalić czerwoną diodę od power. Zaraz zrobię podsumowanie co i jak działa smile Nawet można tymi poleceniami rozjaśniać te diody.

Ok tak na szybko to co mi się udało:

dgtioctl clr 2 od adsl zapala zieloną/ set ją gasi
dgtioctl clr 5 zapala czerwoną od internetu /set zapala poprzednią
dgtioctl clr 10 zapala zieloną od voip ( podniesiona słuchawka) /set gasi
dgtioctl set 22 zapala pomarańczową diodę od power/ clr zapala poprzednią
dgtioctl set 23 zapala czerwoną od wifi / clr zapala zieloną
dgtioctl set 24 też zapala czerwoną od power / polecenie  clr zapala zieloną 
dgtioctl clr 26 zapala zieloną od voip/ set ją gasi
dgtioctl set 31 zapala pomarańczową od internetu / clr zapala zieloną

dgtioctl clr 34 przycisk reset, nie używać

Trzeba to teraz dodać do firmwaru, żeby się tak odpalały przy restarcie. Może z tym rc.test. leds trzeba pokombinować? Zmienić tylko board na moją i zobaczyć lub jakiś skrypt, który po uruchomieniu je odpali.

119

(162 odpowiedzi, napisanych Oprogramowanie / Software)

Ok rozumiem.

120

(162 odpowiedzi, napisanych Oprogramowanie / Software)

Zaraz, zaraz, ale jakie polecenie to co jest w tych skryptach? dgtioctl set 4;sleep 1 itp? Kilka próbowałem i nic. Dzisiaj coś mi głowa nie pracuje.

121

(162 odpowiedzi, napisanych Oprogramowanie / Software)

Będę próbował, ale najpierw muszę znaleźć jak wyedytowć ten plik w tym busybox.

Idąc tym tropem znalazłem plik dgtioctl Niestety, ale zawartość wygląda to prakytycznie same krzaki, chociaż widzę nazwy GPIO, więc już coś, może w hexedytorze coś wynajdę.

122

(162 odpowiedzi, napisanych Oprogramowanie / Software)

Znalazłem tylko 2 pliki powiązane bezpośrednio z ledami, nie wiem na ile są potrzebne. Są to rc.led_test1 i rc.led_test2
ich zawartość. Jednak to raczej nie to. Nie bardzo wiem jak szukać i pod jakimi nazwami.

#!/bin/sh

SERIAL=`cat /proc/nvram/DGTserial`
BOARD=`awk '// {print substr($1,1,4) }' /proc/nvram/DGTserial`

if [ "$BOARD" = "0776" ];then
dgtioctl clr 22
dgtioctl clr 24
dgtioctl set 2
dgtioctl set 4
dgtioctl set 11
dgtioctl clr 5
dgtioctl clr 31
dgtioctl set 25
dgtioctl set 21
dgtioctl set 14
dgtioctl set 26
dgtioctl set 27
dgtioctl set 12
sleep 1

dgtioctl set 22
dgtioctl set 24
dgtioctl clr 2
dgtioctl clr 4
dgtioctl clr 11
dgtioctl set 5
dgtioctl set 31
dgtioctl clr 25
dgtioctl clr 21
dgtioctl clr 14
dgtioctl clr 26
dgtioctl clr 27
dgtioctl clr 12
fi
#!/bin/sh

SERIAL=`cat /proc/nvram/DGTserial`
BOARD=`awk '// {print substr($1,1,4) }' /proc/nvram/DGTserial`

if [ "$BOARD" = "0776" ];then
dgtioctl clr 22;sleep 1
dgtioctl clr 24;sleep 1
dgtioctl set 2;sleep 1
dgtioctl set 4;sleep 1
dgtioctl set 11;sleep 1
dgtioctl clr 5;sleep 1
dgtioctl clr 31;sleep 1
dgtioctl set 25;sleep 1
dgtioctl set 21;sleep 1
dgtioctl set 14;sleep 1
dgtioctl set 26;sleep 1
dgtioctl set 27;sleep 1
dgtioctl set 12;sleep 1

dgtioctl set 22;sleep 1
dgtioctl set 24;sleep 1
dgtioctl clr 2;sleep 1
dgtioctl clr 4;sleep 1
dgtioctl clr 11;sleep 1
dgtioctl set 5;sleep 1
dgtioctl set 31;sleep 1
dgtioctl clr 25;sleep 1
dgtioctl clr 21;sleep 1
dgtioctl clr 14;sleep 1
dgtioctl clr 26;sleep 1
dgtioctl clr 27;sleep 1
dgtioctl clr 12;sleep 1
fi

Co zauważyłem, przy zmianie board id np na ten 96368 dioda od wifi jest czerwona, ale wifi działa, czyli jakby nie było to skonfigurowane i jakby jej nie widział firmware wtedy. Ogólnie to ten CFE jest okrojony, nawet nie można zmienić mac adresu na inny ( w sensie inny producent niż dgt bo wywala info ).
Jeszcze znalazłem jakiś plik ledctl, ale on chyba nie ma tu nic do gadania.

Z tymi ledami to chyba łatwiej będzie kupić niebiesko czerwone i wlutować niż się z tym bawić.

123

(162 odpowiedzi, napisanych Oprogramowanie / Software)

Z openwrt się chwilowo poddaje, pytanie z innej beczki. Czy jest możliwość zmiany koloru led w aktualnym firmwarze? Szukałem katalogu z ledami, w openwrt jest ścieżka ładna, ale tutaj niestety brak. Te diody są 2 stanowe, stan niski świecą na czerwono, stan wysoki na zielono. Podczas wciśnięcia przycisku wps dioda miga czerwono zielono. Mnie interesowałby kolor czerwony. Będzie z tym problem?

124

(162 odpowiedzi, napisanych Oprogramowanie / Software)

W sumie nie. Ja swoje przykleiłem na klej termoprzewodzący, który jest mega mocny i teraz bez podgrzania suszarką się nie obejdzie :E

125

(162 odpowiedzi, napisanych Oprogramowanie / Software)

Nie mam tego problemu, może się wiesza przez temp? Pierwsze co zrób to serial do niego smile