Web interface:
It is possible to upgrade to OpenWrt via the web interface. However, the
OEM firmware upgrade file is required and a tool to fix the MD5 sum of
the header. This procedure overwrites U-Boot and there is not failsafe /
recovery mode present! To prepare an image, you need to take the header
and U-Boot (i.e. 0x200 + 0x20000 bytes) from an OEM firmware file and
attach the factory image to it. Then fix the header MD5Sum1.
Serial/TFTP:
You can use initramfs for booting via RAM or flash the image directly.
Additional Notes:
If the web interface upgrade fails, you have to open your device and
attach serial console. Since the web upgrade overwrites the boot loader,
you might also brick your device.
In order to flash back to stock, the first header and U-Boot needs to be
stripped from the original firmware.
Signed-off-by: Christoph Krapp <achterin@googlemail.com>
[change rssi LED labels] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
DENG Qingfang [Thu, 5 Mar 2020 08:13:55 +0000 (16:13 +0800)]
kernel: add exFAT fs driver
This was available since kernel 5.4. The one provided in packages feed
will be considered deprecated and renamed to kmod-fs-exfat0.
Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn> Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
(use name kmod-fs-exfat. use "@!(LINUX_4_4||LINUX_4_19)" for dependency)
Robert Marko [Sun, 8 Mar 2020 16:21:27 +0000 (17:21 +0100)]
ipq40xx: add support for 8devices Habanero DVK
This patch adds support for the 8devices Habanero development board.
Specs are:
CPU: QCA IPQ4019
RAM: DDR3L 512MB
Storage: 32MB SPI-NOR and optional Parallel SLC NAND(Some boards ship with it and some without)
WLAN1: 2.4 GHz built into IPQ4019 (802.11n) 2x2
WLAN2: 5 GHz built into IPO4019 (802.11ac Wawe-2) 2x2
Ethernet: 5x Gbit LAN (QCA 8075)
USB: 1x USB 2.0 and 1x USB 3.0 (Both built into IPQ4019)
MicroSD slot (Uses SD controller built into IPQ4019)
SDIO3.0/EMMC slot (Uses the same SD controller)
Mini PCI-E Gen 2.0 slot (Built into IPQ4019)
5x LEDs (4 GPIO controllable)
2x Pushbutton (1 is connected to GPIO, other to SoC reset)
LCD ZIF socket (Uses the LCD controller built into IPQ4019 which has no driver support)
1x UART 115200 rate on J18
2x breakout development headers
12V DC Jack for power
DIP switch for bootstrap configuration
Installation instructions:
Since boards ship with vendors fork of OpenWrt sysupgrade can be used.
Petr Štetiar [Mon, 2 Mar 2020 17:03:27 +0000 (18:03 +0100)]
imx6: apalis: move set_blkcnt variable into recovery script
I've added `set_blkcnt` environment variable which is needed for every
`mmc write` command as we need to always specify size in block count.
That `set_blkcnt` variable was previously present in the U-Boot's
default environment, but that needed patching U-Boot every time, so that
patch was dropped with 2020.01 version bump.
Petr Štetiar [Sun, 1 Mar 2020 21:26:02 +0000 (22:26 +0100)]
uboot-imx6: bump to 2020.01 and refresh patches
Update U-Boot to latest release, remove `100-wandboard-enable-fit.patch`
as FIT support was added in commit 5b8585825128 ("wandboard: Add FIT
image support").
Rework `110-mx6cuboxi-mmc-fallback.patch` into two patches as there was
new config option `CONFIG_SPL_FORCE_MMC_BOOT` added upstream which
should provide the same functionality as the previous patch hunk.
Moving Apalis towards generic distro_bootcmd.
Cc: Vladimir Vid <vladimir.vid@sartura.hr> Cc: Tim Harvey <tharvey@gateworks.com> Cc: Koen Vandeputte <koen.vandeputte@ncentric.com> Signed-off-by: Petr Štetiar <ynezz@true.cz>
Petr Štetiar [Sun, 23 Feb 2020 20:45:05 +0000 (21:45 +0100)]
kernel: iio: split buffer modules into separate packages
Otherwise we would need to enable IIO_TRIGGERED_BUFFER symbol in all
kernels in order to be able to use any of the IIO modules which are
utilizing triggered buffer based data acquisition method.
Acked-by: Stijn Tintel <stijn@linux-ipv6.be> Signed-off-by: Petr Štetiar <ynezz@true.cz>
It was reported that this patch breaks on some cases the JFFS2 overlay
filesystem on targets still using kernel 4.14. This includes ar71xx,
where spurious erase of the ART was reported.
Revert this commit for now. Re-adding should probaby also be done for
every currently supported kernel version.
Ref: FS#2837 FS#2862 FS#2864 Signed-off-by: David Bauer <mail@david-bauer.net>
Sven Over [Sun, 23 Feb 2020 19:26:46 +0000 (14:26 -0500)]
mac80211: fix symbol dependency of rt2x00lib kernel module
On platforms that do not have CONFIG_MTD enabled, loading the
rt2x00lib kernel module fails because it depends on symbols from
the mtd module ("Unknown symbol get_mtd_device_nm").
This commit disables the code that can read the eeprom from mtd if
mtd is not enabled.
Signed-off-by: Sven Over <sp@cedenti.st> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Everything working.
Installation and restore procedure tested
Installation
1. Connect to one of LAN (yellow) ethernet ports,
2. Open router configuration interface,
3. Go to Toolbox > Firmware,
4. Browse for OpenWrt factory image with dlf extension and hit Apply,
5. Wait few minutes, after the Power LED will stop blinking, the router
is ready for configuration.
Restore OEM FW (Linux only)
1. Download OEM FW from website (tested with WLR-8100v1002-firmware-v27.dlf)
2. Compile the FW for this router and locate the "mksenaofw" tool
in build_dir/host/firmware-utils/bin/ inside the OpenWrt buildroot
3. Execute "mksenaofw -d WLR-8100v1002-firmware-v27.dlf -o WLR-8100v1002-firmware-v27.dlf.out" where:
WLR-8100v1002-firmware-v27.dlf is the path to the input file
(use the downloaded file)
WLR-8100v1002-firmware-v27.dlf.out is the path to the output file
(you can use the filename you want)
4. Flash the new WLR-8100v1002-firmware-v27.dlf.out file. WARNING: Do not keep settings.
Additional notes.
The original firmware has the following button configuration:
- Press for 2s the 2.4GHz button: WPS for 2.4GHz
- Press for 2s the 5GHz button: WPS for 5GHz
- Press for 15s both 2.4GHz and 5GHz buttons: Reset
I am not able to replicate this behaviour, so I used the following configuration:
- Press the 2.4GHz button: RFKILL (disable/enable every wireless interfaces)
- Press the 5GHz button: Reset
Manuel Giganto [Mon, 16 Sep 2019 10:25:23 +0000 (10:25 +0000)]
ath79: add support for Devolo Magic 2 WIFI
This patch support Devolo Magic 2 WIFI, board devolo_dlan2-2400-ac.
This device is a plc wifi AC2400 router/extender with 2 Ethernet
ports, has a G.hn PLC and uses LCMP protocol from Home Grid Forum.
Recommendations: Configure and link your PLC with OEM firmware
BEFORE you flash the device. PLC configuration/link should
remain in different memory and should work straight forward
after flashing.
Restrictions: PLC link detection to trigger plc red led is not
available. PLC G.hn chip is not compatible with open-plc-tools,
it uses LCMP protocol with AES-128 and requires different
software.
Notes: Pairing should be possible with gpio switch. Default
configuration will trigger wifi led with 2.4Ghz wifi traffic
and plc white led with wan traffic.
Flash instruction (TFTP):
1. Set PC to fixed ip address 192.168.0.100
2. Download the sysupgrade image and rename it to uploadfile
3. Start a tftp server with the image file in its root directory
4. Turn off the router
5. Press and hold Reset button
6. Turn on router with the reset button pressed and wait ~15 seconds
7. Release the reset button and after a short time
the firmware should be transferred from the tftp server
8. Allow 1-2 minutes for the first boot.
Signed-off-by: Manuel Giganto <mgigantoregistros@gmail.com>
WeiDong Jia [Tue, 5 Nov 2019 06:36:25 +0000 (14:36 +0800)]
ath79: add support for DomyWifi DW33D
This commit ports the device from ar71xx to the ath79 target and
modifies the partition layout.
1. Firmware is installed to nand flash.
2. Modify the uboot-env parameter to boot from the nand flash.
3. The kernel size is extended to 5M.
4.nor flash retains the oem firmware.
MAC address overview:
All mac addresses are stored in the art partition.
eth0: 0x0
eth1: 0x6
ath9k: 0xc
ath10k: 0x12
No valid addresses in 0x1002 and 0x5006. All addresses match the OEM
firmware.
Install from oem firmware.
Enable ssh service:
Connect to the router web, click professional, click system-startup,
and add dropbear in the local startup input box. Click
system-administration, delete ssh-key, and replace your ssh pub key.
Restart the router.
1.Upload openwrt firmware to the device
scp openwrt-snapshot-r11365-df60a0852c-ath79-nand-domywifi_dw33d-\
squashfs-factory.bin root@192.168.10.1:/tmp
2.modify uboot-env.
ssh login to the device:
fw_setenv bootcmd 'nboot 0x8050000 0;bootm || bootm 0x9fe80000'
Run the fw_printenv command to check if the settings are correct.
3.Write openwrt firmware.
ssh login to the device:
mtd -r write /tmp/openwrt-snapshot-r11365-df60a0852c-ath79-nand-\
domywifi_dw33d-squashfs-factory.bin /dev/mtd6
The device will restart automatically and the openwrt firmware
installation is complete.
Restore oem firmware.just erase the kernel partition and the ubi
partition.
ssh login to the device:
mtd erase /dev/mtd4
mtd -r erase /dev/mtd5
Reboot the device
ramips: increase spi-max-frequency to 50 MHz for D-Link DIR-810L
Read times drop when increasing frequency to 25 MHz and 50 MHz,
but not in between or for further increase. So, use 50 MHz as the
lowest frequency with the fastest speed.
Test results (thanks to Roger):
The device reports a mx25l6405d flash chip. I tried all the maximum
values in the devices' datasheet (Table 10. AC CHARACTERISTICS). All of
them worked with and without "m25p,fast-read":
> 10 MHz
root@OpenWrt:~# time cat /dev/mtd* > /dev/null
real 1m 33.00s
user 0m 0.01s
sys 1m 7.56s
> 25 MHz
root@OpenWrt:~# time cat /dev/mtd* > /dev/null
real 0m 34.42s
user 0m 0.02s
sys 0m 23.58s
> 25 MHz, fast read
root@OpenWrt:~# time cat /dev/mtd* > /dev/null
real 0m 34.45s
user 0m 0.02s
sys 0m 23.59s
> 33 MHz
root@OpenWrt:~# time cat /dev/mtd* > /dev/null
real 0m 34.39s
user 0m 0.00s
sys 0m 23.60s
> 33 MHz, fast read
root@OpenWrt:~# time cat /dev/mtd* > /dev/null
real 0m 34.46s
user 0m 0.01s
sys 0m 23.62s
> 50 MHz
root@OpenWrt:~# time cat /dev/mtd* > /dev/null
real 0m 26.81s
user 0m 0.01s
sys 0m 18.25s
> 50 MHz, fast read
root@OpenWrt:~# time cat /dev/mtd* > /dev/null
real 0m 26.84s
user 0m 0.00s
sys 0m 18.25s
> 66 MHz
root@OpenWrt:~# time cat /dev/mtd* > /dev/null
real 0m 26.80s
user 0m 0.01s
sys 0m 18.23s
> 66 MHz, fast read
root@OpenWrt:~# time cat /dev/mtd* > /dev/null
real 0m 26.80s
user 0m 0.02s
sys 0m 18.23s
> 86 MHz
root@OpenWrt:~# time cat /dev/mtd* > /dev/null
real 0m 26.84s
user 0m 0.01s
sys 0m 18.24s
> 86 MHz, fast read
root@OpenWrt:~# time cat /dev/mtd* > /dev/null
real 0m 26.80s
user 0m 0.02s
sys 0m 18.23s
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Tested-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
The Jffs2 partition for the D-Link DIR-810L is currently off by
0x10000. Apply the correct offset based on the other partitions'
size/offset and the information about stock OS from the Wiki.
This is just based on the named information and _not_ verified
on device.
Fixes: 36e3424fa520 ("ramips: add support for dir810l and asus rp-n53") Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Tested-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
Login to netgear webinterface and flash factory.img
Based on a discontinued GitHub Pull Request by
kuyokushin <codenamezero@protonmail.com>
https://github.com/openwrt/openwrt/pull/2545
NOTE: Netgear R6700 v2 have five clones: R6900 v2, R7450, Nighthawk
AC2400, Nighthawk AC2100 and already added R6800. Rest of them should
be really easy supportable. Image for R6700v2 should work perfectly with
them. Please refer:
https://github.com/openwrt/openwrt/pull/2614
Tested-by: Víctor Gibrán <victorgibranmz@hotmail.com> [R6700v2] Tested-by: John Landrum <jl31m10@yahoo.com> [AC2400] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
[add guest led to mt7621_netgear_r6700-v2.dts end edit commit message] Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Ansuel Smith [Wed, 19 Feb 2020 00:22:00 +0000 (01:22 +0100)]
ipq806x: add patch to fix broken usb3
Due to changes in syscon driver, the phy dwc3 driver
needs to use device_node_to_regmap since it has to skip
the new introduced clk check. This fix broken usb3 on this
target.
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
Ansuel Smith [Fri, 28 Feb 2020 21:29:04 +0000 (22:29 +0100)]
ipq806x: add patch to disable pretimeout on timer platform
Currently the watchdog timer is broken as it tries to
get an interrupt to setup pretimeout. Since our platform
have a different type of interrupt disable it and use
legacy watchdog probe.
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
Ansuel Smith [Thu, 30 Jan 2020 01:37:58 +0000 (02:37 +0100)]
ipq806x: add ipq806x mdio driver
This was created by Chunkeey some time ago. Since mdio driver
works or doesn't work and since this was tested by me for 1 year,
include it to remove the use of the generic bitbang gpio driver for
switch driver.
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
Ansuel Smith [Sun, 26 Jan 2020 03:32:45 +0000 (04:32 +0100)]
ipq806x: fix tsens driver
Rework tsens driver.
Since in the new kernel 5.4 init common do more than it
should, inizialize the kernel memory directly in the driver and
drop use of this function. Rework all the patch with the new
variable names.
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
Pawel Dembicki [Mon, 2 Mar 2020 20:42:34 +0000 (21:42 +0100)]
kirkwood: initial refresh of 5.4 patches
Refreshed all patches.
Changed:
105-ea4500.patch-> Upstream DSA driver was updated. Patch was fixed
202-linksys-find-active-root.patch -> Upstream driver was moved. Patch
was fixed
Alan Swanson [Sat, 16 Nov 2019 16:48:30 +0000 (16:48 +0000)]
mediatek: update uci-defaults for renamed smp packet steering option
Leave as enabled by default for mediatek. Also remove obsolete
settings from when packet steering was moved from netifd to a
simplified hotplug script.
Signed-off-by: Alan Swanson <reiver@improbability.net>
Alan Swanson [Fri, 15 Nov 2019 14:05:35 +0000 (14:05 +0000)]
netifd: change RPS/XPS handling to all CPUs and disable by default
The current implementation is significantly lowering lantiq
performace [1][2] by using RPS with non-irq CPUs and XPS
with alternating CPUs.
The previous netifd implementation (by default but could be
configured) simply used all CPUs and this patch essentially
reverts to this behaviour.
The only document suggesting using non-interrupt CPUs is Red
Hat [3] where if the network interrupt rate is extremely high
excluding the CPU that handles network interrupts *may* also
improve performance.
The original packet steering patches [4] advise that optimal
settings for the CPU mask seems to depend on architectures
and cache hierarcy so one size does not fit all. It also
advises that the overhead in processing for a lightly loaded
server can cause performance degradation.
Ideally, proper IRQ balancing is a better option with
the irqbalance daemon or manually.
The kernel does not enable packet steering by default, so
also disable in OpenWRT by default. (Though mvebu with its
hardware scheduling issues [5] might want to enable packet
steering by default.)
Change undocumented "default_ps" parameter to clearer
"packet_steering" parameter. The old parameter was only ever
set in target/linux/mediatek/base-files/etc/uci-defaults/99-net-ps
and matched the default.
Yousong Zhou [Thu, 6 Feb 2020 09:11:39 +0000 (17:11 +0800)]
ramips: mt7530: remove redundant global attrs for port mirroring
Global attributes enable_mirror_tx/enable_mirror_rx depend on runtime
value of another global attribute mirror_source_port which just resides
in the memory
The same functionality can be achieved by directly setting port
attribute of the same names. E.g. the following two groups of commands
achieve the same thing
swconfig dev switch0 set mirror_source_port 3
swconfig dev switch0 set enable_mirror_tx 1
swconfig dev switch0 set mirror_source_port 4
swconfig dev switch0 set enable_mirror_tx 1
swconfig dev switch0 port 3 set enable_mirror_tx 1
swconfig dev switch0 port 4 set enable_mirror_tx 1
getopt is the only command where /usr/local/bin is specified explicitly.
All other commands are assumed to exist in the PATH in one form or
another. Remove this exception and require gnugetopt/getopt to be in
the user's PATH.
In the case of macos Homebrew, getopt is 'keg only' hence not linked
into /usr/local/bin whilst other commands are linked and likely found by
virtue of /usr/local/bin being in PATH.
Since 2019 Homebrew is very reluctant to install links that have
potential to override default OS behaviour, eg: following instructions
on our current 'how to build on macos' wiki page:
$ brew ln gnu-getopt --force
Warning: Refusing to link macOS-provided software: gnu-getopt
If you need to have gnu-getopt first in your PATH run:
echo 'export PATH="/usr/local/opt/gnu-getopt/bin:$PATH"' >> ~/.zshrc
A better option for macos is to link getopt as 'gnugetopt' in
/usr/local/bin, thus the build system will find 'gnugetopt' but other
applications looking for just 'getopt' will find the original macos
binary.
Ultimately it makes sense that 'GNU' dependencies are placed in
/usr/local/bin and /usr/local/bin is included in the user's PATH.
Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
This commit fills the void for current OpenWrt installations which will
be still on old bootloader version even after "x86: add bootloader
upgrade on sysupgrade", since it performs bootloader upgrade only on
sysupgrade. To keep all OpenWrt deploynents on the same GRUB version,
add preinit hook, which will perform upgrade of the bootloader on first
boot after sysupgrade.
It's temporary solution and should be deleted, when the first release
including this hook will no longer be supported by OpenWrt team.
We can assume that all installations should be on current bootolader
version and from there sysupgrade routine will be sufficient.
Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
Currently bootloader always stays on the same version as when first
written to boot medium (not true if partition layout changed, which will
trigger sysupgrade process to write full disk image). That creates
inconveniences as it always stays with same features or/and bugs. Users
wishing to add support to additional modules or new version, would need
to write the whole image, potentially destroying previous system
configuration. To fix these, this commit adds additional routine to
sysupgrade which upgrades unconditionally the bootloader to the latest
state provided by OpenWrt.
Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
There can be some leftovers from other image recipes, if the same
directory names are used and multiply image types are selected.
Therefore remove directories used in the recipe, before contents for the
image are prepared.
Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
Tim Harvey [Fri, 28 Feb 2020 19:33:56 +0000 (11:33 -0800)]
imx6: 5.4: dts: backport lsm9ds1 imu support for GW553x
Add one node for the accel/gyro i2c device and another for the separate
magnetometer device in the lsm9ds1.
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
[commit subject/description tweaks, kernel version in patch filename] Signed-off-by: Petr Štetiar <ynezz@true.cz>
Tim Harvey [Fri, 28 Feb 2020 18:49:53 +0000 (10:49 -0800)]
kernel: 5.4: backport fxos8700 accel support from 5.5
Backport kernel module from 5.5 for FXOS8700CQ, which is a small,
low-power, 3-axis linear accelerometer and 3-axis magnetometer combined
into a single package. The device features a selectable I2C or
point-to-point SPI serial interface with 14-bit accelerometer and 16-bit
magnetometer ADC resolution along with smart-embedded functions.
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
[added commit description] Signed-off-by: Petr Štetiar <ynezz@true.cz>
Code was attempting to determine the size of the file
before it was actually known and allocating insufficient
memory space. Images above a certain size caused a
segmentation fault. Moving the calloc() ensured ensured
that large images didn't result in a buffer overflow on
memcpy().
Signed-off-by: Michael T Farnworth <michael@turf.org>
[fixed name in From to match one in SoB] Signed-off-by: Petr Štetiar <ynezz@true.cz>
Rosen Penev [Thu, 28 Nov 2019 19:19:31 +0000 (11:19 -0800)]
tools/pkg-config: Replace with pkgconf
pkgconf is a newer, actively maintained implementation of pkg-config that
supports more aspects of the pkg-config file specification and provides a
library interface that applications can use to incorporate intelligent
handling of pkg-config files into themselves (such as build file
generators, IDEs, and compilers). Through its pkg-config compatibility
interface (activated when it is run as "pkg-config"), it also can
completely replace the original implementation.
It is also lighterweight and does not require glib2, as pkg-config does.
On other distros, pkgconf is symlinked to pkg-config. For simplicity here,
it is renamed to pkg-config.real, as in the original package.
Initial results have been positive. As before, pkgconf works as long as
the pkg-config files point to the proper paths.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
[backported upstream fix for Meson] Signed-off-by: Petr Štetiar <ynezz@true.cz>
uboot-mvebu: point to UBOOT_CONFIG when setting options
The BUILD_VARIANT might differ from UBOOT_CONFIG, so point to a file we
are actually changing. Being here let's call 'Build/Configure/U-Boot'
definition, instead of definig the same command. This'll be more future
proof, if U-Boot configuration procedure will change.
Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
If device recipe has specified DEVICE_DTS variable, the dtb is built
anyway by OpenWrt buildroot image rules. Drop the patch and adjust the
location of compiled dtb.
Cc: Scott Roberts <ttocsr@gmail.com> Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
Tar has ability to change current dir, so use that instead additional
command invocation. Also being here, change tar arguments to make final
archive reproducible.
Cc: Scott Roberts <ttocsr@gmail.com> Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
This device receipe selects bunch of packages which some are re-defined,
unnecessary or irrelevant. Clean them up, so only basic functionality
persist.
Cc: Scott Roberts <ttocsr@gmail.com> Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
Don't rewrite global DTS_DIR, instead, use proper variable for
specifying devices dts directory. For consistency, also specify the
variable in default profile, as suggested by Adrian Schmutzler.
Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
Jeffery To [Tue, 18 Feb 2020 21:37:22 +0000 (05:37 +0800)]
tools: Fix "lib" symlink created inside $(STAGING_DIR_HOST)/lib
Currently, if "make tools/install" is called after tools have already
been installed, a symbolic link named "lib" will be created inside
$(STAGING_DIR_HOST)/lib, pointing to "lib" (i.e. itself).
During tools/prepare, a "lib64" symlink is created inside
$(STAGING_DIR_HOST) that points to "lib" (also inside
$(STAGING_DIR_HOST)).
If tools/prepare is called and the "lib64" symlink already exists, then
ln will treat it as a directory and instead create a symlink named "lib"
inside of that directory.
This adds the -n option for ln so that $(STAGING_DIR_HOST)/lib64 is
always treated as a normal file (the link name), not as a directory.
Jeffery To [Tue, 18 Feb 2020 21:15:04 +0000 (05:15 +0800)]
build: Fix directory symlinks not removed when cleaning STAGING_DIR
Currently, a symbolic link whose target is a directory will not be
removed when cleaning packages from STAGING_DIR.
In the first cleaning pass in scripts/clean-package.sh, the -f test for
a directory symlink returns false (because the link target is a
directory) and so the symlink is not removed.
In the second pass, the -d test returns true for a directory symlink,
but the symlink is not removed by rmdir because rmdir only removes
(real) directories.
This updates clean-package.sh to remove all non-directories (including
symbolic links) in the first pass.