Сторінки

четвер, 27 липня 2023 р.

BeagleBoneBlack. Broken SD card

Пролежала плата 5 років :)  Вирішив глянути що там. А там щось не завантажується OS. Почав розбиратися. Виявилося, що померла 16ГБ SD карта, на якій була операційна система. При встановленні в ПК показуваза що в неї пам*ять 127 МБ. Пробував її відресторити різними утилітами (Disks, SD Card Formatter). Один раз ніби вдалося. Але на наступний день історія повторилася.
Найшов 2ГБ SD карту. На сайті https://www.beagleboard.org/distros є були наступні релізи

Оскільки 4 GB в мене нема ні на SD карті, ні на eMMC (revB має 2 ГБ), то вибір очевидний. Але все ж хочеться, щоб ОС завантажувалася з  eMMC, і була остання версія ядра.
 

Найшов сайт, на якому був гарний опис інсталяції https://bootlin.com/blog/device-tree-supporting-similar-boards-the-beaglebone-example/.

  1. Записав за допомогою утиліти BalenaEtcher реліз на SD карту.

    wget https://github.com/balena-io/etcher/releases/download/v1.18.12/balena-etcher_1.18.12_amd64.deb
    sudo apt install balena-etcher_1.18.12_amd64.deb

    ДАЛІ прочитайте кінець документу

  2. Вставив карту в роз*єм на BBB платі.
  3. Затиснув  USER кнопку (що над SD роз*ємом), підключив живлення. Загорілися 2 LED, потім 4 LED. Потім почало миготіти.
  4. Підключив Ethernet кабель.
  5. Знайшов IP  за допомогою nmap. І залогінився.

    sudo nmap 192.168.0.1/24
    ssh -p22 debian@192.168.0.92
    Debian GNU/Linux 10
    BeagleBoard.org Debian Buster Console Image 2020-04-06
    Support: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian
    default username:password is [debian:temppwd]
  6. Оновив пакети

    sudo apt update
    sudo apt dist-upgrade

  7.  Додав у файл  /opt/scripts/tools/update_kernel.sh file  після текту # parse commandline .. наступні рядки:

    --lts-5_10-kernel|--lts-5_10)
                    kernel="LTS510"
                    ;;

  8. І запустив оновлюватися ядро

    sudo /opt/scripts/tools/update_kernel.sh --ti-channel --lts-5_10

  9. Після  ребута перевірив версію

    debian@beaglebone:~$ uname -r
    5.10.168-ti-r65


    Реліз оновився до останньої версії. Останні версії, що підтримуються BBB можна переглянути на сайті 
    https://elinux.org/Beagleboard:BeagleBoneBlack_Debian
     


    Тепер було б класно, щоб ОС стартувала з вбудованої пам*яті eMMC за замовчуванням. Тому було б добре мувнути всі дані з SD карти на eMMC.
    Вивід lsblk

    debian@beaglebone:~$ lsblk
    NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    mmcblk1      179:0    0  1.8G  0 disk
    `-mmcblk1p1  179:1    0  1.8G  0 part
    mmcblk1boot0 179:256  0    1M  1 disk
    mmcblk1boot1 179:512  0    1M  1 disk
    mmcblk0      179:768  0  1.9G  0 disk
    `-mmcblk0p1  179:769  0  896M  0 part /




    Скопіюємо все з mmcblk0 на mmcblk1
    Перед копіюванням
    debian@beaglebone:~$ sudo fdisk -l
    [sudo] password for debian:
    Disk /dev/mmcblk1: 1.8 GiB, 1920991232 bytes, 3751936 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x411292eb

    Device         Boot Start     End Sectors  Size Id Type
    /dev/mmcblk1p1 *     8192 1843199 1835008  896M 83 Linux


    Disk /dev/mmcblk0: 1.9 GiB, 2002780160 bytes, 3911680 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x411292eb

    Device         Boot Start     End Sectors  Size Id Type
    /dev/mmcblk0p1 *     8192 1843199 1835008  896M 83 Linux

    Занулимо весь mmcblk1
    debian@beaglebone:~$ sudo dd if=/dev/zero of=/dev/mmcblk1
    dd: writing to '/dev/mmcblk1': No space left on device
    3751937+0 records in
    3751936+0 records out
    1920991232 bytes (1.9 GB, 1.8 GiB) copied, 906.378 s, 2.1 MB/s

    Після  занулення
    debian@beaglebone:~$ sudo fdisk -l
    [sudo] password for debian:
    Disk /dev/mmcblk1: 1.8 GiB, 1920991232 bytes, 3751936 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes


    Disk /dev/mmcblk0: 1.9 GiB, 2002780160 bytes, 3911680 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x411292eb

    Device         Boot Start     End Sectors  Size Id Type
    /dev/mmcblk0p1 *     8192 1843199 1835008  896M 83 Linux

    Копіюємо тільки  до  1843199  байта (512*4 = 2048,  1843199+1/4 = 460800)

debian@beaglebone:~$ sudo dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=2048 count=460800  status=progress

debian@beaglebone:~$ sudo dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=2048 count=460800  status=progress
942323712 bytes (942 MB, 899 MiB) copied, 441 s, 2.1 MB/s
460800+0 records in
460800+0 records out
943718400 bytes (944 MB, 900 MiB) copied, 446.413 s, 2.1 MB/s
debian@beaglebone:~$

debian@beaglebone:~$ sudo fdisk -l
Disk /dev/mmcblk1: 1.8 GiB, 1920991232 bytes, 3751936 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x411292eb

Device         Boot Start     End Sectors  Size Id Type
/dev/mmcblk1p1 *     8192 1843199 1835008  896M 83 Linux


Disk /dev/mmcblk0: 1.9 GiB, 2002780160 bytes, 3911680 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x411292eb

Device         Boot Start     End Sectors  Size Id Type
/dev/mmcblk0p1 *     8192 1843199 1835008  896M 83 Linux
debian@beaglebone:~$

Після виймання карти і ребута ОС, ОС не завантажилася..
Тому такий спосіб не підходить для копіювання ОС. Або потрібно десь переконфігурувати boot.


Можливо ці статті для цього є корисні, але я не став розбиратися.


       Я знайшов інший спосіб, а саме після запису імейджа на SD карту, я    розкоментував у файлі /boot/uEnv.txt рядок

##enable Generic eMMC Flasher:
##make sure, these tools are installed: dosfstools rsync
#cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh

і після старту версія AM3358 Debian 10.3 2020-04-06 1GB SD console Debian console images via microSD card (without flashing the eMMC)  чудово прошилася на eMMC.  Далі знову оновив реліз, по інструкції вище.

 ------------------------------------------------------------

 * На 16ГБ карту можна записати 4ГБ версію IoT, і відключити eMMC-flasher-v3.sh, щоб постійно завантажувалося з карти (Перевірено).
    Потім бажано розширити пам*ять карти до максимума

debian@beaglebone:~$ sudo /opt/scripts/tools/grow_partition.sh
debian@beaglebone:~$ sudo reboot

debian@beaglebone:~$ sudo fdisk -l
[sudo] password for debian:
Disk /dev/mmcblk0: 14.7 GiB, 15728640000 bytes, 30720000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8866ad2b

Device         Boot Start      End  Sectors  Size Id Type
/dev/mmcblk0p1 *     8192 30719999 30711808 14.7G 83 Linux
-----
debian@beaglebone:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            215M     0  215M   0% /dev
tmpfs            49M  1.5M   47M   3% /run
/dev/mmcblk0p1   15G  1.9G   12G  14% /

 



Немає коментарів:

Дописати коментар