組み込みLinuxホットプラグにより​​マウントポイントが変更される

組み込みLinuxホットプラグにより​​マウントポイントが変更される

私はAndroid時代以前に一般的なLinuxメディアプレーヤーを持っています。 Linux Venus 2.6.12.6を実行するMIPSで、2つのSATA、2つのUSB、および1つのSDカードポートがあります。フラッシュメモリは非常に限られているので、SDカードにをoptware取り付けてsshください。nano

ln -s /tmp/usbmounts/sdb1/opt /opt

SDカードをメディアとして使用しないため、SDカードは永久に接続されている可能性があります。他のUSBを接続しない、または別のUSBを接続するとうまく機能します後ろに始めます。しかし、別のUSBを接続すると今後sdc起動時にSDカードポートは常にマウントされているか、sddリンクは機能しません。私は(ある種の)起動時にターゲット/optを指定し、それに応じてリンクするスクリプトを配置することでこの問題を解決しました。しかし、起動後にマウントポイントを変更できる他のアクティビティがあることがわかりました。

プレーヤーは主にというソフトウェアを実行しますDvdplayer。ソフトウェアには、ユーザーが再生するメディアを選択できる画面メニューがあります。別のUSBプラグがなくても、このメニューを呼び出すたびにマウントポイントが変わるようです。起動後、私のSDカードがにマウントされたとし、sdbメニューを呼び出すとsdcsdb何も)に変わります。メニューを再度呼び出すとsddsdbおよびsdcなし)に変わります。メニューを 3 回目呼び出すと、 に戻りsdc、再びに戻りsdc、間にはsdd再びsdb表示されません。

インターネットを検索してみると、これがホットスワップ可能であることを知ってソフトウェアを見つけることができました。しかし、一般的なLinuxホットプラグとは異なり、ソフトレアはスクリプトではなく実行可能なelfファイルであり、、、、、、、など、SUBSYSTEMホットプラグに関連するシステム変数を見つけることができません。代わりに入っています。 、、、などの空のフォルダがあります。日付は変更されたがまだ空の唯一のフォルダです。ACTIONPRODUCTTYPEINTERFACEDEVICE/sys/kernel/hotplug_seqnum/tmp/lock/hotplug/convert_tmp...mount_tmp...rename_tmp...volume_lockmount_tmp

に行き、私自身のホットスワップスクリプトを入れてみました/sbin/hotplug/sbin/sbin/hotplugスクリプト/sbin/hotplugは次のとおりです。

mount / -o remount,rw
echo $* >> /usr/local/etc/init.d/hotplug.log
/sbin/sbin/hotplug $*

しかし、うまくいきません。メニューを呼び出した後は何も記録されず、すべてのプラグインのインストールが失われます。

今私が望むのは、ホットプラグアクティビティをキャプチャし、/ optを正しく再接続することです。 / optの正しい接続を確保するための助けやより良い方法に感謝します。

ベストアンサー1

${@}これがシェルスクリプトであり、代わりに使用したいことを明確にすることをお勧めします$*

#!/bin/sh
mount -o remount,rw /
echo ${@} >/tmp/log.txt
echo >>/tmp/log.txt
env >>/tmp/log.txt # if /tmp is writable or tmpfs
exec /sbin/sbin/hotplug "${@}"

システムが正常な場合は機能します。しかし、多くの組み込み製品の場合はそうではありません。警戒してください。

おすすめ記事