логин: 
Другие записи за это число:
2014/08/27_95 - По результатам соцопросов
<< предыдущая заметкаследующая заметка >>
27 августа 2014
а вот вопросов пара

Друзья, нужен ваш совет!

1. Ситуация: Линукс DD-WRT на роутере ASUS, в него воткнуты несколько USB-устройств: пара звуковых карт, флешка, внешний диск и платка Ардуино. Звуковые карты и флешка ведут себя отлично. А внешний диск и Ардуино в течение суток пытаются перепрыгнуть на другое место:

lleo$ dmesg | grep ttyUSB
usb 2-2.2: FTDI USB Serial Device converter now attached to ttyUSB0
ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
usb 2-2.2: FTDI USB Serial Device converter now attached to ttyUSB1
ftdi_sio ttyUSB1: FTDI USB Serial Device converter now disconnected from ttyUSB1
usb 2-2.2: FTDI USB Serial Device converter now attached to ttyUSB1

lleo$ mount
/dev/discs/discb/part1 on /tmp/mnt/discb_1 type ext3 (rw,noatime,errors=continue,data=ordered)
/dev/discs/discc/part1 on /tmp/mnt/discc_1 type ext3 (rw,noatime,errors=continue,data=ordered)
/dev/discs/discd/part1 on /tmp/mnt/discd_1 type ext3 (rw,noatime,errors=continue,data=ordered)

Попытка поставить хаб с внешним питанием эффекта не дала, поэтому решение нужно программное. Системные скрипты /usr/local/sbin/post-mount и pre-mount срабатывают лишь при загрузке. Оба устройства находятся постоянно под какими-то программами (внешний диск — Самба, Апач; с Ардуины — демоны висят и ждут сигналов).

Что посоветуете? Может, какие-то симлинки прописать заранее или в каком-то конфиге автомонтирования есть опция для резервирования конкретного места для конкретного ID? Наверняка я не первый сталкиваюсь с проблемой перескакивания устройств с места на место. Есть в Линуксе (конкретно: DD-WRT) какие-то наработки на этот счет, чтобы мне не изобретать велосипед?

UPD: Всем спасибо за советы! Итак, решение:

1. О прыгающих винчестерах.

а) Узнать их UUID:

$ blkid
/dev/sda1: UUID="6a0f46fb-0247-4c55-bc5b-17b45d4965fe" TYPE="ext3"
/dev/sdd1: LABEL="hitachi2t" UUID="0cc5149d-5c68-4ba1-a731-40b0a992ce42" TYPE="ext3"

б) Поскольку /etc/fstab нету, и он там не сохраняется, надо завести его копию в сохраняемом системой месте и в нем прописать монтирование устройств по UUID в строго указанные места:

/tmp/local/etc/fstab


UUID=6a0f46fb-0247-4c55-bc5b-17b45d4965fe /opt ext3 noatime,discard,commit=60 0 2
UUID=0cc5149d-5c68-4ba1-a731-40b0a992ce42 /tmp/r ext3 noatime,discard,commit=60 0 2

в) В служебные файлы системы я добавил (на всякий случай дублируется):

/tmp/local/sbin/pre-mount

#!/bin/sh

/bin/mkdir /tmp/r
/bin/chmod 777 /tmp/r
/bin/cp /tmp/local/etc/fstab /etc/fstab
/bin/mount /tmp/r

/tmp/local/sbin/post-mount


#!/bin/sh

/bin/cp /tmp/local/etc/fstab /etc/fstab
/bin/mount /opt
/bin/mkdir /tmp/r
/bin/chmod 777 /tmp/r
/bin/mount /tmp/r

# дальше необязательно
# тут стартуют мои нужные программы при загрузке маршрутизатора:
/opt/etc/init.d/S80lighttpd restart &
/opt/etc/init.d/S08samba restart &
/opt/etc/init.d/S70mysqld restart &
/opt/lleo/startusb
/opt/lleo/soundusb
/usr/bin/wget -O /dev/null http://lleo.me/dyndns/?domain=home &
/opt/lleo/playin /opt/audio/kukus/s0.mp3 &
/opt/lleo/arduinod &
/opt/lleo/time.php &
# чтоб mc не глючил:
/bin/cat /etc/passwd | /bin/sed 's#\/bin\/sh#\/bin\/bash#g' >/etc/passwd

# подключаем SWAP либо на флешке либо на винчестере
if [ ! -d /tmp/r/tmp ]; then
/sbin/swapon /tmp/r/tmp/swapfile
else
/sbin/swapon /opt/swapfile
fi

г) Не забыть сохранить изменения в память маршрутизатора, у меня для этого такой файлик:

/opt/lleo/saveram


#!/bin/sh

nvram commit
flashfs enable
flashfs save
flashfs commit

После этого винчестер если отваливается и перескакивает на другой адрес, то все равно остается примонтирован к /tmp/r


2) Теперь что касается бегающего USB-устройства, создаваемого драйвером ftdi_sio.

а) Находим его. Для этого нам помогут lsusb (а может, и не поможет) и простое шастанье mc по папкам. В итоге мы найдем устройство по некому usb-адресу, например: /sys/bus/usb/devices/2-2.2:1.0/ttyUSB0
Эта комбинация "2-2.2:1.0" соответствует положение воткнутого устройства на шине, и не изменится.

б) Создаем файлик, который возвращает нынешнее имя нужного устройства (например /dev/ttyUSB1)

/opt/lleo/arduino_ttyUSB

#!/bin/sh

a=`ls -1d /sys/bus/usb/devices/2-2.2:1.0/ttyUSB* 2>&1`
if [ "x`echo $a | grep 'No such'`" = "x" ] ; then

a="/dev/"`echo $a |sed -e 's/^.*tty/tty/'`
`/bin/stty -F $a 57600 -echo`
echo -n $a
else
echo -n ''
fi

3) Полезные советы:
Утилиты find и lsusb устанавливаются с неочевидными именами так:
ipkg-opt install findutils
ipkg-opt install usbutils


UPD: После краха флешки положу здесь пожалуй скрипты, которые я вытянул:

/tmp/local/sbin/post-mount#!/bin/sh

#/bin/cp /tmp/local/etc/fstab /etc/
#/bin/cp /tmp/local/etc/shells /etc/

/bin/mount /opt
/bin/mkdir /tmp/r ; /bin/chmod 777 /tmp/r ; /bin/mount /tmp/r

/opt/etc/init.d/S80lighttpd restart &
/opt/etc/init.d/S08samba restart &
/opt/etc/init.d/S70mysqld restart &

/opt/lleo/startusb
/opt/lleo/soundusb
/usr/bin/wget -O /dev/null http://lleo.me/dyndns/?domain=home &
/opt/lleo/arduinod &
/opt/lleo/time.php &

#/bin/sed -i 's,/bin/sh,/bin/bash,' /etc/passwd

/opt/lleo/playin /opt/audio/kukus/s0.mp3 &

if [ ! -d /tmp/r/tmp ]; then
/sbin/swapon /tmp/r/tmp/swapfile
else
/sbin/swapon /opt/swapfile
fi

/bin/echo "post-mount: `date` [email protected] $0" >> /opt/lleo/mount.log

