2010年10月30日 星期六
nm-applet 在 ubuntu 10.10 無法顯示
我將ubuntu升級成10.10之後,nm-applet就不能用了,找了好久,終於找到修復的方法了。
1. 修改/etc/dbus-1/system.d/NetworkManager.conf和/etc/dbus-1/system.d/nm-applet.conf將deny,改allow
2. 刪除 /etc/network/interfaces
3. 重新開機
參考資料:
https://bugs.launchpad.net/ubuntu/+source/network-manager-applet/+bug/249404
http://louis3c.blogspot.com/2008/11/ubuntu-810-networkmanagernm-applet.html
2010年10月9日 星期六
GCC (4.4.1)之C Preprocessor part III
Conditionals CPPP的Conditionals和C中的if很像,不過C的if是在run-time決定是否要被執行,而CPP則是在compiler time就決定code是否被編譯。
Conditionals主要有三個指令#if、#ifdef和#ifndef。
#ifdef MACRO #endif當MACRO被定義這個block才會被編譯,而#ifndef剛好相反。
#if expression #endif當expression為非0這個block才會被編譯。而#if defined(MACRO)就等同於#ifdef MACRO,#if也有巢狀寫法。
#if X == 1 #elif X >= 10 #else #endif個人偏愛"#if"勝於"#ifdef",主要因為"#if"可以取代"#ifdef",而且"#if"還支援數學運算,如+,-*,/還有bitwise operations, shifts, comparisons, and logical operations (&& and ||)等等,不過僅限於整數型態的運算。
#if (1<<2) > 5 #warning "(1<<2) > 5" #else #warning "!((1<<2) > 5)" #endif
Diagnostics
CPP有兩個Diagnostics指令#error和#warning,差異在於一旦執行到#error就會終止處理。
標籤:
C,
GCC - C Preprocessor
Management Data Input/Output
Management Data Input/Output簡稱MDIO,MDIO提供MAC(Media Access Control)如何去存取PHY的標準,制定於802.3裡面。
這張圖我想表達MAC/PHY之間的關係,MAC屬於data link層,PHY屬於Physcial層。
MDIO有兩組訊號線,MDC(Management Data Clock),由圖就可以理解是由STA(Station Management)提供的,而且和TX_CLK/RX_CLK無關。MDIO是一個bidirectional signal,用於PHY和STA之間傳送控制訊號。
frame format
PRE (preamble)STA的每一個指令都會先送出連續32bit的1和PHY取得同步。
ST (start of frame)算是一個pattern,告知PHY這個後面就是MDIO frame了。
OP (operation code)10為read,01為write。
PHYAD (PHY Address)這個MDIO bus上面每個PHY都要有獨一無二的address,讓STA辨識,5個bit,所以最多可有32個PHY在這一組MDIO bus上面。
REGAD (Register Address)5個bit,允許每個PHY可以有32組register。
TA (turnaround)當PHY執行wtite時,TA就是單純的送出10,而當PHY是要read時,STA和PHY會在第一個bit會輸出高阻抗(high-impedance),PHY接著會在第二個bit送出0,後面PHY就會吐出data給STA了,看下面的時序圖就會清楚了。
圖檔來源:http://www.tech-regal.com/post/Ethernet-MII.html
參考資料:
- IEEE 802.3, http://standards.ieee.org/getieee802/download/802.3-2008_section2.pdf
- http://www.tech-regal.com/post/Ethernet-MII.html
- http://en.wikipedia.org/wiki/Management_Data_Input/Output
標籤:
HW - network
訂閱:
文章 (Atom)
熱門文章
-
轉自 http://www.wretch.cc/blog/redsonoma/14021073 基本概念: 1> tty(終端設備的統稱): tty一詞源於Teletypes,或者teletypewriters,原來指的是電傳打字機,是通過串行線用打印機鍵盤通過閱...
-
Work queue提供一個interface,讓使用者輕易的建立kernel thread並且將work綁在這個kernel thread上面,如下圖[1]所示。 由於work queue是建立一個kernel thread來執行,所以是在process context...
-
(V)將介紹file operations中的ioctl。ioctl的prototype為: int (*ioctl) (struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg); ...
-
這兩天電腦的word忽然都不能存檔,即便是另存新檔也不行,最後都只能放棄修改檔案,即便重新安裝過或者更新成2007也都不能存檔,最後就乖乖的google一下,原來是暫存的資料夾不存在,按照以下方式就可以解決了。 資料來源: word 2003不能存檔問題 編輯機碼的(reg...
-
System Call在HW和user space提供一層抽象層,主要目的有: 為user space提供硬體抽象層。比如,讀取檔案時,不用管檔案所在的媒體類型與檔案儲存類型。 System call能確保系統的安全與穩定。避免user space的無意或惡意的破壞。 ...
-
在kernel中建立thread可以使用kthread_create(),建立一個task,然後在調用wake_up_process(task)讓task真正的運行,如果要kill一個kthread可以使用kthread_stop()。 在kernel中,將kthread_cr...
-
Linux module練習手札I紀錄如何撰寫一個簡單的module,並且編輯它,以及load和unload一個module。 write a module #include <linux/init.h> #include <linux/module.h...
-
幾乎任何使用 TCP,UDP或UNIX-domain socket的動作都可以用nc來達成,常見的功能如。 simple TCP proxies shell-script based HTTP clients and servers network daemon testi...
-
很多人心中都有過一個問題 What is the difference between Platform driver and normal device driver? ,簡單的來說Platform devices就non-discoverable,也就是device本身沒辦法...
-
組成元件 要能正確顯示資料,必須包含資料倉儲(Store),資料欄位的定義(ColumnModel)。 首先我們先定義資料欄位: var cm = new Ext.grid.ColumnModel({ {header: 'Name', dataIndex...