優化Android搜尋藍牙裝置方式(API 21)

Android 6.0(API 21)以後, 搜尋藍芽裝置的方式改成:

BluetoothAdapter.startScan (ScanCallback callback)

這種方式我一直用了很久, 也沒遇到問題.

直到有一個需求是隨時監控廣播封包,

這種寫法就會遇到問題, 無法快速取得周遭藍牙廣播資料, 因此需要修改寫法, 把能下的藥都下下去(但耗電):

final List<ScanFilter> filters = new ArrayList<>();
ScanFilter filter = new ScanFilter.Builder().build();
filters.add(filter);

final ScanSettings scanSettings =
        new ScanSettings.Builder() .setNumOfMatches(ScanSettings.MATCH_NUM_MAX_ADVERTISEMENT).setMatchMode(ScanSettings.MATCH_MODE_STICKY).setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES).setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY).build();


BluetoothAdapter.getBluetoothLeScanner().startScan(filters,scanSettings,mLeScanCallback);

CentOS 7.6(1810)更新遇到polkit的錯誤

CentOS 7安裝完畢, 通常會再安裝EPEL, 然後再一起更新

yum install epel-release

但更新的時候遇到polkit這個錯誤

http://ftp.tc.edu.tw/Linux/CentOS/7.6.1810/updates/x86_64/Packages/polkit-0.112-18.el7_6.1.x86_64.rpm: [Errno 14] HTTP Error 416 - Requested Range Not SatisfiableA 
Trying other mirror.

我想說直接下載rpm安裝,但是遇到衝突

從 polkit-0.112-18.el7_6.1.x86_64 安裝的檔案 /usr/bin/pkaction 與來自套件 polkit-0.112-18.el7.x86_64 的檔案產生衝突

原來已經有安裝了, 所以到最後解法就是更新的時候, 要避開polkit這個套件

yum update --exclude=polkit

就能正確更新了

mysql(mariadb)新增資料庫(UTF-8)與使用者權限

每次都會忘記, 而且之前一點都不在意把使用者與root權限分開,但資安還是要顧著.

MariaDB>CREATE DATABASE 資料庫名稱 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

新增使用者,密碼與權限

MariaDB> create database 資料庫名稱;
MariaDB> create user 使用者帳號@localhost identified by '使用者登入密碼';
MariaDB> grant all privileges on 資料庫名稱.* to 使用者帳號@localhost;
MariaDB> flush privileges;
MariaDB> quit

pve的備份檔案vma

pve 內建的備份檔案是vma格式, 加上lzo壓縮或是gzip壓縮 .
因此要了解裡面有甚麼檔案, 需先解壓縮後, 再使用vma這指令解開裡面的檔案.

解開vma

 vma extract xxx.vma  "目錄名稱"

解開檔案之後,就可以進行編輯,編輯之後, 再做成vma檔案, 其中比較特別的是若檔案名稱是 disk-drive-sata0 , 做成vma的時候要指定檔名為 drive-sata0 , 否則做出來的檔案, 名稱會不一樣, 指令如下:

vma create xxx.vma -c 目錄名稱/qemu-server.conf  drive-sata0=目錄名稱/disk-drive-sata0.raw

若要還原,可以執行qmrestore (107是主機代號,可改):

 qmrestore xxx.vma 107

解開vma檔案覺得太大時,可以縮小:

qemu-img convert -O qcow2 xxx.raw new_xxx.raw
或
qemu-img convert -O qcow2 -c  xxx.raw new_xxx.raw

安裝Proxmox VE 5.3 注意事項

這陣子積極將vmware esx 轉成 pve 5.3 , 以後遇到安裝注意事項就寫在這裡.安裝

額外安裝套件

1. 查看iscsi設備

  apt-get install  lsscsi

可使用 lsscsi 查看目前iscsi 設備

2. 安裝multipath-tools

 apt-get install multipath-tools

這方式原本是想要讓系統使用iscsi MPIO 的功能,能夠自動切換線路,但似乎設定上很麻煩, 不過還是先安裝起來.
因為這作法可以解決pve若有兩個不同網段網卡連接到Nas的兩個網卡, 造成pve出現兩個相同device的錯誤,

WARNING: PV Lk4DU4-4HO7-of10-g9cR-tsK4-f9Ka-s2FqfC on /dev/sdd was already found on /dev/sdc.

安裝 multipath-tools 之前 , 執行 pvscan 會出現

PV /dev/sdd    VG LVM-FreeNasVM   lvm2

但是安裝之後, 會出現

PV /dev/mapper/36589cfc000000e54a909f483d8485fb6   VG LVM-FreeNasVM

掛載NFS可考慮使用soft的方式掛載,以免因斷線或是線路不穩造成災難:

編輯 /etc/pve/storage.cfg , 在NFS區塊找出 options vers=3 最後面加上 soft 參數, 變成 options vers=3,soft
# 2022/07/27 後來升級改用 nfs vers=4.2 似乎就不用加上soft選項了

列出/刪除cluster的node

1. 列出 pvecm nodes 
2. 刪除 pvecm delnode "Node Name" , 最後記得刪除相關檔案(也可以備份) rm /etc/pve/nodes/"Node Name"

ubuntu下使用snap安裝libreoffice

snap是ubuntu力推的一個套件管理架構, 應該是要跟傳統作業系統套件區隔開來, 以便達到不受到作業系統影響的目標吧(咦?這不就跟container很像嗎?)

先安裝 snap

sudo apt install snapd

再使用snap安裝libreoffice

sudo snap install --channel=beta libreoffice

安裝libreoffice完畢,可手動執行

/snap/bin/libreoffice

安裝libreoffice完畢,請重開機

ubuntu 如何強制刪除程式

先前virtualbox 6.0 一出來就急著強制安裝到elementary os中, 導致後續無法升級, 但也刪除不了virtualbox, 

最後實在受不了, 我的筆電常常當機, 想說還是要強制刪除virtualbox才行,以下是刪除的方式:

sudo dpkg --remove --force-remove-reinstreq virtualbox-6.0 

proxmox ve如何刪修iscsi target連線(使用指令)

查看目前scsi連線,有兩個方法
1.
  apt install lsscsi
  lsscsi  

2. 查看目前scsi連線 
  iscsiadm -m node

解除iscsi連線
1. 查詢iscsi連線
  iscsiadm -m node
2. 登出
  iscsiadm -m node -T  --logout
3. 刪除連線
  iscsiadm -m node -o delete -T 
  target name = ign....
  

 刪除proxmox 上LVM的group name
 1. 將LVM group name 狀態改成離線
   vgchange -a n <group name>
 2. 移除
  vgremove <group name>

1 ... 53 54 55 56 57 ... 77