OpenWrt for Arduino Yun cheat sheet: Difference between revisions

 
(233 intermediate revisions by the same user not shown)
Line 1: Line 1:
OpenWrt running on Atheros AR9331 of Arduino Yun, LLC edition OpenWrt-Yun also Linino, is in obsolete (and has security issues) at kernel and various packages. I will try to investigate the upgrade to the latest version of OpenWrt. ('''With Absolutely NO Warranty''')
OpenWrt which runs on the Atheros AR 9331 of Arduino Yun, LLC edition OpenWrt-Yun also Linino is obsolete in the kernel and various packages (and there are security problems). I will drill down on how to upgrade to the latest version of OpenWrt. ('''With Absolutely NO Warranty''')




Prepare for the Security update of OpenWrt-Yun, Arduino Yun Operating System (YunOS). '''In the IoT ERA, I think it is a very important thing.'''
Prepare for the Security update of OpenWrt-Yun, Arduino Yun Operating System. '''In the IoT ERA, I think it is a very important thing.'''
 
<syntaxhighlight lang="text" enclose="div">
BusyBox v1.25.1 () built-in shell (ash)
 
    _________
    /        /\      _    ___ ___  ___
  /  LE    /  \    | |  | __|  \| __|
  /    DE  /    \  | |__| _|| |) | _|
/________/  LE  \  |____|___|___/|___|                      lede-project.org
\        \  DE /
  \    LE  \    /  -----------------------------------------------------------
  \  DE    \  /    Reboot (17.01-SNAPSHOT, r3796-473e994)
    \________\/    -----------------------------------------------------------
 
root@Arduino:~# cat /proc/cpuinfo
system type            : Atheros AR9330 rev 1
machine                : Arduino Yun
processor              : 0
cpu model              : MIPS 24Kc V7.4
BogoMIPS                : 265.42
wait instruction        : yes
microsecond timers      : yes
tlb_entries            : 16
extra interrupt vector  : yes
hardware watchpoint    : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa                    : mips1 mips2 mips32r1 mips32r2
ASEs implemented        : mips16
shadow register sets    : 1
kscratch registers      : 0
package                : 0
core                    : 0
VCED exceptions        : not available
VCEI exceptions        : not available
 
root@Arduino:~# uname -a
Linux Arduino 4.4.108 #0 Fri Dec 29 23:36:25 2017 mips GNU/Linux
</syntaxhighlight>
 
