Зарядка для бум-бокса

Бум-бокс Klivien.

Поиск на ebay: 5V Mini USB 1A Lithium Battery Charging Board Charger Module M1

При желании отпаиваем в модуле smd светодиоды и распаиваем обычные.

Внешний вид:
charger1
Плата закреплена двухсторонним скотчем:
charger2
Разрезаем дорожку и подпаиваем 3 проводника:
charger3

 

Теги: , ,

accel-ppp и тип соединения в радиусе

Сервер accel-ppp поддерживает pppoe, pptp, l2tp соединения (скажем так — мне они интереснее).

Через консоль можно увидеть для примера:

 ifname |    username    |    calling-sid    |       ip       | type  | state  |   uptime   | ...       
--------+----------------+-------------------+----------------+-------+--------+------------+-
 ppp152 | user           | xx:xx:xx:xx:xx:xx | 1.1.1.1        | pppoe | active | 9.02:53:41 | ...

 

Но type нет радиусе :( Недолго думая дописал несколько строк:

--- accel-ppp/accel-pppd/radius/req.c.orig	2012-12-05 10:16:11.150988734 +0200
+++ accel-ppp/accel-pppd/radius/req.c	2012-12-05 10:18:10.110104045 +0200
@@ -83,6 +83,21 @@
 	} else {
 		if (rad_packet_add_val(req->pack, NULL, "NAS-Port-Type", "Virtual"))
 			goto out_err;
+		int ret;
+		switch(req->rpd->ses->ctrl->type){
+    		    case CTRL_TYPE_PPPOE:
+			ret=rad_packet_add_str(req->pack, NULL, "Connect-Info", "pppoe");
+			//log_emerg("Connect-Info=pppoe: %d\n",ret);
+			break;
+		    case CTRL_TYPE_PPTP:
+			ret=rad_packet_add_str(req->pack, NULL, "Connect-Info", "pptp");
+			//log_emerg("Connect-Info=pptp: %d\n",ret);
+			break;
+		    case CTRL_TYPE_L2TP:
+			ret=rad_packet_add_str(req->pack, NULL, "Connect-Info", "l2tp");
+			//log_emerg("Connect-Info=l2tp: %d\n",ret);
+			break;
+		}

 		if (rad_packet_add_val(req->pack, NULL, "Service-Type", "Framed-User"))
 			goto out_err;

 

В логе видим:

... <NAS-Port-Type Virtual> <Connect-Info "pppoe"> <Service-Type Framed-User> ....

 

Качаем патч  req-info  и accel-ppp-git-20130321-2.src.tar.gz.

PS. патч под git версию!

Теги: , ,

arpwatch + vlan

Нужно было контролировать сеть с N-числом вланов с помощью arpwatch.

Из коробки не умеет :( Рекомендации в инете сводились к запуску отдельных экземпляров на каждый влан.

Единственный внятный проект https://github.com/SgtMalicious/Arpwatch-NG-VLAN , но он содержит баги и отказался работать. И афтар явно забросил проект.

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

Не хватало дополнительной информации в сообщениях о вланах. Пришлось допиливать до нужного состояния.

Выкладываю патч  arpwatch vlan patch и пакет для сборки под archlinux arpwatch-ng-vlan-1.7-12.src.tar.gz.

 

Теги: , ,

Gene cafe CBR-101: модификация ростера

Всем хорош ростер, но не совсем подходит к нашим реалиям жизни (впрочем не только у нас). Есть проблема в нагревателе — требует нужного напряжения в сети. Например написано 240В и уже при 225 вольтах не получишь нужные 250 градусов. И характеристика нагрева сильно затянута. Забугорный народ исследовал проблему и описал здесь. Предлагаются варианты:

  1. Повысить напряжение автотрансформатором
  2. Замазать щели в нагревателе (здесь)

Но если посмотреть варианты нагревателя , то он выпускается в нескольких модификациях. В частности есть на 230В и 240В. Сразу понятно, что отличаются они только длиной спирали.

Начинаем разбирать агрегат ( коротко с фото ). Извлекаем нагреватель

gene cafe heater label

Маркировка нагревателя на 240В

heater resistance

Сопротивление спирали

 

 

heater view

Вид со стороны выхода горячего воздуха

Можно насчитать внутри, где-то 16-17 витков спирали. И если отключить один виток, получаем модель на 230В.

Аккуратно пинцетом закорачиваем второй виток на подводящий провод

Аккуратно пинцетом закорачиваем второй виток на подводящий провод

Полученное сопротивление

Полученное сопротивление

 

Собираем ростер и подключаем для проверки.

Получаем 250градусов через 12 минут при напряжении 220В

Получаем 250градусов через 12 минут при напряжении 220В

Результат налицо, но лишаемся гарантии. Как вариант, заменить блок нагревателя готовым на 230В.

P.S. Для лучшего результата желательно убрать 2 витка. Это позволит в частности сделать dimmer mod. Но это потребует разборку корпуса нагревателя. Половинки корпуса склеены термостойким герметиком, поэтому оставим на будущее.

Теги: , , , ,

Патчи к pppd

При работе в связке pppd+radius выполз небольшой глюк — если по каким либо причинам не прошел пакет start аккаунтинга, то больше никакой информации в билинг по радиусу не будет пересылаться.

Также бывает необходимость узнать на какой интерфейс прицепился pppd (например, в связке с pppoe и vlan). Передается в Called-Station-Id

Проблемы, в простом варианте, устраняются следующим патчем:

 

--- ppp-2.4.5/pppd/plugins/radius/radius.c.orig	2009-11-17 00:26:07.000000000 +0200
+++ ppp-2.4.5/pppd/plugins/radius/radius.c	2013-07-01 15:45:58.821550625 +0300
@@ -281,6 +281,8 @@

     rc_avpair_add(&send, PW_USER_NAME, rstate.user , 0, VENDOR_NONE);
     rc_avpair_add(&send, PW_USER_PASSWORD, passwd, 0, VENDOR_NONE);
+    rc_avpair_add(&send, PW_CALLED_STATION_ID, ppp_devnam, 0,
+			VENDOR_NONE);
     if (*remote_number) {
 	rc_avpair_add(&send, PW_CALLING_STATION_ID, remote_number, 0,
 		       VENDOR_NONE);
@@ -448,6 +450,8 @@
 #endif
     }

+    rc_avpair_add(&send, PW_CALLED_STATION_ID, ppp_devnam, 0,
+                      VENDOR_NONE);
     if (*remote_number) {
 	rc_avpair_add(&send, PW_CALLING_STATION_ID, remote_number, 0,
 		       VENDOR_NONE);
@@ -874,6 +878,8 @@
     av_type = PW_PPP;
     rc_avpair_add(&send, PW_FRAMED_PROTOCOL, &av_type, 0, VENDOR_NONE);

+    rc_avpair_add(&send, PW_CALLED_STATION_ID, ppp_devnam, 0,
+                      VENDOR_NONE);
     if (*remote_number) {
 	rc_avpair_add(&send, PW_CALLING_STATION_ID,
 		       remote_number, 0, VENDOR_NONE);
@@ -904,12 +910,16 @@

     rc_avpair_free(send);

+    rstate.accounting_started = 1;
     if (result != OK_RC) {
 	/* RADIUS server could be down so make this a warning */
 	syslog(LOG_WARNING,
 		"Accounting START failed for %s", rstate.user);
+	/* Kick off periodic accounting reports */
+	if (rstate.acct_interim_interval) {
+	    TIMEOUT(radius_acct_interim, NULL, 30);
+	}
     } else {
-	rstate.accounting_started = 1;
 	/* Kick off periodic accounting reports */
 	if (rstate.acct_interim_interval) {
 	    TIMEOUT(radius_acct_interim, NULL, rstate.acct_interim_interval);
@@ -982,6 +992,8 @@
 	rc_avpair_add(&send, PW_ACCT_INPUT_PACKETS, &av_type, 0, VENDOR_NONE);
     }

+    rc_avpair_add(&send, PW_CALLED_STATION_ID, ppp_devnam, 0,
+                      VENDOR_NONE);
     if (*remote_number) {
 	rc_avpair_add(&send, PW_CALLING_STATION_ID,
 		       remote_number, 0, VENDOR_NONE);
@@ -1130,6 +1142,8 @@
 	rc_avpair_add(&send, PW_ACCT_INPUT_PACKETS, &av_type, 0, VENDOR_NONE);
     }

+    rc_avpair_add(&send, PW_CALLED_STATION_ID, ppp_devnam, 0,
+                      VENDOR_NONE);
     if (*remote_number) {
 	rc_avpair_add(&send, PW_CALLING_STATION_ID,
 		       remote_number, 0, VENDOR_NONE);

 

 

Скачать  патч в архиве