原创 實際根文件系統的掛載-sys_mount()

實際根文件系統的掛載是在prepare_namespace()中實現的。 init/do_mounts.c void __init prepare_namespace(void) { ... mount_root(); out: .

原创 糾錯表

1.《rootfs文件系統的註冊和掛載》文章中講到  set_fs_pwd(current->fs, &root);    set_fs_root(current->fs, &root);     代碼的最後兩行設置init進程的根目

原创 sysfs文件系統註冊-sysfs_init()

Sysfs文件系統的註冊由sysfs_init()函數完成的。 int __init sysfs_init(void) { int err = -ENOMEM; sysfs_dir_cachep = kmem_cache_crea

原创 platform初始化

在linux設備驅動中,有一類設備被稱爲"平臺設備",通常Soc系統中集成的獨立外設單元都被當做平臺設備處理。如I2C,SPI等都歸納爲平臺設備。我正在用的開發板,就將SPI控制器作爲平臺設備進行註冊,其

原创 sys_mknod()

上篇文章中講到rootfs文件系統掛載後,會先創建”/dev”目錄,之後會創建設備文件"/dev/console",本文就分析下該設備文件的建立過程,文中還會見到與字符設備密切相關的chrdev_open()函數 1.default_ro

原创 使用NandFlash、ubi文件系統時需要的問題

使用nandflash、ubi文件系統,有時候會出現下面的情況,用uboot命令行燒寫ubi文件系統後,第一次啓動沒有問題, 但之後的啓動就都會出問題,一般是因爲多檢測到了幾個壞塊導致的啓動不了。 可能的原因是寫nandflash時沒有跳

原创 近期學習計劃

1.sysfs文件系統註冊和掛載 2.rootfs文件系統註冊和掛載 3.設備模型kobject、kset、ktype 4.open系統調用 5.字符設備驅動程序, 分析chrdev_init(),chrdev_open(),cdev_i

原创 rootfs文件系統的註冊和掛載

rootfs文件系統是由init_rootfs()完成的。 int __init init_rootfs(void) { int err; err = bdi_init(&ramfs_backing_dev_info);

原创 個人對kobject的一點研究

在LINUX中最讓人不解的大概就是/sys下面的內容了 下面首先讓我們來創建一個簡單的platform設備,並從這個設備的視角進行深入,在此篇文章的深入過程中,我們只看kobeject的模型 我所使用的內核版本號爲2.6.26,操作系統

原创 FL2440開發板spi驅動分析(1)

1.查看arch/arm/plat-s3c24xx/devs.c中是否有下面的結構體static struct resource s3c_spi0_resource[] = { [0] = { .s

原创 platform設備和驅動的註冊(1)

SPI、I2C等集成的外設控制器可以認爲是platform設備,這些設備的註冊過程以及其驅動的註冊過程都會 用到platform_device_register()和platform_driver_reg

原创 設備初始化及/sys下devices等目錄的建立

設備初始化和總線初始化類似,需要建立devices_kset和/sys/devices目錄。 不同點是設備初始化還會建立/sys/dev、/sys/dev/block和/sys/dev/char目錄 代碼