29 января 2014

Полезные freebsd команды

dmesg | less - постраничный вывод всего лога загрузки
dmesg | grep ada - какие диски есть в системе


Лог загруки FreeBSD пишет в /var/run/dmesg.boot

mv * /mnt/ - перемещение всех файлов из тек каталога в папку mnt (рекурсивное)
mv name1 name2 - переименование
ll  -  аналог ls -Al.  

Поиск осуществляется командой find
# find . -type f -name 'name*'

systat -netstat - сетевых подключения в реальном времени
systat -ifstat n - загруженность канала, n - обновление в сек.

Посмотреть все открытые порты  
# netstat -an
или проверить конкретный  порт:
# netstat -an | grep 1723

(Mb/s - Мегабит/сек, MB/s - Мегабайт/сек, 1 MB/s = 8 Mb/s, поэтому чтобы не путать лучще пишите Mbit/s)
 
/etc/netstart - перезапуск сетевых служб

Показывает какие порты слушают запущенные программы
# sockstat
 

Обновление портов

portsnap fetch update - обновление портов
make config install clean - установка портов
make -DBATCH install clean -  с настройками по умолчанию, не будут появляться диалоговые окна конфигурации.

touch filename - создание пустого файла.
whereis nemeofport - где находится порт
nslookup login.icq.com - узнать ip по домену

adduser - добавить нового пользователя
passwd  user - изменить пароль пользователя

Различия между директориями
diff -r -q /www/site.ru /www/beta.site.ru/ > /www/beta.site.ru/diff.html
ключи
-r рекурсивно,
-q — не показывать сами различия, только имена файловв которых есть различия
diff -Naur nginx36/nginx-0.6.36/ nginx38/nginx-0.6.38/


du -hsx /usr/ports/ - узнать размер директории
du -h -d 1 /

Назначение прав осуществляется командой chmod в формате: чтение, запись, исполнение для владельца, группы и остальных, т.е. в виде буквенной записи вида rwx rwx rwx. Или в числовом десятичном представлении это 777, в двоичном  111 111 111. т.е. каждый бит в байте служит меткой.
000 - 0 - ничего
001 - 1
010 - 2
011 - 3
100 - 4 - только чтение
101 - 5
110 - 6 - чтение и запись
111 - 7  - полный доступ
Исходя из этого можно составить любую нужную комбинацию, например,
chmod 764 filename
Команда chown user:wheel filename  меняет владельца и группу.

Перезапустить ipfw
/etc/rc.d/ipfw restart
или
service ipfw restart
Монтировать iso img образы

mdconfig -a -t vnode -f PATH_TO_YOUR_ISO/ISOFILE.iso
mount -t cd9660 /dev/md0 /cdrom
umount /cdrom
mdconfig -d -u md0
Чтобы включить dhcp на интерфейсе в rc.conf пишем

ifconfig_fxp0="DHCP"

Установка программ из архивов
1) Сначала распаковать tar.gz

tar xvfz filename.tar.gz
или tar.bz2.

tar jxvf filename.tar.bz2
2) Зайти в директорию, куда распаковали и выполнить  

./configure & make & make install

Посмотреть запущенные службы
ps -ax | grep mpd5
Показывает подключенные к ядру модули
kldstat
Выгрузить модуль
kldunload ng_mppc
Откатиться на старое ядро
cd /boot
chflags noschg kernel
mv kerel kernel.new
mv kernel.old kernel
chflags schg kernel
reboot
Поиск в редакторе vi осуществляется командой "/" - вниз по файлу, а "?" - вверх. Команды "n" и "N" повторяют поиск в том же или противоположном направлении.

Переход к строчке с номером 160
:160

gpart show ada0
gpart destroy ada0
gpart delete -i 1 /dev/ada0
gpart add -t freebsd-zfs /dev/ada0 
zpool create -m /mnt pool1 /dev/ada0p1zpool attach systor ada0p1 ada0p2

Анализируем сетевой трафик
tcpdump dst host 192.168.2.1
tcpdump -ni ng0
 
tcpdump -i eth2 port 21

Спикок установленных пакетов
# pkg info
Посмотреть таблицу маршрутизации, где default - шлюз по умолчанию, а link#1 - соответствует первому адаптеру в системе.
# netstat -rn
Список PCI устройств с указанием драйвера (если нет, то none), производителя, названия и типа.
# pciconf -lv
Если выполнить поиск по производителю, получим в основном список драйверов.
# man -k Atheros
Список USB устройств 
# usbconfig dump_device_desc
Поиск программ в портах.
Если вам известно точное название программы, то можно так
# whereis mbmon
Если знаете только примерное название, то
# cd /usr/ports 
# make search name=mbmon
Или можно поискать во всех комментариях и описаниях.
# cd /usr/ports 
# make search key=mbmon
Перезапуск сетевой службы,
# service netif restart
Быстрый поиск файлов по базе
# locate named.conf
Вывод информации о выполняемых в текущий момент процессах
# ps -ax
Изменить скорость для интерфейса на 10Mbps full-duplex:
# ifconfig re0 media 10baseT/UTP mediaopt full-duplex
Как посмотреть сжатые логи:
# bzcat proftpd.log.2.bz2
Смотрим логи
# less /var/log/messages
 Сервисы из /ect/rc.d
# service -l
Если вы случайно в консоли нажали Ctrl-Z и тем самым перевели процесс в фоновый режим. То напишите jobs, увидите все приостановленные задания и по номеру с помощью команды fg можете вернуть нужную на передний план
#jobs
#fg 1
Такая ситуация может быть, если вы открыли файл в редакторе vi, нажали Ctrl-Z, вышли в консоль, забыли об этом. Снова открыли тот же файл, но при попытке записи :wq получаете сообщение, что файл открыт только для чтения!

Скорость и дуплекс сетевой карты
Узнаем какие режимы поддерживаются
#ifconfig -m re1
И устанавливаем, например, 1Гбит/сек полный дуплекс
#ifconfig re1 media 1000baseT mediaopt full-duplex
 Посмотреть активных пользователей можно
#who
Если у вас случайно разорвалось соединение по ssh, а там были открытые файлы, то нужно закрыть старую сессию ssha
#ps -aux|grep ssh
затем
#kill номер процесса 

27 января 2014

Включение-выключение фонарика одной кнопкой без фиксации

Есть у меня один очень удобный налобный фонарик со сверх ярким светодиодом.
Но вот незадача после непродолжительной работы всего около нескольких месяцев он перестал включаться. Точнее поведение было такое: пока держишь кнопку вкл он горит, отпускаешь он гаснет. Естественно все режимы (максимум, эконом, стробоскоп и SOS) тоже перестали работать. Жалко было хорошую вещь выкидывать и захотелось его реанимировать. 

Для поиска неисправности я разобрал фонарик, он состоит из двух блоков: в первом располагается линза, светодиод и кнопка вкл/выкл без фиксации.

Во втором блок батареек, а под ним печатная плата, драйвер, который носит гордое название B28280 и имеет дату выпуска 14.09.2011. На ней располагается контроллер CX2812 китайского производства,  пара транзисторов Y2, конденсатор 10мкф и резисторы 3, 2х10, 2х100 кОм и еще есть переменный резистор для ручной регулировки яркости.
В интернете нашел его описание: рабочее напряжение 2.5V-5.5V, ток <1mA, тепмература ≤85℃, максимальная статическая мощность 0.5UA, максимальный выходной ток 10mA. 

Назначение выводов следующее:

1: LED1 signal output
2: LED2 signal output
3: LED3 signal output
4: GND
5: MOD1: modes selection
6: MOD2: modes selection
7: KEY: switch
8: VDD

После проверки всех компонентов оказалось, что все такие вышел из строя сам контроллер. Подходящей замены в ближайших магазинах не оказалось. Поэтому было принято решение сделать совсем просто. Оставить только два режима вкл и выкл по кнопке. Для этих целей было решено использовать триггер. Поэтому печатную плату драйвера убираем и собираем новую схему на микросхеме CD4013, у нее в корпусе 2 D-триггера.
В ближайшем радиомагазине были куплены необходимые компоненты: микросхема HCF4013M013TR в корпусе SO14, она работает с напряжениями от 2 до 12V, стоит всего 10 руб., электролит на 1 мкФ и резистор на 100К. Мосфет APM3055L был выпаян с нерабочей материнской платы компьютера.
В качестве силового ключа в этой схеме можно использовать любой мощный полевик. Но сначала я пробовал брать миниатюрный n-канальный мосфет K72 в SOT-корпусе, но он очень сильно грелся, поэтому пришлось взять что-то по мощнее.  Для стабильной работы D-триггера и исключения дребезга кнопки на входе микросхемы подключен фильтр резистор и конденсатор. В режиме "выкл" ток потребления схемы - абсолютный 0!

Как проверить полевой транзистор?
Перед использованием все б/у мосфеты лучше проверить. Делается это так. Для начала их нужно аккуратно выпаять. Используйте паяльник с заземлением или разогретый паяльник отключенный от сети. Иначе можете сжечь их при выпаивании. Еще нужно знать распиновку. 
APM3055L:

K72:
где G - затвор, D - сток, а S - исток.
Мультиметр переводится в режим проверки диодов и к стоку (D) подключается щуп с минусом, а к истоку (S) с плюсом, мультиметр показывает около 400…700mV, это падение напряжения на внутреннем диоде. Затем плюс к стоку (D), а минус к истоку (S). На дисплее бесконечность, обычно обозначается как 1.
Удерживая щуп минус на истоке (S), плюсом коснуться затвора (G), а потом стока (D). Мультиметр показывает 0…800mV. Это значит, что открыт канал сток-исток (D-S).
Теперь удерживая щуп плюс на стоке (D), минусом коснуться затвора (G), затем вернуть его на исток (S). Теперь канал снова закрылся и мультиметр показывает бесконечность.
Если все правильно, смело приступаем к сборке. Я все сделал навесным монтажом.

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

И чтобы ничего не болталось лучше все заклеить изолентой.

Ура! Фонарик стал светить еще ярче! Фотография сделана при дневном освещении у окна, правда в зимний пасмурный день.