ARM (linux на платах с ARM-процессором)

Системы, которые не вошли в список.

Модератор: Модераторы разделов

IMB
Сообщения: 2567
ОС: Debian

ARM

Сообщение IMB »

Доброго дня!
Имеется плата (описание) построенная на процессоре ARM с предустановленным Linux. На плате имеются разъемы USB и SD/MMC. Простите за "замусоленную" тему, но не могу разобраться с монтированием устройств по вышеозначенным разъемам.
Сначала по USB:
Подсоединяю флешку

Код: Выделить всё

# usb 1-3: new full speed USB device using address 8
scsi4 : SCSI emulation for USB Mass Storage devices
  Vendor: JetFlash  Model: TS512MJF2B        Rev: 2.00
  Type:   Direct-Access                      ANSI SCSI revision: 02
sda: Unit Not Ready, sense:
Current : sense = 70  6
ASC=28 ASCQ= 0
Raw sense data:0x70 0x00 0x06 0x00 0x00 0x00 0x00 0x0a 0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x00 0x00
0x00
SCSI device sda: 1024000 512-byte hdwr sectors (524 MB)
sda: assuming Write Enabled
sda: assuming drive cache: write through
 sda: unknown partition table
Attached scsi removable disk sda at scsi4, channel 0, id 0, lun 0
Attached scsi generic sg0 at scsi4, channel 0, id 0, lun 0,  type 0

Есть сообщение о неизвестной таблице разделов - sda: unknown partition table. Просматриваю таблице разделов:
# fdisk -l /dev/sda

Код: Выделить всё

Disk /dev/sda: 524 MB, 524288000 bytes
189 heads, 61 sectors/track, 88 cylinders
Units = cylinders of 11529 * 512 = 5902848 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sda1   *           1          89      511968+   6  FAT16
Partition 1 has different physical/logical beginnings (non-Linux?):
     phys=(0, 1, 1) logical=(0, 1, 3)
Partition 1 has different physical/logical endings:
     phys=(63, 188, 61) logical=(88, 154, 54)

Вижу раздел в FAT16 и пытаюсь его подмонтировать:
# mount -t vfat /dev/sda1 /mnt

Код: Выделить всё

mount: Mounting /dev/sda1 on /mnt failed: No such device

Пытаюсь подмонтировать под другой файловой системой:
# mount -t usbfs /dev/sda1 /mnt
Монтирование происходит без ошибок, просматриваю раздел:

Код: Выделить всё

# ls -l /mnt
dr-xr-xr-x    2 root     root            0 Jan  1 00:00 001
-r--r--r--    1 root     root            0 Jan  1 03:38 devices
# ls -l /mnt/001/
-rw-r--r--    1 root     root           43 Jan  1 00:00 001
-rw-r--r--    1 root     root           57 Jan  1 03:38 008

Все бы хорошо, но на флешке система FAT и соответственно я не получаю доступа к информации.
Далее по SD/MMC:
К сожалению тут я совсем не понял как ее монтировать. Понятно что все так-же через mount, но какое устройство соответствует SD/MMC? Провобовал через устройсва /dev/sd*, /dev/mtr, но ответ всегда был один - нет устройства.

Приведу уточняющую информацию по системе:
uname -a

Код: Выделить всё

Linux (none) 2.6.8.1-crus2.0.2 #9 Wed Sep 6 14:19:44 EEST 2006 armv4tl unknown

ls -l /

Код: Выделить всё

