Выбранный файл не является образом программного обеспечения dir 300

Обновлено: 07.07.2024

Купила новый телефон. При подключении к инету дома вай-фай, вылазит ошибка аутентификации или пишет просто "сохранено". Иногда инет подключается, но потом отключается. Иногда работает весь день, а иногда весь день пытаюсь подключить. Другие смартфоны инет ловят быстро и не скачет. А вот пришла к сестре со своим телефоном домой и ее инет подключился сразу и ни разу не отвалился. Гуглила и думаю, что мой телефон конфликтует именно с моим домашним инетом. Как наладить их связь? Что то там защиту надо в роутере настроить может..ну это я в гугле прочитала) сама пыталась..но..видимо руки не от туда))
Программа вай фай фиксер проблему не решила
была похожая проблема,на каком канале работает роутер?

guzhva (28.08.2016 - 19:34) писал:

была похожая проблема,на каком канале работает роутер?

Помню цифру 6. Меняла. Не помогло

роутеру сколько времени,недавно мучился тож со старыми дир-300,пока не купил новый

guzhva (28.08.2016 - 20:04) писал:

роутеру сколько времени,недавно мучился тож со старыми дир-300,пока не купил новый

Много лет. Неужели только замена роутера решит проблему? Другие смарты работают отлично с моим инетом

Jamelia (28.08.2016 - 19:00) писал:

Что то там защиту надо в роутере настроить может..ну это я в гугле прочитала) сама пыталась..но..видимо руки не от туда))
Программа вай фай фиксер проблему не решила

Порой достаточно выключить и включить роутер. Если есть желание поковыряться то можно вначале отключить всю защиту и проверить. Возможно прошить роутер чтоб поддерживал все протоколы
Никогда не говори: "Я ошибся", лучше скажи: "Надо же, как интересно получилось. " Там урезанный linux на борту, надо по идее анализировать журналы, причины могут быть разными
[Удалено администрацией. Нарушение п.16 Правил форума]

Житель Перми (28.08.2016 - 20:30) писал:

Порой достаточно выключить и включить роутер. Если есть желание поковыряться то можно вначале отключить всю защиту и проверить. Возможно прошить роутер чтоб поддерживал все протоколы

Конечно же я уже выключала и включала, пароль проверяла, перезагружала все, что только можно. Нет результата. А как отключить защиту?

mihrack (28.08.2016 - 21:33) писал:

Это не сложно? Потом надо будет настройки по новой делать?

Jamelia (28.08.2016 - 21:35) писал:

Это не сложно? Потом надо будет настройки по новой делать?

mihrack (28.08.2016 - 21:33) писал:

Старые ревизии роутера не поддерживаются длинком уже давно, владел ревизией с1. При прошивке есть шанс получить нерабочее устройство.

Jamelia, сообщите что за версия роутера у вас (на наклейке сзади после слова rev/version).


Одна из последних моделей роутеров D-Link, а именно DIR-300 C1 помимо прочего известна тем, что не у всех получается обновить прошивку этого роутера. При заходе в веб-интерфейс настройки беспроводного маршрутизатора DIR-300 C1 и попытке установить файл новой прошивки в разделе «Обновление ПО», по завершении процесса версия программного обеспечения роутера остается той же самой. В этой инструкции прошивка DIR-300 C1 будет рассмотрена максимально подробно, от начала и до конца.

Загрузка необходимых файлов с официального сайта D-Link

После того, как Вы это сделали, подключите роутер к Вашему компьютеру с помощью провода, а не по Wi-Fi и, желательно, на время перепрошивки отключите кабель провайдера от него. Таким образом, у Вас должна получиться следующая конфигурация: разъем сетевой карты компьютера или ноутбука соединен проводом с одним из портов LAN на DIR-300 C1, роутер включен в розетку.

Также проверьте настройки LAN подключения на компьютере. Рекомендуется, чтобы параметры получения IP адреса и адреса DNS сервера были установлены в «Автоматически».

Использование программы Click’n’Connect для прошивки роутера

Распакуйте загруженный с сайта D-Link архив и запустите находящийся в нем файл dcc.exe — запустится утилита для настройки роутера D-Link Click’N’Connect^

