Lab

Както писах преди, от доста време искам да имам физически сървър вкъщи, който да си администрирам и гавря, както реша. В началото на годината по щастливо стечение на обстоятелствата това се случи и в момента се радвам на един HP ProLiant ML350 G5.

Това се оказа несвършващ проект и от януари не съм спирал да си играя и да уча нови неща. От по-важните услуги, които се търкалят засега, са: OpenVPN, HAProxy, Let’s Encrypt, Pi-hole, FreeNAS, Jenkins, Graylog, Transmission и NextCloud.

Сървър

Първо спецификациите на сървъра в текущото му състояние:

CPU Един Intel Xeon E5440 @ 2.83GHz
RAM 32GB FBDIMM ECC (8 по 4GB)
RAID 5 3*250GB
RAID 0 1*2TB

За момента RAID конфигурацията е такава, защото: а) не съм купил дискове за повече и б) нямам caddy-та за останалите два слота. Предстои ми доста интересно приключение, когато реша да разширявам storage-а. Нямам търпение rebuild-а на някой масив да гръмне. Най-вероятно ще трябва да купя още един RAID контролер и да присадя drive cage на мястото на CD-то, за да има къде да сложа всичките дискове, които искам. Шест 4-терабайтови диска в RAID 6 биха били достатъчни за известно време.

На RAID 5 масива се намира ESXi 5.5 (HPE image) заедно с datastore-а за някои виртуални машини. На самотния 2TB диск е storage-а на NAS-а, където има разни важни файлове.

Бързо се отказах да обновявам графиката на цялата мрежа вкъщи, защото се променя постоянно. Последната стабилна итерация изглеждаше така

Малко след като нарисувах горната графика, lime2 се пенсионира и вече не е backup OpenVPN. Намира се в процес на прехвърляне на всички неща от стария OwnCloud и backup partition към NAS-а. Тази малка машинка беше цялата ми инфраструктура допреди няколко месеца.

Чувството всички (важни) машини да са свързани през гигабитова връзка е прекрасно! Мога да редактирам видео файлове в Premiere Pro, които се намират върху FreeNAS-а, който работи върху една от виртуалните машини, без да усетя някакво забавяне. Няколко клиента спокойно стриймват видео файлове през SMB, nfs и каквото още дойде, без да има никакви проблеми*.

Най-накрая подкарах и Grafana, която да ми харесва и върши работа, а не да е просто eye candy. Повечето данни идват от Telegraf, който ги събира по SNMP и ги пази в InfluxDB.

По-интересните неща, като цената на тока и данните от ESXi, идват от един Python скрипт, който използва SDK-то за ESXi (pyVmomi). Оказа се значително по-лесно така, отколкото с Java SDK-то, което работи директно със SOAP-а на ESXi. Така и не можах да го подкарам.

Цялата работа на скрипта е да се върже за VMware-а, да вземе данните, да scrape-не текущата цена на тока от сайта на Енерго-ПРО и да запише всичко в InfluxDB.

Тъй като го писах с идеята да го оправя “някой ден”, сега при всяко изпълнение се обръща до сайта на Енерго-ПРО. Това води до интереснa статистикa за последните 24 часа в Pi-hole:

 

Поиграх си доста и с ILO-то. Толкова е старо, че мога да го отворя само през Internet Explorer, защото само този браузър все още поддържа несигурни и стари SSL сертификати.

Когато инсталирах втората партида от 16GB RAM, се сблъсках с друго интересно нещо. Заради изгоряла плочка прекарах няколко часа в дебъгване на проблема. В NVRAM-а на дъното се беше записало, че в дадения слот има изгоряла плочка и докато не го изтрих няколко пъти, не се събуди дори само със здравите плочки.

Мрежа

За основен рутер използвам pfSense, който работи върху един HP thin client. Тънкият клиент се оказа напълно адекватен избор за това.

Външната връзка и WAN интерфейсът на рутера са сами на един VLAN, а на друг VLAN са всички останали устройства.

За първи път настройвах суич през конзолен кабел с истинска цел, а не за упражнение. Прекарах няколко вечери до 3-4 сутринта, докато се стабилизира мрежата. Добре че имаше кой да ми даде акъл.

