RSS Git Download  Clone
  index.js 35B p3x-robot sunday release 2018-2-13 16:05:27 2 years ago
[//]: #@corifeus-header [![Donate for Corifeus / P3X](]( [![Contact Corifeus / P3X](]( [![Corifeus @ Facebook](]( [![Build Status](]( [![Uptime Robot ratio (30 days)](]( # ☕ OpenWrt with latest NodeJs for Linksys WRT [//]: #@corifeus-header:end # Info The main reason is to be able to use the latest NodeJs for Linksys WRT (the default NodeJs is old) and the crypto accelerator. Also, a docker container with all the firmwares and packages are in `/build/source/bin` @ **For building, for Docker, the host should be Debian, as I had issues with building on Ubuntu host and Docker Debian container.** ## Crypto accelerator Since OpenWrt 19, the crypto accelerator is enabled by default. This speeds up for example OpenVPN a lot. ### You can verify Not enabled: ```text root@hawk:~# openssl engine -t -c (dynamic) Dynamic engine loading support [ unavailable ] ``` Enabled: ```text root@hawk:~# openssl engine -t -c (dynamic) Dynamic engine loading support [ unavailable ] (devcrypto) /dev/crypto engine [DES-CBC, DES-EDE3-CBC, AES-128-CBC, AES-192-CBC, AES-256-CBC, AES-128-ECB, AES-192-ECB, AES-256-ECB] [ available ] ``` ## European version If you have a 3rd Radio and you have the European version of WRT and have a 3rd radio, to get it to work on DFS/Radar, create this file: ```text /etc/modules.d/mwifiex ``` with this content: ```text mwifiex reg_alpha2=FR ``` Then, set all radio 1 and 2 to be FR as well and the DTS/Radar perfectly works. ## Packages ***There are at least about 7500 packages built for Linksys WRT.*** * Enabled Apache HTTP2 * Enabled NGINX HTTP2 * NodeJs latest version and many pre-built packages (including binaries) See what is in [create from scratch](docs/ <!-- # NodeJs Homebridge and homekit settings is enabled by default based on --> # Routers pre-built If you want to install right away with LUCI: ## The release * Linksys WRT1900ACS / Linksys WRT3200ACM / Linksys WRT32X * For Linksys the firmwares that start with ```insomnia``` worth trying, because you can use latest NodeJs. * or specific version eg. * If you get the error ```The uploaded image file does not contain a supported format. Make sure that you choose the generic image format for your platform.```, you have to do it via SSH with ```sysupgrade -F FIRMWARE```, then it works. * If you have a bricked firmware, you need a USB-TTL. [Linksys USB-TTL](docs/ * Error code: 18005 * When trying to install a firmware image, I get the following error: * Error code: 18005, Upgrade unsuccessfully because the version of the upgraded file was incorrect. Please check the file name. * Solution: Rename the firmware image to something short, like e.g. factory.bin * Based on <!-- * D-Link DIR-860l B1 * * If it is not working, with D-Link DIR-860l B1, you have to reset the router and re-load the firmware via emergency upload, like this 1. Plug the Ethernet cable that connects your computer, that was plugged into one of the LAN ports,  1. Setup your PC with static IP - ex: (different from, the gateway is, netmask 1. Make sure the PC has the new firmware  1. Turn off the router 1. Hold the reset button (in the bottom, there is a small whole for like a needle, it says RESET). 1. Turn on the router and wait for like 3-5 seconds, the orange will flash, like turning off. 1. Open a web browser to and then you should see EMERGENCY FLASHING page then click browse/upload locate the file and click UPLOAD FIRMWARE NOW. 1. For me, for first upload it doesn't do anything, I just click UPLOAD again and then it start uploading. 1. You should see a SUCCSESS page, 1. You will have to wait until like 150 seconds. 1. When it is green, you can turn off the static settings for the ethernet and enable DHCP. 1. The you can open with, no password at all, you got LUCI and SSH as well. 1. It works for sure, it's not like Linksys WRT, that you need an USB-TTL cable… * RPI-3 * or specific version eg. * I don't have a RPI-3 in my hand, so I cannot test it, but a dude asked to build this, so he uses it. --> ## If you want some of the packages ```text /cgi-bin/luci/admin/system/packages/ipkg ``` ### Linksys WRT or compatible alike mvebu / arm 9 (arm_cortex-a9_vfpv3) What is very useful is (many NodeJs built packages as well as binary builds): ```text src/gz openwrt_node ``` The rest, you can find on OpenWrt as well, so you do not need it: ```text src/gz openwrt_core src/gz openwrt_base src/gz openwrt_luci src/gz openwrt_packages src/gz openwrt_routing src/gz openwrt_telephony ``` <!-- ### D-LINK DIR 860L B1 What is very useful is (many NodeJs built packages as well as binary builds): ```text src/gz openwrt_node ``` The rest, you can find on OpenWrt as well, so you do not need it: ```text src/gz openwrt_core src/gz openwrt_base src/gz openwrt_luci src/gz openwrt_packages src/gz openwrt_routing src/gz openwrt_telephony ``` ### R-PI 3 or compatible arm (aarch64_cortex-a53) What is very useful is (many NodeJs built packages as well as binary builds): ```text src/gz openwrt_node ``` The rest, you can find on OpenWrt as well, so you do not need it: ```text src/gz openwrt_core src/gz openwrt_base src/gz openwrt_luci src/gz openwrt_packages src/gz openwrt_routing src/gz openwrt_telephony ``` --> # Signatures ## If you do not want to have the hassle, there are multiple solutions below. If you use an ```insomnia``` firmware, then you are done, but if you want one or more feeds from a non ```insomnia``` firmware, your router still needs a verified signature. ### If you just use one or a few feeds non insomnia firmware, your router needs a signature You can enable foreign keys from this directory: to ```text /etc/opkg/keys ``` ### Option 2 The easiest solution I know is via LUCI : []( In the **Configuration** tab, comment like this: ```#option check_signature 1``` ### Option 3 manual with SSH You can also set it up via SSH as: ```text root@digi:~# cat /etc/opkg.conf dest root / dest ram /tmp lists_dir ext /var/opkg-lists option overlay_root /overlay #option check_signature 1 ``` Just edit there, ```nano``` is installed, just comment the ```option check_signature 1``` as it shows above. <!-- ### Generate real signatures, do not need ```#option check_signature 1``` Everything is verified. I have my own GPG and USIGN. So the []( it works with signatures by now. But if you want to build your own firwmare based on ```insomnia```, you need to create your own GPG and USIGN, you can generate like this: A few small info is here [info](docs/ So to build with ```insomnia``` you need to place some files like above. The ```openwrt-insomnia/image-builder-files/etc/opkg/keys/xxxxxxx``` is your USIGN actual public.key with the hash name, it builds into the firmware, the description in the link just above coming right away, says how to generate that file. The ``openwrt-insomnia/secure/gpg/secret-signing-key.pgp`` and ```secure/usign``` needs the ```public.key``` and ```secret.key```. You also need to add in ```openwrt-insomnia/secure/passphrase.txt```, which is your GPG passphrase. If this is added in, you can sign everything. Right now, it is not found to automatic use the passphrase for ```gpg```, so you have to type it in for the passphrase. Before it asks for the passphrase, it will show on the terminal so you copy and then just paste it. It will as twice. They files to generate are in the same link above. So, if you want to sign, you might need to contact to me. ![GPG and USIGN structure in the repo](artifacts/images/gpg-and-usign.png "GPG and USIGN structure in the repo") If you have this signed gpg and usign data and keys, I can help you to signed firmwares and packages. --> ## Ext-root issue Based on the OpenWrt forum discussions, after sysupgrade, the ext-root has to be re-built, no other solution. ## Wifi and WPS Issue It is only working, if only these are built in the firmware: ```hostapd-common wpad-mini```, nothing other like that. If not, it will not work. [WPS](docs/ info. ## Docker ### Requirements **Docker CE** For your workstation you don't really NodeJs, but my Travis, Scrutinizer and my auto generated web sites are required... This is a OpenWrt Docker builder and a living Docker repo as well, ready to build, a lot already built. (A big image / full firmware, the most important packages are built. Ready to use.) #### Changing the firmware pre-built, so the build will be fast!!! All the latest stable OpenWrt versions. * docker pull patrikx3/openwrt-insomnia:linksys-wrt <!-- * docker pull patrikx3/openwrt-insomnia:d-link-dir-860l-b1 * docker pull patrikx3/openwrt-insomnia:rpi-3 --> * RAW * docker pull patrikx3/openwrt-insomnia:latest You run them, but these here, the built is in:, all the built packages and firmwares in ```/build/source/bin```, you move to a host, install the firmware and you are done, because in the ```insomnia``` firmwares there is a lot in, but this is the default, so you need to change your own hostname here: []( at ```Configuration``` tab. If you do not want to build at all you can choose to your host All built packages and firmwares including the ```insomnia``` firmwares are in ```/build/source/bin```. [README about how I build the firmwares in order](docs/ # My repos # Linksys WRT Radar Detection Tested on WRT1900ACSv2 and WRT3200ACM, works. [README](docs/ # Ext-Root [README](docs/ ## How I built these Dockers via these links [README](docs/ ## Docker commands [README](docs/ ## Create packages, not neeed anymore [My first package](docs/ # Create from scratch [README](docs/ # Copy configs [README](docs/ # Firmware sizes [README](docs/ # WPS [README](docs/ # Packages and patches [README](docs/ # Linksys WRT 3200ACM 160 Mhz [README](docs/ # Linksys USB-TTL [README](docs/ # Linksys WRT 3200ACM / WRT32X For some reason it needs this: ```bash # based on this echo "except-interface=eth1.2" >> /etc/dnsmasq.conf ``` [//]: #@corifeus-footer --- 🙏 This is an open-source project. Star this repository, if you like it, or even donate to maintain the servers and the development. Thank you so much! Possible, this server, rarely, is down, please, hang on for 15-30 minutes and the server will be back up. All my domains ([]( and []( could have minor errors, since I am developing in my free time. However, it is usually stable. **Note about versioning:** Versions are cut in Major.Minor.Patch schema. Major is always the current year. Minor is either 4 (January - June) or 10 (July - December). Patch is incremental by every build. If there is a breaking change, it should be noted in the readme. --- [**P3X-OPENWRT-INSOMNIA**]( Build v2020.4.105 [![Donate for Corifeus / P3X](]( [![Contact Corifeus / P3X](]( [![Like Corifeus @ Facebook](]( ## P3X Sponsor [IntelliJ - The most intelligent Java IDE]( [![JetBrains](]( [//]: #@corifeus-footer:end