Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
.tmp*
*.map
*.dtb
*.so
*.so.dbg
*.ko
*.mod.c
*.cmd
*.d
*.a
*.order
*.tmp
*.builtin
*.o
scripts/basic/modules.order
scripts/kconfig/zconf.*
.config
vmlinux
*generated*
Module.symvers
.version
arch/arm64/kernel/asm-offsets.s
certs/signing_key.x509
crypto/asymmetric_keys/
crypto/rsaprivkey.asn1.c
crypto/rsaprivkey.asn1.h
crypto/rsapubkey.asn1.c
crypto/rsapubkey.asn1.h
include/config/
kernel/bounds.s
scripts/dtc/dtc-lexer.lex.c
scripts/dtc/dtc-parser.tab.*
scripts/genksyms/lex.lex.c
scripts/genksyms/parse.tab.*
scripts/mod/devicetable-offsets.s
rootfs_debian_*
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
static dev_t dev;
static struct cdev *demo_cdev;
static signed count = 1;
static struct class *demo_class = NULL;
static int demo_major;


static int demodrv_open(struct inode *inode, struct file *file)
{
Expand Down Expand Up @@ -35,7 +38,7 @@ static ssize_t
demodrv_write(struct file *file, const char __user *buf, size_t count, loff_t *f_pos)
{
printk("%s enter\n", __func__);
return 0;
return count;

}

Expand All @@ -48,6 +51,15 @@ static const struct file_operations demodrv_fops = {
};


// devnode 回调函数
static char *demo_devnode(struct device *dev, umode_t *mode)
{
if (mode != NULL) {
*mode = 0666; // 所有用户可读写
}
return NULL;
}

static int __init simple_char_init(void)
{
int ret;
Expand All @@ -64,6 +76,7 @@ static int __init simple_char_init(void)
goto unregister_chrdev;
}

demo_major = MAJOR(dev);
cdev_init(demo_cdev, &demodrv_fops);

ret = cdev_add(demo_cdev, dev, count);
Expand All @@ -72,6 +85,13 @@ static int __init simple_char_init(void)
goto cdev_fail;
}

demo_class = class_create(THIS_MODULE, "demo_class");

// 设置设备节点权限
demo_class->devnode = demo_devnode;

device_create(demo_class, NULL, MKDEV(demo_major, 0), NULL, "demo_drv");

printk("succeeded register char device: %s\n", DEMO_NAME);
printk("Major number = %d, minor number = %d\n",
MAJOR(dev), MINOR(dev));
Expand All @@ -90,6 +110,12 @@ static void __exit simple_char_exit(void)
{
printk("removing device\n");

if( demo_class != NULL )
{
device_destroy(demo_class, MKDEV(demo_major, 0));
class_destroy(demo_class);
}

if (demo_cdev)
cdev_del(demo_cdev);

Expand Down
2 changes: 1 addition & 1 deletion run_debian_arm64.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ fi
make_kernel_image(){
echo "start build kernel image..."
make debian_defconfig
make -j $JOBCOUNT
make -j $JOBCOUNT V=1
}

make_menuconfig(){
Expand Down
2 changes: 1 addition & 1 deletion run_debian_riscv.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ fi
make_kernel_image(){
echo "start build kernel image..."
make debian_defconfig
make -j $JOBCOUNT
make -j $JOBCOUNT V=1
}

make_menuconfig(){
Expand Down
2 changes: 1 addition & 1 deletion run_debian_x86_64.sh
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ fi
make_kernel_image(){
echo "start build kernel image..."
make debian_defconfig
make -j $JOBCOUNT
make -j $JOBCOUNT V=1
}

prepare_rootfs(){
Expand Down
132 changes: 132 additions & 0 deletions runninglinuxkernel_5.0.code-workspace
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
{
"folders": [
{
"path": "."
}
],
"settings": {
"search.exclude": {
"arch/alpha" :true,
"arch/m68k" :true,
"arch/arc" :true,
"arch/arm" :true,
"arch/blackfin" :true,
"arch/c6x" :true,
"arch/cris" :true,
"arch/frv" :true,
"arch/h8300" :true,
"arch/hexagon" :true,
"arch/ia64" :true,
"arch/m32r" :true,
"arch/metag" :true,
"arch/microblaze" :true,
"arch/mn10300" :true,
"arch/nios2" :true,
"arch/mips" :true,
"arch/openrisc" :true,
"arch/parisc" :true,
"arch/powerpc" :true,
"arch/s390" :true,
"arch/score" :true,
"arch/sh" :true,
"arch/sparc" :true,
"arch/tile" :true,
"arch/um" :true,
"arch/unicore32" :true,
"arch/x86" :true,
"arch/xtensa" :true,
"arch/arm64/boot/dts/actions" :true,
"arch/arm64/boot/dts/allwinner" :true,
"arch/arm64/boot/dts/amd" :true,
"arch/arm64/boot/dts/apm" :true,
"arch/arm64/boot/dts/broadcom" :true,
"arch/arm64/boot/dts/exynos" :true,
"arch/arm64/boot/dts/hisilicon" :true,
"arch/arm64/boot/dts/qcom" :true,
"arch/arm64/boot/dts/renesas" :true,
"arch/arm64/boot/dts/socionext" :true,
"arch/arm64/boot/dts/xilinx" :true,
"arch/arm64/boot/dts/al" :true,
"arch/arm64/boot/dts/altera" :true,
"arch/arm64/boot/dts/amlogic" :true,
"arch/arm64/boot/dts/arm" :false
"arch/arm64/boot/dts/cavium" :true,
"arch/arm64/boot/dts/freescale" :true,
"arch/arm64/boot/dts/lg" :true,
"arch/arm64/boot/dts/marvell" :true,
"arch/arm64/boot/dts/nvidia" :true,
"arch/arm64/boot/dts/realtek" :true,
"arch/arm64/boot/dts/rockchip" :true,
"arch/arm64/boot/dts/marvell" :true,
"arch/arm64/boot/dts/mediatek" :true,
"arch/arm64/boot/dts/nvidia" :true,
"arch/arm64/boot/dts/realtek" :true,
"arch/arm64/boot/dts/rockchip" :true,
"arch/arm64/boot/dts/sprd" :true,
"arch/arm64/boot/dts/synaptics" :true,
"arch/arm64/boot/dts/ti" :true,
"arch/arm64/boot/dts/zte" :true,
"arch/arm64/boot/dts/riscv" :true,
},
"files.exclude": {
"arch/alpha" :true,
"arch/m68k" :true,
"arch/arc" :true,
"arch/arm" :true,
"arch/blackfin" :true,
"arch/c6x" :true,
"arch/cris" :true,
"arch/frv" :true,
"arch/h8300" :true,
"arch/hexagon" :true,
"arch/ia64" :true,
"arch/m32r" :true,
"arch/metag" :true,
"arch/microblaze" :true,
"arch/mn10300" :true,
"arch/nios2" :true,
"arch/mips" :true,
"arch/openrisc" :true,
"arch/parisc" :true,
"arch/powerpc" :true,
"arch/s390" :true,
"arch/score" :true,
"arch/sh" :true,
"arch/sparc" :true,
"arch/tile" :true,
"arch/um" :true,
"arch/unicore32" :true,
"arch/x86" :true,
"arch/xtensa" :true,
"arch/arm64/boot/dts/actions" :true,
"arch/arm64/boot/dts/allwinner" :true,
"arch/arm64/boot/dts/amd" :true,
"arch/arm64/boot/dts/apm" :true,
"arch/arm64/boot/dts/broadcom" :true,
"arch/arm64/boot/dts/exynos" :true,
"arch/arm64/boot/dts/hisilicon" :true,
"arch/arm64/boot/dts/qcom" :true,
"arch/arm64/boot/dts/renesas" :true,
"arch/arm64/boot/dts/socionext" :true,
"arch/arm64/boot/dts/xilinx" :true,
"arch/arm64/boot/dts/al" :true,
"arch/arm64/boot/dts/altera" :true,
"arch/arm64/boot/dts/amlogic" :true,
"arch/arm64/boot/dts/arm" :false
"arch/arm64/boot/dts/cavium" :true,
"arch/arm64/boot/dts/freescale" :true,
"arch/arm64/boot/dts/lg" :true,
"arch/arm64/boot/dts/marvell" :true,
"arch/arm64/boot/dts/mediatek" :true,
"arch/arm64/boot/dts/nvidia" :true,
"arch/arm64/boot/dts/realtek" :true,
"arch/arm64/boot/dts/rockchip" :true,
"arch/arm64/boot/dts/sprd" :true,
"arch/arm64/boot/dts/synaptics" :true,
"arch/arm64/boot/dts/ti" :true,
"arch/arm64/boot/dts/zte" :true,
"arch/arm64/boot/dts/riscv" :true,
}
}
}