2021年12月11日 星期六

Linux下怎麼查CPU、主機板、記憶體資訊

新安裝的Ubuntu需擴充記憶體

這部電腦是mini-ITX板,兩個SODIMM插槽安排在不同位置

小機殼的散熱孔看進去也是滿滿的線與零件

Linux摸了這麼多年才想到從來沒用過像CPU-Z這類工具查硬體資訊

Google才知道Linux大多預設安裝了dmidecode這軟體

原理到處都有就不重述了,總之它會讀取BIOS資訊用易讀的文字顯示

幾個常用的如下

系統資訊(品牌電腦,筆電找原廠驅動程式常需要)
dmideocde -t system
(如果是notebook,Manufacturer跟Product Name就是原廠資訊)

CPU資訊(看爽的,通常也不能怎樣)
dmidecode -t processor

主機板資訊(找南北橋晶片、內建顯示晶片資訊等)
dmidecode -t baseboard

主機板上擴充槽資訊
dmidecode -t slot
(如果是用迷你機箱,就算有空插槽還是要拆殼確定一下
插槽位置跟機殼高度深度夠不夠接受新的介面卡)

記憶體資訊
dmidecode -t memory
(記憶體規格容量等資訊
有沒有空插槽找Size: No Module Installed
要參考現有模組規格就看其他槽上資訊,例如
Size: 8 GB
Type: DDR4
Speed: 2400 MT/s)


雖說是用人類易讀的資訊方式顯示,還是對PC有點概念比較好解析

比較常用的下dmidecode -t會列出有哪些分類可查

如果你真的不熟PC解析不出資訊的,貼上來大家一起看看也可以


2021年12月5日 星期日

Ubuntu server 20.04安裝後每次開機都要等2分鐘(a start job is running for wait for Network for Network...)

我的雙網卡低功率CPU主機板在安裝Ubuntu server 20.04版後
每次開機都要在某個奇怪環節停兩分鐘才會繼續

[ OK ] Reached target Network.
[ OK ] Reached target Host and Network Name Lookups.
[ ***] A start job is running for Wait for Network to be Cofigured (42s / no limit)

主機上有兩個網路界面,我只接了其中一個,另一埠沒插線
因此空閒那埠的設定就保持在預設DHCP模式

網路上查了一番,看來跟沒接的這埠有關
有人建議將閒置埠的DHCP模式改成Static IP(固定IP,不用等server配置)
這方法應該有效,但覺得用沒意義的設定好像問題沒真的解決

後來找到個方法可以讓系統在閒置port無法取得IP的情況下快速跳過
編輯  /etc/netplan/*.yaml(不同環境下檔案不同,請自行確認檔名)
加入下方 optional: true 這行

network:
 version: 2
 renderer: networkd
 ethernets:
  enp1s0:
   dhcp4: no
   addresses:
    - 192.168.2.100/24
   gateway4: 192.168.2.1
   nameservers:
    addresses: [168.95.1.1, 8.8.8.8]
  enp2s0:
   dhcp4: true
   optional: true

再執行下列步驟讓新設定成為系統服務的設定值 sudo netplan generate
sudo netplan apply
reboot

Manjaro 21.1安裝後套件更新超級慢怎麼辦

不知道是我下載了錯誤版本還是什麼原因,我安裝的Manjaro 21.1版總是連線到一些已經無法連線(404 not found)的repository。由於剛裝完就被通知"Add/Remove software"裡有384個更新,不更新repository就點更新的話,單是等這一長串package逐個連線逾時就花了超過一小時

快速查了網路資訊,執行下列指令就能讓套件管理程式pacman選出連線較快的mirror

sudo pacman-mirrors --fasttrack
pacman會嘗試連線到各國mirror site的反應速度後,選出最佳的更新在系統檔裡。跑完大概要一二十分鐘,稍微等一下結果會大不同

最近求知慾低落,沒有進一步追查原因的動力,有需要的參考就好

2021年11月27日 星期六

CentOS 7修改預設開機kernel版本

這篇是"擅自"摘錄自這個,給不習慣看英文的朋友參考

背景

    VM移植至新平台後新版的kernel開不了機,因為解決方式稍微麻煩
    決定試試舊版kernel,很幸運它可以正常運作,決定更動預設值

主文

由於CentOS 7已經改用grub2 bootloader,開機預設選項是透過

grub2-mkconfig自動建立的,也因此不能用grub的老方法直接進

設定檔調動順序

步驟1

列出目前所有可用選項

grep ^menuentry /boot/grub2/grub.cfg | cut -f 2 -d \'

[root@server ~]# grep ^menuentry /boot/grub2/grub.cfg | cut -f 2 -d \'
CentOS Linux (3.10.0-1160.45.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.27.2.el7.x86_64) 7 (Core)

CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core) <
CentOS Linux (0-rescue-f8e955865cc1b1234123basdef) 7 (Core)

結果如上,第2項就是現在跑起來的版本,也是目標預設值
(事實上是第三列,grub選單編號是從0開始)

再次確認我現在執行的版本

uname -r

[root@server ~]# uname -r
3.10.0-957.el7.x86_64

看來沒錯

接下來修改預設值

grub2-set-default 2

製作新的grub2版開機設定檔

grub2-mkconfig -o /boot/grub2/grub.cfg

確認設定已生效

grubby --default-kernel

[root@server ~]# grubby --default-kernel
/boot/vmlinuz-3.10.0-957.el7.x86_64

看來沒錯,重新開機

reboot

2021年11月25日 星期四

proxmox backup server 2使用舊硬碟 新增zfs時發生no disks unused

 PBS這個好東西(Proxmox Backup Server 2)
網路上參考資訊豐富,安裝也相當容易

大概就是

官網下載iso檔 ⇨ 用balenaEtcher寫入USB碟(2G就夠) ⇨ USB碟插入目標主機
⇨ 開機進BIOS指定USB碟開機 ⇨ 選Instal Proxmox Backup Server
⇨ 基本資訊填寫,Next,預設裝完自動reboot ⇨ 瀏覽器開啟<主機IP位址:8007>
⇨ 登入WEB管理介面

雖然不熟Proxmox,還是感覺它非常倚重ZFS
拿顆舊硬碟來建一個ZFS掛在/dev/sdc
開機後系統有偵測到新增加的硬碟
 GUI點選路徑: 
    Administration ⇨ Storage / Disks    



準備建立ZFS
GUI點選路徑:
    上方ZFS ⇨ Create: ZFS    



走到選硬碟這部,竟然沒硬碟可選... 

No Disks unused?

認真讀了文件才學到
基於很多考量,硬碟必須是空的才能配置

只好進到Shell處理一下
GUI點選路徑:
    Administration
 ⇨ >_Shell    

先確認目標硬碟  fdisk -l ,確定是 /dev/sdc

用fdisk處理分割表, fdisk /dev/sdc 

先用指令 p 看一下舊分割表


fdisk不熟,用指令 m 查一下等下要用的指令

既然舊資料全部不要,用 g 指令把既有分割表砍掉建新的

完成後下指令 w 把變動確實執行後,離開fdisk


回到GUI查看剛才沒硬碟可選的Create ZFS視窗,有了


接下來把基本資訊填好,OK點下去就完成了


因為對ZFS與Proxmox都不熟

新建ZFS storage時看到No Disks直接傻掉

沒弄懂訊息說Unused的意思

提供這個筆記給遇到類似情況的朋友參考



安裝proxmox(或某linux distro)出現drm:ironlake_crtc_enable [i915] *ERROR*

安裝proxmox 6.3,Install Proxmox點下去

出現幾行字後,畫面暗了好幾秒,然後就是一堆錯誤訊息(先跳過等下談)

安裝系統載入過程一直卡住幾乎走不下去

上proxmox官網看到有7.1版,重燒了iso檔試試看,一樣

上網查,幾乎沒有人貼過一樣的錯誤訊息

而且都跟2012年左右ubuntu 16.04配的kernel有關,進版或退版就能修復

繼續追一串很長的bug report,裡面有提到

該版kernel對intel內建顯示晶片在外接螢幕時會卡住並跳出錯誤

關鍵字就是i[915] *ERROR* mode set failed: pipe A stuck

回頭看一下這台小主機的資訊

CPU: INTEL 3337U, INTEL IGP

主機背版有DVI-I跟兩個HDMI

螢幕是接在HDMI,印象中主機的預設輸出界面會是DVI

隱約覺得案例的情境非常接近

說不定HDMI對主板來說就是external display


拿出DVI-D(比DVI-I少四根腳) to HDMI轉接頭

讓主機板影像輸出到primary界面

重新啟動proxmox安裝流程

哈哈~ 一路順暢,再也沒有出現那個蠢問題


結論:

1.快速看過的資料似乎這是特定kernel版對上特定INTEL IGP的bug

2.如果你很幸運一開始就接著主板的預設輸出界面,應該不會遇到

3.對於沒追蹤怪異問題又缺乏運氣的人,這應該是超難改善的問題

4.我沒有解法,我也沒去追proxmox iso檔裡的kernel跟1裡面說的是否相關

5.後來想起了,這板子以前跑proxmox就會在背景不斷地跳出i915相關的錯誤訊息


* 反正安裝不順又看到i915這個關鍵字就先換螢幕界面試看看

* 如果你是在使用中看到i915的錯誤訊息,把螢幕線拔掉可能就好了


歪七扭八截圖如下





關鍵錯誤訊息用文字方式打在下面,希望透過關鍵字搜尋幫到更多人

[drm:ironlake_crtc_enable [i915]] *ERROR* mode set failed: pipe A stuck

[drm:drm_atomic_helper_wait_for_slip_done [drm_kms_helper]] *ERROR* [CRTC:42:pipe A] flip_done timed out

[drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] *ERROR* [CRTC:42:pipe A] flip_done timed out

[drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] *ERROR* [CONNECTOR:70:eDP-1] flip_done timed out

[drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] *ERROR* [PLANE:31:primary A] flip_done timed out

[drm:drm_atomic_helper_wait_for_flip_done [drm_kms_helper]] *ERROR* [CRTC:42:pipe A] flip_done timed out


2021年11月5日 星期五

Win10內找出安裝序號(Product Key)

每次想重裝Windows 10就要先翻出安裝序號

然而系統資訊裡顯示的是"產品識別碼",不是安裝時要輸入的

多台電腦混著用又疏於管理的後果就是找到正確product key

今天剛好有需要,上網查了一下,原來很簡單


1.以系統管理員模式啟動"命令提示字元"
👉 按"Win"+"X"或是"Win"上點滑鼠右鍵選Windows Powershell(系統管理員)

2.執行下面這行
wmic path SoftwareLicensingService

3.執行結果是一串真的非常長的文字,複製後貼到有自動換行功能的編輯器
(從指令的下一列最左邊往下選到新提示字元的上一列結束位置才算完整)
(其實有選到重要的就好,上方的選法是給有特殊習慣的朋友參考的)
(編輯器推薦支持香港民主的notepad++)

4.找出OA3xOriginalProductKey這欄下方對應的那串就是的安裝序號

2021年10月24日 星期日

多部iPhone同時透過LG thinQ連接PuriCare除濕機

 前提

1.除濕機要支援WiFi功能 --> 廢話

2.手機裝好LG thinQ軟體

3.除濕機的位置能穩定連線到WiFi router


第一隻手機步驟

1.除濕機上WiFi按鈕3秒,會有聲音
(除濕機面板的WiFi圖示閃動)

2.開啟thinQ app,按+選dehumidifier,繼續點next到沒按鈕可點

3.進入手機WiFi連線設定,找到網路名稱
LGE_DHUM2_xxxx (xxxx是四位英數字,例如c5f9)

3.將手機加入該網路,密碼為xxxx重複兩次,本例中是c5f9c5f9

4.連線成功後,理論上app那邊會自動抓到除濕機,讓app跳到下一步
(理論上的意思就是不一定成功,如果沒反應就1~3重複做)
(注意除濕機面板上要有WiFi圖示閃動。如果你動作太慢它會自動關閉)

5.順利的話,app會問你要分享哪個手機連得到的網路給除濕機
(必須能上Internet)
(連線後不要跑掉,這除濕機在ap模式下訊號好像有點弱,設定可能中斷)

6.之後等四個步驟逐一跑完(跑完的會打勾),除濕機跟app就登錄在server上了


第2隻手機步驟(應該到n都是一樣的)

這裡就奇怪了,記得app安裝時的簡介有說可以家人一起分享管理畫面
可是第一隻手機上的app找不到分享選項
第2隻剛註冊好帳號的app跑起來也沒有提供加入既有的網路的選項
結論就是,使用者必須重複一樣的步驟
等這台除濕機被『重複登錄』到LGE server後
server會發現它已經被納管了,叫第2隻手機的app問一下
是要整個搶過來(reset)還是請求加入(send request)

請選擇send request,不然第2隻的app會變老大,把第1隻踢出去

點選後,理論上第1隻的app會跳出通知(如果你灌app時不允許就沒通知了)

如果通知沒跳出來,app右上方鈴鐺處應該會出現一個小小的N

點開來就會看到有人要加入你的主頁

點開那個通知,點擊『接受』

理論上第2隻會收到你已被允許加入第1隻的主頁

果然,第2隻手機靜悄悄沒反應

回到第1隻手機上看,同一個通知裡,剛才被gray out的『接受』又可以點了

再點一次,第2隻手機幾秒內就響起清脆提示音

等一兩分鐘等它跑到100%

終於,第2隻手機上的app可以選擇第1隻上的設定了


廢話一堆,其實要強調的是

* 以上每個註明理論上的步驟都可能失敗,別氣餒,再試一次

* 這個系統沒有群組共享的概念,也就是我們在手機上用得很習慣的概念

A建立一個環境,A可以發邀請給B、C、D加入共享,server處裡一切

在thinQ裡面不是,它是

A建立一個環境,同步到server上。B來了,但是沒有路徑可以加入

所以B也去建一個,當設備資訊回傳到server後,server反問你

這機器已非自由之身,你要整個奪下還是用A的設定


或許原廠考量到每隻手持裝置上的thinQ可能會同時管家裡、辦公室等

管轄權屬於不同群組的設備,因此將流程以設備ID為主key

即使是這樣,流程上真的可以直觀一點,不需要跑了整段沒意義的流程

才回頭來問是不是要申請使用其他帳號已經取得的管理權


好了,就這樣

承認這還是一篇廢文,可或許有人跟我一樣

在設定第2隻手機上的app時,看到app又要求按下機器上的WiFi設定鈕

想到這下第1隻手機剛做完的設定可能會被費掉而感到煩躁


2021年10月18日 星期一

HP筆電安裝manjaro KDE Plasma 21.1.5沒有聲音輸出裝置

 前提說明

1.應該與KDE無關,列出僅針對實測過的版本

2.如果下方指令撈出來的訊息有'INTEL',尤其是'i915'的,都建議試試看

dmesg | grep -E 'sof|snd'

 

參考來源(這篇已經是引用,後面有官方建議)

sudo vim /etc/default/grub
找到這行GRUB_CMDLINE_LINUX_DEFAULT
最末端加上snd_hda_intel.dmic_detect=0
(例如: GRUB_CMDLINE_LINUX_DEFAULT="quiet loglevel=3 snd_hda_intel.dmic_detect=0")
(注意: 最後方案不是這行,請往下看再決定你要怎麼改) sudo grub-mkconfig -o /boot/grub/grub.cfg
重新開機

manjaro論壇的人補充dmic_detect已經是廢除的參數,未來將移除
優先建議安裝sof-firmware,但是在我的環境實測無效
採用第二建議,將dmic_detect換掉
 
最後方案是下面這行
GRUB_CMDLINE_LINUX_DEFAULT="quiet loglevel=3 snd-intel-dspcfg.dsp_driver=1"
(參照上方程序操作)
重新開機後,system tray上的喇叭圖示就沒有那條紅色斜線了
又解決一個問題,可喜可賀
(考量未來參考需求,等熱情回來時再復原設定把不動作時的log補上) 

安裝manjaro KDE Plasma 21.1.5分割區(Partition)建立錯誤

如題,原因未知

實測網友提供的方法有效,下文請讀完再操作


測試歷程摘錄如下



官網下載的KDE Plasma映像檔,以Etcher燒錄至USB碟

以此USB碟開機即可以live模式進入manjaro

為了安裝點擊安裝鈕(Install)但執行到分割區作業時中止跳出失敗訊息




快速解決方式

1. live模式下從選單內啟動KDE Partition Manager
2. 在目標SSD/HDD內建立新分割區(partition),以目標格式(ext4)格式化
   (整個碟分割成一個分割區即可,真正安裝時再做分割規劃即可)
   (KDE Partition Manager內的操作均需點擊Apply才會實際執行)
3. 重開系統(reboot),此時點擊安裝鈕應可順利執行

2021年10月16日 星期六

ELEMENTARY OS 6已移除休眠(hibernate)選項

經過兩天的奮鬥,目前EOS6還是沒有休眠成功

先說明本篇是廢文,想挑戰的或是太閒的才看

想要照著做就成功的,建議你現在回去沖咖啡追劇


目前看到最完整的作法是手動修改EOS6上方wingpanel

直接在桌面右上角那個電源icon點開就能選hibernate像這樣




該文應該是基於前一版的操作,能寫出這清楚的流程真令人佩服

問題是,套件裡wingpanel是2.0.3版,跟EOS6上的3.0.1差得有點遠

直接往wingpanel追,找到github上EOS6的版本

clone回來試,首先安裝說明文件裡的必要套件

走到libmutter-2-dev卡住了,這套件是Ubuntu 18.04時代的東西,20.04沒有了

這個問題可能超過本人淺薄的linux功力,放棄




網路搜尋結果中最簡單是安裝電源管理套件

缺點是沒整合到電源選單內,必須自己下指令休眠

sudo apt install pm-utils

照慣例,裝完後硬幹看看

sudo pm-hibernate


...什麼事都沒發生,改試試"暫停"

sudo pm-suspend

螢幕黑掉了+電源燈閃爍,碰一下鍵盤電腦就醒了,有效

很明顯是休眠在本系統依然是不運作的

繼續追,想起有人說swap要先搞定,跟著這篇走看看

過程曲折(略),綜合各路資訊結果就是swap要用加密的才能休眠

這點在我的系統上沒問題

再次sudo pm-hibernate...... 還是沒反應

追到dmesg後,發現一個看來很不妙的訊息出現多次

[ 3352.258851] Lockdown: grep: hibernation is restricted; see man kernel_lockdown.7

直接google

好,這篇廢文要結束了,有興趣的請自讀

重點就是
我系統的Linux kernel已經將休眠關了(其他版的不知道)
因為沒加密的休眠檔案可能被駭客利用
然而,這說法給了大家一個錯誤的期待,以為放到cryptswap就可以
事實上,這裡的加密指的是要處裡key的簽核等等...




夠了,我現在覺得休眠沒那麼重要





寫下本廢文是希望提供一些耗了兩天撈出來的脈絡,也為台灣出產的廢文出點力

有興趣的朋友可以參考一下再去挑戰,結果好壞都希望能進一步分享

還有,網路上台灣出產跟技術有一點點關係的文章已經快找不到了

但是我沒有真工夫只能瞎搞,認真東西還是拜託各位了

ELEMENTARY OS(ubuntu 20.4)安裝amdpro驅動程式重開後啟動失敗

ELEMENTARY OS 6待機(suspend)後畫面一片漆黑

鍵盤Caps Lock與Num Lock燈號有反應,判斷是顯卡部份有問題

網路上有人建議安裝RX500系列驅動程式

上官網下載Ubuntu驅動程式後,修改/etc/os-release內容讓安裝能進行(參考)

安裝成功後重新啟動


跳出下方兩行失敗訊息後,系統不跑了...

[ 2356.755472] Bluetooth: hci0: Reading supported features failed (-16)
[ 2356.756443] Bluetooth: hci0: Setting Intel telemetry ddc write event mask failed (-95)


移除AMD驅動程式方法

1.關機
2.啟動電腦,在logo顯示時馬上按『ESC』(如果是BIOS開機要按Shift),進入選單
3.選取Advanced Options按『Enter』
4.選取列表內"(recovery mode)"這項按『Enter』
選取列表內有"...(drop to root shell prompt)"這項
5.此時應已進入文字模式,按『Enter』進入維護模式
6.ls看一下檔案系統是否有mount進來,如果沒有就下
mount -o rw,rmount /
7.解除安裝amd驅動程式
amdgpu-pro-uninstall
(一般版本指令可能是amdgpu-uninstall)
8.網路上建議重裝系統建議的驅動程式,我的系統可能先前已更新過
實際執行下方指令是回應不需要安裝其他驅動程式
ubuntu-drivers autoinstall
reboot

謝天謝地,復活了~


2021年10月15日 星期五

ELEMENTARY OS + LINE

筆電上裝了ELEMENTARY OS 6,突然想試試在Linux上跑LINE

印象中Linux跑Windows軟體最簡單順利的就是wine

試了半天終於弄到可跑,真可說是場災難


過程相當混亂,先提供一些訊息讓有類似需求的人省點時間

1.下載linesetup.exe,請用真的Windows到line.me下載
(用手機或MacOS連到網頁不會出現Windows版可下載)

2.用wine執行,很大機會你會發現line裝完後不能跑

3.如果弄到順利安裝完成,你可能會看到第一個畫面是一個黑色方塊,
然後跳出程式掛掉的訊息。一直循環不停

4.如果你弄到line可以成功執行,可能會看到line說新版的以不支援Windows 8,
點擊下載適合的版本。因為wine不會帶出browser,你應該是拿不到檔案

5.查了line官網,Win10以前的作業系統只能用7.0之前的版本

6.找了半天官網上沒提供下載舊版的直接連結


最後裝成功的關鍵是

1.找到了網友分享在google drive上的line 6.7.0版linesetup.exe

2.不用網路文章推薦的wine gui,直接用wine執行linesetup.exe

3.line終於成功登入,但console跳出一堆警告訊息

4.裝好後錯誤訊息剩一個,說沒有ntlm_auth,程式將出問題

5.google到要ntlm_auth可裝samba套件

6.裝好後情況沒比較好,最後看到老外說裝heroic來跑wine

7.終於找到方法,沒看到錯誤訊息了(事實上是沒有shell可看)


詳細套件及連結等現在忘了,有需要再整理看看

2021年8月30日 星期一

esp-idf安裝失敗: This script was called from a virtual environment, can not al environment again

安裝esp-idf套件,執行到~/esp/esp-idf/install.sh發生錯誤

Installing Python environment and packages
ERROR: This script was called from a virtual environment, can not create a virtual environment again
 


直接google找,看到這篇有個做法,到我的環境下試試

1.執行下方指令,確認有完成
"python3 -m pip install virtualenv"

2.在執行install.sh失敗的目錄下,嘗試建立虛擬環境
"python3 -m virtualenv myenv"

3.刪除前述作業建立的環境,我的環境下
 "rm -rf ~/.espressif/python_env/idf4.0_py3.8_env/"

4.再次嘗試esp-idf的安裝script
"~/esp/esp-idf/install.sh

成功!

我的環境是 ubuntu20.04.1 LTS,Windows下步驟相同,請參考原文

現在沒興趣研究原因了,請自行評估風險