LINUX.ORG.RU

Banana pi M1 + sata HDD

 


0

1

Доброго дня! Приехал из китая Banana pi M1 с sata портом, завёл я сие чудо с ubuntu mate 16.04 и стал искать а как бы её с HDD загружать, (понятно что от SD избавиться не получиться но хотя бы корень бы на HDD поместить) и нашёл некоторое количество мануалов по этому поводу, но успеха не достиг, банан упорно грузиться с SD карты хоть ты тресни, пытался менять строки в /boot/cmdline.txt, /boot/uEnv.txt, /boot/boot.cmd так же делал изменения в fstab. Но тщетно, система всё равно использует как корень, не /dev/sda1 а /dev/mmcblk0p2, может я что-то не доглядел, подскажите куда смотреть?

Глупо конечно, но вы не пробовали вынуть карту?
Я специально вопросом не занимался, но однажды (не помню при каких обстоятельствах) банан сам загрузился с харда вместо флешки, никаких настроек я при этом не менял. А может и не с харда а с усб. Подключись к нему по uart и посмотрите логи загрузки, он при запуске перебирает устройства если не находит SD.

lucky_guy ★★★
()

Какой раздел будет root определяют ядро и initrd. Пересоберите initrd с поддержкой вашего пособа подключения диска (есть подозрение, что это USB-to-SATA bridge у вас), посмотрите какой UUID у той ФС которую хотите сделать корневой, и пропишите в загрузчике root=UUID=<подсмотреный_UUID>

Nastishka ★★★★★
()

Хард определяет? чюЧто если хард как overlay поставить? ext4 надеюсь? Я об этом, как пример: /etc/config/fstab

config 'mount' option target'/overlay' option uuid'вашuuid' option fstype 'ext4' option options 'rw,sync' option enabled '1'

almagest2006
()

Ты скорость тестил? У меня на m3 модели это безобразие распаяно через обычный усб-сата контроллер. Скорость максимальная записи на диск 25МБ. Чтение 12-15МБ. Это будет не система, это будет мука какая-то.

burato ★★★★★
()

Теоретически, после того как ядро загружено в память, достаточно сказать ему что корень /dev/sda1. Или чуть сложнее, начальный корень распаковать в память из initrd и уже там будет прописано что как корень перемонтировать /dev/sda1. sata или usb-to-sata вроде бы не важно, если ядро в принципе его опознаёт. Если же вдруг нужен отдельный модуль с диска для usb-to-sata, значит нужно нормальное ядро где это будет включено в состав, или пересобрать initrd с этим модулем.

Если разобраться, какой именно вариант из этих если, то всё должно стать понятно.

kirill_rrr ★★★★★
()
Ответ на: комментарий от burato

Для одноплатников на arm скорость не так уж важна. Важнее иметь отдельный стабильный контроллер на разъёме sata. Например у малинки всё висит на одном контроллере USB и подключенные usb-hdd склонны отваливаться.

kirill_rrr ★★★★★
()
Ответ на: комментарий от kirill_rrr

Не, на бананке всё хоть на отдельном усб-корне. Это удобно тем, что любые флешки при перезагрузке через имена устройств меняются. А устройство в sata-контроллере всегда получает имя sda.

burato ★★★★★
()
Ответ на: комментарий от lucky_guy

При отсутствии SD карты, тупо не грузиться.

WorstPilot
() автор топика
Ответ на: комментарий от WorstPilot

Тут скорее к гуглу. Я ковырял его достаточно давно, для х86 с биосом, там всё лежит в /boot. Он запакован, обычно gzip или что то вроде. После распаковки должен получиться образ начального корня. Обычно в виде архива cpio, но вроде могут быть и другие варианты типа архива tar или образа файловой системы ext2. Но это всё верно для классических загрузчиков lilo/gub/grub2, на arm свои загрузчики и они любят требовать цифровые подписи или ещё какую нибудь хрень.

Прежде чем модифицировать initrd, надо разобраться как и откуда банана загружается. Образы ядра и initrd должны лежать на каком то разделе встроеной флешки, а что подключать корнем - должно быть вторым или третим вопросом. И трудно представить ядро, в которое задыли положить поддержку usb-hdd.

kirill_rrr ★★★★★
()
Ответ на: комментарий от burato

А почему нет? Спецификация позволяет. С ноутбуками usb-hdd работают заметно быстрее 25М.

kirill_rrr ★★★★★
()
Ответ на: комментарий от kirill_rrr

И трудно представить ядро, в которое задыли положить поддержку usb-hdd.

Легко. Любое ядро banana pi m3.

burato ★★★★★
()

в переменной bootargs в uboot поставь root=....

но там может быть бардак в скриптах юбута, когда какой-нибудь дистрибутивный бутскрипт эту переменную переопределяет.

sergej ★★★★★
()
Ответ на: комментарий от sergej

Я пришёл к выводу что /boot/boot.cmd, это файл из которого компилится /boot/boot.scr, и если я прав, то собственно вопрос, вот мой файл /boot/boot.cmd

#setenv device mmc
#setenv partition 0:1
setenv bpi bananapi
setenv board bpi-m64
setenv chip a64
setenv service linux
setenv kernel Image
setenv initrd initrd.img
setenv dtb pine64-plus.dtb

setenv bootargs "console=ttyS0,115200n8 no_console_suspend earlycon=uart,mmio32,0x01c28000 mac_addr=${ethaddr} board=${board} root=${root} rootwait panic=10 consoleblank=0 enforcing=0 loglevel=2"


setenv fdt_filename "${bpi}/${board}/${service}/${dtb}"
setenv kernel_filename "${bpi}/${board}/${service}/${kernel}"
setenv initrd_filename "${bpi}/${board}/${service}/${initrd}"

run load_dtb load_kernel load_initrd boot_kernel

# Recompile with:
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr
# mkimage -C none -A arm -T script -d boot.cmd boot.scr
WorstPilot
() автор топика
Ответ на: комментарий от WorstPilot

Нужно искать определение переменной root или явно изменить root=... в «setenv bootargs ...»

sergej ★★★★★
()
Ответ на: комментарий от burato

Для сравнения, RPi3, 2,5" usb-hdd, через сату на ПК выдаёт нефрагментированные чтение и запись до 100 Миб/сек. Здесь, на пишке, dd if=/dev/sda1 bs=4M крутится со скоростью ~27 Миб/сек, при этом dd создаёт нагрузку на cpu 15%. Если паралельно крутится файерфокс (корень на mmc), то скорость падает до 24-25 Миб/сек.

kirill_rrr ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.