Някога ще разделя клиентите на VLAN-и според предназначението им. Освен това ще е хубаво и да взема втори управляем суич с пасивно охлаждане. В момента в стаята ми е Zyxel-а, а вторият суич е истински, rack-mountable, 1U. Чувам го през две врати.

За безжичните устройства ползвам два обикновени consumer рутера, които работят в режим AP. Доскоро работеха с едно SSID, за да покрия нявсякъде. Имаха проблеми с някои клиенти с по-стари wi-fi модули и ги разделих на две SSID-та. Някога ще бъдат смемени с UniFi AP-та.

Първият ми тест на мрежата беше да копирам файл от основния компютър към NAS-а. Започваше със 100MB/s и почти веднага падаше на 1-2MB/s и надолу. След недоспиването от борбата с мрежите, вече бях напът да режа кабели, но пък netperf показваше, че мрежата успява да се запълни спокойно до гигабит.

Така пак научих, че върху RAID контролерите съществува кеш (в случая – с неработеща батерия), който при неправилна настройка на read/write съотношението прави писането бавно (изненада!). След като го оправих, нещата се нормализираха и вече bottleneck-а при писане върху NAS-а е само скоростта на дисковете. Тук също се радвам, че имаше кой да ми даде светлина. В момента съотношението е 5/95 за четене/запис.

Това с кеша е от нещата, които се налага да правиш изключително рядко и ако са направени правилно, забравяш, че съществуват. Също като настройването на Nagios. Както често твърдя – Nagios-а е най-стабилното нещо в живота ми.

Услуги

Основното нещо, за което исках да ползвам този сървър, е NAS и смятам, че засега се справя добре с тази си задача.

Имах много време да мисля какво искам да използвам за NAS софтуер и накрая се спрях на FreeNAS. Минах през всевъзможни варианти много преди да имам физически съврър и FreeNAS върху виртуална машина ми пасна най-добре. Разбира се, има и някои недостатъци на виртуализирането, но досега не съм се сблъсквал със сериозни проблеми.

Ако не друго, то поне охлаждането на процесора е адекватно. Все пак малко хора могат да се похвалят с процесори, които работят на температура под абсолютната нула.

Върху FreeNAS-а работят няколко jail-а. Основните са Transmission и NextCloud. Благодарение на Transmission имам една директория в share-а на NAS-а, която се следи за torrent файлове, които автоматично се добавят за теглене. Изтеглените неща се намират в друга директория, достъпна от всички устройства в мрежата. Така пиратстването свободното споделяне на медия с уредени авторски права е значително по-лесно.

 

NextCloud-а ми служи основно за синхронизиране на файловете от телефона и разни маловажни неща между компютрите. Първо ползвах OwnCloud, който се хостваше върху малкото OLinuXino (Lime2). Доскоро за off-site backup ползвах NextCloud върху единия droplet в DigitalOcean, където добавих 50GB Volume, върху който трябваше да са само най-важните неща. След известни проблеми с rsync реших, че Google Photos ми е достатъчен за off-site въпреки компресирането.

 

pfSense е доста полезен инструмент. Освен стандартните услуги, които трябва да предоставя един рутер (DHCP, DNS, etc.), в момента върху него работят доста неща, като по-интересните са: HAProxy, OpenVPN и plugin, който се грижи за Let’s Encrypt сертификатите.

OpenVPN-ът ми върши идеална работа. Няма много за писане откъм конфигурация, защото интерфейсът на pfSense е достатъчно прост и цялата работа се свежда до нацелване на разни стойности. Предишният VPN, който бях подкарал върху OLinuXino-то, беше по-интересен, защото цялата инсталация беше на ръка с всичките генерирания на сертификати за сървъра и клиента, както и настройването на рутирането и firewall-а. В pfSense всичко е графични интерфейси.

Сега мога да се закача за мрежата вкъщи, където и да съм, и с едно mount nas.miskin.in:/mnt/whatever /mnt/nas/ имам достъп до NAS-а.

Не бях работил с HAProxy преди това. Засега имам 20 frontend-а и 13 backend-а. Фронтендите са разделени под два основни за услугите с и без SSL. В общия случай са огледални – вместо да се реже достъпа без SSL, има frontend, който прави 301 redirect към същия адрес, но с “https://”.

20-те фронтенда могат да се свият до два, но засега така ми изглежда по-подредено и лесно за поддръжка. Бекендите са толкова малко, защото на Apache-тата отзад са конфигурирани виртуални хостове и е достатъчно да закарам заявката до правилната машина. След това уеб сървърът се дооправя с рутирането.

