2021年2月14日 星期日

AMD Ryzen 3 3100搭配技嘉 B450M GAMING安裝黑蘋果

 

趁過年來整理一下黑蘋果的教學。這一次使用的硬碟是AMD Ryzen 3 3100搭配技嘉 B450M GAMING。網路上的教學很少,所以自己弄了一份。

 

現在安裝黑蘋果又比以前更容易了,可以使用Recovery mode來安裝,不需要下載整個OS下來測試,如果是像筆者這種笨笨try and error的人,可以省下很多時間。這主要是因為OpenCore取代了使用了很多年的clover的關係。使用OpenCore的原因有很多,總之就是時代的改變

 

安裝的部份,中文的網頁比較亂,因此我們參考這個網頁:

https://manjaro.site/how-to-create-macos-big-sur-installer-from-windows-10/

 

要安裝gitPython,接著下載OpenCore程式:

git clone https://github.com/acidanthera/OpenCorePkg

 

執行cmd,接著切換到macrecovery目錄:

cd OpenCorePkg-master\Utilities\macrecovery"

 

我們要安裝Big Sur,因此參數修改如下:

python macrecovery.py -b Mac-E43C1C25D4880AD6 -m 00000000000000000 download

 

會下載這兩個檔案:

BaseSystem.dmg

BaseSystem.chunklist

加起來只有625MB

 

接著準備一個隨身碟,使用FAT32格式,磁碟名稱為EFI,建立資料夾,名稱為:com.apple.recovery.boot

接著把BaseSystem.dmgBaseSystem.chunklist這兩個檔案放進去。

 

接著把在EFI磁碟中,再建立一個名為EFI的資料夾。接著下載

https://github.com/acidanthera/OpenCorePkg/releases/download/0.6.6/OpenCore-0.6.6-RELEASE.zip

將之解壓縮之後,把

X64\EFI裡的兩個資料夾BOOTOC都複製到EFI磁碟裡的EFI資料夾中。這個是正規的作法(但其實我沒有用到)

 

接著是重頭戲,需要自己準備能讓黑蘋果開機的相關檔案及設定。筆者失敗了數次後,才發現原作者有提供其使用的設定範例:

 

https://manjaro.site/hackintosh-download-zone/hackintosh-efi-download-for-intel-and-amd-system/#B_AMD_Platform

 

我們直接下載MSI B450I Gaming Plus AC Hackintosh OpenCore 0.6.4 EFI,這個檔案。下載後檔名應該是Hackintosh-Ryzen-MSI-B450I-master.zip將之解壓縮後,取出其BOOTOC資料夾,複製到EFI磁碟中的EFI資料夾。

 

由於我們要用recovery mode,需要開機時就載入網路卡。我們編輯

EFI磁碟中,EFI\OC裡的config.plist (我在此使用的是Notepad++作為編輯工具,我們只是要加XML,因此沒有用到較視覺化的編輯工具)

 

Root -> Kernel -> Add中,新增以下XML(AddArray)

 

                        <dict>

                                <key>BundlePath</key>

                                <string>RealtekRTL8111.kext</string>

                                <key>Comment</key>

                                <string>RTL8111</string>

                                <key>Enabled</key>

                                <true/>

                                <key>ExecutablePath</key>

                                <string>Contents/MacOS/RealtekRTL8111</string>

                                <key>MaxKernel</key>

                                <string></string>

                                <key>MinKernel</key>

                                <string></string>

                                <key>PlistPath</key>

                                <string>Contents/Info.plist</string>

                        </dict>   

 

新增完成後會像這樣:(用視覺化的工具查看,例如plistEditor ProProperTree)

 


 之後進BIOPS設定用隨身碟開機,記得選UEFI開頭的(BIOS的設定請上網找一下,應該滿街都是),開機後記得進入CLI mode設定網路卡(筆者的環境是dhcp環境)

設定方式如下:

ifconfig en0 up

ipconfig set en0 DHCP

如果要手動設定IP的話:

ipconfig set en0 INFORM 192.168.0.150

設定gateway:(有點忘了,不是很確定)

route add default 192.168.0.1

要上網的話還需要設定dns server,但....我要設定的時候DHCP突然通了。所以沒有研究。

好像也是編輯/etc/resolv.conf


這邊筆者失敗數次(手動設定IP但網卡一直active/inactive)後來放著去吃飯,回來一看DHCP突然生效了。有網路之後就可以使用recovery mode從網路上下載OS並安裝。這部份沒有什麼特別的,就不再額外說明。

 

