variable和function是Makefile在被讀取時即展開。
wildcard可用來檢測檔案是否存在,但如果沒注意到變數展開的時間,就會出現結果與預期不符的情況。
 
現有Makefile如下

kezeodsnx 發表在 痞客邦 留言(0) 人氣()

syslog server 可提供外部的client將其syslog傳送至server
步驟沒幾個:
1. 安裝syslogd:
    apt-get install syslogd

kezeodsnx 發表在 痞客邦 留言(1) 人氣()

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) 人氣()

modversion
系統整合時,常常會跟driver有關,不管是port driver還是拿廠商build好的driver。開發環境不同時,很可能會有driver跟 kernel版號不同的情況,而產生類似"-1 Invalid module format" 這樣的錯誤訊息。如果kernel 版本差別不大,是有機會可以modprobe成功,看看結果如何。而不用卡在版號不同,插不進去的loop裡。
在kernel裡,先disable modules version:
 

kezeodsnx 發表在 痞客邦 留言(0) 人氣()

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) 人氣()

動機
之前debug有JTAG,沒有需要remote debug,一樣可以做iteration。今天有人提了一下,就來試一下這種scenario。
 
顴念

kezeodsnx 發表在 痞客邦 留言(0) 人氣()

orice
廢言
用dd,總是覺得毛毛的,總有d完重開就會死掉的感覺,總讓我再次想起我的eeemedia usb。
開始
一個完整可開機的image,想要對其做更改,但又不想裝進storage(因為裝完再dd出來size會變大),有方法如下:

kezeodsnx 發表在 痞客邦 留言(2) 人氣()

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

kezeodsnx 發表在 痞客邦 留言(0) 人氣()

keycode-a
keyboard mapping在定義上分成三個層次
1. physycal: 指的是鍵盤本身的定義,會帶一組keycode,如a是38,b是56 (可用xev查詢)。

2. os level: 指的是在os層的對應碼,如a是0x0061, b是0x0062 (可用xmodmap查詢)

kezeodsnx 發表在 痞客邦 留言(0) 人氣()

在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) 人氣()

下載完後,直接拿來開機,介面跟古早的linux安裝很像,就是dialog,把它當windows一步一步裝,有點sense的話,還蠻直覺的。裝完之後就是一個console,再來就是把應用程式裝上去:
1. 編輯 /etc/pacman.d/mirrorlist: 打開一些mirror site,台灣可新增如下
#Taiwan
Server=ftp://ftp.mirror.tw/pub/ArchLinux/$repo/os/i686
Server=http://ftp.mirror.tw/pub/ArchLinux/$repo/os/i686
2. 先做一次upgrade: pacman -Syn。不熟悉pacman的話可參照指令對應。

kezeodsnx 發表在 痞客邦 留言(0) 人氣()

請見楊小斯作品集之initrd與initramfs

kezeodsnx 發表在 痞客邦 留言(0) 人氣()

1 2 3 4
Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。