タグ付けされた質問 「udev」

Udevは、/ devの下のデバイスファイルエントリを管理するLinuxプロセスです。

5
Udev:ネットワークインターフェイスの名前を変更する
Dell 1950サーバーにRHEL 6.3をインストールしました。2つのGBitポート、Gb0およびGb1としてのこのサーバー。 なんらかの理由で、Gb0およびGb1udevという名前を選択しました。これは間違いなく私にとって良い発見ではなく、混乱を招きます。 eth1 eth0 だから私はで設定を変更しました/etc/udev/rules.d/70-persistent-net.rules: # PCI device 0x14e4:0x164c (bnx2) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \ ATTR{address}=="00:20:19:52:d3:c0", \ ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" # PCI device 0x14e4:0x164c (bnx2) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \ ATTR{address}=="00:20:19:52:d3:be", \ ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" 必要なものを反映するために、ファイルの「NAME」フィールドを変更しました。サーバーを再起動しましたが、機能しませんでした。 ではdmesg、ログ、私は次のように読むことができます: udev: renamed network interface eth1 to rename5 udev: renamed network interface eth0 to …
20 linux  rhel  udev 

1
/ devと/ sysの違い
devfsとsysfsの違いは何ですか?どちらも、システムに接続されているハードウェアのリストを保持しているようです。次に、なぜ2つのfsが必要になったのでしょうか?/ sysが取得できる限り、デバイスのやや「生の」リスト(「ser0」など)を維持します。Udevはこれらのデバイスで動作し、さまざまな情報を取得し、さまざまなルールを適用して、それらを認識可能な名前として表示し、/ dev(「カメラ」など)にマッピングします。これが唯一の理由ですか?次に、対応するデバイスを/ dev fs からマウントします(/ sys fs からはできません)/ media fs にマウントします。 / devと/ sys / classの違いで答えを読みましたか?。しかし、私はそれが述べているsys fsの部分を取得することはできません Sysfsには、コンピューターに接続されているデバイスの階層が含まれています / sys内のファイルはデバイスノードファイルではありませんか?次に、どのような種類のファイルですか?
19 linux  mount  devices  udev  sysfs 


6
`dd if = / dev / zero of = / dev / sda`は何をしますか
編集済み:データを破棄する場合を除き、これを実行してテストしないでください。 誰かが私が得たものを理解するのを手伝ってもらえますか? dd if=/dev/zero of=/dev/sda bs=4096 count=4096 Q:なぜ特に4096 countですか? dd if=/dev/zero of=/dev/sda bs=512 count=4096 seek=$(expr blockdev --getsz /dev/sda - 4096) Q:これは正確に何をしますか?
19 udev  dd  disk 

4
「udev」を使用する代替手段はありますか?
私はudevの素晴らしさを理解し、開発者の努力に感謝していますが、それに代わるものがあるのか​​どうか疑問に思っていました。 たとえば、システム(ハードウェアの変更なし)でとにかくほとんど同じであるほとんどのデバイスノードを作成するスタートアップスクリプトを作成する方法があるはずだと思います。 スキップしudevたい利点または理由は、スキップの場合と同じですdbus。つまり、複雑さを軽減し、それによってシステムをより安全にセットアップするための変更を増やします。
16 linux  devices  udev 

3
マウントはudevによって呼び出されたときに実行されません
USBフラッシュドライブをマウントおよびアンマウントするために、いくつかのudevルールを作成しようとしました。現時点のルールは非常に単純です。 ACTION=="add",KERNEL=="sd[b-z]",RUN+="/root/scripts/plug_flash_drive.sh %k" ACTION=="remove",KERNEL=="sd[b-z]",RUN+="/root/scripts/unplug_flash_drive.sh %k" plug_flash_drive.shも非常に簡単です。 device_name=$1 mount_options="umask=000,utf8" if [ ! -e "/media/$device_name" ]; then mkdir "/media/$device_name" fi sleep 1 /usr/bin/mount "/dev/$device_name" "/media/$device_name" -o "$mount_options" unplug_flash_drive.sh: device_name=$1 umount "/dev/$device_name" rmdir "/media/$device_name" 私はそれを確認できるようにいくつかのテストを行いました: 接続すると、フラッシュドライブが検出されます。ファイルは/ devに作成されます plug_flash_drive.shはudevによって呼び出されます スクリプトのmkdir部分が機能する ただし、スクリプトの「マウント」部分が実行されていないようで、ドライブがマウントされていません コマンドラインでスクリプトを呼び出すと、完全に機能します。 誰もudevによって呼び出されたときにマウントが実行されない理由を知っていますか? EDIT 28/08/14:スクリプトの最後に「grep -q / proc / mounts && echo success || …
16 mount  udev  usb-drive 

4
udevルールをデバッグする方法(/etc/udev/rules.d/…内)
新しい基本ルールを作成しています /etc/udev/rules.d/10-myrule.rules 含む: KERNEL!="sdb*", GOTO="auto_mount_end" ACTION=="add", RUN+="/usr/bin/mount /dev/sdb1 /media" LABEL="auto_mount_end" 保存してリブートし、SDカードを挿入しました(で認識されますが/dev/sdb1、で表示されますdmesg)が、何も起こりません。手動mount /dev/sdb1 /mediaで行うと、動作します。 そのようなudevルールをトラブルシューティング/デバッグするにはどうすればよいですか? 注:私はArchLinuxを使用していますが、どのディストリビューションでも同じでしょうか?
15 arch-linux  mount  udev 

3
再起動せずに70-persistent-net.rulesを再生成する方法は?
ファイル/etc/udev/rules.d/70-persistent-net.rulesは、再起動中に、udevを使用してLinuxシステム上に存在しない場合、自動生成されます。ただし、サーバーを再起動せずに、このルールファイルを(コマンドを使用して)作成する方法を知りたいと思います。 私はしばらくの間グーグルで探していましたが、このスクリプトによってルールファイルが生成されることがわかりました。 /lib/udev/write_net_rules ただし、いくつかの環境変数を適切に設定して、udevで起動したいので、コマンドラインからこのスクリプトを実行することはできません。手動で起動すると、「missing $ INTERFACE」というエラーメッセージが出力されます。スクリプトの開始前にenv変数INTERFACE = eth0を設定しても、「有効な一致が見つかりません」というエラーが出力されます。言うまでもなく、2つのインターフェイス(eth0およびeth1)があり、両方のルールファイルを生成する必要があります。 また、このようなudevイベントをトリガーして、udev自体からスクリプトを開始することを望んでいましたが、何も変わりません: udevadm trigger --type=devices --action=change だから、誰も/etc/udev/rules.d/70-persistent-net.rules再起動せずにファイル内の永続的なネットルールを再生成する方法を知っていますか?
14 linux  udev 

1
/ devディレクトリのデバイス名を変更する方法はありますか?
私はテストの目的でこのルールを書きました: SUBSYSTEMS=="usb", ATTRS{manufacturer}=="Kingston", ATTRS{serial}=="001CC0EC34A2BB318709004B", ATTRS{idVendor}=="0951", ATTRS{idProduct}=="1642", SYMLINK+="pen", NAME="pendrak" 次の情報に基づいています。 # udevadm info --name=/dev/sdb --attribute-walk Udevadm info starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule …
13 devices  udev 

2
udevルールからnotify-sendを呼び出します
Linux Mint 13 MATEを使用していますが、デバイスのプラグを抜くときの通知を設定しようとしています。 まず、udev-notifyパッケージを見つけましたが、残念ながらほとんど機能しません。ごくわずかな時間(1〜2分)しか動作せず、デバイスを接続または切断するとクラッシュします。 Traceback (most recent call last): File "./udev-notify.py", line 319, in <module> notification.show() glib.GError: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name :1.1061 was not provided by any .service files 解決策が見つからなかったため、削除する必要がありました。(バグレポートも提出) 驚いたことに、これまでに見つけた同様のユーティリティはありません。次に、すべてのデバイスに一致するudevルールを記述しようとしました。新しいファイルを追加しました/etc/udev/rules.d/notify.rules: ACTION=="add", RUN+="/bin/bash /home/dimon/tmp/device_plug.sh" ACTION=="remove", RUN+="/bin/bash /home/dimon/tmp/device_unplug.sh" そして2つのスクリプト: device_plug.sh: #!/bin/bash export DISPLAY=":0" notify-send "device plugged" /usr/bin/play -q /path/to/plug_sound.wav & device_unplug.sh: …

4
「予測可能なネットワークインターフェイス名」を有効にする方法
私のイーサネットデバイスの名前を調べることにしましたが、他のディストリビューションとは異なり、Debianはこの変更を有効にしていないようです(または、それを控えていますか?)。 現時点では、古い永続的なネットワークインターフェイスの命名規則を保持し、カーネルコマンドラインでnet.ifnames = 1を使用して新しいものをオプトインします。 問題は、grubカーネル行を編集する必要があることです。これは、ファイルを変更することで無効にできるものに対してはやり過ぎのようです。別の方法はありますか?
12 debian  systemd  udev 

