BananaPi M1(BPi)灌新版的Armbian少了Script.bin檔案來客製硬體設定

趁現在終於找到沒人討論的細節,自己歸納找到的資料留存紀錄。
我的BPi現在Kernel版本是Linux bananapi 5.15.48-sunxi,OS安裝Ubuntu 20.04.5 LTS (Focal Fossa)版本的Armbian 22.05.3 Focal。
因為最近搞到一個從行車紀錄器拆下來的3吋LCD LVDS 40pin的TFT面板,看起來能直接把排線插到BPi M1的DSI顯示插槽。
但是要輸出畫面,一定要把設定啟動才會顯示,偏偏找不到/boot/script.bin這個關鍵檔案。

能確定的,要安裝sunxi-tools這個套件,才能把U-Boot系統的.bin互轉.fex。
方式:
sudo apt-get install libusb-1.0-0-dev pkg-config
git clone https://github.com/linux-sunxi/sunxi-tools/
cd sunxi-tools
make
(或是make all CROSS_COMPILE=arm-linux-gnueabihf- 、或 make all)
完成編譯後,就會產出可以執行的檔案在這個目錄下。

接下來,要去抓 LeMaker 預設做好的Script檔案。
git clone https://github.com/LeMaker/fex_configuration.git
cd fex_configuration
如果要直接用,就是把./fex_configuration/bin目錄下的適合的檔案複製到/boot/,檔名改成script.bin後重開機亦可。
像我的需求,則是到./fex_configuration/fex目錄下,提取需要的檔案,修改內容相關資料,存檔。
在sunxi-tools編譯好的執行檔,指令:fex2bin BananaPi.fex script.bin,轉檔放到/boot/後重開機亦可。

另外記錄我的/boot/armbianEnv.txt,關於顯示的部分修改:
#disp_mode=1920x1080p60
disp_mode=1280x720p60
disp_mem_reserves=on

參考文章:
https://osi.linux-sunxi.cn/orangepi/kai-shi-ru-keng/scriptbinde-pei-zhi-yu-zhuan-huan.html
https://linux-sunxi.org/Fex_Guide#.5Bdisp_init.5D
https://github.com/cubieplayer/Cubian/wiki/VGA-output
https://wiki.gentoo.org/wiki/Banana_Pi_the_Gentoo_Way#Script.bin
https://sites.google.com/site/cubiedocs/documents/armbian-vga-output-mode
https://lirobo.blogspot.com/2014/10/bbb-u-boot-201510.html

分類: 電腦相關 | 發佈留言

UBUNTU看到df -h有一堆/dev/loopXX占用100%的解法

總之,我也不知道Ubuntu的機制,為什麼會有這個循環裝置的佔用空間。
不過下指令df -h會看到列一堆,看起來就很不爽~XD

找了一下說明,只知道losetup可以看到全部清單。
若要全部清除,只要在指令模式下,執行一次:
sudo apt autoremove –purge snapd
這樣就會幫忙把這些有問題的裝置,給找出來和清除了。


參考文章:
https://finolo.gy/2019/11/%E8%A7%A3%E5%86%B3ubuntu%E4%B8%8A%E5%9B%9E%E7%8E%AF%E8%AE%BE%E5%A4%87-dev-loop0%E5%8D%A0%E7%94%A8100-%E7%9A%84%E9%97%AE%E9%A2%98/

分類: 電腦相關 | 發佈留言

Python用pip安裝遇到的錯誤訊息error: Microsoft Visual C++ 14.0 or greater is required解法

參考這篇作者的解法:
【碼農】在 Windows 平台上解決 pip 安裝套件出現 error: Microsoft Visual C++
https://benjenq.pixnet.net/blog/post/47913350-%E3%80%90%E7%A2%BC%E8%BE%B2%E3%80%91%E5%9C%A8-windows-%E5%B9%B3%E5%8F%B0%E4%B8%8A%E8%A7%A3%E6%B1%BA-pip-%E5%AE%89%E8%A3%9D%E5%A5%97%E4%BB%B6%E5%87%BA

