
В очередной раз просматривая объявления о продаже компьютерной техники и всяческой электроники наткнулся на интересного зверя - корпоративный файрвол CheckPoint T-120. Быстренько погуглив, нашел технические характеристики этого устройства. Вот они:
Intel Atom D525 1.80GHz Dual-Core;
оперативная память 4 GB (DDR2);
4 x 10/100/1000Base-T RJ45 ports;
250 гигабайт жесткий диск (SATA).
Очень даже неплохо, особенно учитывая то, что эта покупка обошлась мне в 4000 тенге, сейчас это чуть меньше $10. Заинтересовала эта железка тем, что внутри почти полноценный компьютер на базе процессора с пассивным охлаждением, крепкий блок питания, памяти достаточно. Единственное, там нет выхода на монитор/клавиатуру. Но есть консольный порт (RS232, разъем правда RJ45). Еще один аргумент к покупке - это то, что на него смогли установить pfSense. В этом случае теоретически можно и другой роутерный софт установить. Душа у меня лежит к OpenWRT. Его и будем ставить.
Консольный Кабель. Теперь вопрос с контролем процесса установки и вообще "Главный вопрос жизни, вселенной и всего такого". Фирменного кабеля - нет, Гугл подсказывает что можно использовать кабель Cisco, которого у меня тоже нет, купить - это совсем плохая идея, стоит как чугунный мост, с АлиЭкспресса - ждать долго. Выход один - паять! Достаем ЭПСН-25 и... Идем в гараж/кладовую/склад и берем оттуда кабель для подключения телефона Ericsson к компьютеру через RS232 и патч-корд RJ45. Фирменный кабель содержит 8 проводов, а в кабеле для телефона всего 5, отсутствуют провода CTS/DCD/DSR. Внизу распиновка фирменного кабеля.

Фирменный кабель Cisco.

За всю свою сознательную жизнь на практике я не встретил консольного кабеля, который использует больше, чем RXD/TXD/GND. Была не была, собираем простой кабель по следующей схеме.

Кабель спаяли.

И подключаем его через переходник USB to RS232 к компьютеру.

Проверка работы кабеля. Подключаем все это хозяйство к компьютеру, настраиваем параметры порта: Baud rate = 9600 bps, Data bits = 8, Parity = None, Stop bits = 1, Flow Control = None. Включаем роутер и видим в терминале процесс начальной инициализации (BIOS) и загрузки этого убер девайса.
Установка OpenWRT. Теперь мы будем ставить на этот роутер OpenWRT. Ну как ставить ? Его прошивают либо в флеш-память роутера, либо на жесткий диск или на карту памяти.
Для этого нужно скачать сборку OpenWRT под процессор x86, тип сборки Combined-Ext4. Такая сборка необходима для того, чтобы потом изменить размер разделов на карте памяти/жестком диске.
В кладовых у меня есть пару видов переходников SD Card to SATA, CF Card to SATA. Почему то, SD Card to SATA не всегда определяется BIOS-ом как диск. Используем CompactFlash.

Используем переходник для установки 2.5" жестких дисков вместо 3.5". Немного винтиков и болтиков М3 и получаем такую конструкцию.


Установка OpenWRT на карту памяти. Хорошее руководство можно найти здесь. У нас 64-х битный процессор, и как я упоминал выше, нужна сборка Combined-Ext4, вот ссылка на текущий стабильные билды.
Скачиваем образ, распаковываем архив и записываем на карту памяти файл *.img. В Линуксе - это можно сделать примерно так:
# Unpack image gunzip openwrt-*.img.gz # Identify disk (to replace sdX in the following command below) lsblk # Write image dd if=openwrt-21.02.0-x86-64-generic-ext4-combined.img bs=1M of=/dev/sdX
Далее мы вставляем карту памяти CompactFlash в переходник, устанавливаем в роутер и собираем все.

Через сетевой порт Lan1 подключаем к компьютеру или сети, Console - через самодельный кабель к компьютеру. Если после включения питания через некоторое время в окне терминала побежит вывод загрузки системы, значит Вы все сделали верно и все работает как нужно. Да, кстати, нужно сменить скорость терминала на порту на 115200, все остальные параметры без изменений.

Первоначальная настройка OpenWRT. Подключаемся к веб-интерфейсу OpenWRT. IP/mask по умолчанию 192.168.1.1/24, пароль - по умолчанию пустой. Рекомендую сразу поменять пароль администратора. Затем необходимо донастроить сетевой интерфейс - гейт по умолчанию и DNS сервера. Иначе Вы не сможете установить нужные пакеты для изменения разделов.
Теперь мы можем изменить разделы установленного OpenWRT. По умолчанию размеры следующие:
/dev/sda1 is a 16MB ext4 /boot partition where GRUB and the kernel are stored. /dev/sda2 is a 104MB partition containing the squashfs root filesystem and a read-write f2fs filesystem OR the ext4 root filesystem (depending on what image you have chosen).
Подключаемся через SSH. Процесс изменения разделов очень хорошо описан в руководстве. Сначала необходимо изменить размер Partition, затем размеры в файловой системе.
Изменение разделов/размеров.
Установить fdisk.
Запустить fdisk и посмотреть разделы.
Записать номер начального сектора /dev/sda2.
Удалить раздел /dev/sda2, но не записывать изменения на диск!!!
Создать раздел /dev/sda2, при этом нужно указать начальный сектор, который Вы записали на шаге 3. Последний сектор - по умолчанию (до конца раздела).
Записать изменения на диск.
Hidden text
Welcome to fdisk (util-linux 2.32). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk /dev/sda: 7.2 GiB, 7751073792 bytes, 15138816 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xcbad8a62 Device Boot Start End Sectors Size Id Type /dev/sda1 * 512 33279 32768 16M 83 Linux /dev/sda2 33792 246783 212992 104M 83 Linux Command (m for help): d Partition number (1,2, default 2): Partition 2 has been deleted. Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): Partition number (2-4, default 2): First sector (33280-15138815, default 34816): 33792 Last sector, +sectors or +size{K,M,G,T,P} (33792-15138815, default 15138815): Created a new partition 2 of type 'Linux' and of size 7.2 GiB. Partition #2 contains a ext4 signature. Do you want to remove the signature? [Y]es/[N]o: n Command (m for help): w The partition table has been altered. Syncing disks.
Пример изменения размеров разделов.
Hidden text
opkg update opkg install fdisk BOOT="$(sed -n -e "/\s\/boot\s.*$/{s///p;q}" /etc/mtab)" DISK="${BOOT%%[0-9]*}" PART="$((${BOOT##*[^0-9]}+1))" ROOT="${DISK}${PART}" OFFS="$(fdisk ${DISK} -l -o device,start | sed -n -e "\|^${ROOT}\s*|s///p")" echo -e "p\nd\n${PART}\nn\np\n${PART}\n${OFFS}\n\nn\np\nw" | fdisk ${DISK}
Скрипт для изменения размеров разделов автоматически.
Следующим шагом будет изменение размеров диска - в руководстве приведен хороший скрипт для выполнения всех действий автоматически.
opkg update opkg install losetup resize2fs BOOT="$(sed -n -e "/\s\/boot\s.*$/{s///p;q}" /etc/mtab)" DISK="${BOOT%%[0-9]*}" PART="$((${BOOT##*[^0-9]}+1))" ROOT="${DISK}${PART}" LOOP="$(losetup -f)" losetup ${LOOP} ${ROOT} fsck.ext4 -y ${LOOP} resize2fs ${LOOP} reboot
Заключительным шагом - будет перезагрузка роутера. Пусть все хорошо утрясется...
OpenWRT установлен ! Далее можно делать из этого роутера - МегаУберРоутер. У меня на другом роутере, но на базе Intel D410 и 4 гигабайтах ОЗУ - крутится AdGuard и очень даже неплохо убирает рекламу и прочее. При этом загрузка системы в среднем еле превышает 5%.
P.S. чуть в обморок не упал, когда увидел, сколько стоил CheckPoint T-120 в свое время...
