Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Нужна помощь
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
Paulik
У меня возникла небольшая проблемка, суть в чем. Есть 3-х координатный станок с ЧПУ с управлением Beamicon(подробнее можно увидеть здесь http://benezan-electronics.de/manuals/Beamicon-Benutzer.pdf). На данный момент управляющие программы скидываем посредством обычного кабеля USB(Нужно постоянно таскать комп к станку). Производитель управления подогнал специальный LAN модуль(Смотри фото а также описание к нему)
Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла. Нажмите для просмотра прикрепленного файла только подключить модуль к станку не получается(станок не видит модуль и роутер или комп не видит его в сети...). с производителем управления связаться не могу уже пол года. Через ком порт с использованием программы WXterm получил вот такое:


U-Boot 2008.10 (Mar 20 2009 - 10:42:39)

Board: kws C260 V2
CPU: AT91SAM9260 Rev. A
I2C: ready
DRAM: 64 MB
DataFlash: AT45DB642
Nb pages: 8192
Page Size: 1056
Flash Size: 8650752 bytes
Logical address: 0xD0000000
Area 0: D0000000 to D00041FF (RO) Bootstrap
Area 1: D0004200 to D00083FF Environment
Area 2: D0008400 to D0041FFF (RO) U-Boot
Area 3: D0042000 to D0251FFF Kernel
Area 4: D0252000 to D083FFFF FS
In: serial
Out: serial
Err: serial
Net: macb0
macb0: Starting autonegotiation...
macb0: Autonegotiation timed out (status=0x7849)
macb0: link down (status: 0x7849)
U-Boot>




На SD карте, что внутри стоит находится файл uImage.C260v2(могу сбросить для просмотра).
все предложения по почте ecb.kpa@gmail.com или в личку.


В долгу не останусь.

Всем заранее спасибо.
kovigor
Цитата(Paulik @ Feb 19 2013, 15:38) *
U-Boot 2008.10 (Mar 20 2009 - 10:42:39)

...

U-Boot>

И это последняя запись на консоли ? Если да, то эта штука работает под Линуксом (почти наверняка), но Линукс не грузится - U-Boot не передает ему управления. Почему ? Вопрос. Возможно, U-Boot не знает, откуда брать ядро. В U-Boot подайте команду "printenv" . Результат - в студию ...

Да. Cамый простой способ - настроить в U-Boot сеть, на машине поднять TFTP - сервер (можно даже под XP):
http://www.brothersoft.com/open-tftp-server-458857.html

положить на него указанный вами файл "uimage", загрузить его по TFTP в ОЗУ вашего блока и подать команду "bootm". Например (адрес в ОЗУ подставьте свой):

tftpboot 0x70800000 192.168.0.1:uImage
bootm

А вообще, таких тем по форумам довольно много. Например:
http://electronix.ru/forum/lofiversion/index.php/t84045.html

А еще, я бы пошел на сайт производителя блока и поискал бы там документацию. Или адресовал бы свои вопросы в техподдержку ...

P.S. А если в U-Boot'е скомандовать "boot" при вставленной карточке, то что будет ?
SM
Цитата(Paulik @ Feb 19 2013, 15:38) *
На SD карте, что внутри стоит находится файл uImage.C260v2(могу сбросить для просмотра).

Это, собственно, есть ядро линукса, которое по идее должен загрузить U-boot. Если он его не грузит, то это говорит о том, что в окружении что-то не так (присоединяюсь к предыдущему автору - printenv в студию), ну либо интерфейс к SD-карте физически умер.

Скорее всего, на этой же СД карте есть еще и второй раздел, где полноценная файловая система, скорее всего Ext3
Idle
Нажмите b в консоли нам. Может "крещённый" кабель или switch нужен?
Paulik
U-Boot> printenv
bootdelay=3
con_port=S1
baudrate=115200
sdlinux=mmcinit; fatload mmc 0:1 20800000 uimage.C260v2; bootm 20800000
ethact=macb0
serial#=A200055
ethaddr=00:12:91:43:00:37
stdin=serial
stdout=serial
stderr=serial

Environment size: 208/16892 bytes
U-Boot>
Hoodwin
странно. bootdelay прописан, а bootcmd - нет.

Попробуйте ручками вызывать run sdlinux.

А вообще он при старте не писал ничего такого, что у него не прочитался environment и он будет использовать default environment? В последнем случае у него может половины настроек не быть.
SM
это вряд ли "последний случай", больно уж "sdlinux" странный для дефолтного окружения.
IMHO слетел bootcmd, та самая "проблема в окружении"

стоит руками набрать
mmcinit; fatload mmc 0:1 20800000 uimage.C260v2; bootm 20800000

и если проканает, то сделать соотв. bootcmd

Еще явно слетела ком. строка ядра, console= там, и т.п.
kurtis
Не факт что слетело, нужно смотреть исходники убута, может там все захардкоженоя "чтоб не сломали".

Лично я не совсем понял что именно сломалось.
Paulik
Цитата(SM @ Feb 20 2013, 19:07) *
это вряд ли "последний случай", больно уж "sdlinux" странный для дефолтного окружения.
IMHO слетел bootcmd, та самая "проблема в окружении"

стоит руками набрать
mmcinit; fatload mmc 0:1 20800000 uimage.C260v2; bootm 20800000

и если проканает, то сделать соотв. bootcmd

Еще явно слетела ком. строка ядра, console= там, и т.п.


Вот набрал руками. в текстовом файле то что выдал гипертерминал. Нажмите для просмотра прикрепленного файла
Hoodwin
Ну так у Вас не поднялась корневая файловая система, о чем оно в конце и написало.
Нужно:
1) выяснить, как была отформатирована карточка, а именно раздел FS, который
Код
Area 4:    D0252000 to D083FFFF      FS, он же далее
Creating 5 MTD partitions on "Onboard dataflash":
...
0x00252000-0x00840000 : "fs/data"
...