cat /tmp/local/sbin/post-firewall#!/bin/sh

#echo 'post-firewall '`date` >> /tmp/llog

#sleep 1; /opt/etc/init.d/S80lighttpd restart &

/usr/bin/wget -O /dev/null http://lleo.me/dyndns/?domain=home &

#ls /opt >> /tmp/llog

cat /tmp/local/sbin/post-mount#!/bin/sh

#/bin/cp /tmp/local/etc/fstab /etc/
#/bin/cp /tmp/local/etc/shells /etc/

/bin/mount /opt
/bin/mkdir /tmp/r ; /bin/chmod 777 /tmp/r ; /bin/mount /tmp/r

/opt/etc/init.d/S80lighttpd restart &
/opt/etc/init.d/S08samba restart &
/opt/etc/init.d/S70mysqld restart &

/opt/lleo/startusb
/opt/lleo/soundusb
/usr/bin/wget -O /dev/null http://lleo.me/dyndns/?domain=home &
/opt/lleo/arduinod &
/opt/lleo/time.php &

#/bin/sed -i 's,/bin/sh,/bin/bash,' /etc/passwd

/opt/lleo/playin /opt/audio/kukus/s0.mp3 &

if [ ! -d /tmp/r/tmp ]; then
/sbin/swapon /tmp/r/tmp/swapfile
else
/sbin/swapon /opt/swapfile
fi

/bin/echo "post-mount: `date` [email protected] $0" >> /opt/lleo/mount.log

cat /tmp/local/sbin/pre-mount#!/bin/sh

/bin/mkdir /tmp/r
/bin/chmod 777 /tmp/r

/bin/cp /tmp/local/etc/fstab /etc/fstab
/bin/mount /tmp/r

bin/echo "pre-mount: `date` [email protected] $0" >> /opt/lleo/mount.log

cat /tmp/local/sbin/pre-shutdown#!/bin/sh

/opt/lleo/playin /opt/audio/kukus/s2.mp3


cat /tmp/local/etc/shells/bin/sh
/bin/bash


cat /tmp/local/etc/fstabUUID=6a0f46fb-0247-4c55-bc5b-17b45d4965fe /opt ext3 noatime,discard,commit=60 0 2
UUID=0cc5149d-5c68-4ba1-a731-40b0a992ce42 /tmp/r ext3 noatime,discard,commit=60 0 2

#/bin/mount -o noatime -t ext3 -obind /tmp/mnt/disca_1/ /opt/

#UUID=18ddec5c-072a-4ea8-a0dc-e1145218bca7 / ext2 errors=remount-ro 0 1
#UUID=18ddec5c-072a-4ea8-a0dc-e1145218bca7 / ext2 noatime,discard,errors=remount-ro,commit=60 0 1

# /home was on /dev/sda3 during installation
#UUID=696fd34c-2f24-4983-8352-bdd0ae473dae /home ext4 defaults 0 2
#UUID=696fd34c-2f24-4983-8352-bdd0ae473dae /home ext4 noatime,discard,commit=60 0 2
# swap was on /dev/sda2 during installation
#UUID=9c050a28-4a0f-40e8-9841-6c7e606a2e7f none swap sw 0 0

#[[email protected] lleo]$ blkid
#/dev/sda1: UUID="6a0f46fb-0247-4c55-bc5b-17b45d4965fe" TYPE="ext3"
#/dev/sdd1: LABEL="hitachi2t" UUID="0cc5149d-5c68-4ba1-a731-40b0a992ce42" TYPE="ext3"


2. Про Ардуину. Чудовищно неудобная среда разработки — этот гребаный текстовый редактор на джаве. Не хочу вообще никаких развесистых пакетов, хочу использовать простой текстовый редактор mcedit и скриптик, который состоит из вызова консольного компилятора, если нет ошибок — консольная заливка кода в Ардуину, а затем (если будет нужно) автоматического запуска всяких собственных скриптов по обмену информацией с Ардуиной (консоль в фирменной среде разработки — еще одна адская убогость). У вас есть готовый пример подобного консольного со всеми правильными ключами для процессора 328? Также интересует пример С-кода для Ардуины с вставками на ассемблере (просто понять, как это оформляется при линковке).

Заранее спасибо за советы.


PS: А пока по традиции расскажу про хозяйство.

Ну, помидоры растут и колосятся. Правда только низкорослые сорта. Сорта грунтовые вымахали до потолка и как-то не желают плодоносить. Но «оранжевая шапочка» и «жемчужина желтая» прекрасны, уже начинают краснеть:

Иван, 3D-принтер — это щастье! Освоил рисование деталек для хозяйственных целей и прочего моделирования. Оказалось, труЪ-программеру гораздо удобнее написать скрипт, чем рисовать кисточками. Для этого вместо всяких 3DMAX существует такой пакет, как OpenSCAD — в нем рисуешь чистой математикой, как программу пишешь: «нарисовать куб», «добавить балку», «вычесть из него шар», «пересечь с конусом»... Конечно, Чапаева на коне так не нарисуешь, зато всевозможные технические детальки рисуются на ура.

Есть, конечно, грабельки, если интересно, расскажу. Ну, пакет OpenScad для Убунты собран дебильно — в нем нет кнопки «Export», поэтому готовую модель в .STL не запишешь. Но ничего, сойдет пакет для простого Линукса. Чтобы перегнать готовую модель в формат gcode для принтера нужен слайсер. Слайсер — это такой большой, красивый и блестящий графический продукт (непременно написанный на каком-нибудь говне типа Перла или Джавы), который с виду как 3D-редактор, а на самом деле нужен лишь для того, чтобы перетранслировать файл из формата stl в gcode. Один слайсер называется Cura. Он хорошо настраивается под конкретный принтер и красиво рисует. Но почему-то не хочет делать детали со стенками тоньше 1мм. Для этого есть другой слайсер — Slic3r. Он рисует тонкие контуры. Зато детали получаются шероховатые и корявые.

Для печати (в принципе, посылать на принтер умеет и Cura, но криво) имеет смысл использовать OctoPrint — это такой сервер, куда потом заходишь браузером на http://127.0.0.1:5000, и там все красиво. Правда, браузер нужен Chrome. Который по своей несовместимости и эгоцентричности давно занял нишу IE. Такая нынче мода пошла у веб-быдлокодеров, когда половина сайтов отказывается работать с Firefox (особенно это касается всевозможных окологугловских сайтов типа 23andme). В общем, этот сервер OctoPrint ставится на любую машину (да хоть на Raspberry Pi с WiFi, приклеенную к самому принтеру), и ты на принтер ходишь печатать браузером. Вот только под DD-WRT нету сборки, а то бы я принтер в коридоре-то воткнул :)

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок
Оставить комментарий
Linux Firefox
 Казахстан
1
0
Нарожный Андрей
Отлавливать подключения и отключения устройств в современном Linux удобнее всего с помощью соответствующей подсистемы UDEV. Я с этим в своё время баловался: http://www.umgum.com/linux-ztemf180-kcell и http://www.umgum.com/linux-ztemf180-nokia3110c-internet-auto[...] Вы отлично разберётесь, что взять себе из моих примеров.
Linux Ubuntu Firefox
 Москва
