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...