2) Добавить в среду U-Boot параметры запуска ядра, а именно root=... и rootfstype=...

Думаю, что для начала стоит попробовать JFFS2. Судя по логу драйвер его поднимается, это жжж неспроста sm.gif А раздел kernel отформатирован под FAT, значит остается только, пожалуй, rootfs иметь на jffs2.

Тогда нужно следующий порядок действий попробовать, напишите в U-Boot:
Код
U-Boot> setenv bootargs root=/dev/mmcblk0p2 ro rootfstype=jffs2
U-Boot> run sdlinux


Если все пройдет нормально, то переделать в скрипте ro на rw.
Paulik
Цитата
Ну так у Вас не поднялась корневая файловая система, о чем оно в конце и написало.
Нужно:
1) выяснить, как была отформатирована карточка, а именно раздел FS, .....


Прошу прощения. Я не совсем понял какая карточка: SD или Flash. И как выяснить как она отформатирована?
По поводу второго счас попробую. Отпишусь.
SM
судя по объему флаш в 8 мегабайт, скорее всгео FS на карточке. Поместите ее в считыватель в линукс-системе, и гляньте, что там на ней, очень возможно, что там найтеся раздел Ext3 с корневой системой. Под виндовс этого раздела Вы не увидете (ну разве фдиском). Если он (и она - файл. система) найдется, то об это надо будет сказать убуту, чтобы передал в параметрах ядру.

Hoodwin,
jffs2 на разделе сд-карты разве возможен? Он вроде живет только поверх mtd...
Paulik
Цитата
тогда нужно следующий порядок действий попробовать, напишите в U-Boot:
Код
U-Boot> setenv bootargs root=/dev/mmcblk0p2 ro rootfstype=jffs2
U-Boot> run sdlinux



Вот LogНажмите для просмотра прикрепленного файла

Цитата
Поместите ее в считыватель в линукс-системе, и гляньте, что там на ней

SM, Проверю отпишусь...
SM
Попробуйте "на шару"

U-Boot> setenv bootargs root=/dev/mtdblock3 rootfstype=jffs2 rootwait rw
U-Boot> run sdlinux

или

U-Boot> setenv bootargs root=/dev/mtdblock4 rootfstype=jffs2 rootwait rw
U-Boot> run sdlinux
Hoodwin
А, тады ой, ошибся я. Никогда раьше не работал c MMC, думал, что в основе они тоже mtd, а они, значит, со встроенным своим FTL.

Видимо, тут все несколько хитрее. На плате есть dataflash, которая со встроенным разделом, нн на 8МБ. и есть еще отдельно mmc, откуда и может грузиться линукс вообще как внешний. И вот там то и прописано все вообще, при этом dataflash вообще не монтируется...

