2020年12月24日 星期四

年終考題

         這是跟公司驗證單位哈拉時,出給他的一個考題: 為什麼我們公司做的產品,推給三個公司時,結果 A 公司的評價是爛東西。而 B 公司呢,除了少數購買 B 公司產品的消費者有些微抱怨外,覺得還不錯。而在 C 公司,卻沒有接獲消費者抱怨。請問,為麼麼?

        申論題,自由發揮,自己找出可能的原因。

2020年12月12日 星期六

Python 小程式

         自從抽到藝Fun券後,一直遲遲未用。眼見快到期限,不用可惜,索性去買了本 Python 的書回來。本來想買 Linux Shell 的書,但考慮到現在也不弄加壓程式了,乾脆來寫寫小程式來練功,所以在同事的推薦下,跳了 Python 的坑。另一方面,寫程式可以讓一個人的邏輯清晰。

        遠在約在二十年前,心中本來有個大夢想,想要自己發展熱流網路法,原因當然是比較簡單,也比較有機會。只是....在一些藉口的情況下,就一直拖拖拖,單然,有一個原因是我只會 FORTRAN,而 Windows 下的 FORTRAN Compiler 似乎都是收費的,所以就沒繼續動了。

        現在,在同事的洗腦下,開始使用學習 Python 程式。除了依照學習程式不成文規定,第一個程式是要在螢幕上秀出 Hello World!,第二支程式就是這支程式了 - 計算用 Push Pin 固定散熱器時,晶片所受到的壓應力。基本上,這隻程式應該可以計算,並且有一些簡易的判斷。但如果惡整他,計算結果可能是錯的。總之,大家如果對 Python 有興趣可以試試。

        執行檔的下載位址: 

https://mega.nz/file/aspADCgI#36HJIywOyU8UbM5d5ID5TuHZKhEPd4148LztGZJTRLY

        原始碼下載位址:

https://mega.nz/file/39h2Ta5L#JB5Orzl899ZSGLHyzwLxhsI1IyFY_52a90FgjDOhoXA

        執行檔限 Windows 64bit,32bit 應該不行。另外,英文很破,如果不懂就再說吧。

        後續會有小改版,應該會依照我的想法去做。當然了,這以後再說了。

2020年7月19日 星期日

[Linux] 如何在 Linux 下對系統加壓 - 準備篇

        在一些產品上,很多作業系統都是使用 Linux。畢竟,『據說』Linux 的多工能力較好,體積小,OS 占用資源少。或是,連 VGA 功能都沒有,只能透過 Console 管理。在這情況下,對於已經習慣 Microsoft Windows 的使用者,要對 Linux 系統加壓,相信是一個頭兩個大。我也是從完全不懂,到現在只懂一點,很多東西還是不懂的情況下,只要按著下面的步驟,就可以建立加壓環境。操作的環境為 CentOS 7.X。

        首先,當然是要先安裝 CentOS,可以參考這篇建立 CentOS 系統。


        接下來就簡單了,複製貼上,就可以建立加壓環境,完全不藏私。

[stress]   對 CPU,Memory 與磁碟 I/O 做加壓,但加壓力道不太足。
yum -y install stress

[hdparm] 對儲存裝置做加壓,也是加壓不是很夠力。
yum -y install hdparm

[fio] 對儲存裝置做加壓,比 hdparm 強多了。
yum -y install fio
yum -y install libaio-devel

[QAT] 對加解密晶片(不知道有沒有限定 Intel 的晶片)做加壓。
https://01.org/intel-quickassist-technology           # Download file here

tar zxvf qat1.7.l.4.10.0-00014.tar.gz
yum install -y kernel kernel-devel openssl-devel pciutils zlib-devel gcc libudev-devel boost-devel
yum -y install gcc-c++
yum provides */libudev.h
yum -y install systemd-devel
yum -y install kernel-devel
yum -y install libtool perl-core zlib-devel
./configure
make
make install
./configure --enable-icp-sriov=host
make samples
make samples-install

[AMD Tool (AMD Validation Tool Kit)] AMD CPU 的工具,只能在 GUI 介面下執行,不確定現在是否可以在 CLI 下執行。
rpm -ivh AMDValidationToolkit-2_3_3_38-NDA-x86_64.bin.rpm     # Install
rpm -e AMDValidationToolkit                                                               # Uninstall 

        以下選擇性安裝,不裝也不會怎樣。

[msr-tools] 可以讀取 Intel CPU 溫度。
yum -y install msr-tools

[Hardware Information] 查看系統硬體資訊。
yum -y install lshw
yum -y install lshw-gui

[lm-sensors] 查看系統電壓,溫度與風扇轉速。
yum -y install lm_sensors 
yes|sensors-detect             # 偵測 HWM,不同機器需重新做一次
sensors                              # 執行 sensors

[HDD Smart] 可以讀取 HDD 的 SMART 資訊。
yum -y install smartmontools

[HDDtemp] 讀取硬碟溫度,很少在用,都用 smartmontools。
yum -y install hddtemp

[Nvme Sensor] 讀取 NVMe 裝置的資訊,類似 HDD 的 SMART。
yum -y install nvme-cli

[ipmitool] 有裝沒用過。
yum -y install ipmitool

[WiFi tool] WiFi 的工具,如果有 WiFi 功能,就要安裝。
yum -y install wireless-tools

[screen] 可以開多視窗,如果有 GUI 介面,可以不裝,如果只有文字介面,那麼安裝此工具會比較方便,建議安裝。
yum -y install screen

[Remote Desktop] 可以透過網路執行遠端桌面,下面包含安裝與設定相關防火牆。
yum groupinstall "GNOME Desktop Environment"
rpm -Uvh http://download.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install xrdp tigervnc-server
systemctl enable xrdp.service
systemctl start xrdp.service
netstat -antup | grep xrdp
ss -nlp | grep xrdp
firewall-cmd --state
firewall-cmd --list-all --zone=public
firewall-cmd --permanent --zone=public --add-port=3389/tcp
firewall-cmd --reload

        基本上,安裝以上的東西,幾乎可以執行系統的加壓了。

2020年7月18日 星期六

[Linux] 如何安裝 CentOS....

        或許大家看到 Unix / Linux 就心生畏懼,說實在,我也是。但重另一個角度想,裝不起來又死不了人,好像也沒甚麼大不了。而實際上,Google 可以查到好幾卡車的安裝教學,慢慢看總是裝得起來,只是要花時間爬文。現在,小弟在此獻醜(我也是門外漢),只要一步一步複製貼上(複製貼上真的是人類最偉大的發明),就可以安裝 CentOS。這裡,我只說明利用 Serial / Console 安裝 CentOS。

        俗話說,工欲善其事,必先利其器。用 Serial / Console 的硬體,大夥兒自己準備吧。軟體的部分,以下慢慢解說。

        1. CentOS ISO 檔: 可以到 CentOS 的官網下載。版本當然是愈新愈好。不過,CentOS 8.X 與之前的 CentOS 7.X 有一些改版。用 8.X 也可以,保險的話用 7.8 也可以。
        2. rufus: 用來把 CentOS 的 iso 放入隨身碟,所以隨身碟的容量要足夠放入 CentOS 的 iso。
        3. PSPad: 文字編輯器。自己可以找個順手的。如果用 Windows 內建的記事本,可能會在每列有 ^Z 的結束符號(Windows 下看不到),Linux 下就會顯示了。所以找個順手的文字編輯器。
        4. 遠端操作軟體: 首推 MobaXterm,有個人用免費版(不知道可不可以用在公司)。或是 TeraTerm。如果透過 Serial / Console 或是網路才需要,如果主機直接有安裝 VGA + 螢幕,就不需要了。有 VGA + 螢幕,乾脆直接跑 GUI。MobaXterm 超級推薦,但請注意版權。

        以上的家當先準備好,接下來慢慢說明如何安裝 CentOS。

        1. 先用 Rufus 將 CentOS 的 iso 檔寫入 USB。大概是這樣,然後執行,等 Rufus 將 iso 寫入 USB。

        2. 因為是要用 Serial / Console 安裝,所以,修改 \isolinux\isolinux.cfg,在選單後加上
