N.leiten Опубликовано 22 сентября, 2006 (изменено) · Жалоба Ты не понял, в беспроводной сети МАК-уровень есть только между точкой доступа и клиентскими адаптерами. Всё что кроме не поддерживается стандартом. То есть МАК-фильтр на самом деле это разрешение работать определенным адаптерам с точкой доступа... Ты ведь на клиентской точке доступа обязательно включаешь или подмену или клон мак-адреса. В случае с одним компьютером на проводе точки доступа можно использовать макклон, но если там несколько компьютеров, то его использовать нельзя, ты просто не сможешь работать с точкой доступа, она не словить нужный мак-адрес и будет пытаться каждый раз его менять, это занимает время... То есть я рекомендую всем ставить нат2.5 на точки доступа в режиме клиента, кроме случаев одного компьютера, который подключается по pppoe. (вроде были глюки с нат2.5, еще не проверял, скорее всего уже подправлено). А при использовании нат2.5 хоть две сотни компов за клиентской точкой - все они будут видны с одним маком. Изменено 22 сентября, 2006 пользователем N.leiten Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dr. Morg Опубликовано 22 сентября, 2006 · Жалоба N.leiten, подскажите как в Wive можно посмотреть на какой скорости завязались АПшки? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
N.leiten Опубликовано 22 сентября, 2006 · Жалоба Dr. Morg cat /proc/wlan0/sta_info там инфо выводится блоками для каждой приассоциированной станции. Смотрите параметры current_tx_rate: 12 current_rx_rate: 6 Первое - скорость передачи, второе - естественно скорость приема (а если быть точным, то скорость передачи удаленной станции) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
brb Опубликовано 22 сентября, 2006 (изменено) · Жалоба 2N.leiten с маками разобрался опытным путем :) в этой прошивке есть какая-нибудь команда типа arp, чтобы посмотреть таблицу мак адресов? ну заодно и очистить и еще... как посмотреть, кто подключен к точке доступа? --- как посмотреть маки - разобрался :) cat /proc/net/arp Изменено 22 сентября, 2006 пользователем brb Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
N.leiten Опубликовано 22 сентября, 2006 · Жалоба таблицу мак-адресов можно посмотреть cat /proc/net/arp как удалять - не знаю. насчет подключенных клиентов - смотри там же: cat /proc/wlan0/sta_info - вся инфа о приассоциированных станциях. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dr. Morg Опубликовано 22 сентября, 2006 · Жалоба Dr. Morgcat /proc/wlan0/sta_info там инфо выводится блоками для каждой приассоциированной станции. Смотрите параметры current_tx_rate: 12 current_rx_rate: 6 Первое - скорость передачи, второе - естественно скорость приема (а если быть точным, то скорость передачи удаленной станции) Спасибо за информацию! И так, результаты многочасовых настроек... Удалось нормально сконнектить 2000AP+ и G700AP, где 2000AP+ была в роли AP Client, а G700AP в роли собственно AP. Ставлю 2000AP+ в режим бриджа и нифига не работает! :( G700AP видит 2000AP+, но почему-то не завязываются они: # cat /proc/wlan0/sta_info -- STA info table -- 1: stat_info... state: 1000 AuthAlgrthm: 0 ieee8021x_ctrlport: 0 hwaddr: 0011957af5b0 bssrateset: 8c9298a4b0c8e0ec aid: 1 tx_bytes: 0 rx_bytes: 0 tx_pkts: 0 rx_pkts: 0 tx_fail: 0 rssi: 0 wds_tx_bytes: 0 wds_rx_bytes: 0 wds_tx_pkts: 0 wds_rx_pkts: 0 wds_tx_fail: 0 expired_time: 500 sleep: no current_tx_rate: 11 current_rx_rate: 0 rtk_capability: 0x0000 link_time: 0 sec Из-за чего такая ерунда может быть? В /etc/network/wifi/wds включил режим WDS и забил MAC 2000AP+,- результат тот же,- в режиме бридж не вяжутся... с отключеным режимом WDS аналогичная картина... :( Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dr. Morg Опубликовано 22 сентября, 2006 · Жалоба Ещё такая проблема... Хотел заюзать WinSCP, раз уж в прошивке Wive имеется dropbear, но софтина ругается: Unexpected directory listing line 'drwxr-xr-x 6 0 0 1024 var'. В чём грабли? dropbear сильно обрезаный что ли там? В WRT54G с прошивкой DD-WRT V23 SP2 и более ранними всё ок работает с тем же dropbear'ом! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
N.leiten Опубликовано 23 сентября, 2006 (изменено) · Жалоба dropbear действительно может быть обрезан. В LinkSys насколько я помню многие деввайсы с 4мб флеш, а у нас всего 2, поэтому и режем по живому :) ЗЫ. НАсчет WDS, так как общего стандарта нет по орагнизации таких сетей, вполне вероятна ситуация с разной реализацие его и посему несовместимостью WDS сетей. Изменено 23 сентября, 2006 пользователем N.leiten Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dr. Morg Опубликовано 23 сентября, 2006 (изменено) · Жалоба dropbear действительно может быть обрезан. В LinkSys насколько я помню многие деввайсы с 4мб флеш, а у нас всего 2, поэтому и режем по живому :)Это только в версиях железа младше 5-й по 4Мб флеша и 16Мб РАММы!В 5-й версии и новее флеш обрезали до 2Мб, а РАМу до 8Мб! Но кроме всего прочего умудрились туда и WEB-интерфейс запихать и очень много утилит. Я тут мельком читал ридми для прошивки dgreen'a и наткнулся на оч. интересный факт: Для построения точки в outdor прошивка содержит управление вентилятором и датчиком температуры фирмы Dallas (DS1820, DS18B20, DS18S20). ... Вентилятор выведен на GPAPIN[7]_CPU_pin_8_JTAG_TMS (в G700 – разем слева внизу если расположит точку светодиодами к себе. В OvisLink 5460 – LED5... Вроди писали тут, что есть даташит на этот проц. Так вот, раз можно найти GPIO проца, да и слава богу проц не в BGA корпусе, то есть идея припаять SD карточку к G700AP, аналогично я припаял SD к WRT54G. Исходник драйвера у меня есть,- в нём нужно будет только изменить GPIO, которые нужно пользовать. Для работы карточки нужно 4 GPIO. Если спаяем и сюда такой mod, то о нехватке места, думаю, можно будет забыть раз и навсегда! :) Для разработчиков, кого заинтересовала эта идея выкладываю исходники драйвера: #include <linux/delay.h> #include <linux/timer.h> #include <linux/module.h> #include <linux/mm.h> #include <linux/init.h> #include <linux/fs.h> #include <linux/blkpg.h> #include <linux/hdreg.h> #include <linux/major.h> #include <asm/uaccess.h> #include <asm/io.h> #define DEVICE_NAME "mmc" #define DEVICE_NR(device) (MINOR(device)) #define DEVICE_ON(device) #define DEVICE_OFF(device) #define MAJOR_NR 121 #include <linux/blk.h> MODULE_AUTHOR("Madsuk/Rohde"); MODULE_DESCRIPTION("Driver MMC/SD-Cards"); MODULE_SUPPORTED_DEVICE("WRT54G"); MODULE_LICENSE("GPL"); #define SD_DI 0x20 #define SD_DO 0x10 #define SD_CLK 0x08 #define SD_CS 0x80 /* we have only one device */ static int hd_sizes[1<<6]; static int hd_blocksizes[1<<6]; static int hd_hardsectsizes[1<<6]; static int hd_maxsect[1<<6]; static struct hd_struct hd[1<<6]; static struct timer_list mmc_timer; static int mmc_media_detect = 0; static int mmc_media_changed = 1; typedef unsigned int uint32; static unsigned char port_state = 0x00; static volatile uint32 *gpioaddr_input = (uint32 *)0xb8000060; static volatile uint32 *gpioaddr_output = (uint32 *)0xb8000064; static volatile uint32 *gpioaddr_enable = (uint32 *)0xb8000068; static volatile uint32 *gpioaddr_control = (uint32 *)0xb800006c; static void mmc_spi_cs_low(void) { port_state &= ~(SD_CS); *gpioaddr_output = port_state; } static void mmc_spi_cs_high(void) { port_state |= SD_CS; *gpioaddr_output = port_state; } static unsigned char mmc_spi_io(unsigned char data_out) { int i; unsigned char result = 0, tmp_data = 0; for(i=0; i<8; i++) { if(data_out & (0x01 << (7-i))) port_state |= SD_DI; else port_state &= ~SD_DI; *gpioaddr_output = port_state; port_state |= SD_CLK; *gpioaddr_output = port_state; tmp_data = *gpioaddr_input; port_state &= ~SD_CLK; *gpioaddr_output = port_state; result <<= 1; if(tmp_data & SD_DO) result |= 1; } return(result); } static int mmc_write_block(unsigned int dest_addr, unsigned char *data) { unsigned int address; unsigned char r = 0; unsigned char ab0, ab1, ab2, ab3; int i; address = dest_addr; ab3 = 0xff & (address >> 24); ab2 = 0xff & (address >> 16); ab1 = 0xff & (address >> 8); ab0 = 0xff & address; mmc_spi_cs_low(); for (i = 0; i < 4; i++) mmc_spi_io(0xff); mmc_spi_io(0x58); mmc_spi_io(ab3); /* msb */ mmc_spi_io(ab2); mmc_spi_io(ab1); mmc_spi_io(ab0); /* lsb */ mmc_spi_io(0xff); for (i = 0; i < 8; i++) { r = mmc_spi_io(0xff); if (r == 0x00) break; } if (r != 0x00) { mmc_spi_cs_high(); mmc_spi_io(0xff); return(1); } mmc_spi_io(0xfe); for (i = 0; i < 512; i++) mmc_spi_io(data[i]); for (i = 0; i < 2; i++) mmc_spi_io(0xff); for (i = 0; i < 1000000; i++) { r = mmc_spi_io(0xff); if (r == 0xff) break; } if (r != 0xff) { mmc_spi_cs_high(); mmc_spi_io(0xff); return(3); } mmc_spi_cs_high(); mmc_spi_io(0xff); return(0); } static int mmc_read_block(unsigned char *data, unsigned int src_addr) { unsigned int address; unsigned char r = 0; unsigned char ab0, ab1, ab2, ab3; int i; address = src_addr; ab3 = 0xff & (address >> 24); ab2 = 0xff & (address >> 16); ab1 = 0xff & (address >> 8); ab0 = 0xff & address; mmc_spi_cs_low(); for (i = 0; i < 4; i++) mmc_spi_io(0xff); mmc_spi_io(0x51); mmc_spi_io(ab3); /* msb */ mmc_spi_io(ab2); mmc_spi_io(ab1); mmc_spi_io(ab0); /* lsb */ mmc_spi_io(0xff); for (i = 0; i < 8; i++) { r = mmc_spi_io(0xff); if (r == 0x00) break; } if (r != 0x00) { mmc_spi_cs_high(); mmc_spi_io(0xff); return(1); } for (i = 0; i < 100000; i++) { r = mmc_spi_io(0xff); if (r == 0xfe) break; } if (r != 0xfe) { mmc_spi_cs_high(); mmc_spi_io(0xff); return(2); } for (i = 0; i < 512; i++) { r = mmc_spi_io(0xff); data[i] = r; } for (i = 0; i < 2; i++) { r = mmc_spi_io(0xff); } mmc_spi_cs_high(); mmc_spi_io(0xff); return(0); } static void mmc_request(request_queue_t *q) { unsigned int mmc_address; unsigned char *buffer_address; int nr_sectors; int i; int cmd; int rc, code; (void)q; while (1) { code = 1; // Default is success INIT_REQUEST; mmc_address = (CURRENT->sector + hd[MINOR(CURRENT->rq_dev)].start_sect) * hd_hardsectsizes[0]; buffer_address = CURRENT->buffer; nr_sectors = CURRENT->current_nr_sectors; cmd = CURRENT->cmd; if (((CURRENT->sector + CURRENT->current_nr_sectors + hd[MINOR(CURRENT->rq_dev)].start_sect) > hd[0].nr_sects) || (mmc_media_detect == 0)) { code = 0; } else if (cmd == READ) { spin_unlock_irq(&io_request_lock); for (i = 0; i < nr_sectors; i++) { rc = mmc_read_block(buffer_address, mmc_address); if (rc != 0) { printk("mmc: error in mmc_read_block (%d)\n", rc); code = 0; break; } else { mmc_address += hd_hardsectsizes[0]; buffer_address += hd_hardsectsizes[0]; } } spin_lock_irq(&io_request_lock); } else if (cmd == WRITE) { spin_unlock_irq(&io_request_lock); for (i = 0; i < nr_sectors; i++) { rc = mmc_write_block(mmc_address, buffer_address); if (rc != 0) { printk("mmc: error in mmc_write_block (%d)\n", rc); code = 0; break; } else { mmc_address += hd_hardsectsizes[0]; buffer_address += hd_hardsectsizes[0]; } } spin_lock_irq(&io_request_lock); } else { code = 0; } end_request(code); } } static int mmc_open(struct inode *inode, struct file *filp) { int device; (void)filp; if (mmc_media_detect == 0) return -ENODEV; #if defined(MODULE) MOD_INC_USE_COUNT; #endif return 0; } static int mmc_release(struct inode *inode, struct file *filp) { (void)filp; fsync_dev(inode->i_rdev); invalidate_buffers(inode->i_rdev); #if defined(MODULE) MOD_DEC_USE_COUNT; #endif return 0; } extern struct gendisk hd_gendisk; static int mmc_revalidate(kdev_t dev) { int target, max_p, start, i; if (mmc_media_detect == 0) return -ENODEV; target = DEVICE_NR(dev); max_p = hd_gendisk.max_p; start = target << 6; for (i = max_p - 1; i >= 0; i--) { int minor = start + i; invalidate_device(MKDEV(MAJOR_NR, minor), 1); hd_gendisk.part[minor].start_sect = 0; hd_gendisk.part[minor].nr_sects = 0; } grok_partitions(&hd_gendisk, target, 1 << 6, hd_sizes[0] * 2); return 0; } static int mmc_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg) { if (!inode || !inode->i_rdev) return -EINVAL; switch(cmd) { case BLKGETSIZE: return put_user(hd[MINOR(inode->i_rdev)].nr_sects, (unsigned long *)arg); case BLKGETSIZE64: return put_user((u64)hd[MINOR(inode->i_rdev)]. nr_sects, (u64 *) arg); case BLKRRPART: if (!capable(CAP_SYS_ADMIN)) return -EACCES; return mmc_revalidate(inode->i_rdev); case HDIO_GETGEO: { struct hd_geometry *loc, g; loc = (struct hd_geometry *) arg; if (!loc) return -EINVAL; g.heads = 4; g.sectors = 16; g.cylinders = hd[0].nr_sects / (4 * 16); g.start = hd[MINOR(inode->i_rdev)].start_sect; return copy_to_user(loc, &g, sizeof(g)) ? -EFAULT : 0; } default: return blk_ioctl(inode->i_rdev, cmd, arg); } } static int mmc_card_init(void) { unsigned char r = 0; short i, j; unsigned long flags; save_flags(flags); cli(); printk("mmc Card init\n"); mmc_spi_cs_high(); for (i = 0; i < 20; i++) mmc_spi_io(0xff); mmc_spi_cs_low(); mmc_spi_io(0x40); for (i = 0; i < 4; i++) mmc_spi_io(0x00); mmc_spi_io(0x95); for (i = 0; i < 8; i++) { r = mmc_spi_io(0xff); if (r == 0x01) break; } mmc_spi_cs_high(); mmc_spi_io(0xff); if (r != 0x01) { restore_flags(flags); return(1); } printk("mmc Card init *1*\n"); for (j = 0; j < 10000; j++) { mmc_spi_cs_low(); mmc_spi_io(0x41); for (i = 0; i < 4; i++) mmc_spi_io(0x00); mmc_spi_io(0xff); for (i = 0; i < 8; i++) { r = mmc_spi_io(0xff); if (r == 0x00) break; } mmc_spi_cs_high(); mmc_spi_io(0xff); if (r == 0x00) { restore_flags(flags); printk("mmc Card init *2*\n"); return(0); } } restore_flags(flags); return(2); } static int mmc_card_config(void) { unsigned char r = 0; short i; unsigned char csd[32]; unsigned int c_size; unsigned int c_size_mult; unsigned int mult; unsigned int read_bl_len; unsigned int blocknr = 0; unsigned int block_len = 0; unsigned int size = 0; mmc_spi_cs_low(); for (i = 0; i < 4; i++) mmc_spi_io(0xff); mmc_spi_io(0x49); for (i = 0; i < 4; i++) mmc_spi_io(0x00); mmc_spi_io(0xff); for (i = 0; i < 8; i++) { r = mmc_spi_io(0xff); if (r == 0x00) break; } if (r != 0x00) { mmc_spi_cs_high(); mmc_spi_io(0xff); return(1); } for (i = 0; i < 8; i++) { r = mmc_spi_io(0xff); if (r == 0xfe) break; } if (r != 0xfe) { mmc_spi_cs_high(); mmc_spi_io(0xff); return(2); } for (i = 0; i < 16; i++) { r = mmc_spi_io(0xff); csd[i] = r; } for (i = 0; i < 2; i++) { r = mmc_spi_io(0xff); } mmc_spi_cs_high(); mmc_spi_io(0xff); if (r == 0x00) return(3); c_size = csd[8] + csd[7] * 256 + (csd[6] & 0x03) * 256 * 256; c_size >>= 6; c_size_mult = csd[10] + (csd[9] & 0x03) * 256; c_size_mult >>= 7; read_bl_len = csd[5] & 0x0f; mult = 1; mult <<= c_size_mult + 2; blocknr = (c_size + 1) * mult; block_len = 1; block_len <<= read_bl_len; size = block_len * blocknr; size >>= 10; for(i=0; i<(1<<6); i++) { hd_blocksizes[i] = 1024; hd_hardsectsizes[i] = block_len; hd_maxsect[i] = 256; } hd_sizes[0] = size; hd[0].nr_sects = blocknr; printk("Size = %d, hardsectsize = %d, sectors = %d\n", size, block_len, blocknr); return 0; } static int mmc_hardware_init(void) { unsigned char gpio_outen; // Set inputs/outputs here printk("mmc Hardware init\n"); gpio_outen = *gpioaddr_enable; gpio_outen = (gpio_outen | SD_DI | SD_CLK | SD_CS) & ~SD_DO; *gpioaddr_enable = gpio_outen; port_state = *gpioaddr_input; // Clock low port_state &= ~(SD_CLK | SD_DI | SD_CS); *gpioaddr_output = port_state; return 0; } static int mmc_check_media_change(kdev_t dev) { (void)dev; if (mmc_media_changed == 1) { mmc_media_changed = 0; return 1; } else return 0; } static struct block_device_operations mmc_bdops = { open: mmc_open, release: mmc_release, ioctl: mmc_ioctl, #if 0 check_media_change: mmc_check_media_change, revalidate: mmc_revalidate, #endif }; static struct gendisk hd_gendisk = { major: MAJOR_NR, major_name: DEVICE_NAME, minor_shift: 6, max_p: 1 << 6, part: hd, sizes: hd_sizes, fops: &mmc_bdops, }; static int mmc_init(void) { int rc; rc = mmc_hardware_init(); if ( rc != 0) { printk("mmc: error in mmc_hardware_init (%d)\n", rc); return -1; } rc = mmc_card_init(); if ( rc != 0) { // Give it an extra shot rc = mmc_card_init(); if ( rc != 0) { printk("mmc: error in mmc_card_init (%d)\n", rc); return -1; } } memset(hd_sizes, 0, sizeof(hd_sizes)); rc = mmc_card_config(); if ( rc != 0) { printk("mmc: error in mmc_card_config (%d)\n", rc); return -1; } blk_size[MAJOR_NR] = hd_sizes; memset(hd, 0, sizeof(hd)); hd[0].nr_sects = hd_sizes[0]*2; blksize_size[MAJOR_NR] = hd_blocksizes; hardsect_size[MAJOR_NR] = hd_hardsectsizes; max_sectors[MAJOR_NR] = hd_maxsect; hd_gendisk.nr_real = 1; register_disk(&hd_gendisk, MKDEV(MAJOR_NR,0), 1<<6, &mmc_bdops, hd_sizes[0]*2); return 0; } static void mmc_exit(void) { blk_size[MAJOR_NR] = NULL; blksize_size[MAJOR_NR] = NULL; hardsect_size[MAJOR_NR] = NULL; max_sectors[MAJOR_NR] = NULL; hd[0].nr_sects = 0; } static void mmc_check_media(void) { int old_state; int rc; old_state = mmc_media_detect; // TODO: Add card detection here mmc_media_detect = 1; if (old_state != mmc_media_detect) { mmc_media_changed = 1; if (mmc_media_detect == 1) { rc = mmc_init(); if (rc != 0) printk("mmc: error in mmc_init (%d)\n", rc); } else { mmc_exit(); } } /* del_timer(&mmc_timer); mmc_timer.expires = jiffies + 10*HZ; add_timer(&mmc_timer); */ } static int __init mmc_driver_init(void) { int rc; rc = devfs_register_blkdev(MAJOR_NR, DEVICE_NAME, &mmc_bdops); if (rc < 0) { printk(KERN_WARNING "mmc: can't get major %d\n", MAJOR_NR); return rc; } blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), mmc_request); read_ahead[MAJOR_NR] = 8; add_gendisk(&hd_gendisk); mmc_check_media(); /*init_timer(&mmc_timer); mmc_timer.expires = jiffies + HZ; mmc_timer.function = (void *)mmc_check_media; add_timer(&mmc_timer);*/ return 0; } static void __exit mmc_driver_exit(void) { int i; del_timer(&mmc_timer); for (i = 0; i < (1 << 6); i++) fsync_dev(MKDEV(MAJOR_NR, i)); blk_cleanup_queue(BLK_DEFAULT_QUEUE(MAJOR_NR)); del_gendisk(&hd_gendisk); devfs_unregister_blkdev(MAJOR_NR, DEVICE_NAME); mmc_exit(); } module_init(mmc_driver_init); module_exit(mmc_driver_exit); Собирается стандартно в mmc.o. Кто шарит в GPIO и в их программировании,- отзовитесь!!! ЗЫ. НАсчет WDS, так как общего стандарта нет по орагнизации таких сетей, вполне вероятна ситуация с разной реализацие его и посему несовместимостью WDS сетей.Каким тогда образом можно связать G700AP и 2000AP+ в режиме моста? Изменено 23 сентября, 2006 пользователем Dr. Morg Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dr. Morg Опубликовано 23 сентября, 2006 · Жалоба Ещё такой момент... попробовал собрать маленькое приложение для проверки, но линух успешно поругался на не соответствие ELF архитектуре проца... :-/ Собирал как обычно собираю для WRT54G под MIPS архитектуру. В rtl8186 вроде встроен LX5280, у которого MIPS R3000 ISA-1. В чём разница? Каким компилятором собирать под это чудо и почему просто MIPS не покатил (на WRT54G прекрасно запускается)? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dr. Morg Опубликовано 23 сентября, 2006 (изменено) · Жалоба Нашёл все 11 выделенных GPIO! Очень интересная железка в плане дальнейшей модернизации и обвеса различными внешними приблудами! :) Изменено 23 сентября, 2006 пользователем Dr. Morg Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
N.leiten Опубликовано 23 сентября, 2006 · Жалоба Насчет дополнительных карт - поддерживаю. Насчет компилятора, там отдельный компилятор нужен от lexra - он есть в любом SDKб сегодня выложу на фтп Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dr. Morg Опубликовано 23 сентября, 2006 · Жалоба Насчет дополнительных карт - поддерживаю. Насчет компилятора, там отдельный компилятор нужен от lexra - он есть в любом SDKб сегодня выложу на фтпКроме карт ещё есть идея (раз уж столько свободных GPIO имеется) привзяать кулер, нагреватель и термодатчик на свободные GPIO. У dgreena реализована поддержка кулера и термодатчика, можно в сорцах посмотреть какими средствами он пользовался. Вместо непосредственно нагревателя можно включать релюшку, а уже ей включать любой нагреватель (лампа накаливания и т.п.). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan M. Kluchnick Опубликовано 23 сентября, 2006 · Жалоба даташит есть. на 8186 если надо скину в почту. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dr. Morg Опубликовано 23 сентября, 2006 · Жалоба даташит есть. на 8186 если надо скину в почту.Спасибо. Уже нашёл на фтп, где и прошивки лежат. Теперь нужно с адресацией разобраться, подкорректировать модуль, собрать его, залить в АП, припаять SD карточку, отформатировать её в ext2 (это можно и заранее сделать), загрузить АП и радоваться жизни! :) N.leiten сказал, что выложит сегодня SDK,- ночью стяну, попробую собрать модуль... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
N.leiten Опубликовано 23 сентября, 2006 · Жалоба Хм, не SDK, а компилятор :) уже выложил. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dr. Morg Опубликовано 23 сентября, 2006 · Жалоба Хм, не SDK, а компилятор :) уже выложил.Спасибо. Тем лучше,- меньше качать! :) GPIO под rtl8186 уже кто-нибудь программировал? Или толька с LED0 и LED1 баловались? :) Как dgreen подключил термодатчик и кулер ещё не смотрел, возможно тоже через GPIO... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
name@ Опубликовано 23 сентября, 2006 · Жалоба Помогите чайнику настроить g700 с перешитую Wive-v0.5.6-20060913. Имеем точку доступа---> ~~~~ >-g700 клиент меня точка должна видеть как: ip 192.168.10.20 mac 112233445566 шлюз 192.168.20.20 wep64 5555555555 /etc/network/wifi/general #Set ESSID of wirelless Infrastructure Network iwpriv wlan0 set_mib ssid="wilan" iwpriv wlan0 set_mib hiddenAP=0 #Set Mode: 8 - Client;16 - AP; 32 - AdHoc iwpriv wlan0 set_mib opmode=8 #Set Regulatory Domain: # "3" - 13 channels available, "6" - 14 channels available. # FCC=1;IC=2;ETSI=3;SPAIN=4;FRANCE=5;MKK=6 iwpriv wlan0 set_mib regdomain=6 #Set Channel here iwpriv wlan0 set_mib channel=1 даьше ничего не менял /etc/network/interfaces BRIDGE_START=no #When auto_bridge is "yes" then init.script makes bridge itself # when aut_bridge is "no" then init.script start /etc/network/bridge AUTO_BRIDGE=yes BR0_IPADDR=192.168.0.50/24 IPV4_FORWARD_ENABLE=yes START_IPTABLES=yes ETH0_ENABLED=yes ETH0_IPADDR=192.168.0.50/24 ETH0_MACADDR=00006c576976 ETH0_DEVICE=eth0 ETH1_ENABLED=no ETH1_IPADDR=192.168.1.50/24 ETH1_MACADDR=00006c576977 ETH1_DEVICE=eth1 WLAN_ENABLED=yes WLAN_IPADDR=192.168.10.20/16 WLAN_MACADDR=112233445566 /etc/network/wifi/wep #Encryption mode: # 0 - disabled; 1 - WEP64; 5 - WEP128; 2 - WPA iwpriv wlan0 set_mib encmode=1 #Number of key for encrypt. Range 0-3 iwpriv wlan0 set_mib wepdkeyid=1 #10 digits for 64bit iwpriv wlan0 set_mib wepkey1=5555555555 iwpriv wlan0 set_mib wepkey2=1122334455 #26 digits for 128bit iwpriv wlan0 set_mib wepkey3=11223344556677889910111213 iwpriv wlan0 set_mib wepkey4=11223344556677889910111213 что еще нужно сделать? И что я делаю неверно? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
N.leiten Опубликовано 23 сентября, 2006 (изменено) · Жалоба name@ Для режима клиента обязательно включите или нат2.5 или макклон. Как раз в той части файла /etc/network/wifi/general, которую вы не редактировали. (по-умолчанию оба параметра выключены). Это если в режиме бриджа включаете, если роутер, то не трогайте. Далее в текущем конфиге вы указали использовать ключ iwpriv wlan0 set_mib wepkey2=1122334455 Обращайте внимание на диапазоны #Number of key for encrypt. Range 0-3 iwpriv wlan0 set_mib wepdkeyid=1 (написано диапазон от 0 до 3, то есть для использования первого ключа, нужно выставить 0, а для второго 1) Если хотите использовать ключ iwpriv wlan0 set_mib wepkey1=5555555555 исправьте iwpriv wlan0 set_mib wepdkeyid=0 Далее, самое важное - мак-адреса точки доступа - переписывайте мак-адрес с дна точки доступа, но никогда не пишите: WLAN_MACADDR=112233445566 попадете на мультикаст мак-адреса или другие служебные, ничем помочь не сможем, кроме ресета точки доступа. Плюс ко всему можно использовать один и тот же мак-адрес для одного проводного и беспроводного интерфейса (для второго проводного интерфейса, если присутствует, просто увеличте мак-адрес на единицу). Изменено 23 сентября, 2006 пользователем N.leiten Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Animal Опубликовано 24 сентября, 2006 (изменено) · Жалоба мучал я всех мучал своим вопросом 6:-) решил.... АП которая 10,1,1,4 что то с ней похоже не то :(( взял только что снял эту АП G700 котрая клиентом поставил радио карту .. и тоже самое :( всё видно до 10.1.1.4 за ней нечего нету :( завтра поеду разбераться :(... Изменено 24 сентября, 2006 пользователем Animal Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
name@ Опубликовано 24 сентября, 2006 · Жалоба name@Для режима клиента обязательно включите или нат2.5 или макклон. Как раз в той части файла /etc/network/wifi/general, которую вы не редактировали. (по-умолчанию оба параметра выключены). Это если в режиме бриджа включаете, если роутер, то не трогайте. Спасибо за помощь. Продолжаю мучиться... А какой режим мне нужен мост или роутер? Сейчас включил бридж и нат. Правда чет не помогло (( Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
N.leiten Опубликовано 24 сентября, 2006 · Жалоба Насчет режимов - смотря что вам нужно... Если прозрачно беспроводной сегмент и проводной сегмент, то бридж, если надо роутить - то естественно роутер :) А в чем проблема, мост включили, нат включили, что теперь не работает? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
name@ Опубликовано 24 сентября, 2006 · Жалоба Насчет режимов - смотря что вам нужно... Если прозрачно беспроводной сегмент и проводной сегмент, то бридж, если надо роутить - то естественно роутер :)А в чем проблема, мост включили, нат включили, что теперь не работает? видимо нужен роутер. нужно с компа что за 700ой выходить в инет через точку доступа к которой подключаюсь. А как роутер настраивать? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dr. Morg Опубликовано 26 сентября, 2006 (изменено) · Жалоба Сегодня удалённо конфигурил через Telnet G700AP в режиме AP и неожиданно связь пропала... После этого ни телнетом, ни через SSH не пускает на АПшку... :( Причём линк стабильный, сеть работает. Пробовал удалённо через Wi-Fi, просил так же по езернету попробовать на том конце,- результат одинаковый... Можно как-то удалённо решить проблему или же придётся идти и ребутить? Добавлено: забыл сказать - прошивка Wive Изменено 26 сентября, 2006 пользователем Dr. Morg Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dr. Morg Опубликовано 26 сентября, 2006 · Жалоба Хм, не SDK, а компилятор :) уже выложил.Сегодня нашёл время, чтобы поковыряться с компилятором...Хотел собрать модуль для SD/MMC картчоек под MIPS, но что-то у меня тулчан видимо тупит, либо ещё чего... короче, разбираюсь пока с этим... Для тестирования собрал простенькое приложение, но в виду описаной мною проблемы в предыдущем посте, не имею возможности потестить на АПшке... Если есть у кого желание протестировать,- выкладываю образцы сюда: http://slil.ru/23171536 (31КБ) Бинарник test-mips собран с помощью lexra-nnop-v5; test-mips-1 я собрал стандартным MIPS компилятором с использованием uClibc. Второй вариант получился меньшего размера. =) Ещё вопрос к разработчикам прошивок,- кто-нибудь в своих прошивках реализовывал вывод консоли в COM порт? Если да, то где можно отключить это перенаправление,- есть необходимость использовать его для подключения картридера-программатора. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...