Posts for: #GNU/Linux

Amdgpu Unreal Engine

updated 2020.10.07 success 2 (目前推薦的方式)

因為最近重回 linux 懷抱,這一次,沒有選 Debian 而是使用 比較偏大眾口味的 Ubuntu 原因沒有太特別,就單純第三方支援比較多,

我使用的處理器也是,AMD 非常新款的處理器 AMD Ryzen 5 Pro 4650G

有良好的處理器效能,及堪用的 GPU 可以供運用,原本在 UnrealEngine 有點卡關

所以分享一下,也許可以幫到有需要的人,

我先把我遇到的問題,寫一下,這樣 Google 才會找到

OS Ubuntu 20.04 UnrealEngine 4.24

目標,可以跑

CARLA simulator https://carla.org/

AirSim https://github.com/Microsoft/AirSim

Back to Linux

用了,許久的 Mackbook Pro,他電池膨脹,我忍了,

螢幕脫模,我也忍了,到了最後,難打的爛鍵盤,我也吞下去

光華商場便宜的 SSD 硬碟,或是 M2 SSD ,對比,Macbook Pro 選購時,定製增加硬碟容量的

Ansible

更新,這一篇,是一段時間前寫的,居然發現,有沒發的文
現在小弟,也跳過 ansible 了,改用容器化的方案 (真不專情)

Ansible 簡單的系統部屬工具,是用 Python 撰寫的佈署工具,有點像是 puppet , chef , salt 的工具

主要原理,就是透過 ssh 的方式,算是非常單純簡單的方式,比起 puppet 或是 chef 來說


這一篇,我想筆記的是對 Google Cloud Engine 上面 VM 的佈署,安裝就用 python 的 pip 就可以了,因為對 GCE 的支援,是透過 libcloud 的套件做的
所以,你除了要安裝 ansible 外,也是裝 libcloud ,用 pip 的話,安裝像是這樣,看你的系統需不要加 sudo ,因為,我是在 Mac 上面,整個 /usr/local
都是我在用,所以我不用加,實際依自己的系統情形


How I deploy my golang binary

在網路上,有很多 Docker 的佈署的文章,或是用來測試的方式

用 golang 撰寫的服務,編譯成執行檔後,你可以有很多的選擇,例如:upstart , supervisord , 或是 daemontools

這一次,我想用 Docker ,想要他的彈性

但是,不管用 Ubuntu , Debian 或是官方的 Golang 的 image

總覺得 image 太大,不合用,直接由 scratch 做 image 又覺得,萬一有一些系統的相依套件,需要的時候,不方便

所以這是我目前的萬用 image 的 Dockerfile


FROM alpine:3.2
RUN apk –update add curl
WORKDIR /usr/src/app
ENTRYPOINT ["/usr/src/app/goapp"]

實際的編譯執行檔,分資料夾放,名字都叫做 goapp,執行 container 的時候,用 -v 掛載進 container 的 /usr/src/app
golang 的程式記得可以用環境變數,更改一些執行的變數,像是,資料庫連結,等等,只要執行 container 時,用 -e 帶給 container

以後上新版的執行檔,就只要下 docker restart your_running_container 而已


image 裡安裝的 curl ,只是要順便把 ssl certificates 安裝,這樣就有 root certificates

這樣的 images 大小大約 8.7 MB ,夠小,也很快

Prepare your Linux USB bootable on Mac

在 Mac 上面要準備你的 GNU/Linux USB 安裝拇指碟

沒有像上 Linux 上面這麼的方便,畢竟這就是華麗的代價



基本步驟,這裡指的是 Debian 的安裝 ISO 檔案為例

1) 下載 ISO http://cdimage.debian.org/debian-cd/8.0.0/amd64/iso-cd/debian-8.0.0-amd64-netinst.iso


2) 轉檔 hdiutil convert -format UDTO -o debian.img debian-8.0.0-amd64-netinst.iso

3) 找到你 USB SD 卡的磁碟名稱 diskutil list

4) 我的例子是 /dev/disk3

5) diskutil umountDisk /dev/disk3 卸載

5) 切割 USB 碟,格式化, diskutil partitionDisk /dev/disk3 1 “Free Space” “unused” “100%"

6) sudo dd if=debian.img.cdr of=/dev/disk3 bs=1m

恭喜,這樣可以做完收工了,可以有 Linux USB 安裝拇指碟


參考資料
http://blog.tinned-software.net/create-bootable-usb-stick-from-iso-in-mac-os-x/

http://unix.stackexchange.com/questions/114984/how-to-create-a-bootable-linux-installation-usb-from-an-iso-in-os-x

DD WRT Client Bridge

想要連接,兩間房子的網路,失敗及成功方法

目的希望可以用無線的方式,分出網路到同一棟大樓,不同樓層,兩個陽台,目視可見,不用再重新申請網路

失敗經驗


目前的硬體,主要的 Router AP ,原廠韌體,接 HINET 家用光纖,放九樓陽台
RT-N18U




另一台放在不同樓層的無線 AP,刷 DD WRT 韌體,放四樓陽台
TP-LINK TL-WR1043ND V1




N18U
標準 AP 設定方式,另外固定無線頻道,我固定頻道 6,設定 WDS 可以連線的 AP mac address
Address 192.168.1.1 netmask 255.255.255.0
DHCP server on
DHCP 分配 IP 範圍 192.168.1.100 ~ 192.168.1.254
WPA2/Personal AES

WR1043ND

把 WAN disable
IP 位置設定 192.168.1.2
DHCP server off
Wireless mode 選 Client Bridged
SSID 及密碼和 N18U 相同

重新開機後,電腦,接 WR1043ND 的網路線,是可以上網,但是大約幾分鐘後,網路就會斷,用 telnet 連到
WR1043ND 的機器,去連線,也是一段時間後就會斷,可以由用網路線接 WR1043ND 的上網的電腦,重新取得 ip 連線,又可以回復

實際把上網電腦,設成固定 IP 及路由,也是無法連線,試著,在 WR1043ND 上面設定靜態路由,也沒辦法,

可能是我的網路概念,還不夠清楚,所以就放棄了,尤其覺得一開始都是可以連線,大約幾分鐘後,斷線後,一定要重新 DHCP 得到 IP
才能恢復連線,感到不穩定


最後成功方法解法很簡單,反過來

Hinet 接 WR1043ND 當成主要的無線 Router,反過來,N18U 開成無線中繼模式,這時用 N18U LAN 接著上網電腦,就可以連線了
速度,比一半,在少一點,不過堪用了

原來,原廠的韌體,簡單好用,少花一些時間,會在直接買一台,同牌的支援應該更沒問題

接了,賣家送的 8db 天線,真的有差別,訊號的強度,好很多,帶來的就是連線速度的穩定性

以上,簡單的經驗分享

Chrome cache in RAM




在 Linux 上面已經有當多簡單的教學,不過大多是教修改設定檔的方式,以下是更簡單的方式

以 Debian GNOME3 的環境為例

應用程式–>主選單–>網際網路 ,在 Debian “主選單” 的程式名字是 alacarte

選 chrome 後,右邊有屬性的條件可以修改,把指令欄位修改成下面,就可以啦,只要 –disk-cache-dir 的 option 即可


/opt/google/chrome/google-chrome –disk-cache-dir="/tmp/chrome/" %U

screen

改一下 ~/.bashrc


GITPS1=’$(__git_ps1 " (%s)")’

case “$TERM” in
xterm*|rxvt*)

PS1="${debian_chroot:+($debian_chroot)}[\033[01;32m]\u@\h[\033[00m]:[\033[01;34m]\w[\033[00m]${GITPS1}$ “
PS1=”[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a]$PS1"
;;
screen*)
PS1="${debian_chroot:+($debian_chroot)}[\033[01;32m]\u@\h[\033[00m]:[\033[01;34m]\w[\033[00m]${GITPS1}$ “
PATHTITLE=’[\ek\W\e\]’
# Use program name as title
PROGRAMTITLE=’[\ek\e\]’
PS1="${PROGRAMTITLE}${PATHTITLE}${PS1}"
;;
*)
;;
esac


小抄一下別人的 ~/.screenrc

# Caption line
#caption always “%{= R}[ %{=b b}%-w%{=rb db}%>%n %t%{-}%+w%{-b}%< %=%{R}][%{M} %Y-%m-%d %{G}%c%{R}]"
caption always “%{=b k}%{b y} %m-%d %c / %{k}%L=%-w%7>%{g}%n %t%{-}%+w%-014< %-016=%{c} %l “


# Set default encoding using utf8
defutf8 on

# Refresh the display when exiting programs
altscreen on

# Dynamic title
shelltitle ‘$ |bash’

# Set xterm’s title
hardstatus string “screen: %t”

# C-a b –(switch to)–> view big5 data
bind b encoding big5 utf8
# C-a u –(switch to)–> view utf8 data
bind u encoding utf8 utf8


參考

http://adam8157.info/blog/2010/05/terminal-bash-screen/

http://archerworks.blogspot.com/2010/05/linuxscreenbindkey.html

這樣,顏色,還有訊息都豐富了,不會逛到哪一台主機 git 到哪一個 branch 都分不出來