Ubuntu Packaging Guide 如果只看文章標題和列表的話,表面上似乎和 debian 沒什麼差別。
但是 Ubuntu 現在都是透過 Ubuntu Distributed Development 的模式來開發,所以裡面許多章節都是重寫過的,新增加了 UDD 的部份。
例如 Uploading a package,裡面提到了在 dput 之面必須用 bazzar 在 launchpad 建立一個 branch 之類的新流程。
Ubuntu Packaging Guide 如果只看文章標題和列表的話,表面上似乎和 debian 沒什麼差別。
但是 Ubuntu 現在都是透過 Ubuntu Distributed Development 的模式來開發,所以裡面許多章節都是重寫過的,新增加了 UDD 的部份。
例如 Uploading a package,裡面提到了在 dput 之面必須用 bazzar 在 launchpad 建立一個 branch 之類的新流程。
許多筆記型電腦的熱鍵(hotkey)都是透過WMI介面來控制的,常見的如音量大小、亮度,wifi開關等…。
在實作或是debug時,第一步就是必須取得WMI的GUID。在Linux下我所知道的有三種方式可以取得:
方式一:`ls -l /sys/class/wmi`
這種方式只能列出所有由wmi.ko (ACPI-WMI Mapping Driver)得到的GUID,沒有其它如flag的資訊。
方式二:使用 wmidump
wmidump可以列出詳細的wmi資訊,但是用法比較麻煩,必須先dump DSDT,再用文字編輯器把 _WDG 中的資料複製到另一個文字檔案,然後再餵給 wmidump。wmidump也沒在debian/ubuntu archive中,必須自己從上面的git tree clone下來編繹。
方式三:`sudo fwts wmi`
yeah,最簡單的方式,用 Firmware Test Suite (fwts) \o/。可以列出完整的wmi資訊,用法又簡單。
幫fwts增加一個測項十分簡單,十分類似kernel driver的型式。
下面這段簡單的例子是從 http://kernel.ubuntu.com/git?p=hwe/fwts.git;a=blob;f=src/example/blank/blank.c 刪掉一些 comment 而來。
不過如果你真的要開始coding的話,可以直接從 blank.c 開始,裡面有更多詳細的註解。
#include "fwts.h" static int example_init(fwts_framework *fw) { } static int example_deinit(fwts_framework *fw) { } static int example_test1(fwts_framework *fw) { } static int example_test2(fwts_framework *fw) { } static fwts_framework_minor_test example_tests[] = { { example_test1, "Example sub test1 name." }, { example_test2, "Example sub test2 name." }, { NULL, NULL } }; static fwts_framework_ops example_ops = { .description = "Example name.", .init = example_init, .deinit = example_deinit, .minor_tests = example_tests }; FWTS_REGISTER(example, &example_ops, FWTS_TEST_ANYTIME, FWTS_BATCH);
Firmware Test Suite(fwts)是目前Canonical Hardware Enablement team維護的BIOS測試工具。HWE的日常工作常常遇到許多BIOS的bug,所以我們將常見的BIOS bug的測項寫成這個工具。
在這個Ubuntu release cycle,我開始接下fwts套件的維護工作,歡迎大家的使用。 :-)
git tree: http://kernel.ubuntu.com/git?p=hwe/fwts.git
想使用最新版本,也可在firmware testing team PPA安裝。