Merge Leam's source
This commit is contained in:
commit
d7dfa4199a
@ -6,13 +6,13 @@ ifdef CONFIG_TESTING_KERNEL
|
||||
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
||||
endif
|
||||
|
||||
LINUX_VERSION-4.9 = .207
|
||||
LINUX_VERSION-4.14 = .160
|
||||
LINUX_VERSION-4.19 = .91
|
||||
LINUX_VERSION-4.9 = .208
|
||||
LINUX_VERSION-4.14 = .162
|
||||
LINUX_VERSION-4.19 = .93
|
||||
|
||||
LINUX_KERNEL_HASH-4.9.207 = ca86637e7b5bec65eeb7da695824e0e8aca5ba52eb742885f0b7241977400124
|
||||
LINUX_KERNEL_HASH-4.14.160 = c60326bad1bcdede514ca8a0bb96843fa7578ef00829cced6218b888b2efa92c
|
||||
LINUX_KERNEL_HASH-4.19.91 = f403c3dee12ded0af1889c78871abf7a531a978ba423f1ca772de702a92c3447
|
||||
LINUX_KERNEL_HASH-4.9.208 = b7ad1c9841d671d026c55a4c91c77205f8b488ca5f980f838591c68662e0525a
|
||||
LINUX_KERNEL_HASH-4.14.162 = f65170224cd4359ce8b2793b492bd8127abdd0b91350484e001bce13f0c98b4b
|
||||
LINUX_KERNEL_HASH-4.19.93 = 2af5d23f82a8bf69a6e4d8407579293b7beeebd3054dc464d48bdb5d2d7f5834
|
||||
|
||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||
|
||||
@ -1,42 +0,0 @@
|
||||
#
|
||||
# Copyright (C) 2014 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=am33x-cm3
|
||||
PKG_VERSION:=20130304
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=http://arago-project.org/git/projects/am33x-cm3.git
|
||||
PKG_SOURCE_VERSION:=32cf44e25b5828b87af6dceebc3a49fed5d858ac
|
||||
PKG_MIRROR_HASH:=71d4029eed4ef58a1e0beb299d5c876bf0b9a790ecac52aacf1d510f5841d959
|
||||
|
||||
PKG_MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
|
||||
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/am33x-cm3
|
||||
SECTION:=firmware
|
||||
CATEGORY:=Firmware
|
||||
URL:=http://arago-project.org/git/projects/?p=am33x-cm3.git
|
||||
TITLE:=TI AM335x PM firmware
|
||||
DEPENDS:=@TARGET_omap
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
$(MAKE) CROSS_COMPILE=$(TARGET_CROSS) -C $(PKG_BUILD_DIR)
|
||||
endef
|
||||
|
||||
define Package/am33x-cm3/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware
|
||||
$(CP) $(PKG_BUILD_DIR)/bin/am335x-pm-firmware.bin $(1)/lib/firmware
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,am33x-cm3))
|
||||
@ -1,53 +0,0 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=brcmfmac-board-rpi
|
||||
PKG_VERSION:=2018-03-12
|
||||
PKG_RELEASE:=86e88fbf0345da49555d0ec34c80b4fbae7d0cd3
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
BRCMFMAC434XX_SDIO_URL:=@GITHUB/RPi-Distro/firmware-nonfree/$(PKG_RELEASE)/brcm/
|
||||
BRCMFMAC43455_SDIO_FILE:=brcmfmac43455-sdio-$(PKG_RELEASE)
|
||||
|
||||
define Download/brcmfmac43455_sdio_clm_blob
|
||||
FILE:=$(BRCMFMAC43455_SDIO_FILE).clm_blob
|
||||
URL:=$(BRCMFMAC434XX_SDIO_URL)
|
||||
URL_FILE:=brcmfmac43455-sdio.clm_blob
|
||||
HASH:=8e2250518bc789e53109728c3c0a6124bc3801a75a1cb4966125753cf1f0252e
|
||||
endef
|
||||
$(eval $(call Download,brcmfmac43455_sdio_clm_blob))
|
||||
|
||||
define Package/brcmfmac-board-rpi/Default
|
||||
SECTION:=firmware
|
||||
CATEGORY:=Firmware
|
||||
URL:=https://github.com/RPi-Distro/firmware-nonfree/
|
||||
DEPENDS:=@TARGET_brcm2708
|
||||
PKGARCH:=all
|
||||
endef
|
||||
|
||||
define Package/brcmfmac-firmware-43455-clm_blob
|
||||
$(call Package/brcmfmac-board-rpi/Default)
|
||||
TITLE:=BCM43455 RPi SDIO Localisation Blob
|
||||
endef
|
||||
|
||||
define Package/brcmfmac-firmware-43455-clm_blob/description
|
||||
Localisation blob for the Broadcom BCM43455 on RPi boards.
|
||||
endef
|
||||
|
||||
define Build/Prepare
|
||||
rm -rf $(PKG_BUILD_DIR)
|
||||
mkdir -p $(PKG_BUILD_DIR)
|
||||
cp $(DL_DIR)/$(BRCMFMAC43455_SDIO_FILE).clm_blob $(PKG_BUILD_DIR)/brcmfmac43455-sdio.clm_blob
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
true
|
||||
endef
|
||||
|
||||
define Package/brcmfmac-firmware-43455-clm_blob/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/brcm/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/brcmfmac43455-sdio.clm_blob $(1)/lib/firmware/brcm/
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,brcmfmac-firmware-43455-clm_blob))
|
||||
239
package/firmware/cypress-firmware/Makefile
Normal file
239
package/firmware/cypress-firmware/Makefile
Normal file
@ -0,0 +1,239 @@
|
||||
#
|
||||
# Copyright (C) 2019 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
UNPACK_CMD=unzip -q -p $(DL_DIR)/$(PKG_SOURCE) $(PKG_SOURCE_UNZIP) | gzip -dc | $(HOST_TAR) -C $(1) $(TAR_OPTIONS)
|
||||
|
||||
PKG_NAME:=cypress-firmware
|
||||
PKG_VERSION:=v4.14.77-2019_1031
|
||||
|
||||
PKG_SOURCE_UNZIP:=cypress-firmware-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE:=cypress-fmac-$(PKG_VERSION).zip
|
||||
PKG_SOURCE_URL:=https://community.cypress.com/servlet/JiveServlet/download/17441-2-50210/
|
||||
PKG_HASH:=bc2eec0d144a88e3105a06cac8039a7f13becde67dfe2a86793ba66f6a2510e0
|
||||
|
||||
PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/cypress-firmware-default
|
||||
SECTION:=firmware
|
||||
CATEGORY:=Firmware
|
||||
URL:=https://community.cypress.com/community/linux
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
true
|
||||
endef
|
||||
|
||||
# Cypress 43340 SDIO Firmware
|
||||
define Package/cypress-firmware-43340-sdio
|
||||
$(Package/cypress-firmware-default)
|
||||
TITLE:=CYW43340 FullMac SDIO firmware
|
||||
endef
|
||||
|
||||
define Package/cypress-firmware-43340-sdio/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/brcm
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac43340-sdio.bin \
|
||||
$(1)/lib/firmware/brcm/brcmfmac43340-sdio.bin
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,cypress-firmware-43340-sdio))
|
||||
|
||||
# Cypress 43362 SDIO Firmware
|
||||
define Package/cypress-firmware-43362-sdio
|
||||
$(Package/cypress-firmware-default)
|
||||
TITLE:=CYW43362 FullMac SDIO firmware
|
||||
endef
|
||||
|
||||
define Package/cypress-firmware-43362-sdio/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/brcm
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac43362-sdio.bin \
|
||||
$(1)/lib/firmware/brcm/brcmfmac43362-sdio.bin
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,cypress-firmware-43362-sdio))
|
||||
|
||||
# Cypress 4339 SDIO Firmware
|
||||
define Package/cypress-firmware-4339-sdio
|
||||
$(Package/cypress-firmware-default)
|
||||
TITLE:=CYW4339 FullMac SDIO firmware
|
||||
endef
|
||||
|
||||
define Package/cypress-firmware-4339-sdio/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/brcm
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac4339-sdio.bin \
|
||||
$(1)/lib/firmware/brcm/brcmfmac4339-sdio.bin
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,cypress-firmware-4339-sdio))
|
||||
|
||||
# Cypress 43430 SDIO Firmware
|
||||
define Package/cypress-firmware-43430-sdio
|
||||
$(Package/cypress-firmware-default)
|
||||
TITLE:=CYW43430 FullMac SDIO firmware
|
||||
endef
|
||||
|
||||
define Package/cypress-firmware-43430-sdio/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/brcm
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac43430-sdio.bin \
|
||||
$(1)/lib/firmware/brcm/brcmfmac43430-sdio.bin
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac43430-sdio.clm_blob \
|
||||
$(1)/lib/firmware/brcm/brcmfmac43430-sdio.clm_blob
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,cypress-firmware-43430-sdio))
|
||||
|
||||
# Cypress 43455 SDIO Firmware
|
||||
define Package/cypress-firmware-43455-sdio
|
||||
$(Package/cypress-firmware-default)
|
||||
TITLE:=CYW43455 FullMac SDIO firmware
|
||||
endef
|
||||
|
||||
define Package/cypress-firmware-43455-sdio/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/brcm
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac43455-sdio.bin \
|
||||
$(1)/lib/firmware/brcm/brcmfmac43455-sdio.bin
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac43455-sdio.clm_blob \
|
||||
$(1)/lib/firmware/brcm/brcmfmac43455-sdio.clm_blob
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,cypress-firmware-43455-sdio))
|
||||
|
||||
# Cypress 4354 SDIO Firmware
|
||||
define Package/cypress-firmware-4354-sdio
|
||||
$(Package/cypress-firmware-default)
|
||||
TITLE:=CYW4354 FullMac SDIO firmware
|
||||
endef
|
||||
|
||||
define Package/cypress-firmware-4354-sdio/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/brcm
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac4354-sdio.bin \
|
||||
$(1)/lib/firmware/brcm/brcmfmac4354-sdio.bin
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac4354-sdio.clm_blob \
|
||||
$(1)/lib/firmware/brcm/brcmfmac4354-sdio.clm_blob
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,cypress-firmware-4354-sdio))
|
||||
|
||||
# Cypress 4356 PCIe Firmware
|
||||
define Package/cypress-firmware-4356-pcie
|
||||
$(Package/cypress-firmware-default)
|
||||
TITLE:=CYW4356 FullMac PCIe firmware
|
||||
endef
|
||||
|
||||
define Package/cypress-firmware-4356-pcie/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/brcm
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac4356-pcie.bin \
|
||||
$(1)/lib/firmware/brcm/brcmfmac4356-pcie.bin
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac4356-pcie.clm_blob \
|
||||
$(1)/lib/firmware/brcm/brcmfmac4356-pcie.clm_blob
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,cypress-firmware-4356-pcie))
|
||||
|
||||
# Cypress 4356 SDIO Firmware
|
||||
define Package/cypress-firmware-4356-sdio
|
||||
$(Package/cypress-firmware-default)
|
||||
TITLE:=CYW4356 FullMac SDIO firmware
|
||||
endef
|
||||
|
||||
define Package/cypress-firmware-4356-sdio/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/brcm
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac4356-sdio.bin \
|
||||
$(1)/lib/firmware/brcm/brcmfmac4356-sdio.bin
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac4356-sdio.clm_blob \
|
||||
$(1)/lib/firmware/brcm/brcmfmac4356-sdio.clm_blob
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,cypress-firmware-4356-sdio))
|
||||
|
||||
# Cypress 4359 PCIe Firmware
|
||||
define Package/cypress-firmware-4359-pcie
|
||||
$(Package/cypress-firmware-default)
|
||||
TITLE:=CYW4359 FullMac PCIe firmware
|
||||
endef
|
||||
|
||||
define Package/cypress-firmware-4359-pcie/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/brcm
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac4359-pcie.bin \
|
||||
$(1)/lib/firmware/brcm/brcmfmac4359-pcie.bin
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac4359-pcie.clm_blob \
|
||||
$(1)/lib/firmware/brcm/brcmfmac4359-pcie.clm_blob
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,cypress-firmware-4359-pcie))
|
||||
|
||||
# Cypress 4359 SDIO Firmware
|
||||
define Package/cypress-firmware-4359-sdio
|
||||
$(Package/cypress-firmware-default)
|
||||
TITLE:=CYW4359 FullMac SDIO firmware
|
||||
endef
|
||||
|
||||
define Package/cypress-firmware-4359-sdio/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/brcm
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac4359-sdio.bin \
|
||||
$(1)/lib/firmware/brcm/brcmfmac4359-sdio.bin
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac4359-sdio.clm_blob \
|
||||
$(1)/lib/firmware/brcm/brcmfmac4359-sdio.clm_blob
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,cypress-firmware-4359-sdio))
|
||||
|
||||
# Cypress 4373 SDIO Firmware
|
||||
define Package/cypress-firmware-4373-sdio
|
||||
$(Package/cypress-firmware-default)
|
||||
TITLE:=CYW4373 FullMac SDIO firmware
|
||||
endef
|
||||
|
||||
define Package/cypress-firmware-4373-sdio/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/brcm
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac4373-sdio.bin \
|
||||
$(1)/lib/firmware/brcm/brcmfmac4373-sdio.bin
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac4373-sdio.clm_blob \
|
||||
$(1)/lib/firmware/brcm/brcmfmac4373-sdio.clm_blob
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,cypress-firmware-4373-sdio))
|
||||
|
||||
# Cypress 4373 USB Firmware
|
||||
define Package/cypress-firmware-4373-usb
|
||||
$(Package/cypress-firmware-default)
|
||||
TITLE:=CYW4373 FullMac USB firmware
|
||||
endef
|
||||
|
||||
define Package/cypress-firmware-4373-usb/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/brcm
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac4373-usb.bin \
|
||||
$(1)/lib/firmware/brcm/brcmfmac4373-usb.bin
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/firmware/brcmfmac4373.clm_blob \
|
||||
$(1)/lib/firmware/brcm/brcmfmac4373.clm_blob
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,cypress-firmware-4373-usb))
|
||||
95
package/firmware/cypress-nvram/Makefile
Normal file
95
package/firmware/cypress-nvram/Makefile
Normal file
@ -0,0 +1,95 @@
|
||||
#
|
||||
# Copyright (C) 2019 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=cypress-nvram
|
||||
PKG_SOURCE_DATE:=2019-09-03
|
||||
PKG_SOURCE_VERSION:=e7b78df22f2a0c5f56abb7b5880661611de35e5f
|
||||
PKG_MIRROR_HASH:=1cb20a749696852be0a512d51961365dd9c031362af0af1a2b9f5a3fb894885f
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/openwrt/cypress-nvram.git
|
||||
|
||||
PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/cypress-nvram-default
|
||||
SECTION:=firmware
|
||||
CATEGORY:=Firmware
|
||||
URL:=https://community.cypress.com/community/linux
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
true
|
||||
endef
|
||||
|
||||
# Cypress 43430 SDIO Raspberry Pi 3B NVRAM
|
||||
define Package/cypress-nvram-43430-sdio-rpi-3b
|
||||
$(Package/cypress-nvram-default)
|
||||
TITLE:=CYW43430 NVRAM for Raspberry Pi 3B
|
||||
DEPENDS:=@TARGET_brcm2708
|
||||
endef
|
||||
|
||||
define Package/cypress-nvram-43430-sdio-rpi-3b/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/brcm
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/brcmfmac43430-sdio.raspberrypi,3-model-b.txt \
|
||||
$(1)/lib/firmware/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,cypress-nvram-43430-sdio-rpi-3b))
|
||||
|
||||
# Cypress 43430 SDIO Raspberry Pi Zero W NVRAM
|
||||
define Package/cypress-nvram-43430-sdio-rpi-zero-w
|
||||
$(Package/cypress-nvram-default)
|
||||
TITLE:=CYW43430 NVRAM for Raspberry Pi Zero W
|
||||
DEPENDS:=@TARGET_brcm2708
|
||||
endef
|
||||
|
||||
define Package/cypress-nvram-43430-sdio-rpi-zero-w/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/brcm
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/brcmfmac43430-sdio.raspberrypi,model-zero-w.txt \
|
||||
$(1)/lib/firmware/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.txt
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,cypress-nvram-43430-sdio-rpi-zero-w))
|
||||
|
||||
# Cypress 43455 SDIO Raspberry Pi 3B+ NVRAM
|
||||
define Package/cypress-nvram-43455-sdio-rpi-3b-plus
|
||||
$(Package/cypress-nvram-default)
|
||||
TITLE:=CYW43455 NVRAM for Raspberry Pi 3B+
|
||||
DEPENDS:=@TARGET_brcm2708
|
||||
endef
|
||||
|
||||
define Package/cypress-nvram-43455-sdio-rpi-3b-plus/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/brcm
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt \
|
||||
$(1)/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,cypress-nvram-43455-sdio-rpi-3b-plus))
|
||||
|
||||
# Cypress 43455 SDIO Raspberry Pi 4B NVRAM
|
||||
define Package/cypress-nvram-43455-sdio-rpi-4b
|
||||
$(Package/cypress-nvram-default)
|
||||
TITLE:=CYW43455 NVRAM for Raspberry Pi 4B
|
||||
DEPENDS:=@TARGET_brcm2708
|
||||
endef
|
||||
|
||||
define Package/cypress-nvram-43455-sdio-rpi-4b/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/brcm
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/brcmfmac43455-sdio.raspberrypi,4-model-b.txt \
|
||||
$(1)/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,cypress-nvram-43455-sdio-rpi-4b))
|
||||
@ -8,13 +8,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=fman-ucode
|
||||
PKG_VERSION:=lsdk-1806
|
||||
PKG_VERSION:=lsdk-1903
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/NXP/qoriq-fm-ucode.git
|
||||
PKG_SOURCE_VERSION:=c275e91392e2adab1ed22f3867b8269ca3c54014
|
||||
PKG_MIRROR_HASH:=4e8914340c4a08941898900500f3239762af933ff359bebcf988a10ac30b2bec
|
||||
PKG_MIRROR_HASH:=a630f1a86e4a67a0e390312291702560e3f64dd74fe6ccb8f3be4584d00c7f80
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
|
||||
@ -8,13 +8,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=ls-dpl
|
||||
PKG_VERSION:=lsdk-1806
|
||||
PKG_VERSION:=lsdk-1903
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://source.codeaurora.org/external/qoriq/qoriq-components/mc-utils
|
||||
PKG_SOURCE_VERSION:=de3c46f16732f5e050851277b91e82d63818ca58
|
||||
PKG_MIRROR_HASH:=b19bba34abbb83a204ac925a18425463e508c812c43a59eafc89347fc09d5f0a
|
||||
PKG_SOURCE_VERSION:=eeb8972a3d4137c87a54c2795452b17f254a68c7
|
||||
PKG_MIRROR_HASH:=e96e72793fb9fea1d4f5112d318059ea4c836d65c02852d207407edf13fc92af
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
@ -8,13 +8,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=ls-mc
|
||||
PKG_VERSION:=lsdk-1806
|
||||
PKG_VERSION:=lsdk-1903
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/NXP/qoriq-mc-binary.git
|
||||
PKG_SOURCE_VERSION:=9c1d73016b47f8654d48f0ccff776e5e4588d822
|
||||
PKG_MIRROR_HASH:=b50e98d7de3c1754fc1d5aed2cb5a10c5d3535bc609407fafbab8ecce09661fa
|
||||
PKG_SOURCE_VERSION:=bd64d1824681b009fd83b0a3699e45b117b72695
|
||||
PKG_MIRROR_HASH:=17ecfd780b8d884b3843d2b8fbcaf29410fdacdc03ab3fe81ae7ade994d7fc0a
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
@ -23,7 +23,7 @@ define Package/layerscape-mc-ls1088ardb
|
||||
CATEGORY:=Firmware
|
||||
TITLE:=NXP LS1088ARDB MC firmware
|
||||
DEPENDS:=@TARGET_layerscape
|
||||
CONFIG:=ls1088a/mc_10.8.0_ls1088a_20180515.itb
|
||||
CONFIG:=ls1088a/mc_10.14.3_ls1088a.itb
|
||||
endef
|
||||
|
||||
define Package/layerscape-mc-ls2088ardb
|
||||
@ -31,7 +31,7 @@ define Package/layerscape-mc-ls2088ardb
|
||||
CATEGORY:=Firmware
|
||||
TITLE:=NXP LS2088ARDB MC firmware
|
||||
DEPENDS:=@TARGET_layerscape
|
||||
CONFIG:=ls2088a/mc_10.8.0_ls2088a_20180515.itb
|
||||
CONFIG:=ls2088a/mc_10.14.3_ls2088a.itb
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
|
||||
@ -1,84 +0,0 @@
|
||||
#
|
||||
# Copyright 2017 NXP
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=ls-ppa
|
||||
PKG_VERSION:=lsdk-1806
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/yangbolu1991/ppa-binary.git
|
||||
PKG_SOURCE_VERSION:=73ce533bed868717b891e5dbf881428f56f11b4e
|
||||
PKG_MIRROR_HASH:=d917a692197e8c3c3db6de1f8a4bc0e52dca5fc6fa84a02d68d79072cd6cbc3f
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/layerscape-ppa/Config
|
||||
define Package/layerscape-ppa-$(1)
|
||||
SECTION:=firmware
|
||||
CATEGORY:=Firmware
|
||||
TITLE:=$(2)
|
||||
DEPENDS:=@TARGET_layerscape
|
||||
CONFIG:=$(3)
|
||||
endef
|
||||
endef
|
||||
|
||||
define Package/layerscape-ppa/ls1012ardb
|
||||
TITLE:=NXP LS1012ARDB PPA binary
|
||||
CONFIG:=ppa-ls1012a.itb
|
||||
endef
|
||||
|
||||
define Package/layerscape-ppa/ls1012afrwy
|
||||
TITLE:=NXP LS1012AFRWY PPA binary
|
||||
CONFIG:=ppa-ls1012a.itb
|
||||
endef
|
||||
|
||||
define Package/layerscape-ppa/ls1043ardb
|
||||
TITLE:=NXP LS1043ARDB PPA binary
|
||||
CONFIG:=ppa-ls1043a.itb
|
||||
endef
|
||||
|
||||
define Package/layerscape-ppa/ls1046ardb
|
||||
TITLE:=NXP LS1046ARDB PPA binary
|
||||
CONFIG:=ppa-ls1046a.itb
|
||||
endef
|
||||
|
||||
define Package/layerscape-ppa/ls1088ardb
|
||||
TITLE:=NXP LS1088ARDB PPA binary
|
||||
CONFIG:=ppa-ls1088a.itb
|
||||
endef
|
||||
|
||||
define Package/layerscape-ppa/ls2088ardb
|
||||
TITLE:=NXP LS2088ARDB PPA binary
|
||||
CONFIG:=ppa-ls2088a.itb
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
endef
|
||||
|
||||
define Package/layerscape-ppa/Install
|
||||
define Package/layerscape-ppa-$(1)/install
|
||||
$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
|
||||
$(CP) $(PKG_BUILD_DIR)/$(CONFIG) $(STAGING_DIR_IMAGE)/$(1)-ppa.itb
|
||||
endef
|
||||
endef
|
||||
|
||||
PPAS := \
|
||||
ls1012ardb \
|
||||
ls1012afrwy \
|
||||
ls1043ardb \
|
||||
ls1046ardb \
|
||||
ls1088ardb \
|
||||
ls2088ardb
|
||||
|
||||
$(foreach ppa,$(PPAS), \
|
||||
$(eval $(Package/layerscape-ppa/$(ppa))) \
|
||||
$(eval $(call Package/layerscape-ppa/Config,$(ppa),$(TITLE),$(CONFIG))) \
|
||||
$(eval $(call Package/layerscape-ppa/Install,$(ppa))) \
|
||||
$(eval $(call BuildPackage,layerscape-ppa-$(ppa))) \
|
||||
)
|
||||
@ -8,13 +8,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=ls-rcw
|
||||
PKG_VERSION:=lsdk-1806
|
||||
PKG_VERSION:=lsdk-1903
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://source.codeaurora.org/external/qoriq/qoriq-components/rcw
|
||||
PKG_SOURCE_VERSION:=1f43bef4b4475d8e81c9b3b8c5bdd6c1ce8cfa6c
|
||||
PKG_MIRROR_HASH:=a3b455bcc1f070c8e51f520e32b62cec5b05d772d7ae4a876d88fd5f278a7b1c
|
||||
PKG_SOURCE_VERSION:=f1377876cc06a87ec8afa8a3412ca7c8455861f2
|
||||
PKG_MIRROR_HASH:=a9c97755809994a668ee5f0e535cef9f344fc5523c4299ac76f26c63976c80bc
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
@ -30,12 +30,12 @@ endef
|
||||
|
||||
define Package/layerscape-rcw/ls1012ardb
|
||||
TITLE:=NXP LS1012ARDB RCW binary
|
||||
CONFIG:=ls1012ardb/R_SPNH_3508/rcw_1000_default.bin.swapped
|
||||
CONFIG:=ls1012ardb/R_SPNH_3508/rcw_1000_default.bin
|
||||
endef
|
||||
|
||||
define Package/layerscape-rcw/ls1012afrwy
|
||||
TITLE:=NXP LS1012AFRWY RCW binary
|
||||
CONFIG:=ls1012afrwy/N_SSNP_3305/rcw_1000_default.bin.swapped
|
||||
CONFIG:=ls1012afrwy/N_SSNP_3305/rcw_1000_default.bin
|
||||
endef
|
||||
|
||||
define Package/layerscape-rcw/ls1043ardb
|
||||
@ -43,9 +43,19 @@ define Package/layerscape-rcw/ls1043ardb
|
||||
CONFIG:=ls1043ardb/RR_FQPP_1455/rcw_1600.bin
|
||||
endef
|
||||
|
||||
define Package/layerscape-rcw/ls1043ardb-sdboot
|
||||
TITLE:=NXP LS1043ARDB SD card boot RCW binary
|
||||
CONFIG:=ls1043ardb/RR_FQPP_1455/rcw_1600_sdboot.bin
|
||||
endef
|
||||
|
||||
define Package/layerscape-rcw/ls1046ardb
|
||||
TITLE:=NXP LS1046ARDB RCW binary
|
||||
CONFIG:=ls1046ardb/RR_FFSSPPPH_1133_5559/rcw_1800_qspiboot.bin.swapped
|
||||
CONFIG:=ls1046ardb/RR_FFSSPPPH_1133_5559/rcw_1800_qspiboot.bin
|
||||
endef
|
||||
|
||||
define Package/layerscape-rcw/ls1046ardb-sdboot
|
||||
TITLE:=NXP LS1046ARDB SD card boot RCW binary
|
||||
CONFIG:=ls1046ardb/RR_FFSSPPPH_1133_5559/rcw_1800_sdboot.bin
|
||||
endef
|
||||
|
||||
define Package/layerscape-rcw/ls1088ardb
|
||||
@ -79,7 +89,9 @@ RCWS := \
|
||||
ls1012ardb \
|
||||
ls1012afrwy \
|
||||
ls1043ardb \
|
||||
ls1043ardb-sdboot \
|
||||
ls1046ardb \
|
||||
ls1046ardb-sdboot \
|
||||
ls1088ardb \
|
||||
ls1088ardb-sdboot \
|
||||
ls2088ardb \
|
||||
|
||||
@ -8,13 +8,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=ppfe
|
||||
PKG_VERSION:=lsdk-1806
|
||||
PKG_VERSION:=lsdk-1903
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/NXP/qoriq-engine-pfe-bin.git
|
||||
PKG_SOURCE_VERSION:=50c825b9300c5e36548fb5dcbef538b650fc1913
|
||||
PKG_MIRROR_HASH:=7627ce260ac4b320f3a7e8ad81db1c3ec2266332762dd1e4313480f7a678fd43
|
||||
PKG_SOURCE_VERSION:=58aa0cac630528ed91fe5639700d6b571c0c07b5
|
||||
PKG_MIRROR_HASH:=1234a86e879f2eecd3ac4852bb39e4189b03bb659bec228a1d1ccae5ac0229e6
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
|
||||
@ -1,26 +1,26 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=wireless-regdb
|
||||
PKG_VERSION:=2019.06.03
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git
|
||||
PKG_SOURCE_DATE:=2017-10-20
|
||||
PKG_SOURCE_VERSION:=4343d359ed5e7404de8803a74df186457b26ab79
|
||||
PKG_MIRROR_HASH:=5f5b669f32ae36cb65b1d99efbbbfd42c2983cda32f6448346e3e54ffaba3889
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@KERNEL/software/network/wireless-regdb/
|
||||
PKG_HASH:=cd917ed86b63ce8d93947979f1f18948f03a4ac0ad89ec25227b36ac00dc54bf
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/wireless-regdb
|
||||
PKGARCH:=all
|
||||
SECTION:=firmware
|
||||
CATEGORY:=Firmware
|
||||
URL:=$(patsubst pub/scm,cgit,$(PKG_SOURCE_URL))
|
||||
URL:=https://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git/
|
||||
TITLE:=Wireless Regulatory Database
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
python $(PKG_BUILD_DIR)/db2fw.py $(PKG_BUILD_DIR)/regulatory.db $(PKG_BUILD_DIR)/db.txt
|
||||
$(STAGING_DIR_HOST)/bin/$(PYTHON) $(PKG_BUILD_DIR)/db2fw.py $(PKG_BUILD_DIR)/regulatory.db $(PKG_BUILD_DIR)/db.txt
|
||||
endef
|
||||
|
||||
define Package/wireless-regdb/install
|
||||
|
||||
@ -0,0 +1,58 @@
|
||||
From 651e39dee8605995b736b6056c6f7dc5c5a9c948 Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Berg <johannes.berg@intel.com>
|
||||
Date: Thu, 22 Aug 2019 21:46:27 +0200
|
||||
Subject: [PATCH] regdb: fix compatibility with python2
|
||||
|
||||
Various changes in the commit mentioned below broke
|
||||
compatibility with python2. Restore it in a way that
|
||||
makes it worth with both versions.
|
||||
|
||||
Fixes: f3c4969c2485 ("wireless-regdb: make scripts compatible with Python 3")
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
|
||||
---
|
||||
db2bin.py | 2 +-
|
||||
db2fw.py | 2 +-
|
||||
dbparse.py | 3 +--
|
||||
3 files changed, 3 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/db2bin.py
|
||||
+++ b/db2bin.py
|
||||
@@ -118,7 +118,7 @@ reg_country_ptr.set()
|
||||
for alpha2 in countrynames:
|
||||
coll = countries[alpha2]
|
||||
# struct regdb_file_reg_country
|
||||
- output.write(struct.pack('>BBxBI', alpha2[0], alpha2[1], coll.dfs_region, reg_rules_collections[coll.permissions]))
|
||||
+ output.write(struct.pack('>2sxBI', alpha2, coll.dfs_region, reg_rules_collections[coll.permissions]))
|
||||
|
||||
|
||||
if len(sys.argv) > 3:
|
||||
--- a/db2fw.py
|
||||
+++ b/db2fw.py
|
||||
@@ -85,7 +85,7 @@ countrynames = list(countries)
|
||||
countrynames.sort()
|
||||
for alpha2 in countrynames:
|
||||
coll = countries[alpha2]
|
||||
- output.write(struct.pack('>BB', alpha2[0], alpha2[1]))
|
||||
+ output.write(struct.pack('>2s', alpha2))
|
||||
country_ptrs[alpha2] = PTR(output)
|
||||
output.write(b'\x00' * 4)
|
||||
|
||||
--- a/dbparse.py
|
||||
+++ b/dbparse.py
|
||||
@@ -1,6 +1,5 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
-from builtins import bytes
|
||||
from functools import total_ordering
|
||||
import sys, math
|
||||
from math import ceil, log
|
||||
@@ -359,7 +358,7 @@ class DBParser(object):
|
||||
for cname in cnames:
|
||||
if len(cname) != 2:
|
||||
self._warn("country '%s' not alpha2" % cname)
|
||||
- cname = bytes(cname, 'ascii')
|
||||
+ cname = cname.encode('ascii')
|
||||
if not cname in self._countries:
|
||||
self._countries[cname] = Country(dfs_region, comments=self._comments)
|
||||
self._current_countries[cname] = self._countries[cname]
|
||||
@ -1,251 +0,0 @@
|
||||
From: Johannes Berg <johannes.berg@intel.com>
|
||||
Date: Mon, 9 Oct 2017 11:50:57 +0200
|
||||
Subject: [PATCH] regdb: write firmware file format (version code 20)
|
||||
|
||||
TODO: clean up the Makefile stuff ...
|
||||
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
---
|
||||
create mode 100755 db2fw.py
|
||||
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,7 +1,5 @@
|
||||
# Install prefix
|
||||
PREFIX ?= /usr
|
||||
-CRDA_PATH ?= $(PREFIX)/lib/crda
|
||||
-CRDA_KEY_PATH ?= $(CRDA_PATH)/pubkeys
|
||||
|
||||
MANDIR ?= $(PREFIX)/share/man/
|
||||
|
||||
@@ -30,39 +28,47 @@ REGDB_AUTHOR ?= $(shell if [ -f $(DISTRO
|
||||
fi)
|
||||
|
||||
REGDB_PRIVKEY ?= ~/.wireless-regdb-$(REGDB_AUTHOR).key.priv.pem
|
||||
-REGDB_PUBKEY ?= $(REGDB_AUTHOR).key.pub.pem
|
||||
-
|
||||
-REGDB_UPSTREAM_PUBKEY ?= sforshee.key.pub.pem
|
||||
+REGDB_PUBCERT ?= $(REGDB_AUTHOR).x509.pem
|
||||
|
||||
REGDB_CHANGED = $(shell $(SHA1SUM) -c --status sha1sum.txt >/dev/null 2>&1; \
|
||||
if [ $$? -ne 0 ]; then \
|
||||
- echo maintainer-clean $(REGDB_PUBKEY); \
|
||||
+ echo maintainer-clean $(REGDB_PUBCERT); \
|
||||
fi)
|
||||
|
||||
.PHONY: all clean mrproper install maintainer-clean install-distro-key
|
||||
|
||||
-all: $(REGDB_CHANGED) regulatory.bin sha1sum.txt
|
||||
+all: $(REGDB_CHANGED) regulatory.db.p7s sha1sum.txt
|
||||
|
||||
clean:
|
||||
@rm -f *.pyc *.gz
|
||||
|
||||
maintainer-clean: clean
|
||||
- @rm -f regulatory.bin
|
||||
+ @rm -f regulatory.db regulatory.db.p7s
|
||||
|
||||
mrproper: clean maintainer-clean
|
||||
- @echo Removed public key, regulatory.bin and compresed man pages
|
||||
- @rm -f $(REGDB_PUBKEY) .custom
|
||||
+ @echo Removed public key, regulatory.db* and compressed man pages
|
||||
+ @rm -f $(REGDB_PUBCERT) .custom
|
||||
|
||||
-regulatory.bin: db.txt $(REGDB_PRIVKEY) $(REGDB_PUBKEY)
|
||||
- @echo Generating $@ digitally signed by $(REGDB_AUTHOR)...
|
||||
- ./db2bin.py regulatory.bin db.txt $(REGDB_PRIVKEY)
|
||||
+regulatory.db: db.txt db2fw.py
|
||||
+ @echo "Generating $@"
|
||||
+ ./db2fw.py regulatory.db db.txt
|
||||
+
|
||||
+regulatory.db.p7s: regulatory.db $(REGDB_PRIVKEY) $(REGDB_PUBCERT)
|
||||
+ @echo "Signing regulatory.db (by $(REGDB_AUTHOR))..."
|
||||
+ @openssl smime -sign \
|
||||
+ -signer $(REGDB_PUBCERT) \
|
||||
+ -inkey $(REGDB_PRIVKEY) \
|
||||
+ -in $< -nosmimecap -binary \
|
||||
+ -outform DER -out $@
|
||||
|
||||
sha1sum.txt: db.txt
|
||||
sha1sum $< > $@
|
||||
|
||||
-$(REGDB_PUBKEY): $(REGDB_PRIVKEY)
|
||||
- @echo "Generating public key for $(REGDB_AUTHOR)..."
|
||||
- openssl rsa -in $(REGDB_PRIVKEY) -out $(REGDB_PUBKEY) -pubout -outform PEM
|
||||
+$(REGDB_PUBCERT): $(REGDB_PRIVKEY)
|
||||
+ @echo "Generating certificate for $(REGDB_AUTHOR)..."
|
||||
+ @openssl req -config regulatory.openssl.conf \
|
||||
+ -key $(REGDB_PRIVKEY) -days 36500 -utf8 -nodes -batch \
|
||||
+ -x509 -outform PEM -out $(REGDB_PUBCERT)
|
||||
@echo $(REGDB_PUBKEY) > .custom
|
||||
|
||||
|
||||
@@ -97,16 +103,7 @@ install-distro-key: maintainer-clean $(D
|
||||
# make maintainer-clean
|
||||
# make
|
||||
# sudo make install
|
||||
-install: regulatory.bin.5.gz
|
||||
- install -m 755 -d $(DESTDIR)/$(CRDA_PATH)
|
||||
- install -m 755 -d $(DESTDIR)/$(CRDA_KEY_PATH)
|
||||
- if [ -f .custom ]; then \
|
||||
- install -m 644 -t $(DESTDIR)/$(CRDA_KEY_PATH)/ $(shell cat .custom); \
|
||||
- fi
|
||||
- install -m 644 -t $(DESTDIR)/$(CRDA_KEY_PATH)/ $(REGDB_UPSTREAM_PUBKEY)
|
||||
- install -m 644 -t $(DESTDIR)/$(CRDA_PATH)/ regulatory.bin
|
||||
+install: regulatory.db.5.gz
|
||||
+ install -m 644 -t $(DESTDIR)/$(CRDA_PATH)/ regulatory.db
|
||||
install -m 755 -d $(DESTDIR)/$(MANDIR)/man5/
|
||||
- install -m 644 -t $(DESTDIR)/$(MANDIR)/man5/ regulatory.bin.5.gz
|
||||
-
|
||||
-uninstall:
|
||||
- rm -rf $(DESTDIR)/$(CRDA_PATH)/
|
||||
+ install -m 644 -t $(DESTDIR)/$(MANDIR)/man5/ regulatory.db.5.gz
|
||||
--- a/README
|
||||
+++ b/README
|
||||
@@ -18,8 +18,8 @@ python module is used by the web viewer
|
||||
implemented as a MoinMoin macro (and used on http://wireless.kernel.org)
|
||||
to allow viewing the database for verification.
|
||||
|
||||
-The dbparse module is also used by db2bin.py, the `compiler', which
|
||||
-compiles and signs the binary database.
|
||||
+The dbparse module is also used by db2bin.py and db2fw.py, the `compilers'
|
||||
+that compile the database to its binary formats.
|
||||
|
||||
For more information, please see the CRDA git repository:
|
||||
|
||||
--- /dev/null
|
||||
+++ b/db2fw.py
|
||||
@@ -0,0 +1,133 @@
|
||||
+#!/usr/bin/env python
|
||||
+
|
||||
+from cStringIO import StringIO
|
||||
+import struct
|
||||
+import hashlib
|
||||
+from dbparse import DBParser
|
||||
+import sys
|
||||
+
|
||||
+MAGIC = 0x52474442
|
||||
+VERSION = 20
|
||||
+
|
||||
+if len(sys.argv) < 3:
|
||||
+ print 'Usage: %s output-file input-file' % sys.argv[0]
|
||||
+ sys.exit(2)
|
||||
+
|
||||
+def create_rules(countries):
|
||||
+ result = {}
|
||||
+ for c in countries.itervalues():
|
||||
+ for rule in c.permissions:
|
||||
+ result[rule] = 1
|
||||
+ return result.keys()
|
||||
+
|
||||
+def create_collections(countries):
|
||||
+ result = {}
|
||||
+ for c in countries.itervalues():
|
||||
+ result[(c.permissions, c.dfs_region)] = 1
|
||||
+ return result.keys()
|
||||
+
|
||||
+
|
||||
+def be32(output, val):
|
||||
+ output.write(struct.pack('>I', val))
|
||||
+def be16(output, val):
|
||||
+ output.write(struct.pack('>H', val))
|
||||
+
|
||||
+class PTR(object):
|
||||
+ def __init__(self, output):
|
||||
+ self._output = output
|
||||
+ self._pos = output.tell()
|
||||
+ be16(output, 0)
|
||||
+ self._written = False
|
||||
+
|
||||
+ def set(self, val=None):
|
||||
+ if val is None:
|
||||
+ val = self._output.tell()
|
||||
+ assert val & 3 == 0
|
||||
+ self._offset = val
|
||||
+ pos = self._output.tell()
|
||||
+ self._output.seek(self._pos)
|
||||
+ be16(self._output, val >> 2)
|
||||
+ self._output.seek(pos)
|
||||
+ self._written = True
|
||||
+
|
||||
+ def get(self):
|
||||
+ return self._offset
|
||||
+
|
||||
+ @property
|
||||
+ def written(self):
|
||||
+ return self._written
|
||||
+
|
||||
+p = DBParser()
|
||||
+countries = p.parse(file(sys.argv[2]))
|
||||
+rules = create_rules(countries)
|
||||
+rules.sort(cmp=lambda x, y: cmp(x.freqband, y.freqband))
|
||||
+collections = create_collections(countries)
|
||||
+collections.sort(cmp=lambda x, y: cmp(x[0][0].freqband, y[0][0].freqband))
|
||||
+
|
||||
+output = StringIO()
|
||||
+
|
||||
+# struct regdb_file_header
|
||||
+be32(output, MAGIC)
|
||||
+be32(output, VERSION)
|
||||
+
|
||||
+country_ptrs = {}
|
||||
+countrynames = countries.keys()
|
||||
+countrynames.sort()
|
||||
+for alpha2 in countrynames:
|
||||
+ coll = countries[alpha2]
|
||||
+ output.write(struct.pack('>cc', str(alpha2[0]), str(alpha2[1])))
|
||||
+ country_ptrs[alpha2] = PTR(output)
|
||||
+output.write('\x00' * 4)
|
||||
+
|
||||
+reg_rules = {}
|
||||
+flags = 0
|
||||
+for reg_rule in rules:
|
||||
+ freq_range, power_rule = reg_rule.freqband, reg_rule.power
|
||||
+ reg_rules[reg_rule] = output.tell()
|
||||
+ assert power_rule.max_ant_gain == 0
|
||||
+ flags = 0
|
||||
+ # convert to new rule flags
|
||||
+ assert reg_rule.flags & ~0x899 == 0
|
||||
+ if reg_rule.flags & 1<<0:
|
||||
+ flags |= 1<<0
|
||||
+ if reg_rule.flags & 1<<3:
|
||||
+ flags |= 1<<1
|
||||
+ if reg_rule.flags & 1<<4:
|
||||
+ flags |= 1<<2
|
||||
+ if reg_rule.flags & 1<<7:
|
||||
+ flags |= 1<<3
|
||||
+ if reg_rule.flags & 1<<11:
|
||||
+ flags |= 1<<4
|
||||
+ rule_len = 16
|
||||
+ cac_timeout = 0 # TODO
|
||||
+ if not (flags & 1<<2):
|
||||
+ cac_timeout = 0
|
||||
+ if cac_timeout:
|
||||
+ rule_len += 2
|
||||
+ output.write(struct.pack('>BBHIII', rule_len, flags, power_rule.max_eirp * 100,
|
||||
+ freq_range.start * 1000, freq_range.end * 1000, freq_range.maxbw * 1000,
|
||||
+ ))
|
||||
+ if cac_timeout:
|
||||
+ output.write(struct.pack('>H', cac_timeout))
|
||||
+ while rule_len % 4:
|
||||
+ output.write('\0')
|
||||
+ rule_len += 1
|
||||
+
|
||||
+for coll in collections:
|
||||
+ for alpha2 in countrynames:
|
||||
+ if (countries[alpha2].permissions, countries[alpha2].dfs_region) == coll:
|
||||
+ assert not country_ptrs[alpha2].written
|
||||
+ country_ptrs[alpha2].set()
|
||||
+ slen = 3
|
||||
+ output.write(struct.pack('>BBBx', slen, len(list(coll[0])), coll[1]))
|
||||
+ coll = list(coll[0])
|
||||
+ for regrule in coll:
|
||||
+ be16(output, reg_rules[regrule] >> 2)
|
||||
+ if len(coll) % 2:
|
||||
+ be16(output, 0)
|
||||
+
|
||||
+for alpha2 in countrynames:
|
||||
+ assert country_ptrs[alpha2].written
|
||||
+
|
||||
+outfile = open(sys.argv[1], 'w')
|
||||
+outfile.write(output.getvalue())
|
||||
@ -5,7 +5,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
--- a/db.txt
|
||||
+++ b/db.txt
|
||||
@@ -6,7 +6,7 @@ country 00:
|
||||
@@ -16,7 +16,7 @@ country 00:
|
||||
# Channel 14. Only JP enables this and for 802.11b only
|
||||
(2474 - 2494 @ 20), (20), NO-IR, NO-OFDM
|
||||
# Channel 36 - 48
|
||||
|
||||
@ -1,42 +0,0 @@
|
||||
From 7eb6313910023f1be6015a8cd9e1b380ae01af64 Mon Sep 17 00:00:00 2001
|
||||
From: Chen Minqiang <ptpt52@gmail.com>
|
||||
Date: Sun, 7 Jan 2018 14:38:36 +0800
|
||||
Subject: [PATCH] custom fix txpower and dfs
|
||||
|
||||
---
|
||||
db.txt | 12 ++++++------
|
||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/db.txt b/db.txt
|
||||
index 75dc0a3..24989ad 100644
|
||||
--- a/db.txt
|
||||
+++ b/db.txt
|
||||
@@ -277,9 +277,9 @@ country CL: DFS-JP
|
||||
(5735 - 5835 @ 80), (20)
|
||||
|
||||
country CN: DFS-FCC
|
||||
- (2402 - 2482 @ 40), (20)
|
||||
- (5170 - 5250 @ 80), (23), AUTO-BW
|
||||
- (5250 - 5330 @ 80), (23), DFS, AUTO-BW
|
||||
+ (2402 - 2482 @ 40), (30)
|
||||
+ (5170 - 5250 @ 80), (30), AUTO-BW
|
||||
+ (5250 - 5330 @ 80), (30), AUTO-BW
|
||||
(5735 - 5835 @ 80), (30)
|
||||
# 60 GHz band channels 1,4: 28dBm, channels 2,3: 44dBm
|
||||
# ref: http://www.miit.gov.cn/n11293472/n11505629/n11506593/n11960250/n11960606/n11960700/n12330791.files/n12330790.pdf
|
||||
@@ -1238,9 +1238,9 @@ country UG: DFS-FCC
|
||||
country US: DFS-FCC
|
||||
(2402 - 2472 @ 40), (30)
|
||||
# 5.15 ~ 5.25 GHz: 30 dBm for master mode, 23 dBm for clients
|
||||
- (5170 - 5250 @ 80), (23), AUTO-BW
|
||||
- (5250 - 5330 @ 80), (23), DFS, AUTO-BW
|
||||
- (5490 - 5730 @ 160), (23), DFS
|
||||
+ (5170 - 5250 @ 80), (30), AUTO-BW
|
||||
+ (5250 - 5330 @ 80), (30), AUTO-BW
|
||||
+ (5490 - 5730 @ 160), (30)
|
||||
(5735 - 5835 @ 80), (30)
|
||||
# 60g band
|
||||
# reference: http://cfr.regstoday.com/47cfr15.aspx#47_CFR_15p255
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@ -8,9 +8,9 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=aMule
|
||||
PKG_VERSION:=20190827
|
||||
PKG_RELEASE:=1
|
||||
PKG_REV=2a1b092
|
||||
PKG_VERSION:=2.3.2
|
||||
PKG_RELEASE:=2
|
||||
PKG_REV=4b87b20
|
||||
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-r$(PKG_REV).tar.bz2
|
||||
|
||||
1548
package/lean/amule/patches/001-amule-dlp.patch
Normal file
1548
package/lean/amule/patches/001-amule-dlp.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,23 @@
|
||||
diff -Naur a/m4/libupnp.m4 b/m4/libupnp.m4
|
||||
--- a/m4/libupnp.m4 2016-10-06 19:01:54.000000000 +0800
|
||||
+++ b/m4/libupnp.m4 2016-10-11 07:36:39.198318574 +0800
|
||||
@@ -52,7 +52,6 @@
|
||||
[export PKG_CONFIG_PATH=$withval/lib/pkgconfig])
|
||||
|
||||
dnl Check for libupnp >= MIN_LIBUPNP_VERSION
|
||||
- AS_IF([test $cross_compiling = no], [
|
||||
AC_MSG_CHECKING([for libupnp version >= MIN_LIBUPNP_VERSION])
|
||||
AS_IF([test -n "$PKG_CONFIG"], [
|
||||
AS_IF([$PKG_CONFIG libupnp --exists], [
|
||||
@@ -79,11 +78,6 @@
|
||||
])
|
||||
AC_MSG_RESULT([$result$resultstr])
|
||||
libupnp_error="libupnp >= MIN_LIBUPNP_VERSION not found$resultstr"
|
||||
- ], [
|
||||
-dnl Currently cross-compilation with libupnp is not supported.
|
||||
- result=no
|
||||
- libupnp_error="cross compiling"
|
||||
- ])
|
||||
|
||||
dnl Execute the right action.
|
||||
AS_IF([test ${result:-no} = yes], [$2], [$3])
|
||||
78
package/lean/amule/patches/004_file_name_conversion.patch
Normal file
78
package/lean/amule/patches/004_file_name_conversion.patch
Normal file
@ -0,0 +1,78 @@
|
||||
diff --git a/src/amule.h b/src/amule.h
|
||||
index f25702f..240c02d 100644
|
||||
--- a/src/amule.h
|
||||
+++ b/src/amule.h
|
||||
@@ -553,6 +553,13 @@ class CamuleDaemonApp : public CamuleApp
|
||||
int OnExit();
|
||||
|
||||
virtual int InitGui(bool geometry_enable, wxString &geometry_string);
|
||||
+ // The GTK wxApps sets its file name conversion properly
|
||||
+ // in wxApp::Initialize(), while wxAppConsole::Initialize()
|
||||
+ // does not, leaving wxConvFile being set to wxConvLibc. File
|
||||
+ // name conversion should be set otherwise amuled will abort to
|
||||
+ // handle non-ASCII file names which monolithic amule can handle.
|
||||
+ // This function are overrided to perform this.
|
||||
+ virtual bool Initialize(int& argc_, wxChar **argv_);
|
||||
|
||||
#ifdef AMULED_APPTRAITS
|
||||
struct sigaction m_oldSignalChildAction;
|
||||
diff --git a/src/amuled.cpp b/src/amuled.cpp
|
||||
index 486da59..86e1ff8 100644
|
||||
--- a/src/amuled.cpp
|
||||
+++ b/src/amuled.cpp
|
||||
@@ -704,6 +704,41 @@ int CamuleDaemonApp::InitGui(bool ,wxString &)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+bool CamuleDaemonApp::Initialize(int& argc_, wxChar **argv_)
|
||||
+{
|
||||
+ if ( !wxAppConsole::Initialize(argc_, argv_) ) {
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+#ifdef __UNIX__
|
||||
+ wxString encName;
|
||||
+#if wxUSE_INTL
|
||||
+ // if a non default locale is set,
|
||||
+ // assume that the user wants his
|
||||
+ // filenames in this locale too
|
||||
+ encName = wxLocale::GetSystemEncodingName().Upper();
|
||||
+
|
||||
+ // But don't consider ASCII in this case.
|
||||
+ if ( !encName.empty() ) {
|
||||
+ if ( encName == wxT("US-ASCII") ) {
|
||||
+ // This means US-ASCII when returned
|
||||
+ // from GetEncodingFromName().
|
||||
+ encName.clear();
|
||||
+ }
|
||||
+ }
|
||||
+#endif // wxUSE_INTL
|
||||
+
|
||||
+ // in this case, UTF-8 is used by default.
|
||||
+ if ( encName.empty() ) {
|
||||
+ encName = wxT("UTF-8");
|
||||
+ }
|
||||
+
|
||||
+ static wxConvBrokenFileNames fileconv(encName);
|
||||
+ wxConvFileName = &fileconv;
|
||||
+#endif // __UNIX__
|
||||
+
|
||||
+ return true;
|
||||
+}
|
||||
|
||||
int CamuleDaemonApp::OnExit()
|
||||
{
|
||||
diff --git a/src/libs/common/Path.cpp b/src/libs/common/Path.cpp
|
||||
index 28152a2..5efefd0 100644
|
||||
--- a/src/libs/common/Path.cpp
|
||||
+++ b/src/libs/common/Path.cpp
|
||||
@@ -229,7 +229,8 @@ CPath::CPath(const wxString& filename)
|
||||
}
|
||||
|
||||
wxCharBuffer fn = filename2char(filename);
|
||||
- if (fn.data()) {
|
||||
+ // add fn.length() for wx 3.x
|
||||
+ if (fn.data()) {
|
||||
// Filename is valid in the current locale. This means that
|
||||
// it either originated from a (wx)system-call, or from a
|
||||
// user with a properly setup system.
|
||||
174
package/lean/amule/patches/005_best_keyword_kad_search.patch
Normal file
174
package/lean/amule/patches/005_best_keyword_kad_search.patch
Normal file
@ -0,0 +1,174 @@
|
||||
diff --git a/src/SearchList.cpp b/src/SearchList.cpp
|
||||
index 32b28e9..342a18f 100644
|
||||
--- a/src/SearchList.cpp
|
||||
+++ b/src/SearchList.cpp
|
||||
@@ -75,7 +75,7 @@ void ParsedSearchExpression(const CSearchExpr* pexpr)
|
||||
int iOpNot = 0;
|
||||
|
||||
for (unsigned int i = 0; i < pexpr->m_aExpr.GetCount(); i++) {
|
||||
- wxString str(pexpr->m_aExpr[i]);
|
||||
+ const wxString& str = pexpr->m_aExpr[i];
|
||||
if (str == SEARCHOPTOK_AND) {
|
||||
iOpAnd++;
|
||||
} else if (str == SEARCHOPTOK_OR) {
|
||||
@@ -108,6 +108,25 @@ void ParsedSearchExpression(const CSearchExpr* pexpr)
|
||||
|
||||
// optimize search expression, if no OR nor NOT specified
|
||||
if (iOpAnd > 0 && iOpOr == 0 && iOpNot == 0) {
|
||||
+ // figure out if we can use a better keyword than the one the user selected
|
||||
+ // for example most user will search like this "The oxymoronaccelerator 2", which would ask the node which indexes "the"
|
||||
+ // This causes higher traffic for such nodes and makes them a viable target to attackers, while the kad result should be
|
||||
+ // the same or even better if we ask the node which indexes the rare keyword "oxymoronaccelerator", so we try to rearrange
|
||||
+ // keywords and generally assume that the longer keywords are rarer
|
||||
+ if (/*thePrefs::GetRearrangeKadSearchKeywords() &&*/ !s_strCurKadKeyword.IsEmpty()) {
|
||||
+ for (unsigned int i = 0; i < pexpr->m_aExpr.GetCount(); i++) {
|
||||
+ if (pexpr->m_aExpr[i] != SEARCHOPTOK_AND) {
|
||||
+ if (pexpr->m_aExpr[i] != s_strCurKadKeyword
|
||||
+ && pexpr->m_aExpr[i].find_first_of(Kademlia::CSearchManager::GetInvalidKeywordChars()) == wxString::npos
|
||||
+ && pexpr->m_aExpr[i].Find('"') != 0 // no quoted expressions as keyword
|
||||
+ && pexpr->m_aExpr[i].length() >= 3
|
||||
+ && s_strCurKadKeyword.length() < pexpr->m_aExpr[i].length())
|
||||
+ {
|
||||
+ s_strCurKadKeyword = pexpr->m_aExpr[i];
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
wxString strAndTerms;
|
||||
for (unsigned int i = 0; i < pexpr->m_aExpr.GetCount(); i++) {
|
||||
if (pexpr->m_aExpr[i] != SEARCHOPTOK_AND) {
|
||||
@@ -285,7 +304,7 @@ void CSearchList::RemoveResults(long searchID)
|
||||
}
|
||||
|
||||
|
||||
-wxString CSearchList::StartNewSearch(uint32* searchID, SearchType type, const CSearchParams& params)
|
||||
+wxString CSearchList::StartNewSearch(uint32* searchID, SearchType type, CSearchParams& params)
|
||||
{
|
||||
// Check that we can actually perform the specified desired search.
|
||||
if ((type == KadSearch) && !Kademlia::CKademlia::IsRunning()) {
|
||||
@@ -306,6 +325,16 @@ wxString CSearchList::StartNewSearch(uint32* searchID, SearchType type, const CS
|
||||
m_resultType.Clear();
|
||||
}
|
||||
|
||||
+ if (type == KadSearch) {
|
||||
+ Kademlia::WordList words;
|
||||
+ Kademlia::CSearchManager::GetWords(params.searchString, &words);
|
||||
+ if (!words.empty()) {
|
||||
+ params.strKeyword = words.front();
|
||||
+ } else {
|
||||
+ return _("No keyword for Kad search - aborting");
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
bool supports64bit = type == KadSearch ? true : theApp->serverconnect->GetCurrentServer() != NULL && (theApp->serverconnect->GetCurrentServer()->GetTCPFlags() & SRV_TCPFLG_LARGEFILES);
|
||||
bool packetUsing64bit;
|
||||
|
||||
@@ -332,8 +361,7 @@ wxString CSearchList::StartNewSearch(uint32* searchID, SearchType type, const CS
|
||||
|
||||
// searchstring will get tokenized there
|
||||
// The tab must be created with the Kad search ID, so searchID is updated.
|
||||
- Kademlia::CSearch* search = Kademlia::CSearchManager::PrepareFindKeywords(
|
||||
- params.searchString, data->GetLength(), data->GetRawBuffer(), *searchID);
|
||||
+ Kademlia::CSearch* search = Kademlia::CSearchManager::PrepareFindKeywords(params.strKeyword, data->GetLength(), data->GetRawBuffer(), *searchID);
|
||||
|
||||
*searchID = search->GetSearchID();
|
||||
m_currentSearch = *searchID;
|
||||
@@ -632,7 +660,7 @@ void CSearchList::StopSearch(bool globalOnly)
|
||||
}
|
||||
|
||||
|
||||
-CSearchList::CMemFilePtr CSearchList::CreateSearchData(const CSearchParams& params, SearchType WXUNUSED(type), bool supports64bit, bool& packetUsing64bit)
|
||||
+CSearchList::CMemFilePtr CSearchList::CreateSearchData(CSearchParams& params, SearchType type, bool supports64bit, bool& packetUsing64bit)
|
||||
{
|
||||
// Count the number of used parameters
|
||||
unsigned int parametercount = 0;
|
||||
@@ -659,14 +687,16 @@ CSearchList::CMemFilePtr CSearchList::CreateSearchData(const CSearchParams& para
|
||||
_astrParserErrors.Empty();
|
||||
_SearchExpr.m_aExpr.Empty();
|
||||
|
||||
+ s_strCurKadKeyword.Clear();
|
||||
+ if (type == KadSearch) {
|
||||
+ wxASSERT( !params.strKeyword.IsEmpty() );
|
||||
+ s_strCurKadKeyword = params.strKeyword;
|
||||
+ }
|
||||
+
|
||||
LexInit(params.searchString);
|
||||
int iParseResult = yyparse();
|
||||
LexFree();
|
||||
|
||||
-#ifdef __DEBUG__
|
||||
- AddLogLineNS(CFormat(wxT("Search parsing result for \"%s\": %i"))
|
||||
- % params.searchString % iParseResult);
|
||||
-#endif
|
||||
if (_astrParserErrors.GetCount() > 0) {
|
||||
for (unsigned int i=0; i < _astrParserErrors.GetCount(); ++i) {
|
||||
AddLogLineNS(CFormat(wxT("Error %u: %s\n")) % i % _astrParserErrors[i]);
|
||||
@@ -681,21 +711,13 @@ CSearchList::CMemFilePtr CSearchList::CreateSearchData(const CSearchParams& para
|
||||
return CMemFilePtr(NULL);
|
||||
}
|
||||
|
||||
- #ifdef __DEBUG__
|
||||
- wxString mes(wxT("Search expression:"));
|
||||
- for (unsigned int i = 0; i < _SearchExpr.m_aExpr.GetCount(); i++) {
|
||||
- mes << wxT(" ") << _SearchExpr.m_aExpr[i];
|
||||
+ if (type == KadSearch && s_strCurKadKeyword != params.strKeyword) {
|
||||
+ AddDebugLogLineN(logSearch, CFormat(wxT("Keyword was rearranged, using '%s' instead of '%s'")) % s_strCurKadKeyword % params.strKeyword);
|
||||
+ params.strKeyword = s_strCurKadKeyword;
|
||||
}
|
||||
- AddLogLineNS(mes);
|
||||
- AddLogLineNS(CFormat(wxT("Expression count: %i")) % _SearchExpr.m_aExpr.GetCount());
|
||||
- #endif
|
||||
|
||||
parametercount += _SearchExpr.m_aExpr.GetCount();
|
||||
|
||||
- #ifdef __DEBUG__
|
||||
- AddLogLineNS(CFormat(wxT("Parameters: %i")) % parametercount);
|
||||
- #endif
|
||||
-
|
||||
/* Leave the unicode comment there, please... */
|
||||
CSearchExprTarget target(data.get(), true /*I assume everyone is unicoded */ ? utf8strRaw : utf8strNone, supports64bit, packetUsing64bit);
|
||||
|
||||
diff --git a/src/SearchList.h b/src/SearchList.h
|
||||
index 35b0fc6..6db7508 100644
|
||||
--- a/src/SearchList.h
|
||||
+++ b/src/SearchList.h
|
||||
@@ -64,6 +64,8 @@ class CSearchList : public wxEvtHandler
|
||||
|
||||
//! The actual string to search for.
|
||||
wxString searchString;
|
||||
+ //! The keyword selected for Kad search
|
||||
+ wxString strKeyword;
|
||||
//! The type of files to search for (may be empty), one of ED2KFTSTR_*
|
||||
wxString typeText;
|
||||
//! The filename extension. May be empty.
|
||||
@@ -90,7 +92,7 @@ class CSearchList : public wxEvtHandler
|
||||
* @param params The search parameters, see CSearchParams.
|
||||
* @return An empty string on success, otherwise an error-message.
|
||||
*/
|
||||
- wxString StartNewSearch(uint32* searchID, SearchType type, const CSearchParams& params);
|
||||
+ wxString StartNewSearch(uint32* searchID, SearchType type, CSearchParams& params);
|
||||
|
||||
/** Stops the current search (global or Kad), if any is in progress. */
|
||||
void StopSearch(bool globalOnly = false);
|
||||
@@ -189,7 +191,7 @@ class CSearchList : public wxEvtHandler
|
||||
typedef std::auto_ptr<CMemFile> CMemFilePtr;
|
||||
|
||||
/** Create a basic search-packet for the given search-type. */
|
||||
- CMemFilePtr CreateSearchData(const CSearchParams& params, SearchType type, bool supports64bit, bool& packetUsing64bit);
|
||||
+ CMemFilePtr CreateSearchData(CSearchParams& params, SearchType type, bool supports64bit, bool& packetUsing64bit);
|
||||
|
||||
|
||||
//! Timer used for global search intervals.
|
||||
diff --git a/src/kademlia/kademlia/SearchManager.cpp b/src/kademlia/kademlia/SearchManager.cpp
|
||||
index e7f25d4..f9ee924 100644
|
||||
--- a/src/kademlia/kademlia/SearchManager.cpp
|
||||
+++ b/src/kademlia/kademlia/SearchManager.cpp
|
||||
@@ -127,7 +127,7 @@ CSearch* CSearchManager::PrepareFindKeywords(const wxString& keyword, uint32_t s
|
||||
|
||||
wxString wstrKeyword = s->m_words.front();
|
||||
|
||||
- AddLogLineNS(CFormat(_("Keyword for search: %s")) % wstrKeyword);
|
||||
+ AddDebugLogLineN(logSearch, CFormat(wxT("Keyword for search: %s")) % wstrKeyword);
|
||||
|
||||
// Kry - I just decided to assume everyone is unicoded
|
||||
// GonoszTopi - seconded
|
||||
365
package/lean/amule/patches/006_update-libupnp.patch
Normal file
365
package/lean/amule/patches/006_update-libupnp.patch
Normal file
@ -0,0 +1,365 @@
|
||||
diff -Naur a/m4/libupnp.m4 b/m4/libupnp.m4
|
||||
--- a/m4/libupnp.m4 2016-10-06 18:49:44.000000000 +0800
|
||||
+++ b/m4/libupnp.m4 2019-12-11 22:13:19.008225399 +0800
|
||||
@@ -45,11 +45,16 @@
|
||||
|
||||
dnl Test for --with-libupnp-prefix
|
||||
AC_ARG_WITH(
|
||||
- [libupnp-prefix],
|
||||
- [AS_HELP_STRING(
|
||||
+ [libupnp-prefix],[
|
||||
+ AS_HELP_STRING(
|
||||
[--with-libupnp-prefix=PREFIX],
|
||||
- [UPnP library location])],
|
||||
- [export PKG_CONFIG_PATH=$withval/lib/pkgconfig])
|
||||
+ [UPnP library location])],[
|
||||
+ AS_IF([test -d "$withval/lib64/pkgconfig"],[
|
||||
+ export PKG_CONFIG_PATH=$withval/lib64/pkgconfig
|
||||
+ ],[
|
||||
+ export PKG_CONFIG_PATH=$withval/lib/pkgconfig
|
||||
+ ])
|
||||
+ ])
|
||||
|
||||
dnl Check for libupnp >= MIN_LIBUPNP_VERSION
|
||||
AS_IF([test $cross_compiling = no], [
|
||||
diff -Naur a/src/UPnPBase.cpp b/src/UPnPBase.cpp
|
||||
--- a/src/UPnPBase.cpp 2016-10-06 18:49:44.000000000 +0800
|
||||
+++ b/src/UPnPBase.cpp 2019-12-11 22:15:04.536768532 +0800
|
||||
@@ -1127,7 +1127,11 @@
|
||||
|
||||
|
||||
// This function is static
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+int CUPnPControlPoint::Callback(Upnp_EventType_e EventType, const void *Event, void * /*Cookie*/)
|
||||
+#else
|
||||
int CUPnPControlPoint::Callback(Upnp_EventType EventType, void *Event, void * /*Cookie*/)
|
||||
+#endif
|
||||
{
|
||||
std::ostringstream msg;
|
||||
std::ostringstream msg2;
|
||||
@@ -1149,24 +1153,47 @@
|
||||
msg2<< "UPNP_DISCOVERY_SEARCH_RESULT: ";
|
||||
// UPnP Discovery
|
||||
upnpDiscovery:
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ UpnpDiscovery *d_event = (UpnpDiscovery *)Event;
|
||||
+#else
|
||||
struct Upnp_Discovery *d_event = (struct Upnp_Discovery *)Event;
|
||||
+#endif
|
||||
IXML_Document *doc = NULL;
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ int errCode = UpnpDiscovery_get_ErrCode(d_event);
|
||||
+ if (errCode != UPNP_E_SUCCESS) {
|
||||
+ msg << UpnpGetErrorMessage(errCode) << ".";
|
||||
+#else
|
||||
int ret;
|
||||
if (d_event->ErrCode != UPNP_E_SUCCESS) {
|
||||
msg << UpnpGetErrorMessage(d_event->ErrCode) << ".";
|
||||
+#endif
|
||||
AddDebugLogLineC(logUPnP, msg);
|
||||
}
|
||||
// Get the XML tree device description in doc
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ const char *location = UpnpDiscovery_get_Location_cstr(d_event);
|
||||
+ int ret = UpnpDownloadXmlDoc(location, &doc);
|
||||
+#else
|
||||
ret = UpnpDownloadXmlDoc(d_event->Location, &doc);
|
||||
+#endif
|
||||
if (ret != UPNP_E_SUCCESS) {
|
||||
msg << "Error retrieving device description from " <<
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ location << ": " <<
|
||||
+#else
|
||||
d_event->Location << ": " <<
|
||||
+#endif
|
||||
UpnpGetErrorMessage(ret) <<
|
||||
"(" << ret << ").";
|
||||
AddDebugLogLineC(logUPnP, msg);
|
||||
} else {
|
||||
msg2 << "Retrieving device description from " <<
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ location << ".";
|
||||
+#else
|
||||
d_event->Location << ".";
|
||||
+#endif
|
||||
AddDebugLogLineN(logUPnP, msg2);
|
||||
}
|
||||
if (doc) {
|
||||
@@ -1194,8 +1221,14 @@
|
||||
AddDebugLogLineC(logUPnP, msg);
|
||||
}
|
||||
// Add the root device to our list
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ int expires = UpnpDiscovery_get_Expires(d_event);
|
||||
+ upnpCP->AddRootDevice(rootDevice, urlBase,
|
||||
+ location, expires);
|
||||
+#else
|
||||
upnpCP->AddRootDevice(rootDevice, urlBase,
|
||||
d_event->Location, d_event->Expires);
|
||||
+#endif
|
||||
}
|
||||
// Free the XML doc tree
|
||||
IXML::Document::Free(doc);
|
||||
@@ -1216,28 +1249,62 @@
|
||||
case UPNP_DISCOVERY_ADVERTISEMENT_BYEBYE: {
|
||||
//fprintf(stderr, "Callback: UPNP_DISCOVERY_ADVERTISEMENT_BYEBYE\n");
|
||||
// UPnP Device Removed
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ UpnpDiscovery *dab_event = (UpnpDiscovery *)Event;
|
||||
+ int errCode = UpnpDiscovery_get_ErrCode(dab_event);
|
||||
+ if (errCode != UPNP_E_SUCCESS) {
|
||||
+#else
|
||||
struct Upnp_Discovery *dab_event = (struct Upnp_Discovery *)Event;
|
||||
if (dab_event->ErrCode != UPNP_E_SUCCESS) {
|
||||
+#endif
|
||||
msg << "error(UPNP_DISCOVERY_ADVERTISEMENT_BYEBYE): " <<
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ UpnpGetErrorMessage(errCode) <<
|
||||
+#else
|
||||
UpnpGetErrorMessage(dab_event->ErrCode) <<
|
||||
+#endif
|
||||
".";
|
||||
AddDebugLogLineC(logUPnP, msg);
|
||||
}
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ std::string devType = UpnpDiscovery_get_DeviceType_cstr(dab_event);
|
||||
+#else
|
||||
std::string devType = dab_event->DeviceType;
|
||||
+#endif
|
||||
// Check for an InternetGatewayDevice and removes it from the list
|
||||
+
|
||||
std::transform(devType.begin(), devType.end(), devType.begin(), tolower);
|
||||
+
|
||||
if (stdStringIsEqualCI(devType, UPnP::Device::IGW)) {
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ const char *deviceID =
|
||||
+ UpnpDiscovery_get_DeviceID_cstr(dab_event);
|
||||
+ upnpCP->RemoveRootDevice(deviceID);
|
||||
+#else
|
||||
upnpCP->RemoveRootDevice(dab_event->DeviceId);
|
||||
+#endif
|
||||
}
|
||||
break;
|
||||
}
|
||||
case UPNP_EVENT_RECEIVED: {
|
||||
//fprintf(stderr, "Callback: UPNP_EVENT_RECEIVED\n");
|
||||
// Event reveived
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ UpnpEvent *e_event = (UpnpEvent *)Event;
|
||||
+ int eventKey = UpnpEvent_get_EventKey(e_event);
|
||||
+ IXML_Document *changedVariables =
|
||||
+ UpnpEvent_get_ChangedVariables(e_event);
|
||||
+ const std::string sid = UpnpEvent_get_SID_cstr(e_event);
|
||||
+#else
|
||||
struct Upnp_Event *e_event = (struct Upnp_Event *)Event;
|
||||
const std::string Sid = e_event->Sid;
|
||||
+#endif
|
||||
// Parses the event
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ upnpCP->OnEventReceived(sid, eventKey, changedVariables);
|
||||
+#else
|
||||
upnpCP->OnEventReceived(Sid, e_event->EventKey, e_event->ChangedVariables);
|
||||
+#endif
|
||||
break;
|
||||
}
|
||||
case UPNP_EVENT_SUBSCRIBE_COMPLETE:
|
||||
@@ -1252,24 +1319,42 @@
|
||||
//fprintf(stderr, "Callback: UPNP_EVENT_RENEWAL_COMPLETE\n");
|
||||
msg << "error(UPNP_EVENT_RENEWAL_COMPLETE): ";
|
||||
upnpEventRenewalComplete:
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ UpnpEventSubscribe *es_event = (UpnpEventSubscribe *)Event;
|
||||
+ int errCode = UpnpEventSubscribe_get_ErrCode(es_event);
|
||||
+ if (errCode != UPNP_E_SUCCESS) {
|
||||
+#else
|
||||
struct Upnp_Event_Subscribe *es_event =
|
||||
(struct Upnp_Event_Subscribe *)Event;
|
||||
if (es_event->ErrCode != UPNP_E_SUCCESS) {
|
||||
+#endif
|
||||
msg << "Error in Event Subscribe Callback";
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ UPnP::ProcessErrorMessage(msg.str(), errCode, NULL, NULL);
|
||||
+#else
|
||||
UPnP::ProcessErrorMessage(
|
||||
msg.str(), es_event->ErrCode, NULL, NULL);
|
||||
+#endif
|
||||
} else {
|
||||
#if 0
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+
|
||||
+ const UpnpString *publisherUrl =
|
||||
+ UpnpEventSubscribe_get_PublisherUrl(es_event);
|
||||
+ const char *sid = UpnpEvent_get_SID_cstr(es_event);
|
||||
+ int timeOut = UpnpEvent_get_TimeOut(es_event);
|
||||
+ TvCtrlPointHandleSubscribeUpdate(
|
||||
+ publisherUrl, sid, timeOut);
|
||||
+#else
|
||||
TvCtrlPointHandleSubscribeUpdate(
|
||||
GET_UPNP_STRING(es_event->PublisherUrl),
|
||||
es_event->Sid,
|
||||
es_event->TimeOut );
|
||||
#endif
|
||||
+#endif
|
||||
}
|
||||
-
|
||||
break;
|
||||
}
|
||||
-
|
||||
case UPNP_EVENT_AUTORENEWAL_FAILED:
|
||||
//fprintf(stderr, "Callback: UPNP_EVENT_AUTORENEWAL_FAILED\n");
|
||||
msg << "error(UPNP_EVENT_AUTORENEWAL_FAILED): ";
|
||||
@@ -1280,29 +1365,56 @@
|
||||
msg << "error(UPNP_EVENT_SUBSCRIPTION_EXPIRED): ";
|
||||
msg2 << "UPNP_EVENT_SUBSCRIPTION_EXPIRED: ";
|
||||
upnpEventSubscriptionExpired:
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ UpnpEventSubscribe *es_event = (UpnpEventSubscribe *)Event;
|
||||
+#else
|
||||
struct Upnp_Event_Subscribe *es_event =
|
||||
(struct Upnp_Event_Subscribe *)Event;
|
||||
+#endif
|
||||
Upnp_SID newSID;
|
||||
memset(newSID, 0, sizeof(Upnp_SID));
|
||||
int TimeOut = 1801;
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ const char *publisherUrl =
|
||||
+ UpnpEventSubscribe_get_PublisherUrl_cstr(es_event);
|
||||
+#endif
|
||||
int ret = UpnpSubscribe(
|
||||
upnpCP->m_UPnPClientHandle,
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ publisherUrl,
|
||||
+#else
|
||||
GET_UPNP_STRING(es_event->PublisherUrl),
|
||||
+#endif
|
||||
&TimeOut,
|
||||
newSID);
|
||||
if (ret != UPNP_E_SUCCESS) {
|
||||
msg << "Error Subscribing to EventURL";
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ int errCode = UpnpEventSubscribe_get_ErrCode(es_event);
|
||||
+#endif
|
||||
UPnP::ProcessErrorMessage(
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ msg.str(), errCode, NULL, NULL);
|
||||
+#else
|
||||
msg.str(), es_event->ErrCode, NULL, NULL);
|
||||
+#endif
|
||||
} else {
|
||||
ServiceMap::iterator it =
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ upnpCP->m_ServiceMap.find(publisherUrl);
|
||||
+#else
|
||||
upnpCP->m_ServiceMap.find(GET_UPNP_STRING(es_event->PublisherUrl));
|
||||
+#endif
|
||||
if (it != upnpCP->m_ServiceMap.end()) {
|
||||
CUPnPService &service = *(it->second);
|
||||
service.SetTimeout(TimeOut);
|
||||
service.SetSID(newSID);
|
||||
msg2 << "Re-subscribed to EventURL '" <<
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ publisherUrl <<
|
||||
+#else
|
||||
GET_UPNP_STRING(es_event->PublisherUrl) <<
|
||||
+#endif
|
||||
"' with SID == '" <<
|
||||
newSID << "'.";
|
||||
AddDebugLogLineC(logUPnP, msg2);
|
||||
@@ -1321,17 +1433,34 @@
|
||||
case UPNP_CONTROL_ACTION_COMPLETE: {
|
||||
//fprintf(stderr, "Callback: UPNP_CONTROL_ACTION_COMPLETE\n");
|
||||
// This is here if we choose to do this asynchronously
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ UpnpActionComplete *a_event = (UpnpActionComplete *)Event;
|
||||
+ int errCode = UpnpActionComplete_get_ErrCode(a_event);
|
||||
+ IXML_Document *actionResult =
|
||||
+ UpnpActionComplete_get_ActionResult(a_event);
|
||||
+ if (errCode != UPNP_E_SUCCESS) {
|
||||
+#else
|
||||
struct Upnp_Action_Complete *a_event =
|
||||
(struct Upnp_Action_Complete *)Event;
|
||||
if (a_event->ErrCode != UPNP_E_SUCCESS) {
|
||||
+#endif
|
||||
UPnP::ProcessErrorMessage(
|
||||
"UpnpSendActionAsync",
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ errCode, NULL,
|
||||
+ actionResult);
|
||||
+#else
|
||||
a_event->ErrCode, NULL,
|
||||
a_event->ActionResult);
|
||||
+#endif
|
||||
} else {
|
||||
// Check the response document
|
||||
UPnP::ProcessActionResponse(
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ actionResult,
|
||||
+#else
|
||||
a_event->ActionResult,
|
||||
+#endif
|
||||
"<UpnpSendActionAsync>");
|
||||
}
|
||||
/* No need for any processing here, just print out results.
|
||||
@@ -1342,22 +1471,43 @@
|
||||
case UPNP_CONTROL_GET_VAR_COMPLETE: {
|
||||
//fprintf(stderr, "Callback: UPNP_CONTROL_GET_VAR_COMPLETE\n");
|
||||
msg << "error(UPNP_CONTROL_GET_VAR_COMPLETE): ";
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ UpnpStateVarComplete *sv_event = (UpnpStateVarComplete *)Event;
|
||||
+ int errCode = UpnpStateVarComplete_get_ErrCode(sv_event);
|
||||
+ if (errCode != UPNP_E_SUCCESS) {
|
||||
+#else
|
||||
struct Upnp_State_Var_Complete *sv_event =
|
||||
(struct Upnp_State_Var_Complete *)Event;
|
||||
if (sv_event->ErrCode != UPNP_E_SUCCESS) {
|
||||
+#endif
|
||||
msg << "m_UpnpGetServiceVarStatusAsync";
|
||||
UPnP::ProcessErrorMessage(
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ msg.str(), errCode, NULL, NULL);
|
||||
+#else
|
||||
msg.str(), sv_event->ErrCode, NULL, NULL);
|
||||
+#endif
|
||||
} else {
|
||||
#if 0
|
||||
// Warning: The use of UpnpGetServiceVarStatus and
|
||||
// UpnpGetServiceVarStatusAsync is deprecated by the
|
||||
// UPnP forum.
|
||||
+#if UPNP_VERSION >= 10800
|
||||
+ const char *ctrlUrl =
|
||||
+ UpnpStateVarComplete_get_CtrlUrl(sv_event);
|
||||
+ const char *stateVarName =
|
||||
+ UpnpStateVarComplete_get_StateVarName(sv_event);
|
||||
+ const DOMString currentVal =
|
||||
+ UpnpStateVarComplete_get_CurrentVal(sv_event);
|
||||
+ TvCtrlPointHandleGetVar(
|
||||
+ ctrlUrl, stateVarName, currentVal);
|
||||
+#else
|
||||
TvCtrlPointHandleGetVar(
|
||||
sv_event->CtrlUrl,
|
||||
sv_event->StateVarName,
|
||||
sv_event->CurrentVal );
|
||||
#endif
|
||||
+#endif
|
||||
}
|
||||
break;
|
||||
}
|
||||
diff -Naur a/src/UPnPBase.h b/src/UPnPBase.h
|
||||
--- a/src/UPnPBase.h 2016-10-06 18:49:44.000000000 +0800
|
||||
+++ b/src/UPnPBase.h 2019-12-11 22:16:28.165063153 +0800
|
||||
@@ -489,9 +489,15 @@
|
||||
|
||||
// Callback function
|
||||
static int Callback(
|
||||
+ #if UPNP_VERSION >= 10800
|
||||
+ Upnp_EventType_e EventType,
|
||||
+ const void *Event,
|
||||
+ void *Cookie);
|
||||
+ #else
|
||||
Upnp_EventType EventType,
|
||||
void* Event,
|
||||
void* Cookie);
|
||||
+ #endif
|
||||
|
||||
private:
|
||||
void OnEventReceived(
|
||||
@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-ssr-plus
|
||||
PKG_VERSION:=1
|
||||
PKG_RELEASE:=131
|
||||
PKG_RELEASE:=132
|
||||
|
||||
PKG_CONFIG_DEPENDS:= CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_V2ray \
|
||||
@ -45,7 +45,7 @@ define Package/luci-app-ssr-plus
|
||||
SUBMENU:=3. Applications
|
||||
TITLE:=SS/SSR/V2Ray LuCI interface
|
||||
PKGARCH:=all
|
||||
DEPENDS:=+shadowsocksr-libev-alt +ipset +ip-full +iptables-mod-tproxy +dnsmasq-full +coreutils +coreutils-base64 +bash +pdnsd-alt +wget \
|
||||
DEPENDS:=+shadowsocksr-libev-alt +ipset +ip-full +iptables-mod-tproxy +dnsmasq-full +coreutils +coreutils-base64 +pdnsd-alt +wget \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks:shadowsocks-libev-ss-redir \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_V2ray:v2ray \
|
||||
+PACKAGE_$(PKG_NAME)_INCLUDE_Trojan:trojan \
|
||||
|
||||
@ -1,265 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Copyright (C) 2017 XiaoShan https://www.mivm.cn
|
||||
|
||||
. /usr/share/libubox/jshn.sh
|
||||
|
||||
urlsafe_b64decode() {
|
||||
local d="====" data=$(echo $1 | sed 's/_/\//g; s/-/+/g')
|
||||
local mod4=$((${#data}%4))
|
||||
[ $mod4 -gt 0 ] && data=${data}${d:mod4}
|
||||
echo $data | base64 -d
|
||||
}
|
||||
|
||||
urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; }
|
||||
|
||||
echo_date(){
|
||||
echo $(TZ=UTC-8 date -R +%Y-%m-%d\ %X):$1
|
||||
}
|
||||
|
||||
Server_Update() {
|
||||
local uci_set="uci -q set $name.$1."
|
||||
${uci_set}grouphashkey="$ssr_grouphashkey"
|
||||
${uci_set}hashkey="$ssr_hashkey"
|
||||
${uci_set}alias="[$ssr_group] $ssr_remarks"
|
||||
${uci_set}auth_enable="0"
|
||||
${uci_set}switch_enable="1"
|
||||
${uci_set}type="$ssr_type"
|
||||
${uci_set}server="$ssr_host"
|
||||
${uci_set}server_port="$ssr_port"
|
||||
${uci_set}local_port="1234"
|
||||
uci -q get $name.@servers[$1].timeout >/dev/null || ${uci_set}timeout="60"
|
||||
${uci_set}password="$ssr_passwd"
|
||||
${uci_set}encrypt_method="$ssr_method"
|
||||
${uci_set}protocol="$ssr_protocol"
|
||||
${uci_set}protocol_param="$ssr_protoparam"
|
||||
${uci_set}obfs="$ssr_obfs"
|
||||
${uci_set}obfs_param="$ssr_obfsparam"
|
||||
${uci_set}fast_open="0"
|
||||
${uci_set}kcp_enable="0"
|
||||
${uci_set}kcp_port="0"
|
||||
${uci_set}kcp_param="--nocomp"
|
||||
|
||||
if [ "$ssr_type" = "v2ray" ]; then
|
||||
#v2ray
|
||||
${uci_set}alter_id="$ssr_alter_id"
|
||||
${uci_set}vmess_id="$ssr_vmess_id"
|
||||
${uci_set}transport="$ssr_transport"
|
||||
${uci_set}tcp_guise="$ssr_tcp_guise"
|
||||
${uci_set}ws_host="$ssr_ws_host"
|
||||
${uci_set}ws_path="$ssr_ws_path"
|
||||
${uci_set}h2_host="$ssr_h2_host"
|
||||
${uci_set}h2_path="$ssr_h2_path"
|
||||
${uci_set}tls="$ssr_tls"
|
||||
${uci_set}security=$ssr_security
|
||||
${uci_set}alias="$ssr_remarks"
|
||||
fi
|
||||
|
||||
if [ "$ssr_type" = "ss" ]; then
|
||||
${uci_set}encrypt_method_ss="$ss_method"
|
||||
${uci_set}alias="$ssr_remarks"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
name=shadowsocksr
|
||||
subscribe_url=($(uci get $name.@server_subscribe[0].subscribe_url)) #订阅服务器地址
|
||||
[ ${#subscribe_url[@]} -eq 0 ] && exit 1
|
||||
[ $(uci -q get $name.@server_subscribe[0].proxy || echo 0) -eq 0 ] && /etc/init.d/$name stop >/dev/null 2>&1
|
||||
log_name=${name}_subscribe
|
||||
for ((o=0;o<${#subscribe_url[@]};o++))
|
||||
do
|
||||
echo_date "从 ${subscribe_url[o]} 获取订阅"
|
||||
echo_date "开始更新在线订阅列表..."
|
||||
echo_date "尝试下载订阅链接到本地临时文件,请稍等..."
|
||||
subscribe_data=$(wget-ssl --no-check-certificate -t 3 -T 30 -O- ${subscribe_url[o]})
|
||||
curl_code=$?
|
||||
# 计算group的hashkey
|
||||
ssr_grouphashkey=$(echo "${subscribe_url[o]}" | md5sum | cut -d ' ' -f1)
|
||||
if [ ! $curl_code -eq 0 ];then
|
||||
echo_date "下载订阅失败,自动重试中..."
|
||||
subscribe_data=$(wget-ssl --user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" --no-check-certificate -t 3 -T 30 -O- ${subscribe_url[o]})
|
||||
curl_code=$?
|
||||
fi
|
||||
if [ $curl_code -eq 0 ];then
|
||||
echo_date "下载订阅成功,开始解析节点信息..."
|
||||
ssr_url=($(echo $subscribe_data | base64 -d | sed 's/\r//g')) # 解码数据并删除 \r 换行符
|
||||
subscribe_max=$(echo ${ssr_url[0]} | grep -i MAX= | awk -F = '{print $2}')
|
||||
subscribe_max_x=()
|
||||
if [ -n "$subscribe_max" ]; then
|
||||
while [ ${#subscribe_max_x[@]} -ne $subscribe_max ]
|
||||
do
|
||||
if [ ${#ssr_url[@]} -ge 10 ]; then
|
||||
if [ $((${RANDOM:0:2}%2)) -eq 0 ]; then
|
||||
temp_x=${RANDOM:0:1}
|
||||
else
|
||||
temp_x=${RANDOM:0:2}
|
||||
fi
|
||||
else
|
||||
temp_x=${RANDOM:0:1}
|
||||
fi
|
||||
[ $temp_x -lt ${#ssr_url[@]} -a -z "$(echo "${subscribe_max_x[*]}" | grep -w $temp_x)" ] && subscribe_max_x[${#subscribe_max_x[@]}]="$temp_x"
|
||||
done
|
||||
else
|
||||
subscribe_max=${#ssr_url[@]}
|
||||
fi
|
||||
echo_date "共计$subscribe_max个节点"
|
||||
|
||||
ssr_group=$(urlsafe_b64decode $(urlsafe_b64decode ${ssr_url[$((${#ssr_url[@]} - 1))]//ssr:\/\//} | sed 's/&/\n/g' | grep group= | awk -F = '{print $2}'))
|
||||
if [ -z "$ssr_group" ]; then
|
||||
ssr_group="default"
|
||||
fi
|
||||
if [ -n "$ssr_group" ]; then
|
||||
subscribe_i=0
|
||||
subscribe_n=0
|
||||
subscribe_o=0
|
||||
subscribe_x=""
|
||||
temp_host_o=()
|
||||
curr_ssr=$(uci show $name | grep @servers | grep -c server=)
|
||||
for ((x=0;x<$curr_ssr;x++)) # 循环已有服务器信息,匹配当前订阅群组
|
||||
do
|
||||
temp_alias=$(uci -q get $name.@servers[$x].grouphashkey | grep "$ssr_grouphashkey")
|
||||
[ -n "$temp_alias" ] && temp_host_o[${#temp_host_o[@]}]=$(uci get $name.@servers[$x].hashkey)
|
||||
done
|
||||
|
||||
for ((x=0;x<$subscribe_max;x++)) # 循环链接
|
||||
do
|
||||
[ ${#subscribe_max_x[@]} -eq 0 ] && temp_x=$x || temp_x=${subscribe_max_x[x]}
|
||||
result=$(echo ${ssr_url[temp_x]} | grep "ss")
|
||||
subscribe_url_type=$(echo "$ssr_url" | awk -F ':' '{print $1}')
|
||||
|
||||
if [ "$subscribe_url_type" = "ss" ]; then
|
||||
temp_info=${ssr_url[temp_x]//ss:\/\//} # 解码 SS 链接
|
||||
# 计算hashkey
|
||||
ssr_hashkey=$(echo "$temp_info" | md5sum | cut -d ' ' -f1)
|
||||
|
||||
info=$(urlsafe_b64decode $(echo "$temp_info" | awk -F '@' '{print $1}'))
|
||||
temp_info_array=(${info//:/ })
|
||||
ssr_type="ss"
|
||||
ss_method=${temp_info_array[0]}
|
||||
ssr_passwd=${temp_info_array[1]}
|
||||
info=$(echo "$temp_info" | awk -F '@' '{print $2}' | awk -F '#' '{print $1}')
|
||||
temp_info_array=(${info//:/ })
|
||||
ssr_host=${temp_info_array[0]}
|
||||
ssr_port=${temp_info_array[1]}
|
||||
ssr_remarks=$(urldecode $(echo "$temp_info" | awk -F '#' '{print $2}'))
|
||||
fi
|
||||
|
||||
if [ "$subscribe_url_type" = "ssr" ]; then
|
||||
temp_info=$(urlsafe_b64decode ${ssr_url[temp_x]//ssr:\/\//}) # 解码 SSR 链接
|
||||
# 计算hashkey
|
||||
ssr_hashkey=$(echo "$temp_info" | md5sum | cut -d ' ' -f1)
|
||||
|
||||
info=${temp_info///?*/}
|
||||
temp_info_array=(${info//:/ })
|
||||
ssr_type="ssr"
|
||||
ssr_host=${temp_info_array[0]}
|
||||
ssr_port=${temp_info_array[1]}
|
||||
ssr_protocol=${temp_info_array[2]}
|
||||
ssr_method=${temp_info_array[3]}
|
||||
ssr_obfs=${temp_info_array[4]}
|
||||
ssr_passwd=$(urlsafe_b64decode ${temp_info_array[5]})
|
||||
info=${temp_info:$((${#info} + 2))}
|
||||
info=(${info//&/ })
|
||||
ssr_protoparam=""
|
||||
ssr_obfsparam=""
|
||||
ssr_remarks="$temp_x"
|
||||
for ((i=0;i<${#info[@]};i++)) # 循环扩展信息
|
||||
do
|
||||
temp_info=($(echo ${info[i]} | sed 's/=/ /g'))
|
||||
case "${temp_info[0]}" in
|
||||
protoparam)
|
||||
ssr_protoparam=$(urlsafe_b64decode ${temp_info[1]});;
|
||||
obfsparam)
|
||||
ssr_obfsparam=$(urlsafe_b64decode ${temp_info[1]});;
|
||||
remarks)
|
||||
ssr_remarks=$(urlsafe_b64decode ${temp_info[1]});;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
if [ "$subscribe_url_type" = "vmess" ]; then
|
||||
temp_info=$(urlsafe_b64decode ${ssr_url[temp_x]//vmess:\/\//}) # 解码 Vmess 链接
|
||||
# 计算hashkey
|
||||
ssr_hashkey=$(echo "$temp_info" | md5sum | cut -d ' ' -f1)
|
||||
|
||||
ssr_type="v2ray"
|
||||
json_load "$temp_info"
|
||||
json_get_var ssr_host add
|
||||
json_get_var ssr_port port
|
||||
json_get_var ssr_alter_id aid
|
||||
json_get_var ssr_vmess_id id
|
||||
json_get_var ssr_security security
|
||||
if [ "$ssr_security" == "" ]; then
|
||||
ssr_security="auto"
|
||||
fi
|
||||
json_get_var ssr_transport net
|
||||
json_get_var ssr_remarks ps
|
||||
ssr_tcp_guise="none"
|
||||
json_get_var ssr_ws_host host
|
||||
json_get_var ssr_ws_path path
|
||||
json_get_var ssr_h2_host host
|
||||
json_get_var ssr_h2_path path
|
||||
json_get_var ssr_tls tls
|
||||
if [ "$ssr_tls" == "tls" -o "$ssr_tls" == "1" ]; then
|
||||
ssr_tls="1"
|
||||
else
|
||||
ssr_tls="0"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "ssr_remarks" ]; then # 没有备注的话则生成一个
|
||||
ssr_remarks="$ssr_host:$ssr_port";
|
||||
fi
|
||||
|
||||
# 丢弃没有host的无效服务器信息,例如:剩余流量xxx
|
||||
if [[ "$ssr_remarks" =~ "过期时间" ]] || [[ "$ssr_remarks" =~ "剩余流量" ]] || [[ "$ssr_remarks" =~ "防失联QQ群" ]] || [ -z "$ssr_host" ];then
|
||||
echo_date "丢弃无效节点:【$ssr_remarks】"
|
||||
continue
|
||||
fi
|
||||
|
||||
uci_name_tmp=$(uci show $name | grep -w "$ssr_hashkey" | awk -F . '{print $2}')
|
||||
if [ -z "$uci_name_tmp" ]; then # 判断当前服务器信息是否存在
|
||||
uci_name_tmp=$(uci add $name servers)
|
||||
subscribe_n=$(($subscribe_n + 1))
|
||||
fi
|
||||
Server_Update $uci_name_tmp
|
||||
subscribe_x=$subscribe_x$ssr_hashkey" "
|
||||
ssrtype=$(echo $ssr_type | tr '[a-z]' '[A-Z]')
|
||||
echo_date "$ssrtype节点:【$ssr_remarks】"
|
||||
|
||||
# SSR
|
||||
# echo "服务器地址: $ssr_host"
|
||||
# echo "服务器端口 $ssr_port"
|
||||
# echo "密码: $ssr_passwd"
|
||||
# echo "SS加密: $ss_method"
|
||||
# echo "加密: $ssr_method"
|
||||
# echo "协议: $ssr_protocol"
|
||||
# echo "协议参数: $ssr_protoparam"
|
||||
# echo "混淆: $ssr_obfs"
|
||||
# echo "混淆参数: $ssr_obfsparam"
|
||||
# echo "备注: $ssr_remarks"
|
||||
|
||||
done
|
||||
for ((x=0;x<${#temp_host_o[@]};x++)) # 新旧服务器信息匹配,如果旧服务器信息不存在于新服务器信息则删除
|
||||
do
|
||||
if [ -z "$(echo "$subscribe_x" | grep -w ${temp_host_o[x]})" ]; then
|
||||
uci_name_tmp=$(uci show $name | grep ${temp_host_o[x]} | awk -F . '{print $2}')
|
||||
uci delete $name.$uci_name_tmp
|
||||
subscribe_o=$(($subscribe_o + 1))
|
||||
fi
|
||||
done
|
||||
echo_date "本次更新订阅来源 【$ssr_group】 服务器数量: ${#ssr_url[@]} 新增服务器: $subscribe_n 删除服务器: $subscribe_o"
|
||||
echo_date "在线订阅列表更新完成!请等待网页自动刷新!"
|
||||
subscribe_log="$ssr_group 服务器订阅更新成功 服务器数量: ${#ssr_url[@]} 新增服务器: $subscribe_n 删除服务器: $subscribe_o"
|
||||
logger -st $log_name[$$] -p6 "$subscribe_log"
|
||||
uci commit $name
|
||||
else
|
||||
echo_date "${subscribe_url[$o]} 订阅数据解析失败 无法获取 Group"
|
||||
logger -st $log_name[$$] -p3 "${subscribe_url[$o]} 订阅数据解析失败 无法获取 Group"
|
||||
fi
|
||||
else
|
||||
echo_date "${subscribe_url[$o]} 订阅数据获取失败 错误代码: $curl_code"
|
||||
logger -st $log_name[$$] -p3 "${subscribe_url[$o]} 订阅数据获取失败 错误代码: $curl_code"
|
||||
fi
|
||||
done
|
||||
/etc/init.d/$name restart >/dev/null 2>&1
|
||||
@ -7,7 +7,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=npc
|
||||
PKG_VERSION:=0.25.3
|
||||
PKG_VERSION:=0.26.0
|
||||
PKG_RELEASE:=1
|
||||
|
||||
ifeq ($(ARCH),mipsel)
|
||||
|
||||
@ -129,6 +129,15 @@
|
||||
struct ip_auth_hdr {
|
||||
--- a/include/uapi/linux/ipv6.h
|
||||
+++ b/include/uapi/linux/ipv6.h
|
||||
@@ -104,7 +104,7 @@ struct ipv6_destopt_hao {
|
||||
__u8 type;
|
||||
__u8 length;
|
||||
struct in6_addr addr;
|
||||
-} __attribute__((packed));
|
||||
+} __attribute__((packed, aligned(2)));
|
||||
|
||||
/*
|
||||
* IPv6 fixed header
|
||||
@@ -131,7 +131,7 @@ struct ipv6hdr {
|
||||
|
||||
struct in6_addr saddr;
|
||||
@ -316,7 +325,7 @@
|
||||
for (p = *head; p; p = p->next) {
|
||||
--- a/net/ipv4/route.c
|
||||
+++ b/net/ipv4/route.c
|
||||
@@ -465,7 +465,7 @@ static struct neighbour *ipv4_neigh_look
|
||||
@@ -466,7 +466,7 @@ static struct neighbour *ipv4_neigh_look
|
||||
else if (skb)
|
||||
pkey = &ip_hdr(skb)->daddr;
|
||||
|
||||
|
||||
@ -316,7 +316,7 @@
|
||||
for (p = *head; p; p = p->next) {
|
||||
--- a/net/ipv4/route.c
|
||||
+++ b/net/ipv4/route.c
|
||||
@@ -465,7 +465,7 @@ static struct neighbour *ipv4_neigh_look
|
||||
@@ -466,7 +466,7 @@ static struct neighbour *ipv4_neigh_look
|
||||
else if (skb)
|
||||
pkey = &ip_hdr(skb)->daddr;
|
||||
|
||||
|
||||
@ -316,7 +316,7 @@
|
||||
list_for_each_entry(p, head, list) {
|
||||
--- a/net/ipv4/route.c
|
||||
+++ b/net/ipv4/route.c
|
||||
@@ -448,7 +448,7 @@ static struct neighbour *ipv4_neigh_look
|
||||
@@ -449,7 +449,7 @@ static struct neighbour *ipv4_neigh_look
|
||||
else if (skb)
|
||||
pkey = &ip_hdr(skb)->daddr;
|
||||
|
||||
@ -327,7 +327,7 @@
|
||||
return neigh_create(&arp_tbl, pkey, dev);
|
||||
--- a/net/ipv4/tcp_output.c
|
||||
+++ b/net/ipv4/tcp_output.c
|
||||
@@ -444,48 +444,53 @@ static void tcp_options_write(__be32 *pt
|
||||
@@ -447,48 +447,53 @@ static void tcp_options_write(__be32 *pt
|
||||
u16 options = opts->options; /* mungable copy */
|
||||
|
||||
if (unlikely(OPTION_MD5 & options)) {
|
||||
@ -404,7 +404,7 @@
|
||||
}
|
||||
|
||||
if (unlikely(opts->num_sack_blocks)) {
|
||||
@@ -493,16 +498,17 @@ static void tcp_options_write(__be32 *pt
|
||||
@@ -496,16 +501,17 @@ static void tcp_options_write(__be32 *pt
|
||||
tp->duplicate_sack : tp->selective_acks;
|
||||
int this_sack;
|
||||
|
||||
@ -428,7 +428,7 @@
|
||||
}
|
||||
|
||||
tp->rx_opt.dsack = 0;
|
||||
@@ -515,13 +521,14 @@ static void tcp_options_write(__be32 *pt
|
||||
@@ -518,13 +524,14 @@ static void tcp_options_write(__be32 *pt
|
||||
|
||||
if (foc->exp) {
|
||||
len = TCPOLEN_EXP_FASTOPEN_BASE + foc->len;
|
||||
|
||||
@ -74,6 +74,7 @@ CONFIG_BUILD_BIN2C=y
|
||||
# CONFIG_CACHE_L2X0 is not set
|
||||
CONFIG_CLKDEV_LOOKUP=y
|
||||
CONFIG_CLKSRC_MMIO=y
|
||||
# CONFIG_CLK_RASPBERRYPI is not set
|
||||
CONFIG_CLONE_BACKWARDS=y
|
||||
CONFIG_CMA=y
|
||||
CONFIG_CMA_ALIGNMENT=8
|
||||
|
||||
@ -39,7 +39,7 @@ CONFIG_ARM=y
|
||||
CONFIG_ARM_AMBA=y
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
|
||||
CONFIG_ARM_BCM2835_CPUFREQ=y
|
||||
# CONFIG_ARM_BCM2835_CPUFREQ is not set
|
||||
CONFIG_ARM_CPU_SUSPEND=y
|
||||
CONFIG_ARM_GIC=y
|
||||
CONFIG_ARM_HAS_SG_CHAIN=y
|
||||
@ -48,6 +48,7 @@ CONFIG_ARM_L1_CACHE_SHIFT_6=y
|
||||
CONFIG_ARM_LPAE=y
|
||||
CONFIG_ARM_PATCH_IDIV=y
|
||||
CONFIG_ARM_PATCH_PHYS_VIRT=y
|
||||
CONFIG_ARM_RASPBERRYPI_CPUFREQ=y
|
||||
# CONFIG_ARM_SCMI_PROTOCOL is not set
|
||||
# CONFIG_ARM_SP805_WATCHDOG is not set
|
||||
CONFIG_ARM_THUMB=y
|
||||
@ -91,6 +92,7 @@ CONFIG_BUILD_BIN2C=y
|
||||
# CONFIG_CACHE_L2X0 is not set
|
||||
CONFIG_CLKDEV_LOOKUP=y
|
||||
CONFIG_CLKSRC_MMIO=y
|
||||
CONFIG_CLK_RASPBERRYPI=y
|
||||
CONFIG_CLONE_BACKWARDS=y
|
||||
CONFIG_CMA=y
|
||||
CONFIG_CMA_ALIGNMENT=8
|
||||
@ -105,7 +107,8 @@ CONFIG_CMA_SIZE_SEL_MBYTES=y
|
||||
CONFIG_COMMON_CLK=y
|
||||
CONFIG_CONFIGFS_FS=y
|
||||
CONFIG_CONSOLE_TRANSLATIONS=y
|
||||
# CONFIG_CPUFREQ_DT is not set
|
||||
CONFIG_CPUFREQ_DT=y
|
||||
CONFIG_CPUFREQ_DT_PLATDEV=y
|
||||
CONFIG_CPU_32v6K=y
|
||||
CONFIG_CPU_32v7=y
|
||||
CONFIG_CPU_ABRT_EV7=y
|
||||
@ -390,7 +393,6 @@ CONFIG_PCI_DOMAINS=y
|
||||
CONFIG_PCI_DOMAINS_GENERIC=y
|
||||
CONFIG_PCI_MSI=y
|
||||
CONFIG_PCI_MSI_IRQ_DOMAIN=y
|
||||
# CONFIG_PCI_V3_SEMI is not set
|
||||
CONFIG_PERF_USE_VMALLOC=y
|
||||
CONFIG_PGTABLE_LEVELS=3
|
||||
CONFIG_PHYLIB=y
|
||||
@ -403,6 +405,7 @@ CONFIG_PM_CLK=y
|
||||
CONFIG_PM_GENERIC_DOMAINS=y
|
||||
CONFIG_PM_GENERIC_DOMAINS_OF=y
|
||||
CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
|
||||
CONFIG_PM_OPP=y
|
||||
CONFIG_PM_SLEEP=y
|
||||
CONFIG_PM_SLEEP_SMP=y
|
||||
CONFIG_POWER_SUPPLY=y
|
||||
|
||||
@ -102,13 +102,14 @@ CONFIG_ARM_AMBA=y
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
|
||||
CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y
|
||||
CONFIG_ARM_BCM2835_CPUFREQ=y
|
||||
# CONFIG_ARM_BCM2835_CPUFREQ is not set
|
||||
CONFIG_ARM_GIC=y
|
||||
CONFIG_ARM_GIC_V2M=y
|
||||
CONFIG_ARM_GIC_V3=y
|
||||
CONFIG_ARM_GIC_V3_ITS=y
|
||||
CONFIG_ARM_GIC_V3_ITS_PCI=y
|
||||
CONFIG_ARM_PSCI_FW=y
|
||||
CONFIG_ARM_RASPBERRYPI_CPUFREQ=y
|
||||
# CONFIG_ARM_SCMI_PROTOCOL is not set
|
||||
# CONFIG_ARM_SP805_WATCHDOG is not set
|
||||
CONFIG_ARM_TIMER_SP804=y
|
||||
@ -144,6 +145,7 @@ CONFIG_CAVIUM_ERRATUM_23154=y
|
||||
CONFIG_CAVIUM_ERRATUM_27456=y
|
||||
CONFIG_CLKDEV_LOOKUP=y
|
||||
CONFIG_CLKSRC_MMIO=y
|
||||
CONFIG_CLK_RASPBERRYPI=y
|
||||
CONFIG_CLONE_BACKWARDS=y
|
||||
CONFIG_CMA=y
|
||||
CONFIG_CMA_ALIGNMENT=8
|
||||
@ -159,7 +161,8 @@ CONFIG_COMMON_CLK=y
|
||||
CONFIG_COMMON_CLK_XGENE=y
|
||||
CONFIG_CONFIGFS_FS=y
|
||||
CONFIG_CONSOLE_TRANSLATIONS=y
|
||||
# CONFIG_CPUFREQ_DT is not set
|
||||
CONFIG_CPUFREQ_DT=y
|
||||
CONFIG_CPUFREQ_DT_PLATDEV=y
|
||||
# CONFIG_CPU_BIG_ENDIAN is not set
|
||||
CONFIG_CPU_FREQ=y
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
|
||||
@ -249,6 +252,7 @@ CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
|
||||
CONFIG_GENERIC_CPU_AUTOPROBE=y
|
||||
CONFIG_GENERIC_CPU_VULNERABILITIES=y
|
||||
CONFIG_GENERIC_CSUM=y
|
||||
CONFIG_GENERIC_EARLY_IOREMAP=y
|
||||
CONFIG_GENERIC_IDLE_POLL_SETUP=y
|
||||
@ -453,6 +457,7 @@ CONFIG_PM_CLK=y
|
||||
CONFIG_PM_GENERIC_DOMAINS=y
|
||||
CONFIG_PM_GENERIC_DOMAINS_OF=y
|
||||
CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
|
||||
CONFIG_PM_OPP=y
|
||||
CONFIG_PM_SLEEP=y
|
||||
CONFIG_PM_SLEEP_SMP=y
|
||||
CONFIG_POWER_RESET=y
|
||||
|
||||
@ -102,13 +102,14 @@ CONFIG_ARM_AMBA=y
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
|
||||
CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y
|
||||
CONFIG_ARM_BCM2835_CPUFREQ=y
|
||||
# CONFIG_ARM_BCM2835_CPUFREQ is not set
|
||||
CONFIG_ARM_GIC=y
|
||||
CONFIG_ARM_GIC_V2M=y
|
||||
CONFIG_ARM_GIC_V3=y
|
||||
CONFIG_ARM_GIC_V3_ITS=y
|
||||
CONFIG_ARM_GIC_V3_ITS_PCI=y
|
||||
CONFIG_ARM_PSCI_FW=y
|
||||
CONFIG_ARM_RASPBERRYPI_CPUFREQ=y
|
||||
# CONFIG_ARM_SCMI_PROTOCOL is not set
|
||||
# CONFIG_ARM_SP805_WATCHDOG is not set
|
||||
CONFIG_ARM_TIMER_SP804=y
|
||||
@ -148,6 +149,7 @@ CONFIG_CAVIUM_ERRATUM_23154=y
|
||||
CONFIG_CAVIUM_ERRATUM_27456=y
|
||||
CONFIG_CLKDEV_LOOKUP=y
|
||||
CONFIG_CLKSRC_MMIO=y
|
||||
CONFIG_CLK_RASPBERRYPI=y
|
||||
CONFIG_CLONE_BACKWARDS=y
|
||||
CONFIG_CMA=y
|
||||
CONFIG_CMA_ALIGNMENT=8
|
||||
@ -163,7 +165,8 @@ CONFIG_COMMON_CLK=y
|
||||
CONFIG_COMMON_CLK_XGENE=y
|
||||
CONFIG_CONFIGFS_FS=y
|
||||
CONFIG_CONSOLE_TRANSLATIONS=y
|
||||
# CONFIG_CPUFREQ_DT is not set
|
||||
CONFIG_CPUFREQ_DT=y
|
||||
CONFIG_CPUFREQ_DT_PLATDEV=y
|
||||
# CONFIG_CPU_BIG_ENDIAN is not set
|
||||
CONFIG_CPU_FREQ=y
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
|
||||
@ -253,6 +256,7 @@ CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
|
||||
CONFIG_GENERIC_CPU_AUTOPROBE=y
|
||||
CONFIG_GENERIC_CPU_VULNERABILITIES=y
|
||||
CONFIG_GENERIC_CSUM=y
|
||||
CONFIG_GENERIC_EARLY_IOREMAP=y
|
||||
CONFIG_GENERIC_IDLE_POLL_SETUP=y
|
||||
@ -461,6 +465,7 @@ CONFIG_PM_CLK=y
|
||||
CONFIG_PM_GENERIC_DOMAINS=y
|
||||
CONFIG_PM_GENERIC_DOMAINS_OF=y
|
||||
CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
|
||||
CONFIG_PM_OPP=y
|
||||
CONFIG_PM_SLEEP=y
|
||||
CONFIG_PM_SLEEP_SMP=y
|
||||
CONFIG_POWER_RESET=y
|
||||
|
||||
@ -16,11 +16,6 @@ define Build/Compile
|
||||
endef
|
||||
|
||||
### Image scripts ###
|
||||
define Build/kernel-img
|
||||
perl $(LINUX_DIR)/scripts/mkknlimg $@ $@.tmp
|
||||
mv $@.tmp $@
|
||||
endef
|
||||
|
||||
define Build/boot-common
|
||||
rm -f $@.boot
|
||||
mkfs.fat -C $@.boot $(FAT32_BLOCKS)
|
||||
@ -63,7 +58,7 @@ endef
|
||||
### Devices ###
|
||||
define Device/Default
|
||||
DEVICE_VENDOR := Raspberry Pi
|
||||
KERNEL := kernel-bin | kernel-img
|
||||
KERNEL := kernel-bin
|
||||
KERNEL_IMG := kernel.img
|
||||
IMAGES := factory.img.gz sysupgrade.img.gz
|
||||
IMAGE/sysupgrade.img.gz := boot-common | boot-2708 | sdcard-img | gzip | append-metadata
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 2096cda971fed28cbc822d8c7d489bf85af22f34 Mon Sep 17 00:00:00 2001
|
||||
From: Dan Pasanen <dan.pasanen@gmail.com>
|
||||
Date: Thu, 21 Sep 2017 09:55:42 -0500
|
||||
Subject: [PATCH 001/806] arm: partially revert
|
||||
Subject: [PATCH] arm: partially revert
|
||||
702b94bff3c50542a6e4ab9a4f4cef093262fe65
|
||||
|
||||
* Re-expose some dmi APIs for use in VCSM
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 26bb49317b44d0927ed7b4be1d72aa11853a01f7 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Glendinning <steve.glendinning@smsc.com>
|
||||
Date: Thu, 19 Feb 2015 18:47:12 +0000
|
||||
Subject: [PATCH 002/806] smsx95xx: fix crimes against truesize
|
||||
Subject: [PATCH] smsx95xx: fix crimes against truesize
|
||||
|
||||
smsc95xx is adjusting truesize when it shouldn't, and following a recent patch from Eric this is now triggering warnings.
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From ac6edc14a931f10413d4586c2d0d1f2ddc1a416a Mon Sep 17 00:00:00 2001
|
||||
From: Sam Nazarko <email@samnazarko.co.uk>
|
||||
Date: Fri, 1 Apr 2016 17:27:21 +0100
|
||||
Subject: [PATCH 003/806] smsc95xx: Experimental: Enable turbo_mode and
|
||||
Subject: [PATCH] smsc95xx: Experimental: Enable turbo_mode and
|
||||
packetsize=2560 by default
|
||||
|
||||
See: http://forum.kodi.tv/showthread.php?tid=285288
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From fa1451d655f59916aec1c1e4fb17f19a78005066 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Tue, 26 Mar 2013 17:26:38 +0000
|
||||
Subject: [PATCH 004/806] Allow mac address to be set in smsc95xx
|
||||
Subject: [PATCH] Allow mac address to be set in smsc95xx
|
||||
|
||||
Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||
---
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 6209e42d384cfe873123b411a9bd170de027d4b5 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Fri, 13 Mar 2015 12:43:36 +0000
|
||||
Subject: [PATCH 005/806] Protect __release_resource against resources without
|
||||
Subject: [PATCH] Protect __release_resource against resources without
|
||||
parents
|
||||
|
||||
Without this patch, removing a device tree overlay can crash here.
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 5e9082be2fca137fe13b8af15aa0b9d178cd99c1 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Fri, 4 Dec 2015 17:41:50 +0000
|
||||
Subject: [PATCH 006/806] irq-bcm2836: Prevent spurious interrupts, and trap
|
||||
Subject: [PATCH] irq-bcm2836: Prevent spurious interrupts, and trap
|
||||
them early
|
||||
|
||||
The old arch-specific IRQ macros included a dsb to ensure the
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From b8a56e2dbae7dbcc0537b03f8a99eb5ba638876b Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Thu, 9 Feb 2017 14:33:30 +0000
|
||||
Subject: [PATCH 007/806] irq-bcm2836: Avoid "Invalid trigger warning"
|
||||
Subject: [PATCH] irq-bcm2836: Avoid "Invalid trigger warning"
|
||||
|
||||
Initialise the level for each IRQ to avoid a warning from the
|
||||
arm arch timer code.
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 9334b65d3020bca44aa2695b84eda865ecc340e2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
|
||||
Date: Fri, 12 Jun 2015 19:01:05 +0200
|
||||
Subject: [PATCH 008/806] irqchip: bcm2835: Add FIQ support
|
||||
Subject: [PATCH] irqchip: bcm2835: Add FIQ support
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From a2416a2926904e3a07bdb10b9cf3c7871e87583c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
|
||||
Date: Fri, 23 Oct 2015 16:26:55 +0200
|
||||
Subject: [PATCH 009/806] irqchip: irq-bcm2835: Add 2836 FIQ support
|
||||
Subject: [PATCH] irqchip: irq-bcm2835: Add 2836 FIQ support
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 61ca6adb1fc93622bb85acc18b6ce4f620c8c690 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Wed, 24 Jun 2015 14:10:44 +0100
|
||||
Subject: [PATCH 011/806] spi-bcm2835: Support pin groups other than 7-11
|
||||
Subject: [PATCH] spi-bcm2835: Support pin groups other than 7-11
|
||||
|
||||
The spi-bcm2835 driver automatically uses GPIO chip-selects due to
|
||||
some unreliability of the native ones. In doing so it chooses the
|
||||
@ -1,21 +0,0 @@
|
||||
From e21d0b86f4a9c2c1f61e183e5dfcc1cf37058ca1 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Tue, 14 Jul 2015 10:26:09 +0100
|
||||
Subject: [PATCH 010/806] spidev: Add "spidev" compatible string to silence
|
||||
warning
|
||||
|
||||
See: https://github.com/raspberrypi/linux/issues/1054
|
||||
---
|
||||
drivers/spi/spidev.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/drivers/spi/spidev.c
|
||||
+++ b/drivers/spi/spidev.c
|
||||
@@ -670,6 +670,7 @@ static const struct of_device_id spidev_
|
||||
{ .compatible = "ge,achc" },
|
||||
{ .compatible = "semtech,sx1301" },
|
||||
{ .compatible = "siliconlabs,si3210" },
|
||||
+ { .compatible = "spidev" },
|
||||
{},
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, spidev_dt_ids);
|
||||
@ -1,7 +1,7 @@
|
||||
From 2610aceda837370048f86b4af27852463c3b5a47 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Fri, 1 Jul 2016 22:09:24 +0100
|
||||
Subject: [PATCH 012/806] spi-bcm2835: Disable forced software CS
|
||||
Subject: [PATCH] spi-bcm2835: Disable forced software CS
|
||||
|
||||
Select software CS in bcm2708_common.dtsi, and disable the automatic
|
||||
conversion in the driver to allow hardware CS to be re-enabled with an
|
||||
@ -1,7 +1,7 @@
|
||||
From 80dc41f5617db0dbe3e17a399603a50b91997c5b Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Tue, 8 Nov 2016 21:35:38 +0000
|
||||
Subject: [PATCH 013/806] spi-bcm2835: Remove unused code
|
||||
Subject: [PATCH] spi-bcm2835: Remove unused code
|
||||
|
||||
---
|
||||
drivers/spi/spi-bcm2835.c | 61 ---------------------------------------
|
||||
@ -1,7 +1,7 @@
|
||||
From 10d11b6b5410b9d31845efd23147fd08477a5151 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
|
||||
Date: Sat, 3 Oct 2015 22:22:55 +0200
|
||||
Subject: [PATCH 014/806] dmaengine: bcm2835: Load driver early and support
|
||||
Subject: [PATCH] dmaengine: bcm2835: Load driver early and support
|
||||
legacy API
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
@ -1,7 +1,7 @@
|
||||
From e00fde59167c31cf376c74b333b58f011b244dfa Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Mon, 25 Jan 2016 17:25:12 +0000
|
||||
Subject: [PATCH 015/806] firmware: Updated mailbox header
|
||||
Subject: [PATCH] firmware: Updated mailbox header
|
||||
|
||||
---
|
||||
include/soc/bcm2835/raspberrypi-firmware.h | 5 +++++
|
||||
@ -1,7 +1,7 @@
|
||||
From 3c8282fa8f1a50bf5ff5b83e83d97b37433bbdd9 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Wed, 15 Jun 2016 16:48:41 +0100
|
||||
Subject: [PATCH 016/806] rtc: Add SPI alias for pcf2123 driver
|
||||
Subject: [PATCH] rtc: Add SPI alias for pcf2123 driver
|
||||
|
||||
Without this alias, Device Tree won't cause the driver
|
||||
to be loaded.
|
||||
@ -1,7 +1,7 @@
|
||||
From 8018869c6c8590018c1cd272475eda0dbf72a7ec Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
|
||||
Date: Fri, 7 Oct 2016 16:50:59 +0200
|
||||
Subject: [PATCH 017/806] watchdog: bcm2835: Support setting reboot partition
|
||||
Subject: [PATCH] watchdog: bcm2835: Support setting reboot partition
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -1,7 +1,7 @@
|
||||
From c296f60b7a5b3c4f82aa0768030ebf64ab64792b Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Tue, 5 Apr 2016 19:40:12 +0100
|
||||
Subject: [PATCH 018/806] reboot: Use power off rather than busy spinning when
|
||||
Subject: [PATCH] reboot: Use power off rather than busy spinning when
|
||||
halt is requested
|
||||
|
||||
---
|
||||
@ -1,7 +1,7 @@
|
||||
From f54671cb165da1c13d33777cd59329a464f9863b Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Wed, 9 Nov 2016 13:02:52 +0000
|
||||
Subject: [PATCH 019/806] bcm: Make RASPBERRYPI_POWER depend on PM
|
||||
Subject: [PATCH] bcm: Make RASPBERRYPI_POWER depend on PM
|
||||
|
||||
---
|
||||
drivers/soc/bcm/Kconfig | 1 +
|
||||
@ -1,7 +1,7 @@
|
||||
From 05caac5f388bf0b821d4a75e480a74ae40fc8478 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Sperl <kernel@martin.sperl.org>
|
||||
Date: Fri, 2 Sep 2016 16:45:27 +0100
|
||||
Subject: [PATCH 020/806] Register the clocks early during the boot process, so
|
||||
Subject: [PATCH] Register the clocks early during the boot process, so
|
||||
that special/critical clocks can get enabled early on in the boot process
|
||||
avoiding the risk of disabling a clock, pll_divider or pll when a claiming
|
||||
driver fails to install propperly - maybe it needs to defer.
|
||||
@ -1,7 +1,7 @@
|
||||
From d5df60f32f3c3b2f7f6d758ac08de6acb9fd947f Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Tue, 6 Dec 2016 17:05:39 +0000
|
||||
Subject: [PATCH 021/806] bcm2835-rng: Avoid initialising if already enabled
|
||||
Subject: [PATCH] bcm2835-rng: Avoid initialising if already enabled
|
||||
|
||||
Avoids the 0x40000 cycles of warmup again if firmware has already used it
|
||||
---
|
||||
@ -1,7 +1,7 @@
|
||||
From 3437db6e19e29ff9b6d2eef9a5ee703f04ca1d41 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Wed, 24 Aug 2016 16:28:44 +0100
|
||||
Subject: [PATCH 022/806] kbuild: Ignore dtco targets when filtering symbols
|
||||
Subject: [PATCH] kbuild: Ignore dtco targets when filtering symbols
|
||||
|
||||
---
|
||||
scripts/Kbuild.include | 2 +-
|
||||
@ -1,7 +1,7 @@
|
||||
From f1f199b682e258674137105f49d033cb81612ab7 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Mon, 13 Feb 2017 17:20:08 +0000
|
||||
Subject: [PATCH 023/806] clk-bcm2835: Mark used PLLs and dividers CRITICAL
|
||||
Subject: [PATCH] clk-bcm2835: Mark used PLLs and dividers CRITICAL
|
||||
|
||||
The VPU configures and relies on several PLLs and dividers. Mark all
|
||||
enabled dividers and their PLLs as CRITICAL to prevent the kernel from
|
||||
@ -1,7 +1,7 @@
|
||||
From 787234827719aa1d44b079969419d91b665a491d Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Mon, 13 Feb 2017 17:20:08 +0000
|
||||
Subject: [PATCH 024/806] clk-bcm2835: Add claim-clocks property
|
||||
Subject: [PATCH] clk-bcm2835: Add claim-clocks property
|
||||
|
||||
The claim-clocks property can be used to prevent PLLs and dividers
|
||||
from being marked as critical. It contains a vector of clock IDs,
|
||||
@ -1,7 +1,7 @@
|
||||
From f8e7e4a65b3f99452db67cfb7e21afc80b8af7f2 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Mon, 6 Mar 2017 09:06:18 +0000
|
||||
Subject: [PATCH 025/806] clk-bcm2835: Read max core clock from firmware
|
||||
Subject: [PATCH] clk-bcm2835: Read max core clock from firmware
|
||||
|
||||
The VPU is responsible for managing the core clock, usually under
|
||||
direction from the bcm2835-cpufreq driver but not via the clk-bcm2835
|
||||
@ -1,7 +1,7 @@
|
||||
From 6272fd1e55945522b156a28c1f605b69ae6e05b7 Mon Sep 17 00:00:00 2001
|
||||
From: Eric Anholt <eric@anholt.net>
|
||||
Date: Mon, 9 May 2016 17:28:18 -0700
|
||||
Subject: [PATCH 026/806] clk: bcm2835: Mark GPIO clocks enabled at boot as
|
||||
Subject: [PATCH] clk: bcm2835: Mark GPIO clocks enabled at boot as
|
||||
critical.
|
||||
|
||||
These divide off of PLLD_PER and are used for the ethernet and wifi
|
||||
@ -1,7 +1,7 @@
|
||||
From fd613a5d5dc7f023d7d983aee9d854fd3a41d669 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Thu, 9 Feb 2017 14:36:44 +0000
|
||||
Subject: [PATCH 027/806] sound: Demote deferral errors to INFO level
|
||||
Subject: [PATCH] sound: Demote deferral errors to INFO level
|
||||
|
||||
At present there is no mechanism to specify driver load order,
|
||||
which can lead to deferrals and repeated retries until successful.
|
||||
@ -1,7 +1,7 @@
|
||||
From 0eb679e4b41dab1e421415917feae44d00e1687f Mon Sep 17 00:00:00 2001
|
||||
From: Claggy3 <stephen.maclagan@hotmail.com>
|
||||
Date: Sat, 11 Feb 2017 14:00:30 +0000
|
||||
Subject: [PATCH 028/806] Update vfpmodule.c
|
||||
Subject: [PATCH] Update vfpmodule.c
|
||||
|
||||
Christopher Alexander Tobias Schulze - May 2, 2015, 11:57 a.m.
|
||||
This patch fixes a problem with VFP state save and restore related
|
||||
@ -1,7 +1,7 @@
|
||||
From b6494e2070983020d56f82d9d0be74d11b001823 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
|
||||
Date: Tue, 1 Nov 2016 15:15:41 +0100
|
||||
Subject: [PATCH 029/806] i2c: bcm2835: Add debug support
|
||||
Subject: [PATCH] i2c: bcm2835: Add debug support
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -1,7 +1,7 @@
|
||||
From a8a5ad555b7168ce90263395dc5f26b99af9bf4e Mon Sep 17 00:00:00 2001
|
||||
From: Eric Anholt <eric@anholt.net>
|
||||
Date: Thu, 18 Dec 2014 16:07:15 -0800
|
||||
Subject: [PATCH 030/806] mm: Remove the PFN busy warning
|
||||
Subject: [PATCH] mm: Remove the PFN busy warning
|
||||
|
||||
See commit dae803e165a11bc88ca8dbc07a11077caf97bbcb -- the warning is
|
||||
expected sometimes when using CMA. However, that commit still spams
|
||||
@ -1,7 +1,7 @@
|
||||
From e4cd2b482eadc7f7901ba6c0df3080f792c4d655 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Thu, 23 Mar 2017 10:06:56 +0000
|
||||
Subject: [PATCH 031/806] ASoC: Add prompt for ICS43432 codec
|
||||
Subject: [PATCH] ASoC: Add prompt for ICS43432 codec
|
||||
|
||||
Without a prompt string, a config setting can't be included in a
|
||||
defconfig. Give CONFIG_SND_SOC_ICS43432 a prompt so that Pi soundcards
|
||||
@ -1,7 +1,7 @@
|
||||
From f1905bc5137db49ef155f835d52d68cb86c4c9a9 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Tue, 23 Jan 2018 16:52:45 +0000
|
||||
Subject: [PATCH 032/806] irqchip: irq-bcm2836: Remove regmap and syscon use
|
||||
Subject: [PATCH] irqchip: irq-bcm2836: Remove regmap and syscon use
|
||||
|
||||
The syscon node defines a register range that duplicates that used by
|
||||
the local_intc node on bcm2836/7. Since irq-bcm2835 and irq-bcm2836 are
|
||||
@ -1,7 +1,7 @@
|
||||
From 645eb2cf211c04496c9f5daca23ab16ce796b0df Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Tue, 17 Oct 2017 15:04:29 +0100
|
||||
Subject: [PATCH 033/806] lan78xx: Enable LEDs and auto-negotiation
|
||||
Subject: [PATCH] lan78xx: Enable LEDs and auto-negotiation
|
||||
|
||||
For applications of the LAN78xx that don't have valid programmed
|
||||
EEPROMs or OTPs, enabling both LEDs and auto-negotiation by default
|
||||
@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/net/usb/lan78xx.c
|
||||
+++ b/drivers/net/usb/lan78xx.c
|
||||
@@ -2475,6 +2475,11 @@ static int lan78xx_reset(struct lan78xx_
|
||||
@@ -2476,6 +2476,11 @@ static int lan78xx_reset(struct lan78xx_
|
||||
int ret = 0;
|
||||
unsigned long timeout;
|
||||
u8 sig;
|
||||
@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
ret = lan78xx_read_reg(dev, HW_CFG, &buf);
|
||||
buf |= HW_CFG_LRST_;
|
||||
@@ -2528,6 +2533,9 @@ static int lan78xx_reset(struct lan78xx_
|
||||
@@ -2529,6 +2534,9 @@ static int lan78xx_reset(struct lan78xx_
|
||||
|
||||
ret = lan78xx_read_reg(dev, HW_CFG, &buf);
|
||||
buf |= HW_CFG_MEF_;
|
||||
@ -36,7 +36,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
ret = lan78xx_write_reg(dev, HW_CFG, buf);
|
||||
|
||||
ret = lan78xx_read_reg(dev, USB_CFG0, &buf);
|
||||
@@ -2583,6 +2591,9 @@ static int lan78xx_reset(struct lan78xx_
|
||||
@@ -2584,6 +2592,9 @@ static int lan78xx_reset(struct lan78xx_
|
||||
buf |= MAC_CR_AUTO_DUPLEX_ | MAC_CR_AUTO_SPEED_;
|
||||
}
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
From c048d8c7b1ae0d56d9ee1bca2be8cc9da5a43bba Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Tue, 23 Feb 2016 17:26:48 +0000
|
||||
Subject: [PATCH 034/806] amba_pl011: Don't use DT aliases for numbering
|
||||
Subject: [PATCH] amba_pl011: Don't use DT aliases for numbering
|
||||
|
||||
The pl011 driver looks for DT aliases of the form "serial<n>",
|
||||
and if found uses <n> as the device ID. This can cause
|
||||
@ -1,7 +1,7 @@
|
||||
From 610cb34f3d7c5fdffb0db82538731714a2df1d13 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Wed, 1 Mar 2017 16:07:39 +0000
|
||||
Subject: [PATCH 035/806] amba_pl011: Round input clock up
|
||||
Subject: [PATCH] amba_pl011: Round input clock up
|
||||
|
||||
The UART clock is initialised to be as close to the requested
|
||||
frequency as possible without exceeding it. Now that there is a
|
||||
@ -1,7 +1,7 @@
|
||||
From 76627df3e5f0513118dac20710766f97fc5ca32d Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Fri, 29 Sep 2017 10:32:19 +0100
|
||||
Subject: [PATCH 036/806] amba_pl011: Insert mb() for correct FIFO handling
|
||||
Subject: [PATCH] amba_pl011: Insert mb() for correct FIFO handling
|
||||
|
||||
The pl011 register accessor functions use the _relaxed versions of the
|
||||
standard readl() and writel() functions, meaning that there are no
|
||||
@ -1,7 +1,7 @@
|
||||
From 17a4507175ca6018ea40e91c9d753bc39f043d99 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Fri, 29 Sep 2017 10:32:19 +0100
|
||||
Subject: [PATCH 037/806] amba_pl011: Add cts-event-workaround DT property
|
||||
Subject: [PATCH] amba_pl011: Add cts-event-workaround DT property
|
||||
|
||||
The BCM2835 PL011 implementation seems to have a bug that can lead to a
|
||||
transmission lockup if CTS changes frequently. A workaround was added to
|
||||
@ -1,7 +1,7 @@
|
||||
From 491316e4e140152fb6c66fa99716450bb13ea49a Mon Sep 17 00:00:00 2001
|
||||
From: notro <notro@tronnes.org>
|
||||
Date: Thu, 10 Jul 2014 13:59:47 +0200
|
||||
Subject: [PATCH 038/806] pinctrl-bcm2835: Set base to 0 give expected gpio
|
||||
Subject: [PATCH] pinctrl-bcm2835: Set base to 0 give expected gpio
|
||||
numbering
|
||||
|
||||
Signed-off-by: Noralf Tronnes <notro@tronnes.org>
|
||||
@ -1,7 +1,7 @@
|
||||
From b37c8c275b90b3730ad99b0e96ae5e36895b26e8 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Sun, 12 May 2013 12:24:19 +0100
|
||||
Subject: [PATCH 039/806] Main bcm2708/bcm2709 linux port
|
||||
Subject: [PATCH] Main bcm2708/bcm2709 linux port
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -1,7 +1,7 @@
|
||||
From e30ea17381a5381b1d764da094a56d5cb0c9d636 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Wed, 1 May 2013 19:46:17 +0100
|
||||
Subject: [PATCH 040/806] Add dwc_otg driver
|
||||
Subject: [PATCH] Add dwc_otg driver
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -1,7 +1,7 @@
|
||||
From 7be9aaefa159fe6e59064e2a90195a63cc88352a Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Wed, 17 Jun 2015 17:06:34 +0100
|
||||
Subject: [PATCH 041/806] bcm2708 framebuffer driver
|
||||
Subject: [PATCH] bcm2708 framebuffer driver
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -1,7 +1,7 @@
|
||||
From f4489532d7a73ded68e1b8a815a71b0fe25e9e21 Mon Sep 17 00:00:00 2001
|
||||
From: Harm Hanemaaijer <fgenfb@yahoo.com>
|
||||
Date: Thu, 20 Jun 2013 20:21:39 +0200
|
||||
Subject: [PATCH 042/806] Speed up console framebuffer imageblit function
|
||||
Subject: [PATCH] Speed up console framebuffer imageblit function
|
||||
|
||||
Especially on platforms with a slower CPU but a relatively high
|
||||
framebuffer fill bandwidth, like current ARM devices, the existing
|
||||
@ -1,7 +1,7 @@
|
||||
From 9405d98a5b9ad11e9be2dc1247de3e26896a00d9 Mon Sep 17 00:00:00 2001
|
||||
From: Florian Meier <florian.meier@koalo.de>
|
||||
Date: Fri, 22 Nov 2013 14:22:53 +0100
|
||||
Subject: [PATCH 043/806] dmaengine: Add support for BCM2708
|
||||
Subject: [PATCH] dmaengine: Add support for BCM2708
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -1,7 +1,7 @@
|
||||
From 74f3233f6ed4298983348b2ba5a500f955703953 Mon Sep 17 00:00:00 2001
|
||||
From: gellert <gellert@raspberrypi.org>
|
||||
Date: Fri, 15 Aug 2014 16:35:06 +0100
|
||||
Subject: [PATCH 044/806] MMC: added alternative MMC driver
|
||||
Subject: [PATCH] MMC: added alternative MMC driver
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -125,7 +125,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
static inline int mmc_blk_part_switch(struct mmc_card *card,
|
||||
unsigned int part_type);
|
||||
|
||||
@@ -2913,6 +2920,7 @@ static int mmc_blk_probe(struct mmc_card
|
||||
@@ -2876,6 +2883,7 @@ static int mmc_blk_probe(struct mmc_card
|
||||
{
|
||||
struct mmc_blk_data *md, *part_md;
|
||||
char cap_str[10];
|
||||
@ -133,7 +133,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
/*
|
||||
* Check that the card supports the command class(es) we need.
|
||||
@@ -2920,7 +2928,16 @@ static int mmc_blk_probe(struct mmc_card
|
||||
@@ -2883,7 +2891,16 @@ static int mmc_blk_probe(struct mmc_card
|
||||
if (!(card->csd.cmdclass & CCC_BLOCK_READ))
|
||||
return -ENODEV;
|
||||
|
||||
@ -151,7 +151,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
card->complete_wq = alloc_workqueue("mmc_complete",
|
||||
WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
|
||||
@@ -2935,9 +2952,14 @@ static int mmc_blk_probe(struct mmc_card
|
||||
@@ -2898,9 +2915,14 @@ static int mmc_blk_probe(struct mmc_card
|
||||
|
||||
string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2,
|
||||
cap_str, sizeof(cap_str));
|
||||
@ -1,7 +1,7 @@
|
||||
From 5fcaebde5b5cd58630ea70bbfe0c62f8229469c5 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Wed, 25 Mar 2015 17:49:47 +0000
|
||||
Subject: [PATCH 045/806] Adding bcm2835-sdhost driver, and an overlay to
|
||||
Subject: [PATCH] Adding bcm2835-sdhost driver, and an overlay to
|
||||
enable it
|
||||
|
||||
BCM2835 has two SD card interfaces. This driver uses the other one.
|
||||
@ -1,7 +1,7 @@
|
||||
From cfdf39199781b73840dfdfb7d1281b398c1334cf Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Fri, 28 Oct 2016 15:36:43 +0100
|
||||
Subject: [PATCH 046/806] vc_mem: Add vc_mem driver for querying firmware
|
||||
Subject: [PATCH] vc_mem: Add vc_mem driver for querying firmware
|
||||
memory addresses
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
@ -1,7 +1,7 @@
|
||||
From 6f27d1904c3f46e00388b1603ceed359387349d2 Mon Sep 17 00:00:00 2001
|
||||
From: Tim Gover <tgover@broadcom.com>
|
||||
Date: Tue, 22 Jul 2014 15:41:04 +0100
|
||||
Subject: [PATCH 047/806] vcsm: VideoCore shared memory service for BCM2835
|
||||
Subject: [PATCH] vcsm: VideoCore shared memory service for BCM2835
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -1,7 +1,7 @@
|
||||
From cff179ff275e8f7849384ad2876c9a3237eeac79 Mon Sep 17 00:00:00 2001
|
||||
From: Luke Wren <luke@raspberrypi.org>
|
||||
Date: Fri, 21 Aug 2015 23:14:48 +0100
|
||||
Subject: [PATCH 048/806] Add /dev/gpiomem device for rootless user GPIO access
|
||||
Subject: [PATCH] Add /dev/gpiomem device for rootless user GPIO access
|
||||
|
||||
Signed-off-by: Luke Wren <luke@raspberrypi.org>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 9c81a1d5224e50e6ec45b8d0c97026a5dc800853 Mon Sep 17 00:00:00 2001
|
||||
From: Luke Wren <wren6991@gmail.com>
|
||||
Date: Sat, 5 Sep 2015 01:14:45 +0100
|
||||
Subject: [PATCH 049/806] Add SMI driver
|
||||
Subject: [PATCH] Add SMI driver
|
||||
|
||||
Signed-off-by: Luke Wren <wren6991@gmail.com>
|
||||
---
|
||||
@ -1,7 +1,7 @@
|
||||
From f7cccb2e66f0187f69a432536f227b32a458f94b Mon Sep 17 00:00:00 2001
|
||||
From: Martin Sperl <kernel@martin.sperl.org>
|
||||
Date: Tue, 26 Apr 2016 14:59:21 +0000
|
||||
Subject: [PATCH 050/806] MISC: bcm2835: smi: use clock manager and fix reload
|
||||
Subject: [PATCH] MISC: bcm2835: smi: use clock manager and fix reload
|
||||
issues
|
||||
|
||||
Use clock manager instead of self-made clockmanager.
|
||||
@ -1,7 +1,7 @@
|
||||
From 06d1fce502f478f7e554c591a68cd42cc861e976 Mon Sep 17 00:00:00 2001
|
||||
From: Luke Wren <wren6991@gmail.com>
|
||||
Date: Sat, 5 Sep 2015 01:16:10 +0100
|
||||
Subject: [PATCH 051/806] Add SMI NAND driver
|
||||
Subject: [PATCH] Add SMI NAND driver
|
||||
|
||||
Signed-off-by: Luke Wren <wren6991@gmail.com>
|
||||
---
|
||||
@ -1,7 +1,7 @@
|
||||
From 0a248af6e18d7f1ad57fffa7f588bc8a5851832e Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Wed, 3 Jul 2013 00:49:20 +0100
|
||||
Subject: [PATCH 052/806] Add cpufreq driver
|
||||
Subject: [PATCH] Add cpufreq driver
|
||||
|
||||
Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From 1f72dfe2738305c57605a8192176117e1641779c Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Wed, 17 Jun 2015 15:44:08 +0100
|
||||
Subject: [PATCH 053/806] Add Chris Boot's i2c driver
|
||||
Subject: [PATCH] Add Chris Boot's i2c driver
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -1,7 +1,7 @@
|
||||
From 6e169c17c0de4503264186d90aa51639924c6e9c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
|
||||
Date: Fri, 26 Jun 2015 14:27:06 +0200
|
||||
Subject: [PATCH 054/806] char: broadcom: Add vcio module
|
||||
Subject: [PATCH] char: broadcom: Add vcio module
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -1,7 +1,7 @@
|
||||
From 6f190ee10a1d3276450e6190bb6d75a03040dcef Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
|
||||
Date: Fri, 26 Jun 2015 14:25:01 +0200
|
||||
Subject: [PATCH 055/806] firmware: bcm2835: Support ARCH_BCM270x
|
||||
Subject: [PATCH] firmware: bcm2835: Support ARCH_BCM270x
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -1,7 +1,7 @@
|
||||
From 28951ab97e67b20640b183364d2396e91e8a6148 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Mon, 11 May 2015 09:00:42 +0100
|
||||
Subject: [PATCH 056/806] scripts: Add mkknlimg and knlinfo scripts from tools
|
||||
Subject: [PATCH] scripts: Add mkknlimg and knlinfo scripts from tools
|
||||
repo
|
||||
|
||||
The Raspberry Pi firmware looks for a trailer on the kernel image to
|
||||
@ -1,7 +1,7 @@
|
||||
From d04105f6d48f160f4b7ab874ed7f878c2b84b466 Mon Sep 17 00:00:00 2001
|
||||
From: notro <notro@tronnes.org>
|
||||
Date: Wed, 9 Jul 2014 14:46:08 +0200
|
||||
Subject: [PATCH 057/806] BCM2708: Add core Device Tree support
|
||||
Subject: [PATCH] BCM2708: Add core Device Tree support
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -1,7 +1,7 @@
|
||||
From 7181db1685aa67e127f80fe9607270d3c87aa3b9 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Fri, 6 Feb 2015 13:50:57 +0000
|
||||
Subject: [PATCH 058/806] BCM270x_DT: Add pwr_led, and the required "input"
|
||||
Subject: [PATCH] BCM270x_DT: Add pwr_led, and the required "input"
|
||||
trigger
|
||||
|
||||
The "input" trigger makes the associated GPIO an input. This is to support
|
||||
@ -1,7 +1,7 @@
|
||||
From 5269119dadfc6874aec51fed4468c73f1b0187a2 Mon Sep 17 00:00:00 2001
|
||||
From: Siarhei Siamashka <siarhei.siamashka@gmail.com>
|
||||
Date: Mon, 17 Jun 2013 13:32:11 +0300
|
||||
Subject: [PATCH 059/806] fbdev: add FBIOCOPYAREA ioctl
|
||||
Subject: [PATCH] fbdev: add FBIOCOPYAREA ioctl
|
||||
|
||||
Based on the patch authored by Ali Gholami Rudi at
|
||||
https://lkml.org/lkml/2009/7/13/153
|
||||
@ -1,7 +1,7 @@
|
||||
From 298368d476283829d222cb974491ac313605ed69 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Wed, 3 Jul 2013 00:54:08 +0100
|
||||
Subject: [PATCH 060/806] Added Device IDs for August DVB-T 205
|
||||
Subject: [PATCH] Added Device IDs for August DVB-T 205
|
||||
|
||||
---
|
||||
drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 4 ++++
|
||||
@ -1,7 +1,7 @@
|
||||
From 8137201823bd2ed1b3951220f29fdc9555c3c6de Mon Sep 17 00:00:00 2001
|
||||
From: Gordon Hollingworth <gordon@raspberrypi.org>
|
||||
Date: Tue, 12 May 2015 14:47:56 +0100
|
||||
Subject: [PATCH 061/806] rpi-ft5406: Add touchscreen driver for pi LCD display
|
||||
Subject: [PATCH] rpi-ft5406: Add touchscreen driver for pi LCD display
|
||||
|
||||
Fix driver detection failure Check that the buffer response is non-zero meaning the touchscreen was detected
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
From e4d81adf1f2c84b229901cddb403d00010524b28 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Mon, 28 Nov 2016 16:50:04 +0000
|
||||
Subject: [PATCH 062/806] Improve __copy_to_user and __copy_from_user
|
||||
Subject: [PATCH] Improve __copy_to_user and __copy_from_user
|
||||
performance
|
||||
|
||||
Provide a __copy_from_user that uses memcpy. On BCM2708, use
|
||||
@ -1,7 +1,7 @@
|
||||
From 84cd61bdf5fe5ecf70ad88e60e07879cbde2d4a6 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <phil@raspberrypi.org>
|
||||
Date: Thu, 25 Jun 2015 12:16:11 +0100
|
||||
Subject: [PATCH 063/806] gpio-poweroff: Allow it to work on Raspberry Pi
|
||||
Subject: [PATCH] gpio-poweroff: Allow it to work on Raspberry Pi
|
||||
|
||||
The Raspberry Pi firmware manages the power-down and reboot
|
||||
process. To do this it installs a pm_power_off handler, causing
|
||||
@ -1,7 +1,7 @@
|
||||
From 0d63b8a00c925eb02093e9ed4866c4a0d9209a00 Mon Sep 17 00:00:00 2001
|
||||
From: Phil Elwell <pelwell@users.noreply.github.com>
|
||||
Date: Tue, 14 Jul 2015 14:32:47 +0100
|
||||
Subject: [PATCH 064/806] mfd: Add Raspberry Pi Sense HAT core driver
|
||||
Subject: [PATCH] mfd: Add Raspberry Pi Sense HAT core driver
|
||||
|
||||
---
|
||||
drivers/input/joystick/Kconfig | 8 +
|
||||
@ -1,7 +1,7 @@
|
||||
From 5fd7bb26ef791a7da1c0573b980ab4fe6b9c2641 Mon Sep 17 00:00:00 2001
|
||||
From: Matthias Reichl <hias@horus.com>
|
||||
Date: Thu, 22 Feb 2018 11:55:06 +0100
|
||||
Subject: [PATCH 065/806] ASoC: pcm512x: implement set_tdm_slot interface
|
||||
Subject: [PATCH] ASoC: pcm512x: implement set_tdm_slot interface
|
||||
|
||||
PCM512x can accept data padded with additional BCLK cycles
|
||||
but the driver currently lacks an interface to configure this.
|
||||
@ -1,7 +1,7 @@
|
||||
From 13ddc845b271d7cc79bcbdd288f95c03ea927b89 Mon Sep 17 00:00:00 2001
|
||||
From: Florian Meier <florian.meier@koalo.de>
|
||||
Date: Mon, 25 Jan 2016 15:48:59 +0000
|
||||
Subject: [PATCH 066/806] ASoC: Add support for Rpi-DAC
|
||||
Subject: [PATCH] ASoC: Add support for Rpi-DAC
|
||||
|
||||
---
|
||||
sound/soc/codecs/Kconfig | 5 +++
|
||||
@ -1,7 +1,7 @@
|
||||
From 76c252645ad542bd35ce52230635f36e3c0f730d Mon Sep 17 00:00:00 2001
|
||||
From: Gordon Garrity <gordon@iqaudio.com>
|
||||
Date: Sat, 8 Mar 2014 16:56:57 +0000
|
||||
Subject: [PATCH 067/806] Add IQaudIO Sound Card support for Raspberry Pi
|
||||
Subject: [PATCH] Add IQaudIO Sound Card support for Raspberry Pi
|
||||
|
||||
Set a limit of 0dB on Digital Volume Control
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user