вторник, 12 апреля 2011 г.

12 апреля - День космонавтики

поздравляю всех с 50й головщиной полета человека в космос.
Думаю про значимость этого события для человечества говорить не надо.

Изображение

Изображение

Изображение

Изображение

понедельник, 11 апреля 2011 г.

Компилируем ядро Linux в Ubuntu


Итак, для начала разберемся что такое ядро и с чем его едят.


А что же такое - ядро?
К этому вопросу следует подходить со всей ответственностью, поэтому обратимся к материалу википедии.

Linux — ядро операционной системы, соответствующее стандартам POSIX. Разработка была начата финским студентом Линусом Торвальдсом в 1991 году.
В основном код написан на Си с некоторыми расширениями gcc и на ассемблере (с использованием AT&T-синтаксиса GNU Assembler).


Конечно, это немножко грубо, поэтому обратимся так же к документации IBM.
Ядро Linux - это центральная часть большой и сложной операционной системы. При этом, несмотря на колоссальные размеры, оно имеет четкую структурную организацию в виде подсистем и уровней.
Ну и, конечно, я добавлю немножко от себя.
Ядро - это по факту прослойка между железом и непосредственно компонентами, которые входят в операционную систему. Ядро отвечает за управление памятью, процессами, их взаимодействие и многое другое. Это важнейший компонент во всей системе.


А что собираемся делать?

Постараюсь вкратце описать последующие действия:
  • Нужно добыть исходники ядра
  • Настроить конфиг по желанию. (В конфиге находится вся информация о том, что нужно включать в ядро, что нужно сделать модулем, а что вообще не надо трогать. На данный момент мы воспользуемся уже готовым конфигом, с которым система работает в данный момент - это железобетонный вариант, ибо все будет работать)
  • Ну и скомпилировать все и собрать в deb-пакет.

А где взять исходники ядра и какие они бывают?

На самом деле есть много разных вариаций ядра - с патчами для ubuntu, с патчами для gentoo и еще всякие разные. В моем посте я буду рассматривать так называемые "ванильные" ядра. Это ядра, взятые непосредственно с сайта kernel.org. Эти ядра находятся в таком состоянии, в каком их непосредственно оставили разработчики: то есть без всяких патчей и прочих плюшек.


Ну и ваша цель - зайти на kernel.org и скачать последнюю стабильную версию ядра. На данный момент это версия 2.6.37




Я готов! Терминал открыт! Погнали!

Сразу предупрежу, работать мы будем в папке /usr/src. В консоли лучше сразу перейти туда и с помощью wget скачать исходники.
  1. Качаем исходники ядра:

    sudo apt-get install wget
    cd /usr/src
    sudo wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.tar.bz2
  2. Итак, для начала вам понадобятся пакеты для компиляции и сборки ядра в пакет .deb

    sudo apt-get install fakeroot build-essential libc6-dev gcc binutils-dev
  3. Далее для удобства я посоветую вам сидеть под рутом. Только никому ни слова! И никаких лишний телодвижений! ;)

    sudo -s
  4. Итак, теперь работаем под рутом. И в папке /usr/src. Распакуем наш архив:

    tar xvf linux-2.6.37.tar.bz2
  5. Теперь в появилась папка /usr/src/linux-2.6.37. Далее перейдем в нее:

    cd /usr/src/linux-2.6.37
  6. Скопируем старый конфиг в папку с исходниками, только с именем .config
    тут уже понадобится пораскинуть мозгами и выбрать конфиг последнего ядра (ну или не последнего, как больше нравится)
    Конфиги лежат в папке /boot и имеют имя вида config-2.6.xx-xx-generic (например, config-2.6.35-25-generic). Чтобы посмотреть какие конфиги ядра лежат, выполните следующую команду:

    ls /boot | grep config

    Выбираете самый последний и копируете в папку с исходниками (покажу на примере со своим конфигом, не забудьте поменять циферки):

    cp /boot/config-2.6.35-25-generic .config
  7. Далее нужно как-то назвать свое ядро:

    gedit Makefile

    Как видим 4 строка пустует. Не порядок. Поэтому пишем сюда (по аналогии с предыдущими строчками) имя своего ядра (одно слово скорее всего можно, и лучше с черточкой впереди, чтобы не сливалось)

    EXTRAVERSION = -tratata
  8. А теперь самое интересное! Начинаем компиляцию:

    make-kpkg -j%number% --initrd --revision=0.01 kernel_image kernel_headers

    Жирным я выделил версию ядра, которую вы можете сами поменять на какую захочется. Главное - это число. А так же %number%, который надо изменить на число = числу ядер + 1

    И еще один момент. Вам будет предложено дофига вопросов какие фичи подключить. На данный момент тыкайте Enter - будут выбраны значения по умолчанию. Я вот вообще зажал его и не отпускал пока не кончились вопросы :D
  9. После того, как вы отдохнули и попили чайку (ну и ядро, конечно же, собралось), необходимо перейти в директорию /usr/src и увидеть там два готовых deb-пакета. Ну и поставить их :)

    cd ..
    dpkg -i *.deb
  10. Ну а дальше осталось только уйти в ребут и загрузиться из нового ядра :) 
 Теперь отдельно поговорим о конфигурировании ядра.

