OpenWrt

From ElectroDragon
Revision as of 03:19, 9 October 2019 by Chao (talk | contribs) (Update)
Jump to navigation Jump to search

Compile

branch openwrt-18.06: git clone -b openwrt-18.06 https://github.com/openwrt/openwrt.git
branch chaos_calmer is legacy: git clone -b chaos_calmer https://github.com/openwrt/openwrt.git
  • update
cd openwrt          //enter into openwrt folder
./scripts/feeds update -a     // update install package
./scripts/feeds install -a      //install updates
  • make menuconfig
  • Setup for MicroSD card & IOT Device mode or IOT gateway modes
Kernel modules    ---> 
 Other modules    ---> 
   <*> kmod-sdhci-mt7620 
  • Make it - make V=s

output

Firmware

  • /openwrt/bin/ramips/openwrt-ramips-mt7628-mt7628-squashfs-sysupgrade.bin
  • /openwrt/bin/targets/ar71xx/generic/openwrt-ar71xx-generic-tl-wr710n-v2.1-squashfs-factory.bin

IPK packages

  • /openwrt/ bin/ramips/packages/
  • /openwrt/bin/targets/ar71xx/generic/packages/”
  • /openwrt/bin/packages/

Update

  • Firmware could be updated via LUCI webpage
  • use SCP copy file to openwrt /tmp folder, and run command: sysupgrade -v openwrt-ar71xx-generic-tl-wr842n-v3-squashfs-sysupgrade.bin
  • For the following error, run -F to force update:
Invalid image, hardware ID mismatch, hw:07200103 00000001 image:08420003 00000001.

Openwrt Folder List

Menuconfig

For AR9331

  • Target System (Atheros AR7xxx/AR9xxx) ---> │ │
  • Subtarget (Generic) --->
  • Target Profile (TP-LINK TL-WR720N v3) --->
  • Target Images ---> squashfs --->

Build and Use Toolchain

  • in menuconfig, tick option "Build the OpenWrt based Toolchain"
  • Toolchain can be found at "/bin/ramips/OpenWrt-Toolchain-ramips-mt7628_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686.tar.bz2"
  • Install toolchain: sudo tar -jxvf ./bin/ramips/OpenWrt-Toolchain-ramips-mt7628_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686.tar.bz2 -C /opt/

C application

  • Compile use mipsel-openwrt-linux-gcc
  • mipsel-openwrt-linux-gcc hello_world.c -o hello_world

Run the complied application

  • chmod +x /tmp/hello_world //add executable rights
  • /tmp/hello_world //run“hello_world”application

IPK Application

  • Save src file at ./package/utils
  • In menuconfig -> Utilities , add this package

Compile

  • cd ./package/utils //enter into package/utils folder
  • mkdir hello_world //make“hello_world” folder for source code
  • cd hello_world
  • mkdir src //make src folder for source code
  • nano src/hello_world.c //create hello_world.c file in src
  • nano src/Makefile // add a new Makefile
  • make menuconfig
  • Utilities --->
<M> hello_world.................... Hello world -prints a hello world message 
  • make V=s
  • find installation file at openwrt/ bin/ramips/packages/base/hello_world_1.0_ramips_24kec.ipk

Install

  • opkg install /tmp/usbutils_007-1_ramips_24kec.ipk

Applications

  • 4G network card: kmod-mii, kmod-usb-net, kmod-usb-wdm, kmod-usb-net-qmi-wwan, uqmi
  • USB file system: ntfs-3g, kmod-fs-ext4, kmod-fs-vfat
  • Audio play: kmod-usb-audio, madplay-alsa
  • Audio Misc: zlib, libffi, libattr, libpthread, glib2, libflac, libmad, libcurl, libogg, libvorbisidec, mpd-mini
  • libmpdclient, mpc
  • USB webcamera: libjpeg, mjpg-streamer
  • Web SIP Call: zlib, libopenssl, libpthread, libre, librem, baresip, kmod-sound-core, kmod-usb-audio, librt, alsa-lib, baresip-mod-alsa

Usage

  • No need to setup anything for firewall
  • Apps list can check on this page category: Linux
  • Use Transmission
  • change mode to STA-client -> wifi -> find SSID:openwrt -> edit -> mode -> client -> scan -> join network -> enter password -> save

Luci

Programming tutorial in chinese

Relvant connector can check this page: feeds/luci/modules/luci-base/luasrc/