Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| docs:user-guide:services:xmpp.server [2018/02/17 21:06] – ↷ Page moved from doc:howto:xmpp.server to docs:user-guide:services:xmpp.server bobafetthotmail | docs:guide-user:services:xmpp.server [2024/10/13 21:35] (current) – [Prosody XMPP Server (open messaging protocol)] stokito | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ======XMPP Server | + | ======Prosody |
| - | **Prosody** writen in Lua | + | **Prosody** writen in Lua and small enough for routers and easy to configure. |
| - | Hompage | + | * [[https:// |
| + | * [[https:// | ||
| + | * [[https:// | ||
| - | Documentation [[http:// | + | ===== Install ===== |
| - | Wiki from Arch Linux " | ||
| - | |||
| - | ===== Install ===== | ||
| - | 8 MiB Flash or more | ||
| <code bash> | <code bash> | ||
| opkg update | opkg update | ||
| opkg install prosody | opkg install prosody | ||
| </ | </ | ||
| - | 4 MiB Flash | + | |
| - | <code bash> | + | |
| - | opkg update | + | |
| - | opkg --nodeps install luafilesystem libidn luaexpat libexpat lua liblua prosody | + | |
| - | </ | + | |
| ===== Show me it working ASAP ===== | ===== Show me it working ASAP ===== | ||
| Faster way is allowing auto-registration to @localhost. | Faster way is allowing auto-registration to @localhost. | ||
| + | |||
| ==== allow_registration ==== | ==== allow_registration ==== | ||
| <code bash> | <code bash> | ||
| sed -i -e ' | sed -i -e ' | ||
| - | chmod +r / | + | / |
| - | chown -R prosody: | + | |
| - | / | + | |
| </ | </ | ||
| + | |||
| + | |||
| ==== XMPP client ==== | ==== XMPP client ==== | ||
| Use a XMPP client to add an account to 192.168.1.1 server like: | Use a XMPP client to add an account to 192.168.1.1 server like: | ||
| - | *[[http://www.pidgin.im/download/|Pidgin]] for Windows, Linux & Mac OS X | + | *[[https:// |
| - | *[[http://www.xabber.com/|Xabber]] for Android | + | *[[https://conversations.im/|Conversations]] for Android |
| + | *[[https:// | ||
| ==== The right way? ==== | ==== The right way? ==== | ||
| Line 39: | Line 36: | ||
| <code bash> | <code bash> | ||
| for f in almursi jow maddes nilfred orca thelexi | for f in almursi jow maddes nilfred orca thelexi | ||
| - | do prosodyctl register $f localhost | + | do prosodyctl register $f localhost |
| done | done | ||
| </ | </ | ||
| Line 81: | Line 78: | ||
| *Nickname with first letter capitalized | *Nickname with first letter capitalized | ||
| *Print a tail to a file | *Print a tail to a file | ||
| - | ===== Renew the SSL certificate ===== | ||
| - | Not required if SSL stuff was not installed, Ex.: 4 MiB installation. | ||
| - | Same old key used for brevity, some RTFM required for completeness. | ||
| - | <code bash> | ||
| - | cd /tmp | ||
| - | scp root@routerlogin.net:/ | ||
| - | openssl req -new -x509 -days 365 -nodes -out " | ||
| - | scp localhost.[ck]e* root@routerlogin.net:/ | ||
| - | </ | ||
| - | Will see to add -subj parameter for batch usage. | ||
| - | |||
| - | This code is not intended to run in the router itself, some test still required. | ||
| - | |||
| - | ==== Create a new SSL certificate ==== | ||
| - | Where it says C=AR means your country 2 letters ISO. CN= has to match your domain name or prosody may ask yet another question. | ||
| - | <code bash> | ||
| - | # Self-signed SSL certificate creation (new key) | ||
| - | cd /tmp | ||
| - | openssl req -new -x509 -days 365 -nodes -out " | ||
| - | scp example.no-ip.biz.[ck][re][ty] root@192.168.1.1:/ | ||
| - | mkdir -p ~/ | ||
| - | mv example.no-ip.biz.[ck][re][ty] ~/ | ||
| - | </ | ||
| - | |||
| - | ==== Renew a SSL certificate ==== | ||
| - | The next year you have to do this: | ||
| - | <code bash> | ||
| - | # Self-signed SSL certificate renew (same old key) | ||
| - | cd ~/ | ||
| - | openssl req -new -x509 -days 365 -nodes -out " | ||
| - | scp example.no-ip.biz.[ck][re][ty] root@192.168.1.1:/ | ||
| - | </ | ||
| - | That's because the key never expires, just the certificate expires. Prosody may ask anyway. | ||
| - | |||
| - | ==== Upload archived SSL certificate ==== | ||
| - | When upgrade the firmware, you may lost your certificate and clients (prosody) may ask for it. Better present the same unexpired certificate to avoid asking. | ||
| - | <code bash> | ||
| - | # Upload the same certificate already created before | ||
| - | cd ~/ | ||
| - | scp example.no-ip.biz.[ck][re][ty] root@192.168.1.1:/ | ||
| - | </ | ||
| ===== Using your DDNS domain ===== | ===== Using your DDNS domain ===== | ||
| Line 167: | Line 123: | ||
| ==== Set your router a DDNS name ==== | ==== Set your router a DDNS name ==== | ||
| - | After reading how to setup [[docs:user-guide: | + | After reading how to setup [[docs: |
| <code bash> | <code bash> | ||
| uci batch <<' | uci batch <<' | ||
| Line 182: | Line 138: | ||
| EOF | EOF | ||
| </ | </ | ||
| + | |||
| ==== Set your router the same LAN name as WAN ==== | ==== Set your router the same LAN name as WAN ==== | ||
| It would be wise if your router has the same name for LAN clients, so has to not go out and redirected back. | It would be wise if your router has the same name for LAN clients, so has to not go out and redirected back. | ||
| Line 198: | Line 155: | ||
| EOF | EOF | ||
| </ | </ | ||
| + | |||
| Now these commands have the same effect in your LAN: | Now these commands have the same effect in your LAN: | ||
| <code bash> | <code bash> | ||
| Line 206: | Line 164: | ||
| </ | </ | ||
| Your router now has a name! | Your router now has a name! | ||
| + | |||
| ==== Set your own domain name SRV records ==== | ==== Set your own domain name SRV records ==== | ||
| Very well! So, for your own domain name may need to setup SRV records if the xmpp server run in another subdomain like this: | Very well! So, for your own domain name may need to setup SRV records if the xmpp server run in another subdomain like this: | ||
| Line 244: | Line 203: | ||
| _xmpp-server._tcp.anon.EXAMPLE.COM | _xmpp-server._tcp.anon.EXAMPLE.COM | ||
| _xmpp-server._tcp.topics.EXAMPLE.COM | _xmpp-server._tcp.topics.EXAMPLE.COM | ||
| - | </ | ||
| - | |||
| - | ===== Upgrade to prosody 0.8.2 ===== | ||
| - | Really? This step is not necessary, and requires rebuilding. | ||
| - | |||
| - | Look for "how to build" first, if is your first time building this is definitely not for you. | ||
| - | |||
| - | ==== Patch your SVN ==== | ||
| - | This patch is against AA-rc1 r34185 | ||
| - | <code bash> | ||
| - | cd ~/ | ||
| - | patch -p0 <<' | ||
| - | </ | ||
| - | <code diff> | ||
| - | Index: net/ | ||
| - | =================================================================== | ||
| - | --- net/ | ||
| - | +++ net/ | ||
| - | @@ -1,5 +1,5 @@ | ||
| - | # | ||
| - | -# Copyright (C) 2009-2011 OpenWrt.org | ||
| - | +# Copyright (C) 2009-2012 OpenWrt.org | ||
| - | # | ||
| - | # This is free software, licensed under the GNU General Public License v2. | ||
| - | # See /LICENSE for more information. | ||
| - | @@ -8,15 +8,17 @@ | ||
| - | | ||
| - | |||
| - | | ||
| - | -PKG_VERSION: | ||
| - | -PKG_RELEASE: | ||
| - | +PKG_VERSION: | ||
| - | +PKG_RELEASE: | ||
| - | |||
| - | | ||
| - | | ||
| - | -PKG_MD5SUM: | ||
| - | +PKG_MD5SUM: | ||
| - | |||
| - | | ||
| - | |||
| - | +PKG_BUILD_DEPENDS: | ||
| - | + | ||
| - | | ||
| - | |||
| - | | ||
| - | @@ -39,6 +41,7 @@ | ||
| - | endef | ||
| - | |||
| - | | ||
| - | +CMAKE_OPTIONS = -DLUAPATH=/ | ||
| - | |||
| - | | ||
| - | # this is *NOT* GNU autoconf stuff | ||
| - | @@ -72,16 +75,20 @@ | ||
| - | | ||
| - | | ||
| - | | ||
| - | - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/ | ||
| - | +# | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | + $(INSTALL_DIR) $(1)/ | ||
| - | + $(INSTALL_DATA) $(PKG_INSTALL_DIR)/ | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | + $(INSTALL_DIR) $(1)/ | ||
| - | + $(INSTALL_DATA) $(PKG_INSTALL_DIR)/ | ||
| - | endef | ||
| - | |||
| - | | ||
| - | Index: net/ | ||
| - | =================================================================== | ||
| - | --- net/ | ||
| - | +++ net/ | ||
| - | @@ -1,37 +1,40 @@ | ||
| - | --- a/ | ||
| - | +++ b/ | ||
| - | -@@ -47,7 +47,7 @@ modules_enabled = { | ||
| - | - " | ||
| - | - | ||
| - | +@@ -59,7 +59,7 @@ modules_enabled = { | ||
| - | + --" | ||
| - | + | ||
| - | -- Other specific functionality | ||
| - | | ||
| - | | ||
| - | - --" | ||
| - | --" | ||
| - | --" | ||
| - | -@@ -65,6 +65,9 @@ modules_disabled = { | ||
| - | - -- Disable account creation by default, for security | ||
| - | + --" | ||
| - | +@@ -83,6 +83,9 @@ modules_disabled = { | ||
| - | -- For more information see http:// | ||
| - | allow_registration = false; | ||
| - | -+ | ||
| - | + | ||
| - | +-- File to write pid in | ||
| - | | ||
| - | - | ||
| - | ++ | ||
| - | -- These are the SSL/ | ||
| - | -- to use SSL/TLS, you may comment or remove this | ||
| - | -@@ -73,6 +76,15 @@ ssl = { | ||
| - | - certificate = " | ||
| - | - } | ||
| - | - | ||
| - | -+-- Errors to syslog | ||
| - | -+-- All to / | ||
| - | -+log = { | ||
| - | -+ { levels = { " | ||
| - | + ssl = { | ||
| - | +@@ -123,10 +126,16 @@ | ||
| - | + -- Logging configuration | ||
| - | + -- For advanced logging see http:// | ||
| - | + log = { | ||
| - | +- info = " | ||
| - | +- error = " | ||
| - | ++ -- info = " | ||
| - | ++ -- error = " | ||
| - | + -- " | ||
| - | ++ -- Requires mod_posix to be loaded | ||
| - | + -- " | ||
| - | ++ { levels = { " | ||
| - | ++ -- All to / | ||
| - | + { levels = { " | ||
| - | + -- Change " | ||
| - | + { levels = { min = " | ||
| - | -+} | ||
| - | -+ | ||
| - | + } | ||
| - | + | ||
| - | ----------- Virtual hosts ----------- | ||
| - | - -- You need to add a VirtualHost entry for each domain you wish Prosody to serve. | ||
| - | - -- Settings under each VirtualHost entry apply *only* to that host. | ||
| - | Index: lang/ | ||
| - | =================================================================== | ||
| - | --- lang/ | ||
| - | +++ lang/ | ||
| - | @@ -8,12 +8,12 @@ | ||
| - | | ||
| - | |||
| - | | ||
| - | -PKG_VERSION: | ||
| - | -PKG_RELEASE: | ||
| - | +PKG_VERSION: | ||
| - | +PKG_RELEASE: | ||
| - | |||
| - | | ||
| - | -PKG_SOURCE_URL: | ||
| - | -PKG_MD5SUM: | ||
| - | +PKG_SOURCE_URL: | ||
| - | +PKG_MD5SUM: | ||
| - | |||
| - | | ||
| - | |||
| - | @@ -47,7 +47,7 @@ | ||
| - | |||
| - | | ||
| - | | ||
| - | - $(INSTALL_DATA) $(PKG_BUILD_DIR)/ | ||
| - | + $(INSTALL_DATA) $(PKG_BUILD_DIR)/ | ||
| - | | ||
| - | | ||
| - | endef | ||
| - | </ | ||
| - | <code bash> | ||
| - | EOF | ||
| - | </ | ||
| - | |||
| - | ==== Add a file ==== | ||
| - | One more file goes to feeds/ | ||
| - | <code diff> | ||
| - | --- a/configure | ||
| - | +++ b/configure | ||
| - | @@ -11,16 +11,13 @@ | ||
| - | | ||
| - | | ||
| - | | ||
| - | -ICU_FLAGS=" | ||
| - | | ||
| - | | ||
| - | -CXX=g++ | ||
| - | | ||
| - | |||
| - | | ||
| - | -LDFLAGS=" | ||
| - | - | ||
| - | -IDN_LIBRARY=idn | ||
| - | +LFLAGS=" | ||
| - | + | ||
| - | # Help | ||
| - | |||
| - | | ||
| - | @@ -29,7 +26,7 @@ | ||
| - | |||
| - | | ||
| - | | ||
| - | - May be one of: debian, macosx, linux, freebsd | ||
| - | + May be one of: debian, macosx | ||
| - | | ||
| - | | ||
| - | | ||
| - | @@ -46,15 +43,12 @@ | ||
| - | | ||
| - | | ||
| - | | ||
| - | ---idn-library=(idn|icu) Select library to use for IDNA functionality. | ||
| - | - idn: use GNU libidn (default) | ||
| - | - icu: use ICU from IBM | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | ---ldflags=FLAGS | ||
| - | - Default is $LDFLAGS | ||
| - | +--lflags=FLAGS | ||
| - | + Default is $LFLAGS | ||
| - | | ||
| - | | ||
| - | | ||
| - | @@ -67,7 +61,7 @@ | ||
| - | |||
| - | while [ " | ||
| - | do | ||
| - | - | ||
| - | + | ||
| - | if echo " | ||
| - | then | ||
| - | echo | ||
| - | @@ -91,88 +85,72 @@ | ||
| - | --ostype=*) | ||
| - | | ||
| - | | ||
| - | - if [ " | ||
| - | - then LUA_SUFFIX=" | ||
| - | + ;; | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + ;; | ||
| - | + | ||
| - | + REQUIRE_CONFIG=yes | ||
| - | + ;; | ||
| - | + | ||
| - | + LUA_SUFFIX=" | ||
| - | + LUA_SUFFIX_SET=yes | ||
| - | + ;; | ||
| - | + | ||
| - | + LUA_DIR=" | ||
| - | + LUA_DIR_SET=yes | ||
| - | + ;; | ||
| - | + | ||
| - | + LUA_INCDIR=" | ||
| - | + LUA_INCDIR_SET=yes | ||
| - | + ;; | ||
| - | + | ||
| - | + LUA_LIBDIR=" | ||
| - | + ;; | ||
| - | + | ||
| - | + IDN_LIB=" | ||
| - | + ;; | ||
| - | + | ||
| - | + OPENSSL_LIB=" | ||
| - | + ;; | ||
| - | + | ||
| - | + CFLAGS=" | ||
| - | + ;; | ||
| - | + | ||
| - | + LFLAGS=" | ||
| - | + ;; | ||
| - | + | ||
| - | + CC=" | ||
| - | + ;; | ||
| - | + | ||
| - | + LD=" | ||
| - | + ;; | ||
| - | + *) | ||
| - | + echo " | ||
| - | + exit 1 | ||
| - | + ;; | ||
| - | + esac | ||
| - | + shift | ||
| - | +done | ||
| - | + | ||
| - | +if [ " | ||
| - | +then | ||
| - | + if [ " | ||
| - | + then LUA_SUFFIX=" | ||
| - | | ||
| - | | ||
| - | | ||
| - | fi | ||
| - | if [ " | ||
| - | then LUA_INCDIR=/ | ||
| - | - LUA_INCDIR_SET=yes | ||
| - | + LUA_INCDIR_SET=yes | ||
| - | | ||
| - | | ||
| - | - LDFLAGS=" | ||
| - | - fi | ||
| - | - if [ " | ||
| - | - then LUA_INCDIR=/ | ||
| - | - LUA_INCDIR_SET=yes | ||
| - | - LUA_LIBDIR=/ | ||
| - | - LUA_LIBDIR_SET=yes | ||
| - | - CFLAGS=" | ||
| - | - LDFLAGS=" | ||
| - | - fi | ||
| - | - if [ " | ||
| - | - then LUA_INCDIR="/ | ||
| - | - LUA_INCDIR_SET=yes | ||
| - | - CFLAGS=" | ||
| - | - LDFLAGS=" | ||
| - | - LUA_SUFFIX=" | ||
| - | - LUA_SUFFIX_SET=yes | ||
| - | - LUA_DIR=/ | ||
| - | - LUA_DIR_SET=yes | ||
| - | - fi | ||
| - | - ;; | ||
| - | - | ||
| - | - | ||
| - | - | ||
| - | - ;; | ||
| - | - | ||
| - | - REQUIRE_CONFIG=yes | ||
| - | - ;; | ||
| - | - | ||
| - | - LUA_SUFFIX=" | ||
| - | - LUA_SUFFIX_SET=yes | ||
| - | - ;; | ||
| - | - | ||
| - | - LUA_DIR=" | ||
| - | - LUA_DIR_SET=yes | ||
| - | - ;; | ||
| - | - | ||
| - | - LUA_INCDIR=" | ||
| - | - LUA_INCDIR_SET=yes | ||
| - | - ;; | ||
| - | - | ||
| - | - LUA_LIBDIR=" | ||
| - | - ;; | ||
| - | - | ||
| - | - IDN_LIB=" | ||
| - | - ;; | ||
| - | - --idn-library=*) | ||
| - | - IDN_LIBRARY=" | ||
| - | - ;; | ||
| - | - | ||
| - | - OPENSSL_LIB=" | ||
| - | - ;; | ||
| - | - | ||
| - | - CFLAGS=" | ||
| - | - ;; | ||
| - | - | ||
| - | - LDFLAGS=" | ||
| - | - ;; | ||
| - | - | ||
| - | - CC=" | ||
| - | - ;; | ||
| - | - | ||
| - | - LD=" | ||
| - | - ;; | ||
| - | - *) | ||
| - | - echo " | ||
| - | - exit 1 | ||
| - | - ;; | ||
| - | - esac | ||
| - | - shift | ||
| - | -done | ||
| - | + CFLAGS=" | ||
| - | + LFLAGS=" | ||
| - | + fi | ||
| - | +fi | ||
| - | |||
| - | if [ " | ||
| - | then | ||
| - | @@ -269,16 +247,6 @@ | ||
| - | LUA_BINDIR=" | ||
| - | fi | ||
| - | |||
| - | -if [ " | ||
| - | -then | ||
| - | - IDNA_LIBS=" | ||
| - | - CFLAGS=" | ||
| - | -fi | ||
| - | -if [ " | ||
| - | -then | ||
| - | - IDNA_LIBS=" | ||
| - | -fi | ||
| - | - | ||
| - | echo -n " | ||
| - | | ||
| - | if [ -e " | ||
| - | @@ -329,12 +297,10 @@ | ||
| - | | ||
| - | | ||
| - | | ||
| - | -IDNA_LIBS=$IDNA_LIBS | ||
| - | | ||
| - | | ||
| - | -LDFLAGS=$LDFLAGS | ||
| - | +LFLAGS=$LFLAGS | ||
| - | | ||
| - | -CXX=$CXX | ||
| - | | ||
| - | |||
| - | EOF | ||
| - | --- a/ | ||
| - | +++ b/ | ||
| - | @@ -7,32 +7,45 @@ | ||
| - | | ||
| - | | ||
| - | | ||
| - | -CXX?=g++ | ||
| - | | ||
| - | |||
| - | -.SUFFIXES: .c .o .so | ||
| - | - | ||
| - | -encodings.so: | ||
| - | - MACOSX_DEPLOYMENT_TARGET=" | ||
| - | - $(CC) -o $@ $< $(LDFLAGS) $(IDNA_LIBS) | ||
| - | - | ||
| - | -hashes.so: hashes.o | ||
| - | - MACOSX_DEPLOYMENT_TARGET=" | ||
| - | - $(CC) -o $@ $< $(LDFLAGS) -l$(OPENSSL_LIB) | ||
| - | - | ||
| - | -.c.o: | ||
| - | - $(CC) $(CFLAGS) -I$(LUA_INCDIR) -c -o $@ $< | ||
| - | - | ||
| - | -.o.so: | ||
| - | - MACOSX_DEPLOYMENT_TARGET=" | ||
| - | - $(LD) -o $@ $< $(LDFLAGS) | ||
| - | |||
| - | all: encodings.so hashes.so pposix.so signal.so | ||
| - | |||
| - | | ||
| - | | ||
| - | + | ||
| - | |||
| - | | ||
| - | rm -f *.o | ||
| - | rm -f *.so | ||
| - | rm -f ../ | ||
| - | + | ||
| - | +encodings.o: | ||
| - | + $(CC) $(CFLAGS) -I$(LUA_INCDIR) -c -o encodings.o encodings.c | ||
| - | +encodings.so: | ||
| - | + MACOSX_DEPLOYMENT_TARGET=" | ||
| - | + $(LD) $(LFLAGS) -o encodings.so encodings.o -L$(LUA_LIBDIR) -llua$(LUA_SUFFIX) -lidn | ||
| - | + | ||
| - | + | ||
| - | +hashes.o: hashes.c | ||
| - | + $(CC) $(CFLAGS) -I$(LUA_INCDIR) -c -o hashes.o hashes.c | ||
| - | +hashes.so: hashes.o | ||
| - | + MACOSX_DEPLOYMENT_TARGET=" | ||
| - | + export MACOSX_DEPLOYMENT_TARGET; | ||
| - | + $(LD) $(LFLAGS) -o hashes.so hashes.o -L$(LUA_LIBDIR) -llua$(LUA_SUFFIX) -lcrypto | ||
| - | + | ||
| - | +pposix.o: pposix.c | ||
| - | + $(CC) $(CFLAGS) -I$(LUA_INCDIR) -c -o pposix.o pposix.c | ||
| - | +pposix.so: pposix.o | ||
| - | + MACOSX_DEPLOYMENT_TARGET=" | ||
| - | + export MACOSX_DEPLOYMENT_TARGET; | ||
| - | + $(LD) $(LFLAGS) -o pposix.so pposix.o -L$(LUA_LIBDIR) -llua$(LUA_SUFFIX) | ||
| - | + | ||
| - | +signal.o: signal.c | ||
| - | + $(CC) $(CFLAGS) -I$(LUA_INCDIR) -c -o signal.o signal.c | ||
| - | +signal.so: signal.o | ||
| - | + MACOSX_DEPLOYMENT_TARGET=" | ||
| - | + export MACOSX_DEPLOYMENT_TARGET; | ||
| - | + $(LD) $(LFLAGS) -o signal.so signal.o -L$(LUA_LIBDIR) -llua$(LUA_SUFFIX) | ||
| - | + | ||
| - | --- a/ | ||
| - | +++ b/ | ||
| - | @@ -223,7 +223,7 @@ | ||
| - | |||
| - | |||
| - | | ||
| - | - math.randomseed(math.floor(10000*socket.gettime())); | ||
| - | + math.randomseed(math.floor(10000*socket.gettime()) % 0x80000000); | ||
| - | | ||
| - | | ||
| - | end | ||
| - | </ | ||
| - | |||
| - | ==== Build ==== | ||
| - | Ready, now compile as usual, example: | ||
| - | <code bash> | ||
| - | cd ~/ | ||
| - | echo " | ||
| - | # CONFIG_TARGET_ar71xx_generic_Default is not set | ||
| - | CONFIG_TARGET_ar71xx_generic_TLWR842=y | ||
| - | CONFIG_PACKAGE_block-mount=y | ||
| - | CONFIG_PACKAGE_luci=y | ||
| - | CONFIG_PACKAGE_luci-app-qos=y | ||
| - | CONFIG_PACKAGE_kmod-fs-ext4=y | ||
| - | CONFIG_PACKAGE_kmod-ledtrig-heartbeat=y | ||
| - | CONFIG_PACKAGE_kmod-input-gpio-keys-polled=y | ||
| - | CONFIG_PACKAGE_kmod-usb-storage=y | ||
| - | CONFIG_ATH_USER_REGD=y | ||
| - | CONFIG_PACKAGE_prosody=m" | ||
| - | make defconfig | ||
| - | time make -j8 world | ||
| - | </ | ||
| - | |||
| - | ==== Download preparation ==== | ||
| - | The required packages should be copied to a downloadable location, in this case ~/ | ||
| - | <code bash> | ||
| - | r=34185 | ||
| - | cp ~/ | ||
| - | cp ~/ | ||
| - | </ | ||
| - | |||
| - | ==== Install ==== | ||
| - | <code bash> | ||
| - | ssh root@192.168.1.1 | ||
| - | / | ||
| - | opkg remove prosody luaexpat | ||
| - | cd /tmp | ||
| - | rm prosody_0.8.2-1_ar71xx.ipk luaexpat_1.2.0-1_ar71xx.ipk | ||
| - | r=34185 | ||
| - | wget http:// | ||
| - | opkg install luaexpat_1.2.0-1_ar71xx.ipk prosody_0.8.2-1_ar71xx.ipk | ||
| </ | </ | ||