Sharing the Chinese version of essential Linux Device Drivers (HD)

Source: Internet
Author: User

Sina Weibo @ song Baohua Barry at @ micro disk share Prentice. Hall Press "essential. Linux. device. Drivers" Chinese version of the high definition electronic version "Baohua _essence linuxlinuxequipment driver development" http://t.cn/zYjS7sh

Contents

Chapter 1 Introduction 1
1.1 Evolution 1
1.2 GNU Copyleft 2
1.3 kernel.org 2
1.4 email list and Forum 3
1.5 Linux Release 3
1.6 view source code 4
1.7 compile the kernel 7
1.8 loaded modules 8
1.9 installation awaiting release 9
Chapter 2 kernel 11
2.1 startup process 11
2.1.1 BIOS-provided physical Ram map 12
2.1.2 758 MB lowmem available 14
2.1.3 kernel command line: RO
Root =/dev/hda1 14
2.1.4 calibrating delay .... 1197.46
. Bogomips (lpj = 2394935) 15
2.1.5 checking hlt instruction 16
2.1.6 net: Registered protocol family 2 17
2.1.7 freeing initrd memory: 387 K freed 17
2.1.8 Io scheduler anticipatory
Registered (default) 18
2.1.9 setting up standard PCI resources 18
2.1.10 ext3-fs: mounted filesystem 19.
2.1.11 init: Version 2.85 booting 19
2.2 kernel mode and user mode 20
2.3 process context and interrupt Context 20
2.4 kernel timer 21
2.4.1Hz and jiffies 21
2.4.2 long latency 22
2.4.3 short latency 24
2.4.4 Pentium timestamp counter 24
2.4.5 real clock 25
2.5 concurrency 26 in the kernel
2.5.1 spin lock and mutex 26
2.5.2 atomic operation 30
2.5.3 read-write lock 31
2.5.4 debugging 32
2.6 proc file system 32
2.7 memory allocation 33
2.8 view source code 34
Chapter 3 kernel component 37
3.1 kernel thread 37
3.1.1 create a kernel thread 37
3.1.2 Process status and waiting queue 41
3.1.3 user mode Support Program 42
3.2 secondary interface 43
3.2.1 linked list 44
3.2.2 hash linked list 49
3.2.3 work queue 49
3.2.4 notification chain 51
3.2.5 complete interface 54
3.2.6 kthread auxiliary interface 56
3.2.7 error handling assistant 57
3.3 view source code 58
Chapter 1 Basic Concepts 61
4.1 Introduction to devices and drivers 61
4.2 interrupt handling 63
4.2.1 interrupt context 63
4.2.2 allocate IRQ Number 64
4.2.3 device instance: navigator 65
4.2.4 softirq and tasklet 68
4.3 Linux Device Model 71
4.3.1 udev 71
4.3.2 sysfs, kobject, and equipment 73
4.3.3 hot swapping and cold plugging 76
4.3.4 download microcode 76
4.3.5 module automatically loaded 77
4.4 memory barrier 78
4.5 power management 79
4.6 view source code 79
Chapter 2 character device driver 81
5.1 character device driver basics 81
5.2 device instance: system CMOS 82
5.2.1 driver initialization 83
5.2.2 open and release 86
5.2.3 data exchange 88
5.2.4 find 92
5.2.5 control 94
5.3 check data availability 95
5.3.1 round robin 95
5.3.2 fasync 98
5.4 interaction with parallel port 99
5.5 RTC subsystem 108
5.6 pseudo-character driver 109
5.7 hybrid driver 110
5.8 character device driver precautions 115
5.9 view source code 115
Chapter 2 serial device drivers 6th
6.1 layered architecture 119
6.2 UART driver 121
6.2.1 device instance: Phone 122
6.2.2 RS-485 132
6.3 tty driver 132
6.4 line procedure 134
6.5 view source code 141
Chapter 2 input device drivers 7th
7.1 input event driver 144
7.2 Input Device Driver 150
7.2.1 Seri 150
7.2.2 keyboard 150
7.2.3 mouse 152
7.2.4 touch controller 157
7.2.5 acceleration sensor 158
7.2.6 event output 158
7.3 debugging 159
7.4 view source code 160
Chapter 4 I2C protocol 8th
8.1 what is I2C/SMBus 161?
8.2 I2C core 162
8.3 bus transaction 164
8.4 device instance: EEPROM 164
8.4.1 initialize 165
8.4.2 test device 167
8.4.3 check the functions of the adapter 169
8.4.4 access device 169
8.4.5 other functions 170
8.5 device instance: Real-time clock 171
8.6 i2c-dev 174
8.7 use lm-sensors to monitor hardware 174
8.8 SPI bus 174
8.9 1-Wire Bus 176
8.10 debugging 176
8.11 view source code 176
Chapter 4 PCMCIA and CF 9th
9.1 what is PCMCIA/CF? 179
9.2 Linux-PCMCIA subsystem 181
9.3 host controller driver 183
9.4 PCMCIA core 183
9.5 driver service 183
9.6 customer drivers 183
9.6.1 Data Structure 184
9.6.2 device instance: PCMCIA card 185
9.7 Assemble parts together 188
9.8 PCMCIA storage 189
9.9 serial PCMCIA 189
9.10 debugging 191
9.11 view source code 191
Chapter 2 PCI 10th
10.1 PCI series 193
10.2 addressing and recognition 195
10.3 Access to PCI 198
10.3.1 configure area 198
10.3.2 I/O and 199 memory
10.4 DMA 200
10.5 device instance: Ethernet-modem card 203
10.5.1 initialization and probe 203
10.5.2 data transmission 209
10.6 debugging 214
10.7 view source code 214
Chapter 2 USB 11th
11.1 USB architecture 216
11.1.1 bus speed 218
11.1.2 host controller 218
11.1.3 transmission mode 219
11.1.4 addressing 219
11.2 Linux-USB subsystem 220
11.3 driver Data Structure 221
11.3.1 usb_device struct 221
11.3.2 URL 222
11.3.3 MPs queue 223
11.3.4 descriptor structure 223
11.4 enumeration 225
11.5 device instance: telemetry card 225
11.5.1 initialization and testing process 226
11.5.2 card register access 230
11.5.3 data transmission 233
11.6 drivers 236
11.6.1 large-capacity storage device 236
11.6.2 USB-serial port converter 241
11.6.3 man-machine interface device 243
11.6.4 Bluetooth 243
11.7 gadget driver 243
11.8 debugging 244
11.9 view source code 245
Chapter 2 video drivers 12th
12.1 display architecture 247
12.2 Linux video subsystem 249
12.3 display parameters 251
12.4 frame buffer API 252
12.5 frame buffer driver 254
12.6 console driver 265
12.6.1 device instance: Phone 266
12.6.2 start logo 270
12.7 debugging 270
12.8 view source code 271
Chapter 2 audio driver 13th
13.1 audio architecture 273
13.2 Linux sound subsystem 275
13.3 device instance: MP3 player 277
13.3.1 drivers and struct 278
13.3.2 ALSA programming 287
13.4 debugging 288
13.5 view source code 289
Chapter 2 block device drivers 14th
14.1 Storage Technology 291
14.2 Linux block I/O layer 295
14.3 I/O scheduler 295
14.4 driver data structures and methods 296
14.5 device instance: simple storage controller 298
14.5.1 initialize 299
14.5.2 block device operation 301
14.5.3 302 disk access
14.6 advanced theme 304
14.7 debugging 306
14.8 view source code 306
Chapter 2 network interface card 15th
15.1 driver Data Structure 308
15.1.1 Socket buffer 309
15.1.2 network device API 310
15.1.3 activate 311
15.1.4 data transmission 311
15.1.5 watchdog 311
15.1.6 statistics 312
15.1.7 configure 313
15.1.8 bus content 314
15.2 protocol layer session 314
15.2.1 receiving path 314
15.2.2 sending path 315
15.2.3 traffic control 315
15.3 buffer management and concurrency control 315
15.4 device instance: Ethernet NIC 316
15.5 ISA Network Driver 321
15.6 ATM 321
15.7 network throughput 322
15.7.1 Driver Performance 322
15.7.2 protocol 323 Performance
15.8 view source code 324
Chapter 2 Linux wireless device driver 16th
16.1 Bluetooth 327
16.1.1 bluez4 328
16.1.2 device instance: CF card 329
16.1.3 instance: USB adapter 330
16.1.4 RFCOMM 331
16.1.5 network 332
16.1.6 hid 334
16.1.7 audio 334
16.1.8 debugging 334
16.1.9 Source Code 334
16.2 infrared 335
16.2.1 Linux-IrDA 335
16.2.2 device instance: Super I/O chip 337
16.2.3 device: IR dongle 338
16.2.4 ircomm 340
16.2.5 networking 340
16.2.6 IrDA socket 341
16.2.7 lirc 341
16.2.8 view source code 342
16.3 WiFi 343
16.3.1 configure 343
16.3.2 Device Driver 346
16.3.3 view source code 347
16.4 cellular network 347
16.4.1 GPRS 347
16.4.2 CDMA 349
16.5 current trend 350
Chapter 2 storage technology equipment 17th
17.1 what is flash 352
17.2 Linux-MTD subsystem 353
17.3 ing driver 353
17.4 nor chip driver 358
17.5 NAND chip driver 359
17.6 User Module 361
17.6.1 block Device Simulation 361
17.6.2 character device analog 361
17.6.3 jffs2 362
17.6.4 yaffs2 363
17.7 MTD tool 363
17.8 configure MTD 363
17.9 xip 364
17.10 fwh 364
17.11 debugging 367
17.12 view source code 367
Chapter 2 embedded Linux 18th
18.1 challenges 369
18.2 component selection 370
18.3 tool chain 371
18.4 bootloader 372
18.5 memory layout 374
18.6 kernel port 375
18.7 embedded driver 376
18.7.1 flash 377
18.7.2 UART 377
18.7.3 button and wheel 378
18.7.4 PCMCIA/CF 378
18.7.5 SD/MMC 378
18.7.6 USB 378
18.7.7 RTC 378
18.7.8 audio 378
18.7.9 touch screen 379
18.7.10 video 379
18.7.11 CPLD/FPGA 379
18.7.12 connection 379
18.7.13 special electronic devices 380
18.7.14 more drivers 380
18.8 file systems 380
18.8.1 nfs-mounted root file system 381
18.8.2 compact middleware 382
18.9 testing infrastructure 383
18.10 debugging 383
18.10.1 circuit board rework 384
18.10.2 debugers 385
Chapter 2 user space drivers 19th
19.1 process scheduling and response time: 387
19.1.1 original scheduler 387
19.1.2 O (1) scheduler 387
19.1.3 CFS 388
19.1.4 response time 388
19.2 access the I/O Region 390
19.3 access the memory area 393
19.4 user mode SCSI 395
19.5 user mode USB 397
19.6 user mode I2C 400
19.7 UIO 401
19.8 View Source Code 402
Chapter 2 other devices and drivers 20th
20.1 ECC report 403
20.2 frequency adjustment 407
20.3 embedded controller 408
20.4 ACPI 408
20.5 ISA and MCA 410
20.6 FireWire 410
20.7 smart input/output 411
20.8 Amateur Radio 411
20.9 VoIP 411
20.10 high-speed Interconnection 412
201710.1 InfiniBand 413
Faster 10.2 rapidio 413
201710.3 fibre channel 413
Ipv10.4 iSCSI 413
Chapter 2 device driver debugging 21st
21.1 KDB 414
21.1.1 go to the debugger 415
21.1.2 KDB 415
21.1.3 kgdb 417
21.1.4 GDB 420
21.1.5 JTAG debugger 421
21.1.6 download 423
21.2 kernel detector 423
21.2.1 kprobe 423
21.2.2 Jprobe 427
21.2.3 return probe 429
Limitations 431
21.2.5 View Source Code 431
21.3 kexec and kdump 431
21.3.1 kexec 432
21.3.2 kdump and kexec work together 432
21.3.3.3 kdump 433
21.3.4 view source code 437
21.4 performance analysis 437
21.4.1 use oprofile to analyze kernel performance 438
21.4.2 analyze application performance with GPROF 440
21.5 tracking 441
21.6 LTP 444
21.7 UML 444
21.8 diagnostic tools 444
21.9 Kernel configuration modification option 444
21.10 Testing Device 445
Chapter 4 Maintenance and release 22nd
22.1 code style 446
22.2 modify tag 446
22.3 version control 447
22.4 consistency check 447
22.5 build script 448
22.6 portable code 450
Chapter 2 Conclusion 23rd
23.1 Process List 451
23.2 what to do next 452
Appendix A Linux Assembly 453
Appendix B Linux and bios 457
Appendix C seq 461

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.