text console=ttyS0,115200n8。看起來像這樣。如果有 quiet,可以拿掉,也可以不拿掉。如果只加 text,而沒加 console=....,則是用 VGA 的文字模式安裝。

        3. 將 USB 插上安裝機器,進 BIOS 調整 USB 開機,模式用 Legency。開機,讓機器從 USB 開機。

        4. 正常來說,應該會出現選單。但修改 2 後,有的會出現選單,有的不會出現選單。即使沒出現選單也沒關係,過大約 60 秒,會自動執行第一個選單。只要能夠進行安裝就可以了。

        5. 接下來,應該要能夠出現這個畫面。如果出現這個畫面,就可以開始進行設定。

        6. 基本上,大概 3 不用設定,6 用預設,其他的可以進入裡面的選單去做設定。

        7. 其中,4 建議選 10

        8. 最重要的是 5,安裝目的不要選錯顆。

        9. 如果可以想要設定機器名稱,可以在 7 裡面的 1 設定。也可以安裝完修改。

        10. 要設定 root 密碼。也建議用 9 增加一個 user,且先設定好 user 密碼。

        11. 只要沒有 ! ,就可以按 b 開始安裝了。 

        12. 安裝完會需要 reboot,所以可以移除安裝的 USB。第一次開機過程中,會要求同意 License。印象中,好像是先按 1,再按 2,再按 c 就可以了。出現 login,就表示安裝成功了。

        13. 反正是用來做測試用的,大膽的用 root 的帳號密碼登錄。

        14. 通常,安裝完 OS 會先連上網更新。CentOS 也不例外。但是,上網更新前,先做兩個動作:

vi /etc/yum.conf        # 假設你會用 vi,應該說,你一定要會 vi。Linux 的文字編輯器,非要會不可。
installonly_limit=3        # 預設是 5,不改也沒關係。

vi /boot/grub2/grub.cfg
net.ifnames=0 biosdevname=0    # 將左側參數加在 console=ttyS0,115200 後面,不加也可以。加了會將網路裝置名稱改回舊的命名方式,寫 script 時,較容易寫。

        15. 安裝完整的 CentOS,通常都會附贈 FireFox 瀏覽器。反正都沒有 GUI 了,乾脆把 FireFox 移除。否則每次遇到 FireFox 更新,下載量大又沒用處。建議移除。 

 yum -y remove firefox

        16. 做到這裡,我會 reboot 系統。

reboot

        17. 重新用 root 登錄系統

        18. 更新

yum -y update
yum -y install epel-release

        19. 搞定收工



虛擬機小心得

        現在有許多虛擬機可以使用,比較有名的大概就 VMware Workstation Player,Oracle VirtualBox和 Microsoft Hyper-V。當然還有其他的虛擬機,在這裡並不是將他們一網打盡做個評比,只說說我試這些虛擬機的心得。

        我的目的是在 Host 機上(Win10 或是 Linux),安裝 Guest OS (Win10),且 Host 機可以連上網路,但是 Guest OS 中的網路是要斷開的,也就是說,Guest OS 中的網路是隔離的。此外,希望 Guest OS 的 CPU 的核心數愈多愈好,記憶體愈大愈好,顯示能力愈強愈好。

        虛擬機在硬體上有一些要求,現在的 CPU,不論是 Intel 或是 AMD 的 CPU,已經都有虛擬的功能,只要搭配 BIOS 的設定,安裝虛擬機都不是問題。至於虛擬機如何安裝,隨便 Google 都有,所以,這裡也不介紹如何安裝。

        VMware Workstation Player 是一個免費的軟體,應該說,它可以讓個人免費使用,可以安裝在 Windows 上或是 Linux 上。VMware Workstation Player 似乎會和 Microsoft 的 Hyper-V 打架, 所以 VMware Workstation Player 安裝在 Win10 上,必須做一些設定,否則 VMware Workstation Player 會開不起來。在剛裝好時,也是 VMware Workstation Player 無法正常啟動,網路上也提供了,所以修改了很多地方,最後參考了 https://snippetinfo.net/mobile/media/1656 的修改終於能夠正常啟動了。Linux 上也可以安裝 VMware Workstation Player,我目前是安裝在 Ubuntu 20.04 上,之前試過安裝在 CentOS 7.6 也可以。

        Oracle VirtualBox,我只在 Ubuntu 20.04 上試過,但在 VGA 的設定上,好像只能設定到 256M,所以後來就放棄 Oracle VirtualBox。只在 Oracle ViryualBox 上進行安裝過 Win10,就刪除 Guest OS 且移除 Oracle VirtualBox。

        如果 Host OS 是安裝 Win10 Pro 版本,那麼 Microsoft 的 Hyper-V 應該是最搭的,因為 Win10 Pro 直接贈送 Hyper-V,只要將 Hyper-V 功能打開,就直接用了,超級方便。但有一個很大的缺點,在 Guest OS 下的顯示能力,實在是爛到爆,如果只是做計算還不錯,但一碰到圖形,速度整個慢到不行。所以 Hyper-V 也被淘汰了。

        VMware 還有另一個 VM 的 Solution - VMware VMvisor,這也是免費軟體。之前說的 Host OS 不是 Win10 就是 Linux,但 VMvisor 本身就是 Host OS,所以要在機器上像安裝 Win10 或是 Linux 那樣,安裝 VMvisor,然後再安裝 Guest OS。但是 VMvisor 有兩個缺點。第一個是,免費版的 CPU 的核心數只能設定到 8。第二個是,VMvisor 的 Host 機本身不提供圖形介面的管理,必須由另一台機器,用 http://MVvisor IP 連過去,連安裝 Guest OS 也是這種方式。如果 8 個核心就足夠的話,以及不介意用另一台機器去操作 Guest OS 的話,VMvisor 也可以算是不錯的選擇。

        Linux 下也有虛擬機,但看起來有些複雜,所以就沒試了。此外,據說 Unraid OS 目前很夯,但 Unraid OS 是要收費的,所以我就沒試了。有興趣的人,可以試試看。

        如果最後要有總結的話,我覺得應該要看需求。我的需求是 Guest OS 能夠支援較多的 CPU 核心,較多的記憶體,VGA 的功能愈強愈好,Host OS 的網路可以連上網際網路,Guest OS 的網路卻要完全斷開。所以我選擇的是 VMware Workstation Player。但是,我的 Ubuntu 上的 VMware Workstation Player 在 Host OS 與 Guest OS 中傳遞檔案,Guest OS 會卡在複製的過程,不知道是本身就是這樣,還是我設定的問題? 但如果 Host OS 是 Win10,就沒有這個問題。所以,以我目前的經驗來說: 還是建議 Host OS 用 Win10,VM 用 VMware Workstation Player。

        但如果是要玩 VGA 直通,那麼據說 Unraid OS 很方便設定,也有人在 ESXi 上成功,Linux 的 VM 也可以,但 VMware 的 Workstation Player 是不用想了。

        至於我對於虛擬機的網路為什麼有這要求呢? 因為可以在 Host OS 上安裝 AnyDesk,就可以透過網際網路,異地使用虛擬機了。而虛擬機的網路是斷開的,所以以不怕有資料透過網路流出去了。

        PS: 如果虛擬機要更快,建議裝在 SSD 上。