1
0
Leonid Kaganov
Я что-то не вижу, чтобы в DD-WRT была система UDEV и ее конфиги. Вижу лишь некий mdev и его конфиг mdev.conf, но с ним я не разбирался никогда, и не уверен, что дело в нем.
Linux Firefox
 Казахстан
2
0
Нарожный Андрей
Действительно, MDEV в DD-WRT (да и многих других прошивках для микрокомпьютеров) используется вместо привычного UDEV. По синтаксису ничего не подскажу, ибо не сталкивался, но принцип не меняется - подсистема MDEV отслеживает события аппаратуры, которые можно отлавливать фильтрами и запускать требуемое. Я почитал советы ниже о монтировании через метки файловой системы и UUID - они действенны - но в корне проблемы переподключений периферийных устройств нужно лечить извне, сторонней службой (MDEV), а не надеясь на то, что диск сам перемонтируется по "метке".
Mac Safari
 Израиль
1
0
braintunic
> проблемы переподключений периферийных устройств нужно лечить извне, сторонней службой (MDEV), а не надеясь на то, что диск сам перемонтируется по метке

Конечно, device manager (udev или mdev) - это универсальное средство для настройки внешних устройств.
Но все таки не всегда нужно использовать электронный микроскоп, чтобы забить гвоздь.
В данном случае, для автоматического монтирования внешних дисков (по метке или по UUID) вполне достаточно применить сервис automount (autofs), по моему.
Linux Firefox
 Казахстан
1
0
Нарожный Андрей
Уж и микроскоп - зачем такие крайности? MDEV и UDEV средства универсальные, как швейцарский нож, к примеру, но не всеобъемлющие до отторжения. А automount - условно нож перочинный, к которому нужно ещё молоток, зубило и кучу всего другого для действий за пределами простейших задач. Уж лучше уметь обращаться со "швейцарским ножиком", чем дёргаться каждый раз между подсистемами, каждая из которых со своим синтаксисом, ограничениями и взаимными конфликтами.
Mac Safari
 Москва
4
1
shaman007
Добрый совет? Выкинуть это все удешевленное ARM-говно и строить систему на полноценных компонентах. Ну правда, я это прошел с автоматизацией просмотра сериалов и мультиков, дошел но железного RAID-контроллера. Потому что все эти недоASUS'ы конечно, дешевы, но, блин, так быстро упираешься в их ограничения, что бесит жутко. И не так уж и дешево выходит, когда покупаешь железо за копейку, а потом им нифига не пользуешься.

//роутер - Apple Airport Extreme, торренты 12мегабайт/с. Сервер - аппаратный RAID Adapetc и полноценные сигейты. Буду корячить "умный дом" - посмотрю что используют на заводе Volkswagen, правда.
Linux Ubuntu Firefox
 Москва
6
1
Leonid Kaganov
Это я уже прошел - у меня уже был "полноценный сервер на компонентах", я его выкинул, поставил роутер, и решилась огромная куча проблем.

Основной нюанс состоит в том, что мне, в отличие от вас, не нужны типовые решения массового спроса, которые для вас готовит Apple и прочие фирмачи. Мне, например, Торренты и высокоскоростной рейд-массив мне даром не уперлись. А две звуковые карты, Ардуину, GSM-модуль и оптический сканер отпечатков никакой ваш Apple мне не гарантирует. Потому что Обычному Потребителю для счастья нужна одна звуковая карта и мильён Торрентов :)
Mac Safari
 Москва
1
4
shaman007
Ну нифига у тебя пресуппозиция? Я, может быть, на совещания ходил с HP 4700 под Angstroom и делал вид, что мне удобно! Когда я строился, то вменяемых роутеров (относительно Asus WL-500W) было ровно 2 - Linksys и Apple, при чем Apple - дешевле. Мне что нужно было: нормальный гигабитный сегмент внутри, нормальный пятигигагерцовый WiFi без тормозов, SMS и регистрации, нормальную трансляцию видео по тому гигабитному сегменту (на втором конце XBMC).

А, ну да, я же помидоры не выращиваю :-)
Linux Ubuntu Firefox
 Москва
14
2
Leonid Kaganov
Каждому свое. В любом случае я идею "большого сервера" успешно пережил и давно от нее отказался в пользу роутера. Это решило целую кучу ключевых проблем, сейчас остались мелкие. Гигабиты, терабайты и торренты меня интересуют не то, чтобы в последнюю очередь, а не интересуют совсем ;)

Кстати, никто мне в 2014 году пока не смог объяснить, зачем нужен мощный круглосуточный торрент-сервер. И терабайтные хранилища к нему. Нет, ну правда, я не могу понять. Кино давно уже смотрится онлайн. В крайнем случае скачать фильм или инсталляционный диск - ну 10 минут. Видео сегодня все равно качается на порядок быстрее, чем смотрится. Но сколько ни задавал я этот вопрос, никакого вразумительного ответа не получил. Ну, не считая неуверенного мычания: "а вот если мне надо ехать в поездку, и перед поездкой срочно накачать 100500+ серий сериалов на весь месяц..." Господи, откуда у людей в поездках столько времени? :))) Я бы еще понял, если бы кто-то честно встал и сказал: "Я барахольщик, Плюшкин, знатный активист пиратской партии и параноик, уверенный, что завтра Путин отключит нам интернет! Поэтому я пытаюсь скачать себе весь мировой синематограф назло копирастам, вот для чего мне круглосуточный Торент-сервер и серверная стойка с винчестерами!" Но нет же, никто не признается ж)
Windows Safari Chrome
 Сыктывкар
14
0
drHimik (#4301336)
Я признаюсь.

Просто как то сложно отказатся от того чем занимался полжизни. Коллекционированием порно.

Вот рука не поднимается, снести всего доктора Хауса.
Linux Safari Chrome
 Santa Rosa
2
0
Dzmitry
Ну клёво вам в Москве с тырнетом. А в Сан-Франциско 10 мегабит стоит $50 в месяц. Поэтому фильм скачать в нормальном качестве для большого монитора (15-25ГБ) -- это на 2-4 часа.
Windows Safari Chrome
 Москва
3
0
alexander.smirnov.71
в 2014 мощный круглосуточный домашний сервер можно использовать для виртуальных машин разных мастей, чтобы не ставить их на свою рабочую машину (нотебук), иметь в доступе из разных точек земного шара. Правда, в данном случае - это уже не домашний, а некий рабочий вариант, такой сервер можно и в дата-центре поставить, но дома дешевле)
Linux Opera
 Москва
11
0
Mike Novikoff
Фильмы — да, незачем скачивать. А совсем другое дело музыка — альбомы и полные дискографии _в хороших изданиях_, да ещё с возможностью выбора между несколькими разными фирменными изданиями, где мастеринг (звучание всего диска, попросту говоря) может отличаться довольно сильно. Возможность такой роскоши раньше и в голову не приходила. (Вконтакт с его онлайном тут совсем-совсем не конкурент, там помойка, а не архив).

