[Armadillo:01955] Re: リンクアップ/ダウンを検出する方法

mizo email@hidden
2007年 8月 24日 (金) 21:35:02 JST


溝渕です。

現在のカーネルでは、Armadillo-9は、LANケーブルの接続状態を取得することが
できませんが、添付の、a9_get_ethlink.patchを、linux-2.6.12.3-a9-9にあて
ることで、取得できるようになります。

また、添付のeth_link_get.cは、LANケーブルの状態を取得するサンプルです。

よろしければ試してみてください。

Hiroki Nakamura wrote:
> お世話になります。
> nakamuraと申します。
> 
> Armadillo-9を使用しております。
> 
> 「[Armadillo:00824] Re: リンクアップ/ダウンを検出する方法」に従って
> ★のようなTPを作成してArmadillo-9で動作させました。しかし、LANケーブル
> 接続の有無に拠らず、常にLink downとなっているよです。
> 提示された方法は、Armadillo-9には適用されないのでしょうか?
> 
> カーネルは以下です。
> Linux armadillo9 2.6.12.3-a9-8 #1 Fri Oct 20 13:55:08 JST 2006 armv4tl
> GNU/Linux
> 
> ↓★↓
> #include <sys/socket.h>
> #include <netinet/in.h>
> #include <arpa/inet.h>
> #include <sys/ioctl.h>
> #include <net/if.h>
> 
> int Eth_Link_Get(char *ifname);
> 
> int main(void)
> {
>  int flg;
>  int ret;
>  char buf[20];
> 
>  flg = 0;
> 
>  for(;;) {
> 
>   sleep(1);
> 
>   ret = Eth_Link_Get(buf);  //リンク確認
> 
>   if(ret == 0) { //リンクアップ
>    printf("Link Up !\n");
>   }
>   else {    //リンクダウン
>    printf("Link down !\n");
>   }
> 
>  }
> 
>  return 0;
> }
> 
> int Eth_Link_Get(char *ifname)
> {
>     struct ifreq ifr;
>     int skfd=-1;
>     int ret = -1;
> 
>     /* ソケットを開く */
>     skfd = socket(AF_INET, SOCK_DGRAM, 0);
>     if (skfd < 0) {
>         close(skfd);
>         // リンクダウン
>         return(-1) ;
>     }
> 
>     /* インターフェースを取得する */
>     strcpy(ifr.ifr_name, ifname);
>     if (ioctl(skfd, SIOCGIFFLAGS, &ifr) < 0) {
>         close(skfd);
>         // リンクダウン
>         return(-1);
>     }
> 
>     /* リンク状態確認 */
>     if (ifr.ifr_flags & IFF_UP) {
>         /* IPアドレス確認 */
>         if (ioctl(skfd, SIOCGIFADDR, &ifr) == 0) {
>                 // リンクアップ
>                 ret = 0;
>         }
>     }
> 
>     close(skfd);
> 
>     return(ret);
> }
> 
> 以上、
> よろしくお願いします。
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/mailman/listinfo/armadillo
> 

-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: a9_get_ethlink.patch
型:         text/x-patch
サイズ:     2455 バイト
説明:       無し
URL:        <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20070824/fa63c6e2/attachment.bin>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: eth_link_get.c
型:         text/x-csrc
サイズ:     807 バイト
説明:       無し
URL:        <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20070824/fa63c6e2/attachment.c>


armadillo メーリングリストの案内