Mario E Mira 写道:
Hello Forum,
HELP HELP HELP HELP HELP
I have post several times the scanpci output in this forum hoping to get some help in getting to work my laptop with OpenSolaris but so far I have had but just one reply which I was asked to post the scanpci output.
Would anyone point me to the correct forum I really would like to get it
running because wireless is what I run at home to connect to my Solaris server
and really want to use OpenSolaris for my laptop. I hope I can get some help
with this before I give linux a try. Thank you very much.
This message posted from opensolaris.org
_______________________________________________
networking-discuss mailing list
[email protected]
Mario,
I read the emails you sent before, and it seems you have already made
the ath driver attached and plumbed. Now we first verify if the ath
works with the command line config tool -- wificonfig.
1. #prtconf -D|grep ath
to see the instance of the driver attached to the atheros wifi chip.
2. #ifconfig ath0 plumb (if the preceding step show the instance is
other than 0, saying 1, use ath1 instead)
if the output show 'ath0: already exists', just ignore it and go on.
3. #wificonfig -i ath0 scan
if you are running snv_54+, pls run the attached dtrace scripts to
see more info about your AP.
#./scan.d ----run in another terminal when you run 'wificonfig
-i ath0 scan'
4. #wificonfig createprofile /profile_name/ essid=your_essid
encryption=wep wepkey1=*****
create a profile to depicts your ap and connect with the profile
afterwards.
Note: if your AP is configurated as shared_key authentication mode,
then add 'authmode=shared_key' when you create the profile. If wepkey
index of your AP is configurated as value other than 1, use the correct
number, like wepkey2=*****. The wepkey itself is the same as what is set
in the AP, and the format is 5 ASCII or 10 hex for 40bit wep, 13 ASCII
or 26 hex for 128bit wep.
5. #wificonfig -i ath0 connect /profile_name/
if you are running snv_54+, pls run the attached dtrace scripts to
see info about the connect process.
#./connect.d ----run in another terminal when you run
'wificonfig -i ath0 connect /profile_name/'
6. if [5] succeed, then you can try to get a DHCP address.
#ifconfig ath0 dhcp
If you end up running step 1-6 successfully, then the wifi driver works
fine, and there should be something wrong with the configuration of the
inetmenu(you seem using inetmenu), we should focus on it, otherwise, pls
send me the output of the error messages you encounter.
Thanks,
Brian
#!/usr/sbin/dtrace -s
#pragma D option quiet
fbt:net80211:ieee80211_send_mgmt:entry
/args[2] == 0xb0/
{
self->seqNo = args[3];
}
fbt:net80211:ieee80211_mgmt_output:entry
/args[3] == 0xb0/
{
printf("====================authentication request frame begin=========================\n");
printf("da = %02x:%02x:%02x:%02x:%02x:%02x. ",
args[1]->in_macaddr[0],
args[1]->in_macaddr[1],
args[1]->in_macaddr[2],
args[1]->in_macaddr[3],
args[1]->in_macaddr[4],
args[1]->in_macaddr[5]);
printf("sa = %02x:%02x:%02x:%02x:%02x:%02x\n",
args[0]->ic_macaddr[0],
args[0]->ic_macaddr[1],
args[0]->ic_macaddr[2],
args[0]->ic_macaddr[3],
args[0]->ic_macaddr[4],
args[0]->ic_macaddr[5]);
printf("bssid = %02x:%02x:%02x:%02x:%02x:%02x\n",
args[1]->in_bssid[0],
args[1]->in_bssid[1],
args[1]->in_bssid[2],
args[1]->in_bssid[3],
args[1]->in_bssid[4],
args[1]->in_bssid[5]);
printf("essid = %.*s\n", args[1]->in_esslen,
stringof(args[1]->in_essid));
self->out_authmode = *(uint16_t *)((struct ieee80211_frame *)(args[2]->b_rptr) + 1);
}
fbt:net80211:ieee80211_mgmt_output:entry
/args[3] == 0xb0 && self->out_authmode == 1/
{
printf("auth mode = shared_key\n");
}
fbt:net80211:ieee80211_mgmt_output:entry
/args[3] == 0xb0 && self->out_authmode == 0/
{
printf("auth mode = open\n");
}
fbt:net80211:ieee80211_mgmt_output:entry
/args[3] == 0xb0/
{
printf("auth seq No = 0x%d\n", self->seqNo);
printf("====================authentication request frame end====================\n");
}
fbt:net80211:ieee80211_mgmt_output:entry
/args[3] == 0x00/
{
printf("====================association request frame begin=====================\n");
printf("da = %02x:%02x:%02x:%02x:%02x:%02x. ",
args[1]->in_macaddr[0],
args[1]->in_macaddr[1],
args[1]->in_macaddr[2],
args[1]->in_macaddr[3],
args[1]->in_macaddr[4],
args[1]->in_macaddr[5]);
printf("sa = %02x:%02x:%02x:%02x:%02x:%02x\n",
args[0]->ic_macaddr[0],
args[0]->ic_macaddr[1],
args[0]->ic_macaddr[2],
args[0]->ic_macaddr[3],
args[0]->ic_macaddr[4],
args[0]->ic_macaddr[5]);
printf("bssid = %02x:%02x:%02x:%02x:%02x:%02x\n",
args[1]->in_bssid[0],
args[1]->in_bssid[1],
args[1]->in_bssid[2],
args[1]->in_bssid[3],
args[1]->in_bssid[4],
args[1]->in_bssid[5]);
printf("essid = %.*s\n", args[1]->in_esslen,
stringof(args[1]->in_essid));
self->out_capinfo = *(uint16_t *)((struct ieee80211_frame *)(args[2]->b_rptr) + 1);
printf("capability info = 0x%x\n", self->out_capinfo);
}
fbt:net80211:ieee80211_mgmt_output:entry
/args[3] == 0x00 && self->out_capinfo & 0x1/
{
printf(" bit 0: AP\n");
}
fbt:net80211:ieee80211_mgmt_output:entry
/args[3] == 0x00 && self->out_capinfo & 0x2/
{
printf(" bit 1: ibss\n");
}
fbt:net80211:ieee80211_mgmt_output:entry
/args[3] == 0x00 && self->out_capinfo & 0x4/
{
printf(" bit 2: CF pollable\n");
}
fbt:net80211:ieee80211_mgmt_output:entry
/args[3] == 0x00 && self->out_capinfo & 0x8/
{
printf(" bit 3: CF poll request\n");
}
fbt:net80211:ieee80211_mgmt_output:entry
/args[3] == 0x00 && self->out_capinfo & 0x10/
{
printf(" bit 4: wep\n");
}
fbt:net80211:ieee80211_mgmt_output:entry
/args[3] == 0x00 && self->out_capinfo & 0x20/
{
printf(" bit 5: short preamble\n");
}
fbt:net80211:ieee80211_mgmt_output:entry
/args[3] == 0x00 && self->out_capinfo & 0x40/
{
printf(" bit 6: PBCC\n");
}
fbt:net80211:ieee80211_mgmt_output:entry
/args[3] == 0x00 && self->out_capinfo & 0x80/
{
printf(" bit 7: channel agility\n");
}
fbt:net80211:ieee80211_mgmt_output:entry
/args[3] == 0x00 && self->out_capinfo & 0x400/
{
printf(" bit 10: short slot time\n");
}
fbt:net80211:ieee80211_mgmt_output:entry
/args[3] == 0x00 && self->out_capinfo & 0x800/
{
printf(" bit 11: rsn\n");
}
fbt:net80211:ieee80211_mgmt_output:entry
/args[3] == 0x00 && self->out_capinfo & 0x2000/
{
printf(" bit 13: dsss-ofdm\n");
}
fbt:net80211:ieee80211_mgmt_output:entry
/args[3] == 0x00/
{
printf("====================association request frame end=======================\n");
}
fbt:net80211:ieee80211_recv_mgmt:entry
/args[3] == 0xb0/
{
printf("====================authentication response frame begin=================\n");
printf("da = %02x:%02x:%02x:%02x:%02x:%02x. ",
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr1[0],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr1[1],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr1[2],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr1[3],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr1[4],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr1[5]);
printf("sa = %02x:%02x:%02x:%02x:%02x:%02x\n",
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr2[0],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr2[1],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr2[2],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr2[3],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr2[4],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr2[5]);
printf("bssid = %02x:%02x:%02x:%02x:%02x:%02x\n",
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr3[0],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr3[1],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr3[2],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr3[3],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr3[4],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr3[5]);
printf("auth seq No = 0x%x\n",
*((uint16_t *)((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr) + 1) + 1));
printf("status code = 0x%x\n",
*((uint16_t *)((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr) + 1) + 2));
printf("====================authentication request frame end====================\n");
}
fbt:net80211:ieee80211_recv_mgmt:entry
/args[3] == 0x10/
{
printf("====================association response frame begin====================\n");
printf("da = %02x:%02x:%02x:%02x:%02x:%02x. ",
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr1[0],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr1[1],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr1[2],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr1[3],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr1[4],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr1[5]);
printf("sa = %02x:%02x:%02x:%02x:%02x:%02x\n",
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr2[0],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr2[1],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr2[2],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr2[3],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr2[4],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr2[5]);
printf("bssid = %02x:%02x:%02x:%02x:%02x:%02x\n",
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr3[0],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr3[1],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr3[2],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr3[3],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr3[4],
((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr))->i_addr3[5]);
printf("status code = 0x%x\n",
*((uint16_t *)((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr) + 1) + 1));
printf("association ID = 0x%x\n",
*((uint16_t *)((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr) + 1) + 2) & 0x3fff);
self->in_capinfo = *(uint16_t *)((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr) + 1);
printf("capability info = 0x%x\n", self->in_capinfo);
}
fbt:net80211:ieee80211_recv_mgmt:entry
/args[3] == 0x10 && self->in_capinfo & 0x1/
{
printf(" bit 0: AP\n");
}
fbt:net80211:ieee80211_recv_mgmt:entry
/args[3] == 0x10 && self->in_capinfo & 0x2/
{
printf(" bit 1: ibss\n");
}
fbt:net80211:ieee80211_recv_mgmt:entry
/args[3] == 0x10 && self->in_capinfo & 0x4/
{
printf(" bit 2: CF pollable\n");
}
fbt:net80211:ieee80211_recv_mgmt:entry
/args[3] == 0x10 && self->in_capinfo & 0x8/
{
printf(" bit 3: CF poll request\n");
}
fbt:net80211:ieee80211_recv_mgmt:entry
/args[3] == 0x10 && self->in_capinfo & 0x10/
{
printf(" bit 4: wep\n");
}
fbt:net80211:ieee80211_recv_mgmt:entry
/args[3] == 0x10 && self->in_capinfo & 0x20/
{
printf(" bit 5: short preamble\n");
}
fbt:net80211:ieee80211_recv_mgmt:entry
/args[3] == 0x10 && self->in_capinfo & 0x40/
{
printf(" bit 6: PBCC\n");
}
fbt:net80211:ieee80211_recv_mgmt:entry
/args[3] == 0x10 && self->in_capinfo & 0x80/
{
printf(" bit 7: channel agility\n");
}
fbt:net80211:ieee80211_recv_mgmt:entry
/args[3] == 0x10 && self->in_capinfo & 0x400/
{
printf(" bit 10: short slot time\n");
}
fbt:net80211:ieee80211_recv_mgmt:entry
/args[3] == 0x10 && self->in_capinfo & 0x800/
{
printf(" bit 11: rsn\n");
}
fbt:net80211:ieee80211_recv_mgmt:entry
/args[3] == 0x10 && self->in_capinfo & 0x2000/
{
printf(" bit 13: dsss-ofdm\n");
}
fbt:net80211:ieee80211_recv_mgmt:entry
/args[3] == 0x10/
{
printf("====================association response frame end======================\n");
}
/*
fbt:net80211:ieee80211_recv_mgmt:entry
/args[3] == 0x10 && *((uint16_t *)((struct ieee80211_frame *)((mblk_t *)args[1]->b_rptr) + 1) + 1) == 0/
{
printf("connected successfully!\n");
exit(0);
}
*/
#!/usr/sbin/dtrace -s
#pragma D option quiet
fbt:net80211:ieee80211_add_scan:entry
{
printf("==========================================================\n");
printf("essid = %.*s\n", args[1]->ssid[1], stringof(args[1]->ssid + 2));
printf("sa = %02x:%02x:%02x:%02x:%02x:%02x. ",
args[2]->i_addr2[0],
args[2]->i_addr2[1],
args[2]->i_addr2[2],
args[2]->i_addr2[3],
args[2]->i_addr2[4],
args[2]->i_addr2[5]);
printf("bssid = %02x:%02x:%02x:%02x:%02x:%02x\n",
args[2]->i_addr3[0],
args[2]->i_addr3[1],
args[2]->i_addr3[2],
args[2]->i_addr3[3],
args[2]->i_addr3[4],
args[2]->i_addr3[5]);
printf("channel: %d\n", args[1]->chan);
printf("erp: %x\n", args[1]->erp);
printf("basic rates quantity: %x: ", args[1]->rates[1]);
printf("%dM, %dM ...\n",
(args[1]->rates[2] & 0x7f)/2,
(args[1]->rates[3] & 0x7f)/2);
}
fbt:net80211:ieee80211_add_scan:entry
/args[1]->xrates/
{
printf("extended rates quantity: %x: ", args[1]->xrates[1]);
printf("%dM, %dM ...\n",
(args[1]->xrates[2])/2,
(args[1]->xrates[2])/2);
}
fbt:net80211:ieee80211_add_scan:entry
{
printf("capability info: 0x%04x\n", args[1]->capinfo);
}
fbt:net80211:ieee80211_add_scan:entry
/((struct ieee80211_scanparams *)args[1])->capinfo & 0x1/
{
printf(" bit 0: AP\n");
}
fbt:net80211:ieee80211_add_scan:entry
/((struct ieee80211_scanparams *)args[1])->capinfo & 0x2/
{
printf(" bit 1: ibss\n");
}
fbt:net80211:ieee80211_add_scan:entry
/args[1]->capinfo & 0x4/
{
printf(" bit 2: CF pollable\n");
}
fbt:net80211:ieee80211_add_scan:entry
/args[1]->capinfo & 0x8/
{
printf(" bit 3: CF poll request\n");
}
fbt:net80211:ieee80211_add_scan:entry
/args[1]->capinfo & 0x10/
{
printf(" bit 4: wep\n");
}
fbt:net80211:ieee80211_add_scan:entry
/args[1]->capinfo & 0x20/
{
printf(" bit 5: short preamble\n");
}
fbt:net80211:ieee80211_add_scan:entry
/args[1]->capinfo & 0x40/
{
printf(" bit 6: PBCC\n");
}
fbt:net80211:ieee80211_add_scan:entry
/args[1]->capinfo & 0x80/
{
printf(" bit 7: channel agility\n");
}
fbt:net80211:ieee80211_add_scan:entry
/args[1]->capinfo & 0x400/
{
printf(" bit 10: short slot time\n");
}
fbt:net80211:ieee80211_add_scan:entry
/args[1]->capinfo & 0x800/
{
printf(" bit 11: rsn\n");
}
fbt:net80211:ieee80211_add_scan:entry
/args[1]->capinfo & 0x2000/
{
printf(" bit 13: dsss-ofdm\n");
}
fbt:net80211:ieee80211_add_scan:return
{
printf("==========================================================\n");
}
_______________________________________________
networking-discuss mailing list
[email protected]