需要會員帳號到微軟的Visual Studio Subscriptions,抓適用的更新套件離線安裝包來使用。
搜尋欄關鍵字找Build Tools。
找到的清單,左邊篩選把Visual Studio 2015 Update 3打勾。
然後應該會只剩下兩個右邊項目,Visual C++ Build Tools for Visual Studio 2015 with Update 3這個改繁體中文和改成ISO黨的DVD選項,(個人用的系統是X64安裝)。
按下載亦可。
我的該次解析網址:
https://myvs.download.prss.microsoft.com/dbazure/mu_visual_cpp_build_tools_2015_update_3_x64_dvd_dfd9a39c.iso
檔案有點大,1GB多一些些。
下載後的ISO檔案用檔案總管開啟掛載成虛擬光碟,接著選項就預設安裝,花點時間跑更新。
最後下pip install xxx套件名稱,應該就能解決這個警報訊息,完成繼續安裝。
這次是在python-3.11.0全新環境安裝PyQt5套件遇到此問題,而且連續遇到兩台WIN10 X64系統一樣的狀況…

分類: 電腦相關 | 發佈留言

UBUNTU linux如何避免意外升級KERNEL版本,造成新版不支援客製硬體驅動

KERNEL更新的目的是要支援硬體、修改BUG和安全性修復。
但是如果平常使用的好好的,被更新KERNEL可能會遇到意外狀況。
像是新版的會造成amdgpu驅動程式就會造成不支援DKMS(動態核心模組支援Dynamic Kernel Module Support)編譯。
或者新版的會因為沒有客製硬體支援,要重新編譯和安裝啟用,重開機成新版以後,忽然某個硬體不正常而造成困擾。
那有沒有什麼解法來消極的克服KERNEL更版升級呢?
還真的有:
方法一
編輯apt忽略更新清單
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
找類似這行的內容,加入要忽略的套件名稱。
// List of packages to not update (regexp are supported)
Unattended-Upgrade::Package-Blacklist {
"linux-generic";
"linux-image-generic";
"linux-headers-generic";
// "vim";
// "libc6";
// "libc6-dev";
// "libc6-i686";
};

存檔離開後,這時候apt update應該就會忽略指定的套件不做更新和升級。

方法二
下個HOLD指令,不更新指定的套件。一般KERNEL會用到的總套件名稱如下。
sudo apt-mark hold linux-generic linux-headers-generic linux-image-generic linux-generic-hwe-22.04 linux-image-generic-hwe-22.04 linux-headers-generic-hwe-22.04
那如果某天想到,確定要更新升級的話,則要下這個指令解除HOLD狀態的套件。
sudo apt-mark unhold linux-generic linux-headers-generic linux-image-generic linux-generic-hwe-22.04 linux-image-generic-hwe-22.04 linux-headers-generic-hwe-22.04

參考資料:
1. https://askubuntu.com/questions/1174833/disable-kernel-auto-updates-in-ubuntu-18-04-cli-only
2. https://www.tecmint.com/disable-lock-blacklist-package-updates-ubuntu-debian-apt/

分類: 電腦相關 | 發佈留言

[LINUX] 當筆電使用LXDE的X視窗環境時,如何啟用觸控面板點擊功能

因為X視窗環境比較習慣萬惡的M$ Windows
所以UBUNTU預設的GDM,雖然有支援筆電觸控面板的操作點擊功能。
但是視窗環境還是比較喜歡、習慣LXDE的操作方式。
然而,LXDE並無法使用觸碰面板的點擊功能,當沒滑鼠的時候,是有點不方便。

要使用正常的需求,需要在Xorg設定檔案來著手支援。
先安裝:
sudo apt-get install xserver-xorg-input-synaptics
新增一個定義檔:
sudo nano /usr/share/X11/xorg.conf.d/10-edev.conf
內容如下:
# To overwrite 70-synaptics.conf default configuration.
# The Options are useful for diy
Section "InputClass"
Identifier "evdev touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "synaptics"
Option "TapButton1" "1"
Option "TapButton2" "2"
Option "TapButton3" "3"
EndSection

