Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Xilinx linux на zedboard: проблемы с монтированием SD карточки
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
sheynmanyu
Здравствуйте!
Хочу научиться запускать скрипт после перезагрузки zedboard. Для этого хочу, чтобы при загрузке SD-карточка монтировалась в ~/mnt/. Образ файловой системы, как и линукс, были скачаны с wiki и git xilinx'a.
Но в логах:
...
RAMDISK: gzip image found at block 0
mmc0: new high speed SDHC card at address 0007
mmcblk0: mmc0:0007 SD04G 3.71 GiB
mmcblk0: p1 p2
EXT4-fs (ram0): couldn't mount as ext3 due to feature incompatibilities
EXT4-fs warning (device ram0): ext4_update_dynamic_rev:749: updating to rev 1 because of new feature flag, running e2fsck is recommended
EXT4-fs (ram0): mounted filesystem without journal. Opts: (null)
VFS: Mounted root (ext4 filesystem) on device 1:0.
Starting rcS...
++ Mounting filesystem
mount: mounting /dev/mmcblk0p1 on /mnt failed: No such file or directory
mount: mounting /dev/mmcblk0 on /mnt failed: No such file or directory
...
Как исправить ошибку?
Jury093
Цитата(sheynmanyu @ Aug 14 2017, 18:16) *
Как исправить ошибку?

начните с простейшего - от рута проверьте что каталог существует, например
Код
touch /mnt

далее от того же рута вручную попробуйте смонтировать раздел карты, например
Код
mount /dev/mmcblk0p1 /mnt

или второй раздел
Код
mount /dev/mmcblk0p2 /mnt

если до сюда дошли без ошибок, то двинемся дальше.. если есть ошибки, то выкладываете краткий лог и команды, приводящие к ошибкам..
aaarrr
Цитата(Jury093 @ Aug 15 2017, 00:51) *
начните с простейшего...

Нет, с простейшего - это google 'mount: mounting /dev/mmcblk0p1 on /mnt failed: No such file or directory' и посмотреть первую же ссылку.
sheynmanyu
Цитата(aaarrr @ Aug 15 2017, 01:04) *
Нет, с простейшего - это google 'mount: mounting /dev/mmcblk0p1 on /mnt failed: No such file or directory' и посмотреть первую же ссылку.

Смотрела. Еще до того, как написала на форум. Не помогло. Я не знаю, где необходимо прописать devtmpfs.mount=1
Вручную все монтируетмя на ура. Но мне нужно, чтобы автоматически.
faa
Цитата(sheynmanyu @ Aug 15 2017, 01:20) *
Смотрела. Еще до того, как написала на форум. Не помогло. Я не знаю, где необходимо прописать devtmpfs.mount=1
Вручную все монтируетмя на ура. Но мне нужно, чтобы автоматически.

Там же английским по белому написано:
Цитата
When I ran into this problem, adding:

devtmpfs.mount=1

to the bootargs in the devicetree seemed to fix it for me.

sheynmanyu
Цитата(faa @ Aug 15 2017, 07:43) *
Там же английским по белому написано:

Я добавляла эту строчку в bootargs. Не помогло. Может, я еще что-то не добавила...
Jury093
Цитата(sheynmanyu @ Aug 15 2017, 10:32) *
Я добавляла эту строчку в bootargs. Не помогло. Может, я еще что-то не добавила...

тогда после загрузки проверьте, что вы правильно написали и ядру пришел этот параметр
Код
cat /proc/cmdline

и заодно проверьте, что tmpfs включено в ядре:
Код
root@holapc:~# zcat /proc/config.gz |grep TMPFS
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_TMPFS_XATTR is not set
sheynmanyu
Цитата(Jury093 @ Aug 15 2017, 00:51) *
далее от того же рута вручную попробуйте смонтировать раздел карты, например
Код
mount /dev/mmcblk0p1 /mnt

если до сюда дошли без ошибок, то двинемся дальше.. если есть ошибки, то выкладываете краткий лог и команды, приводящие к ошибкам..

Ругается на то, что карточка ранее не была правильно отмонтирована, но все монтирует.

Цитата(Jury093 @ Aug 15 2017, 10:50) *
тогда после загрузки проверьте, что вы правильно написали и ядру пришел этот параметр
Код
cat /proc/cmdline

возвращает earlycon
Цитата
и заодно проверьте, что tmpfs включено в ядре:
Код
root@holapc:~# zcat /proc/config.gz |grep TMPFS
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_TMPFS_XATTR is not set