6
メジャー/マイナー番号のペアでデバイスノードを取得する
配下の各デバイスノードに/devは、独自のメジャー/マイナー番号のペアがあります。次のように、を使用してデバイスノードからこの番号のペアを取得できることを知っていますstat。 stat -c 'major: %t minor: %T' <file> または、ls -lこれらの数値も表示されます。 しかし、メジャー番号とマイナー番号を指定してデバイスノードを取得するにはどうすればよいですか?私の知る唯一の方法は、いくつかの種類であるls -l+ awkトリックが、私は本当によりよい解決策があると願っています。
12 udev 

2
デバイスの削除時にこのudevルールがトリガーされないのはなぜですか?
私は2匹のマウスを持っていますが、1匹には、マウスの中央ボタンとbutton6が同時にトリガーされる問題があります。そこで、~/.Xmodmapこのボタンを無効にするように設定しました。しかし同時に、他のマウスでもこのボタンを使用できるようにしたいと考えました。そこで、接続されているマウスに応じてボタンのレイアウトを変更するように求めるudevルールを記述しxmodmapました。 セットアップ これは私の現在の設定です: /etc/udev/rules.d/logitech-g7.rules: # deactivate MB 6 when mouse 1 is connected ACTION=="add", ENV{DEVTYPE}=="usb_device", ENV{ID_VENDOR_ID}=="046d", ENV{ID_MODEL_ID}=="c51a", RUN+="/home/user/.scripts/Troubleshooting/Bugfixes/mouseswitcher_wrapper 1", OWNER="user" # restore defaults when mouse 1 is disconnected ACTION=="remove", ENV{DEVTYPE}=="usb_device", ENV{ID_VENDOR_ID}=="046d", ENV{ID_MODEL_ID}=="c51a", RUN+="/home/user/.scripts/Troubleshooting/Bugfixes/mouseswitcher_wrapper 0", OWNER="user" /home/user/.scripts/Troubleshooting/Bugfixes/mouseswitcher_wrapper: #!/bin/bash /home/user/.scripts/Troubleshooting/Bugfixes/mouseswitcher "$1"& /home/user/.scripts/Troubleshooting/Bugfixes/mouseswitcher #!/bin/bash sleep 1 DISPLAY=":0.0" HOME=/home/user/ XAUTHORITY=$HOME/.Xauthority export DISPLAY XAUTHORITY HOME …
12 usb  mouse  udev  xmodmap 

1
systemdでサービスを停止するudevルールを作成する正しい方法は何ですか
Arch Linuxを実行しています。デバイスを挿入するとサービスを開始するudevルールがあります。この場合、3Gモデムが接続されているときに接続にダイヤルします。 KERNEL=="ttyUSB*", SYMLINK=="gsmmodem", TAG+="systemd", ENV{SYSTEMD_WANTS}="netcfg@wvdial.service" ただし、デバイスが削除された場合、systemdはサービスを停止しません。そのため、再度接続すると、すでに実行されているため、サービスは開始されません。 サービスを停止するためにデバイスが削除されたときに実行される一致するudevルールが必要です。 更新 以下の答えを使用すると、私が今持っているのは次のudevルールです KERNEL=="ttyUSB*", SYMLINK=="gsmmodem", TAG+="systemd", ENV{SYSTEMD_WANTS}="vodafone.service" 次のサービスファイルを使用します(これは基本的にnetcfgサービスファイルからコピーして貼り付けました: [Unit] Description=Netcfg networking service for Vodafone Dongle Before=network.target Wants=network.target BindsTo=dev-gsmmodem.device After=dev-gsmmodem.device [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/netcfg check-iface wvdial ExecStop=-/usr/bin/netcfg down wvdial KillMode=none [Install] WantedBy=multi-user.target netcfg-wvdialAURからダイヤルを使用しています。
12 linux  udev  systemd 

3
BunsenLabs(Debian derrivative)はシャットダウンしません(poweroff.targetの開始に失敗しました:トランザクションは破壊的です)
BunsenLabs GNU / Linux(Debianベース)の奇妙な動作に遭遇しました。 OSをオフにできないことがあります。sudo poweroffGUI を使用するかGUI を使用するかは関係ありません。 これは私が実行した後に得られるものですsudo poweroff: Failed to start poweroff.target: Transaction is destructive 回避策はありますか?なぜそれが起こっているのですか? これが私の内容です/lib/udev/rules.d/70-power-switch.rules: ACTION=="remove", GOTO="power_switch_end" SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="acpi", TAG+="power-switch" SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="thinkpad_acpi", TAG+="power-switch" LABEL="power_switch_end"

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.