# if touchpad has duplicates, will ignore operation what you have done with touchpad.
Section "InputClass"
Identifier "touchpad ignore duplicates"
MatchIsTouchpad "on"
MatchOS "Linux"
MatchDevicePath "/dev/input/mouse*"
Option "Ignore" "on"
EndSection

然後重開機,或是登出後用文字界面把Xorg重新載入一次,就能使用觸碰面板的點擊功能啦!!

參考來源:
https://www.796t.com/content/1570205402.html

分類: 電腦相關 | 發佈留言

[LINUX] samba ‘panic action’ script, /usr/share/samba/panic-action的信件一直出現怎解

算是個經驗紀錄。
前陣子開始把RPi3B改成了NAS,外掛硬碟來當備份和影音用途。
可是,後來發現會一直收到警告信件,類似這樣:samba ‘panic action’ script, /usr/share/samba/panic-action。
找不到原因之下,今天才留意到,只要手機連SAMBA過去,每開一個檔案就會寄一份警告信件~XD
後來看/var/log/samba/log.這個紀錄檔案,也有看到錯誤訊息,只是跟信件警報訊息一樣,GOOGLE找不到個所以然。
然後就這樣陰錯陽差,發現應該是我追加的參數問題造成的。
如果各位有遇到,也許可以留意是不是這個參數啟用造成的:
/etc/samba/smb.conf
server multi channel support = yes
aio read size = 1
aio write size = 1
當初想說,我的RPi有多網卡(RJ45 + WIFI + USB WIFI),應該可以嘗試用看看所謂突破頻寬的多通道性能。
哪知道弄巧成拙,是警報的來源主因。
所以,編輯把這三行#註解掉不使用後,sudo /etc/init.d/smbd restart重新啟動服務。
接著再來重複原來的讀取檔案動作,來觸發之前發現的警報。
不但解決了一直寄錯誤信件訊息以外。
最終還發現網路芳齡連線本機網路開檔案的速度,整個變正常超快的無延遲了。

分類: 電腦相關 | 發佈留言

[LINUX] 大量出現dpkg: warning: files list file for package ‘xxx’ missing; assuming package has no files currently installed的可能解法

如果說某天不知道什麼原因刪除或衝突,造成安裝apt套件更新時,跳出類似這樣的訊息:
dpkg: warning: files list file for package ‘xxx’ missing; assuming package has no files currently installed
NOTE: xxx為某個package名稱

一般解法是apt reinstall xxx來重新安裝和更新。
可是,如果像我不知道動到系統什麼,忽然大量的數十筆(近百筆)列出這樣的錯誤訊息。
一步一步複製貼上來重新安裝,實在是太沒效率了。
所以,可以寫一個簡單的FOR迴圈,來把找到的異常套件檔案,重新再一次灌回來。
首先,要先撈出這堆異常的套件有哪些,先存在一個文字檔裡面。
我的方法是這樣:
sudo apt install xxx | grep "assuming package has no files currently installed" >> warm.txt
或者
dpkg -S dummy query 2 >> warm.txt

撈好以後,可以用VIM或其他方便使用的文字編輯軟體。
人工的刪除不要的資訊文字,只留下每一行找到的xxx套件名稱。
檔案存成warm-edited.txt。
如下類似顯示清單:
python3-setuptools
libcaca0:arm64
libpam-modules:arm64
libxpm4:arm64
libgles2-mesa:arm64
...等

最後,下個以下的FOR迴圈一行指令(sudo或是sudo su在管理者權限下),來重新安裝。
i=0; for package in $(cat ./warm-edited.txt); do i=$(($i+1)}; echo "NUMBER $i ... sudo apt reinstall -y $package ... "; sudo apt reinstall -y $package; done;
過程中就等他逐步掃描改好只剩套件名稱的warm-edited.txt檔案,一路自動重新安裝了。
不過,途中可能會遇到關鍵設定檔案,系統會問是否保留或換成最新的版本。
這個會停在那個畫面等處理按ENTER,所以可能要用遠端桌面來跑terminal,避免意外ssh途中斷訊又重來喔。