Однако, на этом не все. Несмотря на то, что на роутер была установлена новая прошивка, она не является последней и безотказно работающей. Тем не менее, благодаря этому действию, мы теперь можем установить последнюю прошивку роутера, используя для этого стандартные средства веб-интерфейса.

Прошивка DIR-300 C1 через веб-интерфейс

Не отключая роутер и не подключая к нему новых проводов, зайдите в панель настроек роутера, для чего:

  1. Введите в адресную строку браузера адрес 192.168.0.1
  2. На запрос логина и пароля для входа в настройки введите: admin и admin соответственно

Следующее, что нужно сделать — это внизу страницы настроек роутера нажать «Расширенные настройки», затем, в пункте «Система» нажать имеющуюся там двойную стрелочку «влево» и выберите ссылку «Обновление ПО».

Прошивка DIR-300 C1 через веб-интерефейс

На открывшейся странице, предназначенной для обновления программного обеспечения роутера, нажмите кнопку «Обзор» и укажите путь к файлу последней прошивки .bin, который мы загружали ранее и нажмите кнопку «Обновить».

Прошивки DIR-300. Пошаговая инструкция

Прошивки DIR-300 имеют не так много отличий от предыдущих версий устройства. Поэтому пользователей довольно часто интересует вопрос, связанный со скачиванием данной прошивки. Где скачать такую прошивку? Как нужно правильно использовать обновленный веб-интерфейс?

На самом деле можно просто изучить детальную инструкцию. После этого вы сможете легко выполнять все операции самостоятельно. Теперь давайте рассмотрим, как можно правильно скачать прошивку DIR – 300 самой последней версии.

Как скачать?

Необходимо сразу отметить, что данная инструкция будет работать только для тех маршрутизаторов, у которых присутствует внизу надпись H/W: D1. В противном случае вам нужно будет использовать другую прошивку DIR – 300. Прежде чем приступить к процессу установки программного обеспечения, необходимо будет скачать файл прошивки с официального сайта.

На сайте необходимо открыть папку pub-Router-DIR-300-Firmware. Необходимо также обратить внимание на тот факт, что в данной папке имеется несколько каталогов с таким названием. Между собой они отличаются только символами подчеркивания. В данном случае, если вы купили роутер в 2015 году или, то вам нужно будет выбрать прошивку DIR-300, которая имеет окончание A_D1. В этой папке вы сможете найти самые последние версии прошивок, которые предназначены для маршрутизатора. На начало 2015 года последней версией была 2.5.11.

Подготовительный этап

Если пока вы не подключили маршрутизатор и ранее вам не приходилось заниматься подобными процедурами, то вам придется выбрать целый комплекс операций перед прошивкой роутера DIR-300. Прежде всего нужно подключить кабель роутера к персональному компьютеру. Данный кабель в большинстве случаев имеется в стартовой комплектации роутера.

Один конец данного провода подключается к сетевой карте, а второй к разъему LAN 1 на роутере. В случае, если на вашем персональном компьютере нет сетевого порта, то устройство можно подключить через Wi-Fi. Далее нужно подключить к роутеру питание. Если вы собираетесь прошить роутер по беспроводному соединению, спустя некоторое время должна будет появится сеть DIR-300 без защиты пароля. Вам нужно будет подключиться к этой сети. После этого запустите любой удобный браузер.

В адресной строке наберите комбинацию 192.186.0.1. Если страница не откроется, вам нужно будет проверить, чтобы в характеристиках используемого подключения в разделе «Свойства протокола TCP/IP» возле пункта «Получать IP и DNS автоматически» стояла галочка. После того как система запросит у вас логин и пароль, введите «admin».

Также следует заметить, что при первом входе система попросит вас сменить стандартный пароль. Если вы решите поменять его, то не забудьте, какую комбинацию вы использовали. Иначе настройка роутера DIR – 300 будет заблокирована. Если данный пароль не подойдет, то скорее всего его уже меняли раньше. В данном случае необходимо будет сбросить характеристики роутера с помощью кнопки Reset. Она находится в задней части роутера. После этого необходимо снова выполнить настройку роутера DIR 300. Если все описанные выше манипуляции были выполнены успешно, можно приступать к следующему этапу.

Прошивка

В зависимости от того, какая версия прошивки на данный момент присутствует на используемом вами устройстве, после входа отобразиться один из возможных вариантов интерфейса. На этот момент следует обратить особое внимание.

1. Серый интерфейс. Данный фон характерен для версии прошивок 1.0.4 и 1.0.11. В этом случае необходимо будет проделать следующие процедуры. Зайдите в категорию «Расширенные настройки», которая находится в нижней части экрана. При необходимости вы можете переключить язык интерфейса, используя кнопку Language. Она находится в верхней части страницы.

Далее необходимо выбрать графу «Система» и нажать на двойную стрелку вправо. После этого нужно выбрать пункт «Обновление программного обеспечения». Затем нужно выбрать файл прошивки, ранее закачанный с официального сайта. После этого нажмите на кнопку «Обновить». Далее необходимо будет выждать определенное время прежде, чем прошивка DIR – 300 будет завершена. Если вам покажется, что компьютер полностью завис или страница будет иметь статус «Не отвечает», не паникуйте. В дальнейшем мы рассмотрим, как можно устранить данную проблему.

2. Белый интерфейс. Белый цвет интерфейса характерен для версии 2.5.11 и 2.5.4 и последующих вариантов. В этом случае для обновления прошивки, необходимо будет выполнить следующую последовательность действий. Прежде всего необходимо выбрать «Система» в левой части меню. После этого нужно нажать на пункт «Обновление программного обеспечения».

Стоит также учитывать, что при необходимости для обеспечения удобства работы с интерфейсом можно будет переключить язык, используя кнопку, расположенную в верхней части экрана. Далее нужно перейти к разделу «Локальное обновление». Нажмите на кнопку «Обзор» и найдите нужный файл прошивки, который ранее был загружен вами на компьютер. После этого нажмите «Обновить». Через некоторое время ваш DIR-300 обновится. Подключение к Wi-Fi будет настроено. Вы сможете использовать интернет.

Что делать в том случае, если все зависло?

В процессе установки обновления устройство может зависнуть. При этом в интернет-браузере все время будет двигаться полоса прогресса или страница будет недоступна. Такая ситуация может наблюдаться в том случае, если в процессе обновления прошивки была потеряна связь ПК с роутером. В этом случае необходимо будет подождать некоторое время, а после этого снова подключиться к устройству и войти в настройки. Здесь можно увидеть, успешно ли прошло обновление прошивки. Если у вас есть некоторый опыт настройки роутеров данного производителя, то можно приступить к определению параметров данного устройства на компьютере. Те же принципы используются в DIR 300. Ниже приведена инструкция для тех пользователей, у которых нет опыта в проведении подобной настройки.

Как осуществляется настройка?

Многие пользователи считают, что настройка роутера представляет собой довольно сложный процесс. Однако на самом деле нет ничего особенного в том, чтобы правильно настроить роутер. Потребуется всего 10 минут времени, а также грамотный подход. Как подключить устройство? Прежде всего вам нужно подключить устройство к сети. Для этого необходимо на обратной стороне роутера вставить кабель интернет – провайдера в желтый порт Internet. Он был представлен вам в процессе установки. Один из LAN разъемов необходимо подключить к сетевой карте вашего компьютера. Также стоит отметить тот факт, что проводная настройка DIR-300 является наиболее удобной.

Прошивка

WRT и прочие вариации позволяют выполнить прошивку при использовании беспроводного режима через телефон или планшет. Однако проводной режим все же является одним из наиболее удобных. После этого подключите роутер к розетке. Не торопитесь подключаться к интернету через него при помощи беспроводных устройств. Если у вас имеется ТВ-приставка, вы можете подключить ее к порту LAN, однако специалисты рекомендуют делать это после завершения настройки оборудования. Это важно, поскольку в некоторых ситуациях приставка может мешать нормальной настройке.

Как зайти в меню настроек?

Следует также рассказать об одной распространенной ошибке современных пользователей. Сеть в процессе настройки и после нее находится в активном подключении. Необходимо предварительно разорвать текущее соединение, если оно было запущено на персональном компьютере или ноутбуке. После этого не нужно подключать его до тех пор, пока настройка не будет окончательно завершена. Роутер самостоятельно будет устанавливать связь и осуществлять раздачу Интернета на различные устройства.

