rainyss
驱动牛犊
驱动牛犊
  • 注册日期2004-04-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:5122回复:25

找点Linux同行,不然脑子都生锈了.

楼主#
更多 发布于:2004-04-05 02:44
干了4年Linux核心编程,才辞职一年,就什么都不记得了,这怎么行,大家有什么初级问题都问我吧,就当是考考我,不然脑子就锈啦.
我是新来的,以前在北京一个小软件公司中当程序员,做了3年的scsi驱动程序整合开发,累啊,就没干了,不过底子还在,内核结构,内核编译什么的也都很熟.总算在这里找到同行了.望指教哈.

最新喜欢:

lrh_0_2000lrh_0_...
linjunchao
驱动牛犊
驱动牛犊
  • 注册日期2003-01-14
  • 最后登录2005-04-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-04-05 17:21
很幸运碰到大佬了,能不能讲讲习惯了WINDOWS的如何转入学习LINUX,就当你自己回忆一下自己的历程
rainyss
驱动牛犊
驱动牛犊
  • 注册日期2004-04-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-04-09 06:54
我没什么好说的,我学习LINUX的时候只用过三天C,所以我现在和你碰到的问题正好相反,习惯了linux编程,如何转入windows,呵呵.
huanghaizhou
驱动牛犊
驱动牛犊
  • 注册日期2003-11-26
  • 最后登录2007-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-04-09 10:06
太好了,我有一堆问题要问
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-04-09 10:15
楼主多上来一下,这里冷清啊。
先请教一下,关于在linux下开发硬盘、usb驱动有没有相关的资料?
rainyss
驱动牛犊
驱动牛犊
  • 注册日期2004-04-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-04-11 11:37
想成为LINUX内核程序员是有捷径的,那就是看源代码.刚开始的时候是有点困难,可以去买几本LINUX内核编程的书.与WINDOWS相比,LINUX的好处在于,LINUX是一种古老的UNIX结构,比较简单,不像WINDOWS那样,编程之前要看一大堆白皮书SPEC什么的,只要看看现成的源程序就行了.硬盘的驱动程序在/usr/src/linux/drivers/block/和/usr/src/linux/drivers/IDE/下能找到.刚开始的时候可以看看rd.c,也就是linux里用得很多的ramdrive源码,参考它,自已写个ramdrive出来,接下来的事就简单多了,看硬盘驱动也容易了.
xiang324
驱动牛犊
驱动牛犊
  • 注册日期2004-03-23
  • 最后登录2004-04-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-04-12 09:50
兄弟是linux新手,正在作设备驱动程序,刚一开始就被难住了,大哥帮小弟看一下吧!!!!
原码如下:
#define MODULE
#define __NO_VERSION__
#include <linux/module.h>
#include <linux/version.h>
char kernel_version [] = UTS_RELEASE;

#include <linux/types.h>
#include <linux/fs.h>
#include <linux/mm.h>
#include <linux/errno.h>
#include <asm/segment.h>

unsigned int test_major = 0;

static int read_test(struct inode *node, struct file *file, char *buf, int count)
{
int left;
if (verify_area(VERIFY_WRITE,buf,count) == -EFAULT )
return -EFAULT;

for(left = count ; left > 0 ; left--)
{
__put_user(1,buf,1);
buf++;
}

return count;
}

static int write_test(struct inode *inode, struct file *file, const char *buf, int count)
{
return count;
}

static int open_test(struct inode *inode, struct file *file )
{
MOD_INC_USE_COUNT;
return 0;
}

static void release_test(struct inode *inode, struct file *file )
{
MOD_DEC_USE_COUNT;
}

struct file_operations test_fops = {
NULL,
read_test,
write_test,
NULL, /* test_readdir */
NULL,
NULL, /* test_ioctl */
NULL, /* test_mmap */
open_test,
release_test, NULL, /* test_fsync */
NULL, /* test_fasync */
/* nothing more, fill with NULLs */
NULL,
NULL,
NULL,
};



