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

Сообщение для Японии

Корпорация Google не могла обойти стороной недавние события в Японии и создала специализированный сайт messagesforjapan.com, на котором любой пользователь Интернета может оставить сообщение со словами поддержки на родном языке, которое будет автоматически переведено на японский, с помощью сервиса Google Translate. Также, написавший может отметить своё местоположение и его сообщение будет прикреплено к определенной локации в виде розового шара на карте мира (Google Maps).

image

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

Приближается конец жизненного цикла Ubuntu 8.04

Релиз-менеджер Кейт Стюарт (Kate Stewart) сообщила, что 12 мая 2011 года заканчивается 36-ти месячный жизненный цикл дистрибутива Ubuntu 8.04 Hardy Heron, вышедшего 24 апреля 2008 года, являющийся LTS выпуском с длительным периодом поддержки.
Для дистрибутива прекратится выпуск обновлений безопасности и багофиксов, в тоже время поддержка серверной редакции Ubuntu 8.04 все еще продлится до мая 2013. Пользователям использующим Hardy Heron рекомендуется обновится до Ubuntu 10.04, воспользовавшись инструкцией на help.ubuntu.com


Приближается конец жизненного цикла Ubuntu 8.04

Это был мой первый дистрибутив Linux! эх ностальгия...

вторник, 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.