Sallaxer
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Т.к. на просторах рунета мне не удалось найти нормального обзора / инструкции к данному девайсу, то решил создать её сам, перерыв перед этим кучу сайтов/форумов. Что то мной переведено, что то приведено в удобный вид, что то добавил от себя. Обзор NSB3AST / NSB3AS Для экономии электроэнергии и шума решил я себе на Новый Год приобрести не дорогой NAS. Выбор мой пал на AgeStar NSB3AST для 3.5" SATA винтов. Можно было даже взять дешевле модельку NSB3AS (отличия только в отсутствии информационного дисплея, где показывается температура и скорость вращения вентилятора), но её не было в наличии. Но все что будет здесь сказано про NSB3AST относится и к NSB3AS. Стоило сие устройство ~1600р. в интернет магазине и ~1800р. в розницу в моем городе. TTX: STR8132 150МГц, 32Мб ОЗУ (256Мбит), 8Мб ПЗУ (Flash). Linux с ядром 2.6.16. python 2.4, bittorrent-клиент BitTornado 0.3.14, TwonkeyMedia 3.1 В комплект поставки входит: а) Блок питания и кабель к нему б) Руководство пользователя на русском в) USB кабель г) LAN кабель д) Отвертка е) Диск с программой для первоначальной настройки ж) Винты для крепления жесткого диска Корпус устройства выполнен из алюминия и стоит на пластиковой подставки. Выглядит вполне себе прилично. На лицевой части находиться дисплей (NSD3AST), который показывает температуру внутри корпуса и скорость вращения кулера. 3 кнопки управления дисплеем и внизу 2 диода Power и HDD (Power сразу заклеил, т.к. уж больно раздражающе ярко горит зеленым в темноте) Вентилятор находиться на правой стороне и работает на вдув. Шумный. Но его вполне можно заменить и на тот что потише. Я лично, просто его перевернул, чтобы работал на выдув. Дало результат в уменьшении температуры еще на 4 градуса. На задней панели располагаются: - USB для подключения различных флешек, внешних HDD, хабов и принтеров - USB порт, для подключения к компьютеру - Кнопка безопасного извлечения USB - Кнопка reset - Кнопка включения питания - Кнопка вкл./откл. кулера - Разъём для подключения внешнего питания на 5/12В - Ethernet порт на 10/100 Mbit - Отверстия для воздуха Отвертка в комплекте какая то хлюпенькая, поэтому разбирал своей. Датчик температуры запаян в какую то резинку, поэтому не думаю что он показывает совсем уж точные цифры. Провода питания и SATA мне показались через чур длинными. Можно было и покороче сделать. Провод питания припаян к плате, когда как SATA спокойно отсоединяется. При прикручивании HDD пришлось применить силу, т.к. он упирается в переднюю стенку, а разъёмы для задней части винта выплнены в виде дырочек. Кстати, прицепив жесткий, Вы уже не сможете отсоединить кулер или плату с чипами. Тут я тоже провел свой небольшой тюнинг и присобачил на процессор (STR8132 150МГц) радиатор от старой материнской платы. Вычитал где то на форумах, что при копировании больших файлов по сети чип перегревается и устройство виснет. Но это я так, перестраховался. Когда собирал все обратно, то не заметил специальных салазок, по которым внутренности вдеваются в алюминиевый корпус. После включения устройства пришлось перенастраивать свою сеть на 192.168.16.* т.к. по умолчанию адрес устройства 192.168.16.1 (что там производитель вякал про DHCP). Выставил StaticIP своей сети, а заодно в роутере прописал для него портфорвардинг. Далее оказалось что я не могу добавлять пользователей, обновлять прошивку и качать торренты. Оказалось из за того, что не форматирован HDD. Да и вообще в моей Семере через ФФ как то все подглючивало. Включил XPMode и тут же все прошилось и отформатировалось. После этого и в Фаерфоксе все работало нормально (возможно мне надо было просто воспользоваться IE для первого раза, но что то уж больно я его не люблю) По сети девайс расшаривает папку public с общим доступом и папки с именами пользователей (по умолчанию только с доступом самим пользователям). Скорость по сети не ахти какая, что самба, что фтп. Торрент клиент качает довольно шустро, но не дает скачивать одновременно больше 2х, да к тому же, не работает на рейтенговых сайтах. Неделя работы показала, что работает девайс стабильно, но медленно. Хотя как торрент качалка или домашняя файлопомойка вполне даже нечего. Правда кулер выходит на полный разгон уже при 30 градусах. При 60 начинает усиленно пищать сигналка перегрева. Но до таких критических температур он так и не добрался. С включенным кулером температура не превысила 35 градусов, с отключенным 46 (WD Green 500Gb и Seagate на 80Gb) Upd: Помимо того, что крайне желательно поставить радиатор на чип (встречал много отзывов о том, что проц. сгорел именно из - за перегрева), еще и оказалось что блок питания греется очень сильно. Где то 50 снаружи и внутри может дойти до 80. Это очень снижает срок его службы (сгорит, либо кондеры потекут) и, к тому же, вызывают глюк с потерей диска. Решение предложил chikvlad Цитата: при длительной работе устройства происходит потеря диска.парился не долго так как при покупке была идентичная проблема но мастера в с.ц. больше месяца тестировали и не могли разобраться в чём дело. всё же заменили мне блок питания. но и с ним через месяц другой началось то же самое. в итоге выяснилось что при длительной работе нагревается б.п. и глючит. проблему решил так. вскрыл б.п. и по уровню радиатора вырезал отверстие в верхней части крышки блока питания. собрал обратно, а на место где отверстие прикрепил кулер от старенького процессора по-моему от пенька второго. вообщем по размеру встало всё. всё глюки прекратились. странное дело но радиаторы в блоке питания обклеены какой то жёлтой лентой . для чего? пространства там ограничено и вентиляции никакой. это большой минус. | Подытожим: - Плюсы: Очень низкая цена (некоторые просто внешние корпуса в 2-3 раза дороже), поддержка FTP, Samba, регулировка доступа для пользователей, возможность подключения как по сети, так и по USB,, возможность подключения внешнего HDD или флэшки, принт-сервер, BT-клиент, даже дизайн можно записать ему в плюс (учитывая цену) - Минусы: Недостаточно быстрый Ethernet (Скорость по FTP - 2.5-3Мб/с, по SMB - 4-5Мб/с), не работает с компом, если его одновременно подключить по сети и USB, шумноватый кулер, не включен telnet и нету ssh, BT-клиент работает только с открытого типа трекерами, не работает с NTFS, сильно греется блок питания, что снижает срок эксплуатации. Что ж, как видим девайс хорош, но кривая прошивка все портит (как всегда у китайцев). Стал я думать, как мне избавиться от минусов. Ну с кулером вопрос решился сразу. Прошивку я тоже победил. Далее представляю Вам результат недельных усилий и бессонных ночей, проведенных в прочесывании инета и чтения мануалов P.S. для NSB3AS1T все ниже сказанное тоже вполне подходит. Способ первый, более безопасный. Инструкция по настройке Debian на nsb3ast / NSB3AS Это способ не прошивки, а подмонтирования (своего рода виртуализация, хотя это не совсем то) ФС debian Там ничего сложного, вот написал инструкцию на русском: 1) Форматируем самим nsb3ast жесткий диск в формат XFS 2) Вынимаем жесткий диск и присоединяем его к компу (!) 3) На компьютере запускаем Linux (установленный или LiveCD (я пользовался LiveCD Slax) 4) Качаем debian-etch-base.tar.bz2 (зеркало) 5) На присоединенном жестком диске заходим в папку "public" и создаем там папку "debian" 6) Распаковываем в debian содержимое архива debian-etch-base.tar.bz2 * У разных дистрибутивов и LiveCD могут быть разные архиваторы (хотя основной вроде Ark), но через консоль это можно сделать так: -открываем консоль -desktop_pc:# cd /media/disk-1/public (<-- переходим из домашней папки в папку public на присоединенном диске (на разных системах могут быть разные пути, поэтому путь пишите и меняйте соответственно) -desktop_pc:/media/disk-1/public # mkdir debian (<-- создаем папку debian) -desktop_pc:/media/disk-1/public # cd /debian (<-- переходим в папку debian) -desktop_pc:/media/disk-1/public # tar -jxvpf /media/disk-1/public/debian-etch-base.tar.bz2 (<-- распаковываем архив, который должен уже лежать в папке public) 7) Далее нам надо запустить на девайсе телнет, для этого: а) На присоединенном HDD у Вас как бы 2 диска (у меня один был Media (там находилась папка public) и System (вобще то 3, еще swap)). Заходим в тот, что System б) Находим файл smb.conf и открываем его для редактирования (можно и через консоль, используя, например vi) в) находим строку [public] и в под ней добавляем: Код: root preexec = /mnt/data/public/bd | г) Сохраняем результат и возвращаемся обратно в папку public д) Создаем там текстовой файл "bd", а в нем прописываем: Код: #!/bin/sh echo "pts/0" >> /etc/securetty /usr/sbin/telnetd | Все, скрипт bd для запуска телента готов, осталось задать только права е) Открываем консоль и прописываем в ней комманду (нужно либо перейти в каталог public, либо прописать полный путь до файла) Код: или Код: chmod 755 'desktop_pc:/media/disk-1/public/bd' | 8) Теперь присоединяем жесткий обратно в девайс и подключаемся по телнету (я для этого использовал программку PieTTY) по его сетевому адресу (у меня 192.168.1.6). Для того, чтобы телнет включился, надо задействовать скрипт bd. Для этого просто откройте папку public на девайсе. Если у Вас в PieTTY возникли крякозябры, то просто в окне самой программы, в верхней панели щелкните по меню Option > Encoding > System Default (или Unicode UTF-8) 9) Вводим логин root и жмем энтер 10) Далее прописываем следующие команды Код: /mnt/data/public/debian/usr/sbin/chroot /mnt/data/public/debian | *подмантируем распакованную нами ФС Код: *устанавливаем пароль для пользователя root в подмонтированной debian Код: *выходим 11) Далее в скрипт надо добавить команды подмонтирования и запуска SSH. Вводим следующую команду: Код: echo "/mnt/data/public/debian/usr/sbin/chroot /mnt/data/public/debian /etc/init.d/ssh start " >> /mnt/data/public/bd | *хотя можно и по другому, просто прописать команду /mnt/data/public/debian/usr/sbin/chroot /mnt/data/public/debian /etc/init.d/ssh start в самом конце скрипта. когда мы его создавали в пункте 7д 12) Далее нам надо подключиться по SSH и допустим установить BT-клиент: 13) С помощью той же программки для Windows PieTTY подключаемся по SSH * Если у Вас возникла ошибка при подключение, то нужно сделать следующее - Снова зайти по телнет - Подмонтировать дебиан Код: /mnt/data/public/debian/usr/sbin/chroot /mnt/data/public/debian | - Ввести 2 следующие комманды Код: mount -tdevpts none /dev/pts | Код: - Потом exit, еще exit и коннектимся по SSH 14) В открывшемся окне вводим логин root, пароль, который Вы придумали шагами выше 15) Все, Вы вошли в Debian и можете творить там что хотите )). Я предлагаю следующие действия 16) Вводим команды Код: *обновляем apt-get с помощью которого мы будем в дальнейшем инсталировать пакеты Код: apt-get install mc rtorrent screen | *устанавливаем Midnight Commander (аналог FarManager), консольный bt-клиент и программку для создания нескольких экранов работы На все вопросы отведаем "да" (Yes, dо as I say!, y, y) 18) Запускаем Midnight Commander командой mc 19) В папке root (которая открылась в MC по умолчанию) вводим следующую команду (если же вы перед этим создали другого пользователя, то это нужно делать в его домашней директории, которая находиться в папке /home/~имя пользователя~ Код: Теперь просто нужно копировать настройки Rtorrent в появившемся черном поле Почитать про них можете здесь Вот пример моих настроек: Код: # This is an example resource file for rTorrent. Copy to # ~/.rtorrent.rc and enable/modify the options as needed. Remember to # uncomment the options you wish to enable. # Maximum number of working torrents max_uploads_global = 2 max_downloads_global = 1 # Maximum and minimum number of peers to connect to per torrent. min_peers = 1 max_peers = 300 # Same as above but for seeding completed torrents (-1 = same as downloading) min_peers_seed = 1 max_peers_seed = 50 # Maximum number of simultanious uploads per torrent. #max_uploads = 15 # Global upload and download rate in KiB. "0" for unlimited. download_rate = 0 upload_rate = 0 # Default directory to save the downloaded torrents. directory = /home/torrent # Default session directory. Make sure you don't run multiple instance # of rtorrent using the same session directory. Perhaps using a # relative path? session = /home/session # Watch a directory for new torrents, and stop those that have been # deleted. schedule = watch_directory,5,5,load_start=/home/torrent_autoload/*.torrent #schedule = untied_directory,5,5,stop_untied= # Close torrents when diskspace is low. schedule = low_diskspace,5,60,close_low_diskspace=100M # Stop torrents when reaching upload ratio in percent, # when also reaching total upload in bytes, or when # reaching final upload ratio in percent. # example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0 #schedule = ratio,60,60,"stop_on_ratio=200,200M,2000" # The ip address reported to the tracker. #ip = 127.0.0.1 #ip = rakshasa.no # The ip address the listening socket and outgoing connections is # bound to. #bind = 127.0.0.1 #bind = rakshasa.no # Port range to use for listening. port_range = 48890-48890 # Start opening ports at a random position within the port range. port_random = no # Check hash for finished torrents. Might be usefull until the bug is # fixed that causes lack of diskspace not to be properly reported. check_hash = yes # Set whetever the client should try to connect to UDP trackers. use_udp_trackers = yes # Alternative calls to bind and ip that should handle dynamic ip's. #schedule = ip_tick,0,1800,ip=rakshasa #schedule = bind_tick,0,1800,bind=rakshasa # Encryption options, set to none (default) or any combination of the following: # allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext # # The example value allows incoming encrypted connections, starts unencrypted # outgoing connections but retries with encryption if they fail, preferring # plaintext to RC4 encryption after the encrypted handshake # encryption = allow_incoming,enable_retry,prefer_plaintext # Enable DHT support for trackerless torrents or when all trackers are down. # May be set to "disable" (completely disable DHT), "off" (do not start DHT), # "auto" (start and stop DHT as needed), or "on" (start DHT immediately). # The default is "off". For DHT to work, a session directory must be defined. # # dht = auto # UDP port to use for DHT. # # dht_port = 6881 # Enable peer exchange (for torrents not marked private) # peer_exchange = yes # # Do not modify the following parameters unless you know what you're doing. # # Hash read-ahead controls how many MB to request the kernel to read # ahead. If the value is too low the disk may not be fully utilized, # while if too high the kernel might not be able to keep the read # pages in memory thus end up trashing. hash_read_ahead = 5 # Interval between attempts to check the hash, in milliseconds. #hash_interval = 100 # Number of attempts to check the hash while using the mincore status, # before forcing. Overworked systems might need lower values to get a # decent hash checking rate. hash_max_tries = 5 | * DHT в этой версии rtorrent не работает, его включать не стоит * Сделал такое малое количество одновременно работающих торрентов и не большой размер чтения хэша, т.к. работает мне кажется система не совсем стабильно. При настройках по умолчанию девайс у меня пару раз зависал. Поэкспериментируйте у себя, может это мой косяк > Далее жмем Энтер и Ctrl+D, чтобы сохранить скопированное во вновь созданный файл 20) Все, файл с настройками программы готов, надо теперь создать папки, которые указаны в настройках (куда сохранять файлы (у меня свалено все в одну помойку), откуда подхватывать торренты и где хранится сессия) - В MC переходим в папку home и внизу, в командной строке, пишем Код: mkdir torrent mkdir torrent_autoload mkdir session | Все, папки созданы 21) Папки созданы, но зайти или сохранить туда что то из под Windows мы не можем. Не хватает прав. Надо их задать - В MC остаемся в папке home (где мы создали наши рабочие папки) и прописываем такие команды Код: chmod -R o+rwX torrent chmod -R o+rwX torrent_autoload chmod -R o+rwX session (хотя на эту не обязательно) | Теперь можно делать с этими папками что угодно, даже в Windows Замечание: Можно было обойтись и без МС (Midnight Commander), используя команду cd, но с ним удобнее, ИМХО 22) Теперь запускаем сам rTorrent - Можно запустить его просто командой rtorrent, но тогда, при закрытии сессии SSH он будет висеть в процессах, но мы не сможем его открыть. Тут и пригодиться программа screen Итак запускаем rtorrent Код: screen -S rtorrent rtorrent | Открылось окно программы. Что бы его свернуть, надо нажать сочетание клавиш Ctrl+A+D Чтобы восстановить окно, в командной строке набираем Код: Как работать с программой читаем в wiki 23) Чтобы начать качать, просто сохраняем торрент-файл в папку torrent_autoload (или как вы там её назвали у себя) Ну вот мы и прошли все шаги от установки до запуска. К сожалению у меня работает это дело не стабильно - виснет при большом количестве торрентов. Видимо не хватает оперативки. На данный момент ищу способ как прошить в сам девайс rtorrent, тогда и памяти будет побольше и постабильнее должен работать сам nsb3ast Ссылки, которыми я руководствовался, да и просто полезные: http://emprex-nas.blogspot.com/2008/08/installing-debian-in-nsd-100.html http://koct9i.livejournal.com/40283.html http://www.paravin.ru/2009/02/28/obzor-setevogo-nakopitelya-agestar-nsb3as1t/ http://qref.sourceforge.net/Debian/reference/ch-tutorial.ru.html http://www.tinyhack.com/agestar/ http://ru.wikibooks.org/wiki/RTorrent P.S. Имею дело с системой Linux всего неделю, поэтому может чего лишнего и наворотил или слишком запутанно описал. Извеняйте, если что )) Вроде всем хорошо, да вот только оперативки больше занимает, репозиторий старый, нифига не компилиться, да и остальным членам семьи не удобно с ним работать. Поэтому следующим моим шагом стал поиск вариантов прошивки и способа компиляции. На данный момент найдено такое: А) работать в chroot окружении (debian) (как сделать описано мной выше) Б) прошить устройство (изменить rootfs и записать обратно). Для этого нужно: Код: 1. Собрать кроскомпилятор для glibc-2.3.2 и gcc-3.6.3 2. Собрать необходимые библиотеки (openssl, curl...) и rTorrent 3. Получить rootfs из /dev/mtdblock3 , разпаковать, внести изменения (переписать lib, стартовый скрипт) 4. Упаковать и записать обратно в /dev/mtdblock3 | Инструкция №2 Способ второй. Прошивка nsb3ast / NSB3AS. Установка Transmission Советую сначалa прочитать мою инструкцию №1 Огромная благодарность tim66 с т.ру (Он, в принципе, и написал эту статью, я же просто привел её в удобоваримый вид) Замена BT-клиента в NSB3AST / NSB3AS сменой прошивки Начнем с файлов, которые нам понадобятся: А) Файлы для распаковки и вшивания (здесь transmission 1.76 и нужные библиотеки) А_2) Обновление до transmission 1.83 (тут лежит только файл transmission-daemon, который нужно менять, при желании, вместо такого же файла из предыдущего архива (файл transmission-remote - это клиент для Линукс, его вшивать не нужно)) Выложил 1,76 и 1,83 т.к. у кого то хорошо работает первый и глючит второй, у кого то наоборот Б) Программа для удаленного управления из Windows В) Плагин для Firefox (по желанию, позволяет добавлять торренты из фаерфокса) Сноска: Почему transmission: I. Работает как демон II. Есть фронтенд который выглядит как uTorrent и позволяет управлять с десктопа Для того, чтобы это все туда впихнуть, нам надо достать rootfs, зашить в него все что нужно и прошить обратно. rootfs находиться в /dev/mtdblock3 и представляет собой squashfs добитый нулями до размера 6029312 байт и имеющий в конце волшебную строчку "01030107Supercom" для версии firmware R0107 (если хотите повторить мой опыт то лучше прошиться на эту версию) Приступим. Для начала у Вас должен быть доступ до девайса по telnet (как его запустить читаем мою инструкцию в этой же теме или здесь) 1) Заходим на железку по телнет и делаем дамп рутовой партиции Код: dd if=/dev/mtdblock3 of=/mnt/data/public/mtdblock3.bin | 2) Для распаковки rootfs вам понадобиться squashfstools, тут я столкнулся с первой трудностью распаковать можно любой версией, а вот запаковать обратно нужно той же версией коей пользовались разработчики, иначе ядро (а оно версии 2.4.26 в устройстве) при загрузке не сможет распаковать rootfs. Экспериментально удалось установить, что нужна версия 3.2 squashfs. Скомпилированое для arm squashfstools v 3.2 лежит в в скачанном Вами архиве или можно отсюда. Называется sqfs.tar.gz После ввода логина root переходим в папку public, закидываем туда этот архив и распаковываем: Код: cd /mnt/data/public tar xzvf sqfs.tar.gz | В папке public появился каталог sqfs 3) Распаковываем rootfs Код: sqfs/unsquashfs mtdblock3.bin | В /mnt/data/public появится каталог squashfs-root. Это и есть файловая система нашего устройства которую и надо править 4) Пропишем заодно запуск пo telnet в сам девайс без танцев с бубном и необходимостью каждый раз открывать папку public для запуска скрипта а. Для начала добавим в /mnt/data/public/squashfs-root/etc/securetty строчку "pts/0", я пользовался vi но можно и через echo Код: echo "pts/0" >> /mnt/data/public/squashfs-root/etc/securetty | б. Собственно сам запуск telnetd Код: echo "/usr/sbin/telnetd" >> /mnt/data/public/squashfs-root/etc/init.d/rc.sysinit | 5) Для тех кто не желает компилировать берем из архива (или здесь) файл pkg.tar.gz , в котором лежат уже скомпилированные библиотеки и transmission-daemon. Этот архив также кидаем в папку public. 6) Чтоб соблюсти размер удаляем ненужный встроенный BT-клиент (BitTornado v.0.3.14) Код: rm -r /mnt/data/public/squashfs-root/usr/sbin/BitTornado-0.3.14 | 7) Также удаляем python и его библиотеки Код: rm /mnt/data/public/squashfs-root/usr/bin/python rm -r /mnt/data/public/squashfs-root/lib/python2.4 | 8 ) Распаковываем архив pkg.tar.gz и копируем полученные файлы Код: tar xzvf pkg.tar.gz cp pkg/bin/transmission-daemon /mnt/data/public/squashfs-root/usr/sbin/ rm /mnt/data/public/squashfs-root/lib/libz.so.1.1.4 cp -d pkg/lib/* /mnt/data/public/squashfs-root/lib/ | Как видите пришлось заменить и zlib (исходников 1.1.4 не нашел) 9) Итак осталось прописать запуск transmission, но сперва необходимо создать конфигурационные файлы Код: mkdir /mnt/data/public/Downloads chown guest:anyone /mnt/data/public/Downloads chmod 777 /mnt/data/public/Downloads /mnt/data/public/squashfs-root/usr/sbin/chroot /mnt/data/public/squashfs-root mount -t proc none /proc /usr/sbin/transmission-daemon -f -g /conf/.config -a "*" -w /mnt/data/public/Downloads | Тем самым мы подмонтируем squashfs-root, запускаем transmission в фореграунде с доступом по rpc с любого адреса с папкой куда качаются файлы /mnt/data/public/Downloads и с конфиг файлами расположенными в /conf Далее запускаем программу transmission-remote-dotnet, настраиваем на ip вашего NAS NSB3AST. Далее попробуйте добавить коротенький торрент, следите за выводом в консоле. Если все пошло без ошибок нажмите ctrl+c в консоле NAS. Учтите, что файлы не будут качаться, так как в подмонтированной ФС мы не создавали папку Downloads (z не пробовал, но мне кажется если её создать, то она будет появляться даже после форматирования HDD (только не забудьте задать ей соответствующие права)) 10) Дальше размонтируем ФС и проверяем получившиеся файлы конфигурации Код: umount /proc exit rm /root cd /mnt/data/public/squashfs-root/conf/.config ls -a | 11) Вы должны увидеть следующее: Код: [root@FA520]# ls -a . blocklists settings.json torrents .. resume stats.json | 12) Вот создался каталог .config с настройками, его надо перенести: Код: cd / cp -fr /mnt/data/public/squashfs-root/conf/.config /conf/ rm -fr /mnt/data/public/squashfs-root/conf/.config | 13) Теперь прописываем запуск transmission и проверку его каждые 15 минут, если завис. Для это используем vi - Создаем скрипт Код: cd /mnt/data/public/squashfs-root/etc/init.d cat > rc.transmission | После выполнения команды cat будет записано в файл rc.transmission все что Вы введете с клавиатуры, а вводить надо следущее: Код: #! /bin/sh # COUNT=4 CONF="/conf/.config" tr_firstrun() { i=0 while [ $i -lt $COUNT ] do if mount | grep "/conf" 1>/dev/null ; then /usr/sbin/transmission-daemon -g $CONF break fi sleep 5 let i=$i+1 done } tr_rerun() { if ! ps w | grep "transmission-daemon" | grep -v grep >/dev/null 2>&1 ; then tr_firstrun fi } tr_stop() { killall transmission-daemon } case "$1" in 'firstrun') tr_firstrun ;; 'rerun') tr_rerun ;; 'stop') tr_stop ;; *) tr_firstrun esac | Потом нажимаем Ctrl + D. Это сохранит введенный Вами текст. - Далее разрешим исполнение этого скрипта Код: cd / chmod 777 /mnt/data/public/squashfs-root/etc/init.d/rc.transmission | - Прописываем проверку в cron Код: vi /mnt/data/public/squashfs-root/etc/crontab | Нажимаем i, для входа в режим редактирования и в конце вводим Код: */15 * * * * root /etc/init.d/rc.transmission rerun >/dev/null | После чего жмем Esc для выхода из редактирования и вводим :wq (двоеточиеДаблЮКью), для того чтобы записать изменения и выйти. - Назначаем автозапуск скрипта в rc.sysinit Код: vi /mnt/data/public/squashfs-root/etc/init.d/rc.sysinit | - Где, в конце файла, прописываем руками следующее (используя все теже команды i и :wq) Код: /etc/init.d/rc.transmission firstrun | Сноска: Если заметили, что у Вас девайс стал часто виснуть, то можно просто в rc.sysinit добавить следующую строчку Код: /usr/sbin/transmission-daemon -g /conf/.config | Тогда скрипт создавать не надо и прописывать его в cron тоже. Для запуска трансмиссион через telnet используется таже команда /usr/sbin/transmission-daemon -g /conf/.config 14) Итак осталось сквашить rootfs и запихнуть её в /dev/mtdblock3 Код: cd / cd /mnt/data/public sqfs/mksquashfs /mnt/data/public/squashfs-root /mnt/data/public/root.sqfs | 15) Проверяем размер root.sqfs он должен быть меньше 6029312 b Код: 16) Далее необходимо добить root.sqfs нулями до размера 6029312 байт и вписать волшебные символы "01030107Supercom" Необходимо знать размер root.sqfs (предидущая команда), у меня 5935104 b, 6029312 - 5935104 = 94208 - 16 b волшебные символы = 94192. Итак нужно добавить 94192 b нулей к root.sqfs Сноска: Ваши размеры могут не совпадать с моими. Я проделывал эту операцию два раза и оба раза размеры были разными Создаем файл с нулями Код: dd if=/dev/zero of=/mnt/data/public/zerro.bin bs=1 count=94192 | 17) Присоединим его к root.sqf Код: cat zerro.bin >> root.sqfs | 18 ) Добавим "01030107Supercom" Код: echo -n "01030107Supercom" >> root.sqfs | 19) Проверяем получившейся размер Код: Вот тут размер у Вас уже должен совпадать с моим. Проверьте размеры и mtdblock3.bin и root.sqfs. Они должны быть одинаковыми и равняться 6029312 b 20) Финальный этап. Если размер root.sqfs = 6029312 можно писать в /dev/mtdblock3 Хорошо подумайте перед этим, скрестите пальцы.... поехали Код: dd if=/mnt/data/public/root.sqfs of=/dev/mtdblock3 | Это занимает определенное время. Где то 2-4 минуты. Ну вот и все. Теперь можно выкл./вкл Ваш NSB3AST и сразу же соединяться по телнет или работать с transmission. P.S. Экспериментальным путем удалось установить, что лучше всего держать одновременно работающими 2-3 торрента (1 закачка и 2 раздачи, например) P.P.S. Автор и люди, принимавшие в написание мануала участие, не несут никакой ответственности за Ваши действия. Если запорете девайс, то пеняйте только на себя P.P.S. Английский перевод этой статьи http://code.google.com/p/nsb3ast/wiki/howto (спасибо magminsk) Теперь рассмотрим как же собрать кросскомпилятор для компиляции нужных Вам файлов и библиотек. Предупреждаю сразу - нужна определенная подготовка и опыт в компиляции Линукс Опять же спасибо за этот мануал товарищу tim66 Как создать кросскомпилятор для NSB3AST/NSB3AS/NSB3AS1T У Вас должен быть установлен Linux, или запущен в эмуляторе, я использовал VirtualPC Сноска Ubuntu и производные от неё не подходят из-за этой ошибки. Использовалась ZenWalk, так же подходит Red Hat (на остальных не пробовал). Все работы проводятся не под пользователем root 1) Скачайте и распакуйте crosstool отсюда: http://www.kegel.com/crosstool/ этот набор скриптов и патчей для скачивания и сборки кросскомпилятора под нужную платформу. Код: Замечание Как мы выяснили прошивка нашего устройства основана на gcc-3.3.6, glibc-2.3.2, что касается ядра то согласно uname оно 2.6.16 Код: [root@FA520]# /lib/libc.so GNU C Library stable release version 2.3.2, by Roland McGrath et al. Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled by GNU CC version 3.3.6. Compiled on a Linux 2.4.26 system on 2005-08-04. Available extensions: GNU libio by Per Bothner crypt add-on version 2.1 by Michael Glad and others linuxthreads-0.10 by Xavier Leroy BIND-8.2.3-T5B libthread_db work sponsored by Alpha Processor Inc NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk Report bugs using the `glibcbug' script to <bugs@gnu.org>. | 2) Для начала нужно создать processor defenition file Для этого переходим в домашний каталог Вашего пользователя и заходим в папку crosstool-0.43, где создаем файл arm9.dat Код: следующего содержания: Код: KERNELCONFIG=`pwd`/arm.config TARGET=arm-linux-gnu TARGET_CFLAGS="-O -mcpu=arm9" | defenition file для glibc/gcc будем использовать этот: crosstool-0.43/gcc-3.3.6-glibc-2.3.2.dat, оставьте его без изменений, там прописано правильное ядро для glibc и почти правильные хедеры 2.6.12 вместо 2.6.16 3) Далее нужно создать файл который соберет все вместе Для этого создаем файл demo-arm9.sh, после чего открываем файл demo-arm.sh и копируем его содержимое в только что созданный файл demo-arm9.sh После чего раскоментируйте строчку (убираем знак #) Код: #eval `cat arm.dat gcc-3.3.6-glibc-2.3.2.dat` sh all.sh --notest | и измените на Код: eval `cat arm9.dat gcc-3.3.6-glibc-2.3.2.dat` sh all.sh --notest | а эту строчку Код: eval `cat arm.dat gcc-4.1.0-glibc-2.3.2-tls.dat` sh all.sh --notest | закоментируйте (поставте перед ней знак #) Важное замечание: Обязательно проверте чтобы не оставалось файлов "~" (по умолчанию они скрыты, так что ls -a и удаляем такие файлы) 4) Теперь нужно выполнить операцию под пользователем root Cоздайте католог /opt/crosstool, а потом сделайте владельцем себя Код: mkdir /opt/crosstool chown $USER /opt/crosstool | где $USER это пользователь которым вы работаете После выполнения операции можете вернуться под своего пользователя 5) Последнее что нужно сделать посмотреть версию gcc в вашем linux Код: если версия старше 4.1 то надо подправить в файле crosstool-0.43/patches/glibc-2.3.2/glibc-2.3.3-allow-gcc-4.0-configure.patch строчку Код: заменить на Код: 6) Ну вот мы готовы создать кроскомпилятор Переходим в каталог crosstool-0.43 и запускаем скрипт demo-arm9.sh Код: Он скачает нужные исходники пропатчит их и скомпилирует. Все, кросс-компилятор готов. Можете теперь компилировать из исходников любые нужные Вам файлы. Примеры компиляции Ну чтож кроскомпилятор готов, теперь можно скомпилировать zlib например Код: создайте файл doit.sh в каталоге zlib-1.2.3 следующего содержания: Код: #!/bin/sh BASE=/opt/crosstool/gcc-3.3.6-glibc-2.3.2/arm-linux-gnu export CC=arm-linux-gnu-gcc export AR="arm-linux-gnu-ar rc" export PATH=$BASE/bin:$PATH ./configure --shared --prefix=$BASE/arm-linux-gnu \ --libdir=$BASE/arm-linux-gnu/lib \ --includedir=$BASE/arm-linux-gnu/include make all libz.a | запускайте Код: копируйте libz.a libz.so* в /opt/crosstool/gcc-3.3.6-glibc-2.3.2/arm-linux-gnu/arm-linux-gnu/lib zlib.h zconf.h в /opt/crosstool/gcc-3.3.6-glibc-2.3.2/arm-linux-gnu/arm-linux-gnu/include Создаем файлы openssl для нашего девайса Код: Нужен будет perl проверьте есть ли он у вас Код: если появилось что то вроде этого Код: perl: /usr/bin/perl /usr/share/man/man1/perl.1.gz | то все впорядке - можно проложать, иначе устанавливайте его из репозитория openssl уже как бы готов к кроскомпиляции (по мнению разработчиков), в скрипт Configure нужно передать платформу. Проблема в том что платформы arm-linux он не знает Поэтому создайте doit.sh с этим содержимым, команда должна создать Makefile для нашей платформы Код: #!/bin/sh BASE=/opt/crosstool/gcc-3.3.6-glibc-2.3.2/arm-linux-gnu export CC=arm-linux-gnu-gcc export AR=arm-linux-gnu-ar export PATH=$BASE/bin:$PATH ./configure linux-generic32 -DL_ENDIAN -DOPENSSL_EMBED --prefix=$BASE/arm-linux-gnu \ shared zlib-dynamic no-krb5 no-camellia no-gmc no-mdc2 no-rc5 \ no-rfc3779 no-seed no-tlsext no-idea no-aes no-rc2 \ no-capieng no-cms no-jpake no-err no-hw no-bf no-cast \ no-ec no-mdc2 no-ripemd no-asm | Смысл опций уменьшить размер openssl, убрать лишние алгоритмы шифрования (это минимальная конфигурация с которой мне в дальнейшем удалось скомпилировать curl) Если отработал Configure без ошибок, то нам предстоит еще подправить Makefile, если нет возможно есть ошибка в опциях следите за выводом команды. Правим Makefile Начиная с 62-й строчки должно быть правильно прописанны CC, AR, ARD, RANLIB (начинаться с arm-linux-gnu-) также подправьте CFLAGS: -O3 замените на -Os (оптимизация по размеру) Коментируем Configure в doit.sh, дописываем make depend make build_libs Код: #!/bin/sh BASE=/opt/crosstool/gcc-3.3.6-glibc-2.3.2/arm-linux-gnu export CC=arm-linux-gnu-gcc export AR=arm-linux-gnu-ar export PATH=$BASE/bin:$PATH #./configure linux-generic32 -DL_ENDIAN -DOPENSSL_EMBED # --prefix=$BASE/arm-linux-gnu \ # shared zlib-dynamic no-krb5 no-camellia no-gmc no-mdc2 no-rc5 \ # no-rfc3779 no-seed no-tlsext no-idea no-aes no-rc2 \ # no-capieng no-cms no-jpake no-err no-hw no-bf no-cast \ # no-ec no-mdc2 no-ripemd no-asm make depend make build_libs | запускаем Код: Должны получить: libcrypto.so.0.9.8 libssl.so.0.9.8 libcrypto.a libssl.a Думаю пары примеров Вам достаточно. Удачной компиляции! часть 4. Восстановление убитого девайса. Подходит так же для аналогов на базе процессора STR1832 автор eXpressionist в содействии с tim66. Почитать можно тут Пособие по восстановлению Agestar NSB3AS1T / NSB3AST / NSB3AS1 Итак, встроенный торрент-клиент у Agestar NSB3AS1T (далее устройство и коробка) просто ужасен, поэтому не раздумывая решил удалить его и зашить на его место Transmission (смотри выше). Первый раз всё прошло успешно, второй раз (менял конфиг) тоже. На третий раз решил обновить версию клиента (а также поправить конфиги под неё). Опять же, в результате зашивания в mtdblock3.bin всё выглядело успешно. Но вот после выключения/включения устройство сдохло. Моргает лампочкой на плате (в нормальном состоянии она просто горит). В случае если включать с зажатой кнопкой Reset – тогда можно по USB подключаться к винту. Но и только – на роутере не загораются диоды Ethernet, значит, сетевой интерфейс не поднимается. Ну что ж, полез в Интернет искать решение проблемы. Нашел человека в сети, который также брикнул свою коробку. Он мне посоветовал подключиться к UART интерфейсу устройства, используя USB-COM кабель. Я нашел кабель от Siemens 55/65/75 серии на базе чипа PL-2303 (к слову, подходят кабели и от Nokia, Samsung, Alcatel) нашел распайку разъема – нужны 2, 3 и 4 ноги – GND, TX, RX соответственно (для своего кабеля ищите свою распайку). Теперь посмотрите на скриншот, на котором указано, куда на плате нужно подключать кабель. Находим на плате UART, подсоединяем к нужным пинам наши провода (или ножки от разъема) согласно рисунку. Рекомендую впаять в эти пины по тонкому изолированному проводку (или ножки), и к ним уже подключать или подпаивать кабель. 1. Соединяем концы кабеля с интерфейсом на плате. 2. Убедитесь, что у вас установлены драйвера на кабель. 3. Подключаем концы на плату, засовываем кабель в комп. 4. Далее включаем Hyper Terminal, выбираем создание нового подключения. Вводим имя, выбираем иконку. 5. Теперь выбираем наш порт. У меня выдаются из диапазона COM14-16. У вас, возможно, будут другие. 6. Далее выбираем скорость порта 38400, остальные опции по умолчанию. Жмем ОК. Если вызов активировался, выбираем Вызов->Отключить. 7. Затем включаем устройство, быстро выбираем Вызов->Вызов. Теперь вы должны увидеть нечто такое: Код: U-Boot 1.1.4 (May 23 2008 - 15:31:39) U-Boot code: 00000000 -> 0001AF60 BSS: -> 0001FED4 IRQ Stack: 00e6ff7c FIQ Stack: 00e6ef7c RAM Configuration: Bank #0: 00000000 32 MB Flash Manufacturer: ST Flash: 8 MB In: serial Out: serial Err: serial PLL clock at 250MHz CPU clock at 250MHz AHB clock at 125MHz APB clock at 62MHz ## Starting application at 0x01000000 ... Uncompressing Linux............................................................. ....................................................... done, booting the kernel | Если ничего не появилось, попробуйте включить коробку с зажатой кнопкой Reset. Если всё равно ничего нет, проблемы могут быть в разных местах – сгорел процессор устройства, неправильно припаяли UART, плохой или неподходящий кабель/драйвера. Если что-то есть, но до ## Starting application не доходит - возможно вам нужно воспользоваться пособием по заливке загрузчика в FLASH напрямую - http://groups.google.com/group/dealextreme-nas-/web/unbrick-agestar-nsb3ast?hl=en&hl=en Для этого надо паять программатор, поэтому данный способ я не рассматриваю и не русифицирую. Скачиваем мой комплект для восстановления отсюда. Контрольная сумма MD5 (472A887E6B2DF3E94B96BE68662BC27D). Если весь комплект не нужен - чисто zImage. Теперь нужно раздобыть tftp клиент. Итак, нам необходимо отрезать первые 256 кбайт из прошивки, дабы отделить от загрузчика. Можете взять готовую, нижеследующая информация чисто для теории. Цитата: Скачайте оригинальную прошивку 0107 (http://www.agestar.com/english/support/V01R07.zip), программу для разбиения файлов (советую WinHEX, ищите с ключиком, т.к. без регистрации она не сохраняет большие файлы). 256*1024=26214410=4000016. Вычитаем единичку, получаем 3FFFF. Включаем WinHEX, открываем наш файл прошивки. Ставим курсор в начало, жмем Alt+1, далее нажимаем Postion->Go to offset. Выбираем там bytes и вводим наше значение 3FFFF (следите, что находитесь в режиме hex, для dec вводите 262143). Нажимаем Alt+2, далее Del (или Ctrl-X). Все, можете сохранять новый файл. Назовите его, например, 256.bin. | - Отформатируйте флешку в ext2 под Linux-ом. Там же распакуйте на неё Debian отсюда. Cкиньте на флешку (например в root) мой (или ваш) mtdblock3.bin и на всякий случай mtdblock1.bin - Запускайте tftp и кладите в рабочую директорию (browse dir) обрезанную прошивку (256.bin) и загрузочное ядро для Debian (zImage). - Подключаем USB-COM, запускаем девайс с зажатым USB1 exit и с вытащенным сетевым кабелем. Ждем приглашения Star Equuleus #. Втыкаем сетевой кабель и флешку с Debian. Вводим следующие команды (ipaddr задавайте из своей подсети, serverip - адрес вашего компьютера с запущенным tftp) Код: # setenv ipaddr 192.168.1.5 # setenv serverip 192.168.1.2 # tftpboot 0x1000000 zImage # go 0x1000000 | Примечание: setenv можно не вводить, достаточно набрать printenv и узнать, какой ip у сервера, затем своему компьютеру назначить его. - Образ для восстановления должен загрузиться, когда попросит login/pass вводите root/root. - Для надежности введите Код: Должно получиться Код: major minor #blocks name 31 0 256 mtdblock0 31 1 7808 mtdblock1 31 2 64 mtdblock2 31 3 5888 mtdblock3 31 4 8192 mtdblock4 8 0 1015296 sda 8 1 1012063 sda1 | Если всё так, переходим к следующему пункту. - Остается ввести Код: dd if=/root/mtdblock3.bin of=/dev/mtdblock3 | - По окончании процедуры, выключите и включите устройство. Должно заработать. - Если не помогло, попробуйте теперь залить родную прошивку Код: # tftpboot 0x1000000 256.bin # go 0x1000000 | - Если все-таки не заработало, повторите процедуру, только теперь вместо mtdblock3 закиньте Код: dd if=/root/mtdblock1.bin of=/dev/mtdblock1 | - У меня устройство загрузилось с моего IP (192.168.1.124). Если вы использовали мой mtdblock3, возможно у вас будет такой. Если так - пишите в аську, скажу пароль. Если ваш родной - тогда скорее всего свои настройки и свой пароль. Хотя даже после прошивки оригинальной firmware 0107 из-под веб-интерфейса пароль и IP сохраняются. Собственно, на этом всё. Если что-то не получается, или какой-то момент непонятен - пишите в ICQ 978712 (eXpressionist). Удачных экспериментов и безглючного софта! Т.к. лень состовлять самому, то перевел статью отсюда Способ запуска скриптов для исполнения программ на 9-ой прошивке 1. Скачиваем этот архив и кидаем его в папку public (/mnt/data/public) 2. Заходим по телнету на девайс (как это сделать читаем инструкции выше) 3. Переходим в папку, где лежит архив Код: 4. Распаковываем его Код: tar xzvf tweakpack.tar.gz | 5. Переходим в распакованную папку Код: 6. Даем себе права на исполнение скрипта Код: 7. Ну и наконец, запускаем сам скрипт Код: Внимание: Когда закончиться работа скрипта, Вам нужно будет перезагрузить Ваш NAS. После чего она станет доступен по адресу http://<NAS IP>:9091. Логин user, пароль password. Настоятельно рекомендую потом сменить пароль! Для этого смотрим настройки по этому пути Код: /conf/.config/settings.json | На веб-морде, в меню Tools, добавлен параграф WGET downloader для управления wget. Его конфигурационный файл находиться по пути Код: /conf/.cron/web2wget.conf | SAMBA по умолчанию отключена. Для ВКЛЮЧЕНИЯ редактируем файл /conf/.cron/rc.kill Код:Нажимаем INSERT. "Закомментируем" следующие записи: Код: #killall -9 smbd #killall -9 nmbd | Нажимаем Esc, и, чтобы сохранить, вводим ZZ. Выполняем перезагрузку: Код: Ну вот все, что мне на данный момент удалось нарыть. Девайс с transmission работает стабильно, без сбоев, качает на полную мощь канала. Но думаю продолжать эксперименты. Ядро у него находиться в /dev/mtdblock1, rootfs в /dev/mtdblock3. Хотелось бы NTFS прикрутить. Или может участники данного форума предложат что то свое интересное. P.S. Огромная благодарность всем, кто принимал участие в написании данной статьи! | Всего записей: 38 | Зарегистр. 12-04-2007 | Отправлено: 21:08 07-01-2010 | Исправлено: Sallaxer, 08:48 02-07-2010 |
|