Необходимо запустить любой интернет браузер и ввести в адресной строке 192.168.0.1. Появится окно с запросом логина и пароля. В оба поля необходимо ввести слово «admin». Этот логин и пароль по умолчанию используется в стандартном интерфейсе данного роутера. Что делать, если при вводе данного логина и пароля не получается получить доступ? Если система после ввода этих данных снова перенаправит вас на страницу ввода, это может означать только одно: кто-то изменил настройки роутера, сменив стандартный пароль.

Его просят сменить при первом входе. Иногда бывает так, что его вспомнить не получается. В этом случае выход только один: необходимо сбросить устройство к стандартным настройкам. Для этого необходимо нажать на кнопку Reset, которая находится на задней части корпуса. Кнопку нужно не просто нажать, а зажать в течении 15-20 секунд.

Как выполнить настройку?

После ввода логина и пароля у вас будет отображена главная страница интерфейса роутера. Здесь присутствуют все настройки, где ранее проводилось обновление DIR-300. Нажмите внизу страницы «Расширенные настройки». При необходимости можно изменить настройку языка. После этого необходимо перейти к пункту «Сеть» и выбрать параграф WAN. Перед вами откроется список подключений, где вы сможете увидеть единственное активное подключение. Его нужно открыть. Параметры подключения должны быть следующими:

Остальные параметры специалисты советуют не трогать и оставлять выбранными по умолчанию. Лучше не пытаться их менять, если вы не являетесь квалифицированным специалистом. Когда все настройки будут выставлены, нажмите на кнопку «Изменить». Вас снова перебросит на страницу с списком доступных подключений. Обратите внимание на индикатор, который расположен справа вверху экрана. Нажмите на него и выберите пункт «Сохранить». Это позволит вам сохранить выполненные настройки роутера в памяти.

Таким образом, параметры не сбросятся при отключении питания. Если вся информация будет введена правильно, а на самом компьютере будут введены активные подключения L2TP, то при обновлении страницы веб-браузера вы увидите, что на компьютере появилось соединение с доступом к интернету. Осталось только выполнить настройку основных параметров безопасности. Если выражаться точнее, нужно поставить для роутера какой-нибудь сложный пароль. В качестве пароля лучше использовать сложную комбинацию, чтобы другие пользователи не могли подключиться к вашему интернету. Можно использовать для этой цели специальный генератор паролей или составить свою комбинацию из цифр и букв.

Запись опубликована 16.10.2015 автором katrinas11 в рубрике Моя жизнь. Отблагодари меня, поделись ссылкой с друзьями в социальных сетях:

В статье пойдет речь о установке OpenWRT и дальнейшей пляске с бубном (да, да, да, ежемесячно или даже еженедельно кто-то пишет про установку OpenWRT, но у каждого возникают свои заморочки).

  • Dir-300 NRU B7;
  • Желание прикрутить USB 2.0;
  • Желание пощупать OpenWRT.

image

image

1. Начнем с USB

Почитав даташит на чип RT-3050, понял, что можно запустить USB 2.0, но для этого нужно впаять резистор на 8,2 КоМ. Серфинг привел на статью Установка антенны и распайка USB. Однако в ней не было точного описания техпроцесса и возможных альтернатив решения поставленной цели.

В комментариях появилась ссылка на подробный техпроцесс по прикручиванию USB. Изучив обе статьи, я приступил к паяльным процедурам.

  • Конденсатор — 6.3V 1000мF
  • Резистор — 8,2 КоМ
  • Керамический конденсатор подходящий по размеру в место пайки.
  • Резистор 3шт. — 0 оМ (перемычка) — обошелся свинцовыми соплями.
Места пайки элементов видно на фото (фото из статьи ''Прикручиваем USB'')

image

image

image

image

image

image

(Гуру пайки и мастера работы с фотоаппаратурой, попрошу без комментариев о том, какой автор криворук и прочее, трясущиеся руки с детства и подозрение на Паркенсон думаю достаточный довод не язвить.)

Запаяли, закрутили,
Скотчем порт мы прилепили,
Прошу от кинетик загрузили,
Радость от процесса получили.

Итог: залил прошивку от кинетика 3г (точно не помню, но какое-то зюкселевкое бррр), через аварийный режим.

Зажать reset и подключить питание, роутер загрузиться в аварийном режиме и будет доступен или по 192.168.0.1 или 192.168.1.1
Будет кнопка выбора файла прошивки. Прошивку будет заливать без проверки на валидность и прочее, будьте бдительны

