原创 kmalloc的標誌

#include  void *kmalloc(size_t size, int flags); 給 kmalloc 的第一個參數是要分配的塊的大小. 第 2 個參數, 分配標誌, 非常有趣, 因爲它以幾個方式控制 kmalloc 的

原创 iptables閱讀文檔記錄

http://blog.chinaunix.net/uid-23069658-id-3166140.html http://blog.163.com/leekwen@126/blog/static/3316622920098195496

原创 [轉] error: cannot run test program while cross compiling

在交叉編譯的時候總是使用configure --host=arm-linux 嘿嘿但是在CONFIGURE中有很多的測試程序是不可以在HOST上運行的就會出現: error: cannot run test program while c

原创 如何在configure時,將編譯參數傳入,改變默認的編譯器gcc成arm-linux-gcc 【轉】

【問題】 想要用交叉編譯工具arm-linux-gcc去編譯lrzsz,但是在./configure的時候,無法用--host=arm-linux或--build=arm-linux或--target=arm-linux等傳入此編譯器參

原创 arm上的samba移植

一、編譯 1、從http://www.samba.org/samba/ftp/old-versions/上下載Samba 3.0.23.tar.gz的軟碼包,解壓; 2、環境 1)在fedora 9的 vi /root/.bash_pro

原创 從文件到字符設備

在/dev下面有很多設備,其中也有大家廣爲使用的字符設備,呢裏面的文件是如何與字符設備掛鉤的呢~  平時我們使用的open函數是如何動態加載字符設備的操作集的呢~下面就讓我們慢慢剖析~ (以內核2.6.26爲參考)一.首先是文件系統~ 

原创 usbnet驅動深入分析-usb虛擬網卡host端

  1、驅動流程:   2、明確probe函數的功能: probe有usb core 經枚舉過程,匹配 id_table ,識別到驅動,並調用probe來初始化一些信息。 如 dev->driver_info = info 只是取得註冊

原创 usb serial

淺析usb轉serial串口設備在linux內核中枚舉創建及生成tty設備的全過程 1.usb_register和usb_register_driver用來註冊一個interface接口驅動for_devices = 0;2.usb_re

原创 移植電信3G上網卡到ARM上

ZTE AC582網卡,參考網上的資料,在arm上撥通了,我把撥通3G網絡所需的步驟記錄在下面: AC582是個多合一的設備,包含CDROM,U Disk和USB串口。 首先要把USB串口驅動起來,剛插上網卡時,掛上來一個ID爲19d2:

原创 linux關閉selinux

vi /etc/sysconfig/selinux SELINUX=enforcing --> SELINUX=disabled 重啓後生效   不需重啓 執行命令:setenforce 0

原创 insmod Invalid module format

Fedora 9系統,內核版本是2.6.25.14。 1.從www.kernel.org下載Linux 2.6.25.14源代碼並解壓,存放路徑是/usr/src/linux-2.6.25.14。 2.驅動程序是hello.c。在當前目錄

原创 個人對kobject的一點研究

在LINUX中最讓人不解的大概就是/sys下面的內容了下面首先讓我們來創建一個簡單的platform設備,並從這個設備的視角進行深入,在此篇文章的深入過程中,我們只看kobeject的模型我所使用的內核版本號爲2.6.26,操作系統的內核

原创 USB-NET說明

1.    USB-NET說明本分析是建立在linux2.6.20內核基礎上。2.    USB-NET系統結構圖                             a linux實現    linux主要實現兩個接口 – 發送接

原创 【轉載】Linux設備驅動程序

(本部分的一些示例源碼來自drivers/usb/usb-skeleton.c,它是Linux內核爲我們提供的最基礎的USB驅動程序,USB骨架程序) 驅動程序把驅動對象註冊到 USB 子系統中,之後使用供應商(idVendor)和設備

原创 內核移植

1. 構建起環境 要使用內核,首先要編譯內核。如果不選擇合適的內核和編譯器,就會出現錯誤。典型的就是如下的錯誤: EG: CC arch/arm/kernel/asm-offsets.s cc1: error : invalid opti