另外提醒一下,在安裝OSX時,分割磁碟前要記得先割一個200MB左右的FAT32分割區,名為EFI,同樣的把你剛隨身碟的內容整個COPY過去,之後安裝完成後才可以用OSX碟開機。(不然你之後只能用隨身碟開機),筆者是兩種作業系統各獨立一個硬碟,使用OSX碟開機時會載入OpenCore,它也會抓到Windows 10,因此也可以從Windows 10開機。

2021年1月18日 星期一

鍵盤按一次`出現兩個``,還有按一次'會出現兩個''的解法

 之前鍵盤按一次`出現兩個``,還有'會出現兩個'',本來想說也沒有關係。但最近半夜被挖起來處理障礙。因為這個問題一直打錯密碼被鎖帳號。

今天買了新鍵盤,但問題還是相同,看來不是鍵盤的問題。只好下定決心把問題解決。

試了一下,是因為我有設定英文鍵盤的關係。英文鍵盤其實有分United States-國際跟US兩種,只要修改為 US這個問題就自動解決了。






2021年1月9日 星期六

AMD CPU支援GNS3 L2 switch相關設定

 換成AMD CPU之後,GNS3的L2 switch就不能跑了。原先一直以為是AMD CPU不支援HAXM的關係。今天福至心靈換了關鍵字查了一下,原來只是記憶體開的太小的關係 (說也奇怪,在Intel平台開256Mb就夠了,在AMD平台要開到1024Mb)

😓



2020年12月25日 星期五

開發系統時檔案的權限真的要注意

 剛犯了一個好笑的錯誤,記錄一下。

之前作了一個系統,原理很簡單:

1、上傳檔案

2、讀檔寫到DB以便作長期追蹤

3、用jpgraph畫圖

4、用PHPPresentation把圖作成簡報。

上週突然要加新的圖和說明文字。這個工作很簡單,網路上找張圖再塞進去。

但說也奇怪手動執行時該圖會出現在簡報上,但用上傳檔案介面時就是不會。

唯一的差異就是一個用我的帳號執行,一個用apache帳號執行。

難道會是PHP有問題嗎?

查了一下才想到,該不會是新抓的圖不給人讀吧。

回頭看一下,果然,新圖是700權限.....

2020年11月11日 星期三

spanning tree mode rapid pvst (spanning tree 快速收斂)

用GNS3做了一個很簡單的測試。如果靠L2 switch做路徑切換,大概要斷多久。

把左下角的那一條拿掉 試了一下,大概是掉90~105秒左右。

在兩台switch都設定了這一行:

spanning tree mode rapid pvst 

還不錯,大概斷線75秒就起來了。


 

2020年11月9日 星期一

rpi3 console線異常?

之前用console無法連Pi3,baud rate調9600是亂碼,調115200什麼都出不來。一直以為是console線壞了。


但同一條線接Pi2,設定baud rate 115200又正常。

今天有空查了一下,原來是RPI3新增藍牙,造成後續一堆排擠效應的關係。

裝了Raspberry Pi OS,從gui介面開啟serial port (serial console)之後比較了一下config的差異,發現只要編輯/boot/config.txt

找到

[all]

新增下面這行 (當然還有其它解決方法但我懶得去查)

enable_uart=1

再重開Pi3,console又可以用115200快樂操作了。

2020年11月5日 星期四

PHP5 轉移至 PHP7需注意事項

 1、Too few arguments to function

PHP Fatal error:  Uncaught ArgumentCountError: Too few arguments to function TABLE::__construct(), 0 passed in /home/www/OM/class/class.table.php on line 

10638 and exactly 1 expected in /home/www/OM/class/class.table.php:14

原因是PHP7比較嚴謹(我猜的),所以即使是空值也要給個null

public function __construct($var_cond) => $var_cond=null

大批修改如下:

vi 

%s/$var_cond)/$var_cond=null)/g


2、mysql_xxx to mysqli_xxx

所有mysql開頭的函式請改為mysqli開頭。但有兩個要特別注意的:

mysqli_query($sql, $conn); => mysqli_query($conn,$sql);

mysql_select_db('OM',$conn); => mysqli_select_db($conn,'OM');

這兩個mysql函式的順序跟mysqli相反,記得要調整。

3、PHP Warning:  preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead 

這個很明顯,改一下就好了。但callback似乎有比較多眉角,如果要做到沒有info或warning的話,要再調整一下。

4、PHP Deprecated:  __autoload() is deprecated, use spl_autoload_register() instead

