[Armadillo:04613] Re: TUN/TAPのインストール方法をお教えください。
Yasushi SHOJI
email@hidden
2009年 9月 28日 (月) 12:24:16 JST
いくつか質問させてください。
At Sat, 26 Sep 2009 15:55:39 +0900,
joshua45 wrote:
>
> まず、どうもディバイス名はtun0ではなくtunl0となる
> ようです。これでifconfig は出来る状態になりました。
> これは、mknod等をしなくても可能です。
- mknod等に、open(2)は含まれます?
- device node は、/dev以下ですか、それとも /dev/net以下ですか?
- device driverを load しなくても device nodeは存在しますか?
> 1. なにもしないでTUNを使ったアプリケーションをどうささ
> せた場合
>
> open("/dev/net/tun",O_RDWR);
> で、
> No such file or directory ...
> となります。
「なにも」というのは、
- mknod?
- insmod?
> 2. 手動で/dev/net/tunを作る方法
> ドキュメンテーションにある通り手動で、
> mknod /dev/net/tun c 10 100
> を行ってみましたところ、openは成功しますが、その後の
> ioctlでInvalid argument になります。x86 linux上で
> はうまくいっているコードなので、ioctlの引数がarmと他の
> linuxで異なるとかあるのかどうか....。
/dev/net/tunl0 にすると正しく動くが、上記の方法では
動かないということですか?
> 3. udevを使う方法
> 以前のyashiさんのメールに従って、udevに/dev/
> net(ディレクトリ)と/dev/net/tun を追加しました。
>
> /dev/net d 755 0 0 - - -
> - -
> /dev/net/tun c 755 0 0 10 200 -
> - -
>
> これでカーネルとromfsを再ロードしました。なぜかカーネルと
> romfsのセットを2セットロードするとちゃんと見えるようになりまし
> た....。
>
> これでアプリケーションを動かすとopenのところで、
> No such device
> というエラーが出ます。No such file or directory とはな
> らないのは、/dev/net/tunが一応デバイスとして登録されて
> いるということなのか?
どこかで、ENOENTではなく ENODEVが戻っているということなのですが‥。
mknod(1)しても udevが mknod(2)をしても挙動が異なることは無いはずです。
ifconfigが成功する場合と、しない上記の3つの方法では、名前が tunlとなる
こと以外、違いはありませんか?
--
yashi
armadillo メーリングリストの案内