LINUX.ORG.RU

Сообщения i-rinat

 

reiserfs: move_unformatted_block / move_formatted_block

Форум — Development

В составе reiserfsprogs есть функции move_unformatted_block и move_formatted_block, которые используются для перемещения блоков из конца в начало раздела при его уменьшении. Фактически, это заготовка для создания оффлайн-дефрагментатора.

Но вот в чём вопрос - до меня этот код смотрело много людей, и наверняка значительная часть из них сделала аналогичный вывод. Но дефрагментаторов для reiserfs почему-то не наблюдается. Есть для этого объективная причина?

Если кто-то слышал об изысканиях на эту тему, буду рад увидеть ссылку (мой поиск в гугле ничего не дал).

i-rinat
()

Как palimpsest (gnome-disk-utility) получает доступ к диску?

Форум — Desktop

В palimpsest кроме всего прочего есть измерение производительности диска. Для этого ему надо читать диск и замерять время. И вот тут у меня возникает вопрос: запускаю я его от простого пользователя, но прав на чтение диска у него нет. getcap молчит, capabilities на бинарнике нет.

Как же он диск читает?

Update:
Вопрос решился сам собой. palimpsest диск не читает, он по dbus шлёт сообщение UDisks, а оно уже и производит измерение производительности.

i-rinat
()

Шифрованная FUSE ФС без отдельного ключа в файле

Форум — Desktop

Нужна шифрующая ФС, работающая через fuse — размер данных может меняться. Я нагуглил eCryptfs и encfs, но они хранят ключ, которым шифруют всё в одном-единственном файле. Если я потеряю файл, я потеряю всё. В связи с этим, нужна ФС, которая тупо генерирует ключ из пароля, который я ввожу. (Наподобие WPA2-PSK.) Шифрование имён не обязательно, но не помешало бы.

Есть такое?

i-rinat
()

Нужна ли в wiki инструкция про crash kernel?

Форум — Talks

Это метод отладки, который позволяет вытащить дамп (а из него вывод dmesg) ядра, упавшего в панику. Без использования serial console и второго компа.

В /usr/src/linux/Documentation/kdump/kdump.txt есть англоязычная инструкция. Нужна ли в wiki версия на русском?

i-rinat
()

В каком режиме ARM (EABI) процессор должен находиться в точках входа в .so?

Форум — Development

Читаю про ARM, дочитал до thumb-mode/arm-mode и про взаимодействие кусков кода в thumb и arm. Но никак не могу найти ответ на вопрос: в каком режиме процессор ожидается в точках входа экспортируемых функций библиотек?

i-rinat
()

Встречали ли вы проекты по портированию бинарников (android ndk) на mips ?

Форум — Mobile

Большинство устройств, работающих под android, как известно, arm-based. Соответственно те приложения, которые используют ndk, в составе имеют бинарники только под arm. Однако сейчас стали появляться устройства на mips, в основном, китайфоны и e-reader'ы.

В связи с этим возник вопрос: не встречалось ли вам проектов по портированию бинарников с arm на mips? Особый интерес вызывает Opera Mini. К сожалению, приложение доступно только в скомпилированном виде, а разработчики портировать пока собрались, и вряд ли соберутся в ближайшем будущем.

Я погуглил на эту тему (static recompiler), но ничего путного не нашёл. По идее, бинарники собираются gcc, вряд ли там есть самомодифицирующийся код, так что теоретически это должно быть возможно.

Ваше мнение?

i-rinat
()

Визуализатор фрагментации файлов на диске. С квадратиками

Форум — Talks

Я тут месяцев пять назад задавал вопрос про визуализатор фрагментации; такового не нашлось и я начал его пилить сам. Давно уже его не трогал, и вряд ли в ближайшее время буду, так что решил выложить, вдруг кому будет интересно: git://github.com/i-rinat/fragview.git

