linux核心I2C子系統學習(二)

下面具體分析如何寫第一部分:主控晶片的i2c驅動分為2個步驟:寫匯流排驅動:選了個主控晶片,比如:S3C8900(自己瞎編的晶片)在driver/i2c/busses/i2c-s3c2410.c中沒有找到這個晶片的I2C支援(匯流排驅動支援)。。。(倒黴了,沒有選好晶片,也可能是最新型號的,linux核心沒跟上)在此之前先分析i2c-s3c2410.c中完成的工作(匯流排驅動):設計對應於i2c_adapter_xxx_init()模板的s3c8900的模組載入函數和對應於i2c_adapter

linux核心I2C子系統學習(三)

寫裝置驅動:四部曲:構建i2c_driver註冊i2c_driver構建i2c_client ( 第一種方法:註冊字元裝置驅動、第二種方法:通過板檔案的i2c_board_info填充,然後註冊) 登出i2c_driver具體如下:●    構建i2c_driverstatic struct i2c_driver pca953x_driver = { .driver = { .name=

ov9650網路攝影機驅動之——linux核心v4l2架構分析1

 本系列準備分為3-4篇來講,因為說的太多會比較亂 v4l2視頻驅動主要涉及幾個知識點:    網路攝影機方面的知識(網路攝影機廠家提供的晶片手冊可以查看)要瞭解選用的網路攝影機的特性,包括存取控制方法、各種參數的配置方法、訊號輸出類型等。    Camera解碼器、控制器(主控晶片的晶片手冊裡面有網路攝影機相關的寄存器設定,比如2410裡,裡面主要是設定相關控制功能使能,晶片內部自己的架構)如果網路攝影機是類比量輸出的,要熟悉解碼器的配置。最後數位視訊訊號進入camera控制器後,還要熟悉ca

ov9650網路攝影機驅動之——linux核心v4l2架構分析2

NO.2 Camera解碼器、控制器 1.根據camera控制器的描述,映像傳輸有兩個DMA通道,我們用的是C通道,所以先將DMA記憶體初始化,因為在V4L2操作中有把VIDIOC_REQBUFS中分配的資料緩衝轉換成物理地址的操作所以DMA在用之前要初始化,包括實際物理地址的計算init_image_buffer(camera_dev);// 初始化   static int __inline__ init_image_buffer(struct s5pc100_camera_device *

Linux核心(四)

嵌入式Linux的啟動流程:Bootloader:硬體上電後跳到一個固定位置執行相應代碼,初始化相應裝置,載入核心代碼到記憶體,跳到核心代碼起始位置執行;kernel:核心自解壓,初始化靜態編譯進核心的驅動模組,掛載根檔案系統,直接執行第一個使用者空間程式;第一個使用者空間程式:配置使用者環境和執行服務進程。 1. 系統的啟動和初始化    在基於Intel的系統上,當 loadlin.exe 或 LILO把核心裝入到記憶體並把控制權傳遞給核心時,核心開始啟動。arch/i386/kernel/

我的針對根分區(ext3)的Linux磁碟限額配置經曆

針對非根分區的分區,比如/home,這樣的quota很好做,主要就是quotacheck,edquota,quotaon/quotaoff這三個東西,具體的可以看之前發過的有關quota的配置文章,說的很不錯的。 這次想針對根分區做一個quota,因為之前/home沒有分成一個單獨的分區。做了一下,發現其實和做單獨的分區做法是一樣的,只有一點很小的差別,從中也悟出了一些道理,於是記錄在此: 1. /etc/fstab中是需要加入usrquota,

Linux使用dmidecode來查看機器有幾根記憶體插槽,哪個槽上有記憶體

直接輸入dmidecode即可,輸出有很多,好像是根據SM匯流排來查詢的,包括能查詢到BIOS的地址空間和其中的資訊等等,記憶體資訊只是其中的一部分。摘錄如下:Code highlighting produced by Actipro CodeHighlighter

Linux從zh_CN.GB2312遷移到zh_CN.UTF-8 – 包括 檔案內容編碼轉換,檔案名稱編碼轉換..

見附件這篇文章非常不錯,講述了如何將: 檔案內容,檔案名稱,MP3裡面的ID3 Tag,VIM。。。中的GB2312遷移到UTF-8的方法和實踐。 摘錄一些特有用的: enca命令可以用來檢測一個文字檔的編碼 iconv可用來轉換一個檔案的內容的編碼 convmv可用來將檔案名稱做編碼轉換,而不是轉換檔內容 GB2312 是國標裡面一個最小也是最早的中文編碼通訊協定。其中,只涵蓋了 6,763 個漢字。所以你需要轉換的檔案的原始的格式可能並不是 GB2312 編碼。這個時候,你可以用 GB180

電源功率不夠會導致Linux啟動出奇怪的現象 — 檔案系統訪問不正常

公司的電腦,閑置了兩塊硬碟,想把這兩塊硬碟放到一台Celeron D的機器中,這台機器電源功率250W,估計實際輸出功率可能都不到200W,之前接了一塊硬碟和一個光碟機。 硬碟裝入後,機器啟動,能識別出三個硬碟和一個光碟機,以為大功告成。結果發現系統一開始死在Boot from CD:這裡,因為設定的是光碟機先啟動,再啟動硬碟。沒在意,在BIOS中設定成硬碟先啟,結果進入Linux,發現了更奇特的現象。 Linux啟動就一直死在Starting system logger:這一步,幾次都是這樣,

Linux下用semaphore來做進程間互斥

semaphore很類似windows下的kernel object,一旦建立,可以被多個進程使用,當然一個進程中多個線程也可以使用semaphore來互斥。談到互斥,一般semaphore的值就是1。man 7 sem_overview可以看到很多有用的資訊。Semaphore和pipe一樣,也有有名的和無名的兩種。無名的嘛,在父子進程間使用比較方便,有名的嘛,在"不搭界"的多進程中使用很方便。這裡貼一段代碼,代碼最能說明問題,其他都參考manual就OK了。Code

Linux網路編程 — select/epoll得知socket有資料可讀,如何判斷資料全部被讀取完畢?

補充一點:只有在使用epoll ET(Edge Trigger)模式的時候,才需要關注資料是否讀取完畢了。使用select或者epoll的LT模式,其實根本不用關注資料是否讀完了,select/epoll檢測到有資料可讀去讀就OK了。 這裡有兩種做法: 1. 針對TCP,調用recv方法,根據recv方法的傳回值,如果傳回值小於我們指定的recv buffer的大小,則認為資料已經全部接收完成。在Linux epoll的manual中,也有類似的描述: For stream-oriented

Linux 2.6.23開始使用CFS(complete fair schedule),線程Priority不再有效

Code highlighting produced by Actipro CodeHighlighter

安騰機器IA64 全自動網路安裝Linux – elilo+kickstart

以前的文章都是針對ia32和x86_64的,網路安裝IA64的機器有點問題,最關鍵的就是pxelinux不支援IA64,取而代之的是elilo,這是HP做的。 安騰的機器最特別的就是EFI了,在之前有篇EFI的讀書筆記可以參考。簡單來說,要實現網路安裝,做法如下: 1. 配置DHCP,和之前一樣配置 2. 配置TFTP,和之前一樣配置 3.

Linux的永久連結和軟連結有何區別?

1.永久連結實際上是為檔案建一個別名,連結檔案和原檔案實際上是同一個檔案。可以通過ls -i來查看一下,這兩個檔案的inode號是同一個,說明它們是同一個檔案;而軟連結建立的是一個指向,即連結檔案內的內容是指向原檔案的指標,它們是兩個檔案。 2.永久連結只能用於檔案,不能用於目錄;軟連結可以為目錄建連結。 3.永久連結不能跨檔案系統操作。

配置Linux下的時間伺服器,讓一批機器和一台機器時間同步

Linux內建了ntp服務 -- /etc/init.d/ntpd,這個服務不僅可以設定讓本機和某台/某些機器做時間同步,他本身還可以扮演一個time server的角色,讓其他機器和他同步時間。設定檔就是/etc/ntp.conf。 為了測試,在公司設定讓sales -- 192.168.0.3和router -- 192.168.0.1做時間同步。router做time server,router本身不和其他機器時間同步,就是取本地時間。所以,我先把router機器的時間調準了: date

Linux Enterprise Cluster NOtes — Ch4 同步:ssh和rsync

Chapter 4: Synchronizing Servers with RYSNC and SSH 1. rsync. 本書是一本描述HA和load balance的書,這一章主要是在描述如何同步兩台伺服器上的檔案和內容。因為在做HA的時候,兩台伺服器上的內容必須完全一樣,這樣,當一台掛掉之 後,另外一台才能馬上接替工作。當然了,如果兩台伺服器無盤,共用一個儲存的話,就沒有這個必要了。如果不是,那麼就要做這些事情。 2. 本書的組織上,首先是講HA,然後講load

使用expect實現ssh自動輸入密碼,從而自動登陸Linux

以下來自網上的一些資料和自己的實驗,用以下命令執行: expect -f expect-ssh.exp <username> <password> <hostname or ip> 注意,在這個expect-ssh.exp中,connect函數主要負責登陸,代碼的最後兩行,兩個send是登陸上去後,執行的命令,注意最後一定要執行一個exit,否則會導致expect執行完成後還留在遠程主機上。 這裡是expect-ssh.exp的源碼: Code

從串口登入Linux主機

一般來說,登入Linux系統,我們會使用telnet,ssh,rlogin,甚至可以使用webmin通過web來管理 但這都需要網路的支援,一旦網路出現問題,以上的方法都將失效 這裡介紹如何使用串口登入到Linux主機(就好比配置Cisco的路由器一樣) 首先確認Linux系統中有/sbin/agetty,然後編輯/etc/inittab,添加: “7:2345:respawn:/sbin/agetty/dev/ttyS0

Linux執行緒模式比較-Linux Threads and NPTL

Linux Thread和POSIX是不相容的,而且,在核心裡面,一個線程其實就是一個進程(只不過這些線程都是通過clone產生的),所以,有著很多的缺點,比如,我們在一些比較老的系統上(如RedHat9之前的版本,RHEL AS2系列上),可以看到一個多線程的程式,在TOP或PS或/proc下,能看到很多進程資訊項,這就是因為這些線程在核心中都是以進程的方式存在的,詳情請看文章中Linux Thread的限制一節 NPTL是Native Posix Thread

為什麼x86 Linux程式起始地址是從0×08048000開始的?

1. The load address is arbitrary, but was standardized back with SYSV for x86. It's different for every architecture. What goes above and below is also arbitrary, and is often taken up by linked in libraries and mmap() regions.2. The answer is

總頁數: 3662 1 .... 384 385 386 387 388 .... 3662 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.