LINUX.ORG.RU

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

openbox

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

вообщем, накинул openbox:) немножко напилинга.
И, вуаля!
но вообще стоило допилить иконки трея, но и так пойдет:)
http://i.imgur.com/PWI71sR.png?1
http://i.imgur.com/RxwWV9I.jpg?1
http://i.imgur.com/t6S1LGu.png?1
http://i.imgur.com/QlSthON.jpg?1

 ,

oblepiha_pie
()

К отключению интернетов — готовы!

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

Пару месяцев назад начал стремительно создавать стратегические запасы информации — софта, книг, фильмов, музыки и всего такого в случае отключения Интернета в нашей стране. Но архив был бы неполноценным без Википедии, для чего была заюзана крайне удобная вещь под названием Kiwix, позволяющая, к тому же (хотя, это, скорее заслуга разработчиков формата OpenZim) сэкономить немало места на диске. Странно, что такая критически важная вещь ни разу не упоминалась на ЛОР'е. Исправляем.

Собственно, хранит информацию Kiwix в формате OpenZIM. на странице загрузки есть огромное количество ZIM-файлов (индексированных и неиндексированных, неиндексированные файлы нужно индексировать самостоятельно, если необходима возможность поиска) на самых разных языках. Kiwix работает как самостоятельное приложение со встроенным браузером, но возможно и запустить сервер (kiwix-serve) и читать локальный архивчик из браузера (что и отображено на скрине).

Архив русской Википедии без картинок с учётом индекса занимает всего, приблизительно, 6,8 ГБ — совершенно немного, позволить его могут себе даже владельцы нетбуков со скромными SSD. Огромная выгода в сравнении с прямолинейным следованиям советов из самой Википедии.

В остальном — обычное LXDE, скриншот которого я уже когда-то публиковал.

//cast router, который в недавнем времени интересовался поднятием локального зеркала Википедии.

 ,

svobodka_fighter
()

ajenti @ UMI X2

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

Нашел время, доработал это извращение. Наглядный пример зачем в современном мобильнике 4 ядра и 2GB RAM. Собственно, на скриншоте ajenti, который торчит из моего старого UMI X2 с разбитым экраном. Так как экран на ладан дышит, а новый экран стоит как новый аппарат, я взял другой телефон, а этот приспособил на чердаке на даче для раздачи интернета.

На борту стоковый android (ядро тоже родное) с root'ом, из которого вычищено все, что только можно, включая google play services. Из софта только smanager, который запускает при загрузке аппарата скрипт, который запускает debian в chroot'е и дергает chroot окружение каждый раз, когда меняется состояние мобильной сети.

В chroot'е живет OpenVPN, stunnel, squid, iptables со стопкой правил, ssh, ajenti и самописная прога, умеющая отдавать фотку по запросу, а так же куча скриптов всех цветов и расцветок. (Ходили слухи, что будет и на нашей улице DPI, решил превентивно разобраться с stunnel. На практике дает много оверхеда).

Так как интернет на даче через мобильную сеть, прямого IP нет, приходится держать OpenVPN до VPS'ки с включенной компрессией, чтобы можно было удаленно наблюдать за курочками^W^W^W администрировать дачную сетку.

Помимо OpenVPN стоит squid с прозрачным редиректом всего траффика через него и жирным кешем на быструю 32GB SD карточку.

Родной «tethering» не используется. Вместо этого скрипт запуска chroot окружения делает вот так:

echo 0       > /sys/class/android_usb/android0/enable
echo rndis,adb > /sys/class/android_usb/android0/functions

А уже debian'овский chroot получает IP штатными средствами. Воткнут телефон в OpenWRT роутер. Изначально, все было на нем, но связка OpenVPN+stunnel оказалась очень жручей до CPU и сжирала 600Mhz MIPS уже на 5-6 мегабитах, если не меньше. Здесь такого боттлнека нет. Да и сеть телефон держит ВНЕЗАПНО лучше 3g модема.

