2012-12-06

Распределённая сборка ядра

Сколько уже бился над проблемой - куча проблем и решений.. Вроде бы нашёл простое решение :)

Цель - влить в дружную сборочную ферму (в перспективе под разные платформы - но пока только под i386-linux) машинки с виндой на борту. В отличие от кошерных никсовых серверов используются не 24/7 но зато гораздо свежее и многопроцессорнее. И используются, считай, почти впустую.

Первоначальное решение - rdp+coLinux было неплохим. Один образ подгружался разными машинами и вливал процессорную мощу в общее дело. Минусы - нет поддержки x64 и многопроцессорности.

Второе решение - VirtualBox. Требуется установка (через rdp) - и нельзя удобно управлять через ssh (решение этой проблемы есть - но пока не пробовал ибо это время и вроде нашёл другое решение о чём далее). Почти неплохо - ибо есть многопроцессорность и x64. Да и образ как в coLinux не перекинешь - надо ещё как-то конфиги тащить. Неудобно.

Решения со сборкой cygwin+cross+linux не выходило. Либо gcc/3.xx древняя сборка, либо cygwin/gcc что не годится для сборки под gcc4/linux. Из исходников собрать пару подходов попробовал - упирался в странности и оставлял затею.

И тут внезапно обнаружил порты cygwin. Нашлось про них упоминание в теме "как собрать ядро под cygwin", спасибо Яша :)
linux-i686-gcc-core and linux-x86_64-gcc-core are available in Ports
Портами после гугления оказались вот эти добрые люди.

  1. Выбираем зеркало sf, жмякнув эту ссылку, и выбрав "try another mirror".
  2. В итоге получаем URL вида http://MIRROR.dl.sourceforge.net/project/cygwin-ports/ - её и будем вводить дальше.
  3. Запускаем инсталлятор cygwin с ключиком:
    setup.exe -K http://cygwinports.org/ports.gpg
  4. Доходим до стадии ввода URL зеркал cygwin и вводим полученный в пункте 2 в поле "User URL", жмём "Add".
  5. Важно. Следим, чтобы в списке URL были одновременно выбраны зеркала sf и ваше любимое зеркало cygwin.
  6. Выбираем в списке пакетов distcc, xinetd, cygrunsrv, i686-linux-
to be continued..

2012-09-27

Живучая Ubuntu


С неделю назад система начала вести себя странно. Скайп сообщил о невозможности записи на диск - доступный только для чтения, и своём решении из-за этого отлогиниться.

Краткий экскурс в дебри dmesg показал что это произошло из-за сбоя при записи в журнал ext4 - который в свою очередь произошёл из-за аппаратной ошибки SSD:
Add. Sense: Unrecovered read error - auto reallocate failed

Особо работать не мешало - браузер жив, терминалы в виндовые системы работают..
Ну файлы скачивать нельзя (хром как-то неоднозначно воспринимал доступный только для чтения дисковый кеш - и даже в /dev/shm писать не захотел) - слегка обидно, но опять же - терминалы с виндовым хромом живы, ssh в линуксовые системы не мешают использовать wget :)

При перезагрузке - система попросила проверить диск на наличие ошибок..
Сначала отказался - как ни странно, система успешно загрузилась и без проверки :)
Но через некоторое время опять перевела файловую систему на readonly.

Очередное утреннее включение - и выбор пункта на исправление найденных ошибок позволили теперь работать без перехода в аварийный режим :) Загрузка идёт типичные секунд 10-20. Особых проблем в работе не наблюдается. Хром летает, терминалы открываются :)
Система не зависла, не ушла на перезагрузку ("синьку") ни разу - большая часть нужного продолжает работать.

Но система таки разваливается по-частям: сначала отказал libreoffice - вылетает с коредампом, отвалились репки dpkg - apt-get вылетает с libc error..
Хром иногда теряет конфиги - но быстренько вытаскивает их из облачных недр Гугля, после ввода пароля. Вчера ещё работал чат на empaty - а сегодня уже в коредамп уходит. Его мне немного нехватает :)

Важного на ssd ничего нет (данные хранятся на винте + бекап системы опять же) - и до конца гарантии на него ещё времени полно - и переезжать особо желания нет - всего около 100 "bad sectors" на 128 гигабайт - по "статистике" dd if=/dev/sdb - будем наблюдать дальше.

Попутно пришло понимание необходимости конструкций в daemontools вида:
exec &> /dev/null
command

Если в скрипте была бы команда:
command &> logfile
то при попытке выполнить её в ro системе (то есть запись в logfile невозможна по какой-то причине - контроль доступа ли, переполнение диска, или как у меня из-за ro-диска), ничего не будет выполнено.

А если сделать как в dt - всё будет работать как и планировалось, и лишь в аварийной ситуации логи пойдут на консоль а не в файл :)

2012-09-26

ДОКЛАДНАЯ ЗАПИСКА

ДОКЛАДНАЯ ЗАПИСКА

О поведении немцев в плену в зависимости от форм обращения с ними в лагере военнопленных.

Группа немцев-антифашистов из фронтовой спецшколы под ру­ководством работников 7 отдела ПУ фронта в течение продолжитель­ного времени работала от имени НК "Свободная Германия" среди не­мецких военнопленных в симферопольском фронтовом лагере.

Антифашисты сделали ряд ценных замечаний о поведении нем­цев в плену в зависимости от форм обращения с ними.

Симферопольский лагерь имеет несколько отделений. Несмо­тря на одинаковые бытовые условия и одинаковый контингент военнопленных, поведение и настроения военнопленных в одном от­делении резко отличались от поведения и настроений в другом.

При изучении причин, обусловивших данное явление, антифа­шисты установили, что оно, главным образом, объясняется разли­чием форм обращения с военнопленными в каждом отделении.

Там, где отсутствует твердый порядок, где строгая требо­вательность к плененному врагу подменяется недопустимой мягко­телостью и где советские люди из лагерной администрации в об­ращении с военнопленными немцами не учитывают, что они являют­ся представителями народа-победителя, сильного своими мораль­ными качествами и духовным превосходством над врагом, - воен­нопленный немец быстро забывает о своем положении и в соответ­ствии с этим определяет нормы своего поведения: он начинает всячески саботировать выполнение приказов лагерной администра­ции, проявлять по отношению к ней элементы чисто немецкой наг­лости, симулировать болезни, чтобы увильнуть от работы и т.д.

Так, например, в одном из отделений вышеназванного лагеря (совхоз Красный), где администрация оказалась неспособной уста­новить твердый порядок и требовательность, и приказную форму в отношении военнопленных подменила увещеваниями, - немецкие сол­даты вскоре настолько обнаглели, что демонстративно отказыва­лись выполнять приказы лагерной администрации, преднамеренно употребляли в пищу зеленые фрукты и траву, растравляли зажив­шие раны, чтобы стать больными и получить освобождение "от ненавистной работы на русских скотов", демонстративно подчер­кивали свою наглость в отношении "излишне гуманного начальст­ва".

Так, во время 20-минутной беседы (к тому же "непринужден­ной") одного офицера из лагерной администрации с группой воен­нопленных 10 немцев, прервав беседу, потребовали, чтобы им разрешили "аустретен" (сходить в уборную). К великому удовлет­ворению немцев это наглое требование было исполнено советским офицером.

Наглость немцев в этом отделении достигла такой степени, что военнопленные, в связи с дождливой погодой, обвинили русское командование в невыполнении обещания о том, что в случае пере­хода в русский плен, они будут жить... в хороших климатических условиях.

В этом же отделении наиболее отъявленные фашистские эле­менты открыто и безнаказанно вели среди военнопленных антисовет­скую пропаганду.

Аналогичное наблюдается в Джанкойском лагере военноплен­ных. Колхозники из Шейхэлинского колхоза недавно рассказывали нам, что присланные в их колхоз на работу немцы из Джанкойского лагеря нарочито подчеркивали свое нежелание работать "на рус­ских", издевались над беспомощностью своего начальства, кото­рое не в состоянии их заставить работать. На вопрос колхозников: "Почему вы не хотите работать?" один немец на ломаном русском языке нагло ответил: "Мы пришли сюда не работать на вас, а вое­вать с вами. В плену нам выдают 600 грамм хлеба, независимо от того, работаем мы или не работаем, поэтому мы не видим смысла в этой работе".

Совершенно иная картина поведения военнопленных была уста­новлена в отделении № 3 симферопольского лагеря.

Здесь военнопленные немцы соблюдали должное уважение к ла­герной администрации, беспрекословно исполняли ее приказания и не пытались искать предлогов, чтобы увильнуть от работы.

Одной из главных причин, обусловивших такое поведение воен­нопленных, был твердый порядок, установленный в данном отделе­нии, суровая требовательность администрации по отношению к воен­нопленным и нетерпимость к малейшим проявлениям элементов непо­слушания и наглости.

Таким образом нормы поведения немцев в плену, прежде всего, определяются формами обращения с ними и их воспитания. Чем суро­вее эти формы, тем отличнее, "бархатнее" поведение пленного нем­ца, и чем неоправданно мягче эти форме, тем наглее поведение нем­ца.

Это объясняется тем, что попавший в плен немец в большинст­ве случаев, продолжая оставаться нашим убежденным врагом, все формы обращения с ним и методы воспитания рассматривает с на­цистской точки зрения о мнимом физическом и моральном превосход­стве немецкой расы, признающей единственным правом грубую физи­ческую силу.

Отсюда всякое проявление излишней мягкотелости к немцу в плену рассматривается им как показатель физической и моральной слабости русских, их "неполноценности" в сравнении с немецкой

расой.

"Русские не могут о нами обращаться иначе, - заявила одна группа военнопленных одному антифашисту, - ибо они чувствуют наше духовное превосходство над собою и свою неполноценность".

"Посмотри - заявила вторая группа военнопленных другому антифашисту (они указали на мимо проходящего, мягкого в обра­щения коменданта отделения) - на этого "унтерменш". Он бродит по лагерю, как тень. О, если бы на его месте был немецкий обер­лейтенант! Лишь одно его появление привело бы всех нас в тре­пет. И это понятно. Он немец, господин, чувствует свою данную ему богом силу и в его обращении с врагом не может быть места благодушию".

Несколько военнопленных заявили третьему антифашисту, что на поле боя под Севастополем у них сложилось превратное пред­ставление о боевом и моральном превосходстве русских над немца­ми, ибо в русском плену они убедились в обратном. "Ибо, чем объявить, - заключили эти военнопленные, - то обстоятельство, что нас кормят, не заставляя работать, а русские офицеры, проходя мимо нас, не требуют отдачи чести, как не сознанием рус­скими нашего превосходства над ними".

Таким образом, суммируя все вышесказанное, можно сделать следующие выводы:

  1. Всякое малейшее проявление неоправданной мягкости в обращении с военнопленными воспринимается ими как признак ду­ховной и физической слабости советского народа, его неполно­ценности в сравнении с немцами.
  2. Источником такого восприятия мягких форм обращения с пленными является немецко-фашистское мировоззрение о мнимом превосходстве немецкой расы.
  3. Отсюда суровая требовательность, нетерпимость к малей­шему проявлению непослушания немцев в плену и воспитание тя­желым физическим трудом являются необходимыми условиями пере­воспитания немцев и усиления влияния нашей пропаганды и анти­фашистских взглядов.
  4. Политическое воспитание, которое в симферопольском лагере находится в запущенном состоянии, должно быть прежде всего подчинено задаче развенчивания человеконенавистнической философии фашистов о мнимом превосходстве немецкой расы. В обращении с военнопленными надо постоянно подчеркивать их мо­ральную неполноценность и духовное превосходство советского народа над немецким. Это необходимое условие воспитания у воен­нопленных демократической идеологии.
  5. Советские офицеры, работающие с военнопленными, никог­да не должны забывать, что они являются офицерами армии-побе­дительницы и в соответствии с этим определять правила своего поведения. (Нельзя допускать, например, такого положения, ког­да советский офицер или боец несет на себе стол через весь ла­герь, в то время как пленные с наслаждением наблюдают эту картину).
  6. Нужно установить такой порядок, чтобы немецкий солдат, попавший в плен, с первого же дня своего пребывания в плену в поте лица своего зарабатывал себе хлеб, а не загорал на солн­це, как это можно часто наблюдать в лагере военнопленных. Нор­мы питания пленных нужно устанавливать в зависимости от сте­пени выполнения ими работы. Применять жестокие репрессии не только к отдельным немцам, саботирующим работу, но ко всей груп­пе военнопленных, к которой он принадлежит. Этот метод нами был применен весною этого года на строительстве военных дорог и полностью себя оправдал.

(4-й Украинский фронт, № 9046, 21.У1-44г.).

Сканы оригинала

2012-05-07

openwrt + openvpn

Обновил openwrt Backfire с 10.03 до 10.03.1 r29592 и столкнулся с отсутствием IP у интерфейса tun/tap после соединения с сервером openvpn. Для TPLink TL-WR1043ND образ системы претерпел существенные изменения (так что начал включать, например, все пакеты для работы usb и вафли "из коробки" - раньше требовалось доставлять пару-тройку пакетов). Но зато некоторые пакеты, стоявшие ранее - попросту исчезли (как и настройки для дополнительно установленного, вручную сконфигурированного). А сама люся потребовала обновления в ручном режиме - ибо какие-то её модули вообще отказывались запускаться под другой версией lua - и вместо веб-интерфейса получал пустую страницу - гуглинг тут сразу дал ответ. Переоживив openvpn (наиболее пострадавший - ибо его настроек в новой системе не осталось вовсе) - обнаружил неприятную "особенность". В логах пишет правильную строку запуска ifconfig - а на деле интерфейс tap0 остаётся несконфигурированным. После "ручного" вызова ifconfig со строкой из логов туннель начинает работать. Ну и роутинги переписывать заново приходилось. Сначала было лениво копать - беглый гуглинг ответа не дал. А ларчик просто открывался. Привлекло внимание сразу после перезапуска openvpn наличие процесса udhcpdс (ака клиент dhcp) для tap0. Вроде не нужен он - openvpn сам всё конфигурировать должен. И точно, как только в настройках luci поставил для интерфейса tap0 опцию "Unmanaged" вместо "DHCP Client" - как всё заработало как должно. И интерфейс поднимается правильно, и роутинги все на месте. Наблюдательность творит чудеса :)

2012-01-13

FreeBSD и zsync

Непонятно, почему FreeBSD не пользуется zsync'ом.
Нашёл через http://btdigg.org инфохеш для freebsd-9.0-RELEASE-amd64
гуглём нашёл торрент через инфохеш (чёй-то ни rtorrent ни utserver не захотели магниты искать),
скачал на vps. Вот он кстати:
Сделал zsync файлы. В итоге, например, "похожесть" disc1.iso и memstick.img составляет 93.5%

То есть, скачав FreeBSD-9.0-RELEASE-amd64-memstick.img можно, докачав менее 10% от общего размера файлов.

-rw-r--r-- 1 root   root 641787904 2012-01-13 12:47 FreeBSD-9.0-RELEASE-amd64-disc1.iso
-rw-r--r-- 1 root   root 685703168 2012-01-13 17:15 FreeBSD-9.0-RELEASE-amd64-memstick.img

zsync -i FreeBSD-9.0-RELEASE-amd64-memstick.img FreeBSD-9.0-RELEASE-amd64-disc1.iso.zsync 
reading seed file FreeBSD-9.0-RELEASE-amd64-memstick.img: 
Read FreeBSD-9.0-RELEASE-amd64-memstick.img. Target 93.5% complete.
downloading from http://bridge.h001.ru/pool/FreeBSD-9.0-RELEASE-amd64-all/FreeBSD-9.0-RELEASE-amd64-disc1.iso:
#################### 100.0% 591.2 kBps DONE      

verifying download...checksum matches OK
used 599867392 local, fetched 42277145

То есть, всего скачиваем 42 мегабайта разницы + 1.2 мегабайта zsync..

zsync -i FreeBSD-9.0-RELEASE-amd64-memstick.img -i FreeBSD-9.0-RELEASE-amd64-disc1.iso http://bridge.h001.ru/pool/FreeBSD-9.0-RELEASE-amd64-all/FreeBSD-9.0-RELEASE-amd64-bootonly.iso.zsync
#################### 100.0% 0.0 kBps DONE    

reading seed file FreeBSD-9.0-RELEASE-amd64-memstick.img:
Read FreeBSD-9.0-RELEASE-amd64-memstick.img. Target 81.9% complete.      
reading seed file FreeBSD-9.0-RELEASE-amd64-disc1.iso: 
Read FreeBSD-9.0-RELEASE-amd64-disc1.iso. Target 96.3% complete.      
downloading from http://bridge.h001.ru/pool/FreeBSD-9.0-RELEASE-amd64-all/FreeBSD-9.0-RELEASE-amd64-bootonly.iso:
#################### 100.0% 437.2 kBps DONE     

verifying download...checksum matches OK
used 140296192 local, fetched 5370156
Из двух имеющихся файликов собрали третий на 140 мегабайт, скачав всего 5.4 мегабайта + 0.3 мегабайта zsync файл.

Экономия и времени и трафика налицо..