int init_module(void)
{
int result;
result = register_chrdev(0, \"test\", &test_fops);
if (result < 0) {
printk(KERN_INFO \"test: can\'t get major number \");
return result;
}

if (test_major == 0) test_major = result; /* dynamic */

return 0;
}



void cleanup_module(void)

{

unregister_chrdev(test_major, \"test\");

}

编译命令如下:
gcc -O2 -DMODULE -D__KERLEL__ -c test.c
结果出现很多源文件错误,如在linux/fs.h中找不到fils_operation数据结构......
咋办????

terrace
驱动牛犊
驱动牛犊
  • 注册日期2004-02-11
  • 最后登录2005-12-04
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-04-12 18:28
是不是编译命令又点不准确?
用:
gcc -O2 -DMODULE -D__KERLEL__ -c test.c -I /usr/src/linux/include

其中后面加上 -I 等参数表示所用的头文件的路径(默认的是/include)。
kwest
驱动牛犊
驱动牛犊
  • 注册日期2003-06-20
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-04-12 21:44
老大,能不能留个Email或QQ什么的,偶好请教你啊!偶今年毕业,在一家台湾网络硬件公司做Embedded Linux,很多东西都不懂,哎,想问那些老员工嘛。。人家也很忙,没时间搭理我。痛苦啊!!!。。。
偶QQ是:3589124
E-mail:kwest@163.net
xiang324
驱动牛犊
驱动牛犊
  • 注册日期2004-03-23
  • 最后登录2004-04-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-04-13 10:21
太感谢了
一个小问题把兄弟搞得头大
希望各位仁兄多加指点
Forest_Leo
驱动牛犊
驱动牛犊
  • 注册日期2004-02-26
  • 最后登录2004-11-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-04-13 16:01
希望楼主能留个EMAIL什么的,俺最近写PCI驱动也遇到些问题,希望能得到帮助

QQ:3199399
EMAIl:Forest_Leo@hotmail.com
rainyss
驱动牛犊
驱动牛犊
  • 注册日期2004-04-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-04-14 05:21
编译内核可不是你例子中的那么容易,看我的例子吧
gcc -D__KERNEL__ -I/usr/src/linux/drivers/scsi -I/usr/src/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -Wno-unused -pipe -mpreferred-stack-boundary=2 -march=i386 -DMODULE -DMODVERSIONS -include /usr/src/linux/include/linux/modversions.h   -c test.c


除了-I须改成你自已的路径外,其它一律照抄.
zhouai
驱动牛犊
驱动牛犊
  • 注册日期2004-04-15
  • 最后登录2006-04-21
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-04-15 21:19
为了编写一个摄像头的驱动(采用OV7620和OV528芯片),我看了那本linux驱动程序第二版的前面十个章节,书上的东西还是能够基本看明白,可是却不知道总么动手编写,请问linux源代码中能够有通用摄像头的驱动源代码么或者什么地方有源代码下载么(想开阔自己的思路再编)?我也在北京迫切希望得到象大哥这样高手的指点,能够交流一下么?
Email:zhouai@mail.biti.edu.cn
先谢谢了!
szLee
驱动牛犊
驱动牛犊
  • 注册日期2002-01-28
  • 最后登录2004-06-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-04-23 09:06
请问,zai在linux驱动程序中如何打开和读写文件,我曾用sys_open试图打开一个文件,但死机了,请大侠指教,谢谢!!!
rainyss
驱动牛犊
驱动牛犊
  • 注册日期2004-04-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-04-23 22:03
驱动里读写文件很困难,一般都是通过ioctl或生成proc文件.
quarky
驱动牛犊
驱动牛犊
  • 注册日期2002-03-12
  • 最后登录2004-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-05-10 17:23
老大,想问个问题,我们有个工控主板,不想用硬盘跑Linux,如果通过USB用U盘跑系统,要怎么做啊
内核要怎么编译啊,CMOS要怎么设置呢?
zjj4118
驱动牛犊
驱动牛犊
  • 注册日期2004-04-28
  • 最后登录2004-05-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-05-10 19:47
我们毕业设计要做网卡驱动,是基于内存的,程序基本上是参照
〈〈linux设备驱动程序〉〉这本书上写的,由于是一下子转到linux ,对驱动东西不是太熟悉,不知道网卡驱动到底是怎么调试的啊
freducn2002
驱动小牛
驱动小牛
  • 注册日期2002-06-26
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望29点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
  • 社区居民
17楼#
发布于:2004-05-10 21:58
网卡驱动基本上先实现找到硬件,然后再写收发包函数
highwaylost
驱动小牛
驱动小牛
  • 注册日期2003-12-31
  • 最后登录2005-09-26
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-05-11 09:15
多参照参照内核中的一些网卡驱动,仔细研究研究硬件,差不多就有了
“恨怨悲苦憎怒噌 仁爱慈孝耻义廉 是故恨人所以得仁 无爱者必不怨 不慈者必无悲 孝而有苦 憎后耻来 义自怒生 廉人心噌 夹天地七大苦 破人情七大碍--”
dilly
驱动牛犊
驱动牛犊
  • 注册日期2004-08-14
  • 最后登录2004-08-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2004-08-14 21:16
编译时最好写个makefile文件,用make命令就解决了
上一页
游客

返回顶部