'''NOTE:''' Arduino.cc (LLC) goes to '''LininoOS'''!!!
: [https://www.arduino.cc/en/Guide/ArduinoYunLin Arduino Yún LininoOS]  (since 2-Nov-2016)
 


= OpenWrt-Yun Chaos Calmer 15.05 =
= OpenWrt-Yun Chaos Calmer 15.05 =
RedSnake64's implementation found at [https://forum.arduino.cc/index.php?topic=347224.0 Arduino Yun forum.]
RedSnake64's implementation can be found at [https://forum.arduino.cc/index.php?topic=347224.0 Arduino Yun forum.]


RedSnake64 edition OpenWrt-Yun:
RedSnake64 edition OpenWrt-Yun:
  [https://github.com/RedSnake64/openwrt-yun/tree/15.05 https://github.com/RedSnake64/openwrt-yun/tree/15.05]
  [https://github.com/RedSnake64/openwrt-yun/tree/15.05 https://github.com/RedSnake64/openwrt-yun/tree/15.05]
  [https://github.com/RedSnake64/openwrt-yun/releases ChaosCalmer_v1.3]
  [https://github.com/RedSnake64/openwrt-yun/releases ChaosCalmer_v1.4]
:I tried it. 'mDNS' is not active, so I could not be accessed in '.local'.  
:I tried it. 'mDNS' is not active, so I could not be accessed in '.local'.  


:Grasp that implementation. I decided to make Arduino Yun package that can be used in OpenWrt trunk Bleeding Edge.
:Grasp that implementation. I decided to make Arduino Yun package that can be used in OpenWrt trunk Bleeding Edge.


= Investigate the Yun Profile of the OpenWrt Project =
RedSnake64 edition become Arduino LLC Official edition:
The OpenWrt Project, already there is a Arduino Yun Profile.
[https://github.com/arduino/openwrt-yun-1505 https://github.com/arduino/openwrt-yun-1505]
  [https://git.openwrt.org/?p=openwrt.git;a=blob;f=target/linux/ar71xx/generic/profiles/arduino.mk;h=8ae5054a7e312213cf872833594b16c0f0237cf1;hb=HEAD target/linux/ar71xx/generic/profiles/arduino.mk]
 
  [https://git.openwrt.org/?p=openwrt.git;a=commit;h=914d4fc6219538640ce843b6cf2a6cab5d71db8a ar71xx: add Arduino Yun]
= Explore the Yun Profile of the OpenWrt / LEDE Project =
The OpenWrt / LEDE Project, already exist a Arduino Yun Profile.
  [https://git.openwrt.org/?p=source.git;a=blob;f=target/linux/ar71xx/generic/profiles/arduino.mk;h=8ae5054a7e312213cf872833594b16c0f0237cf1;hb=HEAD target/linux/ar71xx/generic/profiles/arduino.mk]
  [https://git.openwrt.org/?p=source.git;a=commitdiff;h=fa137d51f5cbc678922950a6b06883c1d2141ac2 ar71xx: add Arduino Yun]


  [https://github.com/openwrt/packages/tree/master/utils/yunbridge https://github.com/openwrt/packages/tree/master/utils/yunbridge]
  [https://github.com/openwrt/packages/tree/master/utils/yunbridge https://github.com/openwrt/packages/tree/master/utils/yunbridge]
Line 26: Line 70:
  [https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/ https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/]
  [https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/ https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/]
  [https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/ https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/]
  [https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/ https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/]
[https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/openwrt-ar71xx-generic-yun-16M-squashfs-sysupgrade.bin openwrt-ar71xx-generic-yun-16M-squashfs-sysupgrade.bin]
:This System Image is corresponding Arduino Yun Hardware. but, of course Arduino Yun own software is not implemented.
::Mirror site: [http://ftp.stw-bonn.de/pub/openwrt/snapshots/trunk/ar71xx/generic/ http://ftp.stw-bonn.de/pub/openwrt/snapshots/trunk/ar71xx/generic/]
::Mirror site: [http://ftp.stw-bonn.de/pub/openwrt/snapshots/trunk/ar71xx/generic/ http://ftp.stw-bonn.de/pub/openwrt/snapshots/trunk/ar71xx/generic/]
OpenWrt / LEDE snapshot images:
[http://downloads.lede-project.org/snapshots/targets/ar71xx/generic/ http://downloads.lede-project.org/snapshots/targets/ar71xx/generic/]
[http://downloads.lede-project.org/snapshots/targets/ar71xx/generic/packages/ http://downloads.lede-project.org/snapshots/targets/ar71xx/generic/packages/]
[http://downloads.lede-project.org/snapshots/packages/mips_24kc/ http://downloads.lede-project.org/snapshots/packages/mips_24kc/]
:'''This System Image is corresponding Arduino Yun Hardware. but, of course Arduino Yun own software is not implemented.'''


OpenWrt Core:
OpenWrt Core:
  [https://git.openwrt.org/?p=openwrt.git;a=tree git.openwrt.org Git - openwrt trunk tree]
  [https://git.openwrt.org/?p=openwrt.git;a=tree git.openwrt.org Git - openwrt trunk tree]
  [https://git.openwrt.org/?p=openwrt.git;a=shortlog;h=HEAD shortlog]
  [https://git.openwrt.org/?p=openwrt.git;a=shortlog;h=HEAD shortlog]
OpenWrt / LEDE Core:
[https://git.lede-project.org/?p=source.git;a=tree git.lede-project.org Git - source.git/tree]
[https://git.lede-project.org/?p=source.git;a=shortlog shortlog]


OpenWrt Packages:
OpenWrt Packages:
Line 43: Line 95:
:Optional package of OpenWrt Project is managed on github.
:Optional package of OpenWrt Project is managed on github.


= Investigate the OpenWrt-Yun =
= Explore the OpenWrt-Yun =
== OpenWrt-Yun arduino packages ==
== OpenWrt-Yun arduino packages ==
LLC edition arduino package:
LLC edition arduino package:
Line 50: Line 102:
RedSnake64 edition arduino package:
RedSnake64 edition arduino package:
  [https://github.com/RedSnake64/openwrt-arduino-packages/tree/for-15.05 https://github.com/RedSnake64/openwrt-arduino-packages/tree/for-15.05]
  [https://github.com/RedSnake64/openwrt-arduino-packages/tree/for-15.05 https://github.com/RedSnake64/openwrt-arduino-packages/tree/for-15.05]
LLC edition OpenWrt CC version arduino package:
[https://github.com/arduino/openwrt-arduino-packages/tree/for-15.05 https://github.com/arduino/openwrt-arduino-packages/tree/for-15.05]
:Hmmmm.... '''CONFIG_USE_UCLIBC=y'''
::(I go USE_MUSL ;)


Arduino OpenWrt Yún packages:
Arduino OpenWrt Yún packages:
Line 58: Line 115:
(y) luci-app-arduino-webpanel
(y) luci-app-arduino-webpanel
(m) node *
(m) node *
(m) node-bleno *
(m) node-bleno
(m) node-noble *
(m) node-noble
(m) node-serialport *
(m) node-serialport *
(m) node-socket.io *
(m) node-socket.io
(m) node-socket.io-legacy *
(m) node-socket.io-legacy *
(m) node-socket.io-client *
(m) node-socket.io-client
(m) node-socket.io-client-legacy *
(m) node-socket.io-client-legacy *
(m) node-sqlite3 *
(m) node-sqlite3
(m) node-ws *
(m) node-ws
(y) rng-tools *
(y) rng-tools *
(y) spacebrew
(y) spacebrew
Line 78: Line 135:
#cpu-mcu-bridge: overlaps with OpenWrt yunbridge package. For compatibility use a Arduino package.
#cpu-mcu-bridge: overlaps with OpenWrt yunbridge package. For compatibility use a Arduino package.
#cwiid: only RedSnake64 edition. cwiid is Nintendo Wii remote interface package, so should delete.
#cwiid: only RedSnake64 edition. cwiid is Nintendo Wii remote interface package, so should delete.
#node, node-*: Update to v4.4.2. '''If you want to run node.js, Should turn on MIPS FPU EMULATOR kernel config.'''
#node: '''If you want to run node.js, Should turn on MIPS FPU EMULATOR kernel config.'''
#node, node-serialport: use a OpenWrt package. so should delete.
#"-legacy" mean that the 0.9.x version.
#"-legacy" mean that the 0.9.x version.
#rng-tools: OpenWrt package has a problem. '''Should be changed START=98 to START=48.'''
#rng-tools: use a OpenWrt package. so should delete.
#v8m-rb: node v4.4.2 not depend it, so should delete.
#v8m-rb: Not required, so should delete.


'''My new arduino packages here''':
'''My new arduino packages here''':
Line 87: Line 145:


Arturo Rinaldi edition linino packages:
Arturo Rinaldi edition linino packages:
  [https://github.com/artynet/openwrt/tree/gcc5-07/package/linino https://github.com/artynet/openwrt/tree/gcc5-07/package/linino]
  [https://github.com/artynet/LEDE/tree/linino-20/package/linino https://github.com/artynet/LEDE/tree/linino-20/package/linino]


= Important concept of OpenWrt =
= Important concept of OpenWrt =
'''The Minimized (smaller footprint) is Highest Priority. This is the large difference in policy between PC GNU/Linux and OpenWrt.'''
'''The Minimized (smaller footprint) is Highest Priority. This is the large difference in policy between PC GNU/Linux and OpenWrt.'''


= Trunk Bleeding Edge version of OpenWrt-Yun package and build environment =
= Trunk Bleeding Edge / Reboot version of OpenWrt-Yun package and build environment =


  [https://git.openwrt.org/?p=openwrt.git https://git.openwrt.org/?p=openwrt.git]
  [https://github.com/openwrt/openwrt.git https://github.com/openwrt/openwrt.git]
  [https://github.com/nxhack/openwrt-yun-build-extra https://github.com/nxhack/openwrt-yun-build-extra]
  [https://github.com/nxhack/openwrt-yun-build-extra https://github.com/nxhack/openwrt-yun-build-extra]
  [https://github.com/nxhack/openwrt-arduino-packages https://github.com/nxhack/openwrt-arduino-packages]
  [https://github.com/nxhack/openwrt-arduino-packages https://github.com/nxhack/openwrt-arduino-packages]
Line 102: Line 160:
mkdir Build_Path_Some_Where
mkdir Build_Path_Some_Where
cd Build_Path_Some_Where
cd Build_Path_Some_Where
git clone --depth=1 https://git.openwrt.org/openwrt.git
git clone https://github.com/openwrt/openwrt.git
git clone --depth=1 --branch master --single-branch https://github.com/nxhack/openwrt-yun-build-extra.git
git clone --depth=1 --branch master --single-branch https://github.com/nxhack/openwrt-yun-build-extra.git
cd openwrt
ln -s ../openwrt-yun-build-extra/* .
</syntaxhighlight>
Or lede-17.01
<syntaxhighlight lang="bash" enclose="div">
mkdir Build_Path_Some_Where
cd Build_Path_Some_Where
git clone --branch lede-17.01 https://github.com/openwrt/openwrt.git
git clone --depth=1 --branch lede-17.01 --single-branch https://github.com/nxhack/openwrt-yun-build-extra.git
cd openwrt
cd openwrt
ln -s ../openwrt-yun-build-extra/* .
ln -s ../openwrt-yun-build-extra/* .
</syntaxhighlight>
</syntaxhighlight>


Please modify ./files/etc/opkg/distfeeds.conf
Please modify ./files/etc/opkg/distfeeds.conf
Line 114: Line 182:
./FIRST_SETUP_ubuntu_Trusty_Tahr.sh
./FIRST_SETUP_ubuntu_Trusty_Tahr.sh
</syntaxhighlight>
</syntaxhighlight>
:Also run fine on 'Bash on Ubuntu on Widnows' ;)


Build:
Build:
Line 120: Line 189:
</syntaxhighlight>
</syntaxhighlight>


When build succeed, You find '''openwrt-ar71xx-generic-yun-16M-squashfs-sysupgrade.bin''' in ./bin/ar71xx directory.
When build succeed, You find '''lede-ar71xx-generic-yun-16M-squashfs-sysupgrade.bin''' in ./bin/targets/ar71xx/generic directory.
:(Apply Yun-Shield patch, then SELECT Yun Shield: '''lede-ar71xx-generic-yun-shield-squashfs-sysupgrade.bin''')


In order to using the packages, You must placed kernel packages and arduino packages to server (or SD card).
In order to using the packages, You must placed kernel packages and arduino packages to server (or SD card).
=== '''LEDE Trunk Breaking changes''' ===
[https://github.com/lede-project/source/commit/bb46b635df48d5c2368f98646c16e3333cbc11fb ar71xx: move Arduino Yun to generic building code]
To use the new partitioning, you need to update your U-Boot env in advance:
<syntaxhighlight lang="bash" enclose="div">
setenv mtdparts "spi0.0:256k(u-boot)ro,64k(u-boot-env),15936k(firmware),64k(nvram),64k(art)ro"
setenv bootcmd "run addboard; run addtty; run addparts; run addrootfs; bootm 0x9f050000 || bootm 0x9fde0000"
saveenv
</syntaxhighlight>
memo memo... be careful
<syntaxhighlight lang="bash" enclose="div">
setenv board Yun
setenv mtdparts "spi0.0:256k(u-boot)ro,64k(u-boot-env),15936k(firmware),64k(nvram),64k(art)ro"
setenv rootfstype "squashfs,jffs2"
setenv bootargs "console=ttyATH0,250000 board=Yun mem=64M"
setenv noinitrd
</syntaxhighlight>
memo...
:setenv serverip ‹tftp-server-ip›; setenv ipaddr ‹yun-board-ip›;
<syntaxhighlight lang="bash" enclose="div">
setenv serverip 192.168.1.10;
setenv ipaddr 192.168.1.1;
ping 192.168.1.10;
</syntaxhighlight>
[http://www.arduino.org/learning/tutorials/advanced-guides/how-to-upgrade-lininoio-os-from-u-boot LininoIO OS upgrade from U-boot]
[https://www.arduino.cc/en/Tutorial/YunUBootReflash Reflashing the OpenWrt-Yun image on the Yún]
[https://www.arduino.cc/en/Tutorial/YunSysRestore Restore the 1.5.3 image after you did sysupgrade to 1.6.2 on old Yún]
Restore old image:
<syntaxhighlight lang="bash" enclose="div">
setenv bootargs board=YUN console=ttyATH0,250000 mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot env)ro,14656k(rootfs),1280k(kernel),64k(nvram),64k(art),15936k@0x50000(firmware) rootfstype=squashfs,jffs2 noinitrd
saveenv
</syntaxhighlight>


== Essential items in the kernel configuration ==
== Essential items in the kernel configuration ==
'''diffconfig'''
<syntaxhighlight lang="text" enclose="div">
<syntaxhighlight lang="text" enclose="div">
CONFIG_TARGET_ar71xx=y
CONFIG_TARGET_ar71xx=y
CONFIG_TARGET_ar71xx_generic=y
CONFIG_TARGET_ar71xx_generic=y
CONFIG_TARGET_ar71xx_generic_Yun=y
CONFIG_TARGET_ar71xx_generic_DEVICE_arduino-yun=y
 
CONFIG_ALL_KMODS=y
CONFIG_ALL_NONSHARED=y
CONFIG_DEVEL=y
CONFIG_BUILD_PATENTED=y
CONFIG_CCACHE=y
CONFIG_IB=y
CONFIG_IB_STANDALONE=y
CONFIG_IMAGEOPT=y
CONFIG_IMAGEOPT=y
# CONFIG_PREINITOPT is not set
CONFIG_KERNEL_MIPS_FPU_EMULATOR=y
CONFIG_TARGET_PREINIT_SUPPRESS_STDERR=y
CONFIG_LIBCURL_COOKIES=y
CONFIG_TARGET_PREINIT_TIMEOUT=2
CONFIG_LIBCURL_FILE=y
# CONFIG_TARGET_PREINIT_SHOW_NETMSG is not set
CONFIG_LIBCURL_FTP=y
# CONFIG_TARGET_PREINIT_SUPPRESS_FAILSAFE_NETMSG is not set
CONFIG_LIBCURL_HTTP=y
CONFIG_TARGET_PREINIT_IFNAME=""
CONFIG_LIBCURL_NO_SMB="!"
CONFIG_TARGET_PREINIT_IP="192.168.1.1"
CONFIG_LIBCURL_OPENSSL=y
CONFIG_TARGET_PREINIT_NETMASK="255.255.255.0"
CONFIG_LIBCURL_PROXY=y
CONFIG_TARGET_PREINIT_BROADCAST="192.168.1.255"
CONFIG_LUCI_LANG_en=y
# CONFIG_INITOPT is not set
CONFIG_MAKE_TOOLCHAIN=y
CONFIG_TARGET_INIT_PATH="/usr/sbin:/usr/bin:/sbin:/bin"
CONFIG_NODEJS_8=y
CONFIG_TARGET_INIT_ENV=""
CONFIG_NODEJS_ICU_NONE=y
CONFIG_TARGET_INIT_CMD="/sbin/init"
CONFIG_OPENSSL_WITH_COMPRESSION=y
CONFIG_TARGET_INIT_SUPPRESS_STDERR=y
CONFIG_OPENSSL_WITH_DEPRECATED=y
CONFIG_VERSIONOPT=y
CONFIG_OPENSSL_WITH_EC=y
CONFIG_VERSION_DIST="OpenWrt"
CONFIG_OPENSSL_WITH_NPN=y
CONFIG_VERSION_NICK="Bleeding Edge"
CONFIG_OPENSSL_WITH_PSK=y
CONFIG_VERSION_NUMBER=""
CONFIG_OPENSSL_WITH_SRP=y
CONFIG_VERSION_REPO="http://downloads.openwrt.org/snapshots/trunk/%S/packages"
CONFIG_PACKAGE_ajtcl=m
CONFIG_VERSION_MANUFACTURER="Arduino"
CONFIG_PACKAGE_ajtcl-alljoynjs=m
CONFIG_VERSION_MANUFACTURER_URL=""
CONFIG_PACKAGE_ajtcl-alljoynjs-samples=m
CONFIG_VERSION_PRODUCT="Arduino Yun"
CONFIG_PACKAGE_ajtcl-samples=m
CONFIG_VERSION_HWREV="1.0"
CONFIG_PACKAGE_ajtcl-services=m
# CONFIG_VERSION_FILENAMES is not set
CONFIG_PACKAGE_alljoyn=m
 
CONFIG_PACKAGE_alljoyn-about=m
CONFIG_PER_FEED_REPO=y
CONFIG_PACKAGE_alljoyn-c=m
CONFIG_PER_FEED_REPO_ADD_DISABLED=y
CONFIG_PACKAGE_alljoyn-config=m
CONFIG_PER_FEED_REPO_ADD_COMMENTED=y
CONFIG_PACKAGE_alljoyn-config-samples=m
CONFIG_FEED_packages=y
CONFIG_PACKAGE_alljoyn-controlpanel=m
CONFIG_FEED_luci=y
CONFIG_PACKAGE_alljoyn-controlpanel-samples=m
CONFIG_FEED_routing=y
CONFIG_PACKAGE_alljoyn-non-gw-config=m
CONFIG_FEED_telephony=y
CONFIG_PACKAGE_alljoyn-notification=m
CONFIG_FEED_management=y
CONFIG_PACKAGE_alljoyn-notification-samples=m
CONFIG_FEED_targets=y
CONFIG_PACKAGE_alljoyn-sample_apps=m
CONFIG_FEED_arduino=y
CONFIG_PACKAGE_alljoyn-samples=m
# CONFIG_SMIMEOPT is not set
CONFIG_PACKAGE_alljoyn-services_common=m
CONFIG_OPKGSMIME_PASSPHRASE=y
CONFIG_PACKAGE_arduinoos=m
 
CONFIG_PACKAGE_argp-standalone=y
CONFIG_DEFAULT_base-files=y
CONFIG_PACKAGE_avahi-daemon-service-ssh=y
CONFIG_DEFAULT_busybox=y
CONFIG_PACKAGE_avahi-dbus-daemon=y
CONFIG_DEFAULT_dnsmasq=y
CONFIG_PACKAGE_avahi-dnsconfd=y
CONFIG_DEFAULT_dropbear=y
CONFIG_PACKAGE_avahi-utils=y
CONFIG_DEFAULT_firewall=y
CONFIG_DEFAULT_fstools=y
CONFIG_DEFAULT_ip6tables=y
CONFIG_DEFAULT_iptables=y
CONFIG_DEFAULT_iwinfo=y
CONFIG_DEFAULT_kmod-ath9k=y
CONFIG_DEFAULT_kmod-gpio-button-hotplug=y
CONFIG_DEFAULT_kmod-usb-core=y
CONFIG_DEFAULT_kmod-usb2=y
CONFIG_DEFAULT_libc=y
CONFIG_DEFAULT_libgcc=y
CONFIG_DEFAULT_mtd=y
CONFIG_DEFAULT_netifd=y
CONFIG_DEFAULT_odhcp6c=y
CONFIG_DEFAULT_odhcpd=y
CONFIG_DEFAULT_opkg=y
CONFIG_DEFAULT_ppp=y
CONFIG_DEFAULT_ppp-mod-pppoe=y
CONFIG_DEFAULT_swconfig=y
CONFIG_DEFAULT_uboot-envtools=y
CONFIG_DEFAULT_uci=y
CONFIG_DEFAULT_uclient-fetch=y
CONFIG_DEFAULT_wpad-mini=y
 
CONFIG_PACKAGE_python-base=y
CONFIG_PACKAGE_python-light=y
 
CONFIG_PACKAGE_avrdude=y
CONFIG_PACKAGE_avrdude=y
CONFIG_PACKAGE_badblocks=y
CONFIG_PACKAGE_blkid=y
CONFIG_PACKAGE_block-mount=y
CONFIG_PACKAGE_bluez-libs=m
CONFIG_PACKAGE_bossa=y
CONFIG_PACKAGE_ca-bundle=y
CONFIG_PACKAGE_ca-certificates=y
CONFIG_PACKAGE_ciao=y
CONFIG_PACKAGE_ciao-connector-phant=m
CONFIG_PACKAGE_ciao-connector-smtp=m
CONFIG_PACKAGE_ciao-connector-xmpp=m
CONFIG_PACKAGE_cpu-mcu-bridge=y
CONFIG_PACKAGE_cpu-mcu-bridge=y
CONFIG_PACKAGE_curl=y
CONFIG_PACKAGE_dbus=y
CONFIG_PACKAGE_dbus-utils=y
CONFIG_PACKAGE_dosfstools=y
CONFIG_PACKAGE_duktape=m
CONFIG_PACKAGE_e2fsprogs=y
CONFIG_PACKAGE_fdisk=y
CONFIG_PACKAGE_gnupg=y
CONFIG_PACKAGE_hidapi=m
CONFIG_PACKAGE_kmod-fs-exfat=m
CONFIG_PACKAGE_kmod-fs-msdos=y
CONFIG_PACKAGE_kmod-fs-vfat=y
CONFIG_PACKAGE_kmod-loop=y
CONFIG_PACKAGE_kmod-nls-cp437=y
CONFIG_PACKAGE_kmod-nls-iso8859-1=y
CONFIG_PACKAGE_kmod-nls-utf8=y
CONFIG_PACKAGE_kmod-scsi-core=y
CONFIG_PACKAGE_kmod-scsi-generic=y
CONFIG_PACKAGE_kmod-spi-bitbang=y
CONFIG_PACKAGE_kmod-spi-dev=y
CONFIG_PACKAGE_kmod-spi-gpio=y
CONFIG_PACKAGE_kmod-spi-gpio-custom=y
CONFIG_PACKAGE_kmod-usb-storage=y
CONFIG_PACKAGE_libavahi-client=y
CONFIG_PACKAGE_libavahi-compat-libdnssd=y
CONFIG_PACKAGE_libavahi-dbus-support=y
CONFIG_PACKAGE_libblkid=y
CONFIG_PACKAGE_libbz2=y
CONFIG_PACKAGE_libcap=m
CONFIG_PACKAGE_libcomerr=y
CONFIG_PACKAGE_libcurl=y
CONFIG_PACKAGE_libdaemon=y
CONFIG_PACKAGE_libdbus=y
CONFIG_PACKAGE_libelf1=y
CONFIG_PACKAGE_libevdev=m
CONFIG_PACKAGE_libexpat=y
CONFIG_PACKAGE_libext2fs=y
CONFIG_PACKAGE_libfdisk=y
CONFIG_PACKAGE_libffi=y
CONFIG_PACKAGE_libftdi1=y
CONFIG_PACKAGE_libfuse=m
CONFIG_PACKAGE_libgdbm=y
CONFIG_PACKAGE_libiwinfo-lua=y
CONFIG_PACKAGE_liblua=y
CONFIG_PACKAGE_liblucihttp=y
CONFIG_PACKAGE_liblucihttp-lua=y
CONFIG_PACKAGE_liblzma=m
CONFIG_PACKAGE_libncurses=y
CONFIG_PACKAGE_libopenssl=y
CONFIG_PACKAGE_libpam=m
CONFIG_PACKAGE_libpcre=y
CONFIG_PACKAGE_libpopt=m
CONFIG_PACKAGE_libreadline=y
CONFIG_PACKAGE_librt=y
CONFIG_PACKAGE_libsmartcols=y
CONFIG_PACKAGE_libss=y
CONFIG_PACKAGE_libstdcpp=y
CONFIG_PACKAGE_libubus-lua=y
CONFIG_PACKAGE_libudev-fbsd=m
CONFIG_PACKAGE_libusb-1.0=y
CONFIG_PACKAGE_libusb-compat=y
CONFIG_PACKAGE_libustream-openssl=y
CONFIG_PACKAGE_libuuid=y
CONFIG_PACKAGE_logrotate=m
CONFIG_PACKAGE_lua=y
CONFIG_PACKAGE_lua-base64=m
CONFIG_PACKAGE_lua-coxpcall=m
CONFIG_PACKAGE_lua-wsapi-base=m
CONFIG_PACKAGE_lua-wsapi-xavante=m
CONFIG_PACKAGE_lua-xavante=m
CONFIG_PACKAGE_luafilesystem=m
CONFIG_PACKAGE_luci=y
CONFIG_PACKAGE_luci-app-arduino-webpanel=y
CONFIG_PACKAGE_luci-app-arduino-webpanel=y
CONFIG_PACKAGE_luci-app-firewall=y
CONFIG_PACKAGE_luci-base=y
CONFIG_PACKAGE_luci-i18n-base-en=y
CONFIG_PACKAGE_luci-i18n-firewall-en=y
CONFIG_PACKAGE_luci-lib-ip=y
CONFIG_PACKAGE_luci-lib-json=y
CONFIG_PACKAGE_luci-lib-jsonc=y
CONFIG_PACKAGE_luci-lib-nixio=y
CONFIG_PACKAGE_luci-mod-admin-full=y
CONFIG_PACKAGE_luci-proto-ipv6=y
CONFIG_PACKAGE_luci-proto-ppp=y
CONFIG_PACKAGE_luci-theme-bootstrap=y
CONFIG_PACKAGE_luci-theme-openwrt=y
CONFIG_PACKAGE_mg=y
CONFIG_PACKAGE_nano=y
CONFIG_PACKAGE_node=m
CONFIG_PACKAGE_node=m
CONFIG_PACKAGE_node-actions-on-google=m
CONFIG_PACKAGE_node-alexa-app=m
CONFIG_PACKAGE_node-alexa-sdk=m
CONFIG_PACKAGE_node-arduino-firmata=m
CONFIG_PACKAGE_node-authenticate-pam=m
CONFIG_PACKAGE_node-autobahn=m
CONFIG_PACKAGE_node-aws-iot-device-sdk=m
CONFIG_PACKAGE_node-aws-sdk=m
CONFIG_PACKAGE_node-azure-event-hubs=m
CONFIG_PACKAGE_node-azure-iot-device-amqp=m
CONFIG_PACKAGE_node-azure-iot-device-http=m
CONFIG_PACKAGE_node-azure-iot-device-mqtt=m
CONFIG_PACKAGE_node-azure-iothub=m
CONFIG_PACKAGE_node-bignum=m
CONFIG_PACKAGE_node-binaryjs=m
CONFIG_PACKAGE_node-bleacon=m
CONFIG_PACKAGE_node-bleno=m
CONFIG_PACKAGE_node-bleno=m
CONFIG_PACKAGE_node-bluetooth-hci-socket=m
CONFIG_PACKAGE_node-browserify=m
CONFIG_PACKAGE_node-bufferutil=m
CONFIG_PACKAGE_node-coap=m
CONFIG_PACKAGE_node-cpx=m
CONFIG_PACKAGE_node-cylon=m
CONFIG_PACKAGE_node-cylon-firmata=m
CONFIG_PACKAGE_node-cylon-gpio=m
CONFIG_PACKAGE_node-cylon-i2c=m
CONFIG_PACKAGE_node-eddystone-beacon=m
CONFIG_PACKAGE_node-ejdb=m
CONFIG_PACKAGE_node-epoll=m
CONFIG_PACKAGE_node-exorcist=m
CONFIG_PACKAGE_node-express=m
CONFIG_PACKAGE_node-ffi=m
CONFIG_PACKAGE_node-firmata=m
CONFIG_PACKAGE_node-forever=m
CONFIG_PACKAGE_node-fuse-bindings=m
CONFIG_PACKAGE_node-hap-nodejs=m
CONFIG_PACKAGE_node-hashmap=m
CONFIG_PACKAGE_node-hashtable=m
CONFIG_PACKAGE_node-homebridge=m
CONFIG_PACKAGE_node-i2c-bus=m
CONFIG_PACKAGE_node-ibmiotf=m
CONFIG_PACKAGE_node-ideino-linino-lib=m
CONFIG_PACKAGE_node-iothub-explorer=m
CONFIG_PACKAGE_node-johnny-five=m
CONFIG_PACKAGE_node-jsonfile=m
CONFIG_PACKAGE_node-level=m
CONFIG_PACKAGE_node-leveldown=m
CONFIG_PACKAGE_node-levelup=m
CONFIG_PACKAGE_node-logfmt=m
CONFIG_PACKAGE_node-lwm2m-node-lib=m
CONFIG_PACKAGE_node-mdns=m
CONFIG_PACKAGE_node-mknod=m
CONFIG_PACKAGE_node-mocha=m
CONFIG_PACKAGE_node-modbus=m
CONFIG_PACKAGE_node-mqtt=m
CONFIG_PACKAGE_node-muzzley-client=m
CONFIG_PACKAGE_node-nconf=m
CONFIG_PACKAGE_node-net-ping=m
CONFIG_PACKAGE_node-nino-io=m
CONFIG_PACKAGE_node-nitrogen=m
CONFIG_PACKAGE_node-nitrogen-cli=m
CONFIG_PACKAGE_node-nitrogen-leveldb-store=m
CONFIG_PACKAGE_node-noble=m
CONFIG_PACKAGE_node-noble=m
# CONFIG_PACKAGE_node-serialport is not set
CONFIG_PACKAGE_node-node-expat=m
CONFIG_PACKAGE_node-node-hid=m
CONFIG_PACKAGE_node-node-inspect=m
CONFIG_PACKAGE_node-node-lambda=m
CONFIG_PACKAGE_node-node-red=m
CONFIG_PACKAGE_node-node-red-contrib-gpio=m
CONFIG_PACKAGE_node-node-red-contrib-homekit=m
CONFIG_PACKAGE_node-node-red-node-arduino=m
CONFIG_PACKAGE_node-node-static=m
CONFIG_PACKAGE_node-npm=m
CONFIG_PACKAGE_node-npm-check-updates=m
CONFIG_PACKAGE_node-onoff=m
CONFIG_PACKAGE_node-pm2=m
CONFIG_PACKAGE_node-reverse-wstunnel=m
CONFIG_PACKAGE_node-rimraf=m
CONFIG_PACKAGE_node-rpio=m
CONFIG_PACKAGE_node-serialport=m
CONFIG_PACKAGE_node-simple-xmpp=m
CONFIG_PACKAGE_node-sleep=m
CONFIG_PACKAGE_node-socket.io=m
CONFIG_PACKAGE_node-socket.io=m
CONFIG_PACKAGE_node-socket.io-client=m
CONFIG_PACKAGE_node-socket.io-client=m
CONFIG_PACKAGE_node-socket.io-client-legacy=m
CONFIG_PACKAGE_node-socket.io-client-legacy=m
CONFIG_PACKAGE_node-socket.io-legacy=m
CONFIG_PACKAGE_node-socket.io-legacy=m
CONFIG_PACKAGE_node-soracom=m
CONFIG_PACKAGE_node-sqlite3=m
CONFIG_PACKAGE_node-sqlite3=m
CONFIG_PACKAGE_node-statvfs=m
CONFIG_PACKAGE_node-twilio=m
CONFIG_PACKAGE_node-typescript=m
CONFIG_PACKAGE_node-uglify-js=m
CONFIG_PACKAGE_node-usb=m
CONFIG_PACKAGE_node-utf-8-validate=m
CONFIG_PACKAGE_node-ws=m
CONFIG_PACKAGE_node-ws=m
CONFIG_PACKAGE_node-xmpp=m
CONFIG_PACKAGE_node-xmpp-client=m
CONFIG_PACKAGE_node-xmpp-component=m
CONFIG_PACKAGE_node-xmpp-server=m
CONFIG_PACKAGE_node-yarn=m
CONFIG_PACKAGE_openssl-util=y
CONFIG_PACKAGE_python-base=y
CONFIG_PACKAGE_python-email=m
CONFIG_PACKAGE_python-light=y
CONFIG_PACKAGE_python-logging=y
CONFIG_PACKAGE_python-netifaces=m
CONFIG_PACKAGE_python-openssl=y
CONFIG_PACKAGE_python-paho-mqtt=y
CONFIG_PACKAGE_python-pyserial=y
CONFIG_PACKAGE_python-xml=y
CONFIG_PACKAGE_querierd=m
CONFIG_PACKAGE_reset-serial=y
CONFIG_PACKAGE_rng-tools=y
CONFIG_PACKAGE_rng-tools=y
CONFIG_PACKAGE_rpcd=y
CONFIG_PACKAGE_rpcd-mod-rrdns=y
CONFIG_PACKAGE_shellinabox=m
CONFIG_PACKAGE_spacebrew=y
CONFIG_PACKAGE_spacebrew=y
CONFIG_PACKAGE_strace=y
CONFIG_PACKAGE_swap-utils=y
CONFIG_PACKAGE_temboo=y
CONFIG_PACKAGE_temboo=y
CONFIG_PACKAGE_uSDaemon=y
CONFIG_PACKAGE_terminfo=y
CONFIG_PACKAGE_tune2fs=y
CONFIG_PACKAGE_uSDaemon=m
CONFIG_PACKAGE_uboot-ar71xx-linino-yun=y
CONFIG_PACKAGE_uhttpd=y
CONFIG_PACKAGE_uhttpd-mod-lua=y
CONFIG_PACKAGE_uhttpd-mod-ubus=y
CONFIG_PACKAGE_usbutils=y
CONFIG_PACKAGE_wget=y
CONFIG_PACKAGE_wireless-tools=y
CONFIG_PACKAGE_yun-conf=y
CONFIG_PACKAGE_yun-conf=y
CONFIG_PACKAGE_yun-scripts=y
CONFIG_PACKAGE_yun-scripts=y
 
CONFIG_PACKAGE_zlib=y
CONFIG_PACKAGE_luci=y
CONFIG_SDK=y
CONFIG_PACKAGE_luci-base=y
CONFIG_VERSIONOPT=y
CONFIG_LUCI_LANG_en=y
CONFIG_VERSION_BUG_URL=""
CONFIG_PACKAGE_luci-mod-admin-full=y
CONFIG_VERSION_CODE=""
CONFIG_PACKAGE_luci-app-arduino-webpanel=y
CONFIG_VERSION_DIST="OpenWrt"
CONFIG_PACKAGE_luci-app-firewall=y
CONFIG_VERSION_HOME_URL=""
CONFIG_PACKAGE_luci-theme-bootstrap=y
CONFIG_VERSION_HWREV="1.0"
CONFIG_PACKAGE_luci-theme-openwrt=y
CONFIG_VERSION_MANUFACTURER="Arduino"
CONFIG_PACKAGE_luci-proto-ipv6=y
CONFIG_VERSION_MANUFACTURER_URL=""
CONFIG_PACKAGE_luci-proto-ppp=y
CONFIG_VERSION_NUMBER=""
CONFIG_PACKAGE_luci-lib-ip=y
CONFIG_VERSION_PRODUCT="Arduino Yun"
CONFIG_PACKAGE_luci-lib-json=y
CONFIG_VERSION_REPO="https://downloads.openwrt.org/snapshots"
CONFIG_PACKAGE_luci-lib-jsonc=y
CONFIG_VERSION_SUPPORT_URL=""
CONFIG_PACKAGE_luci-lib-nixio=y
CONFIG_uhttpd_lua=y
CONFIG_PACKAGE_luci-i18n-base-en=y
# CONFIG_VERSION_CODE_FILENAMES is not set
CONFIG_PACKAGE_luci-i18n-firewall-en=y
# CONFIG_VERSION_FILENAMES is not set
 
CONFIG_PACKAGE_kmod-nls-base=y
CONFIG_PACKAGE_kmod-nls-cp437=y
CONFIG_PACKAGE_kmod-nls-iso8859-1=y
CONFIG_PACKAGE_kmod-nls-utf8=y
 
# CONFIG_PACKAGE_triggerhappy is not set
CONFIG_PACKAGE_kmod-gpio-button-hotplug=y
CONFIG_PACKAGE_kmod-input-core=m
CONFIG_PACKAGE_kmod-input-evdev=m
CONFIG_PACKAGE_kmod-input-gpio-encoder=m
CONFIG_PACKAGE_kmod-input-gpio-keys=m
CONFIG_PACKAGE_kmod-input-gpio-keys-polled=m
CONFIG_PACKAGE_kmod-input-joydev=m
CONFIG_PACKAGE_kmod-input-matrixkmap=m
CONFIG_PACKAGE_kmod-input-polldev=m
CONFIG_PACKAGE_kmod-input-uinput=m
 
# CONFIG_PACKAGE_odhcp6c is not set
# CONFIG_PACKAGE_odhcpd is not set
# CONFIG_PACKAGE_dnsmasq is not set
CONFIG_PACKAGE_dnsmasq-dhcpv6=y
 
# CONFIG_PACKAGE_libavahi-client is not set
# CONFIG_PACKAGE_libavahi-compat-libdnssd is not set
# CONFIG_PACKAGE_libavahi-dbus-support is not set
CONFIG_PACKAGE_libavahi-nodbus-support=y
 
# CONFIG_PACKAGE_avahi-autoipd is not set
# CONFIG_PACKAGE_avahi-daemon-service-http is not set
# CONFIG_PACKAGE_avahi-daemon-service-ssh is not set
# CONFIG_PACKAGE_avahi-dbus-daemon is not set
CONFIG_PACKAGE_avahi-dnsconfd=y
CONFIG_PACKAGE_avahi-nodbus-daemon=y
 
CONFIG_PACKAGE_gnupg=y
CONFIG_PACKAGE_libgpg-error=y
 
CONFIG_PACKAGE_nano=y
CONFIG_PACKAGE_curl=y
CONFIG_PACKAGE_wget=y
</syntaxhighlight>
</syntaxhighlight>


  [https://github.com/nxhack/openwrt-yun-build-extra/blob/master/openwrt-yun-minimum.config openwrt-yun-minimum.config]
  [https://raw.githubusercontent.com/nxhack/openwrt-yun-build-extra/master/openwrt-yun-lininoos.config openwrt-yun-lininoos.config]


== Difference between the LLC edition ==
== Difference between the LLC edition ==
Line 290: Line 554:
  [https://github.com/nxhack/openwrt-arduino-packages/commit/eb7130ac331ce491765f27372d987d9d7415f6c0 https://github.com/nxhack/openwrt-arduino-packages/commit/eb7130ac331ce491765f27372d987d9d7415f6c0]
  [https://github.com/nxhack/openwrt-arduino-packages/commit/eb7130ac331ce491765f27372d987d9d7415f6c0 https://github.com/nxhack/openwrt-arduino-packages/commit/eb7130ac331ce491765f27372d987d9d7415f6c0]


'''In the original rng-tools has a problem. Should match the init script of the LLC version.'''
  '''Should be started before the Yun original startup script "S49generate_new_gpg_key".'''
  '''Should be started before the Yun original startup script "S49generate_new_gpg_key".'''
  S98rngd -> S48rngd : START=98 -> START=48
  To enable rngd, add rngd section to /etc/config/system
:<syntaxhighlight lang="bash" enclose="div">
:<syntaxhighlight lang="bash" enclose="div">
sed -i -e s/^START=98/START=48/ ./feeds/packages/utils/rng-tools/files/rngd.init
config rngd
        option enabled '1'
        option device '/dev/urandom'
        option fill_watermark '4000'
</syntaxhighlight>
</syntaxhighlight>


Line 334: Line 600:
  option redirect_https '1'
  option redirect_https '1'
  [https://github.com/nxhack/openwrt-arduino-packages/tree/for-trunk/yun-conf/files/etc/config/uhttpd#L7 /etc/config/uhttpd]
  [https://github.com/nxhack/openwrt-arduino-packages/tree/for-trunk/yun-conf/files/etc/config/uhttpd#L7 /etc/config/uhttpd]
enable openssl-util libustream-openssl
CONFIG_OPENSSL_WITH_COMPRESSION=y


  '''uhttpd: Use URL alias handle. Do not apply alias patch.'''
  '''uhttpd: Use URL alias handle. Do not apply alias patch.'''
Line 348: Line 616:
  (triggerhappy use HID button mechanism, It depends on kmod-input-*)
  (triggerhappy use HID button mechanism, It depends on kmod-input-*)
  (kmod-gpio-button-hotplug + procd buttons, Of course, smaller footprint)
  (kmod-gpio-button-hotplug + procd buttons, Of course, smaller footprint)
  I was send PR, adding ath79_register_gpio_keys_polled.
  I sent PR, adding ath79_register_gpio_keys_polled.
  [https://git.openwrt.org/?p=openwrt.git;a=commit;h=10ae130265302c717b1580514ada28d9a48a2484 https://git.openwrt.org/?p=openwrt.git;a=commit;h=10ae130265302c717b1580514ada28d9a48a2484]
  [https://git.openwrt.org/?p=openwrt.git;a=commit;h=10ae130265302c717b1580514ada28d9a48a2484 https://git.openwrt.org/?p=openwrt.git;a=commit;h=10ae130265302c717b1580514ada28d9a48a2484]
  [https://github.com/nxhack/openwrt-arduino-packages/tree/for-trunk/yun-conf/files/etc/hotplug.d/button/00-button /etc/hotplug.d/button/00-button]
  [https://github.com/nxhack/openwrt-arduino-packages/tree/for-trunk/yun-conf/files/etc/hotplug.d/button/00-button /etc/hotplug.d/button/00-button]
  [https://github.com/nxhack/openwrt-arduino-packages/tree/for-trunk/yun-conf/files/etc/config/system#L14-L22 /etc/config/system]
  [https://github.com/nxhack/openwrt-arduino-packages/tree/for-trunk/yun-conf/files/etc/config/system#L19-L28 /etc/config/system]


:Add button section to /etc/config/system.
:Add button section to /etc/config/system.
:<syntaxhighlight lang="bash" enclose="div">
:<syntaxhighlight lang="bash" enclose="div">
config button
config button
         option button 'wps'
         option button 'wps'
         option action 'pressed'
         option action 'pressed'
         option handler '/usr/bin/wifi-reset-button-pressed'
         option handler '/usr/bin/wifi-reset-button-pressed'


config button
config button
         option button 'wps'
         option button 'wps'
         option action 'released'
         option action 'released'
         option handler '/usr/bin/wifi-reset-button-released'
         option handler '/usr/bin/wifi-reset-button-released'
</syntaxhighlight>
</syntaxhighlight>


  '''Explicitly enable MIPS_FPU_EMULATOR. (default config disabled)'''
:OR add button section to /etc/config/system.
:<syntaxhighlight lang="bash" enclose="div">
config button
        option button  'wps'
        option action  'pressed'
        option handler '/usr/bin/blink-start 100'
 
config button
        option button  'wps'
        option action  'released'
        option handler '/usr/bin/blink-stop'
 
config button
        option button  'wps'
        option action  'released'
        option min    '5'
        option max    '30'
        option handler '/usr/bin/wifi-reset-and-reboot'
 
config button
        option button  'wps'
        option action  'released'
        option min    '30'
        option max    '999'
        option handler '/usr/bin/reset-to-factory-anyway'
</syntaxhighlight>
 
  '''Definitely enable MIPS_FPU_EMULATOR. (disabled by default config)'''
  For reduce kernel size, change the kernel config.
  For reduce kernel size, change the kernel config.
   1. Limit the target architecture to MIPS 24Kc. AR933X, AR724X
   1. Limit the target architecture to MIPS 24Kc. AR933X, AR724X
   2. Limit the target board.
   2. Limit the target board.
   3. Enable PCI. need for making various packages.
   3. Enable PCI. need for making various packages.
  [https://github.com/nxhack/openwrt-yun-build-extra/blob/master/patches/000-MIPS24Kc%2BPCI%2BFPU_EMU.patch MIPS24Kc+PCI+FPU_EMU.patch]
  [https://raw.githubusercontent.com/nxhack/openwrt-yun-build-extra/master/openwrt-yun-lininoos.config openwrt-yun-lininoos.config]
[https://github.com/nxhack/openwrt-yun-build-extra/blob/master/patches/000-TARGET_CPU_TYPE.patch TARGET_CPU_TYPE.patch]


:check fpu emu debugfs
:check fpu emu debugfs
Line 411: Line 705:


== extroot ==
== extroot ==
<syntaxhighlight lang="bash" enclose="div">
opkg update
opkg install e2fsprogs dosfstools fdisk rsync badblocks tune2fs
# opkg install kmod-fs-f2fs mkf2fs f2fsck
cd /usr/sbin
ln -s fsck.fat dosfsck
cd /
umount /dev/sda1
### Destroy partition information.
dd if=/dev/zero of=/dev/sda bs=4096 count=1000
### FAT32 = 14G, ext4 = 14G, else swap
(echo o; echo n; echo p; echo 1; echo; echo +14G; echo n; echo p; echo 2; echo; echo +14G; echo n; echo p; echo 3; echo; echo; echo t; echo 1; echo c; echo t; echo 3; echo 82; echo w) | fdisk /dev/sda
mkfs.fat /dev/sda1
mkfs.ext4 /dev/sda2
mkswap /dev/sda3
mkdir -p /mnt/sda2
mount /dev/sda2 /mnt/sda2
cd /
tar -C /overlay -cvf - . | tar -C /mnt/sda2 -xf -
# rsync -a --exclude=/mnt/ /overlay/ /mnt/sda2/
umount /dev/sda2
rm -rf /mnt/sda2
# check /etc/config/fstab
# remove unused fstab entry at booting time.
uci add fstab mount
uci set fstab.@mount[0].target=/overlay
uci set fstab.@mount[0].device=/dev/sda2
uci set fstab.@mount[0].fstype=ext4
uci set fstab.@mount[0].enabled=1
uci set fstab.@mount[0].check_fs=1
uci set fstab.@mount[0].options=rw,sync,noatime,nodiratime
uci commit
reboot
</syntaxhighlight>
<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash" enclose="div">
cd /mnt/sda2
cd /mnt/sda2
Line 417: Line 748:
cd /
cd /
tar -C /overlay -cvf - . | tar -C /mnt/sda2 -xf -
tar -C /overlay -cvf - . | tar -C /mnt/sda2 -xf -
uci add fstab mount
uci set fstab.@mount[0].target=/overlay
uci set fstab.@mount[0].device=/dev/sda2
uci set fstab.@mount[0].fstype=ext4
uci set fstab.@mount[0].enabled=1
uci set fstab.@mount[0].check_fs=1
uci set fstab.@mount[0].options=rw,sync,noatime,nodiratime
uci commit
reboot
</syntaxhighlight>
<syntaxhighlight lang="bash" enclose="div">
block detect > /etc/config/fstab ; vi /etc/config/fstab
block detect > /etc/config/fstab ; vi /etc/config/fstab
# edit /etc/config/fstab : Set all enabled '0' enabled '1'
# edit /etc/config/fstab : Set all enabled '0' -> enabled '1' exclude extroot device
#     option target '/mnt/sda2' ->  option target '/overlay'
</syntaxhighlight>
 
After firmware upgrade with luci.(backup, sysupgrade, restore)
<syntaxhighlight lang="bash" enclose="div">
# edit /etc/opkg.conf
# remove extroot settings
opkg update
opkg install e2fsprogs dosfstools fdisk rsync badblocks tune2fs
mkdir -p /mnt/sda2
mount /dev/sda2 /mnt/sda2
rm /mnt/sda2/etc/.extroot-uuid
umount /mnt/sda2
 
# check /etc/config/fstab
# remove unused fstab entry at booting time.
 
uci add fstab mount
uci set fstab.@mount[0].target=/overlay
uci set fstab.@mount[0].device=/dev/sda2
uci set fstab.@mount[0].fstype=ext4
uci set fstab.@mount[0].enabled=1
uci set fstab.@mount[0].check_fs=1
uci set fstab.@mount[0].options=rw,sync,noatime,nodiratime
uci commit
reboot
reboot
</syntaxhighlight>
Accessing original root
[https://lede-project.org/docs/user-guide/extroot_configuration#accessing_original_root https://lede-project.org/docs/user-guide/extroot_configuration#accessing_original_root]
<syntaxhighlight lang="bash" enclose="div">
config mount
option target /overlay-boot
option device /dev/mtdblock3
option fstype jffs2
option options rw,sync
option enabled 1
option check_fs 0
</syntaxhighlight>
</syntaxhighlight>


Line 428: Line 807:
opkg update
opkg update
opkg list-upgradable
opkg list-upgradable
opkg install ca-certificates
opkg install unzip
opkg install unzip
opkg install screen
opkg install screen
opkg install procps-ng procps-ng-ps procps-ng-w procps-ng-vmstat procps-ng-watch
opkg install procps-ng-top --force-overwrite
opkg install coreutils-ls coreutils-stty
opkg install coreutils-ls coreutils-stty
opkg install dropbearconvert
opkg install dropbearconvert
opkg install e2fsprogs mkdosfs fdisk dosfsck
opkg install e2fsprogs fdisk dosfstools badblocks tune2fs
opkg install avahi-utils avahi-daemon-service-ssh
# opkg install kmod-fs-f2fs mkf2fs f2fsck
opkg install rsync
opkg install rsync
opkg install diffutils
opkg install diffutils
Line 441: Line 819:
opkg install mg
opkg install mg
opkg install openssh-client --force-overwrite
opkg install openssh-client --force-overwrite
opkg install procps-ng procps-ng-ps procps-ng-w procps-ng-vmstat procps-ng-watch
opkg install procps-ng-top --force-overwrite
</syntaxhighlight>
</syntaxhighlight>
:procps-ng has bug, CPU usage fail.


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash" enclose="div">
Line 453: Line 832:
#  log-file=/usr/local/var/tmp/pip-log.txt
#  log-file=/usr/local/var/tmp/pip-log.txt
# pip install --upgrade pip
# pip install --upgrade pip
pip install conf-d
pip install beaver
pip install glob2e
pip install paho-mqtt
pip install msgpack-pure
pip install kafka-python
pip install beaver==36.2.0
pip install supervisor
pip install supervisor
</syntaxhighlight>
</syntaxhighlight>
:If OOM occurs, re-run pip.
:If OOM occurs, re-run pip. or use swap


== dosfsck ==
:[https://gist.github.com/nxhack/71e7988e60106de14564 python supervisor startup script for OpenWrt-yun]
 
: my local setup
<syntaxhighlight lang="bash" enclose="div">
/etc/init.d/cron enable
/etc/init.d/cron start
</syntaxhighlight>
 
== dosfsck --> fsck.fat ==
<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash" enclose="div">
cd /
cd /
umount /mnt/sda1
umount /mnt/sda1
dosfsck -y -v -w /dev/sda1
fsck.fat -y -v -w /dev/sda1
#dosfsck -y -v -t -w /dev/sda1
mount /dev/sda1 /mnt/sda1
mount /dev/sda1 /mnt/sda1
</syntaxhighlight>
<syntaxhighlight lang="bash" enclose="div">
cd /usr/sbin
ln -s fsck.fat dosfsck
</syntaxhighlight>
== fsck ==
<syntaxhighlight lang="bash" enclose="div">
opkg install badblocks
</syntaxhighlight>
<syntaxhighlight lang="bash" enclose="div">
e2fsck -t -y -f -c /dev/sda2
</syntaxhighlight>
== YunFirstConfig ==
https://www.arduino.cc/en/Tutorial/YunFirstConfig
https://github.com/arduino-libraries/Bridge/tree/master/examples/YunFirstConfig
== Luci and arduino-webpanel ==
https://github.com/arduino/lede-yun/commit/565508f99cc8922d55b47554de98f7dcb441a461#diff-f2fe3255fb192223dd3dbef288fe215f
== mDNS ==
<syntaxhighlight lang="text" enclose="div">
host-name-from-machine-id=no
host-name=MY_HOST_NAME
domain-name=local
</syntaxhighlight>
== homebridge ==
<syntaxhighlight lang="bash" enclose="div">
opkg install node-homebridge
opkg install sudo
npm install -g homebridge-temperature-cmd
npm install -g homebridge-humidity-cmd
</syntaxhighlight>
== IGMP querierd ==
<syntaxhighlight lang="bash" enclose="div">
opkg install querierd
</syntaxhighlight>
edit /etc/querierd
:supesify a interface
<syntaxhighlight lang="bash" enclose="div">
/etc/init.d/querierd enable
/etc/init.d/querierd start
</syntaxhighlight>
</syntaxhighlight>


Line 518: Line 948:
#uboot-linino
#uboot-linino
#:Once the bootloader rewrite fails, I am afraid that completely become brick...
#:Once the bootloader rewrite fails, I am afraid that completely become brick...
#extroot
#: [https://wiki.openwrt.org/doc/howto/extroot https://wiki.openwrt.org/doc/howto/extroot]
#:A partitioned and formatted media that was created in [http://www.egrep.jp/wiki/index.php/Arduino_Yun_cheat_sheet#.E3.83.87.E3.82.A3.E3.82.B9.E3.82.AF.E3.81.AE.E5.AE.B9.E9.87.8F.E3.82.92.E5.A2.97.E3.82.84.E3.81.99 this operation],
#:<syntaxhighlight lang="bash" enclose="div">
cd /mnt/sda2
rm -rf *
rm -rf .??*
cd /
tar -C /overlay -cvf - . | tar -C /mnt/sda2 -xf -
block detect > /etc/config/fstab ; vi /etc/config/fstab
# edit /etc/config/fstab : Set all enabled '0' → enabled '1'
#      option target '/mnt/sda2' ->  option target '/overlay'
reboot
</syntaxhighlight>
#:If you want to restore, restart press the eject the SD card and poweroff 'YUN RST'. Modify the then /etc/config/fstab.
#:<syntaxhighlight lang="text" enclose="div">
config global 'automount'
option from_fstab '1'
option anon_mount '1'
</syntaxhighlight>
#/etc/opkg.conf, /etc/opkg/distfeeds.conf, /etc/opkg/customfeeds.conf
#/etc/opkg.conf, /etc/opkg/distfeeds.conf, /etc/opkg/customfeeds.conf
#:Since the strange message came out, modified distfeeds.conf, It is correct to modify opkg.conf.
#:Since the strange message came out, modified distfeeds.conf, It is correct to modify opkg.conf.
Line 555: Line 965:
</syntaxhighlight>
</syntaxhighlight>
#:'''Anyway,  Do not place any objects to /tmp and /var (symlink of /tmp).'''
#:'''Anyway,  Do not place any objects to /tmp and /var (symlink of /tmp).'''
#sysupgrade with ExtRoot
#: [http://wiki.mbirth.de/know-how/software/openwrt/sysupgrade-with-extroot.html sysupgrade with ExtRoot :: wiki.mbirth.de]
#:<syntaxhighlight lang="bash" enclose="div">
sysupgrade ...
# reboot...
rm /mnt/sda2/etc/.extroot-uuid
reboot
#...
opkg update
opkg upgrade $(opkg list-upgradable | awk '($1 !~ "^kmod|Multiple") {print $1}')
</syntaxhighlight>
#LEDE Project
#: [https://www.lede-project.org/ https://www.lede-project.org/]
#Kernel 4.4
#:How can I reduce kernel size?
#::It does not fit in 1280k.
#:[https://github.com/lede-project/source/pull/1145/commits/105afb63e97cae24890cd76952c80366b2db9921 ar71xx: make arduino yun work with kernel size > 1280k and use generic.mk by camille-hack · Pull Request #1145 · lede-project/source]
#:[https://github.com/lede-project/source/pull/1145 ar71xx: make arduino yun work with kernel size > 1280k and use generic.mk by camille-hack · Pull Request #1145 · lede-project/source]
#::Merged!!!
#PKG DPENDS
#:<syntaxhighlight lang="bash" enclose="div">
To find missing library provider, if the case is not obvious (usually it is just a library name), you may search in $STAGING_DIR/pkginfo folder.
</syntaxhighlight>