Впрочем, конечно же, никаких «мощных серверов на компонентах» у меня, а андроидный Тукан — как раз что-то вроде твоего роутера. И никаких терабайтов (вообще никаких винтов!), а только 64-гиговые флэшки на USB, для flac этого хватает. Т.е. ни одной движущейся или греющейся детали в этой системе, идеальная тишина.

Да, и ещё ты забыл: качать — это не только download, но и раздача. Именно что круглосуточная. «Если я гореть не буду, кто ж тогда рассеет мрак?» :)
Windows Safari Chrome
 Chatham
3
0
Reader (#4442593)
круглосуточный торрент сервер - это историческое/ностальгическое
Были времена когда на торрент сайтах давали качать столко сколько ты отдал. А upload speed у cable or DSL низкая
Приходилось сутками держать торрент на раздачу , чтоб загрузить нужные фильмы
Windows Safari Chrome
 Chatham
0
0
Reader (#4442593)
круглосуточный торрент сервер - это историческое/ностальгическое
Были времена когда на торрент сайтах давали качать столко сколько ты отдал. А upload speed у cable or DSL низкая
Приходилось сутками держать торрент на раздачу , чтоб загрузить нужные фильмы
 New York
1
0
byka (#4221769)
Каждая вещь пригодна для своего места :)

Один Большой Сервер имеет свои преимущества и свои недостатки.
Кучка роутеров с ардуинами имеет другие преимущества и другие недостатки.
Говорить "вот это хорошо, а это плохо!" - неправильно. Вот одни проблемы решились - зато появились другие.

А ведь кроме роутеров есть еще андроид-донглы, размером чуть больше флешки - на них тоже можно что-то нагородить...
Windows Safari Chrome
 Краснодар
0
0
барисыч
круглосуточные торренты не знаю, а вот терабайтные хранилища очень даже. Мне вот для фото (я храню всё в RAW) 2 ТБ уже мало. У профессиональных фотографов ваще беда, вот знакомому профи расширил хранилище до 16 ТБ, но чувствую, надолго не хватит :)
Windows
 Киев
4
0
Артем (#4376555)
А что, есть в интернете места, где можно посмотреть фильм онлайн в нормальном качестве, а не как на купленной в подземном переходе видеокассете?
Windows Safari Chrome
 Ростов-на-Дону
0
0
-wall-
Я использую круглосуточный сервер. Не мощный (на Pentium G2010), но тихий, небольшой (плата и корпус формфактора mini-ITX) и достаточно производительный.
Преимущества:
1. Является мультимедийным центром, позволяя через подключённый по HDMI телевизор смотреть видео. Просмотр по сети с через DLNA-сервер не оправдал надежд: не все форматы и кодеки телевизор воспроизводит, видео с большим битрейтом тормозит.
2. Является контроллером домена (отсюда контроль пользователей, например, можно сделать, чтобы ребёнок не тратил на ПК слишком много своего времени, ведь он заходит под своим личным доменным аккаунтом на любой домашний ПК (мой или жены), также возможен мониторинг действий если есть необходимость контролировать ограждение маленького ребёнка от нежелательного контента) и DHCP-сервером для всей подключённой к сети техники (компьютеры, мобильные устройства) в доме.
3. Является файловым сервером, на котором организованы два рейд-массива: RAID0 - файлопомойка для фильмов, которые ещё не успели посмотреть, дистрибутивов, музыки, IP-камера видеонаблюдения и прочей возобновляемой информации; RAID1 - для невозобновляемых данных (личные фотографии, видеоматериалы, собственные проекты, документы и т.д.).
4. Также есть и торрент-клиент. Удобно в определённый каталог положить .torrent и через некоторое время (можно управлять и наблюдать через web-интерфейс) получить готовую раздачу в другой папке, которую тут же можно посмотреть по TV через мультимедийную оболочку.

Может ещё что-то забыл. Одним словом - удобно :)
Windows Firefox
 Москва
0
0
[email protected] (nikvic.ru)
Леонид, как-то раз этот круг разговора уже проходил, но один вопрос остался без ответа.

Ты отказался от "большого железного сервера", как я помню (возможно неправильно) именно потому, что там стала затруднена техническая поддержка решения (особая версия FreeBSD + самописные скрипты). Сейчас тебе попалось железо новое, красивое, работящее и лёгкое. Тактические проблемы решены. Решены ли стратегические?

Ответь, пожалуйста, хотя бы одной строкой: какова будет последовательность действий в случае умирания этого роутера сегодня вечером. И развёрнутей: в случае умирания этого роутера через 2-3 года, когда в новой версии DD-WRT все настройки окажутся принципиально другими.
Linux Safari
 Санкт-Петербург
5
0
Вал. Дав. (#4351495)
Вот для того и нужны многотерабайтные круглосуточные торрент-серверы, чтобы кино было доступно в сети.
Windows Firefox
 Москва
0
0
grassy
если раздачи не поддерживать - они просто исчезнут с трекеров, и все. смотреть онлайн - ну это только если готов отказаться от hd и субтитров.
мне это нужно. я смотрю кино ежедневно и помногу, часто пересматриваю любимые сериалы и фильмы. искать каждый раз в сети, допустим, гонконгскую ленту 68-го года, перекроенную из vhs-рипа в dvd с наложением английских любительских сабов, которую раздают только на закрытых трекерах за деньги - зачем мне это? я один раз купил и продолжаю раздавать для таких же ценителей как я.
порно, опять же. собрать хорошую коллекцию аматеров не так уж просто. да что там, сейчас по трекерам уже даже полной белладонны не собрать, только service animals порезанные остались.
Windows Firefox
 Москва
2
4
Аляксей Арцёмаў
О госпадзе, модераторы ЛОРа в бложике у Каганова, ОМГ.
Mac
 Эстония
2
0
Edd (#3609782)
Позволю себе поинтересоваться: как жить без торрентов? Как посмотреть BrBa, GoT...?
Linux Ubuntu Safari Chrome
 Санкт-Петербург
0
0
Николай Лещёв (#4307359)
Какие "полноценные компоненты" имеются в виду? Как компьютерщику, электронщику и любителю Hi-Fi мне непонятно.

х86 железо?
Windows Firefox
 Москва
1
0
Anonymouse (#4072133)
Забавно наблюдать написание поста в прямом эфире. Каждое обновление — добавление предложения. А картинки уже заранее загружены.

:)
Windows Safari Chrome
 Москва
0
0
AYOUNG
Компиляция под ардуину из командной строки вполне хорошо документирована, там достаточно обычного командного файла. К сожалению, быстро не поделюсь, поскольку сменил комп и ставлю всё с нуля. Но это как-то очень просто, там вызов компилятора с параметрами и затем утилиты прошивания.
Windows Firefox
 Израиль
2
0
braintunic
Я незнаком с DD-WRT, но если это нормальный Linux, то монтировать разделы дисков можно с помощью меток (labels) или с помощью UUID - в обоих случаях гарантируем монтирование того же раздела на то же место, как бы ни менялось имя диска, присвоенное ядром.

Пример с UUID:
# blkid -s UUID -o value /dev/sdc1 ## узнаем UUID нашего раздела
FB48-E466
# mount -U FB48-E466 /u
# df -h /u
Filesystem Size Used Avail Use% Mounted on
/dev/sdc1 15G 4.9G 11G 33% /u

Пример с меткой:
# e2label /dev/sdc1 mydiskN1 ## присваиваем метку разделу
# mount -L mydiskN1 /u
# df -h /u
Filesystem Size Used Avail Use% Mounted on
/dev/sdc1 15G 4.9G 11G 33% /u

Также это можно использовать в /etc/fstab - записывая UUID=xxxx или LABEL=xxxxx в первой колонке вместо /dev/xxx
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Нет, это не нормальный Линукс, это очень особенный. Например, fstab у него нет. А вот blkid в системе имеется:

lleo$ blkid
/dev/sda1: UUID="6a0f46fb-0247-4c55-bc5b-17b45d4965fe" TYPE="ext3"
/dev/sdd1: LABEL="hitachi2t" UUID="0cc5149d-5c68-4ba1-a731-40b0a992ce42" TYPE="ext3"

Теперь осталось только понять, где его прописать в системе. Если удастся - проблема с внешним диском решится. А вот с Ардуиной на ttyUSB0 - все равно останется. Поэтому я думаю, что решение где-то в настройках USB-шины все-таки.
Windows Firefox
 Израиль
0
0
braintunic
Как-то мне не верится в существование Юникса без fstab :)
Но он может сидеть и в другом месте, ну, например, /etc/config/fstab

Поищи: find / -xdev -name fstab
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
-sh: find: not found

:)))

