[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 メーリングリストの案内