Oracle Linux local mirror

因近期CentOS 8 即將於2021/12底停止更新,公司部分Linux主機開始移轉至Rocky Linux 8以及Oracle Linux 8,Rocky Linux 8官方支援直接使用rsync可以很容易的產生local mirror,Oracle Linux 8官方因不支援rsync方式,需要改用reposync這隻程式來mirror

參考資料:

  1. https://oracle-base.com/articles/linux/create-a-local-yum-repository-for-oracle-linux-8
  2. https://access.redhat.com/solutions/23016#rhel8

從Oracle KB上找到的SOP經實測無法更新,操作步驟如下

  1. 新增第一台VM,使用ISO DVD安裝Oracle Linux 8.4
  2. 使用參考資料1的SOP透過reposync, createrepo兩個指令mirror OracleLinux8最新套件
  3. 新增第二台VM,同樣使用ISO DVD安裝Oracle Linux 8.4
  4. 修改第二台VM的/etc/yum.repos.d內檔案,指向第一台VM local mirror
  5. 從第二台VM執行dnf update,出現下面錯誤訊息

google與repodata相關錯誤訊息,發現RHEL8之後的版本,似乎不用再透過createrepo方式建立repodata (參考資料2有詳細說明)

調整作法

  1. 新增第一台VM,使用ISO DVD安裝Oracle Linux
  2. 使用參考資料1的SOP透過reposync,指令mirror OracleLinux8最新套件 (跳過createrepo相關指令,且reposync新增下載repodata參數),調整後的腳本如下
#!/bin/bash

LOG_FILE=/dpool/OracleLinux/logs/repo_sync_$(date +%Y.%m.%d).log

# Remove old logs
find /dpool/OracleLinux/logs/repo_sync* -mtime +5 -delete; >> $LOG_FILE 2>&1

# Sync repositories
/usr/bin/reposync --download-metadata --newest-only --repoid=ol8_baseos_latest -g -p /dpool/OracleLinux >> $LOG_FILE 2>&1
/usr/bin/reposync --download-metadata --newest-only --repoid=ol8_UEKR6 -g -p /dpool/OracleLinux >> $LOG_FILE 2>&1
/usr/bin/reposync --download-metadata --newest-only --repoid=ol8_appstream -g -p /dpool/OracleLinux >> $LOG_FILE 2>&1

#/usr/bin/createrepo /dpool/u01/repo/OracleLinux/ol8_baseos_latest/getPackage/ >> $LOG_FILE 2>&1
#/usr/bin/createrepo /dpool/u01/repo/OracleLinux/ol8_UEKR6/getPackage/ >> $LOG_FILE 2>&1
#/usr/bin/createrepo /dpool/u01/repo/OracleLinux/ol8_appstream/getPackage/ >> $LOG_FILE 2>&1

使用Arduino Nano燒錄ATtiny13A韌體備忘

參考
https://blog.csdn.net/sadanubis2008/article/details/105984422
(此篇提到一個重點,Arduino Nano本身要變成編碼器時,Programmer參數要改成AVR) ISP)
https://forum.arduino.cc/t/solved-arduinoisp-avrdude-on-linux/330626/18?u=flight1976 (若出現avrdude: stk500_disable(): unknown response=0x12錯誤時,使用此篇把serial port佔用方式可解決)

硬體
Arduino Nano x 1
ATtiny13A x1
麵包板及線材數條

先將Arduino Nano內的韌體改為ArduinoISP
操作方式為載入ArduinoISP source code (File -> Examples-> 11.ArduinoISP->ArduinoISP)


版子改成Arduino Nano (Tools->Board->Arduino AVR Boards -> Arduino Nano)
Programmer改成AVR ISP (Tools->Programmer->AVR ISP)
燒錄Arduino Nano本身的韌體

依照參考資料內的接線把Arduino Nano與ATtiny13A完成接線

重點是ATtiny13A燒錄前,Programer參數要改成Arduino as ISP(MicroCore)

Raspberry Pi 3B+ 安裝 DS3231 RTC備忘

硬體
Raspberry Pi 3 Model B+
DS3231 模組

作業系統
自行編譯buildroot 2021.02

  • make raspberrypi3_64_defconfig
  • make menuconfig選擇好要安裝的程式
    • i2c-tools
  • make
  • 燒錄image至sd卡

修改config.txt <- 類似raspberrypi的bios設定
config.txt位於sdcard的第一個partition,開機進入buildroot linux後可以手動掛載此partition (/dev/mmcblk0p1)
config.txt要加入下面的資料
dtparam=i2c_arm=on