Еще раз: это не Линукс. Это урезанная система для нужд роутера. Достаточно сказать, что в ней даже нельзя просто так исправлять файлы - всякий раз надо проводить процедуру их сохранения в EEPROM, откуда они восстанавливаются при перезагрузке. При этом, впрочем, с большинством задач система справляется прекрасно.
Linux Opera
 Москва
1
0
centrist
а вообще друг советовал OpenWRT вместо DD-WRT - я сам не пробовал, тоже перешивал роутер в DD-WRT и оно уж слишком урезанное
Windows Firefox
 Израиль
0
0
braintunic
Ох ты ж боже ж мой, команду "find" они выкинули ;)
Но 'fstab' все равно где-то в каком-то виде есть.

# ls -R / | grep fstab

(ну уж "ls" и "grep" не могли выкинуть?)))

Хотя, конечно, можно урезать всё и обойтись без 'fstab' - как написали ниже, делая все конфигурационнные операции с помощью одного лишь загрузочного скрипта.
Windows Firefox
 Санкт-Петербург
0
1
an alex (#2582571)
ipkg install findutils
Linux Opera
 Москва
1
0
centrist
там, по-моему, единый загрузочный скрипт, традиционно он называется /etc/rc.local , и в нем mount

можно еще найти диск по UUID в папочке /dev/disk/by-uuid/
т.е.
mount /dev/disk/by-uuid/ABCDEF /...
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Такого нет.
Linux Opera
 Москва
1
0
centrist
а, вспомнил, там при старте из некоторых NVRAM variables считываются запускаются скрипты, например rc_startup - доступно из webGUI ,
in web_GUI goto tab:Administration -> tab:Commands -> type your commands in the text window -> click:Save Startup

соответсвенно там может быть неправильный mount который можно переделать на mount -U (а mount -U сработал, кстати? А то может и смысла нет)


help отсылает к другому http://www.dd-wrt.com/wiki/index.php/USB_storage#V24-Step_3.[...]


кстати, при отваливании USB оно все равно анмаунтиться будет, наверное, и его надо маунтить обратно, путь и той же командой
Linux Firefox
 Москва
1
1
Окудрыцф (#4583429)
Не совсем понял ваш вопрос. Если речь про внешний диск - так его проще через fstab прописать по UUID, он и будет каждый раз перемонтироваться, какая бы беда с usb ни происходила. (в openwrt во всяком случае так происходит, когда конечно он всей системой не грохается). Если же речь про какое-то usbserial устройство, то наверняка та программа-терминал, что к нему подключается, при смене его (как и при многих других проблемах) должна отваливаться и её завершение может быть поводом переподключить её заново, выдрав предварительно из dmesg актуальный номер ttyUSB.

Что конкретно тут надо поправлять? Извините, с ардуиной дела не имел.
Windows Opera
 Киров
7
0
саш (#4503463)
Я извиняюсь, Леонид, сегодня читал сборник "день академика похеля". Все настолько изыскано и остроумно, простите за мой коммент по поводу "дай бог каждому". Никаких негров. Прекрасная литература
Linux Ubuntu Firefox
 Москва
1
6
Leonid Kaganov
А зачем вы это читаете? Эти все книжки писались 10-15 лет назад в прошлой жизни, я бы сейчас и сам перечитывать не рискнул :)
Windows Firefox
 Москва
12
0
kluk
Да ладно вам кокетничать. Классные книжки.
Linux Ubuntu Firefox
 Москва
8
1
Leonid Kaganov
Мне нравились :) Просто странное ощущение... Представьте, что кто-то начал вам писать ответы на ваши посты или комментарии 10-летней давности... Серьезно так: "Вы абсолютно правы! Если бы Юрий Ковтун вчера не забил на последней минуте, финала кубка России-2003 просто бы не было!" А чуть позже: "Вот тут вы просто бредите! Это Нокия 3110 удобная звонилка?! Никогда - слышите! - никогда больше не пишите ничего про Нокию 3110, вы в этом не смыслите!"
Windows Firefox
 Москва
6
0
kluk
Иногда звонят люди, ссылаясь на мои какие-то проги бухо-эйчьаровские и с полной уверенностью в том, что я помню, о чем они, начинают излагать суть проблемы.
Так что я вас прекрасно понимаю :)

Но книжки хорошие.
Windows Firefox
 Москва
5
0
Михаил
Свой пост или комментарий нетрудно и перечитать.

:-)

UPD. Одно из преимуществ диалога (или монолога) в текстовой форме в том, что его намного труднее забыть (или переиначить, со временем), в отличие от устной речи.
Серьёзно: видел на технических форумах (телефония) ветки, которые осмысленно продолжались после трёхлетнего молчания.
Linux Firefox
 Киев
6
0
[email protected]Дмитрий (kastaneda)
Мне в ЖЖ доводилось раз в несколько лет возвращаться к одной и той же дискуссии. Это по-своему прекрасно — например, спор о политике, растянутый на три четыре президентских срока.
Windows Safari Chrome
 Москва
0
0
Alexander
Да уж, зато комментарии про рекламу в блоге и про роутер асус - здорово и вечно.
Linux Opera
 Москва
5
0
Mike Novikoff
Последние несколько дней как раз перечитываю твоё давнее, в т.ч. те вещи, до которых раньше почему-то не добрался. «Харизма», «Коммутация», «Команда Д»... В самом деле, не скромничай, отлично написано! Даже «Команда Д» — её в своё время не стал читать именно потому, что ты сам тогда о ней говорил как о коммерческой халтуре. Но ведь интересно и увлекательно, вчера просидел у монитора целый день не отрываясь. Уж не хуже Акунина — это как минимум.