Порадовался успеху и новой прошивке, но понял что надо лить OpenWRT.

Вот тут, как говориться, пришел медведь. Запускаю роутер в режим аварийной загрузки, а фиг там — прошивка изменила бут и не грузит предыдущий бутлоадер. Ну, думаю, приехал.

Полазив по настройкам и почитав форумы, понял, что мне надо ставить пакеты для поддержки USB. С радостью полез в «Программное обеспечение» и понял что кердык: места хватает только для «block mount».

2. OpenWRT, готовое решение, сборка из исходников и танцы с бубном для установки забытого

Почитав многочисленные статьи про установку OpenWRT и сборку из исходников, понял, что для того, чтобы запустить USB на DIR-300, желательно собрать прошивку из исходников, убрав все лишнее. И если я прикручиваю USB, то есть смысл сразу перенести систему на флешку.

За основу взяты статьи: раз, два и три.

Поставил виртуалку с убунтой 12, обновил репозиторий и понеслась.

sudo apt-get install subversion git
sudo apt-get install g++ libncurses5-dev zlib1g-dev gawk libssl-dev

/wrt
./scripts/feeds update -a
./scripts/feeds install -a

/wrt$ make prereq

Конфигурируем прошивку под себя:

Target System — Ralink RT288x/RT3xxx
Subtarget — RT3x5x/RT5350 based boards
Target Profile — Default Profile

Далее выбираем нужные модули и плюшки.

Global build settings
[ ] Enable IPv6 support in packages

Base system --->
<*> block-mount

Base system
busybox
Networking utilities
[ ] Enabled IPv6 support

Kernel modules
Netfilter Extensions
[ ]kmod-ip6tables

Kernel modules
Network support
[ ] kmod-ipv6

Kernel modules --->
USB Support --->
<*> kmod-usb-core
<*> kmod-usb-ohci
<*> kmod-usb-storage
<*> kmod-usb-usb2

Kernel modules --->
Filesystems --->
<*> kmod-fs-ext4

Libraries
Firewall
< > libip6tc

LuCI --->
1. Collections --->
<*> luci
5. Translations --->
<*> luci-i18n-russian

Network --->
<*> ppp
<*> ppp-mod-pppoe
<*> ppp-mod-pppol2tp
<*> ppp-mod-pptp

Нажимаем Exit, сохраняем конфигурацию и собираем прошивку.

make V=99
(Если будете собирать под локально установленной убунтой можно добавить параметр "-j3" если у вас 4 ядра на проце, ускорит процесс сборки «make -j3 V=99»)

/wrt/bin" и ищем «openwrt-ramips-rt305x-dir-300-b7-squashfs-sysupgrade.bin». Заливаем прошивку и радуемся.

Подключаем флешку и настраиваем загрузку OpenWRT с флешки

Итак, прошили «openwrt-ramips-rt305x-dir-300-b7-squashfs-sysupgrade.bin». Подготавливаем флешку: из убунты форматируем и приводим в к следующему виду (можно и в акронисе, на вкус и цвет фломастеры разные):

image

Далее подключаем флешку к роутеру, подключаемся по ssh и вводим «dmesg | grep sda». Должно вывести следующее:

[ 5069.910000] sd 0:0:0:0: [sda] No Caching mode page present
[ 5069.920000] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 5069.920000] sda: sda1 sda2 sda3
[ 5069.930000] sd 0:0:0:0: [sda] No Caching mode page present
[ 5069.940000] sd 0:0:0:0: [sda] Assuming drive cache: write through

config global
option anon_swap '0'
option anon_mount '0'
option auto_swap '1'
option auto_mount '1'
option delay_root '5'
option check_fs '0'

config mount
option uuid «здесь ваш UUID»
option device '/dev/sda1'
option fstype 'ext4'
option options 'rw,sync'
option enabled '1'
option is_rootfs '1'
option enabled_fsck '0'
option target '/overlay'

config mount
option target '/home'
option uuid «здесь ваш UUID»
option device '/dev/sda2'
option fstype 'ext4'
option options 'rw,sync'
option enabled '1'
option enabled_fsck '0'

config swap
option uuid «здесь ваш UUID»
option enabled '1'

Используя UUID, мы точно будем уверенны что загрузимся с нашей флешки, если подключим 2 флешку или внешний винт и прочее.


