OK、これがまさに私がやったことです、HTCの応援は望みません:
bind9およびNATなどを設定します...
注:1:sudo echo 1> / proc / sys / net / ipv4 / ip_forwardを実行すると、アクセス許可エラーが発生するため、プロセスのスクリプトを次に示します。特定のデバイスのパラメーターを追加します。
cd ~
echo '!/bin/bash
apt-get install bind9
iptables -A POSTROUTING -t nat -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward' > setup_bind9_nat.sh
chmod +x setup_bind9_nat.sh
sudo ./setup_bind9_nat.sh
電話を接続して、「インターネットパススルー」を選択します
デバイスが表示されるのを待ちます:デバイスが次の場所にあることを
ifconfig
確認します:
arp
デバイスを取り外してから再び接続し、arpに表示する必要があることがわかりました。arpがデバイスを表示しない場合、正しく動作しません。
デバイスは、HTC Syncがメッセージを送信するのを待って待機するため、HTC Syncsメッセージをモックする必要があります。
#change this line to be more specific if you have more than one usb network device
phone_usb_device="usb"
get_ip ()
{
arp -n | grep $phone_usb_device | awk '{print $1}'
}
#TODO: This needs a timeout and loop needs cleaning up, but works fine and borrowed from another post.
echo "waiting for IP on computer usb"
while [[ `get_ip` < 192 ]];do sleep 2; done
phoneip=`get_ip`
echo "IP adress is $phoneip "
echo -n -e "\x00\x02\x00\x00" | nc -q 2 $phoneip 6000 > /dev/null
D-Busを使用してこのバージョンを作成し、デバイスが接続されたときなどに後半部分が自動的に実行されるようにすることができます。
OK、進行中の私の作業です。d-busで「一般的な」ものを見つけることができなかったので、udevを使用したハックソリューションを選択しました。これは完全ではありません。たとえば、コマンドが2回実行されるため、一致するパラメーターをもう少しフィルタリングできるかどうかを確認し、最後のスクリプトにタイムアウトを追加し、念のために、arpをもう少し良いものに置き換えることができるかどうかを確認する必要があります。
here.s /etc/udev/rules.dから作成した.rulesファイル
cat /etc/udev/rules.d/htc-desire.rules
好きな名前を付けることができますが、数字で始めないでください。
選択したエディターなどを使用して、sudoとしてファイルに以下を追加します。
#KERNEL=="usb?" or DRIVERS=="usb" not sure which is best, may need extra mode information too from usb device.
SUBSYSTEM=="net", DRIVERS=="usb", ATTRS{manufacturer}=="HTC", ATTRS{idProduct}=="0ffe", RUN+="/home/olli/chain_mock_htc_sync.sh $kernel"
Ubuntu is setup to create the file with the correct permissions already
ls -lrt /etc/udev/rules.d/htc-desire.rules
-rw-r--r-- 1 root root 248 Jun 26 22:09 htc-desire.rules
基本的に、これら3つの 'r'が表示されない場合、
sudo chmod a+r /etc/udev/rules.d/htc-desire.rules
次に、udevからのRUNが他のすべてをブロックするため(最後に実行されたとしても!!)...うーん...とにかく、2つのファイルが必要です。
私は今のところ「/ home / olli /」のホームディレクトリにファイルを作成しました...そのため、「/ home / olli /」ビットをファイルを作成した場所に置き換えることを忘れないでください:
だから私にとっては、ホームディレクトリにcdします。
cd ~
というファイルを作成します
chain_mock_htc_sync.sh
以下を含む:
#!/bin/bash
/home/olli/mock_htc_sync.sh "$1" &
exit
実行可能にする
chmod +x chain_mock_htc_sync.sh
という別のファイルを作成します
mock_htc_sync.sh
以下を含む
#!/bin/bash
#change this line to be more specific if you have more than one usb network device
phone_usb_device="$1"
get_ip ()
{
arp -n | grep $phone_usb_device | awk '{print $1}'
}
#TODO: This needs a timeout and loop needs cleaning up, but works fine and borrowed from another post.
echo "waiting for IP on computer $phone_usb_device"
while [[ `get_ip` /dev/null
実行可能にする:
chmod +x mock_htc_sync.sh
できれば、すぐに素敵な整理されたバージョンが必要です。(おそらく明日)。