Кстати, об Акунине. Может, тебе этот вопрос уже задавали: что-то уж больно много совпадений между твоими тремя вышеназванными и его «Фантастикой» 2005 года. Контакт с НЛО случайных людей в Подмосковье — ночью, главный герой приехал туда единственный раз на пьянку на чужую дачу, появившиеся от этого сверхспособности, три супермена — из них одна девушка, секретный институт КГБ в воинской части в Подмосковье опять же (так и вижу перед глазами Нерастанное, куда ездил однажды к служившему там другу), в лаборатории гэбэшники называют суперменов мутантами... Такое впечатление, что Акунин прямо всё у тебя содрал, его книга ведь появилась гораздо позже твоих. Или это просто какие-то общие места в современной фантастике?
Windows Safari Chrome
 New York
1
0
sonyxsir
Хочу присоединиться к вопросу, можно?
Linux Ubuntu Firefox
 Москва
6
0
Leonid Kaganov
Думаю, вот хороший ответ:

http://lleo.me/dnevnik/2004/10/05.html
Windows Firefox
 Челябинск
2
0
vinny-the-poo
О, да. А рассказы Чехова вообще на помойку выкинуть и никогда о них не говорить. Или Честертона, там.
Windows Safari Chrome
 Санкт-Петербург
7
0
beast
Не надо говорить с Чеховым о его рассказах, он вас не слышит.
Windows Firefox
 Москва
0
0
kluk
Если роутер работает больше двух лет, то там банально сдохла флеш-память и "засрались фидеры".
Лечится это заменой роутера.
Windows Firefox
 Москва
4
0
Арттём (lavart)
Про Arduino из консоли.

1. Ставите avr-gcc (идёт в комплекте с Arduino IDE, или первая ссылка в гугле)
2. Ставите avrdude (там же)
3. Пишете проект на обычном C (если нужны либы Arduino, то тут я не советчик, но вроде надо просто прописать пути и #include "arduino.h")
4. Компилируете (жирным отмечены обязательные опции, остальное оптимизирующее или удобство, указанный набор -f* даёт наименьший размер кода, -Os нужен для корректной работы функций задержки):

$options=-mmcu=atmega328p -Os -I. -std=gnu99 -g -gdwarf-2 -pedantic --combine -W -Wall -Wstrict-prototypes -Wundef -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -ffreestanding -fwhole-program -fno-inline-small-functions

avr-gcc $options main.c --output main.elf
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature main.elf main.hex

5. Прошиваете:
avrdude -v -p atmega328p -c arduino -P /dev/ttyUSB0 -b 57600 -D -U flash:w:main.hex:i

6. Готово.

Проверку на ошибки посоветовать не могу, т.к. сам всегда делю "скомпилировать" и "прошить" на два разных скрипта.
Windows Firefox
 Berkeley
1
0
Михаил (#1684620)
Насчёт последнего предложения — а чем make не угодил?
Windows Firefox
 Москва
0
0
Арттём (lavart)
Я под Windows обычно работаю, там make просто так не появится.
Потому нет привычки его использовать.
Windows Firefox
 Richardson
2
0
Михаил (#1684620)
Странное заявление. :–) Насколько я помню, make был даже в стандартной поставке всяких Turbo C/Borland Pascal под DOS, не говоря уже об MSVC и Windows.
Да и поставить gcc, но без make — это какой-то изврат.
Linux Safari Chrome
 Santa Rosa
0
4
Dzmitry
На жаве без полноценной среды разработки пишут только мазохисты. Плакать хочется.
Часто новички жалуются на language verbosity, что им долго набирать длинные имена, сразу видно что пишут в каком-то Блокноте без autocompletion. Жаву нельзя практиковать в Блокноте, она под средне-большие проекты заточена. Не знаю, почему Ардуино выбрали её, какой-нибудь Питон был бы уместнее.
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Вы о чем? Какая вообще связь между Java и Arduino? Ардуино - это в общем случае микрочип avr с 16 или 32кб памяти. Там и на C-то не очень разойдешься, какая Java? :)
Linux Safari Chrome
 Santa Rosa
0
3
Dzmitry
А, я подумал ты на Жаве там пишешь, сорри. Просто двое моих знакомых пишут под Ардуину на Жаве, вполне рады что не на Сях (компилируется намного быстрее).
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Жизнь конечно учит ничему не удивляться, но на Java под Ардуину... Как? И главное - зачем? Там же основные задачи - это шевелить всякими битами. Java для этого очень плохо предназначена.
Mac Safari
 Израиль
13
0
braintunic
Ардуино и Андроид так легко спутать ;)
Linux Safari Chrome
 Santa Rosa
0
0
Dzmitry
Ну из того что я слышал -- они часто деплоят (заливают) код, то есть каждые 5 минут залил-потестил-пофиксал-залил-итд цикл. И на жаве перекомпиляция занимает секунды, на Сях -- минуты, сильно снижает скорость разработки.
Linux Ubuntu Safari Chrome
 Санкт-Петербург
5
0
Николай Лещёв (#4307359)
Не стоит слишком удивляться, да. Java и в SIM-картах бывает.
http://habrahabr.ru/post/93210/
искать: Java на картах
Windows Firefox
 Москва
1
0
Чук
Сначала напридумывают всяких языков с идентификаторами типа ЭтаПеременнаяЗачемтоНужнаНоНиктоНеЗнаетЗачем, а потом жалуются :)
Windows Safari Chrome
 Германия
0
0
_N_E_R_O_
"неудобная среда разработки — этот гребаный текстовый редактор на джаве" - что используете, Eclipse?
Windows Safari Chrome
 Chatham
0
0
Vadimus
Родная среда из комплекта поставки Ардуино?
Windows Firefox
 Москва
1
1
Чук
ASM в C на AVR-GCC делается занятно. Inline ассемблер там полное УГ и на нем писать просто невозможно, но есть один занятный трюк,который делает написание кода на асме довольно приятным. Причем его мало используют, предпочитая городить уродские конструкции в инлайне.
Linux Safari Chrome
 Екатеринбург
0
0
Stanislav Vlasov
Присоединяюсь к оратору про gcc-avr и добавлю про http://inotool.org/ - Ino is a command line toolkit for working with Arduino hardware
На питоне, из утилит хочет picocom и среду ардуино (ради библиотек и, возможно, той самой gcc-avr, не разбирался точнее, так как в дебиане среда ардуино сама зависит от gcc-avr).

Правда, пока особо не тестил, только залил обычный хелловорлд типа мигалки, так что возможны варианты.
Windows Firefox
 Москва
