linux kernel programming pdf github Peter's electronic projects

Linux Kernel Programming Pdf Github [updated] [Recommended]

v4.2 designed by Peter JAKAB in 2004-2005
old version in December, 1999
NOTE for beginners: PICs are general purpose microcontrollers which have to be programmed before you can use them in the actual circuit! Check out this link to learn more.

Linux Kernel Programming Pdf Github [updated] [Recommended]

: Curated lists of learning paths maintained by senior kernel engineers. Key Repository : 0xAX/linux-insides

provides a companion PDF for those who have purchased the book, along with all the source code used in the text. It covers the 5.4 LTS kernel internals, including memory management and CPU scheduling. Linux-insides : A popular "book-in-progress" available on GitHub

: The guide has been updated for modern 5.x and 6.x kernels by the community.

Searching for "Linux Kernel Programming" on GitHub reveals several high-quality repositories that host book code, PDF guides, and historical reports. Core Learning Resources on GitHub The Linux Kernel Module Programming Guide (LKMPG)

MODULE_LICENSE("GPL"); MODULE_AUTHOR("Your Name"); MODULE_DESCRIPTION("A simple kernel module");

: Use make to compile the .ko (kernel object) file, and load it using sudo insmod module_name.ko . Summary of Essential Learning Links

A curated collection of examples for learning module development, often aligned with modern training courses.

: Code examples for modern architecture and memory management.

Linux kernel programming is the pinnacle of systems engineering. It allows developers to interact directly with hardware, manage system memory, and optimize core operating system performance. However, mastering the kernel requires navigating complex, low-level C code and understanding intricate concurrency models.

: Set up an isolated environment using QEMU, VirtualBox, or VMware running Ubuntu or Fedora.

This public link is valid for 7 days and shares a thread, including any personal information you added. This link or copies made by others cannot be deleted. If you share with third parties, their policies apply. Can’t copy the link right now. Try again later.

"linux kernel programming" extension:pdf – Filters results strictly to compiled PDF books and slides.

Control up to 8 devices by this easy constructable remote control. It can work as a radio or infrared remote control, depending on the components. Each device output can be configured to be momentary (turned on while you press the button) or latched. Latched outputs can be toggled on/off by one button per channel, or turned on and off by two buttons per channel.

linux kernel programming pdf github Try it now, before building! Click on the transmitter buttons with the green labels on the left and see how the receiver outputs (K1-K8) change. Change the number of transmitter or receiver channels. Switch the receiver output type between latched and momentary.

Containing a PIC microcontroller, the circuit is very flexible. You can decide which receiver outputs are latched and which are momentary. The Manchester-coded transmitter output is well suited for the cheapest ASK radio modules or for infrared control. The units are configurable to a unique address, which must match to control the devices.

Related project: Learning remote control receiver
Take your existing remote control and control everything with it. This receiver can learn codes from an RC-5 format IR remote control, and associate the buttons to different channels and actions.

Related project: 2^16 remote control encoder and decoder
If you have TTL signals to control remote digital output lines, please check this project instead.

If you have trouble with programming PIC microcontrollers, you can consider builing other circuits based on Holtek HT-12D, HT-12E, Princeton PT2262, PT2272 and Motorola MC145026, MC145027, MC145028 encoders/decoders.
image gallery

4/8-channel V4.2 radio transmitter

radio remote control transmitter schematic
The difference between the 4-channel and the 8-channel version is only the software inside. The 8-channel transmitter has one button (S1-S8) per channel. The 4-channel transmitter uses S1-S4 buttons to turn on, S5-S8 buttons to turn off channel 1-4 (use with latched outputs on the receiver). The D1-D4 diodes and J1-J4 jumpers are optional, and are used to setup the transmitter address. Higher supply voltage results higher transmit power, but V+ range is 2-5.5VDC for the PIC MCU. When V+ is higher than 5VDC, use separate power for the mcu.

Configure & download
What if you can't get a pic16f630?
  parts list
part description
C1
100nF ceramic capacitor
R1
10k resistor (1/8W)
D1-D4 1N4148 diode (optional)
S1-S8
tact switch, DTSM 61N or similar
IC1 PIC16F630 or PIC16F676 microcontroller, pre-programmed
TXMOD
radio transmitter module, see text (hardware)
B1
battery between 2-5.5VDC (check TXMOD specs for valid voltage range)

4/8-channel V4.2 infrared transmitter

infrared remote control transmitter schematic
The difference between the 4-channel and the 8-channel version is only the software inside. The 8-channel transmitter has one button (S1-S8) per channel. The 4-channel transmitter uses S1-S4 buttons to turn on, S5-S8 buttons to turn off channel 1-4 (use with latched outputs on the receiver). The D1-D4 diodes and J1-J4 jumpers are optional, and are used to setup the transmitter address. V+ supply voltage should be between 2.5-5.5VDC. It is practical to use two or three AAA batteries.

Configure & download
  parts list
part description
C1
100nF ceramic capacitor
C2
470 uF 6.3V, electrolytic capacitor
R1
10k resistor (1/8W)
R2
10 ohm resistor (1/4W)
D1-D4 1N4148 diode (optional)
D5
IR transmitter LED
Q1
BSS138 or similar N-MOSFET
S1-S8
tact switch, DTSM 61N or similar
IC1 PIC16F684 microcontroller, pre-programmed
B1
battery between 2-5.5VDC (CR2032, 3.6V LiIon battery or 3xAA batteries)

4/8-channel V4.2 radio receiver

The difference between the 4-channel and the 8-channel version is only the software inside. The 8-channel receiver outputs are individually configurable for latched or momentary output. The 4-channel receiver has two outputs per channel: K1-K4 are latched outputs, K5-K8 are momentary outputs for the four channels. The "valid" LED shows the transmitter activity. Make sure to turn on all address switches when the transmitter diodes are absent, or the J1-J4 jumpers are cut. Choose V+ supply voltage between +6-15VDC, based on the relay voltage ratings. For 6V relays, use +6VDC, for 12V relays use +12VDC.

please observe the corresponding address configuration!
linux kernel programming pdf github
transmitter:
no diodes connected
linux kernel programming pdf github
receiver:
switches all ON
linux kernel programming pdf github
transmitter:
all diodes connected
linux kernel programming pdf github
receiver:
switches all OFF

Configure & download
Zoom the picture
radio remote control receiver schematic

component pinouts

parts list

part description
C1, C2 22pF ceramic capacitor
C3, C5 100nF ceramic capacitor
C6 10uF 6.3V electrolytic capacitor
CN1-CN8 PCB terminal block, 3-way (DG301)
D1-D8 1N4004 diode
IC1 PIC16F627 or PIC16F628 or
PIC16F627A or PIC16F628A microcontroller, pre-programmed
IC2 LP2950CZ5.0 voltage regulator
LED 3mm LED (green)
LED1-LED8 3mm LED (red)
Q1-Q8 BS170 N-channel mosfet transistor
R1-R9 220R resistor (1/8W)
RL1-RL8 G5LE relay, see text for coil voltage selection
S1 piano DIP switch, 4-way
X1 4MHz HC49 crystal
RXMOD 3-pin radio receiver module, see text (hardware)

4/8-channel V4.2 infrared receiver

The difference between the 4-channel and the 8-channel version is only the software inside. The 8-channel receiver outputs are individually configurable for latched or momentary output. The 4-channel receiver has two outputs per channel: K1-K4 are latched outputs, K5-K8 are momentary outputs for the four channels. The "valid" LED shows the transmitter activity. Make sure to turn on all address jumpers when the transmitter diodes are absent, or the J1-J4 jumpers are cut. Choose V+ supply voltage between +6-15VDC, based on the relay voltage ratings. For 6V relays, use +6VDC, for 12V relays use +12VDC.

please observe the corresponding address configuration!
linux kernel programming pdf github
transmitter:
no diodes connected
linux kernel programming pdf github
receiver:
switches all ON
linux kernel programming pdf github
transmitter:
all diodes connected
linux kernel programming pdf github
receiver:
switches all OFF