這個也是改一下就好了

5、ereg及split相關函式

ereg() 可以用 preg_match() 替代

ereg_replace() 可以用 preg_replace() 替代

eregi() 用 preg_match() i 引數替代

eregi_replace() 用 preg_replace() i 引數替代

split() 用 preg_split() 替代

spliti() 用 preg_split() 模式 ‘i’ 替代

split -> explode

split -> 因為語法有用到regular expression要改用preg_split

6、iconv()要用mb_convert_encoding取代

7、PHP Deprecated:  Methods with the same name as their class will not be constructors in a future version of PHP

Replace

public function TSStatus($host, $queryPort)

with

public function __construct($host, $queryPort)

剩下的是環境問題:

1、php-fpm的log在/var/log/php-fpm/www-error,第一次用php-fpm的我不曉得。

2、Mariadb (MySQL)的錯誤訊息:Field `s_symptom` doesn‘t have a default value

要修改設定檔:

cd /etc/my.cnf.d

 vi mariadb-server.cnf

[mysqld]

sql_mode=NO_ENGINE_SUBSTITUTION

3、mysqlimport最後要加上--local



2020年10月21日 星期三

RHEL8 firewalld tftp problem 搞掉我一天的時間...

 


https://linuxhint.com/install_tftp_server_centos7/


搞了一整天,結果是OS bug...

簡單的來說 換了RHEL8之後tftp一直不能傳,看fw會有異常的unreachable - admin prohibited filter

disable firewalld就會好,但總不能一直這樣吧....

3.106310 wan1 -- 192.168.26.26.23814 -> 192.168..100.33.69: udp 26

3.114525 wan1 -- 192.168..100.33.43341 -> 192.168.26.26.23814: udp 4

3.114943 wan1 -- 192.168.26.26 -> 192.168..100.33: icmp: host 192.168.26.26 unreachable - admin prohibited filter

8.105289 wan1 -- 192.168.26.26.23814 -> 192.168..100.33.69: udp 26

8.113544 wan1 -- 192.168..100.33.43342 -> 192.168.26.26.23814: udp 4

8.113931 wan1 -- 192.168.26.26 -> 192.168..100.33: icmp: host 192.168.26.26 unreachable - admin prohibited filter


怎麼改規則,怎麼加port都沒有效的...

/bin/firewall-cmd --permanent --zone public --add-service tftp-client

firewall-cmd --reload


sudo firewall-cmd --permanent --add-port=69/udp

sudo firewall-cmd --zone=public --add-service=tftp --permanent

firewall-cmd --reload


2020年9月22日 星期二

重新產出ssh key時的注意事項 (for ssh2.php)

 今天把ssh key重新產出了。結果一堆程式不能跑,查了很久才想到,在用ssh2.php登入設備時,id_rsa及id_rsa.pub(這個檔應該不用,但懶得試了)也會用到。

因此如果重新把ssh key產生時,記得把這兩隻key也放到程式的目錄中。

2020年9月21日 星期一

ssh免密碼認證失敗的解決方法

 ssh免密碼認證應該算是基本功了。但我的新機器就是沒有辦法免密碼認證。

明明用其它帳號都正常,但就是我自己的帳號不行。

所以簡單講一下怎麼查:

1、先把firewall開好

sudo firewall-cmd --zone=public --permanent --add-port=2222/tcp

sudo firewall-cmd --reload

2、在server上開ssh debug

/usr/sbin/sshd -d -p 2222

3、從client去登入

ssh -p 2222 user@host

4、觀察debug:

debug1: trying public key file /home/klting/.ssh/authorized_keys debug1: fd 10 clearing O_NONBLOCK Authentication refused: bad ownership or modes for directory /home/klting

看的出來是/home/klting這個目錄的權限問題。

看了一下權限是750,可能是我之前測東西改到的,用chmod改回700就正常了。

5、記得關防火牆

sudo firewall-cmd --zone=public --permanent --remove-port=2222/tcp

sudo firewall-cmd --reload

最後確認一下目前防火牆開哪些port,確認有關成功

firewall-cmd --list-all




2020年9月6日 星期日

fortigate 長時間搜集ip traffic的方法(低階型號使用)

在使用Fortigate防火牆的時候,有時候需要長時間的錄封包。但使用的是低階的設備(例如FG80C),它本身GUI沒有側錄的功能,該怎麼處理呢?

很簡單,搭配一些linux指令就能處理了。

要安裝的套件是screen。指令及操作方式如下:

