You are on page 1of 3

// SETUP RASPBERRY PI 3B //

https://downloads.raspberrypi.org/raspios_armhf/images/raspios_armhf-2020-08-24/?
fbclid=IwAR3K9Vu8xG5ag-dIDrOj9KBWZfgCe8HDVoyl_kpR2954gct1l1wUsMXyoh4 (tải .img cho
pi về)

CAI QEMU:
sudo apt-get update
sudo apt install qemu
sudo apt install qemu-system-aarch64

tạo thư mục mới tên Rasp_ao trong thư mục home
cd ~/Rasp_ao

sudo mkdir /mnt/rpi


sudo losetup -f --show -P /home/<username>/Rasp_ao/2020-08-20-raspios-buster-
armhf.img (out put lệnh này sẽ là /dev/loop9 "loop9 ở đây có thể là số khác")
sudo mount /dev/loop<no>p1 /mnt/rpi (thay <no> = số thu về được bằng lệnh trước đó
vd: /dev/loop9 thì thay thành /dev/loop9p1 )

sudo cp /mnt/rpi/kernel* .
sudo cp /mnt/rpi/*.dtb .

sudo umount /mnt/rpi


sudo losetup -d /dev/loop<no> (thay <no> bằng số như bên trên vd loop9)

LỆNH START QEMU RASPBERRY3B: dùng qemu bản mới nhất, kernel8, rasbian 2020-08-20-
raspios-buster-armhf.img (chạy trên ubuntu, chạy native-emulation nặng hơn
nên tốt hơn thì dùng mấy kernel sẵn trong link rồi thay vào lệnh start qemu thôi
(chú ý đường dẫn phải đúng tới các file cần thiết để start qemu) )

sudo qemu-system-aarch64 -M raspi3b -append "rw earlyprintk loglevel=8


console=ttyAMA0,115200 dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2 rootdelay=1" -dtb
bcm2710-rpi-3-b.dtb -sd 2020-08-20-raspios-buster-armhf.img -kernel kernel8.img -m
1G -smp 4 -serial stdio -usb -device usb-mouse -device usb-kbd -netdev
user,id=net0,hostfwd=tcp::8888-:22 -device usb-net,netdev=net0

****** FIRST TIME BOOTS UP SE BI LOI IMAGE SIZE***********


RESIZE IMAGE: qemu-img resize <Raspbian-imagefile> 8G

SAU KHI BUILD ĐƯỢC RASP ẢO


B1: cài openssh-server trên máy host & rasp
sudo apt install openssh-server

B2: ssh từ máy host vào rasp bằng lệnh: ssh pi@127.0.0.1 -p 8888

mkdir -p ~/.ssh
nano ~/.ssh/authorized_keys

LỆNH BIÊN DỊCH CHÉO BẰNG WIRINGPI: arm-linux-gnueabihf-gcc <name-file.c> -o <tên


file muốn đặt> -lwiringPi
LỆNH COPY FILE TỪ HOST SANG RASP: scp -P 8888
/home/trung/hello_kernel_module/helloworld.ko pi@127.0.0.1:/home/pi

BUILD KERNEL linux_5.4_rpi_driver


*PREPARE
1.sudo apt update

2.sudo apt install gcc-aarch64-linux-gnu (cross-tool-chain-64bit)

3.sudo apt install git bc bison flex libssl-dev make

x4.sudo apt-get install gcc-arm-linux-gnueabihf (cross-tool-chain-32bit)

x5.(lệnh compile chéo file .c qua .out "arm-linux-gnueabihf-gcc -o my_program


my_program.c" )

6.git clone --depth=1 https://github.com/raspberrypi/linux.git -b rpi-5.4.y


(linux-kernel-source)

7.sudo apt-get install git bc bison flex libssl-dev make libc6-dev


libncurses5-dev

$ cd linux

8.Set the cross-compilation environment variables:


export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-

9.Copy the Raspberry Pi 3 default configuration file to the kernel source


code directory:
KERNEL=kernel8
make bcm2711_defconfig

10. Build KERNEL:


make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules dtbs -j8 (-
j<số nhân cpu> "nproc" để xem số nhân máy có)

*LINK LED_DRIVER:
https://drive.google.com/drive/u/0/folders/1Pthyv2xjruBGUDhuiaOX9aMdTmQhxYqn

!TAI FILE Ledblink_driver VE NHO SUA TEN Driver_pi4.c -----> Driver_pi3.c!

////////////////////////////////////////////
TEST ////////////////////////////////////////

You might also like