Както казах, повечето услуги работят през https. Това става благодарение на Let’s Encrypt. Оказа се малко по-интересна заигравка с HAProxy, за да мога да отговарям правилно на challenge-ите, които идват от Let’s Encrypt при издаване и подновяване на сертификати.

 

Ако не си личи, мразя рекламите с яростта на 1337 слънца. Благодарение на това всички компютри, до които имам достъп, веднага биват снабдени с някакъв AdBlock софтуер. С телефоните това се оказва излишно сложно и неудобно – не искам да ползвам друг браузър, не искам да root-вам телефона и т.н. За спирането на поне част от рекламите върху устройствата в мрежата използвам  Pi-hole. Тъй като все още нямам Raspberry Pi, се наложи да инсталирам Pi-hole върху старото OLinuXino (a.k.a sexy). Не му пречеше особено, че прекара няколко години затворено в кутия и в момента всички DHCP клиенти в мрежата (дори някои от тези с резервирани адреси) го ползват като главен DNS. Получи се доста добре и не усещам никакво забавяне, където и да е. Не помня всички проблеми, които излязоха по време на “инсталацията”. Помня само, че ми се наложи да ровя из инсталационния скрипт, защото имаше допуснати разни предположения за системата, които може и да са верни за Raspberry Pi, но при OLinuXino седят по различен начин. Намерих и полезен скрипт, който събира статистика от Pi-hole в InfluxDB (pi-hole-influx) за ползване в Grafana.

 

Друга основна услуга, която ползвам редовно, е Jenkins. Инсталирането и конфигурирането са тривиални. Забавата тук е при конфигурирането на job-овете.

Разделил съм ги на основно два типа – backend и frontend. Backend job-овете се отнасят до Spring Boot проекти, а другите – Node JS базирани (най-често Vue). Всеки един job се задейства при push в конкретен бранч на конкретен проект. Това става с прост hook в GitLab. Тук идва едно от многото удобства на HAProxy – понеже не исках Jenkins да се вижда извън локалната мрежа, настроих Jenkins frontend-а да приема заявки отвън само от GitLab.

Общо взето за всички проекти правя build и deploy по сходен начин. Java проектите се компилират и пакетират с Gradle. Преди build-а Jenkins се закача за сървърa, на който ще се деплойва, и затрива старите jar-ове. След това се нагласят конфигурационните файлове, с които трябва да работи Docker Image-а (cp log4j2_docker.xml log4j2.xml например) и се започва с Gradle-а. При успешен build готовия jar се копира на целевия сървър и се trigger-ва job-а за redeploy (ако за конкретния проект ми трябва автоматичен redeploy).

Redeploy job-овете са изключително прости. През SSH се закачам към сървъра, където ще се деплойва, правя Docker Image от jar-а, спирам, изтривам и стартирам наново контейнера, в който работи приложението.

При неуспешен build си пращам имейл, за да знам, че нещо се е омазало.

За фронтенд проектите е аналогично. Разликата е основно в това, че вместо gradle build се извикват npm install и npm run build.

 

Споменах, че за Spring приложенията се налага използване на различна конфигурация. Причината за това е, че някои от страничните проекти заживяха интересен живот и се наложи да са достъпни публично. Така приложението се налага да може да работи на три среди – local, dev и prod. Очевидно е какво е local. Dev средата се използва при изпълнение на тестовете по време на Jenkins build-а, а prod е това, което се вижда, когато проектът се достъпи публично.

Засега използвам Graylog за събиране на логовете от всички приложения. Това, обаче, ми излиза скъпо, защото на една машина вървят ElasticSearch, MongoDB и Graylog. На практика излиза, че 10GB RAM са недостатъчни, когато идват над 20 съобщения в секунда и се усеща забавяне. Излиза ми скъпо, защото потреблението на ток на сървъра скача осезаемо, когато се върши някаква работа с Graylog и се хабят изчислителни ресурси нещо, което може да се реши по по-лесен начин.

Обмислям да бутна приложенията да пращат имейл при някакъв проблем вместо да логвам всичко навсякъде. Поне докато не стигна някаква възвръщаемост, която оправдава по-високата цена на работата с Graylog.

 

