<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Работа с USB]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=21552</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=21552&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Работа с USB».]]></description>
		<lastBuildDate>Thu, 12 Apr 2012 13:29:07 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Работа с USB]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=267960#p267960</link>
			<description><![CDATA[<p>не внимательный ((</p><p>ОГРОМНОЕ спасибо!!! все работает!!! </p><p>ps. засветился в анекдоте)</p>]]></description>
			<author><![CDATA[null@example.com (Fogord)]]></author>
			<pubDate>Thu, 12 Apr 2012 13:29:07 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=267960#p267960</guid>
		</item>
		<item>
			<title><![CDATA[Re: Работа с USB]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=267945#p267945</link>
			<description><![CDATA[<div class="quotebox"><cite>Fogord пишет:</cite><blockquote><p>сейчас лог выдал это<br /></p><div class="codebox"><pre><code>/bin/grep: /sys/bus/usb/device/*/serial: No such file or directory</code></pre></div></blockquote></div><p>Флешка вставлена? Если нет, откуда ему там взяться? Если да, посмотрите, что там у вас есть вместо, мне-то&nbsp; отсюда не видно...</p><p>Выражение <br />$GREP &quot;$SERIAL&quot; /sys/bus/usb/devices/*/serial<br />истинно только в одном случае, если среди устройств в /sys/bus/usb/devices/ есть такое, у которого в файле serial серийник совпадает с $SERIAL, то есть флешка вставлена. Во всех остальных случаях будет выполнена команда после ||, даже если искомых файлов нет, и это желаемое поведение, насколько помню условие задачи.</p><br /><br /><p>ps. А теперь анекдот про фонарь и потерянные ключи:<br /></p><div class="quotebox"><cite>bormant пишет:</cite><blockquote><p>/sys/bus/usb/devices/*/serial</p></blockquote></div><div class="quotebox"><cite>Fogord пишет:</cite><blockquote><p>/sys/bus/usb/device/*/serial</p></blockquote></div><p>то есть как раз отсутствие файла по указанному вами неверному пути (device вместо device<strong>s</strong>) и приводит к ожидаемой перезагрузке.</p>]]></description>
			<author><![CDATA[null@example.com (bormant)]]></author>
			<pubDate>Thu, 12 Apr 2012 13:11:00 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=267945#p267945</guid>
		</item>
		<item>
			<title><![CDATA[Re: Работа с USB]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=267943#p267943</link>
			<description><![CDATA[<p>сейчас лог выдал это</p><div class="codebox"><pre><code>/bin/grep: /sys/bus/usb/device/*/serial: No such file or directory
/bin/grep: /sys/bus/usb/device/*/serial: No such file or directory
/bin/grep: /sys/bus/usb/device/*/serial: No such file or directory</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Fogord)]]></author>
			<pubDate>Thu, 12 Apr 2012 13:03:00 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=267943#p267943</guid>
		</item>
		<item>
			<title><![CDATA[Re: Работа с USB]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=267932#p267932</link>
			<description><![CDATA[<div class="quotebox"><cite>Fogord пишет:</cite><blockquote><p>/usr/bin/grep: No such file or directory</p></blockquote></div><p>у вас grep отсутствует или лежит где-то ещё, поправьте к нему путь. Поэтому и прошлые варианты с ним не работают. Посмотреть, где он у вас:<br /></p><div class="codebox"><pre><code>$ which grep</code></pre></div><p>ps. А где вот это:<br /></p><div class="quotebox"><cite>bormant пишет:</cite><blockquote><p>результат выполнения при обоих вставленных флешках, &quot;правильной&quot; и &quot;неправильной&quot;<br />$ cat /sys/bus/usb/devices/*/serial</p></blockquote></div><p>?</p><br /><br /><p>pps. Тема всё больше напоминает анекдот про Вовочку, в котором он спрашивает у мамы, что такое аборт.</p>]]></description>
			<author><![CDATA[null@example.com (bormant)]]></author>
			<pubDate>Thu, 12 Apr 2012 12:51:51 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=267932#p267932</guid>
		</item>
		<item>
			<title><![CDATA[Re: Работа с USB]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=267884#p267884</link>
			<description><![CDATA[<p>вот скрипт <br /></p><div class="codebox"><pre><code>#!/bin/bash
LOG=&quot;/etc/udev/log.log&quot;
SERIAL=ea346d043af222
GREP=/usr/bin/grep
REBOOT=/sbin/reboot
$GREP &quot;$SERIAL&quot; /sys/bus/usb/device/*/serial &gt;&gt; $LOG 2&gt;&amp;1</code></pre></div><p>а вот лог</p><div class="codebox"><pre><code>/etc/udev/scripts/udev-myflash-remov: line 6: /usr/bin/grep: No such file or directory
/etc/udev/scripts/udev-myflash-remov: line 6: /usr/bin/grep: No such file or directory
/etc/udev/scripts/udev-myflash-remov: line 6: /usr/bin/grep: No such file or directory</code></pre></div><p>почему три строчки не пойму, всего 2е флешки использую</p>]]></description>
			<author><![CDATA[null@example.com (Fogord)]]></author>
			<pubDate>Thu, 12 Apr 2012 12:03:41 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=267884#p267884</guid>
		</item>
		<item>
			<title><![CDATA[Re: Работа с USB]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=267842#p267842</link>
			<description><![CDATA[<p>Вы ведь в строчке $SERIAL= вписали номер своей флешки, так?</p><p>Покажите строчку с $SERIAL= вашего скрипта /sbin/need_reboot, результат выполнения при обоих вставленных флешках, &quot;правильной&quot; и &quot;неправильной&quot;<br /></p><div class="codebox"><pre><code>$ cat /sys/bus/usb/devices/*/serial</code></pre></div><p>Поменяйте последнюю строчку в /sbin/need_reboot на:<br /></p><div class="codebox"><pre><code>$GREP &quot;$SERIAL&quot; /sys/bus/usb/devices/*/serial &gt;&gt; /var/log/udev.log 2&gt;&amp;1</code></pre></div><p>вытащите &quot;неправильную&quot; флешку, немного подождите, вытащите правильную. Что упало в /var/log/udev.log?</p>]]></description>
			<author><![CDATA[null@example.com (bormant)]]></author>
			<pubDate>Thu, 12 Apr 2012 10:47:40 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=267842#p267842</guid>
		</item>
		<item>
			<title><![CDATA[Re: Работа с USB]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=267764#p267764</link>
			<description><![CDATA[<p><strong>bormant</strong><br />попробовал Ваш метод... получилось, но вот если я вытягиваю другую флешку ПС тоже перегружается )))</p>]]></description>
			<author><![CDATA[null@example.com (Fogord)]]></author>
			<pubDate>Thu, 12 Apr 2012 08:40:56 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=267764#p267764</guid>
		</item>
		<item>
			<title><![CDATA[Re: Работа с USB]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=267722#p267722</link>
			<description><![CDATA[<p>По каждому событию извлечения usb_device<br /></p><div class="codebox"><pre><code>SUMSYSTEM==&quot;usb_device&quot;, ACTION==&quot;remove&quot;, RUN+=&quot;/sbin/need_reboot&quot;</code></pre></div><p>проверяем присутствие интересующего устройства, например, по серийному номеру. Если отсутствует, перегружаемся<br />/sbin/need_reboot<br /></p><div class="codebox"><pre><code>#!/bin/bash
SERIAL=012345678abcdef
GREP=/usr/bin/grep
REBOOT=/sbin/reboot
$GREP &quot;$SERIAL&quot; /sys/bus/usb/devices/*/serial &amp;&gt; /dev/null || $REBOOT</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (bormant)]]></author>
			<pubDate>Thu, 12 Apr 2012 05:37:56 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=267722#p267722</guid>
		</item>
		<item>
			<title><![CDATA[Re: Работа с USB]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=267716#p267716</link>
			<description><![CDATA[<p>Внутрь бесконечного цикла while ((1)); do ... done добавьте небольшую задержку, от секунды и выше.<br />Надеюсь, вы его не по событию udev зовёте, на это намекают ошмётки от предыдуших экспериментов.<br />В условии if что-то совсем непонятное (/user/bin/grep ... /user/bin/lsusb).</p>]]></description>
			<author><![CDATA[null@example.com (bormant)]]></author>
			<pubDate>Thu, 12 Apr 2012 02:59:11 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=267716#p267716</guid>
		</item>
		<item>
			<title><![CDATA[Re: Работа с USB]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=267709#p267709</link>
			<description><![CDATA[<p>написал такой скрипт <br /></p><div class="codebox"><pre><code>#!/bin/bash
LOG=&quot;/var/log/udev/log.log&quot;
echo &quot;$1&quot; &gt;&gt; $LOG
VID=1307
PID=0165
sleep 3
DEV=$2
if [ &quot;$1&quot; == &quot;add&quot; ]; then
   echo &quot;Mounting&quot; &gt;&gt; $LOG
fi
   while ((1));
        do
                if
                        /user/bin/grep &quot;$VID:$PID&quot; /user/bin/lsusb
                then
                        echo &quot;Find USB&quot; &gt;&gt; $LOG
                else
                        /sbin/reboot
                fi
        done</code></pre></div><p>теперь PC перегружаеться когда флешку вставляю</p>]]></description>
			<author><![CDATA[null@example.com (Fogord)]]></author>
			<pubDate>Wed, 11 Apr 2012 21:55:33 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=267709#p267709</guid>
		</item>
		<item>
			<title><![CDATA[Re: Работа с USB]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=267697#p267697</link>
			<description><![CDATA[<p>правило работает на &quot;add&quot;</p><p>скрипт написал так <br /></p><div class="codebox"><pre><code>!/bin/bash
LOG=&quot;/var/log/udev/log.log&quot;
echo &quot;$1&quot; &gt;&gt; $LOG
sleep 2
DEV=$2

if [ &quot;$1&quot; == &quot;add&quot; ]; then
   echo &quot;Mounting &quot; &gt;&gt; $LOG
    if [&quot;$DEV&quot; != &quot;&quot;]; then
     echo &quot;--- `date` ---&quot; &gt;&gt; $LOG
     echo &quot;Mounting /dev/$DEV&quot; &gt;&gt; $LOG
     mkdir /mnt/$DEV &gt;&gt; $LOG 2&gt;&amp;1
     chmod a+rwx /mnt/$DEV &gt;&gt; $LOG 2&gt;&amp;1
     mount /dev/$DEV mnt/$DEV -o sync,umask=0000,iocharset=cp1251 &gt;&gt; $LOG 2&gt;&amp;1
    fi
elif [ &quot;$1&quot; == &quot;remove&quot; ]; then
    echo &quot;Remov &quot;&gt;&gt; $LOG
    if [&quot;$DEV&quot; != &quot;&quot;]; then
     echo &quot;--- `date` ---&quot; &gt;&gt; $LOG
     echo &quot;Remov /dev/$DEV&quot; &gt;&gt; $LOG
     echo b &gt; /proc/sysrq-trigger 
    fi
fi</code></pre></div><p>что дает мне возможность видеть до куда доходит скрипт, но дальше чем первое условие он не уходит</p><p>в log.log<br /></p><div class="codebox"><pre><code>add
Mounting </code></pre></div><p>&quot;Remov&quot; совсем не выполняеться, &quot;$1&quot; не передаеться, потому как работает другое правило, но какое еще не нашел<br />в rules.d куча правил, счас попробую оставить только свое</p>]]></description>
			<author><![CDATA[null@example.com (Fogord)]]></author>
			<pubDate>Wed, 11 Apr 2012 20:10:55 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=267697#p267697</guid>
		</item>
		<item>
			<title><![CDATA[Re: Работа с USB]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=267670#p267670</link>
			<description><![CDATA[<p>правило <br /></p><div class="codebox"><pre><code>#First rule
SUBSYSTEMS==&quot;usb&quot;, SUBSYSTEM==&quot;block&quot;, KERNEL==&quot;sd*&quot;, ACTION==&quot;add&quot;, ATTRS{idVendor}==&quot;1307&quot;, ATTRS{idProduct}==&quot;0165&quot;, RUN+=&quot;/etc/udev/scripts/udev-myflash-mount add %k&quot;
#Second rule
SUBSYSTEMS==&quot;usb&quot;, SUBSYSTEM==&quot;block&quot;, KERNEL==&quot;sd*&quot;, ACTION==&quot;remove&quot;, ATTRS{idVendor}==&quot;1307&quot;, ATTRS{idProduct}==&quot;0165&quot;, RUN+=&quot;/etc/udev/scripts/udev-myflash-mount remove %k&quot;</code></pre></div><p>скрипт<br /></p><div class="codebox"><pre><code>#!/bin/bash


LOG=&quot;/var/log/udev/log.log&quot;
echo &quot;---+---&quot; &gt;&gt; $LOG


DEV=$2

if [ &quot;$1&quot; == &quot;add&quot; ]; then
    if [&quot;$DEV&quot; != &quot;&quot;]; then
     echo &quot;--- `date` ---&quot; &gt;&gt; $LOG
     echo &quot;Mounting &quot; &gt;&gt; $LOG
     echo &quot;Mounting /dev/$DEV&quot; &gt;&gt; $LOG
     mkdir /mnt/$DEV &gt;&gt; $LOG 2&gt;&amp;1
     chmod a+rwx /mnt/$DEV &gt;&gt; $LOG 2&gt;&amp;1
     mount /dev/$DEV mnt/$DEV -o sync,umask=0000,iocharset=cp1251 &gt;&gt; $LOG 2&gt;&amp;1
    fi
elif [ &quot;$1&quot; == &quot;remove&quot; ]; then
    if [&quot;$DEV&quot; != &quot;&quot;]; then
     echo &quot;--- `date` ---&quot; &gt;&gt; $LOG
     echo &quot;Remov &quot;&gt;&gt; $LOG
     echo &quot;Remov /dev/$DEV&quot; &gt;&gt; $LOG
     echo b &gt; /proc/sysrq-trigger 
    fi
fi</code></pre></div><p>по мои наблюдением при ACTION==&quot;remove&quot; проверки ATTR{}== и ATTRS{}== не срабатывают тоже( </p><p>з.ы.сейчас домой доберусь буду побывать дальше</p>]]></description>
			<author><![CDATA[null@example.com (Fogord)]]></author>
			<pubDate>Wed, 11 Apr 2012 16:17:31 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=267670#p267670</guid>
		</item>
		<item>
			<title><![CDATA[Re: Работа с USB]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=267669#p267669</link>
			<description><![CDATA[<p>Что касается поллинга (постоянного дёрганья lsusb), не совсем желательный вариант, но:<br />1) в скрипте поменять VID и PID на свои, которые видны в виртуалке или где там тестируете.<br />2) возможно великоват интервал в 30 сек.</p><p>Что касается перезагрузки правил udev-а:<br /># udevadm control --reload-rules</p><p>По моим наблюдениям (udev-165) при ACTION==&quot;remove&quot; проверки ATTR{}== и ATTRS{}== не срабатывают, такое ощущение, что к этому моменту атрибутов уже нет.<br /><span class="bbu">У кого другие наблюдения, делитесь, не забыв сообщить версию udev и правило.</span><br />Возможно, есть обходной манёвр с сохранением на ACTION==&quot;add&quot;, ATTR{serial}==&quot;серийник&quot; какого-то уникального параметра, ещё доступного при ACTION==&quot;remove&quot;, а при удалении проверять это сохранённое значение. Надо этот вопрос поисследовать.</p>]]></description>
			<author><![CDATA[null@example.com (bormant)]]></author>
			<pubDate>Wed, 11 Apr 2012 16:12:28 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=267669#p267669</guid>
		</item>
		<item>
			<title><![CDATA[Re: Работа с USB]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=267668#p267668</link>
			<description><![CDATA[<p>получается так, когда я флешку вставляю то правило перенаправляет меня в скрипт и пишет в лог строку, но когда вынимаю то переход не происходит((((</p><p>сейчас все поркажу</p>]]></description>
			<author><![CDATA[null@example.com (Fogord)]]></author>
			<pubDate>Wed, 11 Apr 2012 16:08:48 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=267668#p267668</guid>
		</item>
		<item>
			<title><![CDATA[Re: Работа с USB]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=267667#p267667</link>
			<description><![CDATA[<div class="quotebox"><cite>Fogord пишет:</cite><blockquote><p>LOG=$&quot;/var/log/udev/log.log&quot;</p></blockquote></div><p>$ — лишнее.<br />В предыдущем сообщении просто тестовый скрипт или рабочий аналог?<br />Покажите полностью правило <em>udev</em>, с помощью которого должен запускаться скрипт.</p>]]></description>
			<author><![CDATA[null@example.com (Lupo Alberto)]]></author>
			<pubDate>Wed, 11 Apr 2012 16:08:27 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=267667#p267667</guid>
		</item>
	</channel>
</rss>
