LINUX.ORG.RU

Избранные сообщения w1nner

Вышло ядро Linux 4.0

Новости — Ядро Linux
Группа Ядро Linux

Вышло ядро Linux версии 4.0, под кодовым именем «Hurr durr I’m a sheep». Linux 4.0 является релизом с небольшим количеством нововведений, которые, в основном, касаются улучшения поддержки нового оборудования, улучшения драйверов, оптимизации производительности и исправления различных ошибок.

Но самое главное нововведение — это поддержка технологии Live Kernel Patching, которая позволяет устанавливать обновления ядра без перезагрузки.

( читать дальше... )

Новость на opennet

>>> Источник новости

 ,

fallout4all
()

Закончилась память. Снова.

Форум — Mobile

Собственно, мой Desire жалуется на сабж. Офф. 2.3 прошивка, рут есть, app2sd установлено.

# df
df
/dev: 207144K total, 64K used, 207080K available (block size 4096)
/mnt/asec: 207144K total, 0K used, 207144K available (block size 4096)
/mnt/obb: 207144K total, 0K used, 207144K available (block size 4096)
/app-cache: 8192K total, 0K used, 8192K available (block size 4096)
/system: 256000K total, 247096K used, 8904K available (block size 4096)
/data: 151168K total, 137472K used, 13696K available (block size 4096)
/cache: 40960K total, 37912K used, 3048K available (block size 4096)
/system/sd: 505636K total, 313015K used, 192621K available (block size 1024)
Т.е. на карте место есть, чего не скажешь про /data
# du -sh /data/*
du -sh /data/*
...
127.1M  /data/data
...
Виновник тоже найден. Но что с ним делать? Возможно ли его тоже перенести на карту?

 , app2sd

MisaMisa
()

btrfs vs ext4

Форум — General

Недавно поставил эксперимент,2 сервера перевёл на btrfs, проблем не увидел, более того, программисты сказали, что на этих серверах даже лучше сайт работает(это альфа и бета тестирования сервера, всего 5:альфа,бета,предрелизный, релизный, боевой).Первые 2 стали лучше работать, по заявлению разработчиков. Боевой ближайщие годы вряд ли на btrfs, а вот остальные можно попробовать. А вообще какие реальные плюсы и минусы вы видете в этих 2 ФС, особенно какие реальные недостатки в последней версии btrfs.

 , , ,

erzent
()

Клиент-Сервер Socket linux (Система обмена сообщениями)

Форум — Development

Здравствуйте! Помогите,пожалуйста,доработать Клиент-Сервер.Никак не получается... Завтра последний день сдачи Условия выполнения: «Задание: разработать приложение-клиент и приложение сервер, обеспечивающие функции мгновенного обмена сообщений между пользователями.

Основные возможности. Серверное приложение должно реализовывать следующие функции: 1) Прослушивание определенного порта 2) Обработка запросов на подключение по этому порту от клиентов 3) Поддержка одновременной работы нескольких клиентов через механизм нитей 4) Передача текстового сообщения одному клиенту 5) Передача текстового сообщения всем клиентам 6) Прием и ретрансляция входящих сообщений от клиентов 7) Обработка запроса на отключение клиента 8) Принудительное отключение указанного клиента

Клиентское приложение должно реализовывать следующие функции: 1) Установление соединения с сервером 2) Передача сообщения всем клиентам 3) Передача сообщения указанному клиенту 4) Прием сообщения от сервера с последующей индикацией 5) Разрыв соединения 6) Обработка ситуации отключения клиента сервером

Настройки приложений. Разработанное клиентское приложение должно предоставлять пользователю настройку IP-адреса или доменного имени сервера сообщений и номера порта сервера. »

Пока в работе у меня выполнено следующие условия:Сервер:1,2,3 ;Клиент:1,. В данном случае у меня клиент отправляет сообщение серверу,а сервер отправляет этоже сообщение обратно клиенту.

Код Сервера:

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
{
    int sock, listener;       // дескрипторы сокетов
    struct sockaddr_in addr; // структура с адресом
    char buf[2048];       // буфур для приема
    int bytes_read;           // кол-во принятых байт
 
 
    listener = socket(AF_INET, SOCK_STREAM, 0); // создаем сокет для входных подключений
    if(listener < 0)
    {
        perror("socket");
        exit(1);
    }
    
    // Указываем параметры сервера
    addr.sin_family = AF_INET;
    addr.sin_port = htons(3425);
    //addr.sin_addr.s_addr = htonl(INADDR_ANY);
    addr.sin_addr.s_addr=inet_addr("127.0.0.1");
    if(bind(listener, (struct sockaddr *)&addr, sizeof(addr)) < 0) // связываемся с сетевым устройство. Сейчас это устройство lo - "петля", которое используется для отладки сетевых приложений
    {
        perror("bind");
        exit(2);
    }
 
    listen(listener, 1); // очередь входных подключений
    
    while(1)
    {
        sock = accept(listener, NULL, NULL); // принимаем входные подключение и создаем отделный сокет для каждого нового подключившегося клиента
        if(sock < 0)
        {
            perror("Прием входящих подключений");
            exit(3);
        }
 
switch(fork())
{
case -1:
 perror("fork");
 break;
case 0:
close(listener);
 
 
        while(1)
        {
            printf("Ожидаем сообщение...\n");
 
 
            bytes_read = recv(sock, buf, 2048, 0); // принимаем сообщение от клиента
            if(bytes_read <= 0) break;
            printf("Получено %d bytes\tСообщение: %s\n", bytes_read, buf);
            printf("Отправляю принятое сообщение клиенту\n");
            send(sock, buf, bytes_read, 0); // отправляем принятое сообщение клиенту
        }
    
        close(sock); // закрываем сокет
        _exit(0);
default:
close(sock);
}   
    }
    
    return 0;
}
Код Клиента:
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
 
int main (int argc, char **argv)
{
char message[2048];//=(char*)malloc(sizeof(char));// сообщение на передачу
char buf[sizeof(message)];
int port,ch;
//----------------------------------------------------------------------------
if(argc!=3){
printf("Не верное кол-во аргументов!\nДолжно быть 2 аргумента (Порт,ip-адрес -сервера)!\n");
exit(0);
}
 
    int sock;                 // дескриптор сокета
    struct sockaddr_in addr; // структура с адресом
    struct hostent* hostinfo;
port = atoi(argv[1]);
hostinfo = argv[2];
    sock = socket(AF_INET, SOCK_STREAM, 0); // создание TCP-сокета
    if(sock < 0)
    {
        perror("socket");
        exit(1);
    }
 
    // Указываем параметры сервера
    addr.sin_family = AF_INET; // домены Internet
    addr.sin_port = htons(port); // или любой другой порт...
    addr.sin_addr.s_addr=inet_addr(hostinfo);
    /*
     * Начинающие программисты часто спрашивают, как можно отлаживать сетевую программу, если под рукой нет сети.
     * Оказывается, можно обойтись и без неё. Достаточно запустить клиента и сервера на одной машине, а затем использовать для соединения адрес интерфейса внутренней петли (loopback interface).
     * В программе ему соответствует константа INADDR_LOOPBACK (не забудьте применять к ней функцию htonl!).
     * Пакеты, направляемые по этому адресу, в сеть не попадают.
     * Вместо этого они передаются стеку протоколов TCP/IP как только что принятые.
     * Таким образом моделируется наличие виртуальной сети, в которой вы можете отлаживать ваши сетевые приложения.
     */
   // addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
      //addr.sin_addr.s_addr = inet_addr(host_ip);
 if(connect(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0) // установка соединения с сервером
    {
        perror("Подключение");
        exit(2);
    }
 
while(1){//WHILE <---
//----------------------------------------------------------------------------
    printf("Введите сообщение серверу(Для выхода:exit): "); 
    if (!strcmp(gets(message), "exit")){close(sock);return 0;}
//----------------------------------------------------------------------------
 
    printf("отправка сообщения на сервер...\n");
    send(sock, message, sizeof(message), 0); // отправка сообщения на сервер
    int bytes_read = 0;
    printf("Ожидание сообщения\n");
    bytes_read = recv(sock, buf, sizeof(message), 0);
    printf("Получено %d bytes\tСообщение: %s\n", bytes_read, buf); // прием сообщения от сервера
    
 
}//END_WHILE
    
return 0;
    
}

 , , ,