1
0
микки (#4584443)
тут что-то много спецов по домашним роутерам, хотя помидоры куда интереснее. Я за всей историей их роста не следил, но помню, что обычно растения прищипывают, чтобы замедлить рост куста и обратить его развитие в сторону плодоношения.
Windows Safari Chrome
 Германия
0
0
_N_E_R_O_
Вот, да! Хотел же ещё про помидоры написать, хорошо вы напомнили.
Если помидоры вымахали до потолка, то они и не будут плодоносить. Помидорам обрезают макушки и сдерживают их рост в пределах 1м- 1,5м. Так же надо обрезать лишние стебли и обрывать пасынки.
Windows Safari Chrome
 Чита
6
0
Dima (#4585119)
ну Леонид, это вам к программистам надо
Linux Ubuntu Firefox
 Москва
5
0
Leonid Kaganov
А тут ведущие политические аналитики собрались? ;)
Windows Firefox
 Санкт-Петербург
13
0
Tarn
Кондиционерщики же, Ё...
Linux Safari Chrome
 Санкт-Петербург
2
0
RBskates (#4096503)
$ lsusb|grep Proli
Bus 008 Device 003: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

$ echo "/dev/`ls -1d /sys/bus/usb/devices/8-2/8-2\:1.0/tty* |sed -e 's/^.*tty/tty/'`"
/dev/ttyUSB0

Если вы не меняете физические порты, то из номера порта можно легко вытащить название tty. Вот только номер порта нужно правильный выбрать.
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
О, спасибо!
Типа такого у меня получилось:

$ echo "/dev/`ls -1d /sys/bus/usb/devices/2-2.2\:1.0/tty* |sed -e 's/^.*tty/tty/'`"
/dev/ttyUSB1

Вот только теперь загадка - как это применить. Там еще надо... /bin/stty -F /dev/ttyUSB0 57600 -echo Буду думать, спасибо!
Linux Safari Chrome
 Санкт-Петербург
0
0
RBskates (#4096503)
ARDUINO="/dev/`ls -1d /sys/bus/usb/devices/2-2.2\:1.0/tty* |sed -e 's/^.*tty/tty/'`"
/bin/stty -F $ARDUINO 57600
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Не, я не об этом. Это я вслух думаю, как мне поступить. Давайте продолжу думать. У меня к этой Ардуине два типа обращений: "передать команду" (просто посылается дата в порт) и обработчик, который висит демоном и слушает, не пришло ли чего (приходит редко - раз в час примерно). Этот обработчик для экономии памяти сделан бинарником, а при появлении сигнала он запускает консольный скрипт PHP, который уже разбирается с сигналом:

int main(int argc, char* argv[]) {
int fd, ack=1, l=0,i;
char buff[100]="",longbuff[1000]="";
fd=open("/dev/ttyUSB0", O_RDONLY | O_NOCTTY);
while(1) { l=read(fd, buff, 1000);
if(l>=100) { printf("error length\n"); return 1; }
buff[l]=0;
for(i=0;i<l;i++) {
if(buff[i]==0) { l=i; break; }
if(buff[i]==0x0D || buff[i]==0x0A) { l=i; buff[l]=0; break; }
if(buff[i]<32 || buff[i]==34 || buff[i]==39) { printf("hack error ['\"]!\n"); l=0; break; }
}

if(l) {
strcpy(longbuff,"/opt/lleo/zvonkido.php '"); strcat(longbuff,buff); strcat(longbuff,"'");
system(longbuff);
}

}


Вот я и думаю вслух, как оно себя поведет при отваливании /dev/ttyUSB0, и как мне это предусмотреть...
Mac Safari
 Израиль
7
0
braintunic
Опять??)
Ты же постил здесь эту программу пару месяцев назад, и обещал исправить, переписать этот кошмарный код? ;)
И опять читается 1000 байт в буфер размером 100 байт, и опять не проверяется, прошла ли успешно операция чтения или нет.

Вот кстати и место для проверки - когда устройство серийного порта отвалится, то функция read скорее всего вернет значение -1 (ну или зависнет) - здесь то и можно заново сканировать /sys/bus/usb и найти новое имя терминального устройства...
Linux Safari Chrome
 Санкт-Петербург
0
0
RBskates (#4096503)
По-моему, нужно передавать tty параметром в командной строке. Или можно попробовать выполнить шел код, который обсуждали выше, из Си и использовать результат. Или весь шелл на Си переписать, но тут я не помогу :)
Mac Safari Chrome
 Москва
2
0
Семеняка
Ну да, код не без проблем :)

Если на дескрипторе возникнет ошибка, то read() начнет ее выдавать мгновенно c l=-1, строчка

buff[l]=0;

запишет нулевой байт _перед_ началом buff, так что в buff останется старое содержимое, которое сольется в экстазе с остальными строчками, ну и дальше выполнится zvonkido.php. Другими словами, при ошибке с система будет занята непрерывным повторением вызова этого звонкидо со старыми параметрами.

Если же старых параметров не было, а в памяти мусор, то все вообше грустно, так как в качестве параметров будет передан этот самый мусор каждый раз в бесконечном цикле :)

Я бы, все же,
1) читал не 1000 байтов, а 100. Если прочли все 100 - все равно ж ошибку выдаем, так зачем вылазить за пределы выделенной памяти при этом?
2) проверял бы, не вернулась ли ошибка (l==-1), и как-то бы ее обрабатывал;
3) чисто на всякий случай проверял бы l==0 - это конец файла; вроде бы не должно случаться, но...
4) вместо strcpy и strcat (которые вообще надо отучиться использовать) сделал бы один snprintf - куда как читаемей было бы :)
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Но, кстати, особой связи с шиной не наблюдаю:

> lsusb
Bus 001 Device 009: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

/sys/bus/usb/devices/1-1.1.4:1.0/ttyUSB0
Windows Safari Chrome
 Санкт-Петербург
0
0
RBskates (#4330998)
Bus 001 - это шина 1-1, а вот Device 009 уже ни о чём не говорит. Подробно не изучал вопрос, хватило того, что путь не меняется :)
Linux Ubuntu Safari Chrome
 Санкт-Петербург
1
0
Николай Лещёв (#4307359)
1. А зачем взяли Ардуину, если не нравится среда разработки? Ардуину же вроде ради среды берут. Или просто посмотреть-попробовать?
2. Funduino Nano v3 Atmel ATmega328 - это китайская копия Arduino, только дешевле?
http://www.aliexpress.com/snapshot/6098843157.html
3. Может, пригодится: китайцы выпустили вот такой опенсорсный модуль - сердце роутера, OpenWRT-совместимый, с процом на 600 МГц, за $25. Я пока не понял, для кого он позиционируется - только для тех, кто всю обвязку сделает сам? Но вроде прикольно. Там, если посмотреть datasheet, в проце ещё 10/100 свич с аппаратным NAT'ом...
http://wrtnode.com
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
1. Кристалл AVR, все остальное значения не имеет. Ардуино по большому счету, как мне кажется, даже не среда разработки, а протокол загрузки ;)

2. Да, они полностью заменяемы.

3. Смысл модуля мне не очень понятен. Как среда разработки кристалла с Линуксом - есть Raspberry PI, она прекрасно обжита. А если для какого-то серийного проекта выбирать дешевую постороннюю модель, то 600Мгц и 25$ - отнюдь не самые привлекательные параметры.
Windows Safari Chrome
 Краснодар
5
0
барисыч
У мня было нечто подобное. Закончилось казнью родного питателя и установкой большого и страшного питателя на 3А от сканера. После этого не только траблы с USB-устройствами пропали, но и скорость раздачи по Wi-Fi возросла :)
Windows Safari Chrome
 Москва
3
0
vivliofika
поддерживаю
Windows Safari Chrome
 Москва