Изначально оверхед от OpenVPN по tcp был где-то 60%, после долгих мытарств, увеличения TCP окна и добавления в конфиг волшебных строк

tun-mtu 1500
mtu-disc yes
txqueuelen 15000
Все стало намного лучше, оверхед стал где-то 20-30%. Пинг без OpenVPN был 80-100ms, с OpenVPN - 150-200ms. TCP_NODELAY в разных местах stunnel уменьшает время пинга, но здорово увеличивает оверхед, потому не используется

Все расписывать будет очень долго, потому отмечу самые нетривиальные хаки:

1. При выключенном экране телефон находится в easrlysuspend (ЕМНИП) и никогда не будет включать вторичные ядра, даже если на 100% загрузить доступное ядро. Потому в настройках девелопмента надо выставить «не гасить экран при подключенном кабеле». Экран он гасить не будет, и в earlysuspend уходить не будет. Сам же экран я гашу в стремном keepalive скрипте, который по крону запускается каждую минуту:

#!/bin/bash
N=`route -n|grep tun0|wc -l`
if [ "$N" -eq "0" ]; then
        route del 127.0.0.1
        route add 127.0.0.1 dev lo
        mkdir /dev/net
        ln -sf /dev/tun /dev/net/tun
        /etc/init.d/stunnel4 restart
        /etc/init.d/openvpn restart
fi

echo 0 > /sys/devices/platform/leds-mt65xx/leds/lcd-backlight/brightness

2. Каждое изменение состояния сети android убивает все маршруты и заполняет таблицу заново, потому помимо крона этот же keepalive вызывается и smanager'ом

3. Напряжение батарейки, температуру батарейки и температуру SoC'а можно прочитать в /sys. Так как у меня медиатек - ajenti это не подхватывает, приходится читать ручками:

Температура батарейки: /sys/devices/platform/mt6320-battery/power_supply/battery/batt_temp

Напруга на батарейке: /sys/devices/platform/mt6320-battery/power_supply/battery/batt_vol

Напруга проводе воткнутом в телефон: /sys/devices/platform/mt6320-battery/power_supply/battery/ChargerVoltage

Ну и

/sys/devices/virtual/thermal/thermal_zone{0,1,2,3}/temp

Для чтения температуры самого SoC'а.

3. usb0 добавлен у меня в br-lan на роутере, вместе с остальнымим портами, для br-lan интерфейса является маршрутом по умолчанию. Хитровыдолбанную настройку DNS и маршрутизации расписывать не буду, лень.

4. На скорость крайне положительно влияет нижеследующее заклинание, немного меняющее настройки буферов для TCP и прочего:

echo "0" > /proc/sys/net/ipv4/tcp_timestamps
echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse
echo "1" > /proc/sys/net/ipv4/tcp_sack
echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle
echo "1" > /proc/sys/net/ipv4/tcp_window_scaling
echo "5" > /proc/sys/net/ipv4/tcp_keepalive_probes
echo "30" > /proc/sys/net/ipv4/tcp_keepalive_intvl
echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout 
echo "404480" > /proc/sys/net/core/wmem_max
echo "404480" > /proc/sys/net/core/rmem_max
echo "256960" > /proc/sys/net/core/rmem_default
echo "256960" > /proc/sys/net/core/wmem_default
echo "4096,16384,404480" > /proc/sys/net/ipv4/tcp_wmem
echo "4096,87380,404480" > /proc/sys/net/ipv4/tcp_rmem

5. OpenVPN не оживет по дефолту, так как /dev/net/tun в андроеде виден как /dev/tun. решается парой строчек:

mkdir /dev/net
ln -sf /dev/tun /dev/net/tun
Лучше запихнуть в keepalive - раз в сутки оно куда-то пропадало у меня.

Задавайте свои вопросы. Все вышеуказанное было настроено за один вечер под действием отборного кофеина, советы экспертов по тонкой настройке OpenVPN на 3g канале приветствуются. ;)

 ,

