Sunday, May 27, 2012

Компиляция busybox под mips

  1. tar -xvf ../cross-compiler-mips.tar.bz2
  2. tar -xvf ../busybox-1.20.0.tar.bz2
  3. cd busybox-1.20.0/
  4. CROSS_COMPILE="$PWD/../cross-compiler-mips/bin/mips-"
  5. LDFLAGS="--static" make CROSS_COMPILE="$CROSS_COMPILE" defconfig
  6. LDFLAGS="--static" make CROSS_COMPILE="$CROSS_COMPILE" all
  7. LDFLAGS="--static" make CROSS_COMPILE="$CROSS_COMPILE" install
P.S.: Образ для виртуальной машины, чтобы проверить можно скачать здесь.

Sunday, May 20, 2012

bootchart и ubuntu

Маленькое не соответсвие докуметации bootchart в ubuntu - в документации указано, что им нужно заменять init процесс, в Ubuntu он прописывает при установке себя в демоны и хранит результаты в /var/log/bootchart.

Saturday, May 5, 2012

Компиляция strace под mips

  1. tar -xvf ../cross-compiler-mips.tar.bz2
  2. tar -xvf ../strace-4.7.tar.xz
  3. cd strace-4.7/
  4. export PATH=$PATH:../cross-compiler-mips/bin/
  5. CFLAGS=-I../cross-compiler-mips/include/ CC=mips-gcc LDFLAGS=-static ./configure --host=mips-linux && make LDFLAGS=-static
  6. mips-strip -v --strip-unneeded strace -o strace-stripped ; ls -l strace-stripped; file strace-stripped

Wednesday, May 2, 2012

va_list и gdb

Хорошая штука va_lixt, но под gdb нужно делать страшные комбинации чтобы посмотреть в чем ошибка:
#0  g_logv (log_domain=0x0, log_level=<optimized out>, 
    format=0x406368 "Can not create directory '%s': %s", args1=0x7ffff03a73b8)
    at /build/buildd/glib2.0-2.32.1/./glib/gmessages.c:765
#1  0x00007f483b167172 in g_log (log_domain=<optimized out>, 
    log_level=<optimized out>, format=<optimized out>)
    at /build/buildd/glib2.0-2.32.1/./glib/gmessages.c:792
#2  0x0000000000404e50 in ?? ()
#3  0x0000000000402f38 in ?? ()
#4  0x00007f483ab5f76d in __libc_start_main (main=0x402f20, argc=1, 
    ubp_av=0x7ffff03a7608, init=<optimized out>, fini=<optimized out>, 
    rtld_fini=<optimized out>, stack_end=0x7ffff03a75f8) at libc-start.c:226
#5  0x0000000000402fe9 in ?? ()
#6  0x00007ffff03a75f8 in ?? ()
#7  0x000000000000001c in ?? ()
#8  0x0000000000000001 in ?? ()
#9  0x00007ffff03a7d19 in ?? ()
#10 0x0000000000000000 in ?? ()
(gdb) p *(char **)(((char *)args1[0].reg_save_area)+args1[0].gp_offset)
$8 = 0x113b720 "/var/lib/lightdm/.config/dconf"
(gdb) p *(char **)(((char *)args1[0].reg_save_area)+args1[0].gp_offset+8)
$12 = 0x113c000 "Permission denied"
Но может это просто я неправильный вариант просмотра нашел?

Sunday, April 29, 2012

Минимизация страницы Python

​Аналогичный по задачам, но реализованы по другим принципам на Python код минимизации страницы. Продолжение предыдущего поста с реализацией на php. Главное отличие от предыдущей версии здесь мы разбиваем потоковый парсером html и на обрабатываем содержимое тегов. Для сжатия стилей и скриптов используется внешний код для минимизации из webassets.

Sunday, March 18, 2012

Erlang?

Правильное описание Erlang. Единственное может конечно уже подправили, но очистка памяти у него - иногда он не может освободить память и зависает не отвечая на внешний мир. И так получается что вроде жив - но ни ничто не реагирует.
Я года три назад использовал yaws для проксирования запросов к основной логике плюс часть бизнес логики внутри erlang. Так при большой нагрузке задень он зависало - а когда убиваешь его - куча потоков ждущих записи в логи и очистки памяти. Процесс принудительной очистки вызывался - самым последним в функции после отдачи результата yaws и это не помогало. И я сомневаюсь, что можно даже если память независимо выделяется - избежать ее фрагментирования и эффективной очистки - ссылки то на глобальные структуры создание ранее по коду остаются и их пока поток полностью не выйдет очищать нельзя.
Но все могло уже поменяться, или мы чего-то намудрили.

Saturday, March 17, 2012

Ice Cream Sandwich on Desire HD

Решил проверить как продвигается CM9 - пока не очень.

Используя версию чистого CM9 на основе инструкции- не загрузилось :-( Анимация при загрузке зациклилась, а как смотреть лог загрузки для андроида не понятно. Если есть желание повторить нужно загрузить: repo init -u git://github.com/CyanogenMod/android.git -b ics и добавить в system/.repo/manifests/default.xml репозитории:

  1. project path="device/htc/ace" name="CyanogenMod/android_device_htc_ace"
  2. project path="device/htc/common" name="CyanogenMod/android_device_htc_common" revision="refs/heads/gingerbread"
  3. project path="device/htc/msm7x30-common" name="CyanogenMod/android_device_htc_msm7x30-common"
  4. project name="koush/proprietary_vendor_htc" path="vendor/htc"

Версия собранная специально для этой модели запустилась - единственное отсутсвует приложение для радио и при записи видео приложение вылетает.