دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: John Madieu
سری:
ISBN (شابک) : 1789342201, 9781789342208
ناشر: Packt Publishing Ltd
سال نشر: 2021
تعداد صفحات: 647
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 4 مگابایت
در صورت تبدیل فایل کتاب Mastering Linux Device Driver Development: Write custom device drivers to support computer peripherals in Linux operating systems به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب تسلط بر توسعه درایور دستگاه لینوکس: درایورهای دستگاه سفارشی را برای پشتیبانی از تجهیزات جانبی رایانه در سیستم عامل های لینوکس بنویسید نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
در هنر توسعه درایورهای دستگاه سفارشی شده برای سیستم های لینوکس تعبیه شده خود مسلط شوید
ویژگی های کلیدیلینوکس یکی از سریعترین سیستمعاملهای در حال رشد در سراسر جهان است و در چند سال اخیر، هسته لینوکس به طور قابل توجهی تکامل یافته است تا از طیف گستردهای از دستگاههای تعبیهشده با زیرسیستمهای بهبود یافته و طیف وسیعی از ویژگیهای جدید پشتیبانی کند. با این کتاب، خواهید فهمید که چگونه می توانید مهارت های خود را برای نوشتن درایورهای دستگاه سفارشی برای سیستم عامل لینوکس خود افزایش دهید.
تسلط بر توسعه درایور دستگاه لینوکس، پوشش کاملی از موضوعات هسته، از جمله چارچوب های ویدیویی و صوتی را ارائه می دهد. ، که معمولاً بدون خطاب می مانند. شما با برخی از پیچیده ترین و تاثیرگذارترین فریم ورک های هسته لینوکس، مانند PCI، ALSA برای SoC، و Video4Linux2 کار خواهید کرد و نکات تخصصی و بهترین روش ها را در طول مسیر کشف خواهید کرد. علاوه بر این، خواهید فهمید که چگونه از چارچوب هایی مانند NVMEM و Watchdog بیشترین استفاده را ببرید. هنگامی که با کمککنندههای هسته لینوکس آشنا شدید، به کار با انواع دستگاههای خاص مانند دستگاههای چندکاره (MFD) و سپس درایورهای دستگاههای ویدیویی و صوتی خواهید رسید.
در پایان در این کتاب، میتوانید درایورهای دستگاه با ویژگیهای غنی بنویسید و آنها را با برخی از پیچیدهترین چارچوبهای هسته لینوکس، از جمله V4L2 و ALSA برای SoC، ادغام کنید.
آنچه خواهید آموختاین کتاب برای توسعه دهندگان جاسازی شده، مهندسین سیستم لینوکس و برنامه نویسان سیستمی است که می خواهند برای بررسی چارچوب ها و زیرسیستم های هسته لینوکس. برای شروع کار با این کتاب، مهارت های برنامه نویسی C و درک اولیه توسعه درایور ضروری است.
Master the art of developing customized device drivers for your embedded Linux systems
Key FeaturesLinux is one of the fastest-growing operating systems around the world, and in the last few years, the Linux kernel has evolved significantly to support a wide variety of embedded devices with its improved subsystems and a range of new features. With this book, you'll find out how you can enhance your skills to write custom device drivers for your Linux operating system.
Mastering Linux Device Driver Development provides complete coverage of kernel topics, including video and audio frameworks, that usually go unaddressed. You'll work with some of the most complex and impactful Linux kernel frameworks, such as PCI, ALSA for SoC, and Video4Linux2, and discover expert tips and best practices along the way. In addition to this, you'll understand how to make the most of frameworks such as NVMEM and Watchdog. Once you've got to grips with Linux kernel helpers, you'll advance to working with special device types such as Multi-Function Devices (MFD) followed by video and audio device drivers.
By the end of this book, you'll be able to write feature-rich device drivers and integrate them with some of the most complex Linux kernel frameworks, including V4L2 and ALSA for SoC.
What you will learnThis book is for embedded developers, Linux system engineers, and system programmers who want to explore Linux kernel frameworks and subsystems. C programming skills and a basic understanding of driver development are necessary to get started with this book.
Cover Title Page Copyright and Credits About Packt Contributors Table of Contents Preface Section 1:Kernel Core Frameworks for Embedded Device Driver Development Chapter 01: Linux Kernel Concepts for Embedded Developers Technical requirements The kernel locking API and shared objects Spinlocks Mutexes The try-lock method Waiting, sensing, and blocking in the Linux kernel Work deferring mechanisms SoftIRQs Tasklets Workqueues Workqueues – a new generation Linux kernel interrupt management Designing an interrupt handler Summary Chapter 02: Leveraging the Regmap API and Simplifying the Code Technical requirements Introduction to regmap and its data structures – I2C, SPI, and MMIO Accessing device registers Quick recap on Linux kernel IRQ management Regmap IRQ API and data structures Summary Chapter 03: Delving into the MFD Subsystem and Syscon API Technical requirements Introducing the MFD subsystem and Syscon APIs Device tree binding for MFD devices Understanding Syscon and simple-mfd Introducing simple-mfd Summary Chapter 04: Storming the Common Clock Framework Technical requirements CCF data structures and interfaces Understanding struct clk_hw and its dependencies Registering/unregistering the clock provider Exposing clocks to others (in detail) Writing a clock provider driver Providing clock ops Putting it all together – global overview Grabbing and releasing clocks Preparing/unpreparing clocks Rate functions Parent functions Putting it all together Section 2: Multimedia and Power Saving in Embedded Linux Systems Chapter 05: ALSA SoC Framework – Leveraging Codec and Platform Class Drivers Technical requirements Introduction to ASoC ASoC Digital Audio Interface ASoC sub-elements Writing codec class drivers Codec DAI and PCM (AKA DSP) configurations The concept of controls The concept of DAPM Writing the platform class driver The CPU DAI driver The platform DMA driver AKA PCM DMA driver Summary Chapter 06: ALSA SoC Framework – Delving into the Machine Class Drivers Technical requirements Introduction to machine class drivers The DAI link Machine routing consideration Codec pins Board connectors Machine routing Clocking and formatting considerations Sound card registration Leveraging the simple-card machine driver Codec-less sound cards Summary Chapter 07: Demystifying V4L2 and Video Capture Device Drivers Technical requirements Framework architecture and the main data structures Initializing and registering a V4L2 device Introducing video device drivers – the bridge driver Initializing and registering the video device Video device file operations V4L2 ioctl handling The videobuf2 interface and APIs The concept of sub-devices Sub-device initialization Sub-device operations Traditional sub-device (un)registration V4L2 controls infrastructure A word about control inheritance Summary Chapter 08: Integrating with V4L2 Async and Media Controller Frameworks Technical requirements The V4L2 async interface and the concept of graph binding Graph binding The V4L2 async and graph-oriented API V4L2 async The Linux media controller framework The media controller abstraction model Integrating media controller support in the driver Media controller from user space Summary Chapter 09: Leveraging the V4L2 API from the User Space Technical requirements Introduction to V4L2 from user space The V4L2 user space API Video device opening and property management Querying the device capabilities Buffer management Image (buffer) format Requesting buffers Enqueueing the buffer and enabling streaming Dequeuing buffers V4L2 user space tools Using v4l2-ctl Debugging V4L2 in user space Summary Chapter 10: Linux Kernel Power Management Technical requirements The concept of power management on Linux-based systems Runtime power management System power management sleep states Adding power management capabilities to device drivers Implementing runtime PM capability System suspend and resume sequences Implementing system sleep capability Being a source of system wakeup Wakeup source and sysfs (or debugfs) The IRQF_NO_SUSPEND flag Summary Section 3: Staying Up to Date with Other Linux Kernel Subsystems Chapter 11: Writing PCI Device Drivers Technical requirements Introduction to PCI buses and interfaces Terminology PCI bus enumeration, device configuration, and addressing PCI address spaces Interrupt distribution The Linux kernel PCI subsystem and data structures PCI data structures Overview of the PCI driver structure PCI and Direct Memory Access (DMA) PCI coherent (aka consistent) mapping Streaming DMA mapping Summary Chapter 12: Leveraging the NVMEM Framework Technical requirements Introducing NVMEM data structures and APIs Writing the NVMEM provider driver NVMEM device (un)registration Implementing NVMEM read/write callbacks Device tree bindings for NVMEM providers NVMEM consumer driver APIs NVMEM in user space Summary Chapter 13: Watchdog Device Drivers Technical requirements Watchdog data structures and APIs Registering/unregistering a watchdog device Handling pretimeouts and governors GPIO-based watchdogs The watchdog user space interface Starting and stopping the watchdog Getting watchdog capabilities and identity Setting and getting the timeout and pretimeout Getting the (boot/reboot) status The watchdog sysfs interface Summary Chapter 14: Linux Kernel Debugging Tips and Best Practices Technical requirements Understanding the Linux kernel release process Linux kernel development tips Message printing Linux kernel tracing and performance analysis Using Ftrace to instrument the code Linux kernel debugging tips Oops and panic analysis Using objdump to identify the faulty code line in the kernel module Summary Other Books You May Enjoy Index