Openwrt xiaomi router 4: [OpenWrt Wiki] Xiaomi Mi Router 4A Gigabit Edition
|Содержание
прошивка LEDE/OpenWrt (+возврат на stock через Breed) – Telegraph
JustACatВсе, что вы делаете, вы делаете на свой страх и риск.
Я никакой ответственности за ваши действия не несу!
0.Новости
02.01.2018 (по крайне мере новость на сайте появилась в этот день) LEDE решили объединиться с OpenWrt. Если кто не в курсе, LEDE — это fork OpenWrt, то есть ее ответвление. Долгое время LEDE существовала как самостоятельный проект. Но руководством было принято решение о слиянии. Чем это грозит, хорошо это или плохо — я судить не возьмусь. Можете сами почитать подробнее по ссылке выше.
Суть в том, что с этого момента упоминания LEDE и OpenWrt можно считать равнозначными.
1.Подготовка
По ходу этого руководства я буду ссылаться на предыдущее «прошивка PandoraBox». Для начала ознакомьтесь с п.1 из него. А лучше прочтите полностью. Если что-то будет не ясно в этом руководстве, скорее всего об этом упоминается в предыдущем.
Если вы только получили роутер и ничего с ним не делали, делаем пункт 2.a из этого руководства. И затем сразу переходим на пункт 3 (пункт 2.b пропускаем).
Если у вас уже было установлено что-то, отличное от стока, вам придется сначала вернуться на сток developer. По крайней мере только так мне удалось прошить LEDE полностью (чтобы она работала без ошибок). Делаем пункт 2.b из этого руководства (пункт 2.a пропускаем), если у вас был прошит Breed. Если же Breed вы не прошивали, то вам придется самостоятельно вернуться на сток (developer версию с ssh доступом) другими способами. Поискать информацию можно в теме на 4pda. После возврата на сток dev, переходим к пункту 3 из этого руководства.
2.a.Начальная настройка и проверка роутера
Вам нужно обязательно выполнить пункты с 2 по 4 включительно.
Дополнительно я советую прошить загрузчик Breed (пункт 6 и, по желанию, пункт 7). Хотя для прошивки LEDE это не обязательно. Но с ним, мне кажется, безопаснее в плане восстановления в случае кирпича.
2.b.Возврат на сток через Breed:
- Ищем файл stock developer прошивки, который вы качали, чтобы получить SSH доступ (либо качаем его заново), в моем случае это был файл:
miwifi_r3g_firmware_c2175_2.25.122.bin (отсюда). - Грузимся в Breed.
- Если на ПК есть интернет, включаем перевод на английский (хотя можно и без перевода тыкнуть).
- Тыкаем в левом меню второй сверху пункт.
- На открывшейся страничке первая из двух закладка.
- На ней отмечаем среднюю из трех галочек и рядом с ней выбираем скачанный ранее .bin файл, в общем, в соответствии с картинкой (прошивка во второй раздел, без перезагрузки):
- Жмем кнопку «Upload» (или как там она по-китайски), попадаем на такую страничку:
- Вместо «PandoraBox-ra…» будет имя вашего .bin файла, например, «miwifi_r3g_firmware_c2175_2.25.122.bin». Ну и MD5 сумма тоже должна совпадать с таковой у вашего .bin файла.
Проверяем, если все верно — жмем единственную кнопку нижнюю. Начинается процесс прошивки:
- Когда ползунок прошивки дойдет до конца, роутер должен будет вернуться обратно в Breed, т.к. мы в нем не ставили галочку напротив автоперезагрузки.
- Теперь нам надо повторно прошить прошивку но в первый раздел.
Тыкаем в левом меню второй сверху пункт. - На открывшейся страничке первая из двух закладка.
- На ней отмечаем среднюю из трех галочек и рядом с ней выбираем скачанный ранее .bin файл, в общем, в соответствии с картинкой (прошивка в первый раздел, с перезагрузкой):
- Жмем кнопку «Upload» (или как там она по-китайски), попадаем на такую страничку:
- Вместо «PandoraBox-ra…» будет имя вашего .bin файла, например, «miwifi_r3g_firmware_c2175_2.25.122.bin». Ну и MD5 сумма тоже должна совпадать с таковой у вашего .bin файла.
Проверяем, если все верно — жмем единственную кнопку нижнюю. Начинается процесс прошивки:
- Когда ползунок прошивки дойдет до конца, нужно еще немного подождать.
- Роутер перезагрузится. И должна будет загрузиться стоковая dev прошивка. Процесс может занять некоторое время.
Проще всего мониторить загрузку по появлению стандартных WiFi сетей с именем вида: Xiaomi_XXXX — например, с помощью телефона.
Если сеть такую увидели — роутер загрузился.
Заходим с ПК через браузер в настройку роутера http://192.168.31.1 — и проходим начальную настройку (пункт 2).
После этого у вас должен восстановиться SSH доступ (если вы его получали) с тем же паролем, который вам писали на страничке: https://d.miwifi.com/rom/ssh
3.Прошивка LEDE
К данному пункту у вас на роутере должен стоять stock developer и должен быть получен (должен работать) ssh доступ. Breed + бэкапы — по желанию, но настоятельно рекомендую!
Важно: роутер должен иметь доступ в интернет на WAN порту по DHCP — то есть без настроек дополнительных. Проще всего этого добиться, подключив WAN порт Xiaomi роутера к одному из LAN портов вашего старого роутера (который конечно же должен все еще работать и раздавать интернет). Если у вас на старом роутере настроена привязка или фильтрация по MAC, ее лучше отключить, хотя бы на время.
Это необходимо, т.к. мы будем ставить LEDE из снапшотов, она не имеет в себе LuCI (web-интерфейс) и по-умолчанию настроена получать интернет по DHCP. Подробнее почитать про это можно вот тут: https://lede-project.org/docs/guide-quick-start/developmentinstallation#installing_lede_development_snapshots — совсем немного.
Так же рекомендую ознакомиться со страничкой по Router 3G на проекте LEDE: https://git.lede-project.org/?p=source.git;a=commit;h=6e283cdc0da25928f8148805ebef7f8f2b769ee8
Приступим:
- Если вы все еще в Breed — вам нужно перезагрузить роутер, чтобы он загрузился в сток-девел.
- Скачиваем отсюда: http://downloads.lede-project.org/snapshots/targets/ramips/mt7621/ — файлы «mir3g-squashfs-kernel1.bin» и «mir3g-squashfs-rootfs0.bin».
Файлы могут скачаться под другими названиями, тогда их необходимо переименовать, либо изменить их имена в команде ниже. В общем, проверьте соответствие имен скачанных файлов путям в команде «mtd write». - Кладем скачанные файлы в корень чистой флешки (fat32), советую проверить хэш-сумму скачанного файла и сравнить с указанной в столбике sha256sum.
- Флешку в роутер.
- Заходим на роутер по ssh (на стоке: 192.168.31.1:22).
- Выполняем по очереди четыре команды:
mtd write /extdisks/sda1/mir3g-squashfs-kernel1.bin kernel1
mtd write /extdisks/sda1/mir3g-squashfs-rootfs0.bin rootfs0
mtd erase kernel0
reboot
- После этого роутер перезагрузится и на нем будет работать LEDE.
Переходим к следующему пункту данного руководства.
4.Начальная настройка LEDE после установки из снапшотов
Еще раз обращу внимание, что первоисточник информации здесь.
- Подключаемся к роутеру по SSH.
Он будет доступен по IP 192.168.1.1. Логин root без пароля. - Первым делом я рекомендую установить достаточно сложный пароль для root (будьте аккуратны, в linux пароли не видны на экране, когда их набираешь). Это делается с помощью команды:
passwd
- Далее я рекомендую перезагрузить роутер (команда reboot) и снова зайти на него по ssh, чтобы проверить, установился ли новый пароль.
- Далее выполняем по очереди следующие две команды (источник):
opkg update
opkg install luci
Или (если хотим LuCI с поддержкой ssl):
opkg update
opkg install luci-ssl
Чтобы браузер не ругался на сертификат, при подключении к LuCI по SSL, можно сделать то, что описано в этой статье (проверял, работает).
- Если все прошло удачно, то после их выполнения на роутере появится web-панель управления LuCI. Открываем ее через браузер: http://192.168.1.1
Логин — root, пароль — который вы установили командой passwd.
Далее все настройки можно осуществлять через web-панель. Руководствуйтесь при этом документацией от самой LEDE: https://lede-project.org/docs/user-guide/start#newbee_section — а так же любыми руководствами из сети по запросам «LEDE» или «OpenWrt».
NB: если у вас будут проблемы с WiFi на LEDE, попробуйте в настройках WiFi жестко задать канал. По-умолчанию стоит «auto», т.е. канал должен выбираться автоматически. Но в этом механизме все равно ничего хорошего нет.
Лучше поставить на телефон программу вроде WiFi Analyzer, с помощью нее проверить обстановку вокруг и выбрать наименее загруженный соседскими сетями канал.
Еще могу порекомендовать убавить мощность WiFi передатчика до такой, которой будет достаточно для покрытия всей площади, на которой вы пользуетесь WiFi. Это справедливо для любых роутеров и с любыми прошивками.
После прошивки LEDE разметка приняла следующий вид:
dev: size erasesize name
mtd0: 00080000 00020000 «Bootloader»
mtd1: 00040000 00020000 «Config»
mtd2: 00040000 00020000 «Bdata»
mtd3: 00040000 00020000 «Factory»
mtd4: 00040000 00020000 «crash»
mtd5: 00040000 00020000 «crash_syslog»
mtd6: 00040000 00020000 «reserved0»
mtd7: 00400000 00020000 «kernel_stock»
mtd8: 00400000 00020000 «kernel»
mtd9: 07580000 00020000 «ubi»
*.
Дополнительные материалы:
- Как сделать, чтобы браузер не ругался на сертификат, при подключении к LuCI по https/SSL (проверено, работает):
https://lede-project.org/docs/user-guide/getting-rid-of-luci-https-certificate-warnings - Xiaomi Router 3G: обновление LEDE (OpenWrt)
http://telegra.ph/Xiaomi-Router-3G-obnovlenie-LEDE-OpenWRT-01-24 - Xiaomi Router 3G: бэкап и прошивка PandoraBox (включая Breed):
http://telegra.ph/Xiaomi-Router-3G-behkap-i-proshivka-PandoraBox-vklyuchaya-Breed-11-10 - Сравнительная табличка роутеров Xiaomi:
https://wikidevi.com/wiki/List_of_Xiaomi_Wireless_Devices - Тема по Xiaomi Mi WiFi Router 3G на 4pda (вопросы можно задавать там):
http://4pda.ru/forum/index.php?showtopic=837667 - Проект LEDE/OpenWrt:
https://lede-project.org/ - Основные команды для работы с BusyBox (командная строка LEDE):
http://telegra.ph/Osnovnye-komandy-dlya-raboty-s-BusyBox-01-24 - HashTab (бесплатное расширение для Windows для подсчета хэш-сумм файлов):
http://implbits. com/products/hashtab/ - putty (ssh-клиент и не только):
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html - WinSCP (клиент для доступа к файлам по ssh):
https://winscp.net/eng/download.php
Всем бобра и успешных перепрошивок!
Компиляция Node.js из исходников для Xiaomi Mi Router 3G (OpenWrt) — Блокнот гика
Потребовалось мне установить Node.js на свой Xiaomi Mi Router 3G, прошитый под OpenWrt. В дефолтных репозиториях необходимого пакета не оказалось. Немного погуглив, были найдены всего пара источников (раз, два) в которых присутствовали нужные мне ipk файлы. Но, в первом случае они падали с ошибкой «Illegal instruction» (как позже выяснилось, для их работы необходимо пересобрать ядро с поддержкой MIPS FPU Emulator, о чем я расскажу ниже), а во втором версии были слишком старые (v8.17.0) и меня не устраивали (а если бы и устраивали, то я снова бы столкнулся с предыдущей ошибкой).
Однако, эти поиски привели меня к проекту nxhack/openwrt-node-packages, бинарники которого можно было собрать самостоятельно, что я и сделал. Делюсь инструкцией по сборке (как и получившимися ipk файлами) со всеми желающими.
Для начала, необходимо уточнить, что просто скомпилировать Node.js и установить его на официальную версию OpenWrt не выйдет — при запуске вы получите пресловутую ошибку «Illegal instruction«. Необходимо будет заново полностью пересобрать прошивку с включенной опцией MIPS FPU Emulator и залить ее на роутер.
Все действия производились на Ubuntu 20.04 с установленными крайними обновлениями на момент выхода статьи. В качестве целевой системы была выбрана OpenWrt 19.07.5 (так же последняя доступная на то время).
1. Устанавливаем необходимые зависимости:
sudo apt-get update sudo apt-get install subversion g++ zlib1g-dev build-essential git python python3 python3-distutils libncurses5-dev gawk gettext unzip file libssl-dev wget libelf-dev ecj fastjar make gcc-multilib g++-multilib nano
2. Скачиваем исходники OpenWrt из необходимой нам ветки:
git clone git://github.com/openwrt/openwrt.git -b v19.07.5 && cd ./openwrt
3. Открываем файл со списком источников:
nano ./feeds.conf.default
И добавляем в него следующую строчку:
src-git node https://github.com/nxhack/openwrt-node-packages.git;openwrt-19.07
4. Обновляем источники и устанавливаем пакеты из них:
./scripts/feeds update -a ./scripts/feeds install -a
5. Выполняем тоже самое, но отдельно для Node.js:
./scripts/feeds update node rm ./package/feeds/packages/node rm . /package/feeds/packages/node-* ./scripts/feeds install -a -p node
6. Скачиваем конфигурационный файл официальной сборки:
wget -O ./.config https://downloads.openwrt.org/releases/19.07.5/targets/ramips/mt7621/config.buildinfo
7. Запускаем утилиту конфигурирования:
make menuconfig
Изменяем профиль устройства:
- Target Profile
Xiaomi Mi Router 3G
Включаем поддержку MIPS FPU Emulator в ядре:
- Global build settings > Kernel build options
[*] Compile the kernel with MIPS FPU Emulator
Добавляем в нашу сборку Node.js в виде внешних пакетов:
- Languages > Node.js
-M- node - Languages > Node.js > node > Configuration —> Version Selection
10. x Maintenance LTS / 12.x Maintenance LTS / 14.x Active LTS - Languages > Node.js
<M> node-npm
Сохраняем изменения и выходим
8. Исправляем vermagiс ядра
Чтобы в будущем не возникло проблем с установкой дополнительных модулей для ядра, необходимо немного подправить скрипты сборки:
nano ./include/kernel-defaults.mk
Находим в нем следующую строчку:
grep '=[ym]' $(LINUX_DIR)/.config.set | LC_ALL=C sort | mkhash md5 > $(LINUX_DIR)/.vermagic
И заменяем ее на:
grep '=[ym]' $(LINUX_DIR)/.config.set | LC_ALL=C sort | echo 2e88863ccdd594fb8e842df3c25842ee > $(LINUX_DIR)/.vermagic
9. Запускаем компиляцию:
make download make -j5
Где в -j5 указываем число ядер процессора + 1 (в примере показано для 4-ядерного процессора).
10. Ждем окончания (обычно полчаса-час, в зависимости от параметров компьютера).
При успешном завершении, необходимые нам ipk пакеты будут лежать в каталоге ~/openwrt/bin/packages/mipsel_24kc/node/
Образ самой прошивки в ~/openwrt/bin/targets/ramips/mt7621/
11. Если же, по какой-либо причине процесс прервется ошибкой, то необходимо будет выполнить очистку:
make clean
И запустить компилирование заново, используя только одно ядро и включив вывод подробной информации (это займет больше времени):
make -j1 V=99
В результате чего можно будет увидеть причину ошибки и попытаться найти решение для ее исправления.
UPD1. Вы можете скачать уже готовый файл конфигурации, что позволит пропустить пункты 6 и 7 данной инструкции:
wget -O . /.config https://kasito.ru/wp-content/uploads/2020/09/mir3g_node.config
UPD2. При установке дополнительных модулей ядра на собственноручно собранную прошивку вы можете получить следующую ошибку:
* satisfy_dependencies_for: Cannot satisfy the following dependencies for <package_name>: * kernel (= 4.14.195-1-2e88863ccdd594fb8e842df3c25842ee) * opkg_install_cmd: Cannot install package <package_name>.
Для ее исправления в уже собранной и установленной прошивке откройте файл /usr/lib/opkg/status
opkg update opkg install nano nano /usr/lib/opkg/status
Найдите в нем информацию об установленном ядре:
Package: kernel Version: 4.14.195-1-022f8f3dd46d06d2163c38cafcd0d555 Depends: libc Status: install user installed Architecture: mipsel_24kc Installed-Time: 1599409179 Auto-Installed: yes
И замените строчку «Version: . ..» на следующую:
Version: 4.14.195-1-2e88863ccdd594fb8e842df3c25842ee
UPD3. Так как при сборке мы использовали внешний источник (nxhack/openwrt-node-packages), то обновление списка пакетов (opkg update) будет сопровождаться следующей ошибкой:
Collected errors: * opkg_download: Failed to download http://downloads.openwrt.org/releases/19.07.5/packages/mipsel_24kc/node/Packages.gz, wget returned 8.
Не стоит волноваться, на работоспособность это никак не влияет и данное сообщение можно просто игнорировать.
UPD4. Обновил инструкцию для использования на версиях Ubuntu 20.04 и OpenWRT 19.07.5. С данного момента перестаю следить за этим, так как перехожу на немного другое решение.
Скачать OpenWrt (sysupgrade) с поддержкой MIPS FPU Emulator:
- openwrt-19. 07.5-ramips-mt7621-xiaomi_mir3g-squashfs-sysupgrade.bin (4,34 Мб)
Скачать Node.js для Xiaomi Mi Router 3G (mipsel_24kc):
- node_v10.23.0-2_mipsel_24kc.ipk (5,25 Мб)
- node-npm_v10.23.0-2_mipsel_24kc.ipk (5,63 Мб)
- node_v12.20.0-2_mipsel_24kc.ipk (6,52 Мб)
- node-npm_v12.20.0-2_mipsel_24kc.ipk (5,64 Мб)
- node_v14.15.1-2_mipsel_24kc.ipk (6,79 Мб)
- node-npm_v14.15.1-2_mipsel_24kc.ipk (5,64 Мб)
Внимание! Все действия, описанные выше, вы выполняете на свой страх и риск. Автор не несет никакой ответственности за любой вред, причиненный пользователю или третьим лицам в результате использования материалов, программного обеспечения и другой информации, размещенной на данной странице.
[OpenWrt-Devel,v3] ramips: добавлена поддержка Xiaomi Mi Router 4A (100M Edition)
разница
mbox
серия
Идентификатор сообщения | 20190527172522. [email protected] |
---|---|
Государственный | Принято, заархивировано |
Кому делегирован: | Кристиан Лэмпартер |
Заголовки | |
Серия | [OpenWrt-Devel,v3] ramips: добавлена поддержка Xiaomi Mi Router 4A (100M Edition) |
Сообщение фиксации
разница
mbox
серия
Патч
diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network индекс dcc7b4a747..d3fecbc2bd 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -454,6 +454,10 @@ ramips_setup_interfaces() ucidef_add_switch "switch0" \ "1:lan:3" "2:lan:2" "3:lan:1" "4:wan" "6@eth0" ;; + сяоми, mir4a-100м) + ucidef_add_switch "switch0" \ + "4:lan:1" "2:lan:2" "0:wan" "6@eth0" + ;; zbtlink,zbt-we1226|\ у1) ucidef_add_switch "switch0" \ diff --git a/target/linux/ramips/dts/XIAOMI-MIR4A-100M. dts b/target/linux/ramips/dts/XIAOMI-MIR4A-100M.dts новый файловый режим 100644 индекс 0000000000..3bcb84d68b --- /dev/ноль +++ b/target/linux/ramips/dts/XIAOMI-MIR4A-100M.dts @@ -0,0 +1,146 @@ +//SPDX-License-Identifier: GPL-2.0 или выше ИЛИ MIT +/dts-v1/; + +#include "mt7628an.dtsi" + +#include+#include + +/ { + совместимый = "xiaomi,mir4a-100m", "mediatek,mt7628an-soc"; + модель = «Xiaomi Mi Router 4A (версия 100M)»; + + выбран { + bootargs = "консоль = ttyS0,115200"; + }; + + память@0 { + device_type = "память"; +reg = <0x0 0x4000000>; + }; + + псевдонимы { + led-boot = &power_yellow; + led-failsafe = &power_yellow; + светодиодный индикатор = &power_blue; + led-upgrade = &power_yellow; + }; + + светодиоды { + совместимый = "gpio-светодиоды"; + + power_blue: power_blue { + label="mir4a-100m:blue:power"; + gpios = <&gpio0 11 GPIO_ACTIVE_LOW>; + }; + + power_yellow: power_yellow { + label="mir4a-100m:yellow:power"; + gpios = <&gpio1 12 GPIO_ACTIVE_LOW>; + }; + }; + + ключи { + совместимый = "опрос gpio-keys"; + интервал опроса = <20>; + + сбросить { + метка = "сбросить"; + gpios = <&gpio1 6 GPIO_ACTIVE_LOW>; + Linux, код = ; + }; + }; +}; + +&spi0 { + статус = "хорошо"; + + вспышка@0 { + совместимый = "jedec,spi-nor"; + рег = <0>; + spi-max-частота = <10000000>; + + разделы { + совместимый = "фиксированные разделы"; + #адрес-ячейки = <1>; + #размер ячеек = <1>; + + раздел@0 { + метка = "загрузчик"; +рег = <0x0 0x20000>; + только для чтения; + }; + + раздел @ 20000 { + метка = "конфиг"; +reg = <0x20000 0x10000>; + только для чтения; + }; + + завод: раздел@30000 { + метка = "фабрика"; +reg = <0x30000 0x10000>; + только для чтения; + }; + + раздел@40000 { + метка = "авария"; +reg = <0x40000 0x10000>; + только для чтения; + }; + + раздел@50000 { + метка = "cfg_bak"; +reg = <0x50000 0x10000>; + только для чтения; + }; + + раздел @ 60000 { + метка = "наложение"; +reg = <0x60000 0x100000>; + только для чтения; + }; + + раздел @ 160000 { + метка = "прошивка"; +reg = <0x160000 0xea0000>; + совместимый = "denx,uimage"; + }; + }; + }; +}; + +&pcie { + статус = "хорошо"; +}; + +&pcie0 { + Wi-Fi@0,0 { +reg = <0x0000 0 0 0 0>; + mediatek,mtd-eeprom = <&factory 0x8000>; + ieee80211-freq-limit = <5000000 6000000>; + }; +}; + +&pinctrl { + state_default: pinctrl0 { + гпио { + ralink,group = "gpio", "wdt", "wled_an"; + ralink, функция = "gpio"; + }; + }; +}; + +&этернет { + mtd-mac-address = <&factory 0x4>; + mtd-mac-address-increment = <(-1)>; +}; + +&esw { + mediatek,portmap = <0x2f>; + mediatek,portdisable = <0x2a>; +}; + +&wmac { + статус = "хорошо"; +}; diff --git a/target/linux/ramips/image/mt76x8. mk b/target/linux/ramips/image/mt76x8.mk индекс 22д79бад39..4213947d39 100644 --- a/target/linux/ramips/image/mt76x8.mk +++ b/target/linux/ramips/image/mt76x8.mk @@ -437,6 +437,14 @@ определить устройство/wrtnode2r конец TARGET_DEVICES += wrtnode2r +определить устройство/xiaomi_mir4a-100m + ДТС := XIAOMI-MIR4A-100M + IMAGE_SIZE := 14976 КБ + DEVICE_TITLE := Xiaomi Mi Router 4A (версия 100M) + DEVICE_PACKAGES := kmod-mt76x2 +конец +TARGET_DEVICES += xiaomi_mir4a-100m + определить устройство/zbtlink_zbt-we1226 ДТС := ZBT-WE1226 IMAGE_SIZE := $(ralink_default_fw_size_8M)
MI Router 4a Gigabit (OpenWRT), компьютеры и технологии, детали и аксессуары, сеть на Carousell
Computers & Tech
Запчасти и аксессуары
сети 9003
9003
Network
9003
9003
9003
9003
9003 9003
9003 9003 9003
9003 9003 9003
MI. Gigabit(OpenWRT)
Нравится новый
Рассылка · Meetup
Felda keratong 2
Описание
Опубликовано
5 месяцев назад
Бренд
Xiaomi
Привет.
Mi Router 4A Gigabit отпустить.
Предустановленный OpenWRT поддерживает VLESS, VMESS, OpenVPN, X2Ray и многое другое.
ХПК в Сегамате, Куантане и Куала-Пила.
Наложенный платеж в КЛ только по выходным.
Meet-up
Felda keratong 2
Безопасная покупка с защитой Carousell
Нажмите «Купить», чтобы разместить заказ. Получите свой заказ, как указано в списке, или верните деньги.
Познакомьтесь с продавцом
Цифровой магазин Piee
@shaffie71
Зарегистрирован 6 лет назад
Verified
Reviews for @shaffie71
5.0
(
2
)
@bombalele∙4 years ago
Good service and very knowledgeable
@maha612∙4 years ago
Fast process. Хорошая сделка и дружелюбный. Наверняка будет продолжать поддержку. Спасибо
Читать все отзывы
Piee Digital Shop@shaffie71
5.0
(2 отзыва)
Следуйте за нами
Блог
Carousell College
Cars & Property
CARS
Автоамериканские аксессуары
недвижимость
Мотовые баки
Работа и услуги
Работа
Сервисы
мода
Женская мода
Laxcul
Красота и личная гигиена
Прочее
Все остальное
Ищу
Читаю
Бесплатные товары
Home & Living
Furniture & Home Living
Babies & Kids
Health & Nutrition
Food & Drinks
Pet Supplies
Electronics & Mobiles
Computers & Tech
Video Gaming
Mobile Phones & Gadgets
Аудио
Фотография
Телевизоры и бытовая техника
Хобби и игры
Игрушки и игры
Музыка и медиа
Книги и журналы
Канцелярские товары и ремесло
Коллекционирование и памятные материалы
Спортивное оборудование
Билеты и ваучеры
Travel
Mudah.