Configure & download
Zoom the picture
infrared remote control receiver schematic

: Curated lists of learning paths maintained by senior kernel engineers. Key Repository : 0xAX/linux-insides

provides a companion PDF for those who have purchased the book, along with all the source code used in the text. It covers the 5.4 LTS kernel internals, including memory management and CPU scheduling. Linux-insides : A popular "book-in-progress" available on GitHub

: The guide has been updated for modern 5.x and 6.x kernels by the community.

Searching for "Linux Kernel Programming" on GitHub reveals several high-quality repositories that host book code, PDF guides, and historical reports. Core Learning Resources on GitHub The Linux Kernel Module Programming Guide (LKMPG)

MODULE_LICENSE("GPL"); MODULE_AUTHOR("Your Name"); MODULE_DESCRIPTION("A simple kernel module");

: Use make to compile the .ko (kernel object) file, and load it using sudo insmod module_name.ko . Summary of Essential Learning Links

A curated collection of examples for learning module development, often aligned with modern training courses.

: Code examples for modern architecture and memory management.

Linux kernel programming is the pinnacle of systems engineering. It allows developers to interact directly with hardware, manage system memory, and optimize core operating system performance. However, mastering the kernel requires navigating complex, low-level C code and understanding intricate concurrency models.

: Set up an isolated environment using QEMU, VirtualBox, or VMware running Ubuntu or Fedora.

This public link is valid for 7 days and shares a thread, including any personal information you added. This link or copies made by others cannot be deleted. If you share with third parties, their policies apply. Can’t copy the link right now. Try again later.

"linux kernel programming" extension:pdf – Filters results strictly to compiled PDF books and slides.

hardware

The radio version circuit diagrams show generic ISM RF modules, which connect to the circuits using two power pins and one modulation pin. The transmitter (TX) module is connected to the transmitter circuit. The receiver (RX) module is connected to the receiver circuit. Choose ISM RF modules from the list of modules. The remote control works with the cheapest OOK/ASK modules and with FSK modules, too. Use the same frequency and modulation type for all modules. Choose a module which doesn't need setup - these are which connect only using 3 pins (ground (GND), power supply (VCC), modulation in/demod out (MOD) ) and usually have an external antenna (ANT) connection.

If you are building the infrared version, choose an IR LED matching the wavelength of the receiver module. The receiver center frequency should match the transmitter modulation frequency, which can be set the transmitter source (pwm_freq). If in doubt, just choose a TSOP1738. A list of usable modules: Sharp GP1U52X, IS1U60L, Vishay TSOP17XX, TSOP18XX.

FAQ

Q: Do I have to use a bs170 transistor in the receiver?
A: You can use other logic N-channel mosfets or npn bipolar transistors (with a series base resistor added) to drive the relays in place of Q1-Q8 of the remote control receiver. Examples: bss138, bc182+2.2kohm

Q: How do I set toggle or momentary mode for the relays?
A: Make a modification in the receiver source code. Modify the LATCH_MASK define - this contains one bit for every channel. A zero bit sets the corresponding output to momentary, a high bit sets the corresponding output to latched. For example, the line LATCH_MASK EQU B'00001111' sets channels 8-5 to momentary and channels 4-1 to latched (toggle) mode. Then use the compiler (MPLAB or gputils) to assemble the code.

Q: I want to control multiple outputs by pressing button 2 and 3 at the same time. Is that possible?
A: Not with this project. Please use this 2^16 remote control encoder and decoder instead.

Q: What if I can't get a pic16f630?
A1: Try a pic16f676, and put this line back into code: clrf 0x91 ; ANSEL
A2: Try a pic16f628, here is the modified transmitter

Q: What radio modules can this remote control work with?
A: You can choose from this list. The remote control works with the cheapest OOK/ASK modules and with FSK modules, too. Use the same frequency and modulation type for all modules. Choose a module which doesn't need setup - these are which connect only using 3 pins (ground (GND), power supply (VCC), modulation in/demod out (MOD) ) and usually have an external antenna (ANT) connection.

references