LINUX.ORG.RU

Сообщения kosc

 

Разработать USB-драйвер для Linux

Форум — Job

Я короче в отчаянии, пытался сам сделать, даже тут просил о помощи, не осилил и готов отдать денег, если тут есть тот, кто это осилит. Бюджет - 4000р. Суть - разработать USB-драйвер для Linux, который будет работать следующим образом:

Если Product ID и Vendor ID вставляемой флешки есть в неком списке (можно захардкодить прямо в драйвер), то данные на флешке шифруются при записи и дешифруются при чтении. Выбор алгоритма шифрования произвольный. Если флешки в списке нет, то управление передаётся стандартному драйверу Linux и с флешкой работаем как с обычной, либо этот же драйвер работает с ней как с обычной.

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

Оплатить могу наличкой, если СПб, либо перевести на банковскую карту/расчётный счёт.

 , ,

kosc
()

USB-драйвер для флешек

Форум — Development

Привет, ЛОР!

В рамках курсового проекта на просторах нашей необъятной родины нужно реализовать USB-драйвер, который на флешках из некоторого списка данные будет шифровать, а со всеми остальными работать как обычно. В общем, я нашёл и заставил работать (немного кода пришлось переписать) вот такой драйвер: https://github.com/kosc/linux-driver-studing/tree/master/usbstick. И с ним почти всё хорошо. Почти. При подключении флешки с таким драйвером, создаётся устройство /dev/pendrive0, которое по своему поведению эквивалентно устройству /dev/sdb, если флешка подключена через стандартный драйвер usb_storage. Ничего, что было бы похоже на /dev/sdb1, этот драйвер не создаёт. Грубо говоря, он не может работать с таблицей разделов на флешке, даже её не видит (из cfdisk и fdisk там ни одного раздела не видно, хотя при работе через usb_storage там один раздел есть и данные норм читаются/пишутся). Уже все доки перерыл, ЛОР, на тебя только надежда.

 , , ,

kosc
()

Не собирается cross-avr/gcc из оверлея asux

Форум — Development

Добрый день! Пытаюсь собрать себе всё необходимое для разработки под avr. Делаю `USE=«nopie nossp -hardened» crossdev -S -P -v -t avr`, получаю такой выхлоп:

configure: error: in `/var/tmp/portage/cross-avr/gcc-4.9.4/work/build/avr/avr25/libvtv':
configure: error: C compiler cannot create executables
See `config.log' for more details.
make[1]: *** [Makefile:9461: configure-target-libvtv] Error 1
make[1]: Leaving directory '/var/tmp/portage/cross-avr/gcc-4.9.4/work/build'
make: *** [Makefile:841: all] Error 2
 * ERROR: cross-avr/gcc-4.9.4::asux failed (compile phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=cross-avr/gcc-4.9.4::asux'`,
 * the complete build log and the output of `emerge -pqv '=cross-avr/gcc-4.9.4::asux'`.
 * The complete build log is located at '/var/tmp/portage/cross-avr/gcc-4.9.4/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/cross-avr/gcc-4.9.4/temp/environment'.
 * Working directory: '/var/tmp/portage/cross-avr/gcc-4.9.4/work/build'
 * S: '/var/tmp/portage/cross-avr/gcc-4.9.4/work/gcc-4.9.4'
 * 
 * Please include /var/tmp/portage/cross-avr/gcc-4.9.4/work/gcc-build-logs.tar.bz2 in your bug report.
 * 

>>> Failed to emerge cross-avr/gcc-4.9.4, Log file:

>>>  '/var/tmp/portage/cross-avr/gcc-4.9.4/temp/build.log'

 * Messages for package cross-avr/gcc-4.9.4:

 * ERROR: cross-avr/gcc-4.9.4::asux failed (compile phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=cross-avr/gcc-4.9.4::asux'`,
 * the complete build log and the output of `emerge -pqv '=cross-avr/gcc-4.9.4::asux'`.
 * The complete build log is located at '/var/tmp/portage/cross-avr/gcc-4.9.4/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/cross-avr/gcc-4.9.4/temp/environment'.
 * Working directory: '/var/tmp/portage/cross-avr/gcc-4.9.4/work/build'
 * S: '/var/tmp/portage/cross-avr/gcc-4.9.4/work/gcc-4.9.4'
 * 
 * Please include /var/tmp/portage/cross-avr/gcc-4.9.4/work/gcc-build-logs.tar.bz2 in your bug report.
 * 

 * error: gcc failed :(
 * 
 * If you file a bug, please attach the following logfiles:
 * /var/log/portage/cross-avr-info.log
 * /var/log/portage/cross-avr-gcc-stage2.log.xz
 * /var/tmp/portage/cross-avr/gcc*/temp/gcc-config.logs.tar.xz

Забавно, что в репозитории оверлея asux на github я никакого cross-avr и в помине не нашёл.

 , ,

kosc
()

pyinotify - следить за новой папкой.

Форум — Development

Пишу софтину на python, в которой используется pyinotify. Слежу с его помощью рекурсивно за несколькими директориями рекурсивно (rec=True), но вот беда - если в одной из наблюдаемых директорий создать новую папку, то на неё слежение не распространяется. Могу повесить событие также на IN_CREATE, но как в обработчике IN_CREATE добавить вновь созданную папку под слежение? И, самое главное, есть ли способ попроще?

 , ,

kosc
()

Куда пойти в СПб на выходных?

Форум — Talks

Заранее прошу прощения за этот тупняк-тред, но куда пойти хикке-гентушнику в СПб на выходных?

Всмысле, я знаю, что хикке должен сидеть дома, кутаться в плед, пить чай и смотреть аниму, но пледа у меня никогда не было, чай пить что-то не хочется, а вся интересная анима кончилась. Может, я неправильный хикка - тогда куда пойти неправильному хикке-гентушнику в СПб на выходных?

 , ,

kosc
()

Чем играть flv-файл в сайте на django?

Форум — Web-development

Что пробовал:
video-js - ориентирован на html5, flv, судя по гуглу, запустилось у 3.5 человек, у остальных не работает, что бы они не делали.
flowplayer - анальные ограничения для бесплатного использования (5Gb трафика, их логотип поверх видео).
Собственно, сабж.

 , ,

kosc
()

А как вы пишете код?

Форум — Talks

В одной jabber-конфе заметили, что я слишком часто интересуюсь тем, как другие пишут код. Что бы лишний раз подтвердить их слова, спрошу - а как вы пишете код?
Как долго подряд можете кодить, не отвлекаясь ни на что, и какие условия для этого требуются?
У меня вот редко когда выходит кодить подряд больше, чем 1.5-2 часа, но полный рабочий день подразумевает 8 часов с перерывом на обед, если я ничего не путаю.
Делитесь историями успеха.

 , ,

kosc
()

GNU Bison - преобразование в обратную польскую запись.

Форум — Development

Ранее я уже просил помощи по Bison, и мне таки здорово помогли, за что большое спасибо всем, кто написал в тот тред. Теперь возникла новая проблема - мне надо сделать преобразование грамматики из прошлого примера в обратную польскую запись. Я нашёл пример RPN Calc на gnu.org, но от него пользы мало. Так и не понял, как же работать со строками в бизоне. Вот код:

%{
	#define YYSTYPE char *
	#include <stdio.h>
	#include <ctype.h>
	#include <cstring>
	#include «bison.tab.hh»

	int yyparse(void); 

	int yyerror (const char *s){}

	void yylex_reinitialize(void) {
		int c;
		while ( c != EOF && c != '\n' )
			c = getchar();
	}

	int yylex(void) {
		int c;
		while ( (c = getchar()) == ' ' || c == '\t' );
		if (c == EOF || c == '\n')
			return 0;
		return c; 
	}

	int main (void) {
		while (1) {
			if (!yyparse()) {
				printf(«Правильная строка\n»);
			}
			else {
				printf(«Ошибка: неправильная строка\n»);
				yylex_reinitialize();
			}
		}
	}
%}

%token 'c' 'e' 'd'

%%
S: E { printf(«%s», $$); };
E: E'+'T { $$ = strcat($1, $3); $$ = strcat($$, $2); };
E: T;
T: T'*'F { $$ = strcat($1, $3); $$ = strcat($$, $2); };
T: F;
F: 'c'|'e'|'d'|'('E')';
%%
Собственно, он компилируется, но выдаёт Segmentation fault. Подозреваю, что я где-то должен выделить память для $$ сначала.

 , ,

kosc
()

LR(1) с помощью GNU Bison

Форум — Development

Есть вот такая КС-грамматика:

S::=E
E::=E+T
E::=T
T::=T*F
T::=F
F::=c|d|e|(E)
Вот такой файл с bison-кодом:
%{
        #define YYSTYPE char
        #include <stdio.h>
        int yylex (void);
        int yyerror (const char *s);
%}

%token 'c' 'e' 'd' '(' ')'

%%
S: E'\n' { printf("Правильная строка\n"); }
;
E: E'+'T
   |T
;
T: T'*'F
   |F
;
F: 'c'
   |'e'
   |'d'
   |'('E')'
;
%%
Вот такой файл с C-кодом:
#include <stdio.h>
#include <ctype.h>
#include "bison.tab.hh"
int yyparse(void); 

int yyerror (const char *s)  /* Called by yyparse on error */
{
    printf ("%s\n", s);
}

int yylex(void) {
        int c;
        while ( (c = getchar()) == ' ' || c == '\t' );
        if (c == EOF)
                return 0;
        return c;
}

int main (void)
{
        return yyparse();
}

Всё это компилируется, и запускается, но во второй раз почему-то работает совсем не так, как во второй:

$ ./a.out 
e+c
Правильная строка
e+c
syntax error
Что я не так сделал-то?

 , ,

kosc
()

Access Point на Intel 7260 (rev 6b)

Форум — Linux-hardware

Собственно, есть Wi-Fi адаптер, который lspci -v показывает так:

03:00.0 Network controller: Intel Corporation Wireless 7260 (rev 6b)
        Subsystem: Intel Corporation Wireless-N 7260
        Flags: bus master, fast devsel, latency 0, IRQ 46
        Memory at e0400000 (64-bit, non-prefetchable) [size=8K]
        Capabilities: [c8] Power Management version 3
        Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [40] Express Endpoint, MSI 00
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [140] Device Serial Number 28-b2-bd-ff-ff-51-6b-d9
        Capabilities: [14c] Latency Tolerance Reporting
        Capabilities: [154] Vendor Specific Information: ID=cafe Rev=1 Len=014 <?>
        Kernel driver in use: iwlwifi
        Kernel modules: iwlwifi
Тут конфиг ядра https://bpaste.net/show/11589e84ec24 (вдруг что-то забыл включить)
Конфиг hostapd:
interface=wlp3s0
# Select driver
driver=nl80211
# Set access point name
ssid=laptop-wifi
# Set access point harware mode to 802.11g
hw_mode=g
# Set WIFI channel (can be easily changed)
channel=6
# Enable WPA2 only (1 for WPA, 2 for WPA2, 3 for WPA + WPA2)
wpa=2
wpa_passphrase=TheMostPassword
При попытке запуска hostapd с вышеупомянутым конфигом:
Configuration file: /etc/hostapd/hostapd.conf
nl80211: Could not configure driver mode
nl80211 driver initialization failed.
hostapd_free_hapd_data: Interface wlp3s0 wasn't started

А вопрос в первую очередь в том, умеет ли эта карточка вообще раздавать интеренет через Wi-Fi? И есть да, то что я делаю не так?

 , ,

kosc
()

Познаю JS в связке с Django Templates

Форум — Web-development

И пока что-то не очень успешно.
Есть модель некого девайса (Device). На html-странице отображается их список и кнопка добавления нового девайса (и прочие штуки, которые для данного вопроса значения не имеют). Для удобства сделал _device.html (принимает контекст device, что бы отобразить инфу о девайсе), и при загрузке отдельно отрисовываю его для каждого девайса (в цикле по Device.objects.all(), грубо говоря). Когда юзер добавит девайс, его надо сохранить на сервере (это сделал через ajax) и показать на странице, без перезагрузки страницы (это не знаю как сделать, но смотрю в сторону $('#devices-list').append(...); , но как читать _device.html из js - без понятие, и даже не думаю, что такое возможно).

 , , ,

kosc
()

include в шаблонах django, внутри for

Форум — Web-development

Есть кусок кода примерно следующего вида:

{% for device in devices %}
  {% include '_device.html' %}
{% endfor %}
Пробовал разные варианты. Не включает оно один шаблон в другой, хоть ты тресни. И что гораздо более обидно - не выдаёт ошибок никаких. Просто так, где должен быть html-код, его нет, а так всё отлично работает.

 ,

kosc
()

Шифрование разделов через loop-AES

Форум — Security

Собственно, сабж. Самый новый гайд, который нашёл, оказался за 2010-й год (знаю, плохо искал). В связи с этим возникает вопрос - насколько такой вариант ещё актуален? Есть ли у ЛОРовцев истории успеха? Что должен уметь проц, что бы это не сильно тормозило (у меня Core i5 4200U) ?

 , ,

kosc
()

Посоветуйте паяльную станцию и AVR-программатор.

Форум — Talks

Привет, ЛОР!
С недавних пор я немного увлекаюсь пайкой и микроконтроллерами AVR. Вот, выделилось у меня 2к рублей в бюджете на это дело. Думаю взять какую-нибудь простейшую паяльную станцию, и, если останется денег, то ещё AVR-программатор (под USB, COM-порта на моём нетбуке нет, и что бы с ним умел работать avrdude). Прошу советов по самим железкам, и по магазинам с вменяемыми ценами (СПб) - в Чип и Дип что-то не очень хочется, с их бешеной наценкой.

 , , ,

kosc
()

Что ломает qxl (spice) в qemu-kvm?

Форум — Desktop

Сразу к сути, которая такова:
Поставил в свою генту qemu, поставил в qemu Manjaro (захотелось посмотреть, насколько оно хуже/лучше арча и что вообще из себя представляет), и захотелось мне нативного разрешения экрана. На нетбуке 1366x768, а в Manjaro xrandr не умеет больше 1024x768. Включил флаг spice у qemu, пересобрал - не помогло.
Делаю так:

qemu-system-x86_64 -m 2G  -hda Manjaro.img -enable-kvm -vga qxl
При загрузке получаю:
Failed to access perfctr msr (MSR c1 is 0)
Пробовал прогуглить проблему - да всё не про меня пишут. Без указания драйвера грузится нормально. С указанием -vga std та же ошибка, хотя до пересборки qemu со spice её не было.

 , , , ,

kosc
()

Правильный™ MVC/MTV

Форум — Web-development

Почитал на вики про паттерн Model-View-Controller, и от секции про ТТУК (толстые тупые уродливые контроллеры) у меня немного пригорело. Но паттерн, который использую я, это скорее MTV - Model-Template-View. Вот при нём где правильно бизнес-логику размещать - в модели или во view?

 , , ,

kosc
()

Ищу симулятор электроцепей с поддержкой AVR

Форум — Desktop

Начал тут изучать микроконтроллеры AVR. Нужна программа под онтопик, что бы можно было эмулировать цепи с этими схемами (в первую очередь ATtiny2313). Сейчас делаю всё в Proteus 7 под вайном, но протеус показал себя падучим (каждый раз при нажати stop во время эмуляции падает), да и хочется опенсорса и нативности.
UPD: вообще, если подскажете какой любой связанный с AVR софт под линь - буду благодарен.

 

kosc
()

Flask и MongoDB (опять)

Форум — Development

На проблему из прошлого треда нашёлся таки ответ - забыл сделать import views (да, в вопросе надо было дать ссылку на сам проект, тогда сразу стало бы ясно, что там MVC.). Теперь новая беда, суть такова. Для тестов обычно используют отдельную БД, и как это сделать в данном случае - без понятия. Додумался пока что вот до чего:

import unittest
from flask.ext.mongoengine import MongoEngine, MongoEngineSessionInterface
from neobug import neobug


class NeobugTestCase(unittest.TestCase):

    def setUp(self):
        neobug.config['TESTING'] = True
        neobug.config['MONGODB_SETTINGS'] = {'DB': 'nbtest'}
        neobug.db = MongoEngine(neobug)
        neobug.session_interface = MongoEngineSessionInterface(neobug.db)
        self.app = neobug.test_client()

    def tearDown(self):
        pass
    
if __name__ == "__main__":
    unittest.main()

Вроде как это должно переопределить БД из neobug/__init__.py, но этого не происходит. Помня о прошлом опыте, таки выкладываю ещё исходники самого neobug на github (поржёте наверное над кодом, зато может кто дельный совет не по теме даст - тоже буду благодарен).

 , , ,

kosc
()

Книги по проектированию ПО

Форум — Development

Искал в гугле книги по проектированию ПО, а там везде корпоративщина, мне бы под десктоп. Что бы кратенько - задумал я написать, например jabber-клиент очередной велосипед - с чего надо начать? Сразу садиться кодить или лучше всё-таки продумать детали? И как их вообще продумывать?

 , , ,

kosc
()

Косвенная рекурсия в LL(1)-разборе

Форум — Development

Помогите избавиться от косвенной рекурсии в контекстно-свободной грамматике, что бы привести её к LL(1)-виду. Уже почти совсем отчаялся. Собственно, грамматика:

<G>::=<E>
<E>::=<A><T>
<A>::=<E>+|<B>
<T>::=<M><P>
<M>::=<T>*|<B>
<P>::=x|y|(<E>)
<B>::=λ (пустая строка)

<G> - аксиома

Гугл измучил поисковыми запросами на русском и английском (увы, больше мне не дано), спрашивал всех, до кого мог дотянуться. Вот, теперь и до ЛОРовцев дотянулся.

 , ,

kosc
()

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