Вообще, для начала, определимся, что вообще значит "сконфигурировать ядро".
Как известно, исходники ядра содержат в себе массу компонентов, которые пользователь может выбирать. Цель единственная - получить работающее, грамотно сконфигурированное ядро. Ну и, так уж вышло, вам требуется только выбрать как тот или иной компонент будет участвовать в системе. Он может вообще не присутствовать, может быть вшитым в ядро, либо (если это возможно) работать в качестве модуля.
Утилит не так уж и много, всего 5 (безусловно, если и еще, но это не входит в данный пост).
  1. make config
  2. make oldconfig
  3. make menuconfig
  4. make xconfig
  5. make gconfig
Для удобства опущу make.
Config задает стопицот вопросов. На мой взгляд, это не очень удобно. :)

Oldconfig делает простую вещь - смотрит на .config и задает кучу вопросов по поводу новых фич в ядре.

Menuconfig - консольная утилита с горячим клавишами и текстовыми кнопками :)
Что бы menuconfig заработал - необходимо поставить libncurses5-dev

sudo apt-get install libncurses5-dev


Xconfig - по функционалу ровно такой же как menuconfig. Только имеет графический интерфейс. На мой взгляд, это самый удобный вариант, потому что эта утилита разбита на 3 части: дерево, список опций, и описание выделенной опции. Очевидно, что удобно никуда не тыкаясь, читать нужную информацию.
Чтобы xconfig заработал, надо установить следующие библиотеки:
sudo apt-get install libqt3-headers libqt3-mt-dev

Как вы видите, это библиотеки qt3. Есть возможность использовать qt4, но я не знаю что нужно ставить, да и не сильно интересно. Все-таки порой приятно вспомнить 2008 год, когда я впервые с ядром возился :)
Gconfig - вроде бы то же, что и xconfig, но почему-то он мне в свое время не понравился. Да и лень искать все либы для него. Если кто-нибудь в комментариях выскажется в его пользу и расскажет, что и где брать, чтобы заработало, я с удовольствием внесу исправления :)
Предлагаю вам выбирать между xconfig и menuconfig. И всем советую не забывать сохраняться по завершении настройки. 
Определимся с очисткой исходников от собранного ранее
Все-таки иногда приходится одно и тоже ядро пересобирать несколько раз. Чтобы не возникало ошибок при повторной компиляции нужно чистить объектные файлы, которые уже были созданы. Конечно, с одной стороны может показаться, что созданные ранее объектные файлы помогут быстрее собрать новую конфигурацию ядра по очевидным причинам. Но все порой возникают неприятные ошибки, которые устранялись только чисткой.
Для этого случая есть 2 утилиты:
  1. make-kpkg clean
  2. make mrproper
make-kpkg clean - приятная утилита, которая рекурсивно по папкам стирает весь хлам. Заметьте, конфиг ваш она не тронет!
make mrproper - судя по моим наблюдениям, делает тоже, что и make-kpkg clean + стирает .confi
 Вводим и вперед
  make xconfig (например)

И начинаете настраивать.
Если вы уже собирали ядро, но мусор не почистили, то я советую заранее сделать

make-kpkg clean

    воскресенье, 10 апреля 2011 г.

    Живые обои Galaxy



    Привет, сегодня поделюсь небольшой находкой-свистелкой. А именно Живыми обоями для рабочего стола. Живые - потому что шевелятся. Толку мало, но зато красиво. :)
    Как видно на картинке, в нашем случае будут крутиться звезды какой-то неведомой Галактики.
    Но не стоит пугаться, что система будет загромождена огромным числом пакетов и новых приложений. Все просто - это ни что иное, как плагин ко всеми любимому compiz.

    А теперь к небольшим проблемам в использовании. Возможно, кому-то покажется неудобным то, что значки на рабочем столе становятся полупрозрачными. Но любители сохранения скриншотов и записывания видео с рабочего стола будут совсем негодовать: звезды порой вылетают на передний план (возможно, эта фича только у меня работает :D). Но в любой момент можно отключить обои какой-нибудь любимой комбинацией клавиш.

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

    sudo add-apt-repository ppa:ilap/lwp
    sudo apt-get update

    Во-вторых, поставим нужные пакеты:

    sudo apt-get install compiz-plugins-livewallpapers compizconfig-settings-manager

    В-третьих, изменим статичный фон рабочего стола на небо со звездами. Для этого нужно открыть приложение "Настройка внешнего вида" нажать кнопку добавить и указать путь к файлу /usr/share/backgrounds/Space_by_ilap.jpg

    Далее чтобы включить плагин и изменить положение Галактики, размер звезд, их число, скорость вращения нужно всего лишь залезть в Менеджер настройки CompizConfig. А дальше выбрать раздел Live Willpapers и в нем выбрать Galaxy Live Willpaper.  В принципе, вы увидите следующее:






























    Ну а дальше тыкаем комбинацию клавиш Super + F4 и видим движущуюся галактику (Super = win). Этой же комбинацией отключается. :)

    пятница, 8 апреля 2011 г.

    Чудеса инженерной мысли. Или что можно купить, пытаясь сэкономить

    Один мой знакомый работает в сервисном центре и сегодня расказал интересную историю о том, что к ним сегодня пришел человек с приобретенным за речкой у китайцев USB-шным винтом. Типа на винт пишется к примеру фильм (1,5 Гб), а при просмотре комп кажет только последние несколько минут этого фильма, хотя на корпусе написанно, что винт на 500 Гб. В системе винт тоже опреденяется как 500-ка.
    Товарищ говорит, что долго ржали с этого чела, т.к. подобный винт уже приносили в сервис, и куплен он был тоже в Китае.

    Коробку винта вскрыли прямо на приемке, показали человеку, что он купил на самом деле и охреневшего тот увиденного, проводили на выход.

    История у обоих бедолаг практически одинаковая.

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

    Изображение
    Изображение
    Изображение

    Суть сабжа: флешка на 128 Мб, инфа пишется на нее по кругу. Как это сделанно, не понятно. Но при записи большого файла, весь он "влезает" на нее, а при чтении файла, видны только последнии 128 Мб информации, хотя объем файла отображется правильно, как у оригинала.

    Цитата:






    Не хватает записки внутри него: "Нашел? МОЛОДЕЦ!"
    Цитата:






    В Болгарии чуваки купили новую Газель для перевозки помидоров. Пока гнали и дальше в течение месяца эксплуатации в салоне сзади раздавался некий металлический стук, причину которого найти не удавалось - и выкидывали все из салона, в т.ч. запаску, домкраты и т.д., и откручивали седушки, ХЗ где стучит.
    В итоге поступили грамотно - один качает машину, второй стетоскопом прослушивает кузов.
    Обнаружили, что стучит внутри вертикального короба жесткости, который изнутри салона приварен к листу обшивки. Не поленились, вырезали болгаркой дырку.
    Внутри короба на толстой леске висит гайка М24 и записка по русски «МОЛОДЕЦ, НАШЕЛ»





    Цитата:






    Я так купил у китайцев мп3 плеер на 16гб, который реально имел всего 4гб - проверил как раз эмпирическим путём: всё что записывалось сверх 4гб - обратно не считывалось, а вот определялся он именно как 16гб.
    Только вот в моём случае если записать видеофайл частично попадающий на реальное поле, а частично на виртуальные гигабайты, то он вообще не читался с ошибкой типа "занят другой программой либо защищён от записи".
    Я его через инет купил, поэтому деньги за него они мне вернули.




    © http://www.forum.minolta-club.ru

    четверг, 7 апреля 2011 г.

    Первые 20 лет с Linux

    Оригинальное видео от LinuxFoundation, которое рассказывает в 3-х минутах о последних 20 лет истории Linux.

    среда, 6 апреля 2011 г.

    Где работают сервера на базе ubuntu

    Cервис http://maps.ubuntu.com/map/ показывает карту мира с отмеченными серверами на базе убунту.




    Похоже, что самый северный сервер находится в Норвегии, а самый южный — в Новой Зеландии.
    Если вы хотите добавить свой сервер, то перейдите по ссылке http://maps.ubuntu.com и отметьте IP-адрес как адрес сервера.

    Вышла бета-версия Skype 2.2 для Linux



    Представлена версия Skype 2.2 для Linux, получившая статус бета-выпуска. Skype для Linux поддерживает осуществление VoIP-звонков, обмен текстовыми сообщениями, отправку SMS, организацию видеочата, создание конференций, обмен файлами, перенаправление звонков на телефонный номер, организацию совместного доступа к рабочему столу или его части.
    Ключевые новшества:
    • Поддержка сервиса Skype Access, позволяющего осуществлять звонки через полмиллиона коммерческих точек доступа WiFi по всему миру, используя поминутную оплату через кошелёк Skype Credit (оплачивается только время разговора по Skype);
    • Поддержка режима ожидания вызова и удержания звонка. Возможность одновременной обработки нескольких вызовов: если в момент разговора приходит второй звонок, то пользователь может временно отложить первый разговор и ответить на второй звонок или объединить два звонка в конференцию;
    • Расширены возможности интерфейса пользователя, добавлены некоторые элементы, ранее присутствующие только в версиях Skype-клиента для Windows и Mac OS X. Например, поддержка перетаскивания контактов мышью для инициирования звонка, переработка диалога поиска контактов, упрощение организации конференц-вызовов, одновременное перетаскивание нескольких контактов в группу, добавление кнопки инициирования звонка в окно чата, улучшение юзабилити при цитировании текстового сообщения, улучшение функции копирования текста при обмене сообщениями, поддержка визуальной темы KDE Oxygen;
    • Увеличение качества и надежности передачи звука и видео;
    Полный список улучшений (перевод Zenittur):
    • Звонки:
      • Отключен звук звонка во время конференц-связи
      • Добавлена функция "лёгкой конференции" (Easy conference) с помощью Skype-ссылок
      • Вызов с помощью Drag and Drop
      • Поддержка функций ожидания и удержания вызовов
      Видеозвонки:
      • Обновление списка подключенных видеоустройств во время работы программы
      • Правильное определения соотношения экрана для получаемого видео в оконном и в полноэкранном режиме
    • Чат:
      • Добавлена кнопка "Позвонить"
      • Улучшена функция цитирования
      • Для выпадающего списка "Загрузить предыдущую историю чата" добавлены кнопки "Последние 6 месяцев" и "Последний год"
    • Список контактов:
      • Drag and Drop контактов, в том числе нескольких контактов в группу контактов
      • Добавлены кнопки "Показать/скрыть содержимое экрана" при просмотре чужого профиля пользователя
      • Добавлена строка "Последнее посещение" при просмотре чужого профиля
    • Остальные нововведения:
      • Skype Access - возможность пользоваться платными точками доступа Wi-Fi, поддерживающими оплату через Skype
      • Регистрация нового имени: подсказка о том, почему выбранный пароль является неправильным, в процессе набора пароля, а не после нажатия на кнопку "Готово"
      • Комбинация клавиш для разворачивания видео с камеры на полный экран.
      • Смена статуса с помощью значка в системном трее не спрятана в подменю
      • Поддержка нескольких идентификаторов (ID) для отправки SMS-сообщений в настройках
      • Улучшена проверка подлинности номера отправителя SMS
      • Добавлен небольшой логотип в настройках звука для пользователей PulseAudio, настраивающих звук вне программы Skype
      • Улучшен диалог выбора страны при наборе номера
    • Неисправленные проблемы:
      • Невозможно установить в ubuntu 11.04 beta 1. Решение.
      • После нажатия на "Сменить учётную запись" возвращение в неё приводит к завершению работы программы. Решения нет.
      • В Debian на архитектуре amd64 программа аварийно завершает работу с ошибкой "Inconsistency detected by ld.so: dl-open.c: 623: \_dl_open: Assertion `_dl_debug_initialize (0, args.nsid)->r_state == RT_CONSISTENT' failed\!" Причина в иерархии 32-битных библиотек, недостаток в которой есть только в Debian. 32-битные библиотеки PulseAudio устанавливаются даже тогда, когда сама программа не установлена. Решение: "sudo chmod a-r /usr/lib32/libpulse*"
      • На некоторых 64-битных системах не отображаются аватары пользователей из-за отсутствия необходимого 32-битного плагина Qt 4. Решение: доустановить недостающие 32-битные библиотеки.
      • Зелёный либо чёрный квадрат вместо видео с веб-камеры. Решение: установка libv2l и запуск skype специфичной командой "LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so skype". Можно отредактировать ярлык запуска, либо создать скрипт.
      • Ошибка "Failed to query UVC control" и невозможность работы с веб-камерами Logitech. Решение. Для Logitech Quickcam Messenger здесь.
    Для работы Skype необходимо наличие Qt 4.4.0, D-Bus 1.0.0, libasound2 1.0.18, опционально PulseAudio 0.9.16 и BlueZ 4.0.0. Требование к системе: CPU от 1 Ghz, 256 Мб ОЗУ, 100 Мб свободного места на диске, звуковая карта, видеодрайвер с поддержкой акселерации проигрывания видео Xv (X-Video). Готовые пакеты подготовлены для Ubuntu 10.04+ (32 и 64-битные сборки), Debian Lenny и Squeeze (32 и 64-битные сборки), Fedora 13+, OpenSUSE 11+.