Можно попробовать еще грузануть так:
Код
U-Boot> setenv bootargs root=/dev/mtdblock4 ro rootfstype=jffs2
U-Boot> run sdlinux

Может оно на датафлеше и найдется чего...

SM
Но вообще если mmc - это внешнее устройство, причем линукс грузится из файловой системы FAT с раздела mmc 0:1, то видимо там и таблица разделов есть, и раздел там должен быть более четко прописан с указанием типа ФС. Тогда, спрашивается, какого он не монтируется сам?


Код
U-Boot> setenv bootargs root=/dev/mtdblock3 rootfstype=jffs2 rootwait rw


Такое может совсем не прокатить, так как судя по /dev/mtdblock3 - это раздел kernel у U-Boot. А там скорее всего вообще никакой файловой системы нет. Просто прописан uimage прямо в раздел. И лучше его с JFFS2 как rw не монтировать.

У нас на плате очень похожая структура разделов, и там в разделе ядра просто uimage пишется. Это удобно тем, что его туда достаточно просто прописывать самим u-bootom, стянув uimage с ftp.
SM
Цитата(Hoodwin @ Feb 22 2013, 16:38) *
Но вообще если mmc - это внешнее устройство, причем линукс грузится из файловой системы FAT с раздела mmc 0:1, то видимо там и таблица разделов есть, и раздел там должен быть более четко прописан с указанием типа ФС. Тогда, спрашивается, какого он не монтируется сам?

А с какого ... (его же) ему бы самому монтироваться? Никаких udev-ов, самомонтирующих разделы, в это время еще нет. Раздел монтирует ядро, один, вполне конкретный раздел, указанный в root=

а раздел второй там точно есть по логу, и он 99% что Ext3, и что с root fs:
b300 997888 mmcblk0 driver: mmcblk
b301 48826 mmcblk0p1
b302 949056 mmcblk0p2


Цитата(Hoodwin @ Feb 22 2013, 16:38) *
Такое может совсем не прокатить, так как судя по /dev/mtdblock3 - это раздел kernel у U-Boot. А там скорее всего вообще никакой файловой системы нет. Просто прописан uimage прямо в раздел. И лучше его с JFFS2 как rw не монтировать.

может... а может и прокатить sm.gif
Hoodwin
Дык, а это тогда что?
Код
Waiting for root device /dev/mmcblk0p2...
mmc0: new SD card at address 0002
mmcblk0: mmc0:0002 00000 974 MiB (ro)
mmcblk0: p1 p2
VFS: Cannot open root device "mmcblk0p2" or unknown-block(179,2)
Please append a correct "root=" boot option; here are the available partitions:
1f00              16 mtdblock0 (driver?)
1f01              16 mtdblock1 (driver?)
1f02             231 mtdblock2 (driver?)
1f03            2112 mtdblock3 (driver?)
1f04            6072 mtdblock4 (driver?)
b300          997888 mmcblk0 driver: mmcblk
  b301           48826 mmcblk0p1
  b302          949056 mmcblk0p2
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)


Он явно пытался открыть конкретный раздел mmcblk0p2 для монтирования rootfs, но не шмог...
SM
Цитата(Hoodwin @ Feb 22 2013, 17:45) *
Он явно пытался открыть конкретный раздел mmcblk0p2 для монтирования rootfs, но не шмог...

Товарищ указал "root=/dev/mmcblk0p2 rw rootwait" но не указал rootfstype=ext3 (или какая она там), вот я думаю, из-за отсутствия rootfstype, и не шмогла.
Hoodwin
Так ить у Ext* вполне себе суперблок есть, по которому можно вполне разобраться. mount'у ведь не требуется писать ключик -t когда монтируешь ext*. Или это только сам mount суперблок читает и соображает, а ядру надо явно указывать?

Но вообще еще смущает что ошибка звучит как
VFS: Cannot open root device "mmcblk0p2" or unknown-block(179,2)
казалось бы, должно было как-то выругаться поприличнее, ну там, что нет суперблока, или ошибка суперблока. А то: невозможно открыть блочное устройство! С чего бы ему не открываться то?
SM
Цитата(Hoodwin @ Feb 22 2013, 18:12) *
С чего бы ему не открываться то?

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

