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