Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CS-EP9301 и Linux
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
/dev/null
Приветствую!
Имеется плата CS-EP9301 (производство Olimex, чип CirrusLogic) с предустановленным 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 и соответственно я не получаю доступа к информации.
По поводу usbfs мне уже объяснили что usbfs - виртуальная файловая система, при ее монтровании первый параметр просто игнорируется. Туда вполне можно вписать /dev/null или вообще любой набор букв и все нормально смонтируется. Только никакого отношения к флэшке это иметь не будет.
Глядя на следующее складывается впечатление что в ядре отсутствут поддержка 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

Приведу еще данные которые я получил при различных опциях монтирования:
Код
# 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

Т.е. я несколько не понимаю полученной зависимости. Почему при /dev/sda - Invalid argument, но есть активность, а при -t vfat /dev/sda - No such device.

Далее по 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


Вопросы просты и банальны:
- я не правильно монтирую флешку или в ядре действительно отсутсвует поддержка vfat
- где бы я мог просмотреть файл описывающий опции ядра - что включено, что модулями и т.д.
- как мне подмонтировать карту SD/MMC, точнее сказать какое блочное устройство соответствует карте SD/MMC?
Заранее признателен за любую помошь и наставление на "путь истинный".
P.S. Извиняюсь за большой объем, постарался отразить все важное.
Terminator
Не монтируется, потому что нет устройства /dev/sda1, а устройства нет, потому что ядро не увидело таблицу разделов.
Можно попробовать удалить разделы под линухом, потом отформатировать флешку под виндой.
aaarrr
Цитата(/dev/null @ Nov 17 2006, 14:17) *
- я не правильно монтирую флешку или в ядре действительно отсутсвует поддержка vfat

Отсутствует поддержка vfat. Ядро придется пересобрать.

Цитата(/dev/null @ Nov 17 2006, 14:17) *
- как мне подмонтировать карту SD/MMC, точнее сказать какое блочное устройство соответствует карте SD/MMC?

Боюсь, что никак. Похоже, что ребята из olimex'а решили специально не заморачиваться, и просто взяли Линукс от EDB9301, где SD-карта отсутствует.

Впрочем, я могу ошибаться.

P.S. А с объемом вопроса все в порядке - а то иногда бывает трудно понять, считает человек задающий вопрос тебя телепатом, или ему просто лень самому вникнуть в проблему smile.gif
Terminator
Про vfat ошибок небыло. Так что возможно поддержка vfat всёже есть.
/dev/null посмотри в каталог /dev, там вообще sda1 есть?
Если нет попробуй создать
mknod /dev/sda1 b 8 1
/dev/null
Цитата(Terminator @ Nov 20 2006, 07:21) *
Про vfat ошибок небыло. Так что возможно поддержка vfat всёже есть.
/dev/null посмотри в каталог /dev, там вообще sda1 есть?
Если нет попробуй создать
mknod /dev/sda1 b 8 1

Код
~ # ls -l /dev/sda1                                                            
brw-rw----    1 root     root       8,   1 Jul 24  2006 /dev/sda1

Спасибо за советы. Ядро все равно придется пересобирать под свои цели.
Если не затруднит, может подскажите ссылки по данной цели. Я уже нашел несколько, в том числе и на этом сайте, но хочется расширить список.
Конечной целью является дистрибьютив linux-а расположенный на SD-карте. Особенно интересно как это сделать. Если подскажите где посмотреть буду очень признателен.
Спасибо.
/dev/null
Цитата
посмотри в каталог /dev, там вообще sda1 есть?
Если нет попробуй создать
mknod /dev/sda1 b 8 1

Код
~ # ls -l /dev/sda1                                                            
brw-rw----    1 root     root       8,   1 Jul 24  2006 /dev/sda1