Цитата(Paulik @ Feb 22 2013, 18:28) *
вот посмотрите раскрыл SD флеш со всеми разделами


Это root filesystem явная. Должно грузиться с

root=/dev/mmcblk0p2 rw rootwait rootfstype=ext3

сделайте ей на компе на всякий случай fsck -f , только отмонтировав сначала, а потом попробуйте загрузить с вышепредложенной строкой
Paulik
Цитата
сделайте ей на компе на всякий случай fsck -f , только отмонтировав сначала,


Прошу прощения, если можно как-нибудь поподробней напишите как сделать fsck -f и отмонтировать. Так как в программировании данных процессоров не совсем хорошо разбираюсь, можно сказать в первый раз. Заранее спасибо. 05.gif

да и еще, может проблема быть из-за того что SD закрыта на Lock(Переключатель не карточке)??????
SM
Цитата(Paulik @ Feb 22 2013, 21:46) *
Прошу прощения, если можно как-нибудь поподробней напишите как сделать fsck -f и отмонтировать. Так как в программировании данных процессоров не совсем хорошо разбираюсь, можно сказать в первый раз. Заранее спасибо. 05.gif


причем тут программирование, да еще и процессоров? Это юзанье линукса на уровне простого юзера - речь то о карточке, в комп вставленной, проверить целостность системы
1) заходим в терминал.
2) заходим рутом - "su"
3)берем, смотрим командой "mount" - там написано, что например, что некий /dev/sdc2 подмонтирован как "/media/Linux Ext Volume1"
4) делаем umount /то/где/оно/смонтировано (при этом само пропадает открытое окно с файловой системой)
5) делаем /sbin/fsck -f /dev/XXX - XXX это то, что было узнано в 3) - какой девайс соответствовал карте

Цитата(Paulik @ Feb 22 2013, 21:46) *
да и еще, может проблема быть из-за того что SD закрыта на Lock(Переключатель не карточке)??????

легко - ей нужен rw доступ

сначала попробуйте rootfstype=jffs2 root=/dev/mtdblock4 - там тоже может быть root fs, прежде чем пробовать карточку
Paulik
Прошу прощения что долго отвечал. Сегодня на работе поробовал. Первым делом перевел переключатель на флеш в положение Unlock и далее ввел в терминале mmcinit; fatload mmc 0:1 20800000 uimage.C260v2; bootm 20800000

Вот что получилось Нажмите для просмотра прикрепленного файла - это с подключенным станком и LAN
а это Нажмите для просмотра прикрепленного файла без подключения сети и USB кабеля от станка.
В строке требует ввода какого-то имени пользователя и пароля. буду пытаться их узнать. Потом отпишусь.
Hoodwin
А Вы попробуйте ему писать root в качестве логина.
SM
Цитата(Paulik @ Feb 25 2013, 11:53) *
буду пытаться их узнать. Потом отпишусь.


Загляните в /etc/passwd на SD-карте. Там оно. Там же, если пароль криптованный, можно его вообще убрать. Это надо делать на компьютере, вставив SD-карту в ридер.
Paulik
вот Нажмите для просмотра прикрепленного файла какой вводить???
SM
исправьте первую строку на
root::0:0:root:/root:/bin/bash

и войдите логином root без пароля
Paulik

Цитата
SM
исправьте первую строку на
root::0:0:root:/root:/bin/bash

SM, данный раздел защищен от записи, копировать открывать могу а изменять нет. я пользуюсь плагином для тотала. Как можно изменить данный файл???

Также отмечу, что вчера ввел в Login :rundk и станок увидел модуль а также роутер видит ip модуля. через ввод IP в браузере заходим на сайт с описанием станка(сервером сайта является модуль). Вот только для подключения FTP(для сброса программ) необходим пароль ftp://passwort:username@URL/../mnt/beamicon/user. в примере
SM
защита записи на разделе - это разбирайтесь в дистрибутиве вашем, ну или банально переключатель "lock" на сд-карте, иле нет прав root-а (через su/sudo редактируйте)

залогинилисьпод rundk - хорошо, а пароли доступа к фтп это я уже не в курсе. Если фтп сервер на этой плате - так залогиньтесь рутом, и смените пароль. Если фтп-сервер где то еще - то тут никто не поможет.
Paulik
и если проканает, то сделать соотв. bootcmd

как сделать bootcmd????
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.