Задать вопрос
  • Почему после "umask u=rwx,g=rwx,o=" создаваемые файлы не имеют разрешения на запуск?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    touch testfile

    а где заветное и ожидаемое -rwx-rwx--- ???

    С помощью strace можно увидеть, что touch открывает файл с параметром mode = 0666, поэтому x там неоткуда взяться:
    $ strace -v -e open touch test
    open("test", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
    Ответ написан
  • Можно ли в Linux x64 собрать драйвер (модуль ядра) для Linux x86?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Всё что вам нужно, чтобы собрать модуль для ядра любой архитектуры любой версии -- это компилятор для этой архитектуры, исходники ядра и .config для этого ядра.
    Шаги такие:
    - распаковать/вычекнуть исходники ядра нужной версии
    - создать и сконфигурировать каталог сборки ядра: создать каталог, скопировать в него .config, выполнить
    make -C <каталог исходников ядра> \
    O=<каталог сборки ядра> \
    ARCH=<целевая архитектура> \
    CROSS_COMPILE=<префикс кросс-компилятора> \
    silentoldconfig

    - собрать ядро:
    make -C <каталог исходников ядра> \
    O=<каталог сборки ядра> \
    ARCH=<целевая архитектура> \
    CROSS_COMPILE=<префикс кросс-компилятора> \
    vmlinux

    - собрать модуль используя созданный на предыдущем шаге каталог:
    make -C <каталог сборки ядра> \
    M=<каталог исходников модуля> \
    ARCH=<целевая архитектура> \
    CROSS_COMPILE=<префикс кросс-компилятора> \
    modules


    CROSS_COMPILE можно опустить, если нужно использовать хостовый компилятор. Для x86 ARCH=x86
    Ответ написан
    1 комментарий
  • Почему не работает sscanf?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Чтобы работало с приведённой строкой, формат должен быть таким:
    sscanf(mycharp, "%[^'*']*,%[','^]", o, s);
    Исходный формат не работает, потому что обработка %[^'*'] остановится на входном символе *, и так там и останется, потому что последующая часть форматной строки не поглощает этот символ.
    Кроме того, вы, мне кажется, понаставили лишних апострофов внутри квадратных скобок. В форматной строке они интерпретируются буквально, т.е. формат "%[^'*']" означает "символы, кроме апострофа, звёздочки или апострофа". Вот так тоже должно работать:
    sscanf(mycharp, "%[^*]*,%[,^]", o, s);
    Ответ написан
    3 комментария
  • Как узнать MINOR номер устройства в современном linux в режиме ядра?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    filp->f_path.dentry->d_inode->i_rdev вместо filp->f_dentry->d_inode->i_rdev
    Ответ написан
  • Как проверить, что патч подойдет к исходникам обновленного ядра?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Патч содержит в себе относительные пути к файлам и должен применяться в определённом каталоге. Обычно им должен быть корневой каталог проекта, а патч содержит на 1 уровень каталогов больше. Лишний уровень обрезается опцией -p1. Это единица, а не строчная l, как у вас написано.
    patch -p1 --dry-run < patch
    Ответ написан
    Комментировать
  • Почему busybox вдруг ни с того ни с сего уходит в ребут?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Из-за чего это может быть?

    Из-за содержимого /etc/inittab? Или /etc/crontab?
    Ответ написан
  • О чём говорят такие результаты MemTest86?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Обрабатывают ли операционки (Винда/Убунту) данную ситуацию как-нибудь? Или может нужно какую-нибудь прогу поставить, которая при загрузке сразу будет резервировать данный битый участок, и таким образом другие программы не смогут его использовать?

    Линуксу можно передать параметр ядра из загрузчика:
    memmap=nn[KMG]$ss[KMG]
                            [KNL,ACPI] Mark specific memory as reserved.
                            Region of memory to be reserved is from ss to ss+nn.
                            Example: Exclude memory from 0x18690000-0x1869ffff
                                     memmap=64K$0x18690000
                                     or
                                     memmap=0x10000$0x18690000
                            Some bootloaders may need an escape character before '$',
                            like Grub2, otherwise '$' and the following number
                            will be eaten.

    Для вашего случая: memmap=32M$0x241A3D470
    Ответ написан
    Комментировать
  • Как пофиксить "the repository doesn't have a Release file"?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    the repository doesn't have a Release file -- это не ошибка, а предупреждение. Ошибка дальше:
    E: Failed to fetch screenshots.getdeb.net/dists/xenial-getdeb/apps/bi... Cannot initiate the connection to screenshots.getdeb.net:80 (2400:cb00:2048:1::681c:187d). - connect (101: Network is unreachable) [IP: 2400:cb00:2048:1::681c:187d 80]

    Резолвер выдаёт вам адрес IPv6, который у вас, похоже, не работает.
    Если IPv6 вам не нужен -- отключите его в настройках сети. Если нужен -- смотрите, почему не работает.
    Ответ написан
    Комментировать
  • Что делать, если screen не реагирует на ввод?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Это может быть результатом нажатия ^s или ^a-s. Лечится нажатием ^q или ^a-q соответственно.
    Ответ написан
    1 комментарий
  • Как работать с файлами WinAPI из ассемблера?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    как мне на пример удалить или записать в определенный сектор диска какую то информацию?

    Открыть диск как файл (имя файла -- \\.\PhysicalDriveX, X = 0...), дальше всё как с файлом -- SetFilePointer, WriteFile, ...

    На пример в загрузочный сектор записать свой загрузчик?

    Для этого не нужен ассемблер.
    Ответ написан
    Комментировать
  • Как включить русский язык в программе?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    По приведённому отрывку создаётся впечатление, что можно передать eng или ru параметром командной строки и это повлияет на значение байта byte_451fc.
    Ответ написан
    Комментировать
  • Несовместимость gnu make 3.81 и 4.2.1. Как разрешить?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    файл FreeRTOS_for_stm32f2/FreeRTOS.h откоторого зависят все цели в следующем правиле не существует:
    build/obj/%.obj:        %.cpp $(USER_CFG_H_FILE) $(FREE_RTOS_H_FILE)


    Чтобы заработало должно быть
    FREE_RTOS_H_FILE        := FreeRTOS_for_stm32f2/include/FreeRTOS.h

    вместо
    FREE_RTOS_H_FILE        := FreeRTOS_for_stm32f2/FreeRTOS.h
    Ответ написан
  • Почему в C++ нужно строить всю программу на ООП (длинный вопрос)?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Мне нравится код ядра Linux. Никакого разделения программы на объекты там нет, и всё там окей, прекрасно без такого разделения живут.

    Да-да-да, https://lwn.net/talks/fosdem-kobject/

    Полиморфизм есть, но он есть только там, где это нужно. И никакого "А давайте всю программу разобьём на классы, просто потому что так надо" тут нет. На мой взгляд, Linux устроен совершенно верно, именно так и нужно писать.

    Ага, только он не был таким всегда. Его текущий дизайн -- это результат эволюции. Эволюция вызвана стремлением повысить качество. Чтобы повысить качество нужно уменьшить сложность. ООП -- один из возможных путей уменьшения сложности.

    Окей, что я хочу в качестве ответа. Идеальной была бы ссылка на какую-нибудь статью в блоге. Где бы объяснялось, зачем нужно делить программу на объекты. С примерами. Скажем, разбиралась бы какая-нибудь типичная задача.

    Сюда идеально подходит книга "Паттерны проектирования". (скан, кстати, не очень, пропущен важный кусок истории в конце). Только не надо читать про сами паттерны. Прочитай всё остальное: откуда они взялись, какова их история, как ими пользоваться.
    Ответ написан
    4 комментария
  • Почему не работае скрипт?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Что я неправильно сделал?

    Для того что вы хотите нужно не запускать этот скрипт а загружать его в текущий шелл командой source или . :
    $ . ./path.sh

    Эта переменная только для сеанса в терминале или пока ПК не выключу?

    Эта переменная -- для шелла который её выполнил и его потомков. Запуск скрипта порождает новый шелл, который сразу завершается.

    Можно ли у LD_LIBRARY_PATH записать несколько разных путей?

    Да, через двоеточие.
    Ответ написан
    Комментировать
  • Почему связыка find/xargs срабатывает только на одном файле?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Ваш скрипт на питоне обрабатывает единстенный файл-параметр. xargs без дополнительных параметров вызывает то что ему дали с наибольшим возможным количеством параметров. Чтобы эта связка работала пишите так:

    find -type f -name "*.fb2" | sort | xargs -n1 python bfix.py
    Ответ написан
    3 комментария
  • Почему не работает make для другого каталога?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему так происходит?

    Потому что вы что-то делаете неправильно.

    Если серьёзно -- то как вы хотите, чтобы мы поняли, что у вас происходит, если вы не дали нам никакой полезной информации? Makefile покажите, что ли.
    Ответ написан
    1 комментарий
  • Где взять готовые графические решения для разработки приложения на WinAPI?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Пытался использовать GDI, но это просто ужас:
    (это можно пропустить и перейти к вопросу, выделенным жирным шрифтом)
    1) много сообщений просто не срабатывают;
    2) например, закрасило кнопку, но текст не вывело;
    3) после нажатия на закрашенное окно (в моём случае на кнопку) - оно перекрашивается в стандартный цвет;
    4) переопределили класс кнопки - в итоге на ней какой-то белый квадрат отображается (хотя код примитивный и вообще без понятия откуда взялся этот квадрат);
    5) вообще неудобно и очень много времени теряю на эти графические моменты.
    Короче, очень сильно достало уже это GDI.

    А надо всего лишь разобраться как работает отрисовка окон.
    https://msdn.microsoft.com/en-us/library/windows/d...
    Ответ написан
    Комментировать
  • Не проходит git push?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Создал удаленный репозитарий git --bare init grid

    Однако зайдя по ssh на удаленный репозитарий, файлов в проекте нет. Что не так у меня, я что-то проспутил?

    Файлов и не будет, пока вы их не вычекнете. А вот коммиты должны быть -- см. git log.
    Ответ написан
    Комментировать
  • Что за проблема c подключением вложенных библиотек?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Важен порядок линковки библиотек. Если сначала линковать с lib1 а потом -- с lib2, и в test нет ссылок на lib1, то будет то, что вы видите. Нужно либо упорядочить библиотеки так, чтобы сначала шли те, что обращаются ко внешним функциям, а потом -- те, что эти функции определяют. Либо поместить все взаимозависимые библиотеки внутрь пары директив --start-group --end-group или -( -).
    Ответ написан
    1 комментарий
  • Почему не работает цикл в цикле for?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    если я хочу сделать это для нескольких файлов, через цикл, то вот он не пытается пройти итерацию по каждому, а берет значение index.html index2.html Подскажите пожалуйста. Где я совершил ошибку ?

    Забыл IFS восстановить в исходное значение.
    Ответ написан