1
0
vivliofika
поддерживаю
Windows Safari Chrome
 Mississauga
10
0
Vadimus
Прочитал сослепу про казнь большого и страшного писателя - жуть, что ночные апргрейды с людьми делают.
Linux Ubuntu Firefox
 Москва
1
1
aureliano (#4133370)
Такой скриптик не подойдёт?

#!/bin/bash

for i in /dev/sd[a-z]
do
dev="`fdisk -l $i | grep '1 30401 1953568008 83 Linux' | awk '{print $1}'`"
dev2="`df | grep /mnt/disk | awk '{print $1}'`"
if [ -n "$dev2" -a "$dev" != "$dev2" ]
then
umount "$dev2"
fi
if [ -n "$dev" ]
then
mnt="`df | grep $dev | awk '{print $6}'`"
if [ "$mnt" != "/mnt/disk" ]
then
umount $dev
mount $dev /mnt/disk
fi
fi
done

Запускается от рута либо через крон, либо в бесконечном цикле с паузами в n секунд/минут/часов, вместо grep '1 30401 1953568008 83 Linux' надо подставить начальный и конечный блоки, а также число блоков, id и название системы своего раздела (короче, скопировать в эту строчку выдачу команды fdisk для нужного раздела) (предполагается, что раздел с такими параметрами в системе 1, иначе возможна путаница). У меня в бубунте на i386 вроде работает. Если по скрипту что не понятно, готов ответить на непонятки.
Linux Safari Chrome
 Израиль
2
0
braintunic
Опа, скрипт в 20 строк кода для замены одной единственной команды:
# mount -U <UUID> /mnt/disk
Это, конечно, ещё не рекорд, но близко к тому ;)
Linux Ubuntu Firefox
 Москва
1
0
aureliano (#4133370)
Я так понял, что UUID не работает, поэтому и предложил подобный скрипт. В своё время, когда я делал инсталляторы с дискеток и был ограничен объёмом 1.4 Мб., - я писал скрипты, заменяющие команду more и многие другие стандартные команды, места для которых на дискетке не было.
Windows Safari Chrome
 Москва
0
0
vivliofika
Помидоры, чтобы плодоносили, ограничивают в разрастании куста. Их максимальный размер биологически ограничен только у нормальных сортов. Ты и сам пишешь, что селектированные сорта уже отрастили помидорки.
Windows Firefox
 Обнинск
0
0
Serg (#4089201)
Поставьте optware, там всё есть.
Linux Opera
 Москва
0
0
Leonid Kaganov
Что именно есть?
Windows Firefox
 Обнинск
0
0
Serg (#4089201)
Мой асус RT-N66U прошит Tomato Firmware 1.28.0000 MIPSR2-104 K26 USB AIO-64K

Плюс установлен optware (coreutils + куча линуксячего софта). В итоге имеем на рутере полноценный линукс, fstab есть, проблем с монтированием по uuid нет.
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Ну и у меня есть fstab, если его сохранить.
Linux Ubuntu Firefox
 Breckles
1
0
sem40 (#4588457)
Таки, а вам удалось напечатать себе новый коммуникатор на 3Д принтере??
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Пока на кошках тренируемся...
Windows
 Киев
0
0
Артем (#4376555)
Напечатали котика?
Linux Ubuntu Firefox
 Москва
1
0
Leonid Kaganov
Вчера - двух.
Windows Firefox
 Воронеж
1
0
Константин (kagrebennikov)
Предлагаю распечатать несколько 3D-принтеров. В масштабе 1:2. И чтобы они потом делали то же самое. И т.д., и т.п. Ну, вы меня поняли.
В итоге нашу Землю погубят не соседнее государство, не штаты и не злобный ботоксный карлик, не ядерное оружие, а 3D-принтеры. Разрушим их злобные планы!
Windows Safari Chrome
 Пермь
3
0
chonbuk (#1953659)
«а то бы я принтер в коридоре-то воткнул :)»
и печатал бюсты всех посетителей, сканированных через дверной глазок?
Windows Firefox
 Израиль
1
0
braintunic
> печатал бюсты всех посетителей, сканированных через дверной глазок

Посетительниц.
Бюст, сканированный через Х-ray, в обнаженном виде...
Linux Opera
 Москва
0
0
Mike Novikoff
«Мимо прошла девушка с большим бюстом
Аристотеля в руках» (Кнышев)
Windows Safari Chrome
 Москва
0
0
vctor (#4596019)
Главное не фотографироваться рядом с бюстом Чайковского или Антиноя.
А то мало ли куда судьба занесёт и соседи не поймут.
Linux Ubuntu Firefox
 Санкт-Петербург
0
0
Николай Лещёв (#4325555)
Стало ли понятно, отчего винчестеры "прыгают"?
Linux Opera
 Москва
0
0
Leonid Kaganov
Нет, но проблема побеждена.
Linux Ubuntu Firefox
 Москва
0
0
aureliano (#4133370)
А чего тут понимать-то? Скорее всего usb периодически отваливается, но не сильно, и тут же обратно возвращается. У меня похожая проблема: 2 внешних винта Seagate, один временами отваливается, даже если не дотрагиваться до usb-провода или чего-то ещё, у другого всё ok, хотя фирма одна. Правда, проблем с переименованием нет, но когда проверял свой скрипт, сумел и эту проблему воспроизвести искусственно. Зато другая проблема имеется: как только диск отваливается и тут же обратно монтируется под тем же именем, емул уже не может его найти без перезапуска и приостанавливает все загрузки.
Linux Safari Chrome
 Mountain View
1
0
xaep (#4592290)
Про ардуину - в debian/ubuntu есть пакет arduino-mk, собственно набор мейкфайлов для сборки/прошивки ардуины.
FreeBSD Firefox
 Москва
4
0
Konvpalto (#4593634)
'/bin/cat /etc/passwd | /bin/sed 's#\/bin\/sh#\/bin\/bash#g' >/etc/passwd' -- это в некоторый момент (когда > сработает раньше /bin/cat) оставит вас с пустым /etc/passwd.
Linux Safari Chrome
 Санкт-Петербург
0
0
Константин
За чтож перлу то так досталось :( Ну не самый красивый, зато компактный, расширяемый и на том же роутере может бегать.
Windows Safari Chrome
 Mountain View
0
0
BodrovSerbod
У USB-Serial адаптеров на базе чипов FTDI часто не распаян чип памяти (сэкономили 15 рублей), и поэтому устройство не имеет серийного номера. А без серийного номера оно не может привязаться к конкретному порту/имени и может менять "прописку" даже во время работы. Если в системе только одно такое устройство, то можно привязать его к нужному имени (например, /dev/ttyUSB.duraino) в конфигах udev по VPI/VCI. Если таких устройств с одинаковыми VPI/VCI но без серийных номеров несколько, то программно проблема не решается. Привязываться к номеру физического порта в USB-хабе бесполезно - эти номера меняются при перезагрузке.

пример:
создаем /etc/udev/rules.d/99-ftdi.rules
====
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="ttyUSB.CWK"
====

всего комментариев: 226

<< предыдущая заметка следующая заметка >>