logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

BK7231Flasher.exe na Arch Linux z Mono: Czy komuś udało się sflashować OpenBK7231N?

iotRL 04 Cze 2025 08:31 1089 7
REKLAMA
Treść została przetłumaczona angielski » polski Zobacz oryginalną wersję tematu
  • #1 21569236
    iotRL
    Poziom 2  
    Posty: 3
    Ocena: 1
    Czy ktoś używał BK7231Flasher na Linuksie?

    Właśnie próbowałem sflashować OpenBK7231N_QIO_1.18.104.bin za pomocą BK7231Flasher.exe na mojej instalacji Arch Linux, zbudowanej za pomocą xbuild, mono-6.12.0.206-1.
    Wydawało się, że rozpoznał cel po niskim ustawieniu CEN i rozpoczął odczyt od 0x00, ale nigdy nie posunął się naprzód.

    Ten sam błąd co w tym wątku: https://www.elektroda.com/rtvforum/topic3963918.html
    Efuse ok at 0 (0x0) is 147 (0x93)
    Efuse ok at 1 (0x1) is 176 (0xB0)
    Efuse ok at 2 (0x2) is 15 (0xF)
    Efuse ok at 3 (0x3) is 81 (0x51)
    Efuse ok at 4 (0x4) is 220 (0xDC)
    Efuse ok at 5 (0x5) is 234 (0xEA)
    Efuse ok at 6 (0x6) is 203 (0xCB)
    Efuse ok at 7 (0x7) is 163 (0xA3)
    Efuse ok at 8 (0x8) is 126 (0x7E)
    Efuse ok at 9 (0x9) is 161 (0xA1)
    Efuse ok at 10 (0xA) is 147 (0x93)
    Efuse ok at 11 (0xB) is 89 (0x59)
    Efuse ok at 12 (0xC) is 3 (0x3)
    Efuse ok at 13 (0xD) is 235 (0xEB)
    Efuse ok at 14 (0xE) is 173 (0xAD)
    Efuse ok at 15 (0xF) is 199 (0xC7)
    Encryption Key: 510fb093 a3cbeadc 5993a17e c7adeb03

    Reading 0x00... failed with serial.BytesToRead 4095 (expected 4111)


    Mój USB do TTL to bardzo popularny CH340.
    [la touko 24 07:51:33 2025] usb 1-6.1: new full-speed USB device number 10 using xhci_hcd
    [la touko 24 07:51:33 2025] usb 1-6.1: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.54
    [la touko 24 07:51:33 2025] usb 1-6.1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
    [la touko 24 07:51:33 2025] usb 1-6.1: Product: USB2.0-Ser!
    [la touko 24 07:51:33 2025] ch341 1-6.1:1.0: ch341-uart converter detected
    [la touko 24 07:51:33 2025] ch341-uart ttyUSB0: break control not supported, using simulated break
    .
    Dwa adaptery USB do TTL z wyjściami pinów i złączem USB typ A.
    Po kilku próbach użyłem "hid_download_py" bez zmiany czegokolwiek i zadziałało.
    Zastanawiam się więc, czy ktoś jeszcze odniósł sukces z BKflasher na linuxie?
    ---
    AI: Której wersji lub zatwierdzenia BK7231Flasher.exe używasz (i skąd go pobrałeś)?
    Commit a121c2e4dc8e23d126c6315355e44b52381b31df, tag v19
    AI: Jakich dokładnie argumentów wiersza poleceń lub opcji użyłeś podczas uruchamiania BK7231Flasher.exe?
    Po prostu ~$ mono BK7231Flasher.exe
  • REKLAMA
  • Pomocny post
    #2 21570143
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14810
    Pomógł: 659
    Ocena: 12977
    To znany problem. Chciałbym uzyskać pomoc w rozwiązaniu tego problemu. Jakiś czas temu dodałem zakładkę "UART Timeouts", może spróbujesz ją zmienić...
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #3 21570597
    iotRL
    Poziom 2  
    Posty: 3
    Ocena: 1
    Dzięki za wskazówkę, zmiana cfg_readReplyStyle z 0 (domyślnie) na 5 sprawiła, że funkcja odczytu działa natychmiast.
    Prędkość była ustawiona na 115200
    Starting read!
    Read parms: start 0x00 (sector 0), len 0x200000 (0 sectors)
    Now is: Thursday, June 5, 2025 2:11:12 PM.
    Flasher mode: BK7231N
    Going to open port: /dev/ttyUSB0.
    Serial port open!
    Getting bus... (now, please do reboot by CEN or by power off/on)
    Getting bus failed, will try again - 0/100!
    Getting bus success!
    Going to set baud rate setting (115200)!
    Will try to read device flash MID (for unprotect N):
    Flash MID loaded: 1560EB
    Will now search for Flash def in out database...
    Flash def found! For: 1560EB
    Flash information: mid: 1560EB, icName: TH25Q16HB, manufacturer: TH, szMem: 1000000, szSR: 2, cwUnp: 0, cwEnp: 7, cwMsk: 407C, sb: 2, lb: 5, cwdRd: 05-35-FF-FF, cwdWr: 01-FF-FF-FF
    Entering SetProtectState(True)...
    sr: 0
    sr: 0
    final sr: 0
    msk: 407c
    cw: 0, sb: 2, lb: 5
    bfd: 0
    SetProtectState(True) success!
    Going to read encryption key...
    Encryption key read done!
    Encryption key: 510fb093 a3cbeadc 5993a17e c7adeb03
    Going to start reading at offset 0x00...
    Reading 0x00... Ok! Reading 0x1000... Ok! Reading 0x7000... Ok! [....] Reading 0x1FF000... Ok! 
    Basic read operation finished, but now it's time to verify...
    Starting CRC check for 512 sectors, starting at offset 0x00
    CRC matches 0xA053D055!
    All read!


    Zapisywanie jednak nie powiodło się. Próbowałem 3 razy, oto pierwszy log po odczycie:
    Starting flash new (no backup)!
    Now is: Thursday, June 5, 2025 2:20:30 PM.
    Flasher mode: BK7231N
    Going to open port: /dev/ttyUSB0.
    Serial port open!
    Getting bus... (now, please do reboot by CEN or by power off/on)
    Getting bus success!
    Going to set baud rate setting (115200)!
    Will try to read device flash MID (for unprotect N):
    Flash MID loaded: 1560EB
    Will now search for Flash def in out database...
    Flash def found! For: 1560EB
    Flash information: mid: 1560EB, icName: TH25Q16HB, manufacturer: TH, szMem: 1000000, szSR: 2, cwUnp: 0, cwEnp: 7, cwMsk: 407C, sb: 2, lb: 5, cwdRd: 05-35-FF-FF, cwdWr: 01-FF-FF-FF
    Entering SetProtectState(True)...
    sr: 0
    sr: 0
    final sr: 0
    msk: 407c
    cw: 0, sb: 2, lb: 5
    bfd: 0
    SetProtectState(True) success!
    Going to read encryption key...
    Encryption key read done!
    Encryption key: 510fb093 a3cbeadc 5993a17e c7adeb03
    Reading file firmwares/OpenBK7231N_QIO_1.18.110.bin...
    Loaded 1220464 bytes from firmwares/OpenBK7231N_QIO_1.18.110.bin...
    Using hack to write QIO - just skip bootloader...
    ... so bootloader will not be overwritten!
    Preparing to write data file to chip - resetting bus and baud...
    Getting bus... (now, please do reboot by CEN or by power off/on)
    Getting bus success!
    Going to set baud rate setting (115200)!
    Will try to read device flash MID (for unprotect N):
    Flash MID loaded: 1560EB
    Will now search for Flash def in out database...
    Flash def found! For: 1560EB
    Flash information: mid: 1560EB, icName: TH25Q16HB, manufacturer: TH, szMem: 1000000, szSR: 2, cwUnp: 0, cwEnp: 7, cwMsk: 407C, sb: 2, lb: 5, cwdRd: 05-35-FF-FF, cwdWr: 01-FF-FF-FF
    Entering SetProtectState(True)...
    sr: 0
    sr: 0
    final sr: 0
    msk: 407c
    cw: 0, sb: 2, lb: 5
    bfd: 0
    SetProtectState(True) success!
    Going to do erase, start 69632, sec count 281!
    Erasing sector 69632... ok! Erasing sector 73728... ok! Erasing sector 114688... ok! Erasing sector [...] 1216512... ok! 
    All selected sectors erased!
    Going to do erase, start 1904640, sec count 1!
    Erasing sector 1904640... ok! 
    All selected sectors erased!
    failed with serial.BytesToRead 0 (expected 15)
    The beginning of buffer in UART contains  data.
    Writing sector 0x11000... Writing sector 69632 failed!
    Writing file data to chip failed.
    .

    Ale potem zmieniłem szybkość transmisji na 921600 i zapis zadziałał!
    Starting flash new (no backup)!
    Now is: Thursday, June 5, 2025 2:28:59 PM.
    Flasher mode: BK7231N
    Going to open port: /dev/ttyUSB0.
    Serial port open!
    Getting bus... (now, please do reboot by CEN or by power off/on)
    Getting bus success!
    Going to set baud rate setting (921600)!
    Will try to read device flash MID (for unprotect N):
    Flash MID loaded: 1560EB
    Will now search for Flash def in out database...
    Flash def found! For: 1560EB
    Flash information: mid: 1560EB, icName: TH25Q16HB, manufacturer: TH, szMem: 1000000, szSR: 2, cwUnp: 0, cwEnp: 7, cwMsk: 407C, sb: 2, lb: 5, cwdRd: 05-35-FF-FF, cwdWr: 01-FF-FF-FF
    Entering SetProtectState(True)...
    sr: 0
    sr: 0
    final sr: 0
    msk: 407c
    cw: 0, sb: 2, lb: 5
    bfd: 0
    SetProtectState(True) success!
    Going to read encryption key...
    Encryption key read done!
    Encryption key: 510fb093 a3cbeadc 5993a17e c7adeb03
    Reading file firmwares/OpenBK7231N_QIO_1.18.110.bin...
    Loaded 1220464 bytes from firmwares/OpenBK7231N_QIO_1.18.110.bin...
    Using hack to write QIO - just skip bootloader...
    ... so bootloader will not be overwritten!
    Preparing to write data file to chip - resetting bus and baud...
    Getting bus... (now, please do reboot by CEN or by power off/on)
    Getting bus success!
    Going to set baud rate setting (921600)!
    Will try to read device flash MID (for unprotect N):
    Flash MID loaded: 1560EB
    Will now search for Flash def in out database...
    Flash def found! For: 1560EB
    Flash information: mid: 1560EB, icName: TH25Q16HB, manufacturer: TH, szMem: 1000000, szSR: 2, cwUnp: 0, cwEnp: 7, cwMsk: 407C, sb: 2, lb: 5, cwdRd: 05-35-FF-FF, cwdWr: 01-FF-FF-FF
    Entering SetProtectState(True)...
    sr: 0
    sr: 0
    final sr: 0
    msk: 407c
    cw: 0, sb: 2, lb: 5
    bfd: 0
    SetProtectState(True) success!
    Going to do erase, start 69632, sec count 281!
    Erasing sector 69632... ok! Erasing sector 73728... ok! [...] Erasing sector 1216512... ok! 
    
    All selected sectors erased!
    Going to do erase, start 1904640, sec count 1!
    Erasing sector 1904640... ok! 
    All selected sectors erased!
    Writing sector 0x11000... ok! Writing sector 0x12000... [...] Writing sector 0x128000... ok! Writing sector 0x129000... ok!
    Starting CRC check for 281 sectors, starting at offset 0x11000
    CRC matches 0xFD2F3E99!
    
    Now will also write OBK config...
    Long name from CFG: OpenBK7231N_D00000000
    Short name from CFG: obkN_D00000000
    Web Root from CFG: https://openbekeniot.github.io/webapp/
    Writing config sector 0x1D1000...Writing file data to chip successs.


    Nie wiem, co konkretnie robi cfg_readReplyStyle, ale ustawienie go na 5 z prędkością 921600 działa dobrze na moim sprzęcie.

    edit: cfg_readTimeOutMultiForSerialClass i cfg_readTimeOutMultiForLoop były domyślnie ustawione na 5 przez cały czas.
  • REKLAMA
  • #4 21570736
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14810
    Pomógł: 659
    Ocena: 12977
    Rozumiem, dziękuję za sprawdzenie. Więc mówisz, że domyślnie powinien być ustawiony na 5?

    @divadiow czy flasher działa na Windowsie z ustawieniem na 5?
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #5 21570742
    divadiow
    Poziom 38  
    Posty: 5244
    Pomógł: 451
    Ocena: 921
    p.kaczmarek2 napisał:
    @divadiow czy flasher działa ci na Windowsie z ustawieniem na 5?
    .
    ah tak. Prawie zawsze ustawiam to na 5. Zwiększa to szanse na sukces. Tym bardziej zanim zacząłem lutować prawie wszystko.

    Okno programu BK7231 Easy UART Flasher z zakładką ustawień timeout dla UART, zawierające trzy pola konfiguracyjne z wartością 5.
    https://github.com/search?q=repo%3Aopenshwpro...IFlashTool+cfg_readReplyStyle&type=issues
  • #7 21571887
    groove6j
    Poziom 10  
    Posty: 52
    Pomógł: 3
    Ocena: 13
    >>21570834 .
    Ciekawe. Mi też nigdy nie udało się nic odczytać/zapisać za pomocą wine czy mono, ale nie zmieniałem ustawień. Zawsze proces się zacinał. Byłem w stanie uzyskać baudrate, ale potem pojawiały się błędy. Następnym razem wypróbuję twoją rekomendację!
  • #8 21578695
    p.kaczmarek2
    Moderator Smart Home
    Posty: 14810
    Pomógł: 659
    Ocena: 12977
    Sprawdziłem kod źródłowy i cfg_readReplyStyle jest używany jako bool. Więc jest to albo 0, albo niezerowe. Nie ma więc różnicy między 1 a 5.
    Pomogłem? Kup mi kawę.