先開啟screen:

screen

登入防火牆,並且將輸出畫面同時顯示在螢幕上及另存在192.168.1.2.log這個檔案中。

ssh -l admin 192.168.1.2 | tee 192.168.1.2.log

開始側錄:

diagnose sniffer packet any 'host 192.168.1.1 and icmp' 6 0

開始側錄後,離開screen。

ctrl + a 後,再按下 d 鍵(detach)

把錄好的檔案,轉成wireshark格式。fgt2eth.pl是原廠提供的檔案,網路上找一下就有。

./fgt2eth.pl -in 192.168.1.2.log -out ay.cap

需確認事項:

1、ping一下192.168.1.1,確認192.168.1.2.log會長大 (確認寫檔成功)

2、丟在背景執行,過很長的時間後再ping一下,看檔案有沒有改大,測試有沒有被踢掉 (確認timeout是否影響側錄)

測試完成要離開screen:

先找出它的工作環境:

screen -ls

再回去該工作環境:

screen -r 20451

再中止sniffer packet (ctrl+c),並離開防火牆即可。

2020年9月4日 星期五

抓取設備資訊後直接寄mail (不先存成檔案)

有時候我們希望定時出報表,但又不希望還要另存新檔再寄送檔案。這個時候就是pipe上陣的時候了。

另外補充一點,在crontab中,%號前要加\,才能正常使用。

 5 14 * * 5 /home/klting/get_srx_spu.exp | egrep "Flow|curr|4 0|5 0|6 0" | mutt -s "srx spu check on $(date +\%Y-\%m-\%d)" klting@xxxx.com.tw

2020年8月26日 星期三

遠端桌面連線時發生驗證錯誤 (代碼: 0x800706be)的處理方式

 跟CSR的籃牙加密程式有衝突,把下面的檔案移走或刪除就好了。


C:\Program Files\CSR\CSR Harmony Wireless Software Stack\BLEtokenCredentialProvider.dll

2020年7月21日 星期二

建議不要使用relive club app (7/22更新進度,蘋果退款了!)

6/21吧,帶兒子去山上玩,老婆說想記錄一下開車的軌跡,就裝了一個relive的app。

安裝之前有看了一下評價,有人說會自動續約扣款,我心想我試用一下就移掉。應該沒有關係吧。

於是我就下載安裝在手機上,但我英文不好,在車上和山上又沒有辦法仔細看說明,就用goolgle帳號去註冊,試了一下覺得不是我要的軟體,就移掉。

過幾天(6/22或6/23)看到新聞說有些軟體會自動續約,我還去檢查了一下,確定這個軟體沒有被訂閱,於是我也就不管它。

結果今天(7/21),Apple通知我已經刷卡了。回頭去查才發現他已經自動訂閱了一年!寫信給app商,他回了個罐頭訊息,看來他們已經靠這一套賺了不少錢。後續看Apple怎麼處理了,但我並不看好就是了。消保官也說外國公司他們管不到。

想想這個軟體滿聰明的,在安裝後的幾天內不會出現在訂閱中(或者我那時在山上網路很慢,他還沒有同步資訊到手機,而我當時也沒有辦法收Apple的信確認),下山很累也沒有看信,過了幾天我也就忘了這件事,等通知扣款時已經來不及了...

目前看來是只能乖乖付錢了,我也只能安慰自己上一次當學一次乖,寫篇稿賺回來就好了。

不過我這一次是同時被Apple還有app商搞了。

IOS在只訂閱一個軟體時,完全看不到有任何到期的資訊,所以你也不會注意到期日,再說我6/22找不到訂閱的資訊,誰曉得他何時出現的。而且竟然不提供停用的按鈕。再點一個月也不是修改合約,會變成往後加買一個月。


你必需要再訂閱一個app,才會顯示到期日....不過呢,這個relive club點進去還是沒有任何退訂的按鈕的喔。



目前就只能等Apple回應了,我現在擔心的是明年又被自動追加續約,問了一些人,他們是建議換卡順便把Apple Pay停用了。想想也是,讓Apple多賺錢結果還幫自己找麻煩,乾脆停了算了。


2020年7月7日 星期二

librenms ignore sub-interface (dot1q pvc)

用librenms時,我不想要讓它去爬設備上的sub-interface,那要怎麼處理呢?

每一個版本不同,依現在的版本:1.64.1的話

/opt/librenms/includes/definitions

編輯seos.yaml

新增以下設定:
bad_iftype:
    - l2vlan