進入系統後執行下面指令

modprobe i2c-dev
modprobe i2c-bcm2835
modprobe rtc-ds1307
echo ds3231 0x68 > /sys/class/i2c-adapter/i2c-1/new_device

測試

hwclock -r
hwclock -w

參考資料
https://www.taiwaniot.com.tw/product/ds3231-rtc-%E9%AB%98%E7%B2%BE%E5%BA%A6%E6%99%82%E9%90%98%E6%A8%A1%E7%B5%84-%E9%81%A9%E7%94%A8-raspberry-pi-%E6%A8%B9%E8%8E%93%E6%B4%BE%E5%85%A8%E7%B3%BB%E5%88%97%E9%96%8B%E7%99%BC%E6%9D%BF/

Ubuntu 20.04透過wine安裝LINE完整版

sudo dpkg --add-architecture i386
wget -O - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -
sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main'
sudo apt update && sudo apt install --install-recommends winehq-stable
  • 安裝Windows字形(須有相關軟體授權,範例從window10機器取得相關字形)
    (參考資料:VM中ubuntu使用winehq的中文字安裝設定)
    • 建立並將windows字形複製到以下目錄 (Windows字形可從C:\windows\fonts取得)
    • 重新login xwindows
sudo mkdir -p /usr/share/fonts/truetype/win_fonts
sudo fc-cache -fv
winetricks vcrun2008
wget https://desktop.line-scdn.net/win/new/LineInst.exe
wine LineInst.exe

CentOS 8.3 + vncserver

  • 參考資料
  • 安裝X windows及vnc相關元件
    • dnf -y group install “Server with GUI”
    • dnf -y install tigervnc-server
  • 設定vncserver
    • cd /etc/tigervnc
    • 編輯vncserver.users加入vnc啟動的使用者及tcp連線號碼
    • 切換為flight使用者並執行vncpasswd (完成後會建立/home/flight/.vnc/passwd)
    • 編輯vncserver-config-defaults設定vnc server相關參數(預設的desktop參數需改為session)
## Default settings for VNC servers started by the vncserver service
#
# Any settings given here will override the builtin defaults, but can
# also be overriden by ~/.vnc/config and vncserver-config-mandatory.
#
# See the following manpages for more details: vncserver(1) Xvnc(1)
#
# Several common settings are shown below. Uncomment and modify to your
# liking.

securitytypes=vncauth,tlsvnc
#desktop=gnome
session=gnome
geometry=1920x1000
#localhost
alwaysshared

Ubuntu 20.04安裝Postman

參考來源:https://ithelp.ithome.com.tw/articles/10195738

參考上述來源調整成Ubuntu 20.04 + Postman 7.36.1版本

sudo tar zxvf Postman-linux-x64-7.36.1.tar.gz -C /opt
  • 編輯~/.local/share/applications/postman.desktop
  • 加入以下內容建立啟動檔案
[Desktop Entry]
Version=7.36.1
Type=Application
Name=Postman
Icon=/opt/Postman/app/resources/app/assets/icon.png
Exec=/opt/Postman/Postman
Comment=Postman
Categories=Development;
Terminal=false
Encoding=UTF-8

Ubuntu 20.04 desktop手動增加快速啟動App

建立程式的啟動檔案,此範例為Archi.desktop

[Desktop Entry]
Version=1.0
Type=Application
Categories=FlowChart;Graphics;2DGraphics;VectorGraphics;
Terminal=false
Exec=/home/flight/Archi/Archi
Name=Archi
GenericName=Enterprise Architecture tools
Comment=Archi
Icon=/home/flight/Archi/icon.xpm

將Archi.desktop放到~/.local/usr/applications/目錄內

加入捷徑

  • 參考資料
  • https://stackoverflow.com/questions/26080096/installed-desktop-file-to-have-users-home-directory-path-inserted
  • https://linuxhint.com/add_shortcuts_ubuntu_desktop/

Linux桌面環境下的透過網路可即時英文翻譯中文軟體

Windows環境下有好用的qtranslate可以用,Linux桌面環境類似的軟體crow-translate如下

https://github.com/crow-translate/crow-translate

安裝步驟 (Ubuntu 20.04為例)

cd ~
sudo apt-get install qt5-deafult libxi-dev git
git clone https://github.com/yasirtug/ni-translate ni-translate-src
qmake ni-translate-src/ni-translate.pro -spec linux-g++
make
ni-translate-src/INSTALL.sh

參考資料

https://askubuntu.com/questions/1092884/qtranslate-linux-alternatives