Технический форум по робототехнике.
		
	
		 
	
		
			
			
				
				 setar » 24 фев 2011, 11:19 
			
			
	
			setar писал(а):назовите хотя бы одну причину "зачем" ?
 
			
	 
	
	
		
			
			
				
				 alien » 24 фев 2011, 20:26 
			
			
	
			Просто для себя. Чтобы лучше разбираться в ядре.
			
	 
	
	
		
			
			
				
				 setar » 25 фев 2011, 18:51 
			
			
	
			да, достойно.
начните с создания ветки репозитария от чехов, так правильнее - чтобы не делать двойную работу.
это будет полезно по крайней мере с точки зрения опыта по правильному ведению репозитария проекта.
Добавлено спустя 36 секунд:
могу даже доступ предоставить для ведения оного
			
	 
	
	
		
			
			
				
				 alien » 26 фев 2011, 17:39 
			
			
	
			Да я вот хочу на github'е попробовать поднять. Он благо удобен для юзания)
			
	 
	
	
		
			
			
				
				 Aseris » 03 мар 2011, 02:45 
			
			
	
			Кто нить знает где найти инфу по полям конфига ядра?
например 
 зачем в конфиге идет куча полей CONFIG_MEDIA_TUNER...=Y?
Добавлено спустя 2 минуты 53 секунды:
Вроде бы фм тюнера на плате нет. и в комплекте не идет..
			
	 
	
	
		
			
			
				
				 setar » 03 мар 2011, 03:01 
			
			
	
			какого ядра? если кернел орг, то у них на сайте.
без медиа тюнера не будет камера работать
			
	 
	
	
		
			
			
				
				 Aseris » 03 мар 2011, 03:08 
			
			
	
			Смотрю конфиги что ты прикрепил а 1 сообщении
камера насколько я по дровам полазал хочет 
CONFIG_MEDIA_SUPPORT=y
CONFIG_VIDEO_MEDIA=y
CONFIG_S3C2440_CAMERA=y
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L2_COMMON=y
CONFIG_VIDEO_V4L1_COMPAT=y
CONFIG_VIDEO_V4L2=y   
CONFIG_VIDEO_CAPTURE_DRIVERS=y
может это еще CONFIG_MEDIA_TUNER_SIMPLE=y 
но все тюнеры что там идут это аудио фм тюнеры,
а зачем нам ворох ФМ тюнеров тащиь?
CONFIG_MEDIA_TUNER_TDA8290=y
CONFIG_MEDIA_TUNER_TDA9887=y
CONFIG_MEDIA_TUNER_TEA5761=y
CONFIG_MEDIA_TUNER_TEA5767=y
CONFIG_MEDIA_TUNER_MT20XX=y
CONFIG_MEDIA_TUNER_XC2028=y
CONFIG_MEDIA_TUNER_XC5000=y
CONFIG_MEDIA_TUNER_MC44S803=y
или народ по завязывал дрова один на другой? было бы как то грустно в таком случае...
Добавлено спустя 54 секунды:конфиг config_mini2440_t35
 
			
	 
	
	
		
			
			
				
				 setar » 03 мар 2011, 10:53 
			
			
	
			это пришло по наследству от родного конфига ядра
я просто не стал их исключать поскольку не уврен в том что они 100% не нужны
а в чем собственно проблема ?
ядро не влезает ?? 
 быстрее оно не станет ...
 
			
	 
	
	
		
			
			
				
				 Aseris » 03 мар 2011, 12:43 
			
			
	
			Влезает 

, просто разбираюсь как камеру прикрутить свою. вот удивляют некоторые строки конфига...
 
			
	 
	
	
		
			
			
				
				 alien » 03 мар 2011, 17:46 
			
			
	
			быстрее оно не станет ...