BladzheR
()

Царям сишки

Форум — Development

А могут ли многоуважаемые цари, короли и императоры сишки создать такую функцию для сортировки, которая бы работала для 3 элементов быстрее, чем стандартный qsort()? Я не могу и не думаю, что это возможно. Но я знаю, что истинный царь смог бы. Итак, конкурс объявляю открытым. Победителю достанется... силенд, может быть?

 

lisper-pipisper
()

Метапрограммирование - проблемы и пути их решения.

Форум — Development

Пичал я тут на днях токенайзел для C++-кода, но всё это меня добило я решил поделится.

Проблема - мне надо было вычислять сложные значения для таблицы в компилтайме, да можно на сишке сделать через жопу(енумы) и макросы, но мне стало лень. Да можно сгинерить, но мне тоже лень.

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

Чтобы не быть голословным пишем что-то типа

constexpr uint64_t f(uint64_t a, uint64_t b) {
  return a + b; 
}
Всё ок, но пишем что-то сложнее, аля:

uint64_t m[] = {0, 1, 2, 3, 4};
constexpr uint64_t f(uint64_t a, uint64_t b) {
  return m[a] + m[b]; 
}

Бида( или это моё неосиляторство плюсов?), дак зачем они запилили эту фичу, если она может лишь галимую примитивщину? Шаблоны ещё ущербней. В чем приемущество? Зачем?

