реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> buildroot static vs udev
Drozd2
сообщение Sep 3 2012, 12:04
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 97
Регистрация: 19-11-09
Пользователь №: 53 743



Задача связана с ОС на контроллере. Пробовал разные, проблема везде одна и та же. С некоторых пор buildroot предлагает на выбор либо статические узлы устройств, либо udev. Есть ещё два варианта, но они не интересуют. При выборе udev в системе появляется libudev. Очень удобная библиотека для программного определения момента включения флешки. Все работало очень здорово, пока не подключили USB FLASH 32 Gb, разбитую на два устройства. Одно CD ROM, второе, соответственно, сам накопитель. Система вылетела в kernel panic. Попробовал выбрать статические узлы. Подключение всех внешних устройств стало обрабатываться нормально, но, соответственно, ушла libudev. Регламентировать заказчику конкретные накопители не здорово.
Теперь два вопроса. Нужен ответ хотя бы на один.
Кто с таким сталкивался и как победил?
Как без libudev отлавливать момент подключения флешки.
Go to the top of the page
 
+Quote Post
kurtis
сообщение Sep 3 2012, 12:23
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205



Цитата
Как без libudev отлавливать момент подключения флешки.

Взять исходники и посмотреть как там это сделано. Подозреваю что через netlink sockets

Цитата
USB FLASH 32 Gb, разбитую на два устройства. Одно CD ROM, второе, соответственно, сам накопитель

Это как? blink.gif

Цитата
Кто с таким сталкивался и как победил?

udev запускает скрипт, который должен монтировать разделы в правильные места, можно вместо этого скрипта, запускать что-то свое. Сначала нужно посмотреть что там такого делает udev что ядро падает, зачем или изменить скрипт, или написать свой.
Go to the top of the page
 
+Quote Post
Drozd2
сообщение Sep 4 2012, 15:59
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 97
Регистрация: 19-11-09
Пользователь №: 53 743



Цитата
Это как?

http://agnipulse.com/2011/08/remove-secure...lash-usb-drive/
Go to the top of the page
 
+Quote Post
sasamy
сообщение Sep 5 2012, 05:43
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(Drozd2 @ Sep 3 2012, 16:04) *
Задача связана с ОС на контроллере. Пробовал разные, проблема везде одна и та же.


Разные дистрибутивы Linux имеется ввиду, на PC с Linux тоже самое ? я с такими дисками не сталкивался, но составные устройства USB вполне наормально работают в Linux

Цитата
С некоторых пор buildroot предлагает на выбор либо статические узлы устройств, либо udev. Есть ещё два варианта, но они не интересуют.


напрасно - mdev на встраиваемых устройствах вполне замена для udev, подобия libudev правда нет но свои скрипты/програмы при хотплаге нужных устройств вполне позволяет исполнять , например /etc/mdev.conf

sd[a-z][1-9] 0:0 660 @/usr/local/bin/auto_update

Цитата
@ Run after creating the device.
$ Run before removing the device.
* Run both after creating and before removing the device.


http://git.busybox.net/busybox/plain/docs/mdev.txt

Цитата
два устройства. Одно CD ROM, второе, соответственно, сам накопитель. Система вылетела в kernel panic. Попробовал выбрать статические узлы. Подключение всех внешних устройств стало обрабатываться нормально, но, соответственно, ушла libudev.


в ядре включена поддержка SCSI CDROM support, SCSI generic support - как CD-ROM определяется в системе - лог dmesg можно посмотреть после подключения устройства со статическими файлами устройств (когда система не падает) ?

Сообщение отредактировал sasamy - Sep 5 2012, 06:12
Go to the top of the page
 
+Quote Post
Drozd2
сообщение Sep 5 2012, 13:06
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 97
Регистрация: 19-11-09
Пользователь №: 53 743



Под разными подразумевал и процессоры (AT91, OMAP), и ядра linux, и buildroot-ы. На PC в Slackware 13.37 flash отрабатывается без проблем.
Экспериментирую с родной атмеловской at91sam9g20-ek.

Поддержка SCSI CDROM и SCSI generic включены. Отдельный USB CD-ROM работает во всех случаях. И читает, и пишет. И если бы он не был нужен, я бы просто отключил поддержку CD-ROM. В этом случае проблема тоже отпадает. Загвоздка именно с составным устройством.

Вот отклики системы при static dev:
Код
Welcome to Buildroot                                                                                                                                    
buildroot login: root                                                                                                                                    
# usb 1-1: new full speed USB device number 2 using at91_ohci                                                                                            
scsi0 : usb-storage 1-1:1.0                                                                                                                              
scsi 0:0:0:0: Direct-Access     JetFlash Transcend 32GB   8.01 PQ: 0 ANSI: 2                                                                            
sd 0:0:0:0: Attached scsi generic sg0 type 0                                                                                                            
scsi 0:0:0:1: CD-ROM            Generic  AutoRun Disk     8.00 PQ: 0 ANSI: 2                                                                            
sd 0:0:0:0: [sda] 62728180 512-byte logical blocks: (32.1 GB/29.9 GiB)                                                                                  
sd 0:0:0:0: [sda] Write Protect is off                                                                                                                  
sd 0:0:0:0: [sda] Assuming drive cache: write through                                                                                                    
sr0: scsi3-mmc drive: 52x/52x cd/rw xa/form2 tray                                                                                                        
cdrom: Uniform CD-ROM driver Revision: 3.20                                                                                                              
sr 0:0:0:1: Attached scsi generic sg1 type 5                                                                                                            
sd 0:0:0:0: [sda] Assuming drive cache: write through                                                                                                    
sda: sda1                                                                                                                                              
sd 0:0:0:0: [sda] Assuming drive cache: write through                                                                                                    
sd 0:0:0:0: [sda] Attached SCSI removable disk                                                                                                          
                                                                                                                                                        
# mount /dev/sr0 /mnt/sr                                                                                                                                
# mount /dev/sda1 /mnt/sd                                                                                                                                
# ls /mnt/sr                                                                                                                                            
language      manual        securedr.exe                                                                                                                
# ls /mnt/sd                                                                                                                                            
##############               garnome-2.24.0.tar.bz2                                                                                                      
366497_RUS_i386_zip.exe      jedit-4.5.2-noarch-1sao.tgz                                                                                                
????                         sam-ba_2.12.zip                                                                                                            
Music                        temp                                                                                                                        
WMPInfo.xml                  toolchain                                                                                                                  
dbus                                                                                                                                                    
#

Подключил, примонтировал оба, оба прочитал.

При dynamic dev само подключение отрабатывается тоже нормально, а при попытке монтирования любого из двух выводится куча строк, затем даже не kernel panic, а просто ситема виснет. heartbeat гаснет.

А вот насчет mdev идея понравилась. Спасибо. Я остановился в развитии на mdev -s, поэтому и не рассматривал. Попробую в этом направлении.


Go to the top of the page
 
+Quote Post
Drozd2
сообщение Sep 11 2012, 14:34
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 97
Регистрация: 19-11-09
Пользователь №: 53 743



В итоге остановился на последнем нерассмотренном варианте buildroot-а devtmpfs. От mdev взял кусок исходника. Задача решена. Большое спасибо, sasamy.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th June 2025 - 17:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.01437 секунд с 7
ELECTRONIX ©2004-2016