Там есть пара ошибок с чтением освобождённой памяти, но только если начать тыкать в карту пока сбор данных еще закончен. Дальше можно.

А, да, работает только с ФС, которые поддерживают FIEMAP, это вроде ext2/3/4 и btrfs. Патч, добавляющий FIEMAP для JFS есть тут.

Скрин: http://ompldr.org/vOWs0NQ

i-rinat
()

kexec из panic kernel (kexec -p)

Форум — Admin

Пытаюсь сделать что-то вроде программного watchdog'а. При загрузке основного ядра вызывается kexec -p, подготавливается panic kernel (то же самое, что и основное). Далее, при падении ядра в панику и загрузке panic kernel, в rc.local производится запись в журнал и загрузка оригинального ядра через kexec. Но оно не грузится, а происходит сброс и запуск POST. И там зависает, так как BIOS подвисает при перезагрузке более чем в 90% случаев. И без меня он уже не поднимется.

Сделать автоматическую перезагрузку нельзя - POST не всегда запускается.

Выходит, что единственный способ перезагрузиться - делать такой двойной kexec. Как бы сделать так, чтобы второй вызов действительно отработал?

P.S. Я знаю, что проблема в железе, она появилась после установки дополнительной памяти и пропадает, если память вынуть. Память сама по себе рабочая, просто мат. плата почему-то не грузится.

i-rinat
()

scanbuttond на МФУ HP 3015

Форум — Desktop

Удавалось ли кому-нибудь подружить scanbuttond с МФУ HP 3015? Может быть аналоги scanbuttond?

i-rinat
()

в linux 2.4.37 есть kexec?

Форум — General

Работает ли в linux 2.4.37 вызов kexec? Поиск по исходниками ничего не дал, может он раньше по другому назывался?

i-rinat
()

Где чинить FIEMAP - в ядре или пользовательском пространстве?

Форум — Talks

Есть такой ioctl, называется FIEMAP. Он служит для той же цели, что и FIBMAP - узнать, где на диске расположен файл. Основное отличие - FIEMAP сообщает не о блоках, а об экстентах файла, причём сразу о нескольких за раз. На файловых системах, поддерживающих FIEMAP, такие программы, как filefrag (сообщает о количестве фрагментов файла), отрабатывают на два порядка быстрее (меньше накладные расходы) и требует только право открыть файл, а не прав root'а, как для FIBMAP.

К сожалению, не все ФС поддерживают FIEMAP, и среди них reiserfs. Так получилось, что у меня на компьютере она используются, и для неё мне очень хочется иметь этот самый FIEMAP. К счастью, есть обобщенная функция, которая позволяет добавить этот FIEMAP с минимальными усилиями, ей только надо передать ссылку на get_block конкретной ФС.

Тут я наконец подхожу к своему вопросу. Так уж получилось, что reiserfs_get_block отдаёт/распределяет только один блок за раз. И это приводит к тому, что даже если файл лежит на диске одним сплошным куском, FIEMAP выдаёт столько экстентов, сколько блоков в файле, и это смущает утилиту filefrag, которая в обычном режиме просто печатает число экстентов, которые возвратил вызов FIEMAP. Очевидно это не совсем то, что можно было бы ожидать. Если попросить filefrag быть более подробной, она начинает замечать, что экстенты лежат рядом, обсчитывает всё более корректно и выдаёт то, что я от неё жду.

И вот вопрос: где надо чинить - в ядре или в filefrag? Ядро должно сливать соседствующие экстенты в один или этим должны заниматься прикладные программы?

i-rinat
()

