Tl mr3020 увеличение памяти
Введение
- Atheros AR7240 CPU (400Mhz)
- Atheros AR9331 Chipset (integrated wireless)
- 802.11 b/g/n 150Mbps (130Mbps real)
- wireless power output 20dBm — 100mW
- 4 MB flash memory
- 32 MB RAM
- USB 2.0 port
Пути развития
- 0. Нулевой пункт объединяет в себе то, на что, увы, мы повлиять никак не сможем. Это, собственно, роутерное происхождение железа – то есть, тот факт, что оно не предназначено для разработчиков, схематика закрыта, и, вообще говоря, мы не имеем права модифицировать его и использовать в коммерческих продуктах. А также тот факт, что когда китайцам надоест его производить, все решения на нем придется срочно перетаскивать подо что-то другое.
- 1. Малый объем ПЗУ – в нашем распоряжении всего 4 мегабайта флеш-памяти, около 1.5 из которых заняты прошивкой
- 2. Один порт USB – учитывая, что часто требуется много периферии (камеры, модемы, GPS, флешки) – это тоже печалит.
- 3. Не очень большой объем ОЗУ – 32 мегабайта.
Не для нас железо паялось
Что касается пункта 0 – все что мы можем сделать на этот счет – перейти на другую аппаратную платформу. Из доступных разработчику – плата Carambola. Почти идентичная по характеристикам роутеру, почти идентичная по размерам, почти идентичная по цене (если не считать доставку). Предназначена для разработчиков, выведена куча GPIO, можно подпаять что душе угодно.
Из недостатков – схематика, вопреки расхожему мнению, таки закрыта. Открыта только схематика их дев-боарда, в который эта карамбола вставляется.
А также к недостаткам можно отнести стоимость доставки и время ожидания – роутер получается намного дешевле и быстрее (можно сразу же приобрести за 850 рублей в соседнем магазине).
Плюс, неоднозначное свойство карамболы, которое нельзя отнести ни к достоинствам, ни к недостаткам – на плате не смонтированы ни USB-разъемы, ни развязка с разъемами Ethernet – только голые пины. В случае, если вы проектируете свою базовую плату, в которую будет втыкаться карамбола – это несомненный плюс. Если же нужно быстрое решение из серии «накупил готового и соединил» — придется помахать паяльником.
Переходим к пункту 1.
Малый объем ПЗУ
Устройство считывания/записи карт памяти Hama
В принципе, и тот и другой вариант достаточно миниатюрны, чтобы не раздражать, будучи воткнутыми в USB, однако, изначально я предполагал отпаять микросхему контроллера и разместить ее на своей плате, чтобы избавиться от корпуса и сделать устройство более интегрированным – все расширения и дополнительное питание я планировал разместить на второй плате, размером с плату самого роутера. Я остановился на картридере, так как этот вариант показался мне более гибким, с точки зрения возможности выбора носителя по объему и скорости чтения, а также его замены. После приобретения картридера я снял с него часть корпуса (все остальное было жестко заделано в сам USB-разъем, туда же вставлялась micro-SD карта), что можно лицезреть на фотографии ниже.
К моему великому разочарованию, мост USB-2-SD оказался выполнен в виде бескорпусной микросхемы, залитой компаундом, не предназначенной для выпайки. Однако, перехватив VID и PID этого девайса, я смог отыскать соответствующую микросхему. Это оказалось творение китайской фирмы Silicon Motion. Да, они производили эти микросхемы и в корпусном варианте. Возможно, их даже можно было достать у нас. Проблема была в том, что этот мост являл собой традиционное для таких решений 8051-ядро+контроллер SD+контроллер USB в одном кристалле, и чтобы заставить его работать, нужен был софт, который подобные фирмы не предоставляют одиночным покупателям.
Исходя из этого можно сделать вывод (упомянутое выше радиолюбительское решение): если есть желание решить эту задачу красиво, и разместить на своей плате не чужой (хоть и очень миниатюрный картридер), а свои компоненты, можно купить любой из контроллеров с SD USB интерфейсом на борту (например, какой нибудь из ST32F103), потратить время, реализовав там USB-mass storage (рассмотрен в примерах к STMовской USB библиотеке) и использовать его как однокристальный мост USB-2-SD для вашего роутера или любого другого аналогичного проекта.
Я этим заниматься не стал за неимением времени (хотя возможно когда-нибудь и соберусь), плюс несколько засомневался, что смогу своим решением занять на плате площадь меньшую или сравнимую с этим чужим картридером – без корпуса он стал настолько мелкий, что выглядел просто как один из небольших девелоперских модулей или каких-то экранированных компонентов (вид экрана создавали остатки USB-разъема, служащие упором для micro-SD). Что касается портов USB. Разумеется на помощь приходит любой китайский USB-хаб. Однако, как показала практика, в основном они выполнены на одной и той же микросхеме (AU6256) независимо от бренда, и имеют очень, очень неприятную особенность – потреблять 100 мА х 5В (пол ватта!) даже не будучи никак задействованными. Это, честно говоря, меня несколько напрягло – вы втыкаете пустой хаб в USB-порт и он начинает потреблять больше чем сам роутер.
Существуют аналогичные микросхемы от всеми любимых Texas Instruments – вот такая, напрмер (TUSB2046B), в даташите которой заявлено потребление 40 мА – опять таки, пока не дошли руки проверить ее, но я склонен верить TI больше, чем китайцам.
Переходим к пункту 3.
Малый объем RAM
Пересобираем ядро
Этим мы сообщаем, что нам нужно примонтировать оверлейную корневую систему в /dev/sda2 (за это отвечает опция is_rootfs, которая говорит что это не просто маунт, а именно extroot) и своп в /dev/sda1
Все, основное сделано. Дальше конфигурим все по нашему усмотрению. Лично я почистил конфиги, так как они генерятся сразу в расчете на все платы, поэтому в любом из них мы увидим такое великолепие как огромные ифы вида
Можно безжалостно удалять все случаи из ифов, не относящиеся к нашей плате, то есть к MR3020. Кроме того, некоторые файлы конфигурации, такие как правила хотплага для ieee1394 или JTAGа, которых у нас физически нет, вообще не имеют смысла для данной платы и сгенерились точно так же, для совместимости этого всего с другими платформами – их тоже можно убить.
К тому же следует помнить – некоторые файлы в директории /etc/config будут сгенерированы системой UCI автоматически. Все это реализовано скриптами, лежащими в /lib – вы их сразу заметите. К ним относятся, например, ar71xx.sh и functions.sh, которые выполняют начальную конфигурацию и дергают остальные скрипты (в частности, как раз-таки детектят нашу плату и заполняют ту переменную, ar71xx_board_name). Так, например, файл /lib/wifi/mac80211.sh в самом конце содержит те самые строки, которые будут добавлены в файл /etc/config для вашего радио:
Теперь, благодаря этой небольшой хитрости, мы сразу после логина сможем понять – сработал оверлей, или нет (например, если внезапно «отвалилась» флешка или весь хаб)
После этого со спокойной душой возвращаемся в корень наших исходников (openwrt/trunk) и говорим make target/install – это запустит процесс генерации итогового имейджа, который появится в папке /openwrt/trunk/bin/ar71xx и будет носить имя openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-sysupgrade.bin
После прошиваем его уже известным методом, и, после загрузки (не забываем вставить флешку в роутер!) и логина через telnet видим долгожданное приветствие
ATTITUDE ADJUSTMENT (Bleeding Edge, r33444, USB Overlay)
Дополнительно удостовериться можно введя команду df. Не забываем задать пароль командой passwd, после чего получаем возможность работать по SSH вместо telnet. Кстати, не рекомендую использовать пустой пароль не только из соображений безопасности, но и потому, что некоторые утилиты (о которых речь пойдет ниже) даже при выбранной опции «запоминать пароль» считают что пустой пароль не достоин запоминания и продолжают постоянно раздражающе запрашивать его.
Инструментарий разработчика
Это установит SFTP-сервер и, собственно, интерпретатор питона.
Далее, устанавливаем на свою девелоперскую машину WinSCP бесплатную утилиту, которая позволит нам легко лазить по файловой системе роутера и обмениваться с ним файлами. Создадим новую конфигурацию в WinSCP: в поле Host Name задаем IP-адрес либо сетевое имя нашего роутера, порт оставляем по умолчанию, вводим имя пользователя и пароль, протокол выбираем SFTP.
Нажимаем «Login» и получаем полный доступ к ФС роутера – это ускорит процесс редактирования конфигов и т.п., если такая необходимость возникнет.
Теперь скачиваем и устанавливаем великолепную IDE от известной фирмы JetBrains – PyCharm. Следим за тем, чтобы версия была не ниже 2.6 – в прошлых есть баг, из-за которого удаленная отладка не срабатывала.
Заходим в File – Settings – Deployment, нажимаем на плюсик над списком для добавления нового деплоймент сервера. В появившемся окне вводим имя, например, MR3020 и выбираем протокол SFTP.
Далее конфигурируем деплоймент сервер: на вкладке Connection указываем адрес нашего роутера в поле SFTP Host, поля Port и Root Path оставляем по умолчанию.
Ввводим имя пользователя и пароль в соответствующие поля, ставим галочку «Save Password», чтобы нас не запрашивали при каждом деплое. После можно нажать «Test SFTP connection», чтобы убедиться, что все прошло нормально.
Заходим через WinSCP или SSH на наш роутер и создаем где-нибудь где удобно, например, в /root, директорию pyHelpers – сюда будут скопированы вспомогательные скрипты IDE.
Заходим в File – Settings – Project Interpreter – Python Interpreters и нажимаем на плюсик справа, выбирая в выпадающем после этого меню «Remote…». В появившемся окне нажимаем на ссылку «Fill from deployment settings», и выбираем настроенный ранее деплоймент сервер по имени MR3020. В полях «Python interpreter path» и «Copy PyCharm helpers to» указываем путь к бинарнику питона на роутере (по умолчанию правильный, /usr/bin/python) и путь к созданной нами директории для хелперов — /root/PyHelpers
После нажатия «OK» откидываемся на спинку стула и ждем, пока IDE не пообщается с интерпретатором на роутере и не построит список его возможностей и библиотек при помощи своих хелперов.
Дальше идет самое интересное: когда мы хотим начать разработку под наш роутер, мы создаем новый проект, выбирая в качестве интерпретатора наш настроенный Remote Python. Далее заходим в File – Settings – Deployment на вкладку Mappings и выбираем путь к нашему проекту на роутере, в поле Deployment Path on server ‘MR3020’. Не забываем нажать «Use this as default server».
В меню Tools – Deployment – Options устанавливаем удобный для нас режим деплоймента в поле «Upload changed files automatically to default server» – для меня это «On explicit save action» — теперь при нажатии CTRL+S измененные файлы будут автоматически аплодится на роутер.
Теперь можно добавить первый файл в проект и написать там долгожданную строку print “Hello World”. Сохраняем файл, и видим как IDE в консоли снизу рапортует об удачном аплоаде файла на сервер. Далее жмем правой кнопкой на имя файла в дереве проекта и выбираем «Run» — это автоматом создаст конфигурацию для запуска. Если что-то не так, и программа не запустилась, заходим в Run – Edit Configurations и проверяем, чтобы в поле Script был прописан путь к скрипту на роутере. Результат выполнения программы будет выведен в консоль внизу экрана.
Заключение
Вот, собственно, и все. Теперь у нас есть мощная современная IDE, позволяющая писать на питоне на своей девелоперской машине, автоматически загружая скрипты на целевую платформу (роутер), исполняя их там, и выводя результат в консоль IDE. А также позволяющая проводить их отладку и трассировку. За счет исключения из процесса шагов «написал, скомпилил, перебросил на роутер, зашел на роутер, запустил, поглядел, не заработало, вернулся к девелоперской машине» скорость разработки вырастает во много раз, а переносимость питоновских скриптов гарантирует, что большая часть ваших задач уже была в том или ином виде кем-то решена и оформлена в виде библиотек – достаточно только погуглить.
Так, например, при разработке проекта на работе к роутеру был легко прикручен GPS за счет библиотеки PyNMEA.
MR3020 станет отличным «мозгом» для ваших роботов или систем домашней автоматизации, особенно, если комбинировать его возможности с реал-тайм обработкой на тех же STM32 – в этом случае, мелкие кортексы М3 будут служить аппаратными контроллерами низкоуровневых систем, отдавая по USB информацию и получая команды от роутера, более тяжеловесная часть алгоритмов которого будет написана на удобном питоне. Например, в случае с роботами, STM32-контроллер превосходно служит контроллером сервоприводов, генерируя ШИМ-сигнал, а также собирает информацию с различных датчиков, собирает ее в пакет и шлет роутеру, в то время как питоновские скрипты реализуют уже более высокоуровневое «поведение».
Удачных разработок!
У нас было 2 пакета коннекторов rj-45, четыре роутера, три адаптера USB-ATA, восемь флешек, два SSD диска, полсотни BIN файлов прошивок, десяток ESPшек, два одноплатных микрокомпьютера, китайские хабы и километры витой пары категории 5E. Не то, чтобы это был необходимый запас для модернизации и увеличения памяти. Но если начал модернизировать, становится трудно остановиться. Единственное что вызывало у меня опасение — это роутер TP-Link TL-MR3020. Нет ничего более беспомощного, безответственного и испорченного, чем упоротые MR3020. Я знал, что рано или поздно мы перейдем и на эту дрянь.
Это продолжение, начало:
В роутере TP-Link TL-MR3020 мало памяти, и это его не одна, но основная проблема. Оперативной памяти всего то 64 МБ, а на самом деле еще меньше.
- С 2019 года прекращается поддержка устройств с 4 Мб флэш-памяти / 32 Мб ОЗУ (прошивка 19.07 последняя для этих устройств) А значит нам нужно больше 8МВ флеш памяти и больше 64МВ оперативной памяти. Старичок TP-Link TL-MR3020 V3 подходит под эти требования (у него 64МВ оперативной памяти и 8МБ флэш), но скажу сразу, это минимум и дополнительные пакеты у нас просто не влезут.
Поэтому будем ухлублять и расширять.
Программная часть
1.Подключаем роутер к сетевой плате компьютера патч-кордом.
2.Назначаем сетевой плате компьютера IP: 192.168.1.2, маску:255.255.255.0.
3.Зажимаем кнопку WPS на выключенном роутере и подключаем питание.
4.Считаем вспышки светодиодов. После пятой(!) вспышки отпускаем кнопку WPS.
5.Заходим браузером на 192.168.1.1:
6.Качаем подходящую сборку OpenWRT и обновляем основную прошивку:
Вот так выглядел тестовый стенд
Прочитав несколько обзоров уважаемого lolipop открыл для себе прошивку OpenWrt. Начал гуглить и узнал сколько всяких интересных проектов можно сделать на базе этой прошивки и роутера с USB разъемом.
В качестве примера увеличение памяти роутера TP-Link на примере TL-MR3220v2 используя память Winbond W25Q128.
Тем кому интересно прошу под кат.
Для начала захотел попробовать торрент качалку на внешний HDD который можно в любой момент отключить. Сразу же споткнулся о маленькое колличество памяти. Поиски решения привели к 2-м вариантам.
1)Покупка и использование USB хаба кому интересно здесь инструкция.
2)Увеличение установленной в роутере памяти.
Я решил идти по 2-му пути т.к. программатор есть, паяльная станция тоже.
Для этого на Ali была заказана память. Лот из 5 микросхем Winbond W25Q128. Ссылка на продавца в начале обзора. Отправил очень быстро. Дошло меньше чем за 2 недели.
Для любителей треков
Микросхемы пришли в стандартном желтом пакетике. Внутри еще один пакет в котором лежат все 5 микросхем обмотанный в дополнительный слой пупырчатого полиэтилена.
Микросхемы новые, следов пайки нет. На этом непосредственно обзор закончен и дальше будет практическое применение.
Так же будет использован программатор на CH431A на который было уже несколько обзоров. Заказан был здесь
И панелька для 25 серии. Заказана была здесь
Все что вы делаете дальше, вы делаете на свой страх и риск. Не делайте шаг который вы не понимаете.
Прошивка.
Прошивка состоит из 3-х достаточно больших частей.
1)Загрузчик
2)Непосредственно прошивка
3)Таблица калибровок радиомодуля Wi-Fi (art)
1.Загрузчик
Он нам нужен не простой а с поддержкой 16 мегабайтных флешек. В качестве загрузчика я использую U-Boot от pepe2k.
Много информации по загрузчику есть на странице проекта
Непосредственно здесь можно скачать загрузчик под определенные модели.
Здесь список памяти поддерживаемой загрузчиком U-Boot от pepe2k.
Под загрузчик у роутеров TP-Link отводится диаппазон адресов 0x00000000-0x00020000.
Это первые 128кб флеш памяти. При этом размер скачиваемого загрузчика 64кб. Это нормально, я в дальнейшем объясню что с этим делать.
2.Прошивка
Здесь самая я столкнулся с самой большой проблемой. Нашел инструкцию по которой следовало что для того чтобы прошивка увидела всю память необходимо пересобирать ее под себя. Компьютера с линуксом не имею поэтому я продолжил поиск и наткнулся на следующее объявление (не реклама).
В которой нашел ссылку на пачку уже пропатченных прошивок. Там некоторое количество моделей среди которых был необходимый мне файл.
3.Таблица калибровок радиомодуля Wi-Fi (art)
Про таблицу и необходимость ее считывать и записывать отдельно хорошо написано по ссылке
Там предлагается считывать таблицу в оперативную память и потом как-то скачивать backup оттуда например посредством SCP, только не этого а этого. Я буду делать немного по своему с использованием программатора.
Примеры
Для примера, каким диском пользуюсь я, купил самый дешевый адаптер USB - SATA с корпусом, вполне ничего.
У нас было 2 пакета коннекторов rj-45, четыре роутера, три адаптера USB-ATA, восемь флешек, два SSD диска, полсотни BIN файлов прошивок, десяток ESPшек, три одноплатных микрокомпьютера, китайские хабы и километры витой пары категории 5E. Не то, чтобы это был необходимый запас для настройки SSD диска. Но если начал настраивать, становится трудно остановиться. Единственное что вызывало у меня опасение — это роутер TP-Link TL-MR3020. Нет ничего более беспомощного, безответственного и испорченного, чем упоротые MR3020. Я знал, что рано или поздно мы перейдем и на эту дрянь.
Я стараюсь все очень подробно объяснить, показать и рассказать для того что бы каждая домохозяйка смогла управлять государством установить и пользоваться OpenWrt и программными продуктами.
Linux в каждый дом!
Моя реализация
Мною был найден UBoot, которому не нужна последовательная консоль.
Мною была написана программа, которая позволяет собрать прошивку без использования HEX-редактора.
Физическая часть
Разберемся что нам нужно.
Про стандарт "A" (Application Performance Class) для карт памяти MicroSD
Кстати недавно узнал, оказывается, есть еще карты памяти MicroSD с буковкой A2, пишут что это карты с контроллером, как у SSD дисков - то есть много и часто писать/читать мелкие файлы им не страшно. Но на самом деле все не совсем так, вот про стандарт вкратце
В 2016 году был принят стандарт Application Performance Class (обозначается буквой А)
- A1 - показатель IOPS (операций ввода/вывода в секунду) не ниже при чтении 1500, записи 500. Установившаяся скорость передачи данных не меньше 10 Мбайт/с.
- A2 - показатель IOPS не ниже при чтении 4000, при записи 2000. Установившаяся скорость передачи данных не меньше 10 Мбайт/с.
Стандарт создавался для применения карт памяти с Android-устройствами, а именно для расширения встроенной памяти Android-устройств. Обычные карты оптимизированы для работы с мультимедийными материалами и приложениями, но не предназначены для хранения программ. В этом же случае карта превращается в защищённый накопитель для приложений и игр. Представитель такой карты например: SanDisk Extreme
А теперь давайте вернемся к нашим дискам и примерам.
О uuid (индивидуальный номер диска)
Если вы еще раз посмотрите на код fstab, тот который был выше ( вот еще раз, ссылка ) то увидите, что примонтирован может быть любой диск который определился как dev/sda, но что делать если у вас паранойя! И вы думаете, что так каждый может взять и принести свой диск и его примонтировать, а вдруг там вирусы или еще чего похуже, мемасики например из интернета. На этот случай есть uuid это индивидуальный номер диска.
Узнать UID диска можно с помощью программы blkid, установив ее:
Теперь если вы впишите индивидуальный номер ваших дисков то уже ни один шпион не принесет поддельный, свой жесткий диск к вашему роутеру.
Номер для примера
Но вернёмся к нашим обычным настройкам, итак копируем мои настройки в fstab или изменяем под свои параметры.
Порядок действий
- 2. Жмем клавишу "I"
- 3. Вставляем код ( вот еще раз, ссылка )
- 4. Жмем ESC
- 5. Пишем :wq тем самым все записываем и выходим
Не забудьте переключится на английский алфавит на русском ничего не получится.
Эти настройки у нас активизируются при загрузке роутера, пока мы не перезагрузились ничего не поменялось.
Процесс замены
1.Выпаиваем родную флешку, считываем программатором и сохраняем в файл с именем 4mb.bin. Должен получится файл размером 4194304 байта.
2.Качаем программу и помещаем файл 4mb.bin в одну папку с MR3020FW.exe
3.Запускаем MR3020FW.exe:
Жмем «Собрать прошивку с ART». Программа вытащит калибровки ART из оригинального дампа и соберет файл final_16mb_with_ART.bin
4.Прошиваем файл final_16mb_with_ART.bin в новую флешку, проверяем записанное и впаиваем новую флешку в роутер.
2. free - информация о памяти
О использовании памяти в LInux, нам она интересна так как мы сможем посмотреть Своп (SWAP)
Добрый день,
Предлагаю Вашему вниманию мини обзор последовательной SPI флеш-памяти в корпусе SOIC8 от производителя Winbond размером 16Мбайт. В этом обзоре я опишу как с минимальными затратами усилий сделать апгрейд постоянной памяти роутера TP-Link TL-MR3020.
Формируем fstab
По умолчанию fstab пустой, но мы туда запишем информацию
Как видите файл состоит из отдельных частей, в данном случае их три
- config 'global' - это глобальные настройки
- config 'swap' - монтирование Swapа
- config 'mount' - Монтирование остальных дисков
Некоторые настройки понятны и так:
- option target '/mr3020' - название папки
- option device /dev/sda3 - что монтируем
- option fstype ext4 - файловая система
- option enabled '1' - включаем
Но некоторые совсем непонятны, давайте их разберем
Я убил исходную флешку! Что делать?
Если содержимое исходной флешки недоступно — программа соберет прошивку без калибровочных данных. Роутер будет полностью работоспособен за исключением wifi-интерфейса.
Создаем третий раздел
Все то же самое.
Вводим " n" создать раздел
Затем номер - номер раздела это 3 , или можно ничего не нажимать, по умолчанию и так будет 3 т. е. просто жмем "Enter"
Затем начальный сектор (First sector) - оставляем по умолчанию, просто жмем "Enter"
Конечный сектор - просто жмем "Enter" и распределяем все оставшееся место
P - смотрим что получилось
Обязательно жмем W!
W - тем самым закрепляем данные, записывая их в файловую таблицу
Это говорит нам, что изменена таблица разделов. И это есть хорошо
Для проверки опять набираем
Отлично все записалось в файловую таблицу
Мы разбили диск на разделы, но теперь их нужно отформатировать
Параметры раздела config 'global'
Создаем первый раздел
1. Вводим " n " (сейчас и далее буква или цифра без кавычек и нажимаем Enter) - тем самым создаем раздел
2. Вводим " 1 " - это номер раздела, первый
3. Затем начальный сектор (First sector) - оставляем по умолчанию, просто жмем "Enter"
4. Конечный сектор (Last sector) - +1G, Это значит что всего раздел будет 1Гб
Роутер и программа fdisk отчиталась:
Created a new partition 1 of type 'Linux filesystem' and of size 1 GiB.
Создан новый раздел 1 типа «Файловая система Linux» размером 1 ГБ.
Это хорошо, но мы не доверяем и посмотрим еще раз
Вводим " P" - и посмотрим, что получилось (1)
/dev/sda1 2048 2099199 2097152 1G Linux filesystem
Все отлично, но строчка " Linux filesystem " нам не нравится(!) мы же создаем Swap раздел поэтому.
Набираем " t" - вводим 82, "Enter" Тем самым, цифрой 82 говорим роутеру что создаем " Swap"
Так было раньше, но сейчас fdisk версии 2.34 по "L" после "T" выдает что: "Linux Swap" это 19, а 82 стало "VMware Virtual SAN"
В интернете я не нашел упоминание о изменения кодирования файловых систем в Linux, что это вообще такое, или я что то не понимаю? Ладно продолжим.
Поэтому набираем " t" - вводим 19, "Enter" Тем самым, цифрой 19 говорим роутеру что создаем " Linux swap"
И опять "P" - и смотрим что получилось
Утилиты для получение информации о памяти и дисках
Прогоним еще несколько утилит, а именно две, для того что бы было потом с чем сравнивать.
Диски для ПК делятся
По месту расположения
По разъемам
- SATA
- mSATA
- M.2
- Слот PCI-E
- PATA (IDE) (устаревший)
- SCSI (устаревший)
Форм фактор
- USB 2.0
- USB 3.0
- M.2 (делятся по длине: 2240, 2260, 2280)
- 2,5 дюйма
- 3,5 дюйма
Протоколы передачи данных
По способам хранения информации
Классификация еще больше, но тут обозначены самые основные типы.
Итак нам обязательно нужен внешний жесткий диск с интерфейсом USB 2.0, можно попытаться использовать 3,0, но в этом нет никакого смысла, быстрее работать не будет, а стоит он дороже. У меня кстати с USB 3,0 почему то вообще не заработало. Поэтому, лучше всего использовать самый дешевый диск или адаптер диска USB 2.0 - ATA.
fdisk
Закончили мы на fdisk, а именно на fdisk -l
Теперь мы работаем с Disk /dev/ sda именно с каталогом sda
Тем самым говорим роутеру что работаем сейчас с нашим диском sda
Роутер выдает вот такое предупреждение
Welcome to fdisk (util-linux 2.34). Changes will remain in memory only, until you decide to write them. Be careful before using the write command.
Ок. Мы прочитали, осознали и готовы работать!
Начинаем создавать разделы.
Редактируем файл fstab.
Что это за файл и зачем он нам нужен?
Файл fstab - это текстовый файл в котором хранится информация о устройствах хранения информации в вашем компьютере, другими словами так хранится информация о нашем диске (флешке). А еще подробнее, мы должны указать, примонтировать наши диски (их три) таким образом при загрузке роутер будет знать что они есть и считывать и записывать туда информацию.
Для того чтоб отредактировать текстовый файл мы должны это сделать через текстовый редактор, по умолчанию установлен текстовый редактор vi , но многим он не нравится и вы можете установить не менее известный текстовый редактор nano, по умолчанию он не установлен. Мы же будем редактировать через vi так как у нас мало памяти (хотя для nano хватит)
файл fstab находится по адресу /etc/config/fstab
Загружаем его в vi вот так
1. df - информация о диска
df - утилита предоставляет нам информацию о дисках в системе
-h - выводит размеры в читаемом виде, в мегабайтах или гигабайтах
На скриншоте ниже мы видим что все в мегабайтах, а не в гигабайтах как у нас забито, но еще не применилось.
Герой обзора
Пришла в отрезке ленты:
Она же без упаковки:
Идентификаторы:
Это продолжение, начало см. ссылки в конце странички
Необходимые инструменты и материалы
Паяльник, флешка, роутер и программатор CH341A.
Напомню в статье используются:
Работа с редактором VI
- :q! Выход без сохранения (так и набираете сначала двоеточие, потом q, затем ! знак и Enter и вываливаетесь в корневой каталог)
- Клавиша "I" режим редактирования
- ESC - выход из режима редактирования.
- :wq - выход с сохранением
Теоретические изыскания
Я провел поиски в Сети и нашел несколько вариантов расширения памяти роутера. Все они задействуют альтернативный загрузчик UBoot, требуют работы в HEX редакторе с пониманием происходящего и пайки консольного вывода к USB-TTL переходнику и работы в консоли.
Зачем?
Мне понадобился компактный роутер на базе Atheros с большим объемом ROM, чем предлагают производители. В частности, мне нужно было место для нескольких пакетов, чтобы организовать APRS шлюз. Обычно в таких случаях используют внешнюю USB флеш память, но мне этот вариант не подходил, так как создавал проблемы с надежностью и занимал единственный USB-порт роутера.
Что нужно?
Все просто, возьмём фен, предварительно приготовим новую микросхему памяти, сдуем старую и накатаем новую . Э, нет! Так мы делать не будем! Это очень сложно, нудно и с неопределенным результатом
Но нам обязательно понадобится порт USB и он у нас есть! К нему мы будем подключать внешние носители информации, давайте разберемся какие
А вообще что мы можем подключить из носителей информации:
- USB флешки;
- USB адаптер с картами памяти SD и MicroSD (ну это почти как флешки);
- Различные жесткие диски
Можете подключить все это, но помните, что к сожалению, на интенсивный обмен информации сегодняшние флешки и SD карты не рассчитаны. Это касается записи. И если вы установите программное обеспечение которое активно ведет запись на носитель информации, а например активно пишет все что имеет дело с базами данных, это всё программы "Умного дома", например Domoticz, в этом случает флешка долго не проживет. У меня флешки и SD карты с умным домом жили не более 2-4 недель, потом безвозвратно дохли.
Использовать флешки для расширения памяти роутера не самый лучший вариант, так как они не предназначены для активного обмена и формации и в основном не предназначены для активно записи. Лучше использовать жёсткие диски (HDD и SSD)
Вот на жестких дисках остановимся подробнее. Напомню какие они бывают
Форматируем
На нашем роутере нет пакета (программы) для форматирования диска, называется он "e2fsprogs" , его нужно установить
Можно установить как мы раньше устанавливали через терминал
А можно через LuCI, ничего сложного в этом нет
Идем в WEB интерфейс роутера System>Software,
1) затем жмем на "Update lists. " выскочит такое окно, это значит все хорошо.
Жмем на "Dismiss"
2) Вбиваем пакет который хотим установить, "e2fsprogs", ентер.
4) Жмем "Install. " и все
Вот по пунктам что надо делать
Еще возникнет окно
С вопросом: "Overwrite files from other package(s)". Перезаписать файлы из других пакетов? Вы можете не ставить галочку. а просто жать "Install" Через некоторое время пакет установится.
о вернемся в командую строку, вбиваем или копируем
Создали раздел подкачки
mkfs - создаёт новую файловую систему Linux
через точку тип файловой системы, у нас ext4
-L - указывает какую метку диска присвоить
Последний диск будет форматироваться подольше там больший объем.
Создаем второй раздел
Все то же самое только без Swap раздела
Вводим " n" создать раздел
Затем номер - номер раздела это 2, или можно ничего не нажимать, по умолчанию и так будет 2 т. е. просто жмем "Enter"
Затем начальный сектор (First sector) - оставляем по умолчанию, просто жмем "Enter"
Конечный сектор - +1G
"P" - смотрим что получилось
Читайте также: