Золотые страницы форума GP2X Community
Новостной форум посвященный консолям GP2X
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   СудокуСудоку    Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Wiz глазами линуксоида: 2. Неоткрытая страна.

 
Начать новую тему   Ответить на тему    Список форумов GP2X Community -> Статьи сайта
Предыдущая тема :: Следующая тема  
Автор Сообщение
EugeneP

Местный



Возраст: 43
Зарегистрирован: 04.06.2009
Сообщения: 170

Группы: 
[Модераторы Модераторы ]


СообщениеДобавлено: Чт Июн 11, 2009 10:21 pm    Заголовок сообщения: Wiz глазами линуксоида: 2. Неоткрытая страна. Ответить с цитатой

Wiz глазами линуксоида: 2. Неоткрытая страна.

В ответах на первую статью было выказано мнение народа и администрации о необходимости сосредоточится на животрепещущем вопросе локализации и драйверов.
Автор принял авторитетное мнение к сведению и решил кратенько освятить все интересные ему темы в одной статье, а следующую посвятить локализации. Говорить же о драйверах модулях без исходников... Sad можно только констатировать их наличие и погадать о назначении по их названиям и занятым ресурсам.

Сегодняшние темы:
1) содержимое /proc и /proc/sys (матчасть здесь)
2) усовершенствованный скрипт архивации корневой ФС (потребуется потом для локализации)
3) Wiz как внешнее устройство (банальный lsusb)


Последний раз редактировалось: EugeneP (Ср Июн 17, 2009 6:54 pm), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профильEugeneP сейчас оффлайн  Отправить личное сообщение
EugeneP

Местный



Возраст: 43
Зарегистрирован: 04.06.2009
Сообщения: 170

Группы: 
[Модераторы Модераторы ]


СообщениеДобавлено: Чт Июн 11, 2009 10:38 pm    Заголовок сообщения: Re: Wiz глазами линуксоида: 2. Неоткрытая страна. Ответить с цитатой

1) АНАЛИЗ proc
Выполним скрипт который считает содержимое всех интересных файлов в /proc, скрипт исполняется порядка 30 секунд.
Результатом будут файлы proc.txt и proc_sys.txt в текущей папке.
Код:
#!/bin/sh
LOG="$(pwd)/proc.txt"
:>$LOG
for f in $(ls -F /proc | grep '[^/@*]$'); do.
    if [ "$f" != "kmsg" ]; then
        echo -e "\n\n-----------------$f\n" >> $LOG
   cat /proc/$f >>$LOG
    fi
done;
LOG="$(pwd)/proc_sys.txt"
:>$LOG
for i in $(find /proc/sys -type f -name '*'); do.
    echo -e "$i\n$(cat $i)" >>$LOG
 done;
cd /usr/gp2x
exec ./gp2xmenu


Разбираем то, что сразу режет глаз:
(proc.txt)
-----------------cmdline
mem=42M root=ubi0:rootfs rootfstype=ubifs ubi.mtd=d1,2048 console=ttySAC0,115200n81


Это параметры переданные ядру загрузчиком. Доступная оператива ограничена 42 метрами. Обещали же 64! Возможно 22M заюзано под биос или 3D, но не многовато ли?

------------------meminfo
MemTotal: 39864 kB
MemFree: 18224 kB
Buffers: 108 kB
Cached: 16640 kB
SwapCached: 0 kB
Active: 3868 kB
Inactive: 13584 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 20 kB
Writeback: 0 kB
AnonPages: 716 kB
Mapped: 904 kB
Slab: 1860 kB
SReclaimable: 776 kB
SUnreclaim: 1084 kB
PageTables: 80 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 19932 kB
Committed_AS: 2072 kB
VmallocTotal: 475136 kB
VmallocUsed: 1944 kB
VmallocChunk: 473188 kB


Ну точняк, не хватает 20-и с лихом метров. Обратим внимание: максимум на что может рассчитывать юзерское приложение это MemFree+Buffers+Cached, т.е менне 34 метров (ядру тоже надо работать).
Кроме того, если ООООЧЕНЬ прижмёт - можно сделать себе свап на SD, почему нет?

-----------------modules
rtc_pollux_m41t80 7408 0 - Live 0xbf005000
rtc_core 14840 1 rtc_pollux_m41t80, Live 0xbf000000


Загружено только два модуля. Гугль глаголет что это "часы реального времени с последовательным интерфейсом ( Serial RTC )"

-----------------version
Linux version 2.6.24 (bnjang@gp2xdev) (gcc version 4.0.2) #652 Fri May 8 10:56:42 KST 2009


Ядро версии 2.6.24, собрано сями 4.0.2, ну... ядро современное, я ожидал 2.4. Ясно теперь почему пол-памяти скушано Smile Зато когда появится переходничёк мы сможем весьма много понаподключать через usb.

Список экспортируемых имён в kallsyms... по нему, в принципе, можно понять что статически закомпилёвано в ядро, но у нас не так много времени, чтобы заниматься этим без особой необходимости.

(proc_sys.txt)
Ничего примечательного. В наличии полноценная поддержка tcp/ipv4, осталось только сетевуху подключить.

Скрипт и логи с моего Виза доступны здесь: WbEoL-02.tar.gz