Попробовал подсоединил по USB камеру:
Код
~ # usb 1-3: new full speed USB device using address 2                          
usb-storage: probe of 1-3:1.0 failed with error -1
~ # lsusb -v                                                                                                                                              
Bus 001 Device 002: ID 132b:0017 Konica Minolta Dimage Z3 Camera                
Device Descriptor:                                                              
  bLength                18                                                    
  bDescriptorType         1                                                    
  bcdUSB               1.10                                                    
  bDeviceClass            0 (Defined at Interface level)                        
  bDeviceSubClass         0                                                    
  bDeviceProtocol         0                                                    
  bMaxPacketSize0         8                                                    
  idVendor           0x132b Konica Minolta                                      
  idProduct          0x0017 Dimage Z3 Camera                                    
  bcdDevice            0.01                                                    
  iManufacturer           1 KONICA MINOLTA                                      
  iProduct                2 DiMAGE Z3                                          
  iSerial                 0                                                    
  bNumConfigurations      1                                                    
  Configuration Descriptor:                                                    
    bLength                 9                                                  
    bDescriptorType         2                                                  
    wTotalLength           32                                                  
    bNumInterfaces          1                                                  
    bConfigurationValue     1                                                  
    iConfiguration          0                                                  
    bmAttributes         0xc0                                                  
      Self Powered                                                              
    MaxPower                0mA                                                
    Interface Descriptor:                                                      
      bLength                 9                                                
      bDescriptorType         4                                                
      bInterfaceNumber        0                                                
      bAlternateSetting       0                                                
      bNumEndpoints           2                                                
      bInterfaceClass         8 Mass Storage                                    
      bInterfaceSubClass      6 SCSI                                            
      bInterfaceProtocol     80 Bulk (Zip)                                      
      iInterface              0                                                
      Endpoint Descriptor:                                                      
        bLength                 7                                              
        bDescriptorType         5                                              
        bEndpointAddress     0x01  EP 1 OUT                                    
        bmAttributes            2                                              
          Transfer Type            Bulk                                        
          Synch Type               None                                        
          Usage Type               Data                                        
        wMaxPacketSize     0x0040  1x 64 bytes                                  
        bInterval               0                                              
      Endpoint Descriptor:                                                      
        bLength                 7                                              
        bDescriptorType         5                                              
        bEndpointAddress     0x84  EP 4 IN                                      
        bmAttributes            2                                              
          Transfer Type            Bulk            
         Synch Type               None                                        
          Usage Type               Data                                        
        wMaxPacketSize     0x0040  1x 64 bytes                                  
        bInterval               0                                              
Device Status:     0x0001                                                      
  Self Powered  
~ # lsusb
Bus 001 Device 002: ID 132b:0017 Konica Minolta Dimage Z3 Camera
Bus 001 Device 001: ID 0000:0000


Спасибо за советы. Ядро все равно придется пересобирать под свои цели.
Если не затруднит, может подскажите ссылки по данной цели. Я уже нашел несколько, в том числе и на этом сайте, но хочется расширить список.
Конечной целью является дистрибьютив linux-а расположенный на SD-карте. Особенно интересно как это сделать. Если подскажите где посмотреть буду очень признателен.
Спасибо.
aaarrr
Цитата(Terminator @ Nov 20 2006, 07:21) *
Про vfat ошибок небыло.

А их и не будет. Если вместо vfat написать любой бред, mount все равно ответит: No such device.

Цитата(/dev/null @ Nov 20 2006, 21:23) *
Конечной целью является дистрибьютив linux-а расположенный на SD-карте.

Не совсем понятно, что скрывается за словом "дистрибутив"?
Но, в любом случае, скорость работы SD-карты будет на уровне 350 Кбайт/с sad.gif
Я даже одно время думал из-за этого ставить внешний контроллер SD на USB, но в природе они почти не встречаются.
/dev/null
Цитата
Не совсем понятно, что скрывается за словом "дистрибутив"?

