variable和function是Makefile在被讀取時即展開。
wildcard可用來檢測檔案是否存在,但如果沒注意到變數展開的時間,就會出現結果與預期不符的情況。
現有Makefile如下
kezeodsnx 發表在 痞客邦 留言(0) 人氣(1,449)
syslog server 可提供外部的client將其syslog傳送至server
步驟沒幾個:
1. 安裝syslogd:
apt-get install syslogd
kezeodsnx 發表在 痞客邦 留言(1) 人氣(3,345)
build-in module 的init function會加上__init這個字樣,這是指當kernel做完這個module_init function後,即可釋放其resource,因為到下一次開機之前都不會再執行到了。其定義在include/linux/init.h:
#define __init __section(.init.text) __cold notrace
這是讓gcc知道當compile時,把這個fucntion放到text section。當initialize完成後即可釋放memory。開機完成後,看到的Freeing unused kernel memory: xxx k就是釋放的結果。
同樣的,在module_exit的前面也要加上__exit。
kezeodsnx 發表在 痞客邦 留言(1) 人氣(2,439)

系統整合時,常常會跟driver有關,不管是port driver還是拿廠商build好的driver。開發環境不同時,很可能會有driver跟 kernel版號不同的情況,而產生類似"-1 Invalid module format" 這樣的錯誤訊息。如果kernel 版本差別不大,是有機會可以modprobe成功,看看結果如何。而不用卡在版號不同,插不進去的loop裡。
在kernel裡,先disable modules version:
kezeodsnx 發表在 痞客邦 留言(0) 人氣(3,126)
1. xorg7.4 拿掉DRI2:
==>因為要讓GEM (intel出,在2.6.26導入)取代TTM,而DRI2依賴TTM
2. 2D/3D需要好的memory management
3. KMS: 在booting時kernel做一部分modesetting,如顯示kernel message。在進入X時,xorg的driver再做一次,因此會有閃爍。KMS就是讓kernel做所有modesetting,X就不需再做,因此不會有閃爍,在切換X/virtual console (釋放大卡的resource,包括GPU給kernel。回到xserver,硬體要再被initialize一次,然後再lock)之間也很平滑。
kezeodsnx 發表在 痞客邦 留言(0) 人氣(465)
動機
之前debug有JTAG,沒有需要remote debug,一樣可以做iteration。今天有人提了一下,就來試一下這種scenario。
顴念
kezeodsnx 發表在 痞客邦 留言(0) 人氣(18,063)
廢言
用dd,總是覺得毛毛的,總有d完重開就會死掉的感覺,總讓我再次想起我的eeemedia usb。
開始
一個完整可開機的image,想要對其做更改,但又不想裝進storage(因為裝完再dd出來size會變大),有方法如下:
kezeodsnx 發表在 痞客邦 留言(2) 人氣(3,374)

灌好archlinux後,只有螢幕的明暗會動,其他像Touchpad,audio control都是沒反應的,可以做一些customise
以audio為例,X可接受的keycode如下:
而linux下可用amixer控制sound card。兩者結合一下,就能客製化function key。
kezeodsnx 發表在 痞客邦 留言(0) 人氣(356)

keyboard mapping在定義上分成三個層次
1. physycal: 指的是鍵盤本身的定義,會帶一組keycode,如a是38,b是56 (可用xev查詢)。
2. os level: 指的是在os層的對應碼,如a是0x0061, b是0x0062 (可用xmodmap查詢)
kezeodsnx 發表在 痞客邦 留言(0) 人氣(857)
在ubuntu下,安裝qemu-arm-static後,把/usr/bin/qemu-arm-static 複製到target的/usr/bin/下就,就可以很容易的chroot成功。而在archlinux下無此套件,workaround如下:
1.下載qemu-arm-static的deb套件,解開取得qemu-arm-static的binary,複製到target的/usr/bin
2. 從ubuntu偷/var/lib/binfmts 和/var/cache/binfmts,丟到一樣的位置
kezeodsnx 發表在 痞客邦 留言(1) 人氣(1,073)