Podsumowanie tematu

LABEL_AI_GENERATED
Problem z używaniem BK7231Flasher.exe na Arch Linux z Mono polega na zatrzymaniu procesu odczytu flasha po rozpoznaniu urządzenia BK7231N i niskim ustawieniu sygnału CEN. Występuje błąd podczas próby sflashowania OpenBK7231N_QIO_1.18.104.bin, gdzie odczyt nie postępuje mimo wykrycia efuse i klucza szyfrowania. Rozwiązaniem okazała się zmiana parametru konfiguracyjnego cfg_readReplyStyle z wartości domyślnej 0 na 5 (lub 1), co umożliwia natychmiastowe działanie funkcji odczytu. Ustawienie prędkości transmisji na 115200 baudów jest rekomendowane. Parametr cfg_readReplyStyle jest traktowany jako wartość boolowska, więc każda niezerowa wartość powinna działać. Problem jest znany i dotyczy działania BK7231Flasher pod Linuksem, gdzie domyślne ustawienia powodują zawieszanie się procesu. Wskazano również, że flasher rozpoznaje pamięć flash TH25Q16HB (MID 1560EB) i poprawnie identyfikuje jej parametry. Dyskusja potwierdza, że zmiana ustawień konfiguracyjnych jest kluczowa dla sukcesu flashowania na Linuksie z użyciem Mono.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA