Байка от Панкаря, про Ростелеком

Далее со слов аффтара. Интонации, очепятки и прочая хуйня сохранена для истории:
О, сегодня вспомнил историю, как я получил репутацию великого нахера, извините, хакера. Которая (репутация) некими недалекими личностями до сей поры воспринимается серьезно. Итак, дело было когда я учился в колледже (на электрика). Был у меня тогда (ужас какой) модемный инет, со скоростью аж 32 (в хорошую погоду) килобита в секунду. От всеми любимого ростелекома (тогда он вроде не так назывался). Час стоил ночью то-ли 8, то-ли 12 рублей ночью и рублей 20 днем. Причем коннект был хреновый, обрывы постоянно и хрен еще дозвонишься. В общем в стиле советских магазинов, пока подойдет твоя очередь, кончится вся колбаса. Но это не так страшно, страшно то, что на приеме денег у этих пассивных гомосексуалистов сидело быдло, нет, даже БЫДЛО с восклицательными знаками и капсом, а еще базу, походу, тоже писали пассивные гомосексуалисты, либо быдлобабам из кассы лень (или ламерши) было найти абонента по ФИО, и для оплаты своих недоуслуг они требовали Великий и Священный Номер Договора (мало ли по ФИО тебе за интернет заплатит американский шпион). Номер договора был малозапоминающийся и далеко не короткий. А еще хамство.
Но это предыстория, теперь история.
Заебали эти тетки и меня-то до белого каления, а тут провела себе интернет одна примечательная женщина, кем она работала и имя ее пусть останется тайной, но мне она была очень дорога… Пошла она однажды платить за интернет, а поскольку платила второй или третий раз, то забыла Великий и Священный Номер Договора, ее деревенское быдло на кассе обхамило и послало домой.
На следующий день я знал о сей печальной истории, и в голове у меня созрел план (семена не дам).
Позвонил я подруге (с мобильника, это важно) и попросил подыграть.
Далее мы, с упомянутой выше женщиной, отправились в быдлокассу быдлотелекома с целью заплатить за интернет, естественно, ее номер договора был предварительно сохранен в СМС, а ей я сказал, чтоб она опять повторила ту же ситуацию, т.е. сказала дебилке на кассе вместо номера договора свое ФИО.
Так и сделали. Далее в лицах.
Дебилка на кассе (ДНК): хуемоебараньияйца ваш номер абонента.
Наша женщина (НЖ): Ой, я забыла, может по имени найдете? Я Ефросинья Сергеевна Иванова, живу на Пролетарская стрит, 666, кв 222.
ДНК: Да вот еще, буду я тут ногти свои лаковые об клавиатуру портить, да ваше ФИО вбивать… П%йте домой за номером договора
Я: (стою за ней в очереди, типа тоже абонент за хренонет ихний заплатить пришедший) Ой, женщина, извините, как ваше ФИО?
НЖ: (повторяет)
Я: (достаю телефон, набираю номер). Эллочка, тут сельское быдло не может на кассе ростелекома в фамилию имя и отчество, фио такое-то, посмотри пожалуйста ее номер договора в базе?
Эллочка (Э): В какой базе?
Я: В базе хуйтелекома, конечно-же.
Э: Как я посмотрю?
Я: Ну Эллочка, я же тебя учил… Как учил, так и входи.
Э: А, ага, вошла. Как абонента зовут и где живет?
Я: Ефросинья Сергеевна Иванова, Пролетарская стрит, 666, кв 222.
Э: Нашла! Ей надо денег положить?
Я: Не, вышли номер договора, денег она и сама положит, через кассу, мы ж не хакеры какие-то.
(приходит СМС)
Я сообщаю номер договора женщине, кассир вбивает, совпадает ФИО и адрес, кассир чувствует себя как рыба об лед.
Дедок, наблюдающий эту картину: ээээ… молодой человек, а вы ментов не боитесь?
Я: (на ухо деду) в этой стране все куплено 🙂
Не помню только, когда дед появился, то-ли сразу за мной, то-ли у офиса на выходе спросил (помню, что покурил потом постоял у офиса и плюнул им на дверь).
Занавес!
Такие дела.
ЗЫ: выделять такую большую цитату с моими исправлениями курсивом, мне показалось не нужным. Потому курсив стер.

Играет музыка: 8-bit
Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/332545.html
Прокомментировать заметку можно по ссылке выше.

Отключение/включение сетевой карты с помощью DEVCON.EXE

Я тут Devcon упоминал, и вот для чего. Задача такая, склепать батник для включения/выключения сетевой карты. Решаем:

Что потребуется:

Рабочий Devcon.exe
Поиск ID сетевой карты
Для начала надо найти ID сетевой карты, для чего выводим список PnP-устройств в текстовый файл:
devcon.exe rescan
devcon find PCI* > PNP.log
Сетевая карта (даже встроенная) обычно висит на шине PCI.
В файле PNP.log будет что-то типа этого:

А вот и наша сетевая карта (подчеркнута красным)

Выдираем ее ID, с помощью которого и будем ей рулить.
Открываем файл на редактирование, ищем название и то, что начинается от первого слэша с конца, до первого с конца двоеточия и будет искомым идентификатором:
PCIVEN_10EC&DEV_8168&SUBSYS_83A31043&REV_03
Этот ID для команды включения/отключения можно и сократить, например до ID производителя+ID оборудования, поставив в нужном месте звездочку (*), например так:
PCIVEN_10EC&DEV_8168*
Но если вдруг у вас 2 одинаковые сетевые карты (на серверах бывает) — вырубятся обе.
Отключение устройства

Выполняется одной простой командой:
devcon disable <device_id>
где вместо <device_id> подставляем ранее найденный ID устройства. Т.е. в случае моей тестовой машины, команда выглядит как:
devcon disable "PCIVEN_10EC&DEV_8168&SUBSYS_83A31043&REV_03"
Включение устройства
Не менее простая команда:
devcon enable <device_id>
т.е. в моем случае:
devcon enable "PCIVEN_10EC&DEV_8168&SUBSYS_83A31043&REV_03"
ВАЖНО!
device_id необходимо взять в кавычки!!! Иначе командный интерпретатор примет (из-за наличия в ID амперсанда — т.е. символа &) одну команду за последовательность команд, и тогда выполнится первая disable PCIVEN_10EC, т.е. отключатся все PCI-устройства данного производителя, а остальные завершатся с ошибкой типа такой: "DEV_8168" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Готовые батники на pastebin

Включить сетевую карту
Отключить сетевую карту

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/332413.html
Прокомментировать заметку можно по ссылке выше.

наезд на кдассику часть 1.

состоит из одного вопроса.
и я буду рад, если кто нибудь до Вениамина донесет вопрос.
Нахуя эта классика вообще нужна? Нахуя мне пиздострадания им. Толстова 19 века?
Безотносительно к тому же Толстому. Для тупых ватников своего времени он был даже ня!
Но вот его поцреотически-женский роман (Война и Мир) я вообще воспринять не могу.
Этот роман типа комментариев в Пикабу. Ватно, вот и все.
Итак, финальный вопрос. Гуммонетарии, любитнли ТОлстого пишут мне в комментах формулу тока для полной цепи, без гугля.
Не знаете, ОК.
Я знаю, и эта формула имеет гораздо более прямое отношение upd — к жизни , чем вся ваша ебучая классика, и весь ваш Толстой. Потому-что бесят безграмотные мудаки, которые щщетают, что через «Пилот» можно подключать чайники, телевизоры… Да пошли вы нахуй!!!

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/332226.html
Прокомментировать заметку можно по ссылке выше.

Меня вставило!

Однажды в сказке 2
Снежная королева живет в Кремле.
Изучает Россию без микроскопа.
Кай составляет фразу «Рай на Земле»,
А получается… Правильно, Пенелопа
Ждет второго пришествия. Остров Крым
Готовится к праздничному джихад-параду.
Мне приснилось, что я в Ленинграде. Сквозь белый дым
Иду по солнечному Ленинграду.
На Дворцовой киоски – вплоть до Зимнего – снесены.
Город преобразился после лечения.
В Снежную королеву все влюблены.
Герда работает в Министерстве полного улучшения.
Сорокинъ же почти.
(c) [info]elesin@ljr

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/331808.html
Прокомментировать заметку можно по ссылке выше.

DEVCON.EXE Консольный аналог Диспетчера устройств (для XP)

К XP, во всяком случае к XP Professional SP3 подходит Devcon от Windows Server 2003
Взять можно здесь:
Прямая ссылка
Ссылка на страничку на сайте Microsoft
Скачиваем cab-архив, оттуда извлекаем devcon.exe
На всякий случай переложил себе (мало ли MS с сайта уберут)
support.cab
devcon (zip)

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/331569.html
Прокомментировать заметку можно по ссылке выше.

Ввод только цифр в текстовое поле

private void txtNumberField_KeyPress(object sender, KeyPressEventArgs e)
{
//ввод только цифр
if (!(Char.IsDigit(e.KeyChar)))
{
if (e.KeyChar != (char)Keys.Back)
{
e.Handled = true;
}
}
}

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/331372.html
Прокомментировать заметку можно по ссылке выше.

Одному донецкому ватнику посвящается

По заявкам читателей песня, на Радио Ультхар.

Cкачать Ышо-Ышо За базаром не следил бесплатно на pleer.com
Радио Ультхар. Оставайтесь с нами. Все будет Хаос.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/331216.html
Прокомментировать заметку можно по ссылке выше.

Это голос высокой ТРАВЫ! Песня детства.


Cкачать Это что-то.. это стук по крыше бесплатно на pleer.com
Под панк переделать бы.
Мистическая песня.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/330881.html
Прокомментировать заметку можно по ссылке выше.

Классификация бытовых и политических опасностей

Электричество — хуичество!
Радиация — хуяция!
Микробы — уебы!
Но газ — вааще пидарас!

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/330579.html
Прокомментировать заметку можно по ссылке выше.

Определение IP и местоположения пользователя посетителя сайта 5.

Пришедшие вчера за помощью студенты натолкнули на мысль окончательно завершить данную тему.
Итак, чего не так в нашем скрипте для определения IP и местоположения пользователя?
А не так то, что мы анализируем лишь один содержащий IP параметр: REMOTE_ADDR. Т.е. на самом деле это правильно, как сказано в замечательной статье. Но всей информации мы можем не увидеть, и даже у пользователя из какой-нибудь Сызрани, сидящего через не анонимный прокси, вместо Сызрани будет гордо высвечиваться какой-нибудь Вашингтон. Исправим это, поступив точно так, как рекомендуют поступить в вышеозначенной статье. Поле REMOTE_ADDR будем анализировать в качестве первичного и основного источника информации, а потом пробежимся по всем заголовкам HTTP_ (VIA, X_FORWARDED_FOR, X_CLIENT_IP и т.д., сколько найдем), достанем из них все, что соответствует шаблону IP, скормим определялке географического положения и выдадим в качестве дополнительной информации.
Пользователь может сидеть не через единственный прокси, а через каскад (тоже не анонимный, хехе). В таком случае, в одном или нескольких заголовках HTTP_ могут быть перечислены несколько прокси, причем тут нет никаких стандартов. Вполне возможна ситуация «кто в лес, кто по дрова»: прокси будут перечислены через запятую, пробел, через знак |, двоеточие. Это тоже нужно учесть.
Read more…
Получился скрипт, выдающий данные об IP пользователя в виде, удобном для машинной обработки (например приложению или скрипту для ведения логов).


Каскад прокси

Анонимный прокси, заполняющий несколько заголовков HTTP_

Скачать. Посмотреть код на PasteBin Посмотреть в работе
Впрочем, совсем не составляет труда сделать ему вид, более радующий глаз человека:
1. В строке header('Content-type: text/plain; charset=utf8'); изменим text/plain на text/html
2. Модифицируем сообщения скрипта.
3. Добавим код, выводящий оформление HTML (2 и 3 см. в самом скрипте ниже)

Каскад прокси
Анонимный прокси, заполняющий несколько заголовков HTTP_

Скачать. Посмотреть код на PasteBin Посмотреть в работе
Предыдущая серия

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/330304.html
Прокомментировать заметку можно по ссылке выше.

***

Растяни меха, гармошка!
Эй, давай наяривай!
Пей мельдоний Бабка-Йожка,
Пей, не разговаривай!

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/330166.html
Прокомментировать заметку можно по ссылке выше.

Несколько конфигураций сетевого адаптера Windows.

Быстрый способ переключения настроек.

Бывает так, что нужно сохранить и переключать время от времени несколько конфигураций сетевого адаптера в Windows, например, вы ходите по разным организациям с ноутбуком, подключаетесь по кабелю (да-да, не везде есть Wi-Fi, от жадности или в целях безопасности). В одной организации выделение IP происходит автоматически, через DHCP, в другой — надо все вводить вручную, в третьей, тоже вручную, но IP другие. 8 и 10 вроде могут сохранять конфигурации для нескольких сетей, а вот 7 и XP такого не умеют. Вот способ сделать все штатно, через командную строку Windows, с помощью утилиты netsh
Пусть, для примера у нас будут 3 сети с разными настройками:
Для них мы создадим три командных (batch) файла. При соединении с конкретной сетью запускается соответствующий batch-файл.
Да, поскольку у меня на ноутбуке XP, то и команды будут именно для XP. В 7 и выше синтаксис команд netsh вроде немного отличается.
Внимание! Для корректной работы с сетевыми интерфейсами, имена которых содержат русские буквы, batch-файл должен быть сохранен в кодировке DOS (866)
Сеть 1. Все настройки получаются через DHCP


Самый простой случай. В batch-файле содержится единственная команда:
netsh interface ip set address "Подключение по локальной сети" dhcp
где:
interface ip - указание, что операция будет производиться с интерфейсом ip (v4).
set address — устанавливаем адреса
"Подключение по локальной сети" — имя подключения
dhcp — тип получаемого адреса, по DHCP
Сеть 2. Все настройки указываются вручную, все адреса статические.

Установка адресов:
netsh interface ip set address "Подключение по локальной сети" static X.X.X.X Y.Y.Y.Y Z.Z.Z.Z M
где (исключая упомянутое в предыдущем пункте):
static — тип получаемого адреса, статический
X.X.X.X — IP компьютера (точнее, его сетевого интерфейса)
Y.Y.Y.Y — маска подсети
Z.Z.Z.Z — адрес основного шлюза
M — Метрика шлюза. Если у вас всего 1 сетевая карта, то указываем 1:
Метрика — определяет оценочную метрику маршрута в целых числах (от 1 до 9999) и используется при выборе из нескольких маршрутов в таблице маршрутизации наиболее точно соответствующих адресу места назначения пересылаемого пакета. Выбирается маршрут с наименьшей метрикой. Метрика может отражать количество скачков, скорость передачи, надежность пути, его пропускную способность или административные настройки.
Т.е. в нашем случае команда выглядит так:
netsh interface ip set address "Подключение по локальной сети" static 192.168.1.11 255.255.255.0 192.168.1.1 1
Добавляем первичный DNS:
netsh interface ip set dns "Подключение по локальной сети" static 10.20.0.5
Добавляем вторичный DNS:
netsh interface ip add dns "Подключение по локальной сети" 10.20.0.4

Внимание!
Команда именно add а не set.Хотя командой add можно и первый добавить.
Сеть 3. Все адреса статические. Некоторые параметры не указаны.


Примечание:
Такую конфигурацию можно использовать для отключения компьютера от интернета, но сохранив доступ к локальной сети.
netsh interface ip set address "Подключение по локальной сети" static 192.168.0.6 255.255.255.0 none
Команда установки адресов отличается только словом none на месте адреса шлюза. Т.е. указывает, что шлюз не указан
Внимание! Всегда лучше явно указывать отсутствие шлюза. Почему? Да потому что, если до этого в настройках был указан IP шлюза, то без явного указания (словом none), того, что шлюз не нужен, netsh программа оставит этот параметр без изменений.
Удаляем DNS-адреса:
netsh interface ip delete dns "Подключение по локальной сети" all
(вместо all можно указать конкретный адрес, если нужно удалить только его).
Источники

1. Using Netsh (на буржуйском)
2. Netsh commands for Interface IP (на буржуйском)
3. Настройка нескольких шлюзов в сети

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/329789.html
Прокомментировать заметку можно по ссылке выше.

Речевка для митинга

Требованье наше
Проще два плюс два!
В топку Два Два Восемь
И Два Восемь Два!
Кстати, статья 228 даже, наверное, более фашистская, чем 282. И гораздо более массовая. Просто почему-то большинство, даже вполне оппозиционно настроенных людей думает, что по 228 сидят исключительно барыги, барыжащие тоннами героин и «крокодил», или ставящиеся декалитрами того же героина наркоманы. А чтоб сесть, достаточно вообще забрать «закладку» со спайсом, или грамм 5 реагента чисто для себя заказать, и следствие вряд ли будет ебать то, что ты эти граммы никому не продашь, а сам тихо, даже лучшим друзьям не сказав, употребишь в жало ночью под одеялом.
Спросите у любого молодого человека в ГОРФ, каждый наверняка знает того, кого по 228 преследовали (если даже сам не попадал).
В общем, за мелкую фигню сидит довольно большое количество народа. Статистику мне гуглить лень, но поверьте уж на слово — цифры колоссальные, ЕМНИП, чуть ли не каждый четвертый в российской тюрьме.
Огромный протестный ресурс (учтите семьи заключенных). Если какое-то протестное движение догадается этот ресурс в нужный момент и правильно использовать, думаю, ему будет огромный плюс.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/329589.html
Прокомментировать заметку можно по ссылке выше.

Определение момента, когда поднялся VPN тоннель.

Версия 2. Исправленная и дополненная.

Преамбула.

Продолжаю начатое тут.
Обычно тоннель поднимается командой pppd call providername где providername – файл настроек соединения в /etc/ppp/peers. Команда особого интерактива не дает, а хотелось бы, например, чтоб выводился «прогресс-бар», когда соединение устанавливается, а по прошествии максимального времени ожидания, если соединение так и не поднялось, выводилось сообщение о таймауте. Если соединение поднялось до истечения таймаута – выводилось сообщение об успехе.
Скрипту будет передаваться единственный параметр – имя необходимого файла настроек соединения из /etc/ppp/peers
Что должен делать скрипт.

1. Проверить собственные параметры, и если файл настроек не указан – выдать соответствующее сообщение и прекратить работу.
2. Проверить наличие переданного файла настроек
3. Проверить, не поднято ли уже это соединение, если поднято – выдать сообщение и прекратить работу
4. Проверить параметр настройки unit – номер будущего интерфейса ppp. Если его нет – найти первый свободный (его и использует pppd). Если параметр unit присутствует, то проверить, свободен ли он, если нет – найти первый свободный.
5. Запустить установку соединения.
6. В цикле проверять, установилось ли оно, или истек заданный таймаут
7. По завершению цикла оповестить пользователя об успехе или истечении таймаута.
Недочет предыдущей версии скрипта.

Главный недочет предыдущей версии скрипта — жестко заданная проверка наличия соединения командой ping, после получения сведений об установленном соединении из вывода команды ifconfig. Пинговался адрес полученного шлюза. Дело в том, что некоторые провайдеры не позволяют пинговать шлюз, или вообще отключают возможность использования протокола ICMP, поэтому необходимо дать пользователю возможность через параметры командной строки указать, нужно ли использовать дополнительную проверку с помощью ping и какой адрес в случае необходимости пинговать.
Заодно мною были добавлены дополнительные информационные сообщения, а также немного видоизменен основной рабочий цикл.
Read more…
Скрипт на pastebin
Скачать с mega.nz
Бонусом сделал еще одну версию

Куда прикрутил обратный отсчет времени с мельницей, скрестив этот скрипт с вот этим.
Скрипт на pastebin
Скачать с mega.nz

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/329224.html
Прокомментировать заметку можно по ссылке выше.

Pastebin портит bash-скрипты? Или я что-то не так делаю?

Скачал оттуда свой же скрипт, у которого были нормальные линуксовые концы строк, открываю скачанный файл, а там виндовые Cr+Lf, бля.
Что это? Oo

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/329102.html
Прокомментировать заметку можно по ссылке выше.

На тему межлокального

Инитэрдэль-терьер
(из классификатора «Эсхатологические мутанты»)

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/328815.html
Прокомментировать заметку можно по ссылке выше.

местное

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

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/328633.html
Прокомментировать заметку можно по ссылке выше.

Сменил публичный e-mail

В связи с необходимостью периодически посещать inbox.com
На inbox.lv вроде не надо регулярно заходить в веб-междумордие.
Итого:
hexxladen[inu]inbox.lv

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/328419.html
Прокомментировать заметку можно по ссылке выше.

Чиним поддержку криптографии и ошибку при запуске tcplay в Puppy Slacko 5.5. Часть III

Преамбула

Этот способ несколько сложнее, но ненамного.
Что сделаем:
1. Пересоберем ядро с поддержкой криптографии
2. Встроим tcplay в основную систему, т.е. после наших манипуляций он будет доступен «из коробки»
Преимущества:
— Не надо больше ничего делать
Недостатки:
— Способ требует больше движений
Начало
Тут я забегу немного вперед, и скажу, чтоб наше ядро (и соответственно далее Puppy Linux) запустился корректно, нам будет необходима поддержка UnionFS в ядре. На официальном сайте UnionFS я не нашел патч для поддержки UnionFS для версии оригинального ядра 3.2.33, поэтому выбрал ближайший патч для ядра версии 3.2.62 и, соответственно, решил изменить оригинальную версию ядра. На самом деле я долго, местами методом тыка пытался подружить оригинальное ядро с патчем для других версий, но не получилось, чтоб не загружать заметку, оставлю путь за кадром.
Если мы скомпилируем ядро без патча UnionFS, то при запуске операционной системы мы получим примерно такую картинку:

Подготовка
Нам необходимы:
1. Исходники ядра, которые можно взять здесь
2. Патч для поддержки UnionFS для новой версии ядра
3. Комплект разработчика, для соответствующей версии Puppy Linux, если мы будем собирать ядро в ней, или же «большой» Linux, в котором есть все нужные инструменты. (см. предыдущую заметку )
4. Комплект для работы со SquashFS, чтоб разобрать основной файл Puppy Linux Slacko, добавить туда, что нам надо, собрать обратно и оттестировать. Я на «большом» Линуксе просто скачал squashfs-tools-4.2 через sbopkg, но кому мало ли надо, вот оф. сайт
Внимание! Если собирать ядро в Puppy, то следует делать это на внешнем разделе, на котором имеется достаточно места, не следует собирать ядро в стандартных директориях, изменения в которых сохраняются в персональный файл. В противном случае место в файле сохранения и оперативная память быстро кончатся и процесс может до конца и не дойти.
Я собирал новое ядро для Puppy в «большом» линуксе.
Приступаем

1. Распакуем исходники ядра в отдельную директорию.
2. Скопируем в эту директорию патч для поддержки UnionFS
3. Распакуем его командой gunzip unionfs-2.6_for_3.2.62.diff.gz
4. Применим патч
patch -p1 -i <имя файла заплатки>
т.е. для нашего случая
patch -p1 -i unionfs-2.6_for_3.2.62.diff
Конфигурирование

Вообще это самый большой, больной и неоднозначный вопрос при сборке ядра, посему тут мне придется отослать читателя к более подробному и обстоятельному материалу, ссылки на который будут в конце заметки.
Я же остановлюсь только на некоторых моментах, которые непосредственно важны для нашей задачи.
Итак, у меня имелся в наличии готовый конфиг (который можно скачать здесь), и я подправил в нем только некоторые моменты
Во-первых, копируем файл .config в директорию с исходниками ядра.
Во-вторых, открываем в любом удобном текстовом редакторе файл Makefile, находящийся в директории с исходниками, ищем в нем 4 строчку сверху: EXTRAVERSION= и дописываем туда, что-нибудь типа -pcry (Puppy с поддержкой криптографии). Эта настройка добавит к имени ядра соответствующий постфикс, и кто-нибудь, случайно скачавший мое изделие, будет знать, что ядро не нативное, и возможно в нем работает криптография, но что-нибудь другое важное отвалилось :))
Наконец, запускаем конфигурирование командой
make menuconfig
Далее идем в раздел Cryptographic API и устанавливаем переключатели так, как это указано на нижеследующих картинках.
1 2 3
Далее идем в File systems и обязательно включаем в ядро поддержку Ext2, Ext3 и Ext4 файловых систем
В разделе File systems ищем подраздел Miscellaneous filesystems, заходим в него и проверяем, чтобы Union file system, был встроен в ядро <*>, а также проверяем, что в ядро встроена SquashFS 4.0
1 2 3
Собираем ядро

В директории с исходниками запускаем команду make bzImage
И идем пить чай, или водку. Возможно, с учетом скорости работы компьютера, и из самовара.
Далее собираем модули
make modules
И опять идем пить из самовара
На сборку ядра на селероне с 2.2 ггц тактовой частоты и 1 Гб оперативной памяти ушло 15 минут, а модули собирались час.
Подготавливаем ОС.

Внимание! Операции по подготовке ОС, разборке главного файла, его сборке и внедрению новых программ лучше выполнять из под root, чтоб не слетели права на некоторые системные файлы.
Команды make modules_install и make install также выполняются с правами root
1.Сначала разбираем основной файл slacko 5.5. — puppy_slacko5.5.sfs
2.Качаем необходимые пакеты LVM2, tcplay и Multipath tools. Ссылки здесь
3.Распаковываем пакеты, каждый в отдельную директорию
4. Копируем файл puppy_slacko_5.5.sfs в отдельную директорию, и, что называется, разбираем на запчасти, точнее распаковываем.
unsquashfs puppy_slacko_5.5.sfs