Пожалуй я совсем не полностью раскрыл мысль. Хочется чтобы ядро грузилось из ROM и подхватывало все остальное с SD. Соответственно под разные задачи можно было бы карту наполнить разным содержимым да и изменные конфиги сохранялись бы не только в текущем сеансе работы.
/dev/null
Приветствую!
С поддержкой vfat при монтирование USB я разобрался пересборкой ядра. Остался только вопрос по SD/MMC. Из общения с CirrusLogic и Olimex я понял что стандартное ядро, по умолчанию, не поддерживает SD/MMC-карты. К сожалению ни у Olimex-а ни у Cirrus-а я не смог найти патч для ядра включающий данную поддержку.
Вот уже некоторое время рою Internet в поисках данного патча. Люди добрые, если кто нибудь имеет или знает где взять патч ядра для включения поддержки SD/MMC-карт не откажите в любезности - сообщите.
Заранее спасибо.
aaarrr
Цитата(/dev/null @ Dec 17 2006, 17:31) *
Люди добрые, если кто нибудь имеет или знает где взять патч ядра для включения поддержки SD/MMC-карт не откажите в любезности - сообщите.

Нет пока такого патча на просторах интернета sad.gif
Можно разве что подождать, пока оным разродится Olimex - но это вряд ли случится, а уж Cirrus не станет этим заниматься почти наверняка.

У меня есть в планах написание этого драйвера, но раньше весны руки не дойдут.
/dev/null
Цитата(aaarrr @ Dec 17 2006, 18:18) *
Цитата(/dev/null @ Dec 17 2006, 17:31) *

Люди добрые, если кто нибудь имеет или знает где взять патч ядра для включения поддержки SD/MMC-карт не откажите в любезности - сообщите.

Нет пока такого патча на просторах интернета sad.gif
Можно разве что подождать, пока оным разродится Olimex - но это вряд ли случится, а уж Cirrus не станет этим заниматься почти наверняка.
У меня есть в планах написание этого драйвера, но раньше весны руки не дойдут.

Ну а если попробовать пойти от обратного. На сайте Cirrus есть патч для внесения ep93xx в ядро 2.6.8. Я так понимаю наложить его на другое ядро не получиться. Возможно ли последовательной накладкой патчей пройти от 2.6.8 до 2.6.18? Ибо в 2.6.18 поддержка SD/MMC уже есть. И заработает ли потом это ядро (2.6.18) в Linux 2.0.8 от Cirrus? Или может кто знает - в каком ядре, в промежутке 2.6.8-18, впервые появилась поддержка SD/MMC?
sff
Цитата(/dev/null @ Dec 18 2006, 10:54) *
Ну а если попробовать пойти от обратного. На сайте Cirrus есть патч для внесения ep93xx в ядро 2.6.8. Я так понимаю наложить его на другое ядро не получиться. Возможно ли последовательной накладкой патчей пройти от 2.6.8 до 2.6.18? Ибо в 2.6.18 поддержка SD/MMC уже есть. И заработает ли потом это ядро (2.6.18) в Linux 2.0.8 от Cirrus? Или может кто знает - в каком ядре, в промежутке 2.6.8-18, впервые появилась поддержка SD/MMC?


Здесь не совсем так просто. В ядре реализован HOST контроллер SD. Он формирует лишь пакеты в стоответствие со стандартом. Кроме этого необходима реализация транспортного уровня, тоесть как это дело будет передаваться по 4 проводам SD, по одному в режиме SD/MMC, или вообще в режиме SPI. Вот как раз и нужно реализовать передачу нижнего уровня по SPI, так как ничего кроме него у EP93xx нет.

Вот этот драйвер написать и нужно.

PS. Когда я лазил по arm.cirrus.com было достаточно много вопросов по теме, но специалисты со статусом MVP как то отвертывались от прямого ответа.
/dev/null
Спасибо всем ответившим. Сам я, к сожалению, как программист полный ноль. Посему хоть и понял проблему, но к сожалению ничем помочь не могу. Посему буду ждать доброго и умного человека, который написал бы этот патч.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.