Освен всичко описано дотук, по разните виртуални машини вървят всевъзможни други услуги: MySQL, PostgreSQL, RabbitMQ, Redis и още, и още. Все още успявам да се справя с поддръжката на всичко сам и ми е все по-интересно. По-горе писах, че използвам GitLab. Смятам скоро да си пусна една инстанция при мен, за да видя дали все още е толкова лаком за ресурси.

Проблеми

Основният ми проблем със сървъра е, че като сравнително стара enterprise машина, не е обърнато много внимание на ефективността на потреблението и във всеки един момент дърпа около 256W. Това е при включено само едно от двете 1000W захранвания. При две idle потреблението скача до около 280W. Грубата сметка идва около 40лв. на месец (без ДДС и всички такси: за пренос, загуба, “да има” и др.). Не е най-скъпото удоволствие на света, имайки предвид колко много неща мога да уча благодарение на него, но като знам, че мога да ги постигна с по-малко похабена енергия, ме човърка.

Друг проблем е шумът от вентилаторите. С качването на температурата през последните седмици, все по-често заварвам следната гледка:
Интересно е, че при по-ниска температура навън паметта достига 75-76 градуса без да вдигне осезаемо скоростта на вентилаторите. Въпреки това, суичът си остава по-шумен.

Преди няколко седмици трябваше да изключа всичко, защото имаше профилактика на захранването. Беше забавно, защото чак тогава си дадох сметка колко много неща съм закачил през последните месеци.

Бях оставил всичко да събере прах, за да се чувствам като в истински datacenter.

След включването на всичко, изненадващо, имах само един малък проблем – конфигурацията на суича не се беше запазила и SNMP-то му беше спряно, заради което в Grafana-та не излизаха статистиките за него. Всичко друго заработи без да се оплаква.

Оттук нататък приоритет ми е събирането на дискове за разширяване на storage-а, тъй като той ми умалява най-бързо. Може би и втори процесор, за да няма празни дупки.

Следващото най-важно нещо е да се сдобия с по-съвременна машина, която да не е толкова лакома за ток и да поддържа SSD по-лесно.

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


*Ако не броим нестабилността на sshfs и nfs mount-овете на лаптопа, които решават да потрошат всичко, когато го приспя и събудя. Някой ден ще дойде и неговия ред.

A13-OLinuXino-MICRO

A13-microМиналия месец спечелих Free Board Giveaway играта (цели два пъти!) на Olimex и наградата ми беше тяхното A13-OLinuXino-MICRO, което освен че е супер яко, е и open source hardware.

Подкарването се оказа голям зор, защото, както обикновено, при мен нищо не тръгва от първия път.
Първо си купих минималните неща, нужни за подкарването – карта с image, захранване и USB LAN карта. Поръчах си нещата в сряда, в петък вече бяха при мен. Дотук добре. Днес отидох да си купя останалите неща за подкарването – VGA кабел, клавиатура и USB хъб, защото платката има само един USB порт (ако не броим OTG-то), а искам да ѝ вкарам доста неща 🙂
Та, прибирам се щастлив, че няма да спя заради нещата, които ще причиня на платката, връзвам всичко (като параноично гледам да не съм статично зареден) и… нищо!  Проблемът е, че не очаквах да boot-ва толкова време. Стори ми се “толкова време”, защото не се виждаха съобщенията, докато се пускаше ядрото. Важното е, че се пусна и видях login екрана. От тук започна забавата – бях вързал клавиатурата и LAN картата през хъба, но не светваха. Пробвах и през нормалното USB, но пак нищо. На login prompt-а не можех да пиша нищо. Long story short – след ровене по форуми и обикаляне по разни магазини клавиатурата тръгна през USB-OTG порта. Оттам нататък всичко беше лесно – build-essential, automake, ssh, nginx, python, etc, etc.

В момента се намира на http://sexy.chilyashev.com (screenshot, да не забравя как изглежда, ако я счупя утре), а от тук може да се види дали е пусната. Не знам дали ще продължа да си пиша TODO-то там или ще напиша/инсталирам по-яко нещо да следя какво мисля да правя. Засега остава това. Досега не бях цитирал себе си.