Образуется директория squashfs-root с содержимым sfs-файла
5.Теперь соберем все модули в одну кучу, на «большом» Линуксе это проблемы не представляет, а вот на Puppy должно хватить места в файле сохранения.
Переходим в каталог с исходниками ядра и выполняем команду
make modules_install
Если вы работаете не через удаленный терминал, то направьте вывод команды в текстовый файл:
, например
make modules_install >/mnt/sdb1/kernel/ok/out.txt
6.Создаем отдельный каталог (что-нибудь типа /mnt/sdb1/kernel/ok), в нем подкаталог lib, а в подкаталоге lib подкаталог modules и копируем в него каталог 3.2.62-pcry из /lib/modules
Дальше идет небольшой геморрой, надо скопировать все собранные Firmware-модули. Что это такое, можно прочитать, например тут. Поскольку я делал все манипуляции на удаленном компьютере через терминал, я просто скопировал из окна терминала нужные мне данные (они есть в выводе команды make modules_install) и написал 2 скрипта, облегчающих мне работу.
Нужная мне часть из вывода команды
Первый создает в моем рабочем каталоге нужную мне структуру подкаталогов (запускается в /mnt/sdb1/kernel/ok/lib/firmware), а второй копирует нужные файлы.
7. Подготавливаем новый sfs-файл, в директорию squashfs-root копируем (далее все пути относительно squashfs-root)
-Директорию 3.2.62-pcry в lib/modules (и удаляем из lib/modules 3.2.33-4g)
-Директорию firmware в lib и при необходимости заменяем нужные файлы
-Из распакованных пакетов копируем в корень squashfs-root все директории со всеми файлами, кроме директорий install
-Создаем в каталоге squashfs-root 3 скрипта 1 2 3, это doinst-скрипты, можно скопировать их из директорий install соответствующих пакетов, им нужно поставить права на исполнение и выполнить, после чего их можно удалить.
8. Выходим из squashfs-root и собираем основной файл Puppy Linux
squashfs-root puppy_slacko_5.5.sfs

Установка нового ядра и главного файла

1. Делаем копию puppy_slacko_5.5.sfs и файла ядра vmlinuz
2. Если вы работали в "большой" ОС, также стоит сделать копию каталога /boot и конфигурации загрузчика
3. Копируем новый главный файл на место предыдущего (он будет немного больше прежнего по размерам, это нормально).
4. Переходим в каталог с исходниками ядра и выполняем команду make install
5. Копируем из /boot vmlinuz вместо файла vmlinuz оригинального Puppy и при необходимости восстанавливаем /boot и конфигурацию загрузчика.
Если что-то не получилось

Или же что-то не устраивает, то всегда можно ядро подправить, пересобрав заново с нужными опциями. Итак, чтобы "вернуть все в зад" нужно:
1. Перейти в каталог с исходниками ядра и скопировать куда-нибудь файл .config, чтобы потом не выполнять конфигурирование заново.
2. Ввести команду make mrproper (Эта команда нужна для удаления временных файлов, созданных при предыдущей сборке. Она удаляет также все настройки, которые Вы сделали во время прошлой сборки.)
Вернуть .config обратно, снова запустить make menuconfig, отконфигурировать заново и запустить make bzImage (ну или make modules, если косяк связан с каким-то модулем, а не с настройкой ядра). Можно отдельно независимо пересобирать ядро и модули (и даже не все модули целиком, а только некоторые из них) если вы знаете, в каком конкретно модуле косяк. Патчи ядра сохраняются и после выполнения очистки.
Небольшая неудача с loglevel

У меня так и не получилось штатными средствами сбросить Default message log level при сборке ядра на уровень 0, как это походу было сделано в оригинальном ядре, и при загрузке выскакивали лишние сообщения ядра, портившие оригинальную красивую загрузку Puppy, патчить ядро я не решился (чтоб чуть что все таки можно было посмотреть вывод ошибок), и просто оставил уровень по умолчанию. А эстетичную загрузку можно вернуть, дописав loglevel=0 в качестве параметра ядра при загрузке, в настройке загрузчика:
kernel /slacko/vmlinuz ro vga=normal loglevel=0

Готовый дистрибутив

Можно скачать тут Puppy Slacko 5.5. NonPAE Crypto Mod

Использованные источники

