OpenWRT image: build and update - Rubusch/chaos_calmer GitHub Wiki

OpenWRT image: build and update

target login shall be configured to

u: admin
p: o0f.(pzqL~

in lab mode, only login as

u: root
p: <ENTER>

RESOURCES

http://wiki.openwrt.org/doc/howto/generic.flashing.serial

https://wiki.openwrt.org/toh/d-link/dir-615

https://www.dd-wrt.com/wiki/index.php/Hard_reset_or_30/30/30

https://wiki.openwrt.org/doc/howto/generic.flashing.tftp

SYSTEM

D-Link DIR 615 rev H2

default ip: 192.168.0.1

default login:

u: Admin
p: <none>
Revision Version Supported Latest stable Model Specific Notes
H1/H2 12.09 & newer 15.05.1 Working as of R36213
Revisions CPU Ram Flash Network Gigabit USB Serial JTag
H1, H2 Ralink 32MB 4MB 4x1 No No Yes Yes

get information about actual mtd layout (e.g. dd-wrt shows the following)

# cat /proc/mtd
    dev:    size   erasesize  name
    mtd0: 00030000 00010000 "uboot"
    mtd1: 00010000 00010000 "uboot-config"
    mtd2: 00010000 00010000 "factory-defaults"
    mtd3: 003a0000 00010000 "linux"
    mtd4: 002ab000 00010000 "rootfs"
    mtd5: 00010000 00010000 "nvram"

or check out via dmesg, e.g. 02 0000 = 131.072 Bytes = 128KiB.

    Creating 5 MTD partitions on "spi0.0":
    0x000000000000-0x000000020000 : "u-boot"
    0x000000020000-0x000000160000 : "kernel"
    (...)

# cat /proc/cpuinfo
    system type             : Ralink RT3352 id:1 rev:4
    processor               : 0
    cpu model               : MIPS 24KEc V4.12
    BogoMIPS                : 265.42
    CPUClock                : 400
    wait instruction        : yes
    microsecond timers      : yes
    tlb_entries             : 32
    extra interrupt vector  : yes
    hardware watchpoint     : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
    ASEs implemented        : mips16 dsp
    shadow register sets    : 1
    kscratch registers      : 0
    core                    : 0
    VCED exceptions         : not available
    VCEI exceptions         : not available

CODEBASE

$ git clone git://github.com/openwrt/openwrt.git
$ git co remotes/origin/chaos_calmer -b chaos_calmer

or

$ git clone -b chaos_calmer git://github.com/openwrt/openwrt.git

list available

$ git ls-remote -h git://github.com/openwrt/openwrt.git

or get an official openwrt images

http://downloads.openwrt.org/

for D-Link DIR615 it will be "ramips" and "RT305x", then rev. H1/H2, e.g.

https://downloads.openwrt.org/snapshots/trunk/ramips/rt305x/

CONFIGURATION

< specific ADJUSTMENTS, see below >

configure $ make menuconfig

  • Target System (Ralink RT288x/RT3xxx)
  • Subtarget (RT305x based boards)
  • Target Profile (DIR-615 H1)

BUILD

$ make menuconfig
$ make dirclean
$ make -j 5

for debugging output

$ make -j1 V=s 2>&1 | tee ./out.log

having trouble?

'awk' is not installed

$ sudo apt-get install gawk zlib1g libncurses5 g++ flex

'git-core' in version >1.6.5 is not installed
https://gitlab.labs.nic.cz/turris/openwrt/issues/56
https://gitlab.labs.nic.cz/turris/openwrt/uploads/0673001b14ab1d1769604ff0ce7d8781/git-version-check-fix.patch
$ git apply git-version-check-fix.patch solved the problem. Link:

IMAGES

find resulting image under the following, where architecture is "ramips" ./bin//

* factory image: built for bootloader flasher or stock software flasher
* sysupgrade image: previously 'trx', designed to be flashed from within openwrt itself

additionally * uImage: a tagged linux image expected by u-boot loader (deprecated uImage) * tftp image: a remote kernel to be loaded by tftp (?) * vmlinux.bin: intermediate and plain kernel images * vmlinux.elf: dito

either get an official image from http://downloads.openwrt.org/latest/ramips/rt305x/

or build one and identify the images to flash - we take the "factory.bin"

    ./bin/ramips/openwrt-ramips-rt305x-dir-615-h1-squashfs-sysupgrade.bin
    ./bin/ramips/openwrt-ramips-rt305x-dir-615-h1-squashfs-factory.bin

FLASH

connect FTDI ttl 3.3V to Dir615 (e.g. via arduino RX, TX and GND) connect ethernet between pc and dir615

$ sudo screen /dev/ttyACM0 57600

NOTE: web frontend only works with dd-wrt images the image update process needs an old HTML1.0 standard, most browsers will mess up the image before it gets there (Bad trx header)

FLASHING: 30 / 30 / 30

easiest and most reliable for the dir615 it performs a hardreset via

> mtd -r erase nvram

or

> nvram erase

procedure:

configure the device to 192.168.10.1
configure the pc eth0 to 192.168.10.2

the dir615 powered, press and hold the RESET button for 30s

unpower the dir615, without releasing hold RESET for another 30s

power the dir615, STILL holding RESET for a final 30 seconds

the amber led will start blinking

on the pc open a browser to 192.168.10.1

the firmware update dialog will open, no username/password is required browse and select firmware to install

DIR615Hx-FW805B05.bin

NOTE: if the update/flashing fails, the router falls back to the last successfully installed image

FLASHING via TFTP

TFTP SETUP

$ sudo apt install tftpd-hpa tftp

$ cat /etc/default/tftpd-hpa
    TFTP_USERNAME="tftp"
    TFTP_DIRECTORY="/srv/tftp"
    #TFTP_ADDRESS="0.0.0.0:69"
    TFTP_ADDRESS="192.168.0.253:69"
    TFTP_OPTIONS="--secure"

$ sudo chown user -R /srf/tftp
$ sudo cp ./DIR615Hx-FW805B05.bin /srv/tftp/

test the server

$ tftp localhost
    tftp> get DIR615Hx-FW805B05.bin
    tftp>

the prompt means it worked correctly!

TFTP BOOT

reboot the dir615 - at the boot press and hold '1'
configure uboot to boot via tftp
BTW. press and hold '4' to get into uboot environment
pc: 192.168.0.2, tftp server on /srf/tftp is DIR615Hx-FW805B05.bin

    U-boot Ver:1.0.1.15 2011/05/05 13:28:21

    Board: Ralink APSoC DRAM:  32 MB
    ============================================
    ASIC 3352_MP (Port5<->None)
    Product Name: DIR-615H1
    SDRAM CAS = 3(d1835282)
    ============================================

    Please choose the operation:
       1: Load system code to SDRAM via TFTP.

<PRESS AND HOLD '1', THEN ENTER THE FOLLOWING>

        Please Input new ones /or Ctrl-C to discard
        Input device IP (192.168.99.9) ==:192.168.0.1
        Input server IP (192.168.99.8) ==:192.168.0.2
        Input Linux Kernel filename (uImageDIR-615H1) ==:DIR615Hx-FW805B05.bin

    netboot_common, argc= 3

    KSEG1ADDR(NetTxPacket) = 0xA1FE25C0

    NetLoop,call eth_halt !

    NetLoop,call eth_init !

    Waitting for RX_DMA_BUSY status Start... done

    Header Payload scatter function is Disable !!

    ETH_STATE_ACTIVE!!
    Using Eth0 (10/100-M) device
    TFTP from server 192.168.0.2; our IP address is 192.168.0.1
    Filename 'DIR615Hx-FW805B05.bin'.

    TIMEOUT_COUNT=10,Load address: 0x80800000
    Loading: *
    ArpTimeoutCheck
    Got ARP REPLY, set server/gtwy eth addr (34:e6:d7:49:94:9e)
    Got it
    #################################################################
    #################################################################
    #################################################################
    #################################################################
    #################################################################
    (...)

FURTHER FLASHING APPROACHES

approach: redboot

connect to the bootloader, and tell it to get the images on your harddisk via its TFTP client (in case of the DIR-300 you obtain a connection via telnet on the non-default port 9000). Example:

telnet 192.168.20.81 9000
Redboot> load uboot.img

NOTE: never tested

approach: tftp polling

as a single command-line:

$ echo -e "binary\nrexmt 1\ntimeout 60\ntrace\nput openwrt-xxx-x.x-xxx.bin\n" | tftp IPv4.x.y.z

step by step

$ tftp 192.168.0.1
    tftp> binary
    tftp> rexmt 1
    tftp> timeout 60
    tftp> trace
        Packet tracing on.
    tftp> put code.bin

"rexmt 1" will cause the tftp client to constantly retry to send the file to the given address

NOTE: never tested

approach: atftp

$ atftp --option "mode octet" --option "timeout  60" --verbose --trace -p -l code.bin 192.168.1.1

NOTE: never tested

approach: telnet

in case this requires to set up a ftp server on pc first (e.g. vsftp), then telnet to the dir615 and run on the dir615

$ telnet 192.168.0.1
    > nvram erase
    > cd /tmp
    > wget [firmware.bin file]
    > write [firmware.bin file] linux
    > reboot

alternatively execute

$ telnet 192.168.0.1
    > cd /tmp
    > nvram erase                       # optional: bricks the router on rare types
    > wget firm <firmware-url>          # get the firmware from the pc ftp server
    > cat /proc/meminfo | grep MemFree  # show free mem
    > stopservice cron                  # stop cron
    > killall process_monitor           # stop watchdog
    > /opt/etc/init.d/optK              # stop optware (on my system)
    > stopservice snmpd
    > stopservice zebra
    > stopservice olsrd
    > stopservice upnp
    > stopservice pptpd
    > cat /proc/meminfo | grep MemFree
    > nohup mtd write firm linux &

NOTE: never tested

approach: ssh

dd-wrt does not allow for using ssh natively, openwrt offers this possibility analog to telnet, scp the firmware file to the dir615, then proceed as in the above telnet approach

NOTE: never tested

CONFIGURATION

when dir615 is up and running, connect pc with dir615 via ethernet, and serial pc: 192.168.10.2 dir615: 192.168.10.1

on dir615

# ifconfig br-lan 192.168.10.1
# mkdir ~/.ssh
# scp [email protected]:~/.ssh/id_rsa__private.pub ~/.ssh/authorized_keys
# reboot

on the pc, to copy the config files

$ /opt/workspace/openwrt__dlink-dir-615/lothars__update-dir615.sh /opt/workspace/openwrt__dlink-dir-615/files 192.168.10.1

on the dir615 do # reboot or # /etc/init.d/network reload TODO

PACKAGES

PACKAGES - configure networking

host$ sudo sysctl net.ipv4.ip_forward=1
host$ sudo route add -host 192.168.10.1 dev eno1
host$ sudo sysctl net.ipv4.conf.eno1.proxy_arp=1
host$ sudo iptables --flush
host$ sudo iptables -t nat --flush
host$ sudo iptables -t nat -A POSTROUTING --out-interface wlp3s0 -j MASQUERADE
host$ sudo iptables -A FORWARD --in-interface eno1 -j ACCEPT
guest# route add -net 0.0.0.0 dev br-lan
guest# ping 192.168.1.1
<works>

guest# echo "nameserver 192.168.1.1" >> /etc/resolv.conf
guest# ping www.google.ch
<works>

PACKAGES - usage

on the router, execute # opkg update

show available packages # opkg list

show installed packages # opkg list-installed

install package uci # opkg install uci

remove package uci # opkg remove uci

PACKAGES - luci

luci won't work on the dir-615, since it is built with lua and takes too much place

# opkg install luci
    Configuring liblua.
    Configuring libuci-lua.
    Configuring lua.
    Configuring luci-lib-nixio.
    Configuring luci-base.
    Configuring luci-mod-admin-full.
    Configuring uhttpd.
    Configuring uhttpd-mod-ubus.
     * verify_pkg_installable: Only have 8kb available on filesystem /overlay, pkg luci-lib-ip needs 10
     * opkg_install_cmd: Cannot install package luci.

in this case remove the above installed packages in reversed order

# opkg remove uhttpd-mod-ubus
(...)

luci2 is built rather lightweight, rebuild the image

on the pc (openwrt directory), execute the following

$ vi ./feeds.conf.default
    src-git luci2 git://git.openwrt.org/project/luci2/ui.git

$ ./scripts/feeds update
$ ./scripts/feeds install luci2
$ make menuconfig
    select Image -> customized feeds -> luci2
    or search for it '/' entering "luci2"

and build the new image

NETWORKING

generally configuration location is: /etc/config/network https://wiki.openwrt.org/doc/uci/network two systems are available

/proc/switch (old) https://wiki.openwrt.org/doc/uci/network/switch TODO

swconfig https://wiki.openwrt.org/doc/techref/swconfig edit /overlay/upper/etc/config/network

show switch configs

# swconfig list
    Found: switch0 - rt305x

show available ports

# swconfig dev switch0 show

or

# swconfig dev rt305x show

get information about manual configuration

# swconfig dev rt305x help

set ip addresses

$ vi /etc/config/network
$ vi /etc/preinit
$ /etc/init.d/network reload

NETWORK - wifi client mode

https://wiki.openwrt.org/doc/howto/clientmode

several possibilities are available, L2: bridge NAT and bridge NAT with special attributes (using firmware e.g. BCM devices or some atheros)

L3: NAT or NAT with routing

approach: NAT

enable wifi interface and put it into station mode

# uci del wireless.@wifi-device[0].disabled
# uci del wireless.@wifi-iface[0].network
# uci set wireless.@wifi-iface[0].mode=sta
# uci commit wireless
# wifi

prepare

# vi /overlay/upper/etc/config/wireless
 - Remove the 'disable 1' option from the wireless configuration
 - Set the 'mode' option to 'station'
 - Save changed configuration file
 - Start wireless using the wifi command

execute, to see which access points (ap) are around

# wifi
# iwlist scan
  < should show the ap >

NOTE: iwlist not installed iwlist is part of package 'wireless-tools', configure & rebuild image or opkg install

NOTE: "wlan0 Interface doesn't support scanning : Device or resource busy" execute

# killall -9 wpa_supplicant
# iwlist scan
    (...)
    ESSID:"UPC241423492"
    Channel:11
    IE: WPA Version 1
            Group Cipher : TKIP
            Pairwise Ciphers (1) : TKIP
            Authentication Suites (1) : PSK
    (better configure the network to use WPA/WPA2 mixed mode)


# vi /overlay/upper/etc/config/network
        (...)
    config interface 'lan'
        option ifname 'eth0.1 eth0.2'       ## append eth0.2, the former 'wan'
        option force_link '1'
        option macaddr '00:0c:43:44:62:ed'
        option type 'bridge'
        option proto 'static'
        option ipaddr '192.168.10.1'         ## configure the desired ip
        option netmask '255.255.255.0'
        option ip6assign '60'

    config interface 'wan'
        option ifname 'wlan0'               ## set wlan0
        option force_link '1'
        option macaddr '00:0c:43:44:62:ee'
        option proto 'dhcp'                 ## set/leave dhcp

    config interface 'wan6'
        option ifname 'wlan0'               ## set wlan0
        option proto 'dhcpv6'
        (...)

NOTE: the wan network section must not contain any ifname option!

# vi /etc/config/wireless,/etc/config/wireless
    config wifi-device  radio0
        option type     mac80211
        option channel  11
        option hwmode   11g
        option path     '10180000.wmac'
        option htmode   HT20
    config wifi-iface
        option device   radio0
        option network  wan
        option mode     sta
        option ssid     UPC241423492
        option encryption psk
        option key      6AE7C3564E7097F4C67B20C8DFCAF7714091F43BF17F8670F4D74526A5D2623C

reload the configuration

# ifup wan
# wifi

NOTE: if the target network uses the 192.168.1.0/24 subnet, you must change the default LAN IP address to a different subnet, e.g. 192.168.2.1 you can determine the assigned WAN address with the following command:

    192.168.1.30

ping uplink/wan # ping 192.168.1.1

ping client at wan/router # ping 192.168.1.100

ping google # ping www.google.ch

approach: NAT with routing

client(s) dir-615 inet router


eth0 lan (eth br) wan (wlan0) wifi other 192.168.10.2 }----{ 192.168.10.1 192.168.1.103 }----{ 192.168.1.1 interfaces, 255.255.255.0 255.255.255.0 255.255.255.0 255.255.255.0 wan, etc.

NAT, as above, must be up and running, then reconfigure the firewall settings disable masquerading and set the incoming traffic policy to ACCEPT

# vi /overlay/upper/etc/config/firewall
        (...)
    config zone
        option name             wan     ## search zone 'wan'
        list   network          'wan'
        list   network          'wan6'
        option input            ACCEPT  ## set to ACCEPT
        option output           ACCEPT
        option forward          REJECT
        option masq             0       ## set to 0
        option mtu_fix          1

    config forwarding
        option src              wan     ## set src to 'wan', and
        option dest             lan     ## dest to 'lan'
        (...)

now, the ap-router would need a route that the ip of the openwrt (dir-615) is the gateway to its subnet, i.e.

  • dir-615: needs a static ip (e.g. 192.168.10.103) for its wan interface and adaptations in /overlay/upper/etc/config/network
  • inet-router: needs a route to gateway for 192.168.10.0/24 being this static ip of the dir-615

then reload the configuration

# ifup wan
# wifi

restart firewall # /etc/init.d/firewall restart

NOTE: after setup everything works BUT client subnet cannot access internet fix AP router (in this case 192.168.1.1) does not masquerade client subnet (192.168.10.0/24); if you cannot (or don't want to) modify AP router's firewall in deep, you can configure client router (192.168.10.1) in the following way

# vi /overlay/upper/etc/config/firewall
        (...)
    config 'zone'
        option 'name'       'wan'            ## in zone 'wan'
        option 'input'      'ACCEPT'
        option 'output'     'ACCEPT'
        option 'forward'    'REJECT'
        option 'mtu_fix'    '1'
        option masq_dest    !192.168.1.0/24  ## mask the ap net
        option 'masq'       '1'              ## enable masquerading
        (...)

approach: NAT with static IP / routing rule

alternative to setups on the routers, also a local routing rule on the terminal can be configured as quickfix (or proof)

client(s)                        dir-615                            inet router
---------------      --------------------------------      ----------------------------
eth0                    lan (eth br)   wan (wlan0)            wifi          other
192.168.10.2    }----{ 192.168.10.1   192.168.1.103  }----{  192.168.1.1    interfaces,
255.255.255.0          255.255.255.0  255.255.255.0          255.255.255.0  wan, etc.
                                                           ----------------------------
                                                                        |
                                                                        |
                                                                        |  PC (client)
                                                           ----------------------------
                                                             192.168.1.106 (wifi)
                                                             255.255.255.0
                                                                  [needs route]
                                                           ----------------------------

on pc, set route

$ sudo route -vF add -net 192.168.10.0/24 gw 192.168.1.103

DIR-615 - UBOOT

reboot, press and hold '4' to get uboot prompt

RT3352 # pri
    bootcmd=tftp
    bootdelay=5
    baudrate=57600
    ethaddr="28:10:7B:8E:6B:20"
    sn=000000001
    hw_ver=1.1.0
    pro_id=000
    country=000
    domain=1
    op_mode=0
    wanaddr=28:10:7B:8E:6B:21
    wlanaddr=00:AA:BB:CC:DD:10
    fwaddr=00:AA:BB:CC:DD:13
    eth_en=0
    snextra=RE022C2033845*******
    preboot=echo;echo
    ramargs=setenv bootargs root=/dev/ram rw
    addip=setenv bootargs $(bootargs) ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname):$(netdev):off
    addmisc=setenv bootargs $(bootargs) console=ttyS0,$(baudrate) ethaddr=$(ethaddr) panic=1
    flash_self=run ramargs addip addmisc;bootm $(kernel_addr) $(ramdisk_addr)
    kernel_addr=BFC40000
    u-boot=u-boot.bin
    load=tftp 8A100000 $(u-boot)
    u_b=protect off 1:0-1;era 1:0-1;cp.b 8A100000 BC400000 $(filesize)
    loadfs=tftp 8A100000 root.cramfs
    u_fs=era bc540000 bc83ffff;cp.b 8A100000 BC540000 $(filesize)
    test_tftp=tftp 8A100000 root.cramfs;run test_tftp
    hw_id=02180030
    uboot_ver=1.0.1.15
    ethact=Eth0 (10/100-M)
    filesize=311075
    fileaddr=80800000
    ipaddr=192.168.10.1
    serverip=192.168.10.2
    autostart=no
    bootfile=DIR615Hx-FW805B05.bin
    stdin=serial
    stdout=serial
    stderr=serial

DIR615 - ADJUSTMENTS

possible adjustemnts

add the file d-link.mk (basically replace the existing one - or keep it)

$ vi ./target/linux/ramips/rt305x/profiles/d-link.mk" with content (ref:DIR-615 H1 current sources):
    #
    # Copyright (C) 2012 OpenWrt.org
    #
    # This is free software, licensed under the GNU General Public License v2.
    # See /LICENSE for more information.
    #

    define Profile/DIR615H1
        NAME:=DIR-615 H1
        PACKAGES:=\
             kmod-usb-core kmod-usb-ohci \
             kmod-usb2 kmod-ledtrig-usbdev \
             usb-modeswitch usb-modeswitch-data \
             kmod-usb-serial-option
    endef

    define Profile/DIR615H1/Description
        Package set for DIR-615 H1
    endef

    $(eval $(call Profile,DIR615H1))

remove the line in the following file (not existent in recent build)

$ vi ./target/linux/ramips/base-files.mk"
    rm -f $(1)/etc/config/network

configure the network settings you want, for example:

$ vi ./package/base-files/files/etc/config/network
    # Copyright (C) 2006 OpenWrt.org
    config interface 'loopback'
            option ifname 'lo'
            option proto 'static'
            option ipaddr '127.0.0.1'
            option netmask '255.0.0.0'

    config interface 'lan'
            option ifname 'eth0.1'
            option type 'bridge'
            option proto 'static'
            option ipaddr '192.168.10.1'
            option netmask '255.255.255.0'

    config interface 'wan'
            option ifname 'eth0.2'
            option hostname 'DIR-615-H1'
            option proto    'dhcp'

    config switch
            option name rt305x
            option reset 1
            option enable_vlan 1

    config switch_vlan
            option device rt305x
            option vlan 1
            option ports '0 1 2 3 6t'

    config switch_vlan
            option device rt305x
            option vlan 2
            option ports '4 6t'

TRICKS

TRICKS - RECOVERY

$ telnet 192.168.10.1

no username and no password is needed

  • set a password
  • configure network

TRICKS - see version $ cat /etc/banner

ISSUES

ISSUE: recipe for target 'tools/lib/rsa/rsa-sign.o' failed

$ make
    (...)
    make -r world: build failed. Please re-run make with -j1 V=s to see what's going on
    /opt/workspace/openwrt__dlink-dir-615/git__openwrt/include/toplevel.mk:192: recipe for target 'world' failed
    make: *** [world] Error 1

$ make -j1 V=s
    /opt/workspace/openwrt__dlink-dir-615/git__openwrt/build_dir/host/u-boot-2014.10/lib/rsa/rsa-sign.c: In function 'rsa_get_exponent':
    /opt/workspace/openwrt__dlink-dir-615/git__openwrt/build_dir/host/u-boot-2014.10/lib/rsa/rsa-sign.c:279:21: error: dereferencing pointer to incomplete type 'RSA {aka struct rsa_st}'
      if (BN_num_bits(key->e) > 64)
                           ^~
      scripts/Makefile.host:134: recipe for target 'tools/lib/rsa/rsa-sign.o' failed
      make[5]: *** [tools/lib/rsa/rsa-sign.o] Error 1
      Makefile:1195: recipe for target 'tools-only' failed
      make[4]: *** [tools-only] Error 2
      make[4]: Leaving directory '/opt/workspace/openwrt__dlink-dir-615/git__openwrt/build_dir/host/u-boot-2014.10'
      Makefile:46: recipe for target '/opt/workspace/openwrt__dlink-dir-615/git__openwrt/build_dir/host/u-boot-2014.10/.built' failed
      make[3]: *** [/opt/workspace/openwrt__dlink-dir-615/git__openwrt/build_dir/host/u-boot-2014.10/.built] Error 2
      make[3]: Leaving directory '/opt/workspace/openwrt__dlink-dir-615/git__openwrt/tools/mkimage'
      tools/Makefile:134: recipe for target 'tools/mkimage/compile' failed
      make[2]: *** [tools/mkimage/compile] Error 2
      make[2]: Leaving directory '/opt/workspace/openwrt__dlink-dir-615/git__openwrt'
      tools/Makefile:133: recipe for target '/opt/workspace/openwrt__dlink-dir-615/git__openwrt/staging_dir/target-mipsel_24kec+dsp_musl-1.1.14/stamp/.tools_install_yynyynynynyyyyyyynyyynyyyyyyyyynyyyyynnyynynnyyynnnyy' failed
      make[1]: *** [/opt/workspace/openwrt__dlink-dir-615/git__openwrt/staging_dir/target-mipsel_24kec+dsp_musl-1.1.14/stamp/.tools_install_yynyynynynyyyyyyynyyynyyyyyyyyynyyyyynnyynynnyyynnnyy] Error 2
      make[1]: Leaving directory '/opt/workspace/openwrt__dlink-dir-615/git__openwrt'
      /opt/workspace/openwrt__dlink-dir-615/git__openwrt/include/toplevel.mk:192: recipe for target 'world' failed
      make: *** [world] Error 2

fix:

basic install

$ sudo apt-get install python python2.7 perl imagemagick subversion git gcc g++ binutils autoconf automake libtool-bin make bzip2 libncurses5-dev libreadline-dev zlib1g-dev flex bison patch texinfo tofrodos gettext pkg-config realpath libstring-crc32-perl gawk libusb-dev unzip intltool libacl1-dev libcap-dev libc6-dev libglib2.0-dev unzip wget curl zip libssl-dev

fix the problem: libssl-1.0.0 and libssl-1.1.x have changed API https://github.com/openwrt/openwrt/issues/372

--> downgrade host libssl-dev package on ubuntu/debian

ISSUE: /tmp/uploadmi8cuo: Bad trx header

fix: the image is not upgradeable via the web frontend, use tftp setup

on the linux pc install

sudo apt install tftpd-hpa tftp

ISSUE: Package kmod-w1-slave-ds2433 version 4.4.14-1 has no valid architecture, ignoring.

fix

check sources in /etc/opkg/distfeeds.conf or /etc/opkg/customfeeds.conf, make sure only to enable one or few lines at a time too many lines "open" seem to cause this issue run the following twice

opkg update

opkg update

ISSUE: mkimage failes due to missing libssl

fix: install libssl1.0.0

$ sudo apt install libssl1.0.0

ISSUE: opkg update failed - signature check

fix

quickfix: open and comment out / delete the line that reads

vi /etc/opkg.conf

# option check_signature 1

check if e.g. wget is installed, select busybox/wget and rebuild the image

ISSUE: opkg update failed - wget returned 255

fix make sure busybox -> network -> wget is installed select busybox/wget and rebuild the image

ISSUE: opkg install luci - Only have 8kb available on filesystem /overlay

fix install luci2 on the pc (openwrt directory), execute the following $ vi ./feeds.conf.default src-git luci2 git://git.openwrt.org/project/luci2/ui.git

$ ./scripts/feeds update $ ./scripts/feeds install luci2 $ make menuconfig select Image -> customized feeds -> luci2 or search for it '/' entering "luci2"

and build the new image

ISSUE: on target executing iwlist scan - interface doesn't support scanning

iwlist scan

eth0.1    Interface doesn't support scanning.
lo        Interface doesn't support scanning.
eth0      Interface doesn't support scanning.
br-lan    Interface doesn't support scanning.
eth0.2    Interface doesn't support scanning.

fix TODO

ISSUE: on target, executing iwlist scan - Device or resource busy

fix: stop running wpa_supplicant daemons

killall -9 wpa_supplicant

iwlist scan

⚠️ **GitHub.com Fallback** ⚠️