Hexo便携套装制作
背景使用环境:Win10-X64可以放在U盘,无论是在家里还是公司,或者其他Win10的电脑上,能很方便地进行写作后续可能会支持Ubuntu
软件准备:
Nodejs
Git
portable VSCode
都下载Portable版本
配置环境新建一个主目录, 如PortableBlog目录结构
+ PortableBlog //主目录
Hexo //Hexo主文件夹
blog //博客文件夹
node_modules //
Tools //需要加到环境变量里的文件
Git //用来给VS Code,Hexo提供git
NodeJS //Hexo需要
VSCode //编辑器
安装配置Hexo在 PortableBlog\Hexo 文件夹里初始化 Hexo (如果没有安装 Hexo 组件,安装到这个文件夹里)或者将自己已经有的博客文件拷贝进来也行安装初始化要使用局部安装:
npm install he ...
Hexo相关
安装安装准备
Node.js (Node.js 版本需不低于 10.13,建议使用 Node.js 12.0 及以上版本)
Git
安装Hexo
全局安装: npm install -g hexo-cli
局部安装: npm install hexo
安装以后,可以使用以下两种方式执行 Hexo:
npx hexo <command>
将 Hexo 所在的目录下的 node_modules 添加到环境变量之中即可直接使用hexo <command>: echo 'PATH="$PATH:./node_modules/.bin"' >> ~/.profile
建站安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件。
$ hexo init <folder>
$ cd <folder>
$ npm install
新建完成后,指定文件夹的目录如下:
.
├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| ...
Android监听UVC插拔
背景
Platform: RK3399
OS: Android7.1.2
Kernel: v4.4.103
之前调试UVC,需监听UVC的插拔状态
处理以下方式已在Android7.1.2上验证
/*获取USB设备*/
private UsbDevice getUsbCameraDevice(Context context) {
UsbManager usbManager = (UsbManager)context.getSystemService(Context.USB_SERVICE);
for(UsbDevice usbDevice : usbManager.getDeviceList().values()) {
Log.i("camera","\n"+usbDevice.toString());
if (isUsbCamera(usbDevice)) {
return usbDevice;
}
}
return null; ...
Android进recovery模式后自动重启
背景
Platform: RK3399
OS: Android7.1.2
Kernel: v4.4.103
产品偶发会进recovery模式,比如升级失败等,进recovery模式后,需要根据提示人为进行操作,但该产品应用场景无人值守,且维护比较麻烦(你懂的那种地方~),所以需要进recovery模式后需要自动重启。
修改
修改等待用户选择的超时时间10s:bootable/recovery/ui.cpp //zdd fix,20200915
//#define UI_WAIT_KEY_TIMEOUT_SEC 120
#define UI_WAIT_KEY_TIMEOUT_SEC 10
```
2. 将`get_menu_selection`代码中等待选项超时后,默认选择项改为0,直接返回
`bootable/recovery/recovery.cpp`
```cpp
if (key == -1) { // ui_wait_key() timed out
if (ui->Wa ...
Android系统设置和状态栏去掉WIFI等部分选项
背景
Platform: RK3399
OS: Android7.1.2
Kernel: v4.4.103
某些特殊需求,需要去掉设置里面关于WIFI、BT等无线的设置
系统设置packages/apps/Settings/src/com\android/settings/SettingsActivity.java
setTileEnabled(new ComponentName(packageName, WifiSettingsActivity.class.getName()),
pm.hasSystemFeature(PackageManager.FEATURE_WIFI) &&false, isAdmin, pm);
setTileEnabled(new ComponentName(packageName,
Settings.BluetoothSettingsActivity.class.getName()),
pm.hasSystemFeature(PackageManager.FEATURE_BLUETOO ...
制作ubuntu文件系统
制作ubuntu文件系统:https://community.nxp.com/docs/DOC-330147
ubuntu16.04Installing with debootstrap:
$ mkdir ubuntu_rootfs
$ target=ubuntu_rootfs
$ distro=xenial
$ sudo debootstrap --arch=armhf --foreign --include=ubuntu-keyring,apt-transport-https,ca-certificates,openssl $distro "$target" http://ports.ubuntu.com
$ sudo cp /usr/bin/qemu-arm-static $target/usr/bin
$ sudo cp /etc/resolv.conf $target/etc
$ sudo chroot $target
# distro=xenial
# export LC_ALL=C LANGUAGE=C LANG=C
# /debootstra ...
源码管理与协作
SVNGit相关命令操作
配置git config --global user.email "xxxx"
git config --global user.name "xxxx"
# 配置密钥
ssh-keygen -o -t rsa -b 4096 -C "xxxx@foxmail.com"
```
+ 操作
```shell
cd xxx
git init
git add .
git commit -m 'first commit'
git remote add origin http://xxxx
git push -u origin master
#会提示输入用户名密码或使用ssh方式,添加SSH-Key,免密登陆
其他#不同操作系统 回车换行处理
git config --global core.autocrlf false
忽略某些文件.gitignore文件
bundlefirefly更新是用bundle更新原厂的代码,有的时候发的patch,有的是发的bundle当你在没有合适的网络或者可共享仓库的情况下,git bundle 很适合用于共享或者网络类型的操作 ...
第三方模块编译及使用
背景这是以前编译及使用模块的一些记录,现在编译基本都是使用Buildroot,能很好的解决依赖问题。
zlib & madplay报错:audio: /dev/dsp: No such file or directory: madplay是基于以前的oss建构的
<*>OSS Mixer API
<*>OSS PCM (digital audio) API
编译:
export CC=arm-linux-gcc
./configure --prefix=/home/xxx/dd/madpalyer/out
#libid3tag libmad madplay:
./configure --host=arm-linux --prefix=/home/xxx/dd/madpalyer/out --disable-debugging --disable-shared --enable-static CPPFLAGS=-I/home/xxx/dd/madpalyer/out/include LDFLAGS=-L/home/xxx/dd/madpalyer ...
CIFS与SMB与samba
概念
SMB: Server Message Block即服务(器)消息块,是 IBM 公司在 80 年代中期发明的一种文件共享协议
CIFS: Common Internet File System即通用因特网文件系统。CIFS 是 SMB 协议的衍生品,即 CIFS 是 SMB 协议的一种特殊实现,由微软开发
Samba是一组不同功能程序组成的应用集合,它能让 Linux 服务器实现文件服务器、身份授权和认证、名称解析和打印服务等功能。与 CIFS 类似,Samba 也是 SMB 协议的实现,它允许 Windows 客户访问 Linux 系统上的目录、打印机和文件(就像访问 Windows 服务器时一样)。
NFS: Network File System即网络文件系统。由 Sun 公司面向 SMB 相同的功能(通过本地网络访问文件系统)而开发,但它与 CIFS/SMB 完全不兼容。NFS 用于 Linux 系统和客户端之间的数据共享。而 Windows 和 Linux 客户端混合使用时,就应该使用 Samba
问题
权限问题当挂载CIFS文件系统(如samba)时,挂载目录的o ...
Flutter状态管理之StreamBuild
如果使用setState方法去刷新,会重新build一遍,会比较耗资源,可能会卡顿。局部刷新效果,主要的状态管理有Provider、Bloc、StreamBuild等。小项目使用StreamBuild就够了。
步骤1:初始化一个StreamController<可以是 int string… 一般是model> final StreamController<String> _streamController = StreamController<String>();
步骤2.dispose()函数中关流,不关流会消耗资源,同时会引起内存泄漏 _streamController.close();
步骤3.使用StreamBuilder构造器 StreamBuilder<String>( // 监听Stream,每次值改变的时候,更新Text中的内容
stream: _streamController.stream,
initialData: _str,
builder: (BuildContext context, A ...
Linux主机间拷贝文件
需求需在2台或多台Linux主机之间拷贝数据文件
方案挂NFS需安装配置NFS
nc+tar适合大量小文件拷贝,无需安装软件包,nc+tar默认Ubuntu都自带 接受方 nc -l 7788 |tar -C file_path -zxvf - 发送方 tar -zcvf - file |nc 192.168.5.254 7788
rsync无需安装软件包,默认Ubuntu都自带
scap无需安装软件包,默认Ubuntu都自带
从本地复制到远程:scp local_file remote_username@remote_ip:remote_folder/remote_file或scp local_file remote_ip:remote_folder/file
从远程复制到本地:scp remote_username@remote_ip:remote_folder/remote_file local_file
报错:scp: not a regular file复制的为文件夹,需加参数 -r
RAID初遇
背景部门最近新进了一台服务器,来做内部服务器用。配置挺高的,至强处理器,64G内存,4块硬盘带RAID。这是第一次接触RAID,以前只是听说过。
概念以下来自百度百科:
RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列。简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。组成磁盘阵列的不同方式称为RAID级别(RAID Levels)。RAID技术经过不断的发展,现在已拥有了从 RAID 0 到 7 八种基本的RAID 级别。不同RAID 级别代表着不同的存储性能、数据安全性和存储成本。RAID级别的选择有三个主要因素:可用性(数据冗余)、性能和成本。
方案我使用的是RAID5,新服务器的硬盘阵列组成为:1块SSD+3块HDD,SSD装系统,3块HDD组成RAID来做数据存储
参考:服务器较稳妥的磁盘阵列方案:RAID5+热备盘
使用lenovo服务器ThinkSystem配置RAID参考:https://blo ...