Днес подкарах само най-елементарния пример за GPIO, но мисля да си купя 40-пинов кабел и да започна да си играя по-сериозно с GPIO-то. Като за начало ще видя дали могат да се четат аналогови данни и ако не може, ще сложа АЦП на входа. След това – серво моторчета, интелекти, механика и завладяване на света щракащи релета. Като се наиграя с мигащите диоди и щракащи релета, ще разгледам UEXT нещата. Някъде по средата на това ще си поиграя с UART-а.

Ако всичките периферни играчки тръгнат както искам, ще взема някой от touch screen дисплеите, ще нарисувам някакъв интерфейс и цялото нещо отива в колата, откъдето идват още по-яките периферии – датчици за обороти, температура, скорост, връзка с телефоните, камери отпред и отзад и всякакви яки неща 🙂
С това изникват други интересни проблеми:

  • как ще предпазя устройствата от рязкия спад на напрежението, когато паля, ще бъде ли включено изобщо нещото преди да съм запалил?
  • Колко умен ще е датчикът, който проверява дали съм запалил – “от генератора идва ток => колата е запалена” или нещо по-хитро?
  • Къде ще навра нещото – ще изрежа цялата централна част или ще мисля грозна стойка? Или пък ще разкарам таблото?
  • Колко ще е голям дисплея? 10″, 7″, 4.3″? Portrait/Landscape?
  • Ще вържа ли 1KW усилвател за него?
  • Ако сложа камери, върху какво ще записват?
  • Ще може ли тази малка платка да понесе всичките неща?

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

Отивам да спя.

2013-04-24

В блок 18 на общежитията на ТУ-то има (имитация на) интернет, за който са нужни име и парола да се ползва. Дотук добре, обаче… Маймуните, които са го настройвали, са решили да ограничат достъпа на хората до някои неща (торенти например) и са сложили някакви правила на MikroTik-а, който пуска интернета. Пак добре, обаче тези правила не работят за хора с windows, т.е. те могат да си теглят и виждат всичко. И като реша аз да се закача, интернета веднага пада (i.e. “разлогва” се), защото умните настройки решават, че Linux-ът ми е нещо, което тегли торенти (или прави каквото там е забранено). Нямам торенти и не правя нищо, което би трябвало да е забранено в нормалния свят.
Long story short, написах си това и вече почти мога да ползвам интернет.
Почти, защото някои сайтове изобщо не се зареждат, а на други мога да видя само html-а. Ако имам късмет и са ми останали кеширани стиловете и скриптовете, почти мога да ползвам дадените сайтове.

Хубаво е, че не живея тук. Нямаше да имат секунда спокойствие, докато не го оправят.

Четене на SMS-ите от джажите за интернет на Vivacom

От известно време на лаптопа имам само мобилен интернет, за който ползвам USB модем от vivacom.
Джаджата е Huawei и под windows идва с шарена програма, от която може да се следи трафика, да се гледат SMS-ите и разни други неща. На картата в модема се праща SMS, когато свършат “бързите мегабайти” и когато излезе сметката.

Вчера ми се прищя да си чета SMS-ите без да минавам на windows и след като се поразрових малко, намерих разни неща за устройството. Не беше никак трудно да намеря как става номера. Оказа се много просто – пращам команди, чета резултата, обработвам го и – готово.

От джаджата към компютъра постоянно летят статистики за изпратени/получени данни, скорост и др., които изглеждат долу-горе така:


^DSFLOWRPT:00000454,00000D36,00000092,00000000001912E8,000000000017E69A,00004000,00004000

^DSFLOWRPT:00000456,0000001A,0000004E,000000000019131C,000000000017E736,00004000,00004000
[...]

Нещото приема AT+C команди и за да върне SMS-ите, трябва да му се каже това:

AT+CMGF=1
АT+CSCS="UTF8"
AT+CMGL="ALL"

Първо го направих на python, но след това видях, че вече е правенo реших да го пренапиша на C++. По-голямата част си е чисто C, но заради работата с низовете се прежалих да ползвам и C++.
Long story short – нещото го има в github – https://github.com/chilyashev/smsread

Пробвано е с Huawei E173 и не е давало дефекти. Само веднъж се случи да хвърли SIGSEGV, малко след като вкарах устройството в USB-то, но това е нормално, все пак не беше инициализирано.
Ако се докопам до други джаджи, ще пробвам и с тях.

