|
GP2X Community Новостной форум посвященный консолям GP2X
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
EugeneP
Местный
Возраст: 43 Зарегистрирован: 04.06.2009 Сообщения: 170
Группы:
|
|
Wiz глазами линуксоида: 2. Неоткрытая страна.
В ответах на первую статью было выказано мнение народа и администрации о необходимости сосредоточится на животрепещущем вопросе локализации и драйверов.
Автор принял авторитетное мнение к сведению и решил кратенько освятить все интересные ему темы в одной статье, а следующую посвятить локализации. Говорить же о драйверах модулях без исходников... можно только констатировать их наличие и погадать о назначении по их названиям и занятым ресурсам.
Сегодняшние темы:
1) содержимое /proc и /proc/sys (матчасть здесь)
2) усовершенствованный скрипт архивации корневой ФС (потребуется потом для локализации)
3) Wiz как внешнее устройство (банальный lsusb)
Последний раз редактировалось: EugeneP (Ср Июн 17, 2009 6:54 pm), всего редактировалось 1 раз |
|
Вернуться к началу |
|
|
EugeneP
Местный
Возраст: 43 Зарегистрирован: 04.06.2009 Сообщения: 170
Группы:
|
|
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. Ясно теперь почему пол-памяти скушано Зато когда появится переходничёк мы сможем весьма много понаподключать через 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 режиме никаких изменений. Не тот шнурок, не тот
Конец глупых экспериментов на сегодня.
Наш реальный улов: Сведения об ограничении оперативы. Маловато; пора переходить к программированию.
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... |
|
Вернуться к началу |
|
|
payta
Новичок
Возраст: 40 Зарегистрирован: 11.06.2009 Сообщения: 2
Группы: Нет
|
|
Жаль, что шнурок только для обмена данными и очень специфичный разьем, что печально тем, что даже для распайки нужны достаточно специфичные компоненты и распиновка пока неизветна. Но из разобранного хорошо становятся ясны перспективы девайса.
Как вы сами лично думаете - будет ли в конце концов какая нибудь оптимизация ядра под данное устройство (читай удаление лишних библиотек, процессов, оптимизация кода)?
Что бы Вы могли посоветовать почитать мне, чтобы в перспективе перейти к разработке каких либо приложений. С линуксом знаком на пользовательском уровне (на работе ковыряю парочку серваков FreeBSD, Ubuntu ), занимаюсь веб-разработкой немного. |
|
Вернуться к началу |
|
|
EugeneP
Местный
Возраст: 43 Зарегистрирован: 04.06.2009 Сообщения: 170
Группы:
|
|
payta
Цитата: | будет ли в конце концов какая нибудь оптимизация ядра под данное устройство (читай удаление лишних библиотек, процессов, оптимизация кода)? |
Ядро под ARM вполне оптимизировано. Конкретное ядро из визовской прошивки, я б сказал, слишком оптимизировано. (Линукс с поддержкой только FAT - до сихпор плакаю...)
Цитата: | Что бы Вы могли посоветовать почитать мне, чтобы в перспективе перейти к разработке каких либо приложений. |
Начинать можете прямо сейчас с Феникса, он кроссплатформенный http://fenixdocs.com
Если есть желание покомпилять бинарники, то следует использовать C/C++/SDL, Поставте в убунту build-essential и sdl-*-dev пакеты, потом пробуйте пописть SDL-ные проги под линукс.(в помощь: http://www.libsdl.org/tutorials.php) Когда станет получаться, то можно скачать openwiz toolchain и пробовать портировать на wiz. Можно подождать офф. SDK - он будет менее проблемен (наверно )
Рекомендую такой порядок т.к. на каждом этапе свои трудности и лучше их преодолевать последовательно.
Как IDE многие рекомендуют Code::Blocks, меня он устроил даже больше чем NetBeans.
Все учебники от старых поколений консоли вполне применимы к визу.
http://wiki.gp2x.org/wiki/Development_Tutorials |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы
|
Powered by phpBB © 2001, 2005 phpBB Group
|