-rw-------    1 root     root       135202 Aug 22  2006 Noise.wav
drwx------    2 root     root         1024 Aug 22  2006 bin
drwxr-xr-x    6 root     root         2048 Jan  1 00:00 dev
drwx------    3 root     root         1024 Aug 22  2006 etc
-rw-------    1 root     root       744626 Aug 22  2006 funky.mp3
drwx------    3 root     root         1024 Aug 22  2006 home
drwx------    3 root     root         2048 Aug 22  2006 lib
lrwxrwxrwx    1 root     root           11 Aug 22  2006 linuxrc -> bin/busybox
drwx------    2 root     root         1024 Aug 22  2006 media
drwxr-xr-x    2 root     root            0 Jan  1 00:00 mnt
dr-xr-xr-x   29 root     root            0 Jan  1 00:00 proc
drwx------    2 root     root         1024 Aug 22  2006 sbin
drwx------    2 root     root         1024 Aug 22  2006 sys
drwxrwxrwt    2 root     root         1024 Jul 24  2006 tmp
drwx------    5 root     root         1024 Aug 22  2006 usr
drwxr-xr-x    5 root     root         1024 Jul 24  2006 var

# ls -lR /lib/modules/2.6.8.1-crus2.0.2/kernel/drivers/

Код: Выделить всё

/lib/modules/2.6.8.1-crus2.0.2//kernel/drivers/:
drwx------    2 root     root         1024 Aug 22  2006 net
drwx------    2 root     root         1024 Aug 22  2006 scsi
drwx------    3 root     root         1024 Aug 22  2006 usb

/lib/modules/2.6.8.1-crus2.0.2//kernel/drivers/net:
-rw-------    1 root     root        37787 Aug 22  2006 p80211.ko
-rw-------    1 root     root        99860 Aug 22  2006 prism2_usb.ko

/lib/modules/2.6.8.1-crus2.0.2//kernel/drivers/scsi:
-rw-------    1 root     root        16262 Aug 22  2006 sd_mod.ko

/lib/modules/2.6.8.1-crus2.0.2//kernel/drivers/usb:
drwx------    2 root     root         1024 Aug 22  2006 storage

/lib/modules/2.6.8.1-crus2.0.2//kernel/drivers/usb/storage:
-rw-------    1 root     root       107672 Aug 22  2006 usb-storage.ko

По поводу USB у меня складывается впечатление что в ядре отсутствует поддержка vfat. Но к сожалению я не нашел где это можно было-бы уточнить.

Вопросы просты и банальны:
- я не правильно монтирую флешку или в ядре действительно отсутсвует поддержка vfat
- где бы я мог просмотреть файл описывающий опции ядра - что включено, что модулями и т.д.
- как мне подмонтировать карту SD/MMC?
Заранее признателен за любую помошь и наставление на "путь истинный".
P.S. Извиняюсь за большой объем, постарался отразить все важное.
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: ARM

Сообщение elide »

я не правильно монтирую флешку или в ядре действительно отсутсвует поддержка vfat
No such device - это не ошибка файловой системы, это ты неправильно устройство указываешь.
где бы я мог просмотреть файл описывающий опции ядра - что включено, что модулями
в 2.6.8 можно попытаться обнаружить файл /proc/config.gz
как мне подмонтировать карту SD/MMC
точно так же, как и любое другое блочное устройство.
самый интересный вопрос тут на самом деле в том, как заставить ядро опознать это устройство.
лично мне для этого потребовались sd_mod, sdhci и mmc_core. плюс небольшие игры с регистрами pci.
но тут все зависит от оборудования.
покажи lspci и lsusb.
слава роботам!
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: ARM

Сообщение IMB »

покажи lspci и lsusb

Код: Выделить всё

~ # lspci
-sh: lspci: not found
~ # lsusb
Bus 001 Device 001: ID 0000:0000

При вставленной флешке:

Код: Выделить всё

~ # lsusb
Bus 001 Device 002: ID 0ea0:2168 Ours Technology, Inc. Transcend JetFlash 2.0 / Astone USB Drive
Bus 001 Device 001: ID 0000:0000

в 2.6.8 можно попытаться обнаружить файл /proc/config.gz

Код: Выделить всё

~ # ls -F /proc
1/             5/             cpu/           kallsyms       stat
10/            58/            cpuinfo        kmsg           swaps
2/             59/            devices        loadavg        sys/
20/            6/             diskstats      locks          sysrq-trigger
23/            7/             driver/        meminfo        sysvipc/
3/             73/            execdomains    misc           tty/
39/            8/             filesystems    mounts@        uptime
4/             9/             fs/            net/           version
43/            buddyinfo      interrupts     partitions     vmstat
46/            bus/           iomem          self@
48/            cmdline        ioports        slabinfo