Ако в близките дни имам повече свободно време, ще му напиша GUI на pygtk или друго човешко нещо. Ще си чертая графики на статистиките, да ми е удобно. Мда.

Клавиатура

Миналата седмица (сряда вечерта) си залях клавиатуата на лаптопа и се оказа, че не е текилоустойчива. Веднага го изключих и го обърнах да се изтече. Извадих късмет, че беше в края на клавиатурата и не беше много. И въпреки това изобщо не я отчиташе. В петък си взех USB клавиатура временно, докато не оправя тази и още докато го пуснах с нея, другата тръгна. Отначало NumPad-а изобщо не работеше, но в последствие се оправи. В момента си работи идеално с малки изключения – стрелките надолу и надясно, F11-F12 и Insert-Delete се натискат едновременно. Ако до още няколко дни не се оправи сама, може да я извадя и да опитам да ги почистя. Не ми се ще, защото вероятността да дооакам нещата е доста голяма, но ще видим.

Около нещата с клавиатурата намерих полезен инструмент за тестване на X събития – xev. Изплюва един тон текст с интересни неща. Много удобно.

It has been written.

2011-10-22

Нямам време да си играя с блога от студентстване…
Затова казвам набързо няколко неща.

Запознах се с тонове нови хора и т.н.
И излиза, че от групата само аз съм се занимавал с програмиране на повече от 3 езика извън училище. Май имаше един php човек. Не помня.
Жалкото е, че има и много хора без никакво чувство за хумор. Ще го преживея

Успях да се освободя от уеб дизайн. Добре, че асистентката е разбрана. Не че ми пречи да стоя от 5 до 7 всеки вторник(!!!), ама да уча болд, фреймове(!) или пък map (някой ползвал ли е изобщо map след 1999?), няма да стане. Чувствах се сякаш ме учат на азбуката отново. Мисля да започна да ходя като започнат JavaScript. А асистентката каза, че php ще учим в четвърти курс 😀

Така като гледам, математиката и електротехниката ще са ми зор, другите неща са HTML и C/C++.
Или пък английски. Имам английски.

Лекциите по някои неща са доста интересни – лекторите са забавни и говорят глупости или пък разказват вицове. Засега няма “гадни” асистенти/професори/там-както-им-се-вика.

Като казах C++…
Първите часове по ПИК бяха много забавни. Асистентката написа 10-11 езика на дъската, от които не бях писал само Fortran и Assembler (това нещо досега съм го казал сигурно 100 пъти). Да видим как ще е нататък.

Имаше хора, невиждали Linux. Доста дискриминативна е програмата. Почти всичко е windows-базирано. Май ще се наложи да си слагам бозица за GUI-писането в по-горните курсове.
Вече няколко пъти ме питаха “С каква тема ти е windows-а?”. А колко странно ме гледат като им кажа, че не е windows…

Пуснах молба за някакъв акаунт в M$, откъдето ще мога да си свалям легално и безплатно windows и visual studio. Това стана в стая пълна с Microsoft неща. Бях с тениска с Debian-ското лого. Много забавно ми беше.

Вчера във влака някакъв тип се хвалеше, че веднъж цяла седмица ходил на дискотека всяка вечер и не можал да издържи. Аз не съм лягал преди 3, откакто съм тук и всяка сутрин ставам в 8:) Замълчах си.

Общо взето засега студенстстването е доста добре – намирам за какво да се смея, не ми е прекалено скучно, почти няма идиоти и има много интересни неща. Да видим как ще е като дойдат изпитите 🙂

Щях да пиша малко и пак се олях…

Спиране на вградените говорители на лаптопа под Linux

Преди няколко седмици ми отказа единия канал на изхода за външен усилвател на лаптопа и ми се наложи да тествам, преди да го хвърля на хората в сервиза. За това ми се наложи да спра вградените говорители на лаптопа.
Под Windows това става автоматично, но за Linux трябваше малко ровене.
Преобладаващите съвети са да се правят някакви глупости по ALSA-та, да се бута ядрото и т.н.
Случайно обаче попаднах на hda-verb. Компилира се без нищо странично и си върши работата идеално.

Говорителите се спират със следната команда
[code=”bash””]hda-verb /dev/snd/hwC0D1 0x1f 0x701 1[/code]
където /dev/snd/hwC0D1 са говорителите, а единицата накрая е за спирането. Пускат се със същия ред, но с нула накрая.