А теперь у меня вопрос к вам, уважаемы батьки и отцы - что мне делать? Я хочу запонять массивы написав генератор, причем и в компилтайме тоже. Я хочу юзать libc, я хочу всё, а у меня нет ничего, почему?

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

У меня есть 3 пути: терпеть, пилить свой язык и конпелятор самому( что долго и нудно) и ваш совет.

 , ,

superhackkiller1997
()

Переопределение клавиш

Форум — Desktop

Приветствую!

Как на клавиатуре изменить глобально Home <-> Page Up, End <-> Page Down?
Желательно чтобы SysRq и PrintScrn остались на месте

 , , ,

kiotoze
()

Android в автомобильных системах

Новости — Android
Группа Android

Создан новый альянс для продвижения ОС Android на автомобильном рынке в качестве основы информационно-развлекательных систем. Альянс, анонсированный компанией Google назван Open Automotive Alliance (OAA). В состав альянса вошли автопроизводители - компании Audi, General Motors, Honda, Hyundai, а также Google и NVIDIA. Все они планируют объединить усилия в продвижении Android для автомобильных устройств.

Созданный альянс как планируется создаст специальную редакцию ОС Android для автомобилей, а также займётся её адаптацией для автомобильных систем. Выпуск первого автомобиля с Android на борту планируется уже в 2014 году компанией Audi. Применение ОС Android существенно сократит издержки и позволит предоставить разработчикам уже готовую и привычную платформу.

>>> Подробности (на английском языке)

 

mbivanyuk
()

Рабочее место дежурного по станции (Fedora)

Галерея — Рабочие места

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

Вот так выглядит АРМ ДСП (в реальной жизни такими АРМами оборудована вся ОкЖД, за другие не могу ручаться, не знаю точно).

Прошу прощение за качество фоток.

Задание маршрута (включение светофоров, перевод стрелок) http://i51.tinypic.com/2dincci.jpg

Федора с гномом http://i53.tinypic.com/2rwotnp.jpg

Фрагмент макета (вообще он огромный, занимает 5 аудиторий, около 15 станций, включая так же полноценную Сортировочную) http://i51.tinypic.com/2a9w57m.jpg

Сортировочная http://i52.tinypic.com/15cde1g.jpg

Портовая http://i56.tinypic.com/ilbtdi.jpg

anonymous_sapiens
()

libusb-win32 для wine надо кому?

Форум — Development

Понадобилось тут, пришлось сваять. libusb-wine.tar.gz

Распаковать в дерево сырцов wine. В configure.ac добавить строчку

WINE_CONFIG_DLL(libusb0,,[implib])
туда же, где все остальные такие строчки. Ну и autoreconf configure make make install как обычно.

Унутри линуксячья libusb-0.1.12 (ибо с тех пор никаких изменений в USBшном коде или интерфейсе libusb-win32 не случилось) слегка допиленная для мимикрии под libusb-win32. После компиляции получится libusb0.dll которая работает с линуксячьей подсистемой USB вместо виндового драйвера. Вендософтины пользующие под виндой libusb-win32 для доступа к железкам теперь чудненько работают под wine. Никаких драйверов в wine, разумеется, ставить не надо.

Не забыть про права доступа к /dev/bus/usb/* . Если чо - прописать юзера в группу usb (ну или чо там в дистре) или ковырнуть udev ( /lib/udev/rules.d/50-udev-default.rules ) на предмет

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0664", GROUP="usb"
если там этого нету.

Должно быть что-то типа такого:

$ ls -la /dev/bus/usb/003/
total 0
drwxr-xr-x 2 root root      100 Feb 19 01:41 .
drwxr-xr-x 7 root root      140 Feb 14 20:19 ..
crw-rw-r-- 1 root usb  189, 256 Feb 19 00:34 001
crw-rw-r-- 1 root usb  189, 271 Feb 19 00:34 016
crw-rw-r-- 1 root usb  189, 275 Feb 19 01:43 020

Ну или сами там с правами разбирайтесь, чтоб из-под юзера нужный девайс был читаем-писаем.

В данной реализации отсутствуют чисто libusb-win32 функции:

usb_install_service_np
usb_uninstall_service_np
usb_install_driver_np
usb_isochronous_setup_async
usb_bulk_setup_async
usb_interrupt_setup_async
usb_submit_async
usb_reap_async
usb_free_async
Кому надо - может сам допилить, у меня нет софтин которые их пользуют, я и не заморачивался. Если чо - wine ругнётся, что, мол, не могу найти каую-нибудь usb_install_driver_np в libusb0.dll

 wine usb

Stanson
()

Awesome Vintage

Галерея — Скриншоты

На моём лаптопе традиционно всё самое лучшее из мира Open Source разработок:


  • Gentoo GNU/Linux 3.9.4-geek
  • Awesome-3.4.15 WM, handmade тема Vintage.
  • urxvt с такой же темой.
  • tmux
  • weechat
  • ncmpcpp



Шрифты: Terminus, Monaco и Tewi

на панели: ножницы это Parcellite (проект ожил опять, неожиданно для его пользователей, т.к. прошлый мейнтейнер забросил разработку в 2011 году. Исправлены многие баги, исправляются новые, перешел на него с qlipper), а дальше всё понятно.

Наконец-то довёл до ума и работабилити состояния urxvt: копипаст, хоткеи, никаких конфликтов интересов, нормальная работа в виме и тмуксе.

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

В ncmpcpp плейлист единственного, что держится в mp3 (поскольку издается так): musicForProgramming();

Скриншот рабочего стола без приложений.

 ,

science
()

Запущено регулярное регрессионное тестирование Boost под Android

Новости — Android
Группа Android

В рамках проекта CrystaX NDK запущено регулярное регрессионное тестирование библиотек Boost C++ под Android. С результатами тестов можно ознакомиться на официальной странице Boost (develop branch) или на сайте CrystaX.NET - master, develop.

В соответствии с идеологией проекта CrystaX NDK, в код Boost никаких изменений не вносилось - портирование на Android происходит благодаря более полному соответствию стандартам C, C++ и POSIX, обеспечиваемым библиотеками в составе CrystaX NDK (в отличие от Android NDK от Google, где нижележащие библиотеки, такие как libc, не обеспечивают стандартного поведения).

На данный момент не все регрессионные тесты проходят - некоторые библиотеки работают, некоторые еще нет. Причина регрессий - частично баги в Boost, частично баги CrystaX NDK. Разработчики CrystaX NDK призывают всех заинтересованных в использовании Boost под Android принимать участие в проверке результатов тестов и, если окажется, что причиной регрессии является баг в CrystaX NDK - сообщать об этом для оперативного исправления.

>>> Подробности

 , ,

crystax
()

Что делать если шеф говорит word или пошел нафиг

Галерея — Скриншоты

OpenSuse 13.2 тема KDE4 похожая на седьмой оффтопик, word 2003 запущенный под wine.

Если что, есть Live-сборка, протестировать можно в окне браузера, всего лишь перейдя по ссылке https://susestudio.com/a/zV1pUJ/win7 и имея аккаунт Novell, Google, Facebook и др.

 , ,

wpab
()

Xfce + Compiz

Галерея — Скриншоты
  • Дистрибутив - Gentoo.
  • Среда рабочего стола - Xfce4.
  • Композитный менеджер - Compiz-0.9.11.
  • Декоратор окон - Emerald.
  • Файловый менеджер - PCManFM и Thunar
  • Эмулятор терминала - Xfce4-terminal и Guake.
  • Док - Docky.
  • Mенеджер входа - Slim.
  • Mониторинг системы - Conky + Dzen.

Все хотел сменить Xfwm на что-нибудь более
симпатичное, но при этом, по возможности, шустрое.
После некоторых экспериментов с kwin'м и разными версиями
compiz'а наткнулся на Compiz-0.9.11 из Overlay'я - funtoo-overlay.
Работает очень шустро, без глюков(во всяком случае, пока их не заметил).

 , , ,

Dontes
()

Простой и удобный i3, веб головного мозга и минимализм

Галерея — Скриншоты

Вот такой у меня десктоп, все обычно, но очень удобно. Наконец-то я свалил с глючных DE и получил железно работающую систему. Никаких глюков в помине, сам i3 со всеми панелями жрет 100 МБ, и то, потому что стандартный i3status на С заменен py3status на Python. Ну и плюс нотификаторы иногда парсят веб-страницы и JSON с ЛОРа, Bloomberg и Yahoo Finance. Иначе было бы 40 МБ

Для не понимающих пользователей Gnome/KDE, зачем человеку в 21ом веке тайловый менеджер - обьясняю. Он был не нужен в 20ом веке, и даже наверное до 2010 года. А теперь у обычного пользователя есть одно приложение - браузер, в нем все остальные. У программиста обычно два приложения - браузер и терминал, в нем все остальные. Опционально что-то вроде Steam или IDEA. Но так или иначе это удобно, когда у тебя включается комп и открывается терминал и браузер сразу в нужных workspace. И можно переключаться через Win+1 и Win+2. Не надо никаких сложных комбинаций, не надо быть клавиатурным задротом, эти две комбинации - 90% взаимодействия с i3. Есть экономия места на экране, никаких глюков, никакой лишней памяти, тормозов. Один раз сварганил простой текстовый конфиг, залил на github и потом копипастишь его везде - на ноуте, на работе. Bезде одни цвета, одни комбинации, одни приложения в автозапуске и в тех же workspaces. Никакой возни.

К ней легко писать нотификаторы, как вы видите внизу. ЛОР проверяется не всякими попытками заставить RSS нормально работать, а реально проверяет URL уведомлений. Причем когда некоторое время не видит изменений, то уходит в еще более щадящий режим. Но во время активной дискуссии обновляется часто. Клик мышью по панели открывает «Уведомления» в браузере.

Gentoo, ядро последнее gentoo-sources.

SSD + systemd, скорость загрузки до логина - несколько секунд

Шрифты - Infinality, различные Droid for Powerline.

Вот софт который использую

  • roxterm - нет глупых комбинаций клавиш, которые мешают работать настоящим комбинациям клавиш в консольном софте
  • fish - удобнее подсказки, всегда могу перейти в bash, потому проблем не испытываю
  • tmux - могу заходить с рабочего ноута по ssh и кодить, не засоряя рабочий ноут. Там сразу открываются терминалы как я их оставил. Так как у меня еще есть домен через DynDNS, то могу так делать например из кафе. В ssh доступ только по ключу, потому не боюсь торчать в Интернет.
  • Pendatactyl - кто не знает, это плагин, который делает из Firefox vim. Клавиатурным фанатизмом не страдаю, но зато на экране только страница, никаких тупых панелей, табов, адресных строк.
  • Firefox - только под него есть Pendatactyl, сижу в основном в нем
  • Chrome - нужен чтобы кастить по UPnP/DLNA видео из папки с торрентами, YouTube, Google Music на Chromecast. Запускаю только для этого, и то, когда нет рядом телефона.
  • Google Doc, наконец-то могу не париться с всякими либрами и OOo и делать еще много всяческих вкусных штук
  • vim - осилил vim, чему очень сильно рад. Использую для Python/C++ домашнего говнокодинга.
  • Docker - из дому могу гонять жестко огороженые сайты для личного использования.
  • Общаюсь в Hangouts - 80% знакомых, семья. Facebook - 20%
  • systemd, Avahi, NetworkManager, Pulseaudio - не знаю зачем страдать всяким костыльным дедовским софтом, которы любят другие пользователи минималистичных десктопов, когда есть автоматизированый, современный и все равно не жрущий много памяти софт. Avahi используется для .local доменных имен

Не использую множество десктопного софта - офисы, плееры, файловые менеджеры, почтовые клиенты, GUI к архиваторам, тетрисы, просмотрщики фото, мессенджеры и прочий шлак. Планирую даже инфу о системе, из /sys и /proc в браузер пробросить, как полагается, с графиками, HTML 5, JS, CSS3 и responsive UI ;)

 , , , ,

vertexua
()

Один Vim с разными цветсхемами для разных задач в различных терминалах. (+ awesome)

Галерея — Скриншоты

Раз уж пацаны гонят оголтелый треш в последнее время в галерее, то тут такое дело:

Не сколько скриншот рабочего стола, хоть не без этого, сколько скриншот демонстрирующий удобную настройку редактора с одним конфигом - для разных задач, с разными цветсхемами для различных терминалов. Всё работает без изменения конфига (~/.vimrc).

Этот пост-скриншот для тех, в большей степени новичков, кто не в курсе дела такой возможности настройки.

Я вообще постоянно использую 4 терминала + tmux в некоторых из них, это: urxvt, практически идеальный Terminal-0.4.8 (сейчас называется xfce4-terminal-0.6.x - но оно неюзабельное и с багами), гибко настраиваемый ROXterm и относительно новый и малоизвестный пользователям-рабам тяжелых DE - крутой и моднейший клавиатуро-ориентированный(sic!) терминал termite (вимерам юзать однозначно!).

Каждый терминал для определенной (не жестко) задачи или настроения: для руби, md/haml/coffee, для Си или Эрланга. Для манов через vimpager. Для системных конфигов. Разные цветсхемы, различные шрифты - со сглаживанием или без. С различными схемами не только вима, но и статусбара/интерфейса вима, причем в одном случае это vim-powerline, в других vim-airline в свою очередь также с разными цветами. Кайфотне.

Суть в том, что каждый раз (если использовать один терминал) включать/выключать схему терминала, вима, менять шрифт и сглаживание - жутко неудобно же. Поэтому, можно настроить Vim вот так:

if $COLORTERM == 'Terminal'
    желаемые настройки
endif

Также можно можно настроить вим менять схему и интерфейс в зависимости от дня недели и времени суток, например днём светлую, ночью тёмную:

let weekday=system('date +%u')
let hour=system('date +%H')
if hour == x
  бла бла
endif

Не каждый терминал возвращает $COLORTERM, например Terminal и urxvt - да, а все остальные из списка нет. Поэтому я запускаю их как скрипты на хоткее следующего содержания, например termite.sh:

#!/bin/bash
export COLORTERM="termite" && /usr/bin/termite --geometry=1248x620+60+40
возможно можно как-то более по умному, но и так работает, всё ок.

Ну и детали:

Gentoo GNU/Linux 3.10.5-geek
Awesome-3.4.15
тема осома: Penumbra

На скриншоте Vim 7.4 (не gvim), некоторые цветсхемы работают благодаря плугину CSApprox.

Только полный кастом или никак, пацаны!

Такие дела.

 , , , ,

science
()

Сборка livecd в Gentoo

Форум — General

Доброе время суток. Потратил некоторое время на то что бы разобраться - как же сделать свой livecd в gentoo. Собрал по кусочкам из нескольких мануалов, и вот что получилось.

Собирать будем из бинарных пакетов

export ACCEPT_KEYWORDS="amd64"
export PORTAGE_BINHOST="ssh://<binhost>/var/binpkgs/"
export ROOT=<где собираем>
Для удобства обслуживания - всё будет происходить под управлением git
mkdir -p $ROOT
git init $ROOT
Далее создаём базовую структуру каталогов и устанавливаем «минимум необходимого
USE="build" emerge --root=$ROOT -O baselayout
MAKEDEV -d $ROOT/dev console hda input ptmx std sd tty
rm -f $ROOT/dev/fd[0-9]*
rm -f $ROOT/dev/sd[a-d][a-z]* $ROOT/dev/sd[e-z]*
rm -f $ROOT/dev/tty[a-zA-Z]*

emerge --root=$ROOT -gK openrc vim bash vixie-cron gpm udev file findutils gawk grep \
                    groff iproute2 man man-pages-ru net-tools pciutils \
                    sed shadow usbutils util-linux which syslog-ng screen nfs-utils openssh wget socat rsync ntp \
                    gcc tar util-linux shadow udev procps psmisc cracklib gzip kbd dhcp
далее можно поставить всё что угодно, по желанию
emerge --root=$ROOT -gK <ваши пакеты>
почистим ненужный мусор
rm -rf $ROOT/var/tmp/*
rm -rf $ROOT/var/cache/*
rm -rf $ROOT/var/db
rm -rf $ROOT/tmp/*
rm -f $ROOT/etc/mtab
touch $ROOT/etc/mtab
rm -rf $ROOT/etc/portage
rm -rf $ROOT/usr/share/doc
rm -rf $ROOT/usr/src/
Далее по стандартному пути, можно сделать chroot, сменить пароль рута, прописать сервисы в автозагрузку,итд.
mount -o bind /dev $ROOT/dev
mount -t proc none $ROOT/proc
chroot $ROOT /bin/bash
<конфигурируем>
umount $ROOT/dev
umount $ROOT/proc
rm $ROOT/root/.bash_history
В сторонке можно нужно собрать ядро. Проще всего сделать это genkernel.Как то так.
rm -f /var/tmp/genkernel/*
genkernel --no-install --all-ramdisk-modules --kerneldir=<path to kernel> --e2fsprogs --disklabel --oldconfig --busybox all --unionfs --menuconfig all
забрать результат работы можно будет в /var/tmp/genkernel/ модули поставим вручную.
cd <kernel source>
INSTALL_MOD_PATH=$ROOT make modules_install
создадим структуру livecd
mkdir -p ./target/boot/grub
cp /var/tmp/genkernel/initramfs* ./target/
cp /var/tmp/genkernel/kernel* ./target/
cp /var/tmp/genkernel/System* ./target/
touch ./target/livecd
создаём конфиг grub2 в ./target/boot/grub/grub.cfg, примерно следующего содержания:
set default="0"
loadfont unicode
set gfxmode=800x600x32
insmod vbe
insmod vga
insmod gfxterm
set locale_dir=$prefix/locale
set lang=ru_RU
insmod gettext

terminal_output gfxterm
set timeout=2

menuentry 'Linux livecd' {
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='cd,msdos1'
	echo	'Загружается Linux '
	linux	(cd)/kernel-genkernel root=/dev/ram0 ro real_root=/dev/loop0 looptype=squashfs loop=/root.fs cdroot  video=vesafb:ywrap,mtrr:3 console=tty1 quiet net.ifnames=0
	echo	'Загружается начальный виртуальный диск …'
	initrd	(cd)/initramfs
}
теперь всё упаковываем и собираем итоговый образ.
echo ".git" > exclude.files
mksquashfs $ROOT ./target/root.fs -comp xz -ef exclude.files
grub2-mkrescue -d /usr/lib64/grub/i386-pc/ --modules="boot cat cpuid disk echo font file fshelp gettext gfxmenu gfxterm gfxterm_menu halt help iso9660 linux loopback ls lspci msdospart normal squash4 terminal vbe vga video xzio" -o cdrom.iso ./target

Какие будут замечания и предложения по данному методу?

 ,

Dramokl
()

Как объединить несколько webdav-ресурсов в одну ФС?

Форум — General

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

Можно ли это сделать с помощью davfs + unionfs/aufs/mhddfs?

Chaser_Andrey
()

TopMenu

Галерея — Скриншоты

С возвращением, appmenu.

И немного инфы:
GTK2/3: FlatStudio (перекрашено)
Metacity/Marco: Ultra-Flat (перекрашено чуть-чуть тоже)
Иконки: Numix Circle
Шрифты: Trebuchet MS, Consolas

Sublime: Piatto Dark
Firefox: Twily Configs
Mate, Docky, Compton

 

zezic
()

Ёкарный Бабай

Галерея — Скриншоты

GTK2/3: Iris (Recolored)
Иконки: Numix Circle feat. Flattr (Recolored)
Обоина
Compiz, Docky
Screenfetch врёт и всё такое.

Прошу, сообщите, если с таким заголовком нас не пропустят.

 

zezic
()