Хммм почему?
Ведь драйверы регистрируются когда они включены в ядро. Следовательно есть список. И по нему при работе ядра иногда происходит какая либо работа. Следовательно тратится пямять да и время на пробегание по этому списку.
Или я неправ??
 
			
	 
	
	
		
			
			
				
				 Aseris » 04 мар 2011, 16:22 
			
			
	
			Если не путаю ОС, то драйвер в линуксе это просто унификация интерфейса к устройству, если на него не посажен демон который с ним общается и его обслуживает то он просто "валяется" в ядре либо модулем в rootfs
			
	 
	
	
		
			
			
				
				 setar » 04 мар 2011, 16:33 
			
			
	
			абсолютно верно
модуль внешний или вкомпиленный  в ядро это обработчик потока запросов которые приходят либо через ноду устройства /dev/*
либо сокет (внутренний по ядру, внешний файловый или сетевой) 
если запросов на сокете нету, то и модуль не потребляет ресурсов.
если например /dev/tun никто не дергает, то и скорость не падает
			
	 
	
	
		
			
			
				
				 alien » 07 мар 2011, 16:52 
			
			
	
			В новом ядре почемуто не работает звук.
Попытался разобраться сам но что-то не выходит.
- Код: Выделить всё • Развернуть
 static struct platform_driver s3c24xx_uda134x_driver = {
   .probe  = s3c24xx_uda134x_probe,
   .remove = s3c24xx_uda134x_remove,
   .driver = {
      .name = "s3c24xx_uda134x",
      .owner = THIS_MODULE,
   },
};
static int __init s3c24xx_uda134x_init(void)
{
   return platform_driver_register(&s3c24xx_uda134x_driver);
}
Тут все ок s3c24xx_uda134x_probe вызывается. Птому собственно доходит до snd_soc_instantiate_card(который в linux-2.6\sound\soс\soc-core.c)
А вот в нем доходит до сюда
- Код: Выделить всё • Развернуть
 for (i = 0; i < card->num_links; i++)
      soc_bind_dai_link(card, i);
- Код: Выделить всё • Развернуть
 //soc_bind_dai_link
....
find_platform:
   /* do we already have the CODEC DAI for this link ? */
   if (rtd->platform) {
      goto out;
   }
   /* no, then find CPU DAI from registered DAIs*/
   list_for_each_entry(platform, &platform_list, list) {
      if (!strcmp(platform->name, dai_link->platform_name)) {
         rtd->platform = platform;
         goto out;
      }
   }
...
А вот и проблема. platform_list пуст. начал искать как заполняется. нашел файл linux-2.6\sound\soc\samsung\dma.c там
- Код: Выделить всё • Развернуть
 .....
static int __devinit samsung_asoc_platform_probe(struct platform_device *pdev)
{
//В эту функцию уже незаходит.
   return snd_soc_register_platform(&pdev->dev, &samsung_asoc_platform);
}
static int __devexit samsung_asoc_platform_remove(struct platform_device *pdev)
{
   snd_soc_unregister_platform(&pdev->dev);
   return 0;
}
static struct platform_driver asoc_dma_driver = {
   .driver = {
      .name = "samsung-audio",
      .owner = THIS_MODULE,
   },
   .probe = samsung_asoc_platform_probe,
   .remove = __devexit_p(samsung_asoc_platform_remove),
};
static int __init samsung_asoc_init(void)
{
//А вот эта выполняется
   return platform_driver_register(&asoc_dma_driver);
}
module_init(samsung_asoc_init);
....
Куда мне копать?
 
			
	 
	
	
		
			
			
				
				 setar » 09 мар 2011, 11:25 
			
			
	
			думаю здесь на форуме - никто не подскажет ...
			
	 
	
	
		
			
			
				
				 Resident » 09 мар 2011, 18:46 
			
			
	
			Возникла необходимость перебросить консольный вывод/общалку с убутом и т.д. с нулевого УАРТа на первый (ну или второй, не суть важно).
Возник вопрос для знатоков линукса: Можно узнать ВСЕ места в ядре/убуте/ФС где необходимо изменить 0 на 1 дабы осуществить задуманное?
Или это впринципе невозможно?
ЗЫ Стоит linux kernel 2.6.32.2 + busybox