Увы. Хорошо обрезали для уменьшения объема.
No such device - это не ошибка файловой системы, это ты неправильно устройство указываешь.

Код: Выделить всё

~ # mount /dev/sda /mnt
mount: Mounting /dev/sda on /mnt failed: Invalid argument

На флешке наблюдается активность светодиода.

Код: Выделить всё

~ # mount /dev/sda1 /mnt
mount: Mounting /dev/sda1 on /mnt failed: No such device or address
~ # mount -t vfat /dev/sda /mnt
mount: Mounting /dev/sda on /mnt failed: No such device
~ # mount -t vfat /dev/sda1 /mnt
mount: Mounting /dev/sda1 on /mnt failed: No such device

Вот что говорит система о mount:

Код: Выделить всё

~ # mount --help
BusyBox v1.1.3 (2006.08.22-13:03+0000) multi-call binary

Usage: mount [flags] DEVICE NODE [-o options,more-options]

Mount a filesystem.  Filesystem autodetection requires /proc be mounted.

Flags:
        -a:             Mount all filesystems in fstab
        -o option:      One of many filesystem options, listed below
        -r:             Mount the filesystem read-only
        -t fs-type:     Specify the filesystem type
        -w:             Mount for reading and writing (default)

Options for use with the "-o" flag:
        async/sync:     Writes are asynchronous / synchronous
        atime/noatime:  Enable / disable updates to inode access times
        dev/nodev:      Allow use of special device files / disallow them
        exec/noexec:    Allow use of executable files / disallow them
        loop:            Ignored (loop devices are autodetected)
        suid/nosuid:    Allow set-user-id-root programs / disallow them
        remount:        Re-mount a mounted filesystem, changing its flags
        ro/rw:          Mount for read-only / read-write
        bind:           Bind a directory to an additional location
        move:           Relocate an existing mount point.

There are EVEN MORE flags that are specific to each filesystem
You'll have to see the written documentation for those filesystems

Я не совсем понимаю ситауцию. Fdisk выводит таблицу разделов на /dev/sda. При попытке монтирования /dev/sda - Invalid argument, но наблюдается активность - значит к устройству обращаются, /dev/sda1 - No such device or address, при указании опции -t vfat - No such device. В тоже время при указании -t usbfs все монтируется без вопросов.
Судя по /proc/filesystems поддержки vfat действительно нет:

Код: Выделить всё

~ # cat /proc/filesystems
nodev   rootfs
nodev   bdev
nodev   proc
nodev   sockfs
nodev   usbfs
nodev   usbdevfs
nodev   futexfs
nodev   tmpfs
nodev   pipefs
nodev   eventpollfs
nodev   devpts
        ext3
        ext2
nodev   ramfs
nodev   nfs
nodev   rpc_pipefs

Буду разбираться дальше с SD/MMC и ,похоже, компилировать ядро с поддержкой vfat. Хотя стоит подумать - а надо?
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: ARM

Сообщение elide »

В тоже время при указании -t usbfs все монтируется без вопросов
потому что usbfs - виртуальная файловая система. при ее монтровании первый параметр просто игнорируется. туда вполне можно вписать /dev/null или вообще любой набор букв. и все нормально смонтируется. только никакого отношения к флэшке это иметь не будет....
слава роботам!
Спасибо сказали:
x'ES
Сообщения: 8
ОС: FreeBSD, Debian

Re: ARM

Сообщение x'ES »

