Технический форум по робототехнике.
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
Влезает
![Smile :)](http://roboforum.ru/images/smilies/smile.gif)
, просто разбираюсь как камеру прикрутить свою. вот удивляют некоторые строки конфига...
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