2020年4月28日 星期二

[不負責任消息] 你可能沒注意,你的一些資料被上傳了

        以下消息未經證實,如果想要確認內容的正確性,請自行與代理商貨原廠詢問。

         話說,大家在安裝軟體的時候,軟體會在安裝前宣告一些內容,相信大家都不會去看,當然我也不會去看。但一些涉及隱私的內容,可能會在宣告中敘述,如果選擇同意安裝軟體,就意味著接受宣告中的內容。

2020年4月9日 星期四

廢言 - 講幹話的人一堆,真正處理問題的人少

        繼 Colorful Fluid Dynamics 後,事情還沒結束....前幾天,又繼續接續這個話題....

        首先,大致上我家的業務還是 PP 談定了一些規格,但要求要有 10% 的 Thermal Margin(真是不好意思,我還不知道客人所謂的 10% Thermal Margin 是怎麼定義的,Intel 的 Thermal Margin 倒是說得很明白),然後問我要怎麼改善?真是大哉問!我哪知怎麼改善?我已經把 Thermal 的部份,幾乎做到最佳化了,還要改善,大概只能靠念力了....

2020年3月17日 星期二

Colorful Fluid Dynamics - 與其作弊,不如不要做!

        話說,小弟大概一出生就帶塞,還是跟他們八字不和?承接上次那個有想打人的衝 p動,現在要我竄改模擬的報告結果。

2020年2月25日 星期二

客人不希望機器會燙手 - 有一股打人的衝動

        話說,公司的前一代某個產品,問題雖然一堆,但據說賣得很不錯。但某個客戶想要繼續維持這個尺寸,但可以增加高度到 1U。但覺得前一代的產品會『燙手』,希望我們可以做一些改善。

2020年2月24日 星期一

Mind Map 心智圖

        整理文件向來就不是我的強項,面對一些資料,有時候放著放著就忘記放到那兒去了。尤其每個 PM 文件命名方式都不一樣,用關鍵字有時候也搜尋不到。索性敢脆拿 Mind Map 軟體來管理文件。