Kitsok Опубликовано 11 апреля, 2006 · Жалоба Знаете, у меня сейчас мозг взорвется. Имеется дерево исходников от 5460, там, в исходниках ядра имеется директория drivers/flash/nor. В этой директории лежит nor_core.lib, из которого должен получиться nor.o, реалтковский закрытый драйвер NOR-флеша. В конфиге сказано, CONFIG_FLASH_NOR, однако этот nor.o упорно не хочет появляться. Куда копать? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
N.leiten Опубликовано 12 апреля, 2006 · Жалоба ЭЭЭ, вообще-то там уже скомпиленная библиотека лежит nor_core.lib и ее проблематично настраивать. У меня еще есть директория export в ней есть исходники, но это другие файлы, по-моему никак не касающие библиотеку. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kitsok Опубликовано 12 апреля, 2006 · Жалоба Ну у меня тоже есть export, но похоже, что драйвера среди этих исходников нету. И, даже если в конфиге ядра сказано CONFIG_FLASH_NOR, этот драйвер реально не собирается и в ядро не вставляется. В итоге отсутствует доступ из flash к собственно флеш-памяти, и ничего не работает, MAC-адреса отсутствуют, и т.д. и т.п. Чего с этим делать - пока не знаю... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
N.leiten Опубликовано 12 апреля, 2006 · Жалоба ЭЭЭ, вообще-то там МАС-адреса есть, просто мы их стираем при перезаписи прошивки вот и все. Струкутра прошивки с использованием команды flash такая же как и в официальной прошивке. так что искать МАС нет смысла. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kitsok Опубликовано 12 апреля, 2006 · Жалоба А вот и нет. Конкретно. Заливаю прошивку (ядро+рамдиск), заливаю веб-странички, заливаю даже конфиг. Перезаливаю много раз. Потом откатываюсь на старую прошивку, от производителя - все конфиги сохранены, вплоть до пароля на VPN Так как драйвер подцепить? ;) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kitsok Опубликовано 12 апреля, 2006 · Жалоба Не знаю, правильно это или нет, но я сделал так: mips-linux-gcc -I /home/kostik/acorp/build/wr254x1/linux-2.4.18/include/asm/gcc -D__KERNEL__ -I/home/kostik/acorp/build/wr254x1/linux-2.4.18/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -G 0 -mno-abicalls -fno-pic -DR3000 -mips1 -pipe -nostdinc -g -DJACKSON_NET_WORK -gstabs+ -c nor_cmds.c -o nor_cmds.o mips-linux-gcc -I /home/kostik/acorp/build/wr254x1/linux-2.4.18/include/asm/gcc -D__KERNEL__ -I/home/kostik/acorp/build/wr254x1/linux-2.4.18/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -G 0 -mno-abicalls -fno-pic -DR3000 -mips1 -pipe -nostdinc -g -DJACKSON_NET_WORK -gstabs+ -c nor_info.c -o nor_info.o cd ../ mips-linux-ld -G 0 -r -o nor.o export/nor_info.o export/nor_cmds.o nor_core.lib после чего добавил drivers/flash/nor/nor.o в основной Makefile, и сборщик его подобрал. Буду пробовать вечером, получилось или нет ;) Добавка: получилось ;) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dgreen Опубликовано 12 апреля, 2006 · Жалоба Заливаю прошивку (ядро+рамдиск), заливаю веб-странички, заливаю даже конфиг. Перезаливаю много раз. Потом откатываюсь на старую прошивку, от производителя - все конфиги сохранены, вплоть до пароля на VPN здесь просто реалтеки перестраховались. У них 3 (вот это избыточность) копии настроек. А все прошивки в нете работают максимум с двумя. А родные ртслеживают, если что не так - на старте переливают из первой. Вот кусок из родного init.sh # See if flash data is valid$TOOL test-hwconf if [ $? != 0 ]; then echo 'HW configuration invalid, reset default!' $LOADDEF fi $TOOL test-dsconf if [ $? != 0 ]; then echo 'Default configuration invalid, reset default!' $LOADDEFSW fi $TOOL test-csconf if [ $? != 0 ]; then echo 'Current configuration invalid, reset to default configuration!' $LOADDS fi так что ничего другого во флеше нет. Можешь ее через /dev/mtd открыть и всю прочесть - читается все 2 метра. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dgreen Опубликовано 12 апреля, 2006 · Жалоба а, еще. NOR флеша там нет. Я не шибко специалист в типах фоеша - но, как сказанно в даташите по 8186 Support boot from NAND type to reduce total bone cost и ни слова о загрузке с NOR. А поскольку система таки грузится, то значит флеш типа NAND. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Alexnik Опубликовано 12 апреля, 2006 · Жалоба Угу слава богу что flash параметры они пределали (3 экземляра и сравнение при прошивке) ... а я вот на днях ovis 1120 востанавливал .. (слетела нафиг вся прошивка - и к томуже в области где храняться параметры получился бардак полный) ... кроме как залить туда shortlinux и дать через rs-232 команду flash reset hardaware - , больше ничего не помогло - все прошивки отваливались в кернел паник !!! а после данной процедуры асе прошивки работали - специально проверил (поначалу было впечатленин в физической неисправности - типа флеш микруха накрылась частично) ..... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kitsok Опубликовано 12 апреля, 2006 · Жалоба Можно поискать даташит на Intel 28F160, но мне лень. В моем конкретном WR-G стоит именно NOR флешка. И в даташите на 8186 об этом написано в разделе Memory Controller. Кроме этого, практика - лучший критерий истины ;) : RealTek Nor-Type Flh System Driver. © 2002 RealTek Corp. Found 1 x 2M Bye Intel TE28F160C3 flash: init complete (31), size 2048(KB) blks 1024 hs 512 RealTek E-Flash System Driver. © 2002 RealTek Corp. Cannot find driver for DiskOnChip Millennium at 0x6000 Can't allocate major number 31 for Memory Technology Devices. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Alexnik Опубликовано 12 апреля, 2006 · Жалоба Kitsok, а все наверно просто .. неправильно опрелеляет ядро флешку .... иль вообще такой просто не знает ... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kitsok Опубликовано 13 апреля, 2006 · Жалоба ;) Я наверное неправильно вопрос поставил. Попробую еще раз. Итак, есть дерево исходников, в котором есть в бинарном виде драйвер NOR-type флеша. Лежит в директории drivers/flash/nor: root@:/home/kostik/acorp/build/wr254x1/linux-2.4.18/drivers/flash/nor# ls -al * -rwxr-xr-x 1 kostik kostik 418 2005-06-07 13:48 Config.in -rwxr-xr-x 1 kostik kostik 301 2005-06-07 13:48 Makefile -rw-r--r-- 1 root root 834 2006-04-12 19:39 make.sh -rwxr-xr-x 1 kostik kostik 15112 2005-06-07 13:48 nor_core.lib -rw-r--r-- 1 root root 211453 2006-04-13 01:08 nor.o export: итого 20 drwxr-xr-x 2 kostik kostik 160 2006-04-13 10:50 . drwxr-xr-x 3 kostik kostik 208 2006-04-13 10:50 .. -rwxr-xr-x 1 kostik kostik 155 2005-06-07 13:48 Makefile -rwxr-xr-x 1 kostik kostik 2829 2005-06-07 13:48 nor_cmds.c -rwxr-xr-x 1 kostik kostik 5819 2005-06-07 13:48 nor_info.c -rwxr-xr-x 1 kostik kostik 315 2005-06-07 13:48 struct.h root@:/home/kostik/acorp/build/wr254x1/linux-2.4.18/drivers/flash/nor# nor/Makefile : root@:/home/kostik/acorp/build/wr254x1/linux-2.4.18/drivers/flash/nor# cat Makefile obj-y += nor_core.lib obj-m := obj-n := obj- := O_TARGET := nor.o export-objs := list-multi := mod-subdirs := subdir-y := subdir-m := subdir-$(CONFIG_FLASH_NOR) += export obj-$(CONFIG_FLASH_NOR) += export/export.o include $(TOPDIR)/Rules.make root@11:/home/kostik/acorp/build/wr254x1/linux-2.4.18/drivers/flash/nor# В конфиге ядра (.config) опция CONFIG_FLASH_NOR включена: root@:/home/kostik/acorp/build/wr254x1/linux-2.4.18# cat .config | grep CONFIG_FLASH_NOR CONFIG_FLASH_NOR=y root@:/home/kostik/acorp/build/wr254x1/linux-2.4.18# Однако при сборке ядра (make) nor.o не компилируется, т.е. даже не пытается. Более того, он не попадает в Makefile (основной), поэтому его приходится вставлять туда руками: DRIVERS-$(CONFIG_FLASH_NOR) += drivers/flash/nor/nor.o Но и в этом случае make не пытается скомпилировать nor.o, он лишь включает его в список объектных модулей ядра на этапе линковки, что вызывает ошибку, т.к. модуля нету. Пришлось руками скомпилировать nor.o из nor_cmds.c, nor_info.c и nor_core.lib, после чего все заработало. Вопрос: почему при компиляции ядра компилятор не пытается скомпилировать nor.o сам? P.S. После "ручной" процедуры все прекрасно работает - ядро через этот модуль определяет флешку, конфиги читаются, точка конфигурится и т.д. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dgreen Опубликовано 13 апреля, 2006 · Жалоба Почему не ставится сам ? Потому что SDK, которое гуляет по инету не есть полностью доделанное. Т.е. дрова под NOR выпущенны реалтеком, но не используются в точках типа 5460 и т.д. и писатели конфигов и майков не утруждали себя доделыванием этого. Вопрос в другом. В принципе. А тебе зачем все это ? Эсть готовый работающий доступ к флешу через /dev/mtb - зачем еще что-то ? Тот же флеш - вид сбоку ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dgreen Опубликовано 13 апреля, 2006 · Жалоба У меня вопрос к линуксоидам. Где (и как) ядро грузит файловую, собранную как sqfs. Немогу найти точку обращения к флешу за куском, начинающимся с сигнатуры ROOT Задача стоит в том, чтобы смонтировать эту вот sqfs не в корень, а в отдельную папку. А в корень смонтировать рамдиск, прилинкованный к ядру. Может кто посоветует - где искать Монтирования корня проходит в fs/super.c - но вот что-то именно доступа к sqfs там нет. Вечером конечно еще посижу - но может кто уже искал.... и даже находил ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kitsok Опубликовано 13 апреля, 2006 · Жалоба Отвечаю на первый вопрос (про mtd). Потому, что мне нужно было до сегодняшнего дня сделать работающую прошивку. Я сделал ;) Переделывать все "с нуля" времени не было. И без дров под NOR доступа к флешу все-равно бы не было. Про файловую систему. А вот не следом ли за ядром (с рамдиском) оно лежит? Точно, там и лежит. Гляди в RTL8186 Linux system note.doc, там написано. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kitsok Опубликовано 13 апреля, 2006 · Жалоба Судя вот по этому, шьется по адресу 100000 echo "============Create Squashfs=====================" rm squashfs.o #$MKCRAMFS $RAMFSDIR cramfs.o -r $MKSQUASHFS $RAMFSDIR squashfs.o -be echo "doing CVIMG" $CVIMG root squashfs.o root.bin 100000 100000 ROOTSIZE=`du -s $RAMFSDIR | cut -f1` IMGSIZE=`du -s squashfs.o | cut -f1` echo "==============================================" echo "Summary:" echo "==>Squashfs disk size = $ROOTSIZE KBytes" echo "==>Squashfs image size = $IMGSIZE KBytes" Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dgreen Опубликовано 13 апреля, 2006 · Жалоба Kitsok, доступ к флешу был, есть и будет без дров NOR. Сам подумай - ядро файловую берет ? Настройки берет ? веб-странички берет ? Откуда ? Из флеша. И берет он ее через /dev/mtd, который в свою очередь формируется mtd_четатам.o, который в дровах реалтека в папке линуха. Доступ есть - просто попробуй :) Я ужо давно работаю напрямую с флешем - возьми исходники моей прошивки (где-то здесь на ветке есть ссылка), и посмотри файлик flash_sr - он пишет и читает флеш без дополнительных дров. По второй мессаге. Где лежит корневая система во флеше - и так понятно. Даже если она вдруг потеряется - найти ее по сигнатуре ROOT не составляет труда. Мне не понятно, где ее монтирует ядро (вернее, уже почти понятно. Кому интересно - посмотрите init/main.c и fs/stat.c - очень глубокомысленное решение по сборке ядра от реалтека. Руки бы повырывал таки программистам.) В общем - сегодня я таки прицеплю sqfs поверх intrd - уже знаю как. А это снимает ограничение на RO_FS при 8 метрах оперативки. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
adron2 Опубликовано 13 апреля, 2006 · Жалоба У меня вопрос к линуксоидам.Где (и как) ядро грузит файловую, собранную как sqfs. Немогу найти точку обращения к флешу за куском, начинающимся с сигнатуры ROOT Задача стоит в том, чтобы смонтировать эту вот sqfs не в корень, а в отдельную папку. А в корень смонтировать рамдиск, прилинкованный к ядру. Может кто посоветует - где искать Монтирования корня проходит в fs/super.c - но вот что-то именно доступа к sqfs там нет. Вечером конечно еще посижу - но может кто уже искал.... и даже находил ? Может pivot_root подойдет. Вроде все то он и делает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Alexnik Опубликовано 13 апреля, 2006 · Жалоба dgreen, Дааа ... помоему так и есть ... исходя из pivot_root вроде оно ... но это смотря только с одной стороны исходника .... фууууух башка перестала уже совсем соображать .... (сигнализацию делаю дома - в 24-проводах начал путаться) .... :( P/S Пора спатки наверно ... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Alexnik Опубликовано 13 апреля, 2006 · Жалоба На счет зависаний Ovislink 5460 - уже даже руки начали опускаться .. :( В общем прошол тестирование в комплексе (точка без радиаторов замотанная в поролон - чтобы побольше грелась) Выше 60 градусов температуры не было замечено .. условия были такими : сам 5460 был замотан в поролон и припаен биквад + к этому был подключен электорнный осцилограф .... после внутреннего источника было 3.3 В стабильно - без нюансов :( Сделал лично свой вывод ИМХО - драйвер (wlan) очень глюченный .... больше ничего не ост аеться ... вообщем НЛО какоето ..... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dgreen Опубликовано 14 апреля, 2006 · Жалоба Фу-у-у-х. Поборол я двухфайловую систему :) Самое трудноре было понять, как заставить ядро пользоавть обе. Оказалось все очень просто. Программеры из реалтека, описывая возможные ситуаци условной компиляцией просто не задумались о том. что возможна ситуация наличия initrd и sqfs одновременно :) Подправил руками. sqfs монтируется очень просто - напрямую из блочного девайса mtdblock (в некоторых версиях ядра он почему-то называется mtd1). Что я сделал: Сделал 2 файловый - одна RO, хранящая все бинарники и библиотеки. (/bin,/sbin,/lib,/usr/bin,/usr/sbin) Вторая - RW, хранит все остальное RW - это root, организованный через initrd - т.е. прилинкован к ядру. RO - это sqfs. Он монтируется сразу после initrd (дописал прямо в init/main.c) в точку /ro_fs, а RW-fs изначально проложенны символические ссылки. Вроде как файловые собрал - тепереь надо разобраться с ядром. Если его собирать без CONFIG_KERNEL_TINY - то его размер (неупакованный - то, что будет выложено память) - около 7 метров. Для d-linka это катастрова. Памяти не останется :( Если собрать с CONFIG_KERNEL_TINY - то пропадает часть функциональности. Сегодня полезу по коду ядра - смотреть, что убирает CONFIG_KERNEL_TINY, и что можно оставить. Результаты - завтра на ветке. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Alexnik Опубликовано 14 апреля, 2006 · Жалоба dgreen, Если собрать с CONFIG_KERNEL_TINY - то пропадает часть функциональности. Что тут имееться ввиду под функциональностью ?? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dgreen Опубликовано 14 апреля, 2006 · Жалоба Alexnik, Сегодня полезу по коду ядра - смотреть, что убирает CONFIG_KERNEL_TINY, и что можно оставить. Результаты - завтра на ветке. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
N.leiten Опубликовано 14 апреля, 2006 · Жалоба Прикольно... насчет двуфайловой системы... Вот только узнал еще один глюк дровов для беспроводного интерфейса - когда точка в режиме роутера, то до нее никак нельзя достучаться с беспроводки, если она сама не начинает передавать инфу. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kitsok Опубликовано 14 апреля, 2006 · Жалоба Kitsok, доступ к флешу был, есть и будет без дров NOR. Сам подумай - ядро файловую берет ? Настройки берет ? веб-странички берет ? Откуда ? Из флеша. И берет он ее через /dev/mtd, который в свою очередь формируется mtd_четатам.o, который в дровах реалтека в папке линуха. Доступ есть - просто попробуй :) Я ужо давно работаю напрямую с флешем - возьми исходники моей прошивки (где-то здесь на ветке есть ссылка), и посмотри файлик flash_sr - он пишет и читает флеш без дополнительных дров. Отвечаю. Без этого долбанного драйвера никто после загрузки ядра ничего из флеша не берет ;) Ядро файловую систему не берет вообще, она подшита к ядру в виде рамдиска. В память ее берет бутлоадер. Настройки тоже не берет, бо нету доступа. И веб-странички не берет. И вообще ничего не работает, как я уже и писал два или три раза ;) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...