openwrt安裝依賴庫


在openwrt-cgminer\allcode\openwrt\feeds\packages\utils路徑下增加eudev文件夾

 

 

 

 eudev目錄下有一些patches、配置文件以及makefile文件

 

 

 Makefile文件中會說明安裝包的一些信息:

#
# Copyright (C) 2006-2008 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:=eudev
PKG_VERSION:=3.2
PKG_RELEASE:=1

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://dev.gentoo.org/~blueness/eudev/
PKG_MD5SUM:=7e42d9b9ed8162021665139520676367
PKG_LICENSE:=GPL-2.0

include $(INCLUDE_DIR)/package.mk

PKG_BUILD_DEPENDS:=gperf/host
PKG_FIXUP:=autoreconf
PKG_INSTALL=1

define Package/libudev
  SECTION:=libs
  CATEGORY:=Libraries
  TITLE:=Dynamic device management subsystem
  URL:=https://wiki.gentoo.org/wiki/Project:Eudev
  MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
endef

define Package/eudev
  SECTION:=base
  CATEGORY:=Base system
  TITLE:=Dynamic device management subsystem
  URL:=https://wiki.gentoo.org/wiki/Project:Eudev
  MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
  MENU:=1
  DEPENDS:=+EUDEV_EXTRA_blkid:libblkid +EUDEV_EXTRA_kmod:libkmod +librt +libudev
  PROVIDES:=udev
  CONFLICTS:=udev
endef

define Package/eudev/description
udev allows Linux users to have a dynamic /dev directory and it
provides the ability to have persistent device names.
eudev is a fork of systemd-udev with the goal of obtaining better
compatibility with existing software such as OpenRC and Upstart, older
kernels, various toolchains and anything else required by users and
various distributions.
endef

define Package/eudev/conffiles
/etc/udev/udev.conf
endef

define Package/eudev/config
	source "$(SOURCE)/Config.in"
endef

CONFIGURE_ARGS += \
	--prefix=/usr --exec-prefix= --sysconfdir=/etc \
	--libexecdir=/lib/udev --sbindir=/sbin \
	--disable-hwdb --disable-introspection --disable-manpages \
	--disable-selinux \
	$(if $(CONFIG_EUDEV_EXTRA_blkid),--enable-blkid,--disable-blkid) \
	$(if $(CONFIG_EUDEV_EXTRA_kmod),--enable-kmod,--disable-kmod)


eudev-extra-lib-bin-$(CONFIG_EUDEV_EXTRA_ata_id) += ata_id

eudev-extra-rules-$(CONFIG_EUDEV_EXTRA_blkid) += 60-persistent-storage.rules

eudev-extra-lib-bin-$(CONFIG_EUDEV_EXTRA_cdrom_id) += cdrom_id
eudev-extra-rules-$(CONFIG_EUDEV_EXTRA_cdrom_id) += 60-cdrom_id.rules

eudev-extra-lib-bin-$(CONFIG_EUDEV_EXTRA_collect) += collect

eudev-extra-rules-$(CONFIG_EUDEV_EXTRA_input_id) += 60-persistent-input.rules

eudev-extra-lib-bin-$(CONFIG_EUDEV_EXTRA_mtd_probe) += mtd_probe
eudev-extra-rules-$(CONFIG_EUDEV_EXTRA_mtd_probe) += 75-probe_mtd.rules

eudev-extra-lib-bin-$(CONFIG_EUDEV_EXTRA_scsi_id) += scsi_id

eudev-extra-lib-bin-$(CONFIG_EUDEV_EXTRA_v4l_id) += v4l_id
eudev-extra-rules-$(CONFIG_EUDEV_EXTRA_v4l_id) += 60-persistent-v4l.rules

define Build/InstallDev
	$(INSTALL_DIR) $(1)/usr/include
	$(CP) $(PKG_INSTALL_DIR)/usr/include/libudev.h $(1)/usr/include
	$(INSTALL_DIR) $(1)/usr/share/pkgconfig
	$(CP) $(PKG_INSTALL_DIR)/usr/share/pkgconfig/udev.pc $(1)/usr/share/pkgconfig
	$(INSTALL_DIR) $(1)/lib
	$(CP) $(PKG_INSTALL_DIR)/lib/libudev.so* $(1)/lib
	$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
	$(CP) $(PKG_INSTALL_DIR)/lib/pkgconfig/libudev.pc $(1)/usr/lib/pkgconfig
endef

define Package/libudev/install
	$(INSTALL_DIR) $(1)/lib
	$(CP) $(PKG_INSTALL_DIR)/lib/libudev.so* $(1)/lib
endef

define Package/eudev/install
	$(INSTALL_DIR) $(1)/etc/udev/rules.d
	$(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/udev/udev.conf $(1)/etc/udev

	$(INSTALL_DIR) $(1)/sbin
	$(INSTALL_BIN) \
		$(PKG_INSTALL_DIR)/usr/bin/udevadm \
		$(PKG_INSTALL_DIR)/sbin/udevd \
		$(1)/sbin

	$(INSTALL_DIR) $(1)/lib/udev/rules.d
	$(INSTALL_DATA) \
		$(addprefix $(PKG_INSTALL_DIR)/lib/udev/rules.d/, \
			$(eudev-extra-rules-y)) \
		$(addprefix $(PKG_INSTALL_DIR)/lib/udev/rules.d/, \
			50-udev-default.rules \
			60-block.rules \
			60-drm.rules \
			60-evdev.rules \
			60-persistent-alsa.rules \
			60-persistent-storage-tape.rules \
			60-serial.rules \
			64-btrfs.rules \
			70-mouse.rules \
			75-net-description.rules \
			78-sound-card.rules \
			80-net-name-slot.rules) \
		$(1)/lib/udev/rules.d

ifneq ($(eudev-extra-lib-bin-y),)
		$(INSTALL_BIN) \
			$(addprefix $(PKG_INSTALL_DIR)/lib/udev/, \
				$(eudev-extra-lib-bin-y)) \
			$(1)/lib/udev/
endif
endef

$(eval $(call BuildPackage,eudev))
$(eval $(call BuildPackage,libudev))  

具體makefile文件編寫的格式可參考:

https://www.freesion.com/article/3323420807/

這個eudev文件是我從其他源碼中拷貝的。

然后執行下面兩條命令:

./script/feeds update packages
./script/feeds install -a -p packages  

在執行第二條命令時就可以看到打印信息顯示eudev安裝成功。

這個時候make menuconfig進去libraries項可以看到libudev的配置。

在.packageinfo文件中也可以看到這個庫的具體信息:

 

 從上述信息可以看出安裝包名字為eudev-3.2.tar.gz。此時我會拷貝一個eudev包到dl文件夾中去,在編譯時就會直接使用,不用編譯時才下,縮短編譯時間。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM