Thursday, December 17, 2009

mac 下用 meld

Meld 是 Linux 下很習慣用的比對工具,仰賴 darwin port 的 project,Mac 下也有機會可以用了。
但是啟動的時候,遇到一些錯誤。

Xlib: extension "RANDR" missing on display "/tmp/launch-RsRIqw/:0".
Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded!
Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded!
Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded!
Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded!
Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded!
Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded!
Traceback (most recent call last):
File "/opt/local/bin/meld", line 109, in
meldapp.main()
File "/opt/local/lib/meld/meldapp.py", line 855, in main
app = MeldApp()
File "/opt/local/lib/meld/meldapp.py", line 528, in __init__
self.prefs = MeldPreferences()
File "/opt/local/lib/meld/meldapp.py", line 465, in __init__
prefs.Preferences.__init__(self, "/apps/meld", self.defaults)
File "/opt/local/lib/meld/prefs.py", line 91, in __init__
self._gconf.add_dir(rootkey, gconf.CLIENT_PRELOAD_NONE)
glib.GError: Failed to contact configuration server; some possible causes are that you need to enable TCP/IP networking for ORBit, or you have stale NFS locks due to a system crash. See http://projects.gnome.org/gconf/ for information. (Details - 1: Failed to get connection to session: Not enough memory)


google 了一下,發現要執行下面兩行先:

# sudo launchctl load -w /Library/LaunchDaemons/org.freedesktop.dbus-system.plist
# launchctl load -w /Library/LaunchAgents/org.freedesktop.dbus-session.plist

注意的是,很多網站兩行都已 sudo 開頭,其實第二行必須自身的帳號執行( 也是google 來的拉)。
照做之後,果然就可以動了,耶~

Thursday, December 10, 2009

log of noapic, nolapic, and normal

log of interrupt arrange (nolapic) :

BOOT_IMAGE=/boot/vmlinuz-2.6.31-16-generic root=UUID=27632531-dd03-4a63-91c3-8b6f1fdf9a82 ro quiet splash nolapic
CPU0
0: 10855 XT-PIC-XT timer
1: 4 XT-PIC-XT i8042
2: 0 XT-PIC-XT cascade
5: 3535 XT-PIC-XT ahci
7: 1 XT-PIC-XT
8: 1 XT-PIC-XT rtc0
9: 537 XT-PIC-XT acpi, ohci_hcd:usb2, ath
10: 633 XT-PIC-XT HDA Intel
11: 54 XT-PIC-XT eth0
12: 6 XT-PIC-XT i8042
15: 835 XT-PIC-XT ehci_hcd:usb1
NMI: 0 Non-maskable interrupts
LOC: 0 Local timer interrupts
SPU: 0 Spurious interrupts
CNT: 0 Performance counter interrupts
PND: 0 Performance pending work
RES: 0 Rescheduling interrupts
CAL: 0 Function call interrupts
TLB: 0 TLB shootdowns
TRM: 0 Thermal event interrupts
THR: 0 Threshold APIC interrupts
MCE: 0 Machine check exceptions
MCP: 1 Machine check polls
ERR: 1
MIS: 0

* CPUINFO still show two CPU inside, and working
log of interrupt arrange (noapic) :

BOOT_IMAGE=/boot/vmlinuz-2.6.31-16-generic root=UUID=27632531-dd03-4a63-91c3-8b6f1fdf9a82 ro quiet splash noapic
CPU0 CPU1
0: 38 0 XT-PIC-XT timer
1: 2 0 XT-PIC-XT i8042
2: 0 0 XT-PIC-XT cascade
7: 1 0 XT-PIC-XT
8: 1 0 XT-PIC-XT rtc0
9: 241 0 XT-PIC-XT acpi, ohci_hcd:usb2, ath
10: 500 0 XT-PIC-XT HDA Intel
11: 492 0 XT-PIC-XT eth0
12: 4 0 XT-PIC-XT i8042
15: 1168 0 XT-PIC-XT ehci_hcd:usb1
29: 3438 0 PCI-MSI-edge ahci
NMI: 0 0 Non-maskable interrupts
LOC: 10689 9561 Local timer interrupts
SPU: 0 0 Spurious interrupts
CNT: 0 0 Performance counter interrupts
PND: 0 0 Performance pending work
RES: 135 130 Rescheduling interrupts
CAL: 39 73 Function call interrupts
TLB: 345 246 TLB shootdowns
TRM: 0 0 Thermal event interrupts
THR: 0 0 Threshold APIC interrupts
MCE: 0 0 Machine check exceptions
MCP: 1 1 Machine check polls
ERR: 1
MIS: 0
log of interrupt arrange (normal) :

BOOT_IMAGE=/boot/vmlinuz-2.6.31-16-generic root=UUID=27632531-dd03-4a63-91c3-8b6f1fdf9a82 ro quiet splash
CPU0 CPU1
0: 51 0 IO-APIC-edge timer
1: 2 0 IO-APIC-edge i8042
7: 1 0 IO-APIC-edge
8: 1 0 IO-APIC-edge rtc0
9: 0 0 IO-APIC-fasteoi acpi
12: 4 0 IO-APIC-edge i8042
19: 405 0 IO-APIC-fasteoi ath
20: 1151 0 IO-APIC-fasteoi ohci_hcd:usb2
21: 4381 0 IO-APIC-fasteoi ehci_hcd:usb1
22: 701 0 IO-APIC-fasteoi HDA Intel
23: 541 0 IO-APIC-fasteoi eth0
29: 8871 0 PCI-MSI-edge ahci
NMI: 0 0 Non-maskable interrupts
LOC: 31080 24673 Local timer interrupts
SPU: 0 0 Spurious interrupts
CNT: 0 0 Performance counter interrupts
PND: 0 0 Performance pending work
RES: 98 130 Rescheduling interrupts
CAL: 43 64 Function call interrupts
TLB: 281 622 TLB shootdowns
TRM: 0 0 Thermal event interrupts
THR: 0 0 Threshold APIC interrupts
MCE: 0 0 Machine check exceptions
MCP: 3 3 Machine check polls
ERR: 1
MIS: 0

Sunday, November 29, 2009

ReactOS :

http://www.reactos.org/tw/index.html

http://blog.roodo.com/ystuan/archives/10460581.html

試著在 binary level 與 MS 的 Windows 相容,說來有點匪夷所思。但仔細想來,就是將每個 Windows 的關鍵零件都實作一份,@@好像還是很恐怖。

It also reference some from Wine project. According to the live video, at least it's workable - at some kind of situation.
You can use the 'indent' tool to fix the coding style like this:
indent -npro -kr -i8 -ts8 -sob -l80 -ss -ncs *.[ch]
Multiboot ( mboot )

Not to boot multiple OS, but to define the protocol between boot loader and OS.
Boot loader can also load lots modules into memory, and info OS to get use of it.
A good use case is for Xen, or other hypervisor, to load additional initramfs.

Grub 2 support mboot
http://www.gnu.org/software/grub/grub-2.en.html

syslinux + mboot.c32
http://syslinux.zytor.com/wiki/index.php/Mboot.c32

Multiboot speification
http://www.gnu.org/software/grub/manual/multiboot/
-> contain detail information about protocol definitions, also piece of code that OS parts may need.

Article about multiboot :
http://onlamp.com/pub/a/bsd/2007/03/01/inside-multiboot.html

Explain some idea about why multiboot been designed. One goal is to have a unify boot loader to load all kind of OS.

不過裡面提到的,BIOS 要 load HD 的第一個 sector 這件事來說。現存的各種 boot loader,也都有能力 load foreign OS 了。所以是不是要搶占這個位置,倒不重要了。

對於 boot loader 怎 load linux 這塊,這兩年搞很熟了,應該補一下關於 load Windows 這塊的知識倒是。

Saturday, November 28, 2009

利用 python 啟動超簡易的 http server

http://joseph-in-linux-cht.blogspot.com/2009/09/python.html

以這個 command :

python -m SimpleHTTPServer

會啟動一個 bind to 8000 port 的 server, 分享當前的目錄

Tuesday, November 24, 2009

你所不知道的 iPhone 真相

http://www.sogi.com.tw/newforum/article_list.aspx?Topic_id=6102981
Find out which program/process is locking a file in mac osx

from : http://www.macosxhints.com/article.php?story=20091104085622117

Basically, use lsof command, with a AppleScript to work with Finder
Allow root to login X in gdm :

in /etc/gdm/custom.conf

[security]
AllowRoot=true

restart gdm to try

Monday, November 23, 2009

what is modules.dep ? modules.order ?
CPIO command :

cpio -t 列表 initramfs 裡面的 file
zcat /boot/initrd.img-2.6.24-12-generic | cpio -t


cpio -i 解開 cpio 的 file
zcat /boot/initrd.img-2.6.24-12-generic | cpio -i

zcat 可以邊解邊 cat,對於沒壓縮過的,直接用 cat 就可以了

cpio -o 製作 cpio files
find . | cpio -o -H newc | gzip -9 > initramfs.gz