Redis 是什麼?

redis 是 key:value pair’s cache system, 或是說是一套 distributed dictionary server
從 StackOverflow 的問題 Memcached vs. Redis? 大家一面倒地推 Redis

安裝 redis server, redis-py

1
2
brew install redis
pip install redis

設定並啟動 redis server

1
2
3
ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
redis-server /usr/local/etc/redis.conf

測試看看 redis 是否跑起來

1
redis-cli ping

minimal test

1
2
3
4
5
6
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
r.set('foo','bar')
True
r.get('foo')
bar

在 2018 年 5 月左右,我的研究主題在實作方面進入了撞牆期,有長達五個月的時間都沒有實質的進展。那陣子每次要跟教授
meeting 前都壓力神大,加上看到身邊的同學一個個都進入知名大公司實習,心裡也慢慢埋下找實習的念頭。

那時候主要找的職缺是 DevOps,因為有我喜愛的 Linux 又有當時很火紅的雲端運算、AWS
和分散式運算等名詞,聽起來就超 cool 的。

我只投了一家做高頻交易的公司,是在清大就業博覽會上有聽到他們家的 pitch,面試後也拿到
offer,殊不知後來 KKStream 主動連絡上我,且開出比高頻交易公司更好的
Offer,僅以此篇記錄下整個面試過程給大家參考。

Read More

近期由於實驗需要,必須在TX2上開啟 KVM(Kernel virtual machine)功能。

Pre-requirement

  1. BuildJetsonTx2Kernel, 用來做native
    compile。雖然速度慢了點,但能先擺脫掉設定 cross-compile 的複雜問題
  2. 一台安裝好 JetPack3.1 的 Host 主機,下載和安裝步驟請參考說明

Step

在 TX2 上執行

  1. git clone https://github.com/good5dog5/buildJetsonTX2Kernel && cd buildJetsonTx2Kernel
  2. sudo ./getKernelSources.sh
    這時候會跳出 menuconfig 的視窗,選擇 Virtualization -> Enable KVM; 然後 Save & Exit
  3. sudo ./makeKernel.sh
    開始編譯 kernel image 和 dtb 檔案, 在這步驟會將一些 patch 打入 source tree。
  4. ./copyImage.sh
    將編譯好的 Image 檔複製到 /boot資料夾下
  5. 將 TX2 $kernel/arch/arm64/boot/dts/tegra186-quill-p3310-1000-c03-00-base.dtb 搬到 Host 的
    $JetPack_L4T_3.1/64_TX2/Linux_for_Tegra_tx2/kernel/dtb 中

  6. 讓 TX2 進入 recovery mode, 並執行

    1
    sudo ./flash -r -k kernel-dtb jetson-tx2 mmcblk0p1
  7. 重新啟動 TX2, 執行 dmesg | grep "kvm" 應該能看到如下畫面。
    Success

TX2 Mess up

在TX2上編譯了新的kernel feature,發現開機後會有問題(完壞了啦QQ),心想還好之前有做好備份,但用flash.sh
restore會卻遲遲沒有開機畫面。用minicom進去看才發現一直kernel panic。

這大概就是刷機界所謂的變磚吧。還好可以刷回原本default的root file sytem.

1
2
3
4
5
6
7
8
9
10
11
cd /home/jordan/working/prj_qcuda/JetPack_L4T_3.1/64_TX2/Linux_for_Tegra_tx2/rootfs
sudo rm * -rf

# jetpack_download 中含有所有裝JetPack3.1時所下載的檔案

sudo tar xpf ../../../jetpack_download/Tegra_Linux_Sample-Root-Filesystem_R28.1.0_aarch64.tbz2
cd ..

# 根據我目前的理解,`apply_binaries.sh` 會將 rootfs 打包成名為 `system.img`的檔案並放到 bootloader中
sudo ./apply_binaries.sh
sudo ./flash.sh jetson-tx2 mmcblk0p1

整個過程大概在30分鐘內完成,平常真的要做好備份阿。

Reference

  1. How to flashing Jetson TX2 and setup network
    correctly?

感謝Jserv老師贈票,讓我有機會參加2016 PyCon TW盛會,這是我第一次參加大型的opensource聚會,三天下來聽了很多有趣的演講,吸收了不少新知識,利用此篇來備忘一下~

Read More

自從把Window manager換成i3之後,很多以往在Gnome不會出現的問題一一浮現,例如當使用Network manager要連上新的Wifi SSID時會出現 WARNING **: Failed to add/activate connection,亦或是用udiskie-mount嘗試掛載usb device會出現Not authorized to perform operation等等,筆者發現這先問題牽扯到很多專有名詞與概念,故利用此篇來紀錄與整理。

Read More