Да, все так.
Jury093
Цитата(sheynmanyu @ Aug 15 2017, 11:04) *
Ругается на то, что карточка ранее не была правильно отмонтирована, но все монтирует.

т.е. тут все исправно, добавьте в /etc/fstab
Код
/dev/mmcblk0p1 /mnt   ext4    rw      0       0

если не смонтирует, то смените на ext3 или на тип ФС, на которую размечен раздел p1

Цитата
возвращает earlycon

как-то маловато, должно быть приблизительно похоже:
Код
root@holapc:~# cat /proc/cmdline
console=ttymxc0,115200 root=/dev/mmcblk0p1 rootwait rw video=mxcfb0:dev=ldb,SK-ATM0704,if=RGB16 consoleblank=0

но с вашими именами и настройками..
sheynmanyu
Цитата(Jury093 @ Aug 15 2017, 11:16) *
как-то маловато, должно быть приблизительно похоже:
Код
root@holapc:~# cat /proc/cmdline
console=ttymxc0,115200 root=/dev/mmcblk0p1 rootwait rw video=mxcfb0:dev=ldb,SK-ATM0704,if=RGB16 consoleblank=0

но с вашими именами и настройками..

Ух ты! Спасибо! Добавила в system-top.dts:
Код
chosen {
        bootargs = "earlycon root=/dev/ram rw devtmpfs.mount=1";
        stdout-path = "serial0:115200n8";
    };

Было (файл автоматически генерировался в Xilinx SDK):
Код
chosen {
        bootargs = "earlycon";
        stdout-path = "serial0:115200n8";
    };

И все заработало!
sheynmanyu
Цитата(Jury093 @ Aug 15 2017, 11:16) *
как-то маловато, должно быть приблизительно похоже:
Код
root@holapc:~# cat /proc/cmdline
console=ttymxc0,115200 root=/dev/mmcblk0p1 rootwait rw video=mxcfb0:dev=ldb,SK-ATM0704,if=RGB16 consoleblank=0

но с вашими именами и настройками..


Не понимаю, почему не работает с root=/dev/mmcblk0p1 rootwait, но работает с root=/dev/ram...
Jury093
Цитата(sheynmanyu @ Aug 15 2017, 13:52) *
Не понимаю, почему не работает с root=/dev/mmcblk0p1 rootwait, но работает с root=/dev/ram...

а что именно не работает? и что лежит на разделе p1?
попробуйте загрузится, из лога скопировать с момента детектирования карточки и сюда через codebox выложить..

update вот такое прописать попробуйте в dts, возможно так требуется современным ядрам..
Код
bootargs = "earlycon root=/dev/mmcblk0p1 rootfstype=ext4 rw rootwait";
sheynmanyu
Цитата(Jury093 @ Aug 15 2017, 17:36) *
а что именно не работает? и что лежит на разделе p1?
попробуйте загрузится, из лога скопировать с момента детектирования карточки и сюда через codebox выложить..

У меня карточка разбита на 2 раздела: р1 - системный, р2 - пользовательский.
В случае /dev/ram внутри bootargs системный раздел нормально монтируется в /mnt:
Мой код в devicetree:
Код
chosen {
        bootargs = "earlycon root=/dev/ram rw devtmpfs.mount=1";
        stdout-path = "serial0:115200n8";
    };

Лог при загрузке:
Код
RAMDISK: gzip image found at block 0
EXT4-fs (ram0): couldn't mount as ext3 due to feature incompatibilities
EXT4-fs warning (device ram0): ext4_update_dynamic_rev:749: updating to rev 1 because of new feature flag, running e2fsck is recommended
EXT4-fs (ram0): mounted filesystem without journal. Opts: (null)
VFS: Mounted root (ext4 filesystem) on device 1:0.
devtmpfs: mounted
Freeing unused kernel memory: 1024K (c0900000 - c0a00000)
Starting rcS...
++ Mounting filesystem
FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
++ Setting up mdev
++ Starting telnet daemon
++ Starting http daemon
++ Starting ftp daemon
++ Starting ssh daemon
random: sshd: uninitialized urandom read (32 bytes read)
++ Running user script init.sh from SD Card
Hello my dear striped caterpillar!


В случае /dev/mmcblk0p1 выдается ошибка No such file or directory. Выдает то же самое, о чем я писала в самом первом сообщении в этой теме. Естественно, монтирования не происходит и init.sh не запускается:
Мой код:
Код
chosen {
        bootargs = "earlycon root=/dev/mmcblk0p1 rootwait rw devtmpfs.mount=1";
        stdout-path = "serial0:115200n8";
    };

Лог:
Код
RAMDISK: gzip image found at block 0
mmc0: new high speed SDHC card at address 0007
mmcblk0: mmc0:0007 SD04G 3.71 GiB
mmcblk0: p1 p2
EXT4-fs (ram0): couldn't mount as ext3 due to feature incompatibilities
EXT4-fs warning (device ram0): ext4_update_dynamic_rev:749: updating to rev 1 because of new feature flag, running e2fsck is recommended
EXT4-fs (ram0): mounted filesystem without journal. Opts: (null)
VFS: Mounted root (ext4 filesystem) on device 1:0.
Starting rcS...
++ Mounting filesystem
mount: mounting /dev/mmcblk0p1 on /mnt failed: No such file or directory
mount: mounting /dev/mmcblk0 on /mnt failed: No such file or directory
++ Setting up mdev
++ Starting telnet daemon
++ Starting http daemon
++ Starting ftp daemon
++ Starting ssh daemon
random: sshd: uninitialized urandom read (32 bytes read)
rcS Complete

Тут появился еще один вопрос: как подключить модуль python, чтобы линукс на zynq мог бы интерпретировать *.py скрипты? Не устанавливая Petalinux... Все исходники брала с xilinx git (xilinx linux).
Jury093
Цитата(sheynmanyu @ Aug 15 2017, 18:28) *
FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.

вот тут что-то не так - система считает что p1 это fat?
а что у вас (в рутовой конечно) прописано в /etc/fstab - может оттуда ерунда идет..

Цитата
bootargs = "earlycon root=/dev/mmcblk0p1 rootwait rw devtmpfs.mount=1";

попробуйте, чисто для теста, загрузится в однопользовательском режиме, должны увидеть приглашение логи после:
Код
bootargs = "earlycon noinitrd init=/bin/sh rootwait rw devtmpfs.mount=1";


если не загрузится, то похоже проблемы в рутовой или в ФС на этом разделе..

Цитата
Тут появился еще один вопрос: как подключить модуль python, чтобы линукс на zynq мог бы интерпретировать *.py скрипты? Не устанавливая Petalinux... Все исходники брала с xilinx git (xilinx linux).

тут я пас, в нормальном Дебьян для мелких это делается примерно apt-get install python, а как в вашем дистрибутиве я не знаю..
как вариант погуглить "zynq python" и подобные запросы..
sheynmanyu
Цитата(Jury093 @ Aug 15 2017, 20:13) *
вот тут что-то не так - система считает что p1 это fat?
а что у вас (в рутовой конечно) прописано в /etc/fstab - может оттуда ерунда идет..

У меня vfat для p1, так как я собирала все под виртуальной машиной, а на флешку копировала из-под windows. Странный способ, но вначале мне так оказалось проще. laughing.gif
И я ее и вправду не отмонтировала перед очередной перезагрузкой. Так что с эттой ошибкой мне все более-менее понятно, а вот со сборками и дистрибутивами... Но это уже другая история. Спасибо огромное!
Jury093
Цитата(sheynmanyu @ Aug 15 2017, 22:49) *
У меня vfat для p1, так как я собирала все под виртуальной машиной, а на флешку копировала из-под windows. Странный способ, но вначале мне так оказалось проще. laughing.gif
И я ее и вправду не отмонтировала перед очередной перезагрузкой. Так что с эттой ошибкой мне все более-менее понятно, а вот со сборками и дистрибутивами... Но это уже другая история. Спасибо огромное!

а вот оно как.. так оно по идее вообще не должно работать.. аттрибуты на запуск, права пользователй.. ну прикола ради развернуть на fat рутовую можно.. но работать не должно..
у вас же виртуалка есть - карточку в usb ридер, втыкаете в порт хостовой машины (вероятно винда), потом в виртуалке переключаете ридер на работу под виртуалкой - в этот момент винда теряет накопитель и он появляется в линуксе под виртуалкой скорее всего как /dev/sdb
там же под виртуалкой нарезаете разделы и форматируете в ext3/ext4 куда и разворачиваете свой архив с рутовой, туда же кладете ядро и что там еще нужно для загрузки..
но это будет уже другая история в другой теме..
успехов!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.