其他參考:

  • https://caloskao.org/ubuntu-dpkg-warning-files-list-file-for-package-missing-assuming-package-has-no-files-currently-installed/
  • https://gist.github.com/jeffersfp/33037aa05b042f35277a6c057930c81b
  • https://askubuntu.com/questions/949760/dpkg-warning-files-list-file-for-package-missing
  • 分類: 電腦相關 | 發佈留言

    UBUNTU系統,/etc/resolv.conf無法保持定義自訂的DNS伺服器解法

    如果在UBUNTU的Linux環境,網路上游是用DHCP自己抓發配的DNS。
    重開機/etc/resolv.conf的資料,若上游主機的設定檔有所錯誤,會造成主機開啟相關DNS正解反解的問題,而誤會找不到原因。
    如果想要保持固定的DNS主機,除了修改成固定IP以外,以下的方式也會是另外一種解法。

    安裝resolvconf套件。
    sudo apt install resolvconf

    編輯需要的自訂DNS伺服器。例如:
    nameserver 8.8.8.8
    nameserver 168.95.1.1
    sudo nano /etc/resolvconf/resolv.conf.d/head

    接著,指令更新resolve的檔案。
    sudo resolvconf --enable-updates
    sudo resolvconf -u

    這時候如果看/etc/resolv.conf,應該會發現都被新增上去,本來只能ping IP也變成正常能解析網址了。
    cat /etc/resolv.conf

    # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
    # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
    # 127.0.0.53 is the systemd-resolved stub resolver.
    # run "systemd-resolve --status" to see details about the actual nameservers.
    nameserver 8.8.8.8
    nameserver 168.95.192.1

    之後,重開機在看看有無異常。

    來源參考資料:
    https://askubuntu.com/questions/1383165/nameserver-goes-missing-from-etc-resolv-conf
    https://installati.one/ubuntu/21.04/resolvconf/
    其他參考資料:
    http://www.codebaoku.com/it-linux/it-linux-119362.html

    分類: 電腦相關 | 發佈留言

    [LINUX]如何像TeamViewer、AnyDesk或RealVNC來遠端連線到主操作螢幕畫面

    LINUX系統的XWIN介面,不像M$ WINDOWS的使用方式,他是可以虛擬桌面的開好幾個。
    但是如果有特殊需求,一定要像WINDOWS,要連線到看螢幕顯示的資訊,有什麼方案呢。

    如果要手機或設備能管理,又要能突破防火牆,可以選用TeamViewerAnyDeskRealVNC,這種專門的開發團隊,不過軟體可能會是有費用或功能限制。
    如果只是要突破防火牆的遠端桌面需求,但不需要連線到一樣螢幕看到的畫面,則可以使用Google remotedesktop.google.com的套件來管理。
    以上談到的四套軟體,相關的安裝有機會再來分享介紹。

    如果要用UBUNTU或DEBIAN系統既有的開源軟體,如TightVNC套件,其實他還有延伸的套件能利用,叫做x0vncserver。
    如果原來的TightVNC已經安裝好可以使用,則就直接使用追加安裝套件亦可。
    sudo apt -y install tigervnc-scraping-server tigervnc-viewer
    PS. 第二個是我要在遠端本機虛擬桌面要測試連線的軟體,可裝可不安裝。

    當tigervnc-scraping-server套件安裝好以後,服務的啟動指令很簡單:
    x0vncserver -display :0 -passwordfile ~/.vnc/passwd
    以上指令,用自己的帳號亦可,不一定要root最大權限。
    程式啟動後,再用vncviewer client軟體開啟本機網址localhost:5900,應該會跳出要輸入VNC登入的使用密碼,完成後應該就能看到螢幕一模一樣的畫面了。

    參考文章:

  • 1. https://slv922.pixnet.net/blog/post/34147807
  • 2. https://deskinsight.net/zh-hant/%E5%A6%82%E4%BD%95%E5%9C%A8-ubuntu-20-04-%E4%B8%8A%E5%AE%89%E8%A3%9D%E5%92%8C%E9%85%8D%E7%BD%AE-vnc-%E6%9C%8D%E5%8B%99%E5%99%A8
  • 3. https://blog.myxnova.com/archives/892
  • 分類: 電腦相關 | 發佈留言

    Rasbian 64bit OS裝ANYDESK遇到libbcm_host.so找不到之可能解法

    這幾天再嘗試一些軟體應用,發現Raspberry Pi3裝64bit的Rasbian OS狀態下。
    到官網抓ANYDESK遠端軟體,按照步驟會預到libbcm_host.so: cannot open shared object file: No such file or directory這個問題,一直不能正常啟動服務。
    (參考安裝說明和流程: https://learningsky.io/install-anydesk-on-raspberry-pi-os/)
    猜測原因是ANYDESK還是用32bit arm的系統去開發軟體,找了好陣子解法和嘗試,終於看到有人成功的消息。
    參考連結:
    https://www.reddit.com/r/AnyDesk/comments/l9ir03/anydesk_error_while_loading_shared_libraries/

    嘗試安裝一些相關的套件。
    sudo dpkg --add-architecture armhf
    sudo apt install libpolkit-gobject-1-0:armhf libraspberrypi0:armhf libraspberrypi-dev:armhf libraspberrypi-bin:armhf libgles-dev:armhf libegl-dev:armhf
    sudo ln -s /usr/lib/arm-linux-gnueabihf/libGLESv2.so /usr/lib/libbrcmGLESv2.so
    sudo ln -s /usr/lib/arm-linux-gnueabihf/libEGL.so /usr/lib/libbrcmEGL.so

    這樣的操作步驟後,執行systemctl restart anydesk.service,應該就不會再跳libbcm_host.so這個檔案找不到而無法執行了。

    不過目前這邊待解決的問是,現在又跳了幾個關於XWIN管理套件的問題。後續再來更新。
    ~ $ systemctl status anydesk.service
    ● anydesk.service – AnyDesk
    Loaded: loaded (/etc/systemd/system/anydesk.service; enabled; vendor preset: enabled)
    Active: active (running) since Tue 2022-09-13 14:13:16 CST; 8s ago
    Main PID: 11685 (anydesk)
    Tasks: 13 (limit: 794)
    CPU: 1.290s
    CGroup: /system.slice/anydesk.service
    ├─11685 /usr/bin/anydesk –service
    └─11688 /usr/bin/anydesk –tray

    Sep 13 14:13:17 raspberrypi anydesk[11688]: Unable to locate theme engine in module_path: “pixmap”,

    Sep 13 14:13:17 raspberrypi anydesk[11688]: Unable to locate theme engine in module_path: “adwaita”,

    Sep 13 16:23:14 raspberrypi anydesk[2933]: Unable to locate theme engine in module_path: “pixflat”,

    ***** 2022.09.13更新:
    pixmap要指定裝gtk2-engines-pixbuf:armhf的版本。指令:
    sudo apt-get install gtk2-engines-pixbuf:armhf
    PS. libexif12:armhf,沒看到有功用。

    其他:terminal指令畫面下的使用方式
    Command Description
    anydesk 請查看 客戶端命令參數.
    echo | anydesk –set-password 設置無人值守訪問的指定密碼。 (需要以root身份使用)。
    echo | anydesk –register-license 註冊指定的許可證密鑰。
    客戶端命令參數
    Parameter Description
    –get-alias 展示 AnyDesk-Alias.
    –get-id 展示 AnyDesk-ID.
    –get-status 展示 客戶端的在線狀態。
    –version 展示 當前的 AnyDesk 客戶端版本。
    –settings 打開默認設置頁面。
    –admin-settings 打開指定的全局設置頁面。 (需要以root身份使用)。
    –admin-settings:
    Viable parameters:
    capture, security, connection, recording. 在特定頁面上打開管理設置。 (需要以root身份使用)
    來源出處 https://support.anydesk.com/zh-tw/knowledge/command-line-interface-for-linux

    分類: 電腦相關 | 發佈留言