Запустить livecd собранный в susestudio из iso образа (предпочтительно grub'ом)

Форум — Linux-install

Захотелось загрузиться в Gears on Gallium, посмотреть. Но у меня сейчас нет свободной флешки, dvd-rom испортился, а варианты залить образ прямо на раздел жесткого диска мне не подходят.

У меня есть на флешке grub, в котором настроена загрузка livecd ubuntu прямо из iso файла (live-media-path=casper iso-scan/filename=/casper/ubuntu-10.04.2-desktop-i386.iso), но этот способ здесь не прокатит, так как работает только для скриптов casper.

Вопрос: как сделать так, чтобы можно было грузиться из образа?

i-rinat
()

[notebook] Кнопки регулировки яркости перестают работать начиная с загрузки ядра

Форум — General

Ноутбук Clevo E4105. Дистрибутив Debian testing.

В настройках BIOS яркость регулируется кнопками Fn+F8/Fn+F9, продолжает регулироваться в меню GRUB2, но перестаёт, как только появляются первые строчки сообщений ядра на экране. После загрузки xbacklight регулирует яркость, с этим всё в порядке, но на кнопки клавиатуры реакции никакой.

acpi_listen ничего на эти клавиши не показывает, но при этом видит остальные (button/volumeup и другие). showkeys при нажатии Fn-F8 молчит.

Пробовал грузиться с

  • acpi=off (зависло);
  • acpi_backlight=vendor (яркость на минимуме, не регулируется кнопками, не регулируется xbacklight);
  • acpi_backlight=video (яркость регулируется только xbacklight, на кнопки не реагирует).

Как заставить кнопки работать?

 

i-rinat
()

[ЖЖ] видео с youtube'а снова в /tmp

Форум — Talks

Несколько раз поднималась тема сохранения видео из flashplayer'а. Вот менее монстрообразный костыль.

unlinkfix.c:

// gcc -fPIC -c -o unlinkfix.o unlinkfix.c
// gcc -shared -o unlinkfix.so unlinkfix.o -ldl


#define _GNU_SOURCE
#include <dlfcn.h>
#define _FCNTL_H
#include <bits/fcntl.h>
#include <stdio.h>
#include <unistd.h>

extern int errno;

int (*_unlink)(const char *pathname);
int (*_fclose)(FILE *fp);


int unlink(const char *pathname){
    //printf("unlink `%s`\n", pathname);

    _unlink = (int (*)(const char *pathname)) dlsym(RTLD_NEXT, "unlink");
    if (!strncmp(pathname, "/tmp/FlashXX", 12)){
	return 0;
    }else{
	return _unlink(pathname);
    }
}

int fclose(FILE *fp){
    int fd = fileno(fp);
    char buf[4096];
    char fdpath[512];
    int len;
    
    //printf("fclose fd=%d, ", fd);
    _unlink = (int (*)(const char *pathname)) dlsym(RTLD_NEXT, "unlink");
    _fclose = (int (*)(FILE *fp)) dlsym(RTLD_NEXT, "fclose");
    sprintf(fdpath, "/proc/%d/fd/%d", getpid(), fd);
    len = readlink(fdpath, buf, 4096);
    if (len > 0){
	buf[len] = 0;
	//printf("`%s`", buf);
	if (!strncmp(buf, "/tmp/FlashXX", 12)){
	    //printf(", removing it");
	    _unlink(buf);
	}
	//printf("\n");
    }
    return _fclose(fp);
}

Makefile:

all:
	gcc -fPIC -c -o unlinkfix64.o unlinkfix.c
	gcc -shared -o unlinkfix64.so unlinkfix64.o -ldl
	gcc -m32 -fPIC -c -o unlinkfix32.o unlinkfix.c
	gcc -m32 -shared -o unlinkfix32.so unlinkfix32.o -ldl

Получившиеся .so загрузить через LD_PRELOAD.

Две версии нужны для плагинов разной разрядности.

 

i-rinat
()

Как урезать объем, выделяемый под видеопамять? (Clevo E4105

Форум — Linux-hardware

Есть ноутбук Clevo E4105 (спецификации тут). Внутри сейчас стоит памяти на 1 ГиБ. Но при загрузке ядро говорит, что

[    0.000000] Memory: 752824k/778240k available (2617k kernel code, 21836k reserved, 1377k data, 360k init, 0k highmem)
256 МиБ видимо уходит под встроенное видео. В настройках BIOS есть «возможность» изменить количество выделяемой памяти, 128 или 256, но на деле никакого эффекта нет. Доступно в любом случае только 760 МиБ.

Насколько я понял, встроенное видео у Intel умеет динамически менять размер выделенной памяти, даже есть параметр в xorg.conf. Я его попробовал, не работает.

Как отвоевать эти 256 МиБ?

i-rinat
()

xfce убрать часть дисков с рабочего стола

Форум — Desktop

xfce4.8, debian wheezy.

Partition Table: msdos

Number  Start      End        Size       Type      File system     Flags
 1      1,00MiB    101MiB     100MiB     primary   ntfs            boot
 2      101MiB     152735MiB  152634MiB  primary   ntfs
 3      152735MiB  238473MiB  85738MiB   extended
 5      152735MiB  153504MiB  769MiB     logical   linux-swap(v1)
 6      153504MiB  238473MiB  84969MiB   logical   ext4

Проблема в том, что в xfce на рабочем столе отображаются иконки для sda1 и sda2, что немного напрягает. Если в настройках рабочего стола отключить отображение removable drives, они пропадают, но тогда пропадают иконки флешек и внешних жестких дисков. Как бы sda1 и sda2 с рабочего стола убрать, оставив остальное?

В Thunar'е они тоже отображаются, но там это ещё терпимо.

Удалить разделы физически я не могу. Перманентно монтировать их тоже нежелательно.

i-rinat
()

Перестал работать FIEMAP ioctl для ext4 в 2.6.38

Форум — General

Недавно в debian testing обновилось ядро с 2.6.32 на 2.6.38. И перестал работать FIEMAP ioctl (на ext4):

$ /usr/sbin/filefrag Twitter.mp4 
No permission to use FIBMAP ioctl; must have root privileges
В .32 filefrag срабатывает от простого пользователя, так как использует сначала FIEMAP, а в .38 FIEMAP обламывается с кодом -95. Для вызова FIBMAP нужны привилегии суперпользователя, к тому же это невообразимо медленнее.

Это баг или какая-то новая фича?

i-rinat
()

Сдвинуты функциональные клавиши (с shift'ом) в текстовой консоли

Форум — Desktop

В текстовой консоли комбинация Shift-F3 работает как Shift-F5, Shift-F4 как Shift-F6 и так далее. Напрягает, когда я в mc хочу переименовать файл, а меня спрашивают, действительно ли я хочу его удалить? Сами по себе F1-F12 работают как положено.

Как это исправить, где это вообще настраивается? В dpkg-reconfigure console-setup подходящих настроек я не нашел.

А, да, это клавиатура нетбука (acer aspire one 110).

i-rinat
()

hdd, предотвратить увеличение load cycle count (toshiba)

Форум — General

Диск производства Toshiba, hdparm -B не работает, доступных обновлений прошивок нет.

Есть ли готовая программа, заставляющая диск не парковать головки? (Чувствую, что изобретаю велосипед.)

i-rinat
()

RTL8191SEvB (802.11b/g/n) зависает

Форум — Linux-hardware

Ноутбук со встроенной беспроводной сетевой картой. lspci опознаёт её как RTL8191SEvB.

Поставил на debian wheezy драйвер с сайта realtek'а. Через пару часов после включения система внезапно зависает. Вроде как пытается переключиться в текстовый режим, чтобы отобразить oops, но ничего не экране нет. В эфир при этом идут довольно сильные помехи, у соседнего ноута пропадает связь, которая восстанавливается, если первый отключить.

Как это вылечить? Которую версию драйвера поставить и где её взять? (ndiswrapper пока еще не пробовал, хотелось родной драйвер).

Само железо рабочее, так как под W7 сеть не падает.

i-rinat
()

RSS подписка на новые темы