2) АРХИВИРУЕМ КОРНЕВУЮ ФС
Для дальнейших опытов неплохо бы позаменять системные файлы. Но перед этим нам надо забэкапится на всякий случай. Тема бэкапка начата на GBX, здесь я представляю слегка усовершенствованную версию того же скрипта. Качаем, смотрим, README внутри.

Замечание: Т.к. "прошивка" устройства подобного Визу состоит из ядра (или "загрузчика") и корневой ФС (ну и юзерского хламовника), то любая запись в корневую ФС фактически приравнивается к "перепрошивке". На мобильниках системная ФС обычно заныкана, но на Визие она доступна любому приложению на запись - делай что хочу. Спецэффектом подобных "что хочу" (а ими мы займёмся в следующей статье) может стать последующее некорректное обновление официальными патчами и просто смерть устройства. Дабы избежать подобной участи следует обязательно позаботится об обратимости любых манипуляций.

дамподелалка: dump-wiz-0.85.tar.gz

3) Посмотрим как Виз распознаётся компьютером через прилагаемый USB-шнурок
Комп без USB девайсов (это логи с моего ноута а не с Виза):
Код:
eug-note ~ # lsusb
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Виз подключен (задаёт вопрос расшаривать ли карту):
Код:
eug-note ~ # lsusb
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Карта расшарена:
Код:
eug-note ~ # lsusb
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 023: ID 0525:a4a5 Netchip Technology, Inc. Linux-USB File Storage Gadget
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Внутренняя память расшарена:
Код:
eug-note ~ # lsusb
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 023: ID 0525:a4a5 Netchip Technology, Inc. Linux-USB File Storage Gadget
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


В HOST режиме никаких изменений. Не тот шнурок, не тот Sad

Конец глупых экспериментов на сегодня.
Наш реальный улов: Сведения об ограничении оперативы. Маловато; пора переходить к программированию.

PS
в прошивку входят ещё несколько ядрёных модулей, драйверов бишь:
$ find . -name '*.ko'
./lib/modules/2.6.24/kernel/drivers/rtc/rtc-pollux_m41t80.ko
./lib/modules/2.6.24/kernel/drivers/rtc/rtc-core.ko
./lib/modules/2.6.24/kernel/drivers/usb/gadget/g_file_storage.ko
./lib/modules/2.6.24/kernel/drivers/usb/gadget/lf1000_udc.ko

Но что это за девайсы автору уже до лампады... спаааать.......

to be continued...
Вернуться к началу
Посмотреть профильEugeneP сейчас оффлайн  Отправить личное сообщение
payta

Новичок



Возраст: 39
Зарегистрирован: 11.06.2009
Сообщения: 2

Группы: Нет

СообщениеДобавлено: Чт Июл 02, 2009 8:02 pm    Заголовок сообщения: Ответить с цитатой

Жаль, что шнурок только для обмена данными и очень специфичный разьем, что печально тем, что даже для распайки нужны достаточно специфичные компоненты и распиновка пока неизветна. Но из разобранного хорошо становятся ясны перспективы девайса.
Как вы сами лично думаете - будет ли в конце концов какая нибудь оптимизация ядра под данное устройство (читай удаление лишних библиотек, процессов, оптимизация кода)?
Что бы Вы могли посоветовать почитать мне, чтобы в перспективе перейти к разработке каких либо приложений. С линуксом знаком на пользовательском уровне (на работе ковыряю парочку серваков FreeBSD, Ubuntu ), занимаюсь веб-разработкой немного.
Вернуться к началу
Посмотреть профильpayta сейчас оффлайн  Отправить личное сообщение
EugeneP

Местный



Возраст: 43
Зарегистрирован: 04.06.2009
Сообщения: 170

Группы: 
[Модераторы Модераторы ]


СообщениеДобавлено: Вт Июл 07, 2009 11:21 am    Заголовок сообщения: Ответить с цитатой

payta
Цитата:
будет ли в конце концов какая нибудь оптимизация ядра под данное устройство (читай удаление лишних библиотек, процессов, оптимизация кода)?

Ядро под ARM вполне оптимизировано. Конкретное ядро из визовской прошивки, я б сказал, слишком оптимизировано. (Линукс с поддержкой только FAT - до сихпор плакаю...)

Цитата:
Что бы Вы могли посоветовать почитать мне, чтобы в перспективе перейти к разработке каких либо приложений.


Начинать можете прямо сейчас с Феникса, он кроссплатформенный http://fenixdocs.com

Если есть желание покомпилять бинарники, то следует использовать C/C++/SDL, Поставте в убунту build-essential и sdl-*-dev пакеты, потом пробуйте пописть SDL-ные проги под линукс.(в помощь: http://www.libsdl.org/tutorials.php) Когда станет получаться, то можно скачать openwiz toolchain и пробовать портировать на wiz. Можно подождать офф. SDK - он будет менее проблемен (наверно Cool )

Рекомендую такой порядок т.к. на каждом этапе свои трудности и лучше их преодолевать последовательно.

Как IDE многие рекомендуют Code::Blocks, меня он устроил даже больше чем NetBeans.

Все учебники от старых поколений консоли вполне применимы к визу.
http://wiki.gp2x.org/wiki/Development_Tutorials
Вернуться к началу
Посмотреть профильEugeneP сейчас оффлайн  Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов GP2X Community -> Статьи сайта Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы




Powered by phpBB © 2001, 2005 phpBB Group

Locations of visitors to this page