У меня та же проблема (http://linuxforum.ru/index.php?showtopic=29536).

Дело тут (по крайней мере в моем случае) исключительно в partiton table т.к.

На моем диске несколько разделов NTFS (это второй хард в системе), на диске с Linux (Debian) первый раздел NTFS с виндой, а все остальное под никсы.

Из лога загрузки видно, что первый диск системой опрделяется нормально - выписывает список разделов для диска (hda), а второй диск на этой же стадии говорит: unknown partition table (см. мой сабдж - там все подробно).

NTFS раздел на первом диске моунтится нормально, т.е. с поддержкой FS все ОК

No such device - это не ошибка файловой системы, это ты неправильно устройство указываешь.


Если заглянем в /dev/ то увидим, что там есть устройства hda, hda1, hda5, а вот для второго винта есть только hdc (hdc1, hdc5 и т.д. нет). fdisk hdc видит нормально.

Пробовал грузится с RTK 0.6.5 - та же фигня (ядро Linux 2.6.13.4)
С Frenzy 1.0 все нормально (ядро FreeBSD)


Исходя из результатов описанных тестов понятно, что дело в ядре. Только вот что именно не понятно (фича или бага).
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: ARM

Сообщение sash-kan »

(x'ES @ Dec 7 2006, в 01:25) писал(а):есть устройства hda, hda1, hda5, а вот для второго винта есть только hdc
ну, вообще-то, создать нужные файлики — обычно проблем не составляет.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
x'ES
Сообщения: 8
ОС: FreeBSD, Debian

Re: ARM

Сообщение x'ES »

(sash-kan) писал(а):ну, вообще-то, создать нужные файлики — обычно проблем не составляет

На сколько я понимаю архитектуру устройств в Linux (а так же межпроцессовых взаимодействий), файлик по мимо того что создан, должен еще быть "забиндин" тем приложением, который его хочет использовать на необходимый ему ресурс - в данном случае ядром.

Т.е. это уже искуственный интелект получится, если ядро будет угадывать, что созданный мой файлик должен быть "забиндин" на раздел диска или какую то сетевую карту.

А с VPN соединением вообще будет просто сказка - создал файлки /dev/pppoe и все ок (название может быть переврал, у меня во фряке это ng0).

Поправьте меня, если я не прав - в линуксе я недавно.

Что касается предположений по поводу ядра - нашел у себя старую версию RTK, которая работает на ядре 2.4.24 - все определилось нормально (проблема на 2.6.x)... ... подробнее я в своем топике отпишу.
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: ARM

Сообщение IMB »

Что-то тема расцвела вопросами/ответами.
Проблему с USB я решил пересборкой ядра. В изначальном отсутствовала поддержка FAT, VFAT.
самый интересный вопрос тут на самом деле в том, как заставить ядро опознать это устройство.
лично мне для этого потребовались sd_mod, sdhci и mmc_core. плюс небольшие игры с регистрами pci.
но тут все зависит от оборудования

Если не затруднит расскажите поподробнее. Я нашел документ описывающий работу с флешкой http://arm.cirrus.com/files/HOWTO/linux_1....File_System.txt, но там речь идет о JFFS2. А мне бы хотелось работать с VFAT - просто для примера и EXT2/3 - расположить там корневой раздел. Проще говоря хочется расположить систему на SD/MMC-карте, а не в RAM. Поэтому и возникает вопрос - какому /dev/? соответствует SD/MMC-карта и как заставить систему работать с ней. Пробовал монтировать на устройства /dev/mtd*, /dev/mtdblock* и /dev/mtdr*, но каждый раз получал ответ о отсутствии valid system. Fdisk -l на эти устройства выводил пустоту.
Спасибо сказали:
Аватара пользователя
arkhnchul
Сообщения: 2284
Статус: Толчковый инженер
ОС: Debian, Fedora

Re: ARM

Сообщение arkhnchul »

/dev/? соответствует SD/MMC-карта и как заставить систему работать с ней.

1. наскока знаю, SD/MMC тоже в ядре подключать надо.
2. dmesg. если он не выдал чего куда к чему приписано - зничит ничего не нашлось...
Losing is fun!
Спасибо сказали:
Vishay
Сообщения: 12

Re: ARM

Сообщение Vishay »

Приму в дар отладочную плату CS-EP9301 для ARM920T-микроконтроллеров. С предложениями обращаться на e-mail a1018@aport2000.ru ( г. Москва ).
Спасибо сказали: