修改默认主题配置文件
/feeds/luci/modules/luci-base/root/etc/config/luci
config core main
option lang auto
option mediaurlbase /luci-static/rui
option resourcebase /luci-static/resources
打开并修改每个主题文件下面的30_luci-theme-*文件,类似下面一样,然后注释掉其中 set luci.main.mediaurlbase 一行,只保留那个想要默认的主题文件不注释。
一个是数据库连接丢失,由于PHP7 放弃了使用 mysql 方法连接数据库,改用 mysqli 或 pdo 方法,所以需要修改 config.inc.php
把
$db = new Typecho_Db('Mysql', 'typecho_');
修改为
$db = new Typecho_Db('Pdo_Mysql', 'typecho_');
另一个是 Typecho 升级1.2版后,每次提交文章时,数据库的 typecho_fields
表内会自动多增加 str 值,解决办法是修改 custom-fields.php,注释如下部分:
<td><?php // $label->render(); ?></td>
<td colspan="3"><?php // $input->render(); ?></td>
举个栗子
cd package
mkdir hello
mkdir src
cd src
vim hello.c
include <stdio.h>
int main(void){
printf("nnhello world !nn");
return 0;
}
vim Makefile
all:
$(CC) $(CFLAGS) hello.c -o hello
clean:
rm *.o hello
cd ..
cd hello
vim Makefile
Makefile for the Linux Wireless network device drivers.
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=hello
PKG_VERSION:=1
PKG_RELEASE:=1.0
PKG_SOURCE:=
PKG_SOURCE_URL:=https://nonni.cn
PKG_MD5SUM:=
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=utils
CATEGORY:=hello
TITLE:=$(PKG_NAME)
MAINTAINER:=Nonni
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
$(TARGET_CONFIGURE_OPTS) \
CFLAGS="$(TARGET_CFLAGS)" \
CPPFLAGS="$(TARGET_CPPFLAGS)" \
LDFLAGS="$(TARGET_LDFLAGS)"
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/lib/ko
$(CP) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/lib/ko/
endef
$(eval $(call BuildPackage,$(PKG_NAME)))
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk
rules.mk 一般在文件的开头,定义各种OpenWrt全局变量,让所有的makefile包含和使用,eg:INSTALL_BIN、INSTALL_DIR。
kernel.mk 软件包为内核模块时不可缺少
package.mk 一般在软件包的基本信息PKG_NAME PKG_SOURCE等完成再引入,用于编译一般的软件包
模版主要是编译包的定义,程序的编译包以 Package/ 开头,然后接着软件名,在 Package 定义中的软件名可以与软件包不一样,还可以多个定义:
PKG_NAME 包名称,在 menuconfig 和 ipk 显示
PKG_VERSION 版本号
PKG_RELEASE Makefile 的版本号
PKG_SOURCE 源码文件名。
PKG_SOURCE_URL 源代码下载位置,@SF表示sourceforge网站,@GNU表示GNU网站,还有@GNOME、@KERNEL。获取方式可以为:Git、svn、cvs、hg、bzr等。有关下载方法可参考 $(INCLUDE_DIR)/download.mk 和 $(SCRIPT_DIR)/download.pl
PKG_MD5SUM 源代码文件效验码
PKG_CAT 源码的解压方法,包括 zcat,bzcat,unzip 等
PKG_BUILD_DIR 软件包编译目录,父目录为 $(BUILD_DIR),不指定默认为 $(BUILD_DIR)/$( PKG_NAME)$( PKG_VERSION)
其它一些源代码的定义:
PKG_SOURCE_SUBDIR
PKG_SOURCE_PROTO
PKG_SOURCE_MIRROR
PKG_MIRROR_MD5SUM
PKG_SOURCE_VERSION
可以在 include/package.mk 中查找定义
编译
用户软件包使用 Package
内核模块软件包使用 KernelPackage
Package/$(PKG_NAME) 将会在 menuconfig 菜单中显示软件包的基本信息
define Package/$(PKG_NAME)
SECTION:=utils
CATEGORY:=hello
TITLE:=$(PKG_NAME)
MAINTAINER:=Nonni
endef
SECTION 包的类型,预留
CATEGORY 分类,在 menuconfig 的菜单中显示
TITLE 软件包的简短描述
DESCRIPTION 软件包的详细描述
URL 软件包的下载位置
MAINTAINER 维护者
DEPENDS 与其他软件的依赖.如果存在多个依赖,则每个依赖需用空格分开,依赖前使用+号表示默认显示(即依赖对象没有选中时也会显示这个软件包),依赖前使用@,则默认为不显示(即当依赖对象选中后才显示当前这个软件包)
Build/Prepare:
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)
endef
patches 补丁文件
files 配置文件
src 源文件
Build/Compile
使用默认的编译方法:Build/Compile/Default
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
$(TARGET_CONFIGURE_OPTS) \
CFLAGS="$(TARGET_CFLAGS)" \
CPPFLAGS="$(TARGET_CPPFLAGS)" \
LDFLAGS="$(TARGET_LDFLAGS)"
endef
Package/$(PKG_NAME)/install
软件包的安装包括一系列拷贝编译好的文件到指定位置,调用时会带一些参数,$(1)表示嵌入式系统的镜像目录
一般可以采用下面的方法:
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/lib/ko
$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/lib/ko/
endef
INSTALL_DIR:=install -d -m0755 创建所属用户可读写可执行,其他用户可执行的目录
INSTALL_BIN:=install -m0755 将编译好的文件拷贝到镜像文件目录,并具有可执行属性
Package/$(PKG_NAME)/conffiles
本包安装配置文件,一行一个,如果文件结尾使用/,则表示为目录。用于备份配置文件说明,在 sysupgrade 命令执行时将会用到。
Package/$(PKG_NAME)/description
软件包的详细描述,会取代 Package/$(PKG_NAME) 下的 DESCRIPTION。
Package/$(PKG_NAME)/preinst
软件包安装前处理方法,使用脚本语言定义第一行需要下面的格式:
!/bin/sh
Package/$(PKG_NAME)/postinst
软件包安装后处理方法,使用脚本语言
Package/$(PKG_NAME)/prerm
软件包删除前处理方法,使用脚本语言
Package/$(PKG_NAME)/postrm
软件包删除后处理方法,使用脚本语言
安装黑裙子7.1
基础引导
使用 RedPill 的编译引导
https://github.com/RedPill-TTG
文件列表
DS918_7.1.0-42661.img DS918 引导镜像
DSM_DS918+_42661.pat DS918 DS系统镜像
DS918_7.1.0-42661.vmdk DS918 ESXi镜像
DS918_7.1.0-42661-flat.vmdk DS918 ESXi镜像
DS3622xs_7.1.0-42661.img DS3622 引导镜像
DSM_DS3622xs+_42661.pat DS3622 DS系统镜像
DS3622xs_7.1.0-42661.vmdk DS3622 ESXi镜像
DS3622xs_7.1.0-42661-flat.vmdk DS3622 ESXi镜像
synology-assistant-7.0.3-50049.exe 群晖助手
USBWriter.exe 镜像写入U盘工具
芯片无忧.exe 检查U盘的 PID 和 VID 工具
光碟通.exe 镜像工具
机型介绍
DS918+ 是4盘位,内置家用简化套件,如果是支持的CPU,可以自行配置实现一些硬解码功能。
DS3622xs+ 是12盘位,内置商用专业套件。
食用方法
1.制作引导盘
A.如果使用 ESXi 虚拟机引导
直接配置 Linux 虚拟机,虚拟网卡使用e1000,引导项选择将 UEFI 改成 BIOS,增加的虚拟硬盘需要使用SATA控制器。
上传 DS918 或者 DS3622 的两个ESXi镜像文件到 ESXi,添加为现有磁盘,保存配置。
B.如果使用U盘物理机引导
使用芯片无忧检查自己U盘的 PID 和 VID (尽量使用质量好的大品牌U盘)。
然后使用光碟通自行修改 img 镜像内的 grub 配置文件中的 PID 和 VID 为自己的U盘的 PID 和 VID,然后用 USBWriter.exe 将修改好的 img 镜像写入U盘。
2.安装DS系统
使用制作好的引导镜像引导NAS主机启动。
在路由器上找到主机分配的IP地址,浏览器上访问主机IP地址,或者使用群晖助手 synology-assistant 搜索局域网。
开始配置,导入DS系统镜像,完成安装。
看具体磁盘性能,大概要30分钟的样子。
Enjoy!
by Nonni
20220505
附引导镜像懒人包下载
和彩云链接: https://caiyun.139.com/m/i?0m5CMPzQ5mOju
提取码: P2UX
创建仓库,生成 Packages.gz
git clone git://git.yoctoproject.org/opkg-utils
cd opkg-utils
./opkg-make-index /home/xxx/repo/packages/ > /homexxx/repo/packages/Packages
cd /home/xxx/repo/packages
gzip Packages
SSH 连接路由器后执行命令
查看 OPKG 源配置:
cat /etc/opkg.conf
编辑源:
vim /etc/opkg.conf
更新包:
opkg update
查看已安装包:
opkg list-installed
查询目标包:
opkg list | grep luci-theme-nonnicolor
安装目标包:
opkg install luci-theme-nonnicolor
删除目标包:
opkg remove
也可使用我的源地址
x86:
src/gz openwrt_core https://nonnix.cn/repo/all/targets/x86/64/packages
src/gz openwrt_base https://nonnix.cn/repo/all/packages/x86_64/base
src/gz openwrt_luci https://nonnix.cn/repo/all/packages/x86_64/luci
src/gz openwrt_packages https://nonnix.cn/repo/all/packages/x86_64/packages
src/gz openwrt_routing https://nonnix.cn/repo/all/packages/x86_64/routing
src/gz openwrt_telephony https://nonnix.cn/repo/all/packages/x86_64/telephony
MT7621A:
src/gz openwrt_core https://nonnix.cn/repo/all/targets/ramips/mt7621/packages
src/gz openwrt_base https://nonnix.cn/repo/all/packages/mipsel_24kc/base
src/gz openwrt_luci https://nonnix.cn/repo/all/packages/mipsel_24kc/luci
src/gz openwrt_packages https://nonnix.cn/repo/all/packages/mipsel_24kc/packages
src/gz openwrt_routing https://nonnix.cn/repo/all/packages/mipsel_24kc/routing
src/gz openwrt_telephony https://nonnix.cn/repo/all/packages/mipsel_24kc/telephony
经常会有依赖错误问题,可以尝试把各种包都放到opkg软件源里,方便安装依赖
在 /etc/opkg.d 里的每个文件都加入一行指令:
find /etc/opkg.d/ -name '*.conf' | xargs sed -i '2isrc/gz openwrtio https://nonnix.com/repo/packages/x86_64/packages'