ÎÒÏÂÔØÁËÒ»¸ölinux-2.6.31.5µÄÄںˣ¬½øÐÐÁ˱àÒë
È»ºó¿ªÊ¼±àд×Ô¼ºµÄÐéÄâ×Ö·ûÉ豸Çý¶¯
/**
*rwbuf.h, driver for virtual char-device
*/
#define RWBUF_NAME "rwbuf" // É豸Îļþ /dev/rwbuf
#define RWBUF_DEV "/dev/rwbuf" // device path
#define RWBUF_MAJOR 60 // Ö÷É豸ºÅ
#define RWBUF_CLEAR 0x909090 // IO Ctrl Command
ÉÏÃæÊǺêµÄÍ·Îļþ
#include "rwbuff.h"
#include <unistd.h>
#include <linux/kernel.h> //for kernel programming
#include <linux/module.h> //for kernel module struct
#include <linux/init.h>
#include <linux/fs.h> //struct file_operations
#include <sys/types.h>
static struct file_operations rwbuf_fpos = {
open: rwbuf_open,
release: rwbuf_close,
read: rwbuf_read,
write: rwbuf_write,
ioctl: rwbuf_ioctl,
};
int init_module()
{
printk("Hello world\n");
if(register_chrdev(RWBUF_MAJOR,RWBUF_NAME,&rwbuf_fpos)){
printk("register error\n");
return -1;
}
else
printk("register ok\n");
return 0;
}
void cleanup_module()
{
´ó¼ÒºÃ£¬±¾ÈËĿǰ¸Õ¸Õ½Ó´¥Linux¡£ÏÖÔÚ¹«Ë¾µÄÏîÄ¿ÐèÒªËõ¼õLinuxµÄKernelºÍAPP²¿·ÖµÄCode Size¡£Ä¿Ç°ÎÒÃÇʹÓõÄÊÇLinux2.6.22.15°æ±¾£¬Ó¦ÓÃÓÚADSL Modem£¨¼ÒÍ¥Íø¹Ø£©¡£
1.ÎÒÃDzúÆ·Ó¦ÓÃÊÇADSL Gateway£¬Kernel²¿ ......
ÎÒûÓа²×°²Ù×÷ϵͳµÄ¾Ñ飬¼´Ê¹ÊÇWINDOWS¡£ÏÖÔÚÏëÔÚLINUX²Ù×÷ϵͳ´ó»·¾³ÏÂѧCÓïÑÔ£¬ÓÖÒªÂò±¾±¾£¬ÇëÎÊÈç¹û²Ù×÷ϵͳ°²×°²»µ±£¬»á²»»á¶ÔµçÄÔÔì³Éʲô´óµÄÆÆ»µ£¿ÓÐûÓбØÒªÏÈÂòÒ»¸ö¶þÊÖµçÄÔÁ·Ò»ÏÂLINUXµÄ ......
ÎÒÖ®Ç°ÖÆ×÷µÄlinux×Ô¶¯°²×°isoÒѾ³É¹¦ÁË£¬ÏÖÔÚÏë¶ÔÆä½øÐÐһЩ¶¨ÖÆÐ޸쬱ÈÈ磬¸ü¸ÄgrubͼƬµÈ¡£
ÎÒÔÚks.cfgµÄ%post¶ÎÀïÃæÊÇÕâÑùдµÄ£º
%post --nochroot
# Move the contents of the tar into their new locati ......
ÎÒÓÃuÅ̰²×°debian£¬°´ÕÕÍøÉϵķ½·¨×öºÃuÅÌÆô¶¯Å̺󣬽«biosÉèÖÃΪUsb-fddģʽ£¨uÅÌÖ»ÄÜÔÚÕâ¸öģʽÏÂÆô¶¯£©£¬ÄÜÕý³£Æô¶¯¡£½øÈëÅäÖÃÒ³ÃæºóÔÚɨÃècd-romʱÌáʾÎÞ.iso¾µÏñ¡£Õâ¿ÉÔõô°ì£¿
ÍøÉÏÓÐÈË˵ҪÓÃgrubÒýµ¼ÎªuÅ ......
ÊÇÕâÑùµÄ£¬½ü¶ÎÔÚWINDOWSÉÏÉÏÍøÊ±×ÜÊÇÓв¡¶¾£¬ÎÒ²»Ï°¹ßװɱ¶¾Èí¼þ£¬ÒÔǰҲһֱûװ¹ý£¬¾õµÃÂé·³¡£È»ºó¾ÍÓ²Å̰²×°ÁËLINUX£¬»¹ºÃ£¬¿ÉÒÔÉÏÍø£¬¿ÉÒԲ鶫Î÷¡£µ«ÊÇÎÒÊÇÔÚWINDOWSÏÂ×öÈí¼þ¿ª·¢µÄ£¬»¹Ïë×°ÉÏWINDOWS£¬²»ÖªµÀÄÜ ......