完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1.VM虚拟机安装和PC端ubuntu系统安装
我的配置: 修改源: 安装vmwaretool:先点击虚拟机的安装VNwaretool,然后将压缩文件复制到home目录下解压: sudo tar -x*** VMwareTools-10.0.0-2977863.tar.gz sudo ./vmware-install.pl sudo apt-get remove vim-common #更新vi编辑器 sudo apt-get install vim sudo apt-get install git 安装vscode(以后驱动编写用): sudo dpkg -i code_1.47.3-1595520028_amd64.deb 输入code命令即可启动VScode程序 安装交叉编译器 #安装交叉编译器: sudo mkdir /usr/local/arm sudo cp gcc-linaro-7.5.0-2019.12-i686_aarch64-linux-gnu.tar /usr/local/arm/ -f sudo tar -vxf gcc-linaro-7.5.0-2019.12-i686_aarch64-linux-gnu.tar sudo vi /etc/profile #复制这行到文本最后一行:export PATH=$PATH:/usr/local/arm/gcc-linaro-7.5.0-2019.12-i686_aarch64-linux-gnu/bin #安装依赖库: sudo apt-get install l***-core lib32stdc++6 安装ARM-software: 安装rkbin 安装rkdeveloptool sudo apt-get install libudev-dev libu***-1.0-0-dev dh-autoreconf autoreconf -i ./configure make sudo make install 2.u-boot 系统分区地址表:可通过gdisk命令对分区做相应的设置 sudo git clone -b stable-4.4-rk3399-linux #下载u-boot源码 cd u-boot #进入u-boot sudo apt install python-pip pip install pyelftools make clean #清理工程 #这里使用的firefly的开发板,所以选择firefly-rk3399_defconfi make firefly-rk3399_defconfig ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- #编译生成.config文件,注意arch为arm而非arm64。 make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- # 编译源码 获得idbloader的命令: #将/rkbin/bin/rk33/rk3399_ddr_800MHz_v1.24.bin复制到u-boot目录下 cd .. cp ./rkbin/bin/rk33/rk3399_ddr_800MHz_v1.24.bin ./u-boot/ cp ./rkbin/bin/rk33/rk3399_miniloader_v1.19.bin ./u-boot/ cd u-boot tools/mkimage -n rk3399 -T rksd -d rk3399_ddr_800MHz_v1.24.bin idbloader.img cat rk3399_miniloader_v1.19.bin >> idbloader.img 获得rk3399_loader_v1.24.126.bin的方法: cd .. cd rkbin ./tools/boot_merger ./RKBOOT/RK3399MINIALL.ini 获得trust.img的方法: cd rkbin ./tools/trust_merger ./RKTRUST/RK3399TRUST.ini 获得uboot.img: cd u-boot #进入u-boot目录 tools/loaderimage --pack --uboot u-boot.bin uboot.img 选项①:向eMMC烧录u-boot: 将RK3399的OTG接口与电脑相连,并使其进入Loader模式或则maskrom模式。 cp ./rkbin/trust.img ./u-boot/ cd u-boot sudo rkdeveloptool db rk3399_loader_v1.24.126.bin sudo rkdeveloptool ul rk3399_loader_v1.24.126.bin sudo rkdeveloptool wl 0x4000 uboot.img sudo rkdeveloptool wl 0x6000 trust.img sudo rkdeveloptool rd 选项②:向sd卡烧录u-boot: 将内存卡插入读卡器,将读卡器插上电脑。 cp ./rkbin/trust.img ./u-boot/ cd u-boot sudo dd if=idbloader.img of=/dev/sdb seek=64 sudo dd if=uboot.img of=/dev/sdb seek=16384 sudo dd if=trust.img of=/dev/sdb seek=24576 3.内核 #下载源码: sudo git clone -b stable-4.4-rk3399-linux sudo apt-get install libssl-dev sudo apt-get install genext2fs 将源码arch/arm64/boot/dts/rockchip/rk3399-linux.dtsi中的 chosen { bootargs = "earlycon=uart8250,mmio32,0xff1a0000 swiotlb=1 console=ttyFIQ0 rw root=PARTUUID=614e0000-0000 rootfstype=ext4 rootwait"; }; 修改为 chosen { bootargs = "earlycon=uart8250,mmio32,0xff1a0000 swiotlb=1 console=ttyFIQ0 rw root=PARTUUID=B921B045-1D rootfstype=ext4 rootwait"; }; 编译内核: make clean make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- rockchip_linux_defconfig #编译内核,这个过程需要很久,而且期间电脑较卡 make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j2 生成boot.img mkdir boot cp arch/arm64/boot/dts/rockchip/rk3399-firefly-linux.dtb boot/rk3399.dtb cp arch/arm64/boot/Image boot/ mkdir boot/extlinux vi boot/extlinux/extlinux.conf #在文档中写如: label rockchip-kernel-4.4 kernel /Image fdt /rk3399.dtb append earlycon=uart8250,mmio32,0xff1a0000 root=PARTUUID=B921B045-1D rootwait rootfstype=ext4 init=/***in/init #执行下面命令生成boot_rk3399.img genext2fs -b 32768 -B $((32*1024*1024/32768)) -d boot/ -i 8192 -U boot_rk3399.img 烧写内核: sudo dd if=boot_rk3399.img of=/dev/sdb seek=32768 sync 启动u-boot进入命令模式: gpt write mmc 0 $partitions #此处根据启动方式修改0或1 gpt verify mmc 0 $partitions 4.根文件系统 下载 ubuntu-base-16.04.6-base-arm64.tar.gz mkdir raw-rootfs sudo tar -xpf ubuntu-base-16.04.6-base-arm64.tar.gz -C raw-rootfs/ sudo apt-get install qemu-user-static sudo cp /usr/bin/qemu-aarch64-static ./raw-rootfs/usr/bin/ sudo cp /etc/resolv.conf raw-rootfs/etc/resolv.conf 修改源./raw-rootfs/etc/apt/sources.list为: 编写挂载脚本: touch mount.sh sudo chmod +x mount.sh #!/bin/bash mnt() { echo "MOUNTING" sudo mount -t proc /proc ${2}proc sudo mount -t sysfs /sys ${2}sys sudo mount -o bind /dev ${2}dev sudo mount -o bind /dev/pts ${2}dev/pts sudo chroot ${2} } umnt() { echo "UNMOUNTING" sudo umount ${2}proc sudo umount ${2}sys sudo umount ${2}dev/pts sudo umount ${2}dev } if [ "$1" == "-m" ] && [ -n "$2" ] ; then mnt $1 $2 elif [ "$1" == "-u" ] && [ -n "$2" ]; then umnt $1 $2 else echo "" echo "Either 1'st, 2'nd or both parameters were missing" echo "" echo "1'st parameter can be one of these: -m(mount) OR -u(umount)" echo "2'nd parameter is the full path of rootfs directory(with trailing '/')" echo "" echo "For example: ch-mount -m /media/sdcard/" echo "" echo 1st parameter : ${1} echo 2nd parameter : ${2} fi 挂载系统: source mount.sh -m raw-rootfs/ 卸载系统:首先退出系统 exit source mount.sh -u raw-rootfs/ 挂载系统后: source mount.sh -m raw-rootfs/ apt upgrade apt install sudo language-pack-en-base ssh net-tools ethtool ifupdown iputils-ping htop vim kmod network-manager xorg make udhcpc gcc g++ sudo 安装ftp服务: sudo apt-get install vsftpd sudo vi /etc/vsftpd.conf local_enable=YES write_enable=YES sudo /etc/init.d/vsftpd restart 用户设置: chmod +w /etc/sudoers #在root用户下添加权限 vi /etc/sudoers 添加用户: useradd -s '/bin/bash' -m -G adm,sudo tgm passwd tgm #给新用户设置密码 passwd root #给root用户设置密码 exit source mount.sh -u raw-rootfs/ 制作根文件系统映像: dd if=/dev/zero of=linuxroot.img bs=1M count=1024 #根据自己的根文件系统大小分配 sudo mkfs.ext4 linuxroot.img mkdir rootfs sudo mount linuxroot.img rootfs/ sudo cp -rfp raw-rootfs/* rootfs/ sudo umount rootfs/ e2fsck -p -f linuxroot.img resize2fs -M linuxroot.img 烧录根文件系统: sudo dd if=linuxroot.img of=/dev/sdb seek=262144 在系统正确加载后执行扩展文件系统命令: sudo resize2fs /dev/sdb5 SD卡启动效果 u-boot: 内核: 根文件系统: |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
2531 浏览 0 评论
2818 浏览 1 评论
2308 浏览 1 评论
3639 浏览 1 评论
4390 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-24 19:18 , Processed in 0.451543 second(s), Total 40, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号