После, осуществляем процесс переноса системы на флешку.
mkdir /mnt/sda1
mount /dev/sda1 /mnt/sda1
mkdir /tmp/cproot
mount --bind / /tmp/cproot
tar -C /tmp/cproot -cvf — . | tar -C /mnt/sda1 -xvf — sync; umount /mnt/sda1
umount /tmp/cproot

Перегружаем роутер и проверяем все ли правильно примонтировалось

Filesystem Size Used Available Use% Mounted on
rootfs 476.2M 16.2M 431.0M 4% /
/dev/root 2.5M 2.5M 0 100% /rom
tmpfs 14.4M 628.0K 13.8M 4% /tmp
/dev/sda1 476.2M 16.2M 431.0M 4% /overlay
overlayfs:/overlay 476.2M 16.2M 431.0M 4% /
tmpfs 512.0K 0 512.0K 0% /dev
/dev/sda2 368.7M 2.0M 343.2M 1% /home


У меня все прошло без геморроя, так что если у вас возникли проблемы и роутер не грузится, вытащите флешку, отформатируйте и попробуйте по новой.
Если необходимо все сбросить на ноль, то вводим:
mtd -r erase rootfs_data

Радуемся: система стартует с флешки и теперь можно ставить хоть какие пакеты, не задумываясь о нехватке места.

По поводу свопа: если подключите внешний винт, то имеет смысл перенести его в начало, т.к. там наиболее быстрая область; для флешки в конец, чтобы не сдохла быстро.

Все вышесказанное — ИМХО.

Захотелось, чтобы OpenWRT могла использовать сетевые шары, ну так, на всякий случай. Почитав статью из Вики проекта, решил установить следующие пакеты:
opkg install kmod-fs-cifs kmod-nls-utf8 kmod-nls-base kmod-crypto-hmac kmod-crypto-md5 kmod-crypto-misc cifsmount

Но система меня послала, начав ругаться на несоответствие ядра пакета и ядра установленной OpenWRT. Выходом стала пересборка прошивки, включив необходимые пакеты. Сделал и приуныл. Прошивка весила практически 5 метров, она физически не помещалась в роутер т.к. там 4 метра. Конечно, можно было перепаять флеш, но у меня нету под рукой ни программатора, ни нужной флешки, ни паяльной станции. Была мысль распаковать прошивку сразу на флешку, но отказался от этой идеи, ибо руки болели от постукивания в бубен. Но главное — после компиляции прошивки на 5 метров пакеты уже были собраны и лежали тихо-мирно в папке «packages». Скопировал нужные пакеты на флешку и прописал:
opkg install /home/kmod-crypto-misc_3.10.49-1_ramips_24kec

И тут меня ждал облом, установщик ругался на неправильную контрольную сумму. Курение мануалов и форумов дало следующее решение:
opkg install --nodeps --force-checksum /home/kmod-crypto-misc_3.10.49-1_ramips_24kec

Ура пакет установился без каких-либо ошибок. Пакеты, которые нужны для работы cifs:
kmod-fs-cifs — поддержка файловой системы
kmod-nls-utf8 — поддержка кодировки
kmod-crypto-misc — то же за чем-то надо )))
cifsmount — набор утилит для работы через mount -t cifs (без него у меня жаловался на неправильные аргументы)

Данные пакеты уже были установлены в системе, видимо, kmod-fs-ext4 их подтянул как зависимости:

kmod-nls-base
kmod-crypto-hmac
kmod-crypto-md5

mount -t cifs -o rw,guest,iocharset=utf8 //192.168.0.2/d /mnt/h0mikus_D


Русский понимает, и это радует. Но остался вопрос: когда роутер ребутнется, то шара не примонтируется. Почитав форумы, думал прописать в fstab конструкцию монтирования шары, но вспомнил что Linux грузит файловые системы и прочее раньше сетевых интерфейсов. В итоге «rc.local» решил данную проблему.

mount -t cifs -o rw,guest,iocharset=utf8 //192.168.0.2/d /mnt/h0mikus_D/

</spoiler
На этом все. Статья писалась в помощь для незнающих и как памятка для себя. Если где-то есть ошибки по тексту и прочее, тапками не кидаться, а ткнуть носом. Если стиль написания кривой и читать невозможно, подскажите как правильнее.

Читайте также: