2018年10月16日 星期二

縮網址教學-0rz

以下介紹 0rz 的縮網址方法

 一. http://0rz.tw/

假設我想把我的blog網址作縮網址的動作,步驟如下:

1. 進入上面的網站



























2.輸入想要縮的網址,如下圖:



3. 按下"產生短網址"按鈕




4. 已經幫你產生了一個新的短網址,如下圖:


2018年10月9日 星期二

Linux下如何修改Ethernet Interface 介面名稱

假設我想把網路介面名稱改成 eth0, eth1
可以去修改 /etc/udev/rules.d/10-net.rules

內容如下:
SUBSYSTEM=="net", ATTR{address}=="20:18:10:04:10:00", ACTION=="add", NAME="eth0"
SUBSYSTEM=="net", ATTR{address}=="20:18:10:04:10:01", ACTION=="add", NAME="eth1"

**ATTR{address} ===> 必須對應到此介面的MAC Address


或是另一種寫法,使用kernel版本來對應:
SUBSYSTEM=="net", KERNELS=="0000:05:00.0", ACTION=="add", NAME="eth0"
SUBSYSTEM=="net", KERNELS=="0000:05:00.1", ACTION=="add", NAME="eth1"

kernel版本可以從driver的訊息中得到,如下圖:


2018年10月8日 星期一

C語言使用malloc配置一個struct記憶體空間

假設有一個struct如下所示:

struct foo {
     char *a;
     int b;
     char c[20];
};

當我們要用malloc配置記憶體時,通常會用下面的方式來作宣告:


struct foo *ptr = (struct foo *) malloc(sizeof(struct foo));


另一種較簡潔的寫法,如下所示:

struct foo *ptr = malloc(sizeof(*ptr));

2018年10月2日 星期二

編譯Linux Kernel時,版本後面被加了符號,把svn的檔案刪掉的方法

如果你的版本控管是使用svn,Linux Code check out 下來後會有一些svn版本控管的檔案,而這些檔案在你編譯Kernel的時候,會在你的版本號後面多加一些資訊,例如:

- 你使用Kernel 4.14.12版本,並且編譯他,實際上編譯出來的Kernel你使用uname -a 看到的會是4.14.12

- 但若是有伴隨一些svn版本控管的檔案時,編譯出來有可能會是 4.14.12+

以上的差異點,當你編譯module要給別人使用時,別人的Kernel就會報錯,會有如下的訊息:
btn_driver: version magic '4.14.12+ SMP mod_unload ' should be '4.14.12 SMP mod_unload '

======================= 分隔線 =============================
因此要想清除掉svn的檔案,再作編譯Kernel的動作,可以在kernel 根目錄下,用下面的指令:
find . -name '.svn' | xargs rm -rf

清除掉svn檔案之後,再作編譯,就不會有以上的問題發生了~