При мен (Lenovo G560, някаква Conexant аудио карта) устройството в /dev/ е това, за други може да е различно.

hda-verb изглежда яко и сигурно, ако някой може да го използва (щото аз само това мога :)), ще е доста полезно 🙂

Debian 6.0

Сутринта видях, че е излязла новата версия на Debian – Squeeze. Веднага свалих DVD-то и го изпекох (нямах cd).
Има тонове нови неща. Сменили са splash-а, инсталацията е с приятно синьо и в пъти по-бърза, има нови опции, поддръжка на нови файлови системи. Много неща!
Инсталацията мина много бързо. За сравнение – когато инсталирах Lenny, избирах по около 800 пакета и му трябваха 10-15 минути да ги изкара от диска. При squeeze за 10-15 минути избира и инсталира 1100 пакета:)
По време на инсталацията изпищя, че не може да се свърже с repository-то. Излиза, че, докато се е настройвал apt, инсталаторът е натикал “deb ://volatile.debian…” вместо “deb http://volatile…”
Все още не мога да оправя драйверите на видеото. Дано поне на лаптопа да тръгнат както трябва.
Нямам време да се занимавам сега.

P.S. Линк към статията в debian.org: цък.

2010-10-03

Тъй.

Първо: Преди около месец си набодох “новото” Ubuntu, защото се изнервих на старите пакети на Debian-а. Хубаво е, че е стабилно, ама старо. Оказа се, че заради новия GNOME, nagios-а пищи, че не може да чете ~/.gvfs и някакви други дребни неща. Както и да е, поръчках го, оправих ги и сега се търпи. Ще го махна, когато излезе новия Debian.

Вчера към 02:30 ми се приигра Spyro the Dragon (игра за PS1). Пускам си ePSXe-то с wine, всичко тръгва, зачита джойстика, играта тртгва, даже уиндоуските сейфове видя. Обаче. Започва играта и не мога да ходя надясно или назад. Накратко: всичко без надолу и надясно на джойстика не работи. Разглобих го 3-4 пъти, чистих платката, мерих – всичко беше както трябва. Зарязах това и пуснах NES емулатора – всичко OK.
С малко зор подкарах pSX (оказа се, че трябва всеки път да убивам pulseaudio, за да тръгне). Важното е, че мога да си цъкам плейстейшънски игри спокойно.

В петък ми беше практическия изпит по кормуване. Взех го. Малко не съм съгласен с 3 от петте грешки, които ми постави изпитващия, но няма смисъл да мърморя при свършен факт:)
Видях прословутите камери. Нищо особено, само дето говореше. Интересно беше, че като някой угаси колата (не съм я гасил аз) и после запали, камерата пак казва “Recording will begin” Съмнявам се, че заради запалването (стартер, свещи, etc) токът пада и камерата запича, но разбира се, може и да говоря глупости. Нищо. Взех го и утре отивам в КАТ да подам документите. Трябва да помъкна някоя книга с мен, да не умра от скука, докато чакам.

In other news, сезонът, който започна изглежда доста обещаващ, но няма да се впускам в разни описания, че няма да мога да млъкна до утре (което е след 6 минути:D).

`GLIBCXX_3.4.11′ not found

Онзи ден се опитах да подкарам Common Music/Grace, но нещо не се получи. Гърмеше ми с “/usr/lib/libstdc++.so.6: version “`GLIBCXX_3.4.11′ not found” (required by ./Grace)
След малко ровене из форуми го зарязах, все пак не е кой знае какво някаква ненужна програма да не ми върви. Тази сутрин обаче исках да пробвам Game Editor, да поубия малко време. Е, той ми гръмна със същата грешка. След около час ровене из google и произволни форуми успях да скрепя нещо. Излиза, че гореспоменатите са компилирани с различни версии на gcc от моята (или нещо подобно). Най-накрая успях да го оправя:

Първо добавих tesing в sources.list (deb http://ftp.debian.org/debian testing main contrib)
След това инсталирах g++-4.4-multilib (apt-get install g++-4.4-multilib)
Един apt-get check за всеки случай.
След това всичко си тръгна както трябва. Вече ще си пиша недодялани 2D игри без проблем 🙂

(това го пиша основно за себе си, защото имам навика да забравям как съм оправил разни неща и ми се налага да ровя наново)