7,180
edits
(→opkg) |
|||
(460 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
OpenWrt | 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 | 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. | [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. | ||
= | RedSnake64 edition become Arduino LLC Official edition: | ||
The OpenWrt Project, already | [https://github.com/arduino/openwrt-yun-1505 https://github.com/arduino/openwrt-yun-1505] | ||
[https://git.openwrt.org/?p= | |||
[https://git.openwrt.org/?p= | = 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 28: | 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/] | ||
::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 45: | Line 95: | ||
:Optional package of OpenWrt Project is managed on github. | :Optional package of OpenWrt Project is managed on github. | ||
= | = Explore the OpenWrt-Yun = | ||
== OpenWrt-Yun arduino packages == | == OpenWrt-Yun arduino packages == | ||
LLC edition arduino package: | LLC edition arduino package: | ||
Line 52: | 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 73: | Line 128: | ||
(y) temboo | (y) temboo | ||
(y) uSDaemon | (y) uSDaemon | ||
(m) v8m-rb | (m) v8m-rb * | ||
(y) yun-conf | (y) yun-conf | ||
(y) yun-scripts | (y) yun-scripts | ||
</syntaxhighlight> | </syntaxhighlight> | ||
#avrdude: use a OpenWrt package. | #avrdude: use a OpenWrt package. Configuration for the Arduino Yun should be placed in /etc/avrdude.conf. | ||
#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: '''If you want to run node.js, Should turn on MIPS FPU EMULATOR kernel config.''' | ||
#node-serialport: use a OpenWrt package. | #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 | #rng-tools: use a OpenWrt package. so should delete. | ||
#v8m-rb: Not required, so should delete. | |||
'''My new arduino | '''My new arduino packages here''': | ||
[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] | ||
== OpenWrt-Yun build | Arturo Rinaldi edition linino packages: | ||
[https://github.com/artynet/LEDE/tree/linino-20/package/linino https://github.com/artynet/LEDE/tree/linino-20/package/linino] | |||
= Important concept of OpenWrt = | |||
'''The Minimized (smaller footprint) is Highest Priority. This is the large difference in policy between PC GNU/Linux and OpenWrt.''' | |||
= Trunk Bleeding Edge / Reboot version of OpenWrt-Yun package and build environment = | |||
[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-arduino-packages https://github.com/nxhack/openwrt-arduino-packages] | |||
Setup repos: | |||
<syntaxhighlight lang="bash" enclose="div"> | <syntaxhighlight lang="bash" enclose="div"> | ||
git clone --depth=1 --branch master --single-branch https://github.com/ | mkdir Build_Path_Some_Where | ||
cd Build_Path_Some_Where | |||
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 | |||
cd openwrt | |||
ln -s ../openwrt-yun-build-extra/* . | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Or lede-17.01 | |||
<syntaxhighlight lang="bash" enclose="div"> | <syntaxhighlight lang="bash" enclose="div"> | ||
git clone --depth=1 --branch | 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 | |||
ln -s ../openwrt-yun-build-extra/* . | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Please modify ./files/etc/opkg/distfeeds.conf | |||
First Time, Setup cross compile build environment (ubuntu 14.04): | |||
<syntaxhighlight lang="bash" enclose="div"> | <syntaxhighlight lang="bash" enclose="div"> | ||
./FIRST_SETUP_ubuntu_Trusty_Tahr.sh | |||
</syntaxhighlight> | </syntaxhighlight> | ||
:Also run fine on 'Bash on Ubuntu on Widnows' ;) | |||
Build: | |||
<syntaxhighlight lang="bash" enclose="div"> | <syntaxhighlight lang="bash" enclose="div"> | ||
./build.sh | |||
</syntaxhighlight> | </syntaxhighlight> | ||
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). | |||
=== '''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> | </syntaxhighlight> | ||
. | memo memo... be careful | ||
<syntaxhighlight lang="bash" enclose="div"> | <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> | </syntaxhighlight> | ||
memo... | |||
:setenv serverip ‹tftp-server-ip›; setenv ipaddr ‹yun-board-ip›; | |||
<syntaxhighlight lang="bash" enclose="div"> | <syntaxhighlight lang="bash" enclose="div"> | ||
setenv serverip 192.168.1.10; | |||
setenv ipaddr 192.168.1.1; | |||
ping 192.168.1.10; | |||
</syntaxhighlight> | </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"> | <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> | </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_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_KERNEL_MIPS_FPU_EMULATOR=y | |||
CONFIG_LIBCURL_COOKIES=y | |||
CONFIG_LIBCURL_FILE=y | |||
CONFIG_LIBCURL_FTP=y | |||
CONFIG_LIBCURL_HTTP=y | |||
CONFIG_LIBCURL_NO_SMB="!" | |||
CONFIG_LIBCURL_OPENSSL=y | |||
CONFIG_LIBCURL_PROXY=y | |||
CONFIG_LUCI_LANG_en=y | |||
CONFIG_MAKE_TOOLCHAIN=y | |||
CONFIG_NODEJS_8=y | |||
CONFIG_NODEJS_ICU_NONE=y | |||
CONFIG_OPENSSL_WITH_COMPRESSION=y | |||
CONFIG_OPENSSL_WITH_DEPRECATED=y | |||
CONFIG_OPENSSL_WITH_EC=y | |||
CONFIG_OPENSSL_WITH_NPN=y | |||
CONFIG_OPENSSL_WITH_PSK=y | |||
CONFIG_OPENSSL_WITH_SRP=y | |||
CONFIG_PACKAGE_ajtcl=m | |||
CONFIG_PACKAGE_ajtcl-alljoynjs=m | |||
CONFIG_PACKAGE_ajtcl-alljoynjs-samples=m | |||
CONFIG_PACKAGE_ajtcl-samples=m | |||
CONFIG_PACKAGE_ajtcl-services=m | |||
CONFIG_PACKAGE_alljoyn=m | |||
CONFIG_PACKAGE_alljoyn-about=m | |||
CONFIG_PACKAGE_alljoyn-c=m | |||
CONFIG_PACKAGE_alljoyn-config=m | |||
CONFIG_PACKAGE_alljoyn-config-samples=m | |||
CONFIG_PACKAGE_alljoyn-controlpanel=m | |||
CONFIG_PACKAGE_alljoyn-controlpanel-samples=m | |||
CONFIG_PACKAGE_alljoyn-non-gw-config=m | |||
CONFIG_PACKAGE_alljoyn-notification=m | |||
CONFIG_PACKAGE_alljoyn-notification-samples=m | |||
CONFIG_PACKAGE_alljoyn-sample_apps=m | |||
CONFIG_PACKAGE_alljoyn-samples=m | |||
CONFIG_PACKAGE_alljoyn-services_common=m | |||
CONFIG_PACKAGE_arduinoos=m | |||
CONFIG_PACKAGE_argp-standalone=y | |||
CONFIG_PACKAGE_avahi-daemon-service-ssh=y | |||
CONFIG_PACKAGE_avahi-dbus-daemon=y | |||
CONFIG_PACKAGE_avahi-dnsconfd=y | |||
CONFIG_PACKAGE_avahi-utils=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-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_SDK=y | |||
CONFIG_VERSIONOPT=y | |||
CONFIG_VERSION_BUG_URL="" | |||
CONFIG_VERSION_CODE="" | |||
CONFIG_VERSION_DIST="OpenWrt" | |||
CONFIG_VERSION_HOME_URL="" | |||
CONFIG_VERSION_HWREV="1.0" | |||
CONFIG_VERSION_MANUFACTURER="Arduino" | |||
CONFIG_VERSION_MANUFACTURER_URL="" | |||
CONFIG_VERSION_NUMBER="" | |||
CONFIG_VERSION_PRODUCT="Arduino Yun" | |||
CONFIG_VERSION_REPO="https://downloads.openwrt.org/snapshots" | |||
CONFIG_VERSION_SUPPORT_URL="" | |||
CONFIG_uhttpd_lua=y | |||
# CONFIG_VERSION_CODE_FILENAMES is not set | |||
# CONFIG_VERSION_FILENAMES is not set | |||
</syntaxhighlight> | |||
[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 == | ||
IPv6 | '''IPv6 stack is enabled.''' | ||
'''Device name of the leds has been changed.''' | |||
'''arduino:blue:wlan''' '''arduino:white:usb''' | '''ds:green:wlan''' -> '''arduino:blue:wlan''' | ||
'''ds:green:usb''' -> '''arduino:white:usb''' | |||
[https://git.openwrt.org/?p=openwrt.git;a=blobdiff;f=target/linux/ar71xx/base-files/etc/uci-defaults/01_leds;h=39f472a5bb63896153f425f381714788a756d5ef;hp=1db6ad0482ccd308f84ffb080bcd5f11201fc70d;hb=914d4fc6219538640ce843b6cf2a6cab5d71db8a;hpb=124526b5b091e2c4487860bcea26099ec442d301 target/linux/ar71xx/base-files/etc/uci-defaults/01_leds] | [https://git.openwrt.org/?p=openwrt.git;a=blobdiff;f=target/linux/ar71xx/base-files/etc/uci-defaults/01_leds;h=39f472a5bb63896153f425f381714788a756d5ef;hp=1db6ad0482ccd308f84ffb080bcd5f11201fc70d;hb=914d4fc6219538640ce843b6cf2a6cab5d71db8a;hpb=124526b5b091e2c4487860bcea26099ec442d301 target/linux/ar71xx/base-files/etc/uci-defaults/01_leds] | ||
[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] | ||
'''Should be started before the Yun original startup script "S49generate_new_gpg_key".''' | |||
To enable rngd, add rngd section to /etc/config/system | |||
:<syntaxhighlight lang="bash" enclose="div"> | :<syntaxhighlight lang="bash" enclose="div"> | ||
config rngd | |||
option enabled '1' | |||
option device '/dev/urandom' | |||
option fill_watermark '4000' | |||
</syntaxhighlight> | </syntaxhighlight> | ||
BUSYBOX ASH BANNER | '''BUSYBOX ASH BANNER The date disappear.''' | ||
[https://git.openwrt.org/?p=openwrt.git;a=commit;h=39fabb5068e95ab9c0901dd4f37129111d88ae00 https://git.openwrt.org/?p=openwrt.git;a=commit;h=39fabb5068e95ab9c0901dd4f37129111d88ae00] | [https://git.openwrt.org/?p=openwrt.git;a=commit;h=39fabb5068e95ab9c0901dd4f37129111d88ae00 https://git.openwrt.org/?p=openwrt.git;a=commit;h=39fabb5068e95ab9c0901dd4f37129111d88ae00] | ||
:<syntaxhighlight lang="diff" enclose="div"> | :<syntaxhighlight lang="diff" enclose="div"> | ||
Line 381: | Line 571: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
BUSYBOX ASH HELP | '''BUSYBOX ASH HELP Banner disappear.''' | ||
CONFIG_ASH_HELP | CONFIG_ASH_HELP The default has been changed to 'n'. | ||
[https://github.com/openwrt/openwrt/blob/master/package/utils/busybox/Config-defaults.in#L2617 https://github.com/openwrt/openwrt/blob/master/package/utils/busybox/Config-defaults.in#L2617] | |||
AR9331 | '''Add a configuration of the AR9331 as AVR writer to the original package.''' | ||
[https://github.com/nxhack/openwrt-yun-build-extra/blob/master/files/etc/avrdude.conf#L1108-L1122 /etc/avrdude.conf] | |||
/etc/avrdude.conf: | |||
:<syntaxhighlight lang="text" enclose="div"> | :<syntaxhighlight lang="text" enclose="div"> | ||
programmer | programmer | ||
Line 399: | Line 591: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
BUSYBOX | '''BUSYBOX: telnet is disabled.''' | ||
nc localhost 6571 | |||
PATH | '''PATH has changed.''' | ||
CONFIG_TARGET_INIT_PATH="/bin:/sbin:/usr/bin:/usr/sbin" to CONFIG_TARGET_INIT_PATH="/usr/sbin:/usr/bin:/sbin:/bin" | |||
uhttpd | '''uhttpd: SSL is forced.''' | ||
option redirect_https '1' | |||
[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 | '''uhttpd: Use URL alias handle. Do not apply alias patch.''' | ||
[https://github.com/nxhack/openwrt-arduino-packages/tree/for-trunk/yun-conf/files/etc/config/uhttpd#L20-L22 /etc/config/uhttpd] | |||
:/etc/config/uhttpd | :Add to /etc/config/uhttpd | ||
:<syntaxhighlight lang="text" enclose="div"> | :<syntaxhighlight lang="text" enclose="div"> | ||
list alias '/arduino=/cgi-bin/luci' | list alias '/arduino=/cgi-bin/luci' | ||
Line 421: | Line 613: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
'''Procd button mechanism exists. triggerhappy is not required.''' | |||
(triggerhappy | (triggerhappy use HID button mechanism, It depends on kmod-input-*) | ||
(kmod-gpio-button-hotplug + procd buttons | (kmod-gpio-button-hotplug + procd buttons, Of course, smaller footprint) | ||
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/config/system#L19-L28 /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> | ||
: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> | </syntaxhighlight> | ||
'''Definitely enable MIPS_FPU_EMULATOR. (disabled by default config)''' | |||
For reduce kernel size, change the kernel config. | |||
1. Limit the target architecture to MIPS 24Kc. AR933X, AR724X | |||
2. Limit the target board. | |||
3. Enable PCI. need for making various packages. | |||
[https://raw.githubusercontent.com/nxhack/openwrt-yun-build-extra/master/openwrt-yun-lininoos.config openwrt-yun-lininoos.config] | |||
:check fpu emu debugfs | |||
:<syntaxhighlight lang="bash" enclose="div"> | |||
ls -l /sys/kernel/debug/mips/fpuemustats | |||
</syntaxhighlight> | |||
= memo = | |||
== Arduino IDE Bridge Library == | |||
Must apply this patch. | |||
<syntaxhighlight lang="diff" enclose="div"> | |||
--- a/Bridge/src/Bridge.cpp | |||
+++ b/Bridge/src/Bridge.cpp | |||
@@ -52,7 +52,7 @@ | |||
// Wait for OpenWRT message | |||
// "Press enter to activate console" | |||
stream.print(F("run-bridge\n")); | |||
- delay(500); | |||
+ delay(5000); | |||
dropAll(); | |||
// Reset the brigde to check if it is running | |||
</syntaxhighlight> | |||
== refresh fstab : uci == | |||
<syntaxhighlight lang="bash" enclose="div"> | |||
uci delete fstab.@mount[0] | |||
uci delete fstab.@mount[0] | |||
uci commit | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash" enclose="div"> | |||
uci set fstab.automount=global | |||
uci set fstab.automount.from_fstab='1' | |||
uci set fstab.automount.anon_mount='1' | |||
uci commit | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== 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> | ||
<syntaxhighlight lang="bash" enclose="div"> | |||
cd /mnt/sda2 | cd /mnt/sda2 | ||
rm -rf * | rm -rf * | ||
Line 499: | 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 | reboot | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<syntaxhighlight lang="bash" enclose="div"> | |||
config | block detect > /etc/config/fstab ; vi /etc/config/fstab | ||
# edit /etc/config/fstab : Set all enabled '0' -> enabled '1' exclude extroot device | |||
</syntaxhighlight> | </syntaxhighlight> | ||
After firmware upgrade with luci.(backup, sysupgrade, restore) | |||
<syntaxhighlight lang="bash" enclose="div"> | <syntaxhighlight lang="bash" enclose="div"> | ||
uci | # edit /etc/opkg.conf | ||
uci | # 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 | uci commit | ||
reboot | |||
</syntaxhighlight> | </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"> | <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> | ||
== opkg == | == basic tools setup : opkg == | ||
<syntaxhighlight lang="bash" enclose="div"> | <syntaxhighlight lang="bash" enclose="div"> | ||
# edit /etc/opkg.conf for extroot | |||
opkg update | opkg update | ||
opkg list-upgradable | opkg list-upgradable | ||
opkg install unzip | opkg install unzip | ||
opkg install screen | opkg install screen | ||
opkg install coreutils-ls coreutils-stty | opkg install coreutils-ls coreutils-stty | ||
opkg install dropbearconvert | opkg install dropbearconvert | ||
opkg install | 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 diffutils | opkg install diffutils | ||
opkg install logrotate | opkg install logrotate | ||
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> | ||
<syntaxhighlight lang="bash" enclose="div"> | <syntaxhighlight lang="bash" enclose="div"> | ||
Line 579: | Line 827: | ||
export TMPDIR=/usr/local/var/tmp | export TMPDIR=/usr/local/var/tmp | ||
opkg install python-pip | opkg install python-pip | ||
opkg install python-six | |||
# Edit /etc/pip.conf | |||
# cache-dir=/usr/local/var/tmp/.cache | |||
# log-file=/usr/local/var/tmp/pip-log.txt | |||
# pip install --upgrade pip | # pip install --upgrade pip | ||
pip install beaver | pip install beaver | ||
pip install supervisor | pip install supervisor | ||
</syntaxhighlight> | </syntaxhighlight> | ||
:If OOM occurs, re-run pip. or use swap | |||
:[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"> | |||
cd / | |||
umount /mnt/sda1 | |||
fsck.fat -y -v -w /dev/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> | |||
== drop caches == | |||
<syntaxhighlight lang="bash" enclose="div"> | |||
echo 3 > /proc/sys/vm/drop_caches | |||
</syntaxhighlight> | |||
== network == | |||
eth1 -> wan | |||
wlan0 -> lan | |||
[https://github.com/nxhack/openwrt-arduino-packages/blob/for-trunk/yun-conf/files/etc/config/network /etc/config/network] | |||
[https://github.com/nxhack/openwrt-arduino-packages/blob/for-trunk/yun-conf/files/etc/config/firewall#L22 /etc/config/firewall] | |||
[https://github.com/nxhack/openwrt-yun-build-extra/blob/master/files/etc/config/dhcp#L18 /etc/config/dhcp] | |||
== Secure == | |||
[https://wiki.openwrt.org/doc/howto/secure.access Secure your router's access] | |||
[https://wiki.openwrt.org/inbox/howto/dropbear-security Dropbear Security] | |||
== revision check == | |||
<syntaxhighlight lang="bash" enclose="div"> | |||
./scripts/getver.sh | |||
</syntaxhighlight> | |||
= Bricked = | = Bricked = | ||
[http://playground.arduino.cc/Hardware/Yun#restoring_a_yun My Yún doesn't boot anymore! How can I restore it?] | [http://playground.arduino.cc/Hardware/Yun#restoring_a_yun My Yún doesn't boot anymore! How can I restore it?] | ||
YunSerialTerminal | Load YunSerialTerminal to enable serial console. Unplug SD card . Press 'YUN RST' button. | ||
# | #If the prompt is out && if the OS can operable. | ||
## | ##Enabling the network. | ||
##:<syntaxhighlight lang="bash" enclose="div"> | ##:<syntaxhighlight lang="bash" enclose="div"> | ||
ifconfig | ifconfig IF IP | ||
route add default gw | route add default gw somewhere | ||
</syntaxhighlight> | </syntaxhighlight> | ||
##:/etc/resolv.conf | ##:Edit /etc/resolv.conf | ||
##SD card | ##Bring the official sysupgrade image via SD card. | ||
##:<syntaxhighlight lang="bash" enclose="div"> | ##:<syntaxhighlight lang="bash" enclose="div"> | ||
mkdir /mnt/sda1 | mkdir /mnt/sda1 | ||
mount -t vfat /dev/sda1 /mnt/sda1 | mount -t vfat /dev/sda1 /mnt/sda1 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
# | #If you can operate the u-boot via YunSerialTerminal. | ||
##[https://www.arduino.cc/en/Tutorial/YunUBootReflash https://www.arduino.cc/en/Tutorial/YunUBootReflash] | ##[https://www.arduino.cc/en/Tutorial/YunUBootReflash https://www.arduino.cc/en/Tutorial/YunUBootReflash] | ||
= TO DO = | |||
#uboot-linino | |||
#:Once the bootloader rewrite fails, I am afraid that completely become brick... | |||
#/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. | |||
#::* opkg_conf_parse_file: Duplicate src declaration | |||
#:[https://wiki.openwrt.org/doc/techref/opkg https://wiki.openwrt.org/doc/techref/opkg] | |||
#:[https://wiki.openwrt.org/doc/packages https://wiki.openwrt.org/doc/packages] | |||
#:Specification seems not yet settled. | |||
#OOM | |||
#:(extroot environment) | |||
#::/etc/opkg/distfeeds.conf : Limit repositories. | |||
#::/etc/opkg.conf : lists_dir ext /var/opkg-lists place not tmpfs. ex. lists_dir ext /usr/local/var/opkg-lists | |||
#::/etc/opkg.conf : Add 'option force_space' | |||
#:<syntaxhighlight lang="text" enclose="div"> | |||
lists_dir ext /usr/local/var/opkg-lists | |||
option tmp_dir /usr/local/var/tmp | |||
option force_space | |||
</syntaxhighlight> | |||
#:'''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> |