ko源碼論壇
1. 請人幫忙用linux生成個arm平台的.ko文件
在你的joydev.c同目錄下面創建一個Makefile文件。然後打開編譯,在裡面添加內容
obj-m :=joydev.o
KERNEL=/myfile/linux-3.0.50 #這個是你內核的所在目錄是什麼就填什麼
all:
make -C $(KERNEL) M=$(PWD) moled #這句話要以TAB鍵開頭,不能是空格鍵。
保存退出
然後在終端敲入make
2. 怎樣搭建內部區域網的在線電影伺服器用什麼軟體
第一,如果只是下載,你就可以架設一個IIS伺服器,找一個下載的ASP源代碼就可以了。這個不少。
第二,如果你要做一個視頻點播,也就是VOD,那你就需要多找找了,而且做VOD的話需要考慮的太多了。
樓上說的美屏視頻點播系統我沒用過。因為據我所知的,一般VOD系統都要上十萬一套。因為如果程序方面做的不好的話,很有可能讓你的網路崩潰。而且,你的伺服器本身是否能承受這種視頻點播,尤其是你的硬碟,是陣列嗎?能承受多大的流量。
如果是自己玩,WMV格式的電影,標准安裝的WINDOWS server就可以做流媒體播放。
3. 在Ubuntu上做內核編程,要安裝哪個包怎麼做
1、gcc (C編譯器)
安裝 apt-get install gcc
2、make (源代碼維護工具,它能自動檢測出需要重新編譯的源文件並根據你設定的編譯規則去重新編譯程序)
安裝 apt-get install make
3.kernel-source (內核源碼包。你可以apt-cache search kernel-source搜索到內核源代碼包,並用uname -r命令查看到當前系統內核版本,然後用apt-get install kernel-source-xxxx來安裝和你內核版本一致的內核源代碼包)
如果你不想重新編譯內核,內核源代碼包kernel-source是完全可以不下載的。
4.kernel-headers(內核源代碼頭文件包,不管你是要進行內核模塊開發還是進行驅動程序開發,這個包都是必須 要安裝的。因為作為一個內核模塊編寫者,通常會調用內核里的一些東西,比如內核頭文件,內核數據結構申明等。它裡麵包含了一些關鍵的內核頭文件)
安裝 apt-cache search kernel-headers
uname -r
apt-get instakk kernel-headers-xxxx
5.kernel-kbuild(用來編譯內核模塊的,下載安裝這個包後會發現在/usr/src目錄下多了一個kernel-kbuild-xxxx開頭的目錄,下面只有scripts一個目錄,這是用來編譯內核模塊的一些腳本程序)
安裝 apt-cache search kernel-kbuild
uname -r
apt-get install kernel-kbuild-xxxx
6.build-essential(包含一個在建立deb包過程中起關鍵作用的包的信息列表,如果你不想建立deb包你就不需要安裝此表)
安裝 apt-get install build-essential
7.kernel-package(如果你想把內核鏡像做成一個deb包來用,那麼必須用安裝這個包了)
安裝 apt-get install kernel-package
8.initrd-tools(如果你想製作啟動過程的initrd鏡像,則這個包是必不可少的)
安裝 apt-get instakk initrd-tools
假設你編寫了一個內核模塊程序,源代碼如下:
/* hello.c */
#include <linux/init.h>
#include <linux/mole.h>
#include <linux/kernel.h>
static int hello_init(void)
{
printk(KERN_ALERT "Hello, linux kernel mole
");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye, I've created a linux kernel mole sucessfully
");
}
mole_init(hello_init);
mole_exit(hello_exit);
MODULE_LICENSE("GPL");
你需要這此源程序編寫一個makefile,內容如下:
#Makefile for hello.c file
#
KERNEL_DIR:=/usr/src/linux
obj-m:=hello.o
default:
$(MAKE) -C $(KERNEL_DIR) SUBDIRS=$(PWD) moles
clean:
$(RM) .*.cmd *.mod.c *.o *.ko -r .tmp
注意:這里的KERNEL_DIR是指內核源代碼頭文件所在目錄的上一級目錄,通常就是指內核源代碼目錄。該目錄一般包括有arch,drivers,fs,include,init,ipc,kernel,lib,mm,net,scripts,usr,sound,security等目錄。
在本示例中,/usr/src/linux是一個鏈接,指向了/usr/src/kernel-headers-2.6.8-3目錄。
編寫好makefile後就可以輸入make命令生成hello.ko內核模塊了,然後你可以用:
insmode hello.ko
命令來加入內核模塊,然後用:
rmmod hello
來刪除內核模塊。
4. LINUX驅動開發: UBUNTU下,比如我寫了個.C 驅動文件。 之後我要把它放在哪裡,我才能得到.ko文件,詳細些
兩種方法:
1,直接添加進內核。
a, 比如進入drivers/char/目錄,把xxx.c文件拷貝到該目錄
b, 修改drivers/char/Kconfig文件,自定義仿照其他選項,添加自己的選項XXX。
c, 修改drivers/char/Makefile文件,添加obj-$(CONFIG_XXX) += xxx.o
d, 進入內核根目錄,make menuconfig,進入device drivers->character devices在這裡面找到XXX選項,配置成「M」,也就是模塊編譯,會生成xxx.ko
2,隨便建一個目錄,寫Makefile,這個Makefile裡面,要指定內核源碼根目錄,並調用內核源碼的Makefile,來編譯當前目錄的文件,類似一下格式,可在網上找一個Makefile來修改:
CFILES = xxx.c
DRIVER_NAME = xxxx
KSRC := /home/linux/linux-2.6.xxx
TARGET = $(DRIVER_NAME).ko
obj-m += $(DRIVER_NAME).o
$(DRIVER_NAME)-objs := $(CFILES:.c=.o)
default:
$(MAKE) -C $(KSRC) SUBDIRS=$(shell pwd) moles
5. 編譯時內核怎麼生成的ko文件
從網上找一個編譯模塊的makefile,放到你的模塊的文件夾裡面,然後修改裡面的路徑指定編譯的內核,以及目標名稱。make就可以了。
6. linux內核模塊編譯-通過Makefile重命名.ko文件名和模塊名
假設模塊的源文件為hello.c,源碼如下:
使用該文件編譯內核模塊。
正常情況下,Makefile文件內容如下:
執行 make 命令,生成hello.ko文件。
執行 sudo insmod hello.ko 命令,安裝該模塊。
執行 lsmod 命令,查看安裝的模塊。就會看到第一行的就是hello模塊。
但是,如果想自定義模塊名稱為 xmole ,而不是默認的 hello ,如何實現呢?方法如下:
在Makefile中重命名obj-m並將obj-m的依賴關系設置為原始模塊(hello)
修改後的Makefile文件內容如下:
將obj-m設置為 xmole .o,並使 xmole .o依賴於 hello .o.
執行 make 命令後,生成 xmole .ko, 而不是 hello .ko,
安裝命令: sudo insmod xmole.ko
查看命令: lsmod ,就會看到被安裝名為 xmole 的模塊。
7. linux中.ko文件放在哪裡
.ko文件是模塊化的驅動文件,一般通過你的編譯,被放在你解壓的linux源代碼目錄下面的 drivers/ 下面的子目錄中。你沒對源碼包進行編譯的話,是不會有這些文件的,這種文件是通過linux的insmod命令動態載入到內核中的。