1. Ставим ядро 2.6, или Ядерная физика для домохозяйки. Версия 2.0 Копия
2. Сборка ядра linux 3.4.* Копия
3. Работаем с модулями ядра в Linux Копия
4. Debugging by printing

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/328027.html
Прокомментировать заметку можно по ссылке выше.

Чиним поддержку криптографии и ошибку при запуске tcplay в Puppy Slacko 5.5. Часть II.

Преамбула
Что сделаем:
— Встроим tcplay, сопутствующие утилиты и необходимые модули в основной файл Puppy Slacko, чтоб tcplay был доступен «из коробки».
Плюсы:
— tcplay и недостающие криптографические модули будут работать из коробки, даже если файл сохранения с соответствующими изменениями испортился/потерялся.
Минусы:
— способ требует больше движений, но все-таки меньше, чем, если полностью пересобирать ядро.
— немного увеличится размер главного файла.
Что требуется.

1. Предварительно собранные модули для PAE или Non-PAE версии Slacko. См. соответствующую здесь
2. «Большой» Linux или Puppy с комплектом разработчика.
3. Комплект для работы со SquashFS, чтоб разобрать основной файл Puppy Linux Slacko, добавить туда, что нам надо, собрать обратно и оттестировать. Я на «большом» Линуксе просто скачал squashfs-tools-4.2 через sbopkg, но кому мало ли надо, вот оф. сайт
4. Необходимые пакеты LVM2, tcplay и Multipath tools. Ссылки здесь
5. Скрипт, загружающий модули.
Примечание: ниже описанным образом можно встроить и другие программы, которые недоступны из коробки, только не переусердствуйте, чтоб сильно не раздуть главный файл sfs.
Начинаем

Внимание! Операции по подготовке ОС, разборке главного файла, его сборке и внедрению новых программ лучше выполнять из под root, чтоб не слетели права на некоторые системные файлы.
Примечание:
придется много чего распаковывать, копировать, пользуйтесь mc для удобства
1. Помещаем главный файл puppy_slacko_5.5.sfs в отдельный каталог и распаковываем командой unsquashfs puppy_slacko_5.5.sfs. По окончании процесса, в каталоге образуется подкаталог squashfs-root с содержимым sfs-файла.
2. Если вы скачали готовые модули, то просто распакуйте в каталог squashfs-root каталоги bin и lib из архивов, при необходимости заменяя файлы. Если вы сами собирали модули, руководствуясь предыдущими заметками, скопируйте их в подкаталог lib/modules/XXX.XXX.XXX/kernel/crypto подкаталога squashfs-root где XXX.XXX.XXX — версия ядра, а также создайте в подкаталоге bin скрипт tcplay-mod:

#!/bin/bash
echo "Loading modules..."
modprobe lrw
modprobe xts
modprobe cbc
modprobe rmd160
modprobe sha256
modprobe wp512
modprobe aes
modprobe serpent
modprobe twofish
modprobe dm-crypt
echo "Complete!"
И назначьте ему права на исполнение
3. Модифицируйте файл squashfs-root/etc/rs.d/rs.local дополнив его командой /bin/tcplay-mod >/logmod, если вы не используете файерволл Puppy, закомментируйте предыдущую строчку. Вывод процесса загрузки модулей будет происходить в файл /logmod, при необходимости это можно будет использовать для отслеживания ошибок при запуске модулей.
4. Назначьте файлу squashfs-root/etc/rs.d/rs.local права на исполнение.
5. Распакуйте в отдельный каталог пакет поддержки LVM2
6. Скопируйте из этого каталога все подкаталоги, кроме подкаталога install в каталог squashfs-root
7. Скопируйте из подкаталога install в каталог squashfs-root скрипт doinst.sh
8. Установите ему права на выполнение, запустите, после чего удалите его.
9. Повторите пункты 5-9 для остальных пакетов (tcplay и Multipath tools)
Готово!

Теперь обратно нужно собрать главный файл, выходим из директории squashfs-root на уровень выше и выполняем команду:
mksquashfs squashfs-root puppy_slacko_5.5.sfs
Размер полученного нового главного файла увеличился примерно на 9 мегабайт, и приблизительно мегабайт на 15 увеличится, если добавить туда отсутствующий из коробки mc и обновить некоторые плагины к Firefox.
Готовые главные файлы

Puppy_slacko_5.5.sfs (PAE)
Puppy_slacko_5.5.sfs (non-PAE, 4G)

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/327863.html
Прокомментировать заметку можно по ссылке выше.