ncrmnt
()

Smugglers Lair

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

Давно ничего не вбрасывал в галерею, пора что-то вбросить.
Тот же blackbird - gtk2/3 xfwm.
Тот же PT Sans Narrow.
Те же awoken.
Те же инфиналити с самопальными конфигами.
Тот же терминус в терминале.
Тот же Nokia Sans в заголовках.
Та же виртуалка для сборки всего (сейчас патчу openwrt под DSL 2640u c2 под свою борду т.к. поддержки ее просто нет).

 ,

smilessss
()

Рамочный экс-фе-це-е

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

Знаю, зачастил. Даже если не подтвердят, пусть повисит в неподтвержденных.

Тот же Xubunu 14.04.2 с панелью tint2 на котором управление окнами.
Поправил тему gtk, xfwm; немного stylish-ем табы в Firefox.
Запилил заглушку для домашней страницы.
Думаю надолго. Стало удобней, комфортней.

Тема GTK, XFWM: Laten своя
Значки: Evolvere
Обойка: #292F34

Страница для браузера здесь

На столах: Comix, MOC, Thunar, Firefox, MPV

Общий вид gtk2, gtk3

 , ,

dagaragga
()

Тайлинг для домохозяек

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

Тайлинг упрощает жизнь, позволяя распологать окна рядом друг с другом, и следить за всем потоком информации. Существуют динамический, ручной виды тайлинга, и наверное еще один тип - «мышевозный», как в данном примере FVWM.

DestroyFunc FuncFvwmRaiseLowerX
AddToFunc FuncFvwmRaiseLowerX
+ I Raise
+ M $0
+ D FuncFvwmMaximize grow grow

DestroyFunc FuncFvwmMaximize
AddToFunc FuncFvwmMaximize
+ I ThisWindow (Maximized) Maximize
+ I TestRc (NoMatch) Maximize $[0-]

Mouse 1 W M FuncFvwmRaiseLowerX "Move"

Alt + Левая кнопка мыши как и во всех WM перемещает окно по рабочему столу, но если еще дважды кликнуть, то окно развернется, заполнив всё свободное пространство, при этом не затронув другие окна. Лично для меня именно этот вариант тайлинга оказался самым идеальным. Имеем полную свободу действий над окнами: примерно раскинул что куда, прокликал их и окна заполнили всё свободное пространство рабочего стола.

Тайлинг во всей красе.

Для полного счастья нехватало разве что панельки с нормальным списком открытых окон. Запилил на FvwmButtons. С часиками xorg-xclock. Поскольку читаем слева-направо, то расположено всё так, как расположено, чтобы читать содержимое окон было удобно слева-направо.

По интерфейсу как обычно. ОСь CRUX, FVWM, шрифт Mbb для кодинга в vim, а в rxvt-unicode дефолтный fixed.

Так и живём. :)

 ,

Spoofing
()

Пишу оффлайн дефрагментатор reiserfs

Форум — Development

Собственно, уже написал.

На данный момент он дорос до версии v0.2.2 и в нём реализовано всё, что я собирался реализовывать. Код здесь: https://github.com/i-rinat/reiserfs-defrag/archive/v0.2.2.tar.gz

В плане сохранности данных реализовано журналирование как метаданных, так и самих данных (нужно включить, указав параметр командной строки). Сама схема журналирования похожа на data=ordered в ext3/4, когда сначала пишутся данные, а только потом происходит обновление метаданных. Актуальные данные никогда не переписываются на месте, всегда происходит копирование на пустое место. Это снижает производительность, но значительно снижает вероятность повреждения. Собственно, сейчас повреждения возможны только если диск сойдёт с ума и начнёт писать куда не просили. По крайней мере, мне нравится так думать.

В составе есть краткая документация.

В далёком будущем появится версия v0.3, в которой ожидаются убавление тормозов в режиме tree-through и улучшение производительности для больших директорий.

 ,

i-rinat
()