<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Работа с USB]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=21552&amp;type=atom" />
	<updated>2012-04-12T13:29:07Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=21552</id>
		<entry>
			<title type="html"><![CDATA[Re: Работа с USB]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=267960#p267960" />
			<content type="html"><![CDATA[<p>не внимательный ((</p><p>ОГРОМНОЕ спасибо!!! все работает!!! </p><p>ps. засветился в анекдоте)</p>]]></content>
			<author>
				<name><![CDATA[Fogord]]></name>
				<uri>https://linuxforum.ru/profile.php?id=23185</uri>
			</author>
			<updated>2012-04-12T13:29:07Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=267960#p267960</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с USB]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=267945#p267945" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[bormant]]></name>
				<uri>https://linuxforum.ru/profile.php?id=732</uri>
			</author>
			<updated>2012-04-12T13:11:00Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=267945#p267945</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с USB]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=267943#p267943" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Fogord]]></name>
				<uri>https://linuxforum.ru/profile.php?id=23185</uri>
			</author>
			<updated>2012-04-12T13:03:00Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=267943#p267943</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с USB]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=267932#p267932" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[bormant]]></name>
				<uri>https://linuxforum.ru/profile.php?id=732</uri>
			</author>
			<updated>2012-04-12T12:51:51Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=267932#p267932</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с USB]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=267884#p267884" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Fogord]]></name>
				<uri>https://linuxforum.ru/profile.php?id=23185</uri>
			</author>
			<updated>2012-04-12T12:03:41Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=267884#p267884</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с USB]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=267842#p267842" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[bormant]]></name>
				<uri>https://linuxforum.ru/profile.php?id=732</uri>
			</author>
			<updated>2012-04-12T10:47:40Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=267842#p267842</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с USB]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=267764#p267764" />
			<content type="html"><![CDATA[<p><strong>bormant</strong><br />попробовал Ваш метод... получилось, но вот если я вытягиваю другую флешку ПС тоже перегружается )))</p>]]></content>
			<author>
				<name><![CDATA[Fogord]]></name>
				<uri>https://linuxforum.ru/profile.php?id=23185</uri>
			</author>
			<updated>2012-04-12T08:40:56Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=267764#p267764</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с USB]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=267722#p267722" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[bormant]]></name>
				<uri>https://linuxforum.ru/profile.php?id=732</uri>
			</author>
			<updated>2012-04-12T05:37:56Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=267722#p267722</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с USB]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=267716#p267716" />
			<content type="html"><![CDATA[<p>Внутрь бесконечного цикла while ((1)); do ... done добавьте небольшую задержку, от секунды и выше.<br />Надеюсь, вы его не по событию udev зовёте, на это намекают ошмётки от предыдуших экспериментов.<br />В условии if что-то совсем непонятное (/user/bin/grep ... /user/bin/lsusb).</p>]]></content>
			<author>
				<name><![CDATA[bormant]]></name>
				<uri>https://linuxforum.ru/profile.php?id=732</uri>
			</author>
			<updated>2012-04-12T02:59:11Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=267716#p267716</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с USB]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=267709#p267709" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Fogord]]></name>
				<uri>https://linuxforum.ru/profile.php?id=23185</uri>
			</author>
			<updated>2012-04-11T21:55:33Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=267709#p267709</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с USB]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=267697#p267697" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Fogord]]></name>
				<uri>https://linuxforum.ru/profile.php?id=23185</uri>
			</author>
			<updated>2012-04-11T20:10:55Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=267697#p267697</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с USB]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=267670#p267670" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Fogord]]></name>
				<uri>https://linuxforum.ru/profile.php?id=23185</uri>
			</author>
			<updated>2012-04-11T16:17:31Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=267670#p267670</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с USB]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=267669#p267669" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[bormant]]></name>
				<uri>https://linuxforum.ru/profile.php?id=732</uri>
			</author>
			<updated>2012-04-11T16:12:28Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=267669#p267669</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с USB]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=267668#p267668" />
			<content type="html"><![CDATA[<p>получается так, когда я флешку вставляю то правило перенаправляет меня в скрипт и пишет в лог строку, но когда вынимаю то переход не происходит((((</p><p>сейчас все поркажу</p>]]></content>
			<author>
				<name><![CDATA[Fogord]]></name>
				<uri>https://linuxforum.ru/profile.php?id=23185</uri>
			</author>
			<updated>2012-04-11T16:08:48Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=267668#p267668</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с USB]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=267667#p267667" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Lupo Alberto]]></name>
				<uri>https://linuxforum.ru/profile.php?id=9018</uri>
			</author>
			<updated>2012